La
sécurité d'un système d'information
Merci à l'auteur,
Nicolas
Jeannes, qui a fait un travail remarquable...
Téléchargez
la dernière mise à jour de ce dossier en cliquant
ici.
1
- Introduction
2
- Protéger les données et le matériel en cas de défaillance
Protection
physique des disques durs avec le système RAID
Sauvegarder
les données
Prévenir
les problèmes "naturels"
Garantie
et dépannage du matériel
Assurer
l'accès permanent aux données et aux applications
3 -
Contrôler les accès au système d'information
Accès
aux postes informatiques
Accès
au données
Les
fichiers supprimés laissent des traces ...
Accès
au temps machine des serveurs
Accès
aux imprimantes
Authentification
des utilisateurs
4 -
Sécuriser les transferts de données
Paiements
sécurisés via Internet
Accès
aux données à distance
Eviter
la diffusion des données en divisant le réseau
Protéger
les données sensibles
5 -
Protection vis à vis de l'extérieur
Attaques
possibles
Déterminer
et sécuriser les ressources accessibles depuis l'extérieur
Le
choix des protocoles à utiliser
Détection
d'intrusion
Utilisation
d'un firewall
Un
exemple d'outils de gestion de la sécurité sur un réseau
IP: IP-Watcher, d'En Garde Systems
Protection
vis à vis des virus
Tester
les solutions mises en place
6 -
Sécurité passive
Veille
technologique
Suivi
des audits
Un
responsable de la sécurité
7 -
Conclusion
8
- Bibliographie
1 - Introduction
Pour définir un système
d'information sécurisé, on peut mettre en avant les 5 points
que l'International Standard Organization (I S O) a fait ressortir dans
ses études sur les sécurités des réseaux :
-
La confidentialité
: l'information échangée entre deux correspondants ne peut
pas être consultée par un tiers.
-
L'authentification :
les personnes utilisant une ressource correspondent aux noms d'utilisateurs.
-
La disponibilité ou
non-répudiation : les données ainsi que les ressources
du système d'information sont accessibles par ceux qui en ont besoin
à chaque fois qu'ils en ont l'utilité.
-
L'intégrité
: l'information n'est modifiée que par les personnes en ayant le
droit, et de façon volontaire.
-
Le contrôle d'accès
: une ressource n'est accessible que par les personnes autorisées.
Mettre au point une politique
de sécurité pour un réseau va donc consister à
connecter entre eux les composants du système d'information tout
en faisant respecter ces cinq règles.
Par le passé, pour
assurer une protection optimale du réseau d'une entreprise, il un
avait une séparation complète entre celui-ci et l'extérieur.
Aujourd'hui, une entreprise ne peut plus s'isoler si elle veut profiter
du déploiement de l'internet, du commerce électronique, ou
des services associés aux réseaux étendus. Par contre,
ces portes d'entrées sur le réseau sont autant de risques
d'attaque par un pirate ou de risques de mauvaises manipulations.
En France, on constate un
certain retard en ce qui concerne la sécurisation des réseaux
informatiques. Une entreprise sur 100 serait protégée contre
les virus. Le comportement général est de ne pas s'inquiéter
tant qu'aucun problème, aucune attaque n'a été détectée.
Si une entreprise constate une attaque sur son matériel, elle ne
sait pas non plus à qui s'adresser, il n'y a pas d'organisme dédié
à cette tâche. Faut-il contacter la DST, la gendarmerie la
plus proche, ... ?
Les
dangers du manque de sécurité
Un manque de sécurisation
d'un service peut être un frein à une activité économique,
et donc au développement de certaines entreprises. Par exemple,
le commerce électronique se développe très lentement.
La raison principale est que le paiement en ligne n'est pas encore totalement
sécurisé. Même si des solutions efficaces commencent
à être mises en place, l'idée qu'une transaction puisse
être non sécurisée freine les consommateurs.
De nombreux autres risques
guettent un système d'information non sécurisé, du
simple dysfonctionnement à l'arrêt total de l'entreprise.
Sécuriser le système
d'information d'une entreprise a un coût. Mais deux entreprises de
même taille ne réaliseront pas le même investissement
dans ce secteur. Une façon de savoir qu'elle budget une entreprise
doit investir est d'estimer les pertes subies en cas d'immobilisation de
son système d'information. Si le fonctionnement n'est presque pas
altérer, il n'est pas nécessaire de fournir de gros efforts.
Par contre, si l'entreprise est immobilisée, et si les pertes financières
sont importantes, c'est que le système d'information est capital,
et qu'il doit être protégé avec soin.
2 - Protéger
les données et le matériel en cas de défaillance
Certaines données conservées
sur le système d'information d'une entreprise sont vitales pour
son fonctionnement, et ne doivent donc en aucun cas être perdues
ou indisponibles. Plusieurs niveaux de sécurité sont possibles
pour protéger ces données. Mais avant de les mettre en place,
il faut définir quelles sont les données qui sont importantes,
et qui doivent donc être sécurisées.
En règle générale,
les données à protéger sont :
-
Les informations sur les recherches
effectuées par l'entreprise.
-
Les informations sur les produits
de l'entreprise.
-
La liste des clients.
-
Les données sur les employés.
-
La situation financière
et légale de l'entreprise.
-
Et tout autre donnée
ayant de la valeur ou difficile, voir impossible à recréer
en cas de perte.
Protection
physique des disques durs avec le système RAID
Le temps moyen entre deux défaillances
sur un disque dur est estimé à 500 000 heures. Si un serveur
possède 10 disques durs, cela représente une probabilité
d'une défaillance tous les 5 ou 6 ans. Même si le risque est
faible, une entreprise utilisant des données critiques ne peut pas
le prendre. Il faut donc un système résistant aux pannes.
La technologie RAID (Redundant
Array of Independant Disks) est une façon d'utiliser plusieurs disques
durs ensemble pour constituer un système de stockage de donnée
pouvant résister à la panne d'un seul de ces composants.
Le système RAID offre
une double utilité : accélérer les accès disques
et éviter les pertes de données. Il permet au système
d'être résistant aux défaillances, c'est à dire
que la panne d'un disque dur ne doit ni entraîner la perte d'information,
ni empêcher l'accès à celles ci.
Deux possibilités
existent pour la mise en place d'un tel système : une solution matérielle
ou une solution logicielle :
-
Solution matérielle :
l'application de RAID est confiée au contrôleur de disques,
comme une carte dans l'ordinateur ou dans un boîtier séparé.
L'avantage est que le système n'est pas sollicité. Les transferts
de donnée sont aussi plus rapides, car le contrôleur RAID
n'a qu'une tâche à effectuer, alors que le système
peut être sollicité pour d'autres services au même moment.
-
Solution logicielle : c'est
le système d'exploitation qui gère le système de RAID.
On évite ainsi le passage de toutes les données par le point
d'engorgement que peut constituer le contrôleur RAID. Ce procédé
est aussi plus économique, car il n'y a pas besoin d'acheter du
matériel spécial. En contrepartie, l'application utilise
une partie des ressources du système.
Pour diminuer les risques d'immobilisation
des données, il est préférable que chacun des disques
durs en RAID possède son propre contrôleur de disque. En effet,
si plusieurs disques sont en RAID sur le même contrôleur, une
panne du contrôleur entraîne une indisponibilité globale
des données. Elles ne sont pas perdues, mais elles ne sont plus
accessibles. Ce problème disparaît avec un contrôleur
pour chaque disque.
RAID
0
Les données sont divisées
en petits blocs et écrite de façon entrelacée sur
plusieurs disques durs en même temps.
-
Accès plus rapide aux
données (accès simultané sur n disques), sauf dans
le cas de petits fichiers.
-
la panne d'un seul disque entraîne
la perte de toutes les données.
Ce n'est donc pas un véritable
système RAID, car les données ne sont pas plus sécurisées.
Il permet juste d'accélérer l'accès à celles-ci.
RAID 1
ou mirroring
Toutes les écritures
sont faites simultanément à l'identique sur deux disques.
Il y a donc toujours une image du disque à protéger ou miroir.
-
En cas de défaillance
d'un disque, les données restent accessibles immédiatement
et sans perte. Il est possible d'accélérer la lecture des
données en répartissant les accès sur les deux disques.
-
Coût élevé,
car la moitié de l'espace disque est réservé pour
la sauvegarde. Il faut doubler le nombre de disques durs. Les écritures
sont aussi plus lentes, car elles sont toujours réalisées
en double.
RAID 0+1
Cette technique combine le
RAID 0 et le RAID 1 en mettant en miroir des données écrites
de façon entrelacée sur plusieurs disques.
-
Sécurité et haute
disponibilité des données du RAID 1 et rapidité d'accès
aux données du RAID 0
-
Coût élevé,
car la moitié de l'espace disque est réservé pour
la sauvegarde. Il faut doubler le nombre de disques durs
RAID 4
Il utilise le principe de
parité avec des données écrites de façon entrelacée
comme en RAID 0. Pour un ensemble de x disques, on ajoute un seul disque.
Son nème bit sera le bit de parité formé à
partir de chacun des nème bits de l'ensemble des x autres disques.
Si un disque tombe en panne, il peut être reconstitué à
partir des x-1 autres disques et du disque de parité. Si le disque
de parité tombe en panne, il peut aussi être reconstitué.
Pour chaque écriture, le disque de parité est donc remis
à jour.
-
Haute sécurité
des données, coût réduit (1 disque en plus quel que
soit le nombre de disque à protéger)
-
Moins rapide que le RAID 0 ou
le RAID 1, car le disque de parité est mis à jour en permanence.
RAID 5
C'est le même principe
de calcul de parité que le RAID 4, mais les données comme
les bits de parité sont répartis sur l'ensemble de disques.
L'accès disque est donc plus rapide, chacun étant sollicité
pour l'écriture des bits de parité.
-
Haute sécurité
des données. Coût réduit (1 disque en plus quel que
soit le nombre de disque à protéger).
-
Plus lent pour de petites requêtes
(l'écriture à lieu sur plusieurs disques)
Sauvegarder
les données
Un système de sécurité
passif comme le RAID ne protège pas d'un effacement de données,
ou d'un crash du système. Il faut donc mettre en place une copie
des données sur un support externe au poste qui les abrite. Elle
peut avoir lieu sur :
-
Un autre poste du réseau
: solution peu coûteuse et simple à automatiser, mais si le
poste et le serveur sont tous les deux dans le même local, la solution
n'est pas totalement efficace. La sauvegarde est de plus tributaire du
réseau. Une panne du réseau et la sauvegarde ne peut plus
se faire.
-
Un support amovible (cartouche
DAT, DLT, CD-ROM, ...). Il est ensuite possible de placer ces sauvegardes
dans un lieu sûre, à l'extérieur de l'entreprise, ou
dans un abri anti-feu.
Mise en
œuvre de la procédure
Certains systèmes offrent
des outils de planification de sauvegardes, mais il existe aussi des programmes
indépendants pour aider aux sauvegardes. Certains outils, comme
tar sous Unix, permettent juste de faire des sauvegardes intégrales
d'un système de fichier, alors que d'autres logiciels permettent
de gérer toute la stratégie de sauvegarde. Sous Unix, on
peut aussi écrire un script shell qui automatisera les sauvegardes.
Différents type de
sauvegardes sont possibles :
-
Incrémentale : sauve
tous les fichiers modifiés depuis la dernière sauvegarde
totale.
-
Différentielle : sauve
tous les fichiers modifiés depuis la dernière sauvegarde
différentielle.
-
Totale : sauvegarde l'intégralité
des fichiers concernés.
Il faut combiner ces trois types
de sauvegardes pour qu'elles ne monopolisent pas trop de ressources réseaux,
mais permettent une restauration complète et rapide des données
en cas de besoin. L'utilisation de plusieurs bande est importante, pour
éviter l'usure de celles-ci, et ne pas courir le risque de perdre
toute la sauvegarde en cas de détérioration d'une bande.
Exemple
de stratégies de planification des sauvegardes :
Si l'entreprise est en activité
5 jours par semaine, avec des fichiers modifiés chaques jours, il
faudra 20 bandes différentes pour cette planification :
-
5 bandes étiquetées
"lundi", "mardi", "mercredi", "jeudi", "vendredi" utilisées pour
les sauvegardes incrémentales ou différentielles chaques
soirs de la semaine.
-
4 bandes étiquetées
"Semaine1", "Semaine2", "Semaine3", "Semaine4", qui recevront une sauvegarde
totale chaque vendredi.
-
12 bandes, étiquetées
des mois de l'année, qui recevront une sauvegarde complète
à chaque fin de mois, et qui seront stockées à l'extérieur
de l'entreprise.
Prévenir
les problèmes "naturels"
Les éléments critiques
du réseau doivent être protégés des risques
naturels, tel que la foudre, les coupures de courant, les hausses de tension,
ou même les inondations et les incendies.
Pour cela, quelques règle
de bon sens sont à respecter :
-
Protéger les serveurs
et le matériel jugé critique par des onduleurs, qui peuvent
prendre le relais en cas de saut de courant, et offrent une protection
vis à vis de la foudre, des surtensions. Il faut préférer
les onduleurs qui sont reconnus par le système d'exploitation. En
cas de coupure de courant prolongée, le système pourra s'arrêter
tout seul proprement, prévenir les utilisateurs de son arrêt,
et écrire sur le disque le contenu de la mémoire vive, de
façon à redémarrer exactement dans la même configuration
dès le retour du courant.
-
Placer ces matériels
dans un lieu protégé : éviter les sous-sols, qui peuvent
être inondés. Une climatisation est aussi conseillée
pour conserver un environnement stable. Il faut aussi éviter les
fenêtres, et tout ce qui peut créer de la poussière
(moquette, tissus, ...). On peut aussi prévoir des détecteurs
de fumée, des extincteurs automatiques et un système d'alarme
incendie.
-
Les bandes de sauvegarde ne
doivent pas être conservées sur le même lieu que les
serveurs. Si un incident arrivait au niveau de ceux ci, les bandes pourraient
être touchées également. La solution idéale
est de les placer dans un coffre anti-feu, ou en dehors de l'entreprise.
L'énergie électrique
est rarement stable. Les pointes de tension et les parasites sont nombreux.
Les circuits des équipements électriques comme les composants
des ordinateurs ou le matériel réseau (hub, routeur, switch,
...) se dégradent lentement s'ils y sont soumis de façon
régulière. Il faut donc tenir écarté les matériels
critiques des appareils d'air conditionnés, des ascenseurs, des
réfrigérateurs, des imprimantes laser, et des tous les appareils
provoquant des effets magnétiques transitoires.
Garantie
et dépannage du matériel
Un matériel informatique
peut toujours tomber en panne, quelle que soit sa qualité ou les
précautions prises pour son utilisation. Il ne sert donc à
rien de sécurisé un système informatique parfaitement
si une panne d'un serveur doit l'immobiliser pendant plusieurs jours, en
attendant le remplacement d'une pièce.
Tout matériel doit
donc être sous garantie, avec un contrat garantissant un délai
d'intervention plus ou moins long suivant l'importance du matériel.
Une station de travail pourra n'être réparée que sous
deux ou trois jours, si un autre poste peut dépanner l'utilisateur.
Par contre, un serveur, un routeur, un switch ou tout autre élément
critique doit pouvoir être remis en service dans la demi-journée,
ou dans la journée. La durée dépendant tout de fois
de la capacité de l'entreprise à se passer de son système
d'information.
Assurer
l'accès permanent aux données et aux applications
Doubler
les ressources critiques
Si un service doit être
accessible de façon permanente, même en prenant toutes les
précautions possibles, il y a toujours un risque d'indisponibilité
le temps de résoudre un problème. La seule solution pour
assurer une permanence totale du service est de doubler la ressource. Ainsi,
en cas de défaillance du premier fournisseur de service, le second
prend le relais en attendant le rétablissement du premier.
Pour un serveur, il est possible
de mettre en place un système de cluster. Il n'y a plus un mais
deux serveurs, ou parfois un serveur avec deux cartes mères. Un
des deux répond aux clients, tandis que l'autre se tient à
jour en permanence. Toute modification du premier est reproduite sur le
second. Si le premier serveur tombe, le second prend alors le relais de
façon transparente pour les utilisateurs.
Pour doubler physiquement
des données, en plus du système de RAID, il est possible
de mettre en place la réplication de répertoire. Windows
NT permet par exemple de répliquer en temps réel le contenu
d'un ou de plusieurs répertoires sur un autre disque physique d'un
autre serveur, à travers le réseau local. En cas d'indisponibilité
d'une source de donnée, les utilisateurs peuvent immédiatement
utiliser la seconde, en attendant que la première soit rétablie.
La redirection vers la nouvelle source de donnée n'est par contre
pas forcément automatisée pour les utilisateurs.
Le support physique du réseau
est formé par les câbles. Il peut être intéressant
de doubler certains médias, comme par exemple l'épine dorsale
(backbone) d'un réseau, qui a une importance capitale. Si plusieurs
serveurs sont interconnectés, il peut être utile des les configuré
en topologie maillée. Chaque serveur sera alors relié à
plusieurs autres, et si une des voies de communication est endommagée,
les paquets d'information pourront emprunter un autre chemin pour arriver
à destination. Un exemple d'utilisation d'une topologie maillée
est le réseau internet.
D'autres ressources peuvent
être ainsi doublées :
-
Un accès internet par
2 FAI (Fournisseur d'accès internet) différents.
-
L'accès à au moins
2 imprimantes pour chaque utilisateur.
-
Avoir une station de travail
en plus pour dépanner quand il y en a une qui est en réparation.
-
Avoir des composants réseaux
en réserve (câble, prises, hub, ...).
Sous Windows NT, l'accès
au réseau se fait par identification auprès de la base de
donnée d'annuaire qui est sur le contrôleur primaire du domaine.
Mais s'il y a un ou plusieurs contrôleurs secondaires, ils peuvent
aussi remplir ce rôle d'authentification à l'aide d'une copie
de la base de donnée d'annuaire. Il est donc conseillé d'avoir
au moins un contrôleur secondaire de domaine, qui pourra être
promu au rôle de contrôleur primaire en cas de problème
sur le contrôleur primaire. Il pourra aussi authentifier les utilisateurs
en cas de surcharge du contrôleur primaire. |
 |
Une disquette
pour restaurer un système défaillant
Un système d'exploitation
fonctionne grâce à quelques fichiers qui lui sont indispensables.
Ces fichiers peuvent, par une mauvaise manipulation ou par une cause mécanique,
être détériorés, voir supprimés. Le seul
moyen pour restaurer le système sans le réinstaller complètement
est alors d'exécuter un programme de réparation, qui réinstallera
les fichiers manquant au système. Une telle disquette doit toujours
être à proximité de chaque serveur, et être réactualisée
à chaque modification importante sur ce dernier.
Pendant l'installation du
système Windows NT, le programme d'installation propose de créer
une disquette de réparation de secours qui permet les opérations
suivantes :
-
Réparer les données
de la base de registre endommagée.
-
Restaurer des fichiers altérés
ou manquant sur la partition système.
-
Remplacer le noyau du système
Windows NT s'il a été modifié.
-
Remplacer un secteur d'amorçage
défectueux sur une partition FAT.
3 -
Contrôler les accès au système d'information
70 à 80 % des actes de
malveillances envers un système informatique seraient issues d'une
personne interne à l'entreprise. Il faut donc gérer les accès
aux ressources en interne avec soin.
Accès
aux postes informatiques
Accès
physique
Tous les postes ne doivent pas
être accessibles par tous les utilisateurs.
Les postes de travail des
utilisateurs doivent soit :
-
Etre accessibles uniquement
par leur utilisateur dédié (bureaux fermés à
clés, ...)
-
Etre accessibles uniquement
par les membres de l'entreprise (filtrage des personnes extérieures
à l'entreprise, ...)
Il est en effet courant de trouver
sur des écrans ou sur des bureaux des papiers avec le mot de passe
de l'utilisateur. Un pirate qui se fait passer pour un technicien, ou pour
un client pourra ainsi se procurer des informations qui lui permettront
par la suite de pénétrer plus facilement le réseau.
Il est même arrivé que des pirates se fassent embaucher comme
concierge pour pouvoir accéder aux bureaux la nuit, et rechercher
des informations en toute tranquillité.
En ouvrant le capot d'un
poste, on peut voler le disque dur. On peut aussi réinitialiser
le BIOS en enlevant quelques instants la pile, ou en déplaçant
certains cavaliers de la carte mère. Or, si le BIOS est réinitialisé,
le mot de passe qui protège son accès est supprimé
(cf. paragraphe suivant). Pour empêcher cela, les capots des postes
peuvent être verrouillés.
Une des sources de risque
sur un poste de travail est tout ce qui peut y être ajouté
après son installation, comme des virus, des logiciels espions,
etc. Il est donc conseillé de n'équiper les postes de travail
de périphérique d'entrée (lecteur de disquette, de
CD-ROM) que si leur utilisation est nécessaire. Sinon, il faut soit
les déconnecter, en les laissant dans le boîtier, soit les
retirer. Cette mesure doit bien sur être accompagnée du verrouillage
des capots, pour empêcher par la suite l'ajout d'un lecteur par un
utilisateur.
Les serveurs doivent être
plus particulièrement protégés, et n'être accessibles
que par les administrateurs. Un local spécial contenant tous les
appareils critiques (serveurs, routeurs, switchs, ...) sera plus facile
à protéger que le bureau d'un administrateur. Il devra être
fermé à clés en permanence, ou être accessible
par un code d'entrée. Un minimum de personnes doit y avoir accès,
mais il en faut tout de même au moins deux pour des questions de
sécurité (prévoir l'indisponibilité d'un administrateur,
...).
Le BIOS
Le BIOS des postes offre un
accès direct à la configuration du matériel, et sa
modification peut immobiliser un poste pendant une durée indéterminée.
Même si peu de personnes connaissent le moyen d'y accéder,
une fausse manipulation est toujours possible. Il est donc nécessaire
de protéger son accès à l'aide d'un mot de passe,
afin que seul les personnes autorisées puissent le modifier. Cette
fonction est offerte par tous les BIOS récents.
Le système
d'exploitation
Une fois les postes de travail
démarré, l'accès au système d'exploitation
se fait par identification de l'utilisateur, à l'aide de son mot
de passe. Suivant le système d'exploitations, l'accès n'est
pas le même :
-
Windows 9x : L'accès
n'est pas totalement limité : on peut utiliser le poste sans être
identifié, en annulant la procédure d'identification. On
a alors accès à toutes les ressources locales. Par contre,
les ressources réseaux ne sont pas accessibles.
-
Windows NT Workstation et système
Unix: l'accès au système d'exploitation est impossible pour
un utilisateur non identifié, il faut obligatoirement s'identifier
à l'aide d'un nom d'utilisateur (login) et du mot de passe qui lui
est associé.
Malgré tous les verrous
des systèmes d'exploitations, en démarrant un poste à
l'aide d'une disquette de boot, on peut accéder au disque dur local
sans charger le système d'exploitation. On passe ainsi outre l'identification
du système quel qu'il soit. Pour empêcher cette manipulation,
il est nécessaire de configurer le BIOS pour qu'il démarre
sur le disque dur en premier, puis seulement enfin sur la disquette ou
le lecteur CD.
Les comptes utilisateurs
doivent être utilisés par une personne unique. Dans le cas
contraire, il sera impossible de connaître le responsable d'une opération
réalisée sous le compte "commercial" par exemple. Il en est
de même pour les administrateurs. Chaque administrateur doit avoir
son compte personnel, doté des droits suffisants pour réaliser
son travail.
Même si un système
est parfaitement "blindé", il peut exister des portes d'entrée
dérobées, crées par les développeurs du système
eux même ! Il est en effet courant que des systèmes d'exploitation
possèdent une ou plusieurs manipulations pour se connecter sans
avoir à s'identifier avec un compte d'utilisateur valide. Ces portes
d'entrée, normalement connues uniquement des employés de
l'entreprise développant le système, ou de techniciens travaillant
en dépannage, finissent souvent par tomber aux mains des pirates.
Lors d'une formation sur Novell, un formateur expliquait ainsi aux futurs
certifiés Novell comment passer outre le mot de passe, pour dépanner
des clients l'ayant oublié.
Il est courant que des développeurs
court-circuitent aussi certaines procédures de vérification
et/ou de sécurité, pour accélérer leurs tests
en cours de conception du logiciel ou du système. Mais le jour de
livrer une version finale du logiciel, il peut arriver qu'ils oublient
de les remettre en application.
Sous un système Windows
:
Les stratégies systèmes
permettent de limiter les possibilités d'un utilisateur ou d'un
poste de travail. Sous Windows NT, elles se définissent à
l'aide de l'éditeur de stratégies système, et sous
Windows 9x, s'il n'y a pas de serveur Windows NT sur le même réseau,
il faut utiliser l'utilitaire "Pool Edit".
A l'aide des stratégies
système, on peut par exemple :
-
Empêcher la modification
de la base registre, un des éléments les plus sensibles du
système.
-
Ne permettre l'exécution
que de certaines applications connues.
-
Interdire la modification de
l'environnement de travail (accès au panneau de configuration, ...)
-
Limiter les entrées du
menu "Démarrer".
-
Cacher les autres postes du
voisinage réseau.
-
Cacher les disques de l'ordinateur
local.
-
Empêcher l'arrêt
de l'ordinateur.
-
...
Les profils utilisateurs
obligatoires permettent aussi d'imposer un environnement aux utilisateurs.
Sous Windows, le profil contient les paramètres de l'explorateur
Windows, de la barre des taches, de l'imprimante, du panneau de configuration,
des accessoires, de l'aide en ligne et des applications Windows. Ces informations
sont contenues dans le fichier USER.DAT sous Windows 9x, et NTUSER.DAT
sous Windows NT. Le fait de renommer ce fichier en USER.MAN ou NTUSER.MAN
et de le mettre en lecture seule le rend obligatoire, et l'utilisateur
se voit appliqué l'environnement décrit par ce fichier. |
 |
D'autres restrictions peuvent
être apportées aux comptes utilisateurs ou aux groupes d'utilisateurs
sous Windows NT :
-
Restreindre l'utilisation du
compte à certaines plages horaires. On peut spécifier si
l'utilisateur est automatiquement déconnecté des ressources
réseau en cas de dépassement de sa plage horaire autorisée,
ou s'il peut continuer à travailler.
-
Limiter l'utilisation du compte
à certains postes précis du réseau. On peut spécifier
jusqu'à 8 postes autorisés. Si la fonction n'est pas activée,
l'utilisateur peut par défaut se connecter sur n'importe quel poste
de travail.
-
La date d'expiration du compte.
Par défaut, un compte n'expire jamais, mais dans le cas d'un employé
à durée déterminée, on peut préciser
que son compte sera automatiquement désactivé à la
fin de son contrat, pour être sur de ne pas laisser un compte inutilisé.
Un groupe d'utilisateur prédéfinis
est le groupe "Tout le monde", qui comprend tous les utilisateurs du domaine,
ainsi que tous les utilisateurs des autres domaines autorisés à
accéder à une ressource du domaine. Ce compte ne peut pas
être supprimer. Un point important est de lui supprimer le contrôle
total qu'il a par défaut sur tous les fichiers, pour le remplacer
par aucun accès. La possibilité de gérer tous les
utilisateurs ensemble se fera alors à travers le groupe "Utilisateurs
du domaine". Le groupe tout le monde peut en effet contenir des utilisateurs
que l'administrateur du domaine n'a jamais créé, comme ceux
approuvés depuis d'autres domaines, et il est bien sur trop risqué
d'accorder des droits à un groupe d'utilisateur quand on ne sait
pas exactement qui en fait partie.
Sous Unix :
Il n'est pas possible d'accéder
au système d'exploitation sans être identifié, à
moins d'utiliser le poste en mode mono-utilisateur. Pour pouvoir passer
dans ce mode, il faut le spécifie au démarrage de la machine.
Il suffirait donc de redémarrer le poste pour avoir accès
aux ressources locales, sans posséder aucun droit. Sous Unix system
V, en rajoutant la ligne id:2:initdefault: au fichier /etc/inittab,
on oblige le système à démarrer en mode multi-utilisateur.
La modification du shell de login sur les autres systèmes Unix permet
également de supprimer cette possibilité.
Accès
au données
Au travers du réseau,
les utilisateurs peuvent avoir accès à un ensemble de ressources
partagées. Il faut qu'ils puissent utiliser toutes les ressources
nécessaires dans leur travail, mais pas plus. Une étude préalable
des besoins de chaque utilisateur ou de chaque service permettra d'affecter
les droits en fonction des besoins.
L'accès aux données
partagées doit être défini avec précision. Quelques
exemples de besoins sont :
-
Uniquement en consultation :
droit "lecture seule"
-
Consultation et mise à
jour : droit "modification"
-
Création, suppression
: droit "contrôle total"
Le nombre de répertoires
partagés avec des accès en contrôle total pour tous
les utilisateurs doit être le plus réduit possible. Sur un
système Unix, on trouvera uniquement : /tmp, /usr/tmp, usr/spool/uucppublic,
usr/spool/uucp et /usr/spool/mail.
Les répertoires de
base des utilisateurs travaillant en groupes auront un contrôle total
pour l'utilisateur, et modifier pour les autres membres du groupe. Si l'utilisateur
travail de façon autonome, lui seul aura un contrôle total
sur son répertoire. Par contre, l'administrateur doit toujours pouvoir
prendre la main sur les données d'un utilisateur, et les consulter
ou les supprimer pour l'intérêt du système d'information.
Pour éviter qu'un
utilisateur ne voie l'arborescence globale du système de fichier
réseau, il est possible de lui créer une arborescence restreinte,
où ne figurent que les dossiers dont il a besoin. Sous Windows NT,
on pourra mettre en place cette technique a l'aide d'une stratégie
système, et faire apparaître dans cette racine de répertoires
qui n'y sont pas physiquement grâce à la duplication de répertoire.
Sous Unix, il faut utiliser l'appel système chroot, qui crée
une racine virtuelle pour l'utilisateur. Par contre, pour qu'il ait accès
à des applications ou des fichiers en dehors de cet espace, il faudra
placer des alias pointant vers les programmes respectifs.
Chaque système d'exploitation
offre une gestion des droits d'accès aux fichiers différente.
Les droits
et permissions sous Windows NT
Les permissions des fichiers
et des répertoires :
Sous Windows NT, avec un
système de fichier en NTFS (NT File System), les permissions peuvent
s'appliquer pour chaque fichier ou répertoire, en fonction de chaque
utilisateur, de façon très précise. Avec un système
de fichier en FAT, les permissions sont moins précises.
Permissions en NTFS :
-
Lire (ouvrir et afficher le
contenu d'un fichier)
-
Ecrire (modifier le contenu
d'un fichier, ou en créer un)
-
Exécuter (exécuter
un programme ou un fichier exécutable)
-
Supprimer (supprimer des fichiers)
-
Modifier les permissions (modifier
les permissions d'un fichier ou d'un répertoire existant)
-
Prendre possession (se rendre
propriétaire d'un fichier ou d'un répertoire existant)
Permissions en FAT :
-
Aucun accès
-
Lire
-
Ecrire
-
Contrôle total
Il existe des logiciels qui
permettent de lire les fichiers d'un système de fichier en NTFS
depuis un disque en FAT, comme NTFSDOS.EXE. Il est donc déconseillé
d'avoir la moindre partition en FAT. Il est aussi nécessaire d'empêcher
de démarrer l'ordinateur sur la disquette, ce qui permettrait de
se retrouver en FAT et d'attaquer les partitions NTFS. Il est donc risqué
d'avoir un double boot, avec un autre système que Windows NT. De
manière générale, si le système NT n'est pas
en activité, même si les permissions s'appliquent, avec un
logiciel de vidage mémoire binaire, on pourra accéder aux
données des fichiers. Cette sécurité logicielle n'est
donc pas suffisante, et une protection physique du matériel pour
empêcher le vol du disque dure s'avère indispensable.
Il faut prendre garde aux
droits des fichiers quand ceux ci sont copiés ou déplacés
d'un dossier à un autre. Les droits peuvent être modifiés
sans qu'on s'en rende compte. Les règles qui s'appliquent sur un
volume NTFS sont :
-
Un fichier déplacé
conserve ses protections.
-
Un fichier copié hérite
des protections du dossier qui l'accueille.
-
Exception : un fichier déplacé
d'un volume à un autre ne conserve pas ses protections, mais hérite
de celle du dossier qui l'accueil.
Les droits accordés aux
utilisateurs :
Pour utiliser une ressource,
l'utilisateur doit avoir le droit d'accès à celle ci, et
la ressource doit le lui permettre. Il faut un droit, associé à
l'utilisateur, et une permission associée à la ressource,
en fonction de l'utilisateur. Un utilisateur peut par exemple avoir le
droit de sauvegarder et de restaurer des fichiers, mais n'a pas forcement
la permission d'accéder à certains répertoires. Il
ne pourra donc pas sauvegarder ceux-ci.
Des droits cumulatifs :
Quand un utilisateur appartient
à plusieurs groupes, il peut avoir plusieurs droits d'accès
différents sur une même ressource. Dans ce cas, il se voit
appliquer le plus élevée, sauf s'il a le droit "aucun accès",
qui prime sur tous les autres.
La procédure d'authentification
:
L'authentification, l'attribution
de permissions et l'attribution de droits se fait grâce à
un jeton d'accès de sécurité. Une fois que l'utilisateur
s'est identifié avec succès, il se voit attribué un
jeton d'accès de sécurité qui contient son SID (identifiant
de sécurité unique), ainsi que les identifiants des groupes
auquel il appartient. Quand il veut accéder à une ressource
du système, l'information de son jeton est comparée à
celle que possède la ressource. En effet, chaque ressource possède
la liste des utilisateurs autorisés à y accéder. Si
la comparaison montre qu'il possède les droits demandés,
il peut utiliser la ressource. Le mécanisme d'autorisation est donc
bilatéral.
Pour être plus précis,
chaque objet de Windows NT (fichier, port de communication, thread d'exécution,
imprimante, ...) possède un descripteur de sécurité
qui contient les attributs de sécurité suivants :
-
L'identifiant de sécurité
de l'utilisateur propriétaire de l'objet, qui est généralement
celui qui l'a crée.
-
La liste de contrôle d'accès
(ACL) qui contient la liste des utilisateurs et des groupes qui ont le
droit d'accéder à cet objet.
-
Un ACL système, qui se
rapporte au système d'audit.
-
Un identifiant de sécurité
de groupe utilisé par le sous-système POSIX (qui fait le
lien avec les environnements UNIX).
Les partages administratifs
:
Sous Windows NT, le répertoire
racine du système est partagés de façon cachée.
Ce partage est impossible à supprimer. Il s'agit du partage d'administration.
La partition C:\ d'un serveur SERVEUR3 sera par exemple accessible à
travers le réseau sous le chemin : \\SERVEUR3\$C . L'accès
est ensuite limité aux administrateurs autorisés, mais c'est
une technique pour tester le mot de passe de ces derniers. Il existe tout
de même un moyen simple pour empêcher cet accès : interdire
aux administrateurs le fait de se connecter sur le réseau depuis
un autre poste que le ou les serveurs. L'administrateur réalisera
la gestion du réseau directement sur la console du serveur, et son
compte ne pourra pas être attaqué depuis un autre poste. La
liste de contrôle d'accès (ACL ou Access Control List) de
ces disques partagés ne peut pas être modifiée, que
ce soit par un utilisateur ou un administrateur. Un utilisateur ne pourra
donc pas se donner lui-même un droit d'accès.
Les droits
sous Unix
Sous UNIX, chaque fichier ou
répertoire possède un ensemble de 9 attributs correspondant
aux droits des utilisateurs. Il existe trois droits différents :
-
r : lecture (read)
-
w : écriture (write)
-
x : exécution (execute)
Ces droits s'appliquent à
trois groupes différents :
-
o : le propriétaire du
fichier (owner)
-
g : les membres du groupe du
propriétaire (group)
-
a : tous les autres utilisateurs
(all)
Un fichier ou un répertoire
aura par exemple les droits : rwxr-x--- qui indiquent :
-
le propriétaire a tous
les doits (rwx)
-
les membres du groupe du propriétaire
peuvent le lire et l'exécuter (r-x)
-
les autres n'ont aucun accès
(---)
Les groupes d'utilisateurs se
créent grâce à un utilitaire ("admintool" par exemple)
ou en ligne de commande. Les droits se modifient en ligne de commande avec
la commande "chmod". Un répertoire peut mettre en place l'héritage
des droits, ce qui modifie les droits de tout ce qu'il contient pour correspondre
aux siens.
Le montage des systèmes
de fichiers permet de spécifier des protections au niveau du volume
global :
-
Pour empêcher qu'un des
utilisateurs ne sature un système de fichier, on peut définir
un volume maximum autorisé pour chaque utilisateur. Lors du montage
du système de fichier, l'utilisation de l'option quota permet
de fixer cette limite.
-
L'option ro (read only)
garantie que tous les fichiers seront en lecture seule.
-
L'option nodev empêche
l'accès à tous les fichiers spéciaux du volume.
-
L'option noexec rend
impossible l'exécution de tout fichier exécutable.
Les programmes SUID et
SGID
(Set User ou Group ID) :
Ce sont des programmes avec
des autorisations supplémentaires. Une fois lancés, ils se
comportent comme s'ils appartenaient à un autre utilisateur. Dès
qu'il est exécuté, l'utilisateur valide est celui du propriétaire
du fichier, quel que soit l'utilisateur qui l'exécute. Ce système
est parfois utile quand un programme à besoins de certains droits
pour son déroulement que son utilisateur n'a pas. Par contre, si
l'utilisateur arrive à détourner l'utilisation du programme,
il peut utiliser les droits qui lui sont associés. Il faut donc
que ces programmes soient parfaitement écris pour ne laisser aucune
faille. Ces programmes de ce type doivent donc être utilisés
un minimum, et vérifiés avec soin.
La commande su :
Cette commande sert à
utiliser un autre UID (Identifiant utilisateur) en cours de session. Par
exemple, en étant connecté en tant que Leo, on peut utiliser
les pouvoirs du compte Edgar en tapant su Edgar. Une invite demandera
le mot de passe, et ensuite, on pourra travailler comme si on était
l'utilisateur Edgar.
On peut vérifier toutes
les utilisations de cette commande en consultant le fichier de log : /var/dam/syslog
Mot de passe Shadow :
La suite Shadow, disponible
sur les systèmes Unix, permet de déplacer les renseignements
utilisateurs vers le fichier /etc/shadow, alors qu'ils ont normalement
dans le fichier /etc/passwd. Le fichier ne peut alors n'être lu que
par l'utilisateur root. Il est ainsi beaucoup plus difficile pour un pirate
d'accéder à la liste des utilisateurs et à leur mot
de passe.
Shadow fournis en plus des
fonctions pour gérer les mots de passe :
-
La commande passwd peut
définir une durée de validité maximum du mot de passe,
un nombre de jour minimum entre deux modifications, ...
-
La commande pwck permet
de vérifier si les noms d'utilisateurs sont uniques, si certains
comptes ont un mot de passe vide, ...
Les droits
sous Novell Netware
Sous Novell Netware, chaque
fichier ou répertoire possède une liste de contrôle
d'accès (ACL ou Access Control List), qui spécifie les utilisateurs
pouvant l'utiliser, et les droits précis qui leur sont associés.
Si un fichier n'a pas de droits de précisés, il hérite
de ceux du répertoire parent.
Les
fichiers supprimés laissent des traces ...
Quand un fichier est effacé,
il n'est pas supprimé physiquement du disque dur de l'ordinateur.
Son entrée dans l'index des fichiers du disque (la table d'allocation
des fichiers sur un système de fichier FAT) est supprimée,
ce qui rend impossible son accès directement depuis un gestionnaire
de fichier. Par contre, en étudiant le disque dur bit à bit
à l'aide d'un logiciel de vidage mémoire binaire, on peut
retrouver l'intégralité des données, et ce jusqu'à
ce qu'un autre fichier soit écris à cet emplacement physique
du disque dur.
Il existe des logiciels qui
permettent de détruire réellement des fichiers, en superposant
aux fichiers supprimés des informations aléatoires. Mais
pour être parfaitement efficace, ces utilitaires devraient être
passé plusieurs fois pour rendre le fichier d'origine totalement
illisible.
Sous Windows NT ou Windows
9x, quand un fichier est supprimé, il est placé dans la corbeille.
Il est donc toujours accessible par celui qui l'a supprimé ou par
un administrateur. Il est indispensable de vider la corbeille pour rendre
les fichiers inaccessibles par un moyen classique.
Accès
au temps machine des serveurs
Une attaque, volontaire ou non,
qui pourrait être réalisée contre un serveur, est de
lui demander un grand nombre de service en même temps. Cela pourrait,
au mieux, ralentir ses fonctions vitales, et au pire, le bloquer, l'empêchant
ainsi de remplir son rôle. Ce type d'attaque est une attaque par
immersion, car le serveur est submergé de demandes. Il serait utile
de pouvoir fixer une limite au-delà de laquelle le système
ne répond plus aux sollicitations externes, et préserve ses
tâches systèmes.
Sous Windows
NT
Sous Windows NT, tous les processus
s'exécutent suivant l'un des deux modes suivants :
-
Mode utilisateur : il s'agit
de l'ensemble des processus lancés par des applications ou directement
par l'utilisateur. Les processus lancés dans ce mode ont un espace
d'adressage limité et non partagé avec d'autres processus,
ils ne peuvent pas accéder directement au matériel et leur
niveau de priorité est inférieur à celui des processus
en mode noyau.
-
Mode noyau : tous les processus
liés au système NT fonctionne en mode noyau. Ils sont prioritaires
par rapport au processus en mode utilisateurs, et ne peuvent pas être
mis en dangers par une application. Ils peuvent accéder à
la totalité de la mémoire et du matériel.
Avec cette séparation,
si une application peut boucler, ou être arrêter de façon
brutale, le fonctionnement interne du système est protéger,
il ne peut pas être rendu instable par un processus incontrôlable.
Il est aussi possible d'indiquer
un niveau de priorité associé à une application, ce
qui permet de donner plus de temps machine à certains processus
qu'à d'autres.
Pour les serveurs multiprocesseurs,
on peut spécifié que tel processeur ne sera sollicité
que par telle application. Si un serveur peut être sollicité
de façon variable et imprévisible, on peut par exemple réserver
un des processeurs au fonctionnement interne du système. Cela se
traduira par une diminution des ressources disponibles pour l'ensemble
des tâches du serveur, car elles devront être réalisées
avec un microprocesseur de moins, mais le système ne pourra pas
être mis à plat.
L'analyseur de performance
d'un serveur peut détecter une tentative d'attaque du serveur par
immersion (envoi de grandes quantités d'information pour le saturer).
Une alarme peut être définie sur le compteur appelé
"Octets reçus/s" qui se déclenchera en cas de dépassement
d'un certain seuil d'information reçu, ou en cas de transfert d'information
pendant des horaires anormales, ce qui peut être l'indice d'un vol
d'information.
Sous Novell
NetWare
Avec le système Netware,
il n'est pas possible de distribuer de façon précise les
ressources d'un serveur. On ne peut pas dire que tel groupe d'utilisateur
sera prioritaire sur tel autre en terme de ressources système.
Il n'est pas possible non
plus de protéger le serveur d'une augmentation trop importante de
ses sollicitations, qui risquerait de ralentir ses fonctions vitales. S'il
est sollicité pour plusieurs gros calculs dans un temps très
court, il pourrait avoir du mal à assurer ses tâches primordiales.
Sous Unix
Par contre, sous Unix, un contrôle
est possible. Non pas à l'aide d'outils livrés en standard,
car ils n'existent pas, mais à l'aide de scripts. On peut lancer
un démon qui tourne en permanence, et qui communique régulièrement
à l'administrateur la liste des processus en activité depuis
une longue période. L'administrateur peut alors choisir de tuer
ou pas une application qui dure de façon anormale. Cette tâche
ne peut pas être automatisée, car seul l'administrateur peut
savoir si un processus est important pour le système et doit donc
continuer, ou s'il s'agit d'une application défaillante qui boucle.
Une autre technique, moins
radicale, est de modifier le niveau de priorité des processus s'ils
tournent depuis trop longtemps. Le "nice", ou priorité, est une
valeur entre -20 (ultra prioritaire) et +20 (le moins prioritaire). La
commande "renice" permet de modifier cette valeur pour un processus. Le
propriétaire de celui-ci peut modifier le nice, et l'utilisateur
"root" peut augmenter ou diminuer celui de tous les processus tournant
sur le serveur.
Un démon peut réalise
cette dernière opération de façon automatique en détectant
les processus qui tournent depuis longtemps, et en diminuant leur niveau
de priorité au bout d'un certain temps.
Accès
aux imprimantes
Sur un réseau, il n'y
a jamais une imprimante pour chaque poste susceptible d'imprimer des documents.
Les utilisateurs se servent d'imprimantes partagées à travers
le réseau. Dans le cas de documents à caractère confidentiels,
il faut faire en sorte qu'ils ne soient pas visibles par tous les utilisateurs,
quand ils sont en attente dans le bac de l'imprimante.
On peut facilement imaginer
les problèmes rencontrés si un enseignant imprimait un sujet
d'examen sur une imprimante en libre service par les étudiants,
ou si les fiches de salaire d'une entreprise étaient imprimées
aux yeux de tous.
Si un nombre restreint de
personne doit imprimer des documents confidentiels, il est possible de
leur installer une imprimante personnel, ou une pour le groupe de personne
concerné. Sinon, l'imprimante peut être installée dans
un local auquel une seul personne de confiance a accès. Elle se
chargera de trier les documents imprimés, et de les remettre aux
propriétaires respectifs.
Authentification
des utilisateurs
L'utilisation de toute ressource
du réseau doit se faire de façon nominative, pour deux raisons
principales :
-
Empêcher à une
personne non autorisée d'utiliser certaines ressources.
-
Identifier les auteurs de malveillances
ou de maladresses.
Pour éviter toute mauvaise
manipulation, les administrateurs ne doivent se connecter avec leur compte
d'administrateur que s'ils ont des tâches d'administration à
faire. Pour une utilisation courante, ils doivent utiliser un autre compte
personnel, avec des droits plus limités.
Les comptes d'administrateur
sont la cible favorite des pirates, car ce sont eux qui offrent le plus
de droits. Il est donc important de les renommer quand cela est possible,
comme sous Windows NT, pour qu'il ne soit pas possible de déceler
quel compte possède tous les pouvoirs, parmi la liste des comptes
utilisateurs. On peut même créer un compte portant le nom
du compte administrateur par défaut ("administrateur" sous Windows
NT), et ne lui conférer aucun droit. Les pirates s'acharneront sur
lui, et même s'il arrive à trouver son mot de passe, ils seront
sans aucun pouvoir. Par contre, sous Unix, le compte de l'administrateur
"root" ne peut pas être renommé.
De nombreuses applications
utilisant des mots de passe offrent la possibilité de les mémoriser.
L'utilisateur n'a ensuite plus besoin de le saisir à chaque fois.
Malgré le côté pratique de cette technique, elle est
à déconseiller. Par exemple, sur un portable, si le mot de
passe de certaines ressources du réseau sont en mémoire,
en cas de vol de celui-ci, le voleur peut à son tour accéder
aux ressources du réseau. Sous Windows 9x, une modification de la
base de registre permet d'empêcher aux mots de passe de rester en
cache :
-
Développer l'arbre du
registre : "HKEY_LOCAL_MACHINE\SOFTWARE\
Microsoft\Windows\CurrentVersion\Policies\Network"
-
Ajouter une entrée à
ce sous arbre, avec la valeur "DWORD"
-
Quand la nouvelle valeur apparaît,
renommez-la "DisablePwdCaching", puis validez
-
Donnez la valeur 1 dans
le champ Valeur de donnée de la nouvelle entrée.
Choisir
les mots de passe
Le nombre de ressources protégées
par mot de passe est très important sur un réseau. Cette
première barrière peut pourtant se révéler
inefficace s'ils sont mal choisis, ou communiqués à des personnes
pouvant en faire mauvais usage.
De plus, l'emplacement des
fichiers contenant les mots de passe sous les différents systèmes
est connu de tous les hackers. S'ils arrivent à s'en emparer, un
logiciel de crackage leur fournira une liste en claire. A moins qu'ils
n'utilisent un mouchard pour capturer ceux-ci lors de leur passage sur
le réseau.
Quelques règles permettent
tout de même de rendre ceux-ci plus difficiles à découvrir
:
Pour les utilisateurs courants
:
-
Obliger le changement de mot
de passe régulièrement. Mais pas trop souvent tout de même,
car cela pourrait avoir un effet inverse en contrariant les utilisateurs,
qui pourraient utiliser des mots de passe triviaux.
-
Interdire les mots de passe
vides, même pour un compte temporaire créé pour un
test par l'administrateur. Si un pirate se procure une liste de comptes
d'un réseau, il vérifiera en premier le mot de passe vide
sur tous les comptes.
-
Donner la consigne de ne pas
diffuser le moindre mot de passe à quelqu'un de l'extérieur,
et de ne le communiquer à personne de façon écrite
ou par e-mail, même à un administrateur.
-
Imposer un longueur minimale
de 6 caractères.
-
Déconseiller les mots
de passe trop évidents : prénoms des enfants, dates de naissance,
initiales du nom, du prénom et en règle général
tous les mots présents dans un dictionnaire.
-
Empêcher la réutilisation
d'un mot de passe déjà utilisé, par un système
de mémorisation, pour éviter qu'un utilisateur n'utilise
que les deux mêmes, et change toujours l'un pour l'autre.
-
Effectuer un test automatique
de certains mots de passe génériques (azerty, toto, lundi,
mardi, ...) sur tous les comptes de temps en temps, pour détecter
ceux trop faciles à trouver.
En ce qui concerne les mots
de passe des comptes administrateurs, ou des appareils qu'eux seul peuvent
utiliser, il faut appliquer les consignes ci-dessus, avec la plus grande
rigueur, plus quelques autres consignes :
-
Utiliser des mots de passe d'au
moins 8 caractères, en combinant chiffres, lettres, majuscules et
minuscules, ainsi que les caractères spéciaux.
-
Eviter la multiplication des
mots de passe, pour ne pas en oublier, et ne pas avoir besoin de les écrire
...
-
Dans un environnement très
sécurisé, pour éviter de laisser tous les pouvoirs
à un seul administrateur, on peut créer un mot de passe en
2 ou 3 parties, qui seront détenues chacune par une personne différente.
Il faudra alors que les détenteurs des mots de passe le composent
à la suite pour se connecter en tant qu'administrateur.
Cette dernière technique,
le partage d'un mot de passe entre plusieurs personne, peut permettre de
créer un compte administrateur de secours. Si une entreprise n'a
qu'un administrateur, en cas d'accident ou de maladie de celui-ci, l'entreprise
ne peut plus accéder au système en mode superviseur. Pour
ne pas donner un accès personnel à ce compte à une
autre personne, on peut utiliser un mot de passe détenu par plusieurs
personne. Seuls, ils ne pourront rien faire. On peut aussi envisager de
déposer le mot de passe de secours chez un responsable de l'entreprise,
ou dans un coffre, en banque, ce qui le rend accessible en cas de problème
de l'administrateur.
Pour créer un mot
de passe efficace, une solution est de prendre les initiales d'une phrase
facile à retenir. Par exemple, à partir de la phrase : "
Je suis né le 22 avril 77 à Nantes ", on a le mot de passe
: " Jsnl22a77aN "
Un autre technique est d'associer
2 mots par un caractère spécial, comme "jour&nuit", "passe!passe",
ou "mara+boulier"
Sous Windows NT :
En cas de perte du mot de passe
de l'administrateur, et si un seul utilisateur possède les droits
d'administration (ce qui est, on le voit, très risqué), l'unique
méthode pour accéder de nouveau à la gestion du système
est de réinstaller la base de donnée d'annuaire telle qu'elle
était à l'installation du système. Mais il faudra
par la suite réinstaller tous les comptes utilisateurs. Sinon, il
faut réinstaller tout le système !
Sur un système Unix :
Le fichier /etc/passwd
contient la liste de tous les utilisateurs (login) en clair avec leur mot
de passe associé sous forme chiffrée. Les mots de passe ne
peuvent pas être déchiffrés. Pour vérifier celui
qui est entré lors de la procédure de connexion de l'utilisateur,
il est chiffré de la même façon, et comparé
avec le contenu du fichier /etc/passwd.
Le mot de passe contenant
8 caractères maximum, et le code ASCII en contenant 103 utilisables
pour les mots de passe (certains caractères de contrôle sont
interdits), il y a 1038 mots de passe possibles. A raison d'une seconde
de traitement pour chiffrer un mot de passe pour une machine peu rapide,
l'essai de toutes les possibilités est illusoire.
Par contre, chiffrer un dictionnaire
de 36000 mots prendrait environ 10 heures. Il est donc indispensable que
le mot de passe ne soit pas un mot usuel contenu dans un dictionnaire.
Il faut donc mélanger
les majuscules et les minuscules, et introduire des chiffres dans le mot
de passe, et/ou des caractères spéciaux. Une tentative de
craquage de mot de passe par un dictionnaire sera alors sans effet.
Il est possible de modifier
la commande passwd, qui permet de changer son mot de passe, et d'obliger
l'utilisateur à proposer un mot de passe contenant un ou plusieurs
chiffres.
Pour empêcher les mots
de passe vides, les commandes grep, awk ou perl permettent
de localiser les champs vides du fichier de mot de passe /etc/passwd.
On peut écrire un shell qui recherche les comptes sans mot de passe,
et qui ajoute une étoile dans les champs vides. Ces comptes seront
alors automatiquement bloqués.
Les machines ont souvent
des "comptes de commande", des ID d'utilisateurs qui exécutent une
commande puis sortent. Finger, sync ou date sont par exemple des comptes
sans mot de passe, qui s'exécutent, fournissent les renseignements
demandés, puis ferment leur session. Il faut s'assurer qu'aucune
de ces commandes n'accepte de saisie sur la ligne de commande, ni ne permette
d'échappement vers le shell, ce qui permettrait à l'utilisateur
de parvenir à un shell interactif, et donc d'accéder au système.
De plus, ces types de comptes renseignent leur utilisateur sur le système.
Finger ou who permettent par exemple de connaître les identifiants
des utilisateurs. S'ils ne sont pas utiles, il est donc intéressant
de les désactiver.
Les mots
de passe d'origine
Dans tous les cas, il faut veiller
à ce que tous les mots de passe par défauts des systèmes
ou des matériels soient changés. Ils sont très bien
connus des pirates, et ce sont les premiers essayés en cas de tentative
d'intrusion. Même si un accès n'est jamais utilisé,
comme le mot de passe pour configurer un routeur ou un switch de certains
environnements, le mot de passe d'origine doit être tout de même
modifié.
Le vol
de mot de passe
Il est très facile de
réaliser un programme imitant l'écran d'ouverture de session
sous Windows ou celui de login sous Unix. Ce programme tournant sur un
poste ou un terminal avec un session déjà ouverte, enregistrera
le mot de passe entré par un utilisateur, et lui reverra un message
lui indiquant que son mot de passe est faux. L'utilisateur finira sûrement,
après plusieurs essais, par redémarrer l'ordinateur ou par
se connecter sur un autre poste. Il n'aura ainsi même pas eu connaissance
que quelqu'un a réussi à lui voler son mot de passe. Pour
se protéger de ce danger, il faut informer les utilisateurs :
-
Sous Unix, créer l'utilisateur
"whoami"
sans mot de passe dans /etc/passwd avec la ligne suivante : whoami::100:100::/bin/whoami
L'utilisateur, avant d'entrer son propre login pour d'identifier, essai
le login "whoami". Si la console répond : "whoami", il peut se connecter
sur cette station. S'il répond un autre nom d'utilisateur, c'est
un programme de vol de mot de passe, et il faut redémarrer la machine.
-
Sous Windows NT, faire CTRL+ALT+SUP
même si l'écran affiche déjà la boite de dialogue
pour entrer le mot de passe. Cela stoppera toute application en cours,
et donc un éventuel programme de vol de mot de passe.
Il existe aussi des programmes
résident lancés au démarrage de la machine qui espionnent
les saisies au clavier, ce qui permet de recueillir les mots de passe.
Mais ces solutions peuvent
être contournées par un programme évolué. Les
seules méthodes totalement sûres sont :
-
Avoir un système de déconnexion
automatique des utilisateurs en cas d'inactivité, ce qui empêcherait
de laisser tourner un programme. Les sessions sont automatiquement fermées
après quelques minutes d'inactivité.
-
Toujours redémarrer le
poste avant de se connecter. Mais cette méthode est contraignante
pour l'utilisateur, qui doit attendre le redémarrage, et néfaste
pour le matériel si les redémarrage sont trop fréquents.
-
Fixer un nombre d'essai infructueux
limité à 3 ou 4. Si un utilisateur se trompe plusieurs fois
de mot de passe, son compte se bloque, et il doit soit attendre un certain
laps de temps avant de pouvoir réessayer, soit contacter son administrateur
pour déverrouiller son compte. Ainsi, une attaque par dictionnaire
est rendue impossible.
Carte
à puce et biométrie
Des solutions plus simple et
plus souple pour l'identification des utilisateurs sont entrain de se développer
: la biométrie et les cartes à puce.
L'utilisateur est doté
d'une carte à puce personnelle. Elles peuvent servir pour accéder
aux réseaux locaux ainsi qu'aux serveurs web. Un lecteur raccordé
au PC permet de lire le profil et les droits d'accès de l'utilisateur
qui sont stockés dans la carte. Cette solution peut également
offrir une solution d'authentification des clients pour un acte donné
sur internet, comme la consultation de documents, ou l'accès à
certaines ressources.
Un exemple existe à
grande échelle en France depuis 1998 : l'intranet du Conseil de
Notariat français, qui relie chaque notaire, et les identifient
à l'aide d'une carte à puce personnelle.
Les solutions biométriques
sont aussi en train de se développer. Elles mettent en place une
reconnaissance de l'utilisateur par le biais d'une de ses parties du corps
qui ne peut pas être identique chez une autre personne :
-
les empreinte digitale
-
le réseau sanguin de
la rétine
-
la forme de l'iris
-
la forme de la main
-
la voix
Pour toutes ces solutions, le
principe est de recueillir les données par un capteur, puis de les
comparer avec d'autres qui sont stockées dans une base de donnée.
Par contre, le taux de reconnaissance de ces systèmes n'atteint
jamais 100 %.
-
Le plus fiable est la reconnaissance
au niveau de l'œil, mais c'est aussi la plus compliquée. Pour un
environnement sous haute sécurité, on choisira une reconnaissance
par le réseau sanguin de la rétine.
-
La reconnaissance par la forme
de la main est opérationnelle, elle a déjà été
utilisée lors des Jeux Olympiques d'Atlanta de 1996
-
L'identification à l'aide
de la voix nécessite en plus un affichage qui fournis aléatoirement
une phrase que l'utilisateur doit prononcer, pour éviter l'utilisation
d'une bande enregistrée préparée à l'avance.
-
La reconnaissance par empreinte
digitale semble la plus simple à mettre en place pour un réseau
local. Elle est assez fiable pour la plus part des utilisations, et il
existe déjà des claviers dotés d'un capteur. Le capteur
ne prenant en compte que la partie en contact direct avec le support, l'utilisation
d'une photo est inefficace. L'image est codée pour former un fichier,
qui sera comparé avec celui stocké dans une base de donnée.
L'algorithme de codage a été conçu de façon
à ce que deux empreintes ne puissent pas donner le même fichier,
et qu'a partir du fichier, on ne puisse pas reconstituer l'empreinte. Comme
il est impossible d'avoir deux fois la même photo des empreintes,
il reste à définir le pourcentage de différence toléré,
pour valider l'identification. Plus ce taux sera élevé, plus
les échecs lors de l'identification seront fréquents, mais
le fait de recommencer à plusieurs reprises sera le prix à
payer pour une sécurité plus élevée.
-
Il est aussi possible d'identifier
une personne sur sa signature. Non pas sur la graphie elle-même,
qui peut toujours s'imiter, mais la façon de la tracer, en fonction
des variations de pression et de l'inclinaison du stylo.
Il existe tout de même
des inconvénients à ces capteurs : la partie du corps concernée
doit être relativement propre, et les capteurs entretenu régulièrement
pour rester propre eux aussi.
L'avantage de ces solutions
est de supprimer le problème de la divulgation des mots de passe,
ou de la transmission des numéro de carte bancaire au travers d'un
réseau. La biométrie reste pourtant un procédé
coûteux, et n'a pas une fiabilité totale. Mais ces points
faibles vont s'améliorer, et dans le futur, il faudra faire son
choix : carte à puce ou biométrie.
4 -
Sécuriser les transferts de données
Paiements
sécurisés via Internet
Pour certaines entreprises commerciales,
il est indispensable de sécuriser ses transactions à travers
un réseau. Par exemple, une liaison vers une banque pour des transmissions
d'opérations bancaires, ou un paiement sécurisé pour
une entreprise offrant un service de commerce via internet. Toutes ces
connexions doivent offrir des qualités de confidentialité,
d'authentification, d'intégrité et de non-répudiation.
Il y a toujours des risques
à transmettre un numéro de carte bleu en clair sur le réseau,
et en plus, cela n'authentifie pas parfaitement le client. Les listes de
numéro de cartes de crédits sont en effet nombreux à
circuler entre les pirates, et il existe de logiciels qui permettent de
générer automatiquement des numéros de cartes valide,
c'est à dire qui seront acceptés lors d'une transaction ou
le numéro de code n'est pas réclamé.
Le chiffrement du numéro
de carte n'empêche pas son interception, et n'authentifie pas l'expéditeur.
Des services existent, comme la solution crée par Master-Card et
Visa. Celle ci s'appuie sur des protocoles de type SET (Secure Electronic
Transaction) ou C-SET (Chip-SET), et fournit aux commerçants et
aux clients des certificats électroniques d'authentification. Le
vendeur n'a alors plus accès au numéro de carte bleu du client,
tout est directement transmis à sa banque.
La solution C-SET offre une
sécurité supérieure, car le client utilise un lecteur
de carte bleu connecté à son propre ordinateur.
Mais il reste à régler
les problèmes des petits achats, pour lesquels la carte bleue ne
peut pas être utilisée. Des portefeuilles électroniques
sont à l'essai, mais ne semble pas encore être totalement
satisfaisant.
Accès
aux données à distance
Il est parfois nécessaire
de donner un accès aux ressources de l'entreprise à un des
employés en déplacement, ou de mettre en place une communication
sécurisée avec une autre entreprise.
Dans tous les cas, les droits
qu'un utilisateur distant possède doivent toujours être réduits
au strict minimum. En effet, il sera toujours plus facile pour un pirate
de pénétrer sur un réseau à travers une entrée
distante qu'en local. Et dans l'éventualité d'une intrusion
à travers un accès distant, si les possibilités à
travers cet accès sont réduites, le pirate pourra moins facilement
attaquer le système.
Dangers
liés aux utilisateurs mobiles
Dans le cas d'un utilisateur
mobile, qui accède au réseau de l'entreprise depuis des endroits
différents, de multiples risques existent, liés à
l'utilisation d'un ordinateur portable :
-
Il est souvent utilisé
en public, comme dans un avion, un train. Le mot de passe servant à
utiliser la machine est alors composé aux yeux de tous.
-
Les informations transitant
entre l'entreprise et l'utilisateur circulent sur des lignes publiques,
facile à espionner.
-
Un portable est un objet facile
à voler, et une fois entre les mains d'un pirate, il aura tout son
temps pour décrypter les mots de passe et étudier les informations
contenues sur le disque dur.
-
Un accès distant sur
le réseau de l'entreprise veut dire qu'un pirate peut tenter de
se connecter au réseau de chez lui, comme s'il était à
la place de l'utilisateur nomade. Il peut alors disposer de tout son temps.
Authentification
lors d'un accès à distance
Sous Windows NT, on peut mettre
en place une connexion distante ou RAS. Pour vérifier que cette
connexion est bien utilisée par une personne autorisée, il
existe trois niveaux de sécurité :
-
L'appelant appelle d'où
il veut, et il n'a que son identifiant et son mot de passe à fournir.
-
Avec rappel automatique. L'utilisateur
distant précise à quel numéro le rappeler, et le serveur
le rappel
-
Avec rappel automatique, mais
à un numéro prédéfinis à l'installation
du service d'accès distant. Il est donc alors impossible pour un
autre de se connecter à sa place, sauf à être présent
chez lui, ou là, il peut appeler le réseau.
Il existe aussi des techniques
de positionnement à l'aide du système GPS, qui permettent
de situer la personne qui tente de se connecter à distance, et d'autoriser
ou pas l'accès en fonction de son emplacement. Par exemple, si on
sait que le commercial devrait se trouver à un certain endroit,
et que quelqu'un essaye de se connecter au réseau avec son compte
d'utilisateur, mais depuis un autre endroit, l'accès sera refusé,
même si le mot de passe est correct.
Les VPN
(Virtual Private Network)
Cette technique consiste à
créer un tunnel virtuel à travers internet, qui chiffre les
données pour assurer la confidentialité. L'authentification
des utilisateurs est aussi prise en charge. Cette solution est mise en
place par les serveurs, des passerelles dédiées, ainsi que
des logiciels embarqués par des routeurs. Développée
par Microsoft, cette technique est incluse dans Windows NT et Windows 98.
Mais face aux lacunes de
sécurité de ce système, d'autres systèmes ont
été développés par des constructeurs de matériels
réseaux., comme Cisco . Ils offrent des sécurités
accrues, avec le brouillage de l'en-tête des paquets IP, qui est
remplacée par un autre en-tête comportant une pseudo-adresse
compréhensible uniquement par les passerelles VPN. L'algorithme
RSA de cryptage est aussi utilisé pour coder les données.
Mais cette prolifération
de solutions non compatible entre elles ne favorise pas l'établissement
d'une solution globale.

Certains fournisseurs d'accès
internet commencent aussi à proposer des offres de sécurité
logique. Celles-ci regroupent un accès internet, un firewall chez
le fournisseur, un hébergement de site web, un serveur de messagerie,
un serveur de nom de domaine, ainsi que la possibilité de mettre
en place des VPN.
Eviter
la diffusion des données en divisant le réseau
Même si le risque est
réduit, il est inutile que des données confidentielles circulent
sur l'ensemble d'un réseau local, alors qu'elles ne sont destinées
qu'a un nombre réduit de personnes. Un utilisateur indélicat
peut toujours intercepter des trames circulant sur le réseau même
s'ils ne lui sont pas adressés à l'aide d'un sniffer (logiciel
de capture de trame), et lire leur contenu.
Une séparation logique
des entités d'un réseau ne semble donc pas suffisante. Une
séparation physique est la seule garantie d'une séparation
totale entre deux sous réseaux.
Ce problème se présente
surtout quand des utilisateurs du réseau sont susceptibles de pouvoir
se procurer un logiciel de capture de trames (réseau universitaire,
lieux publiques, ...), ou quand le réseau local est connecté
en permanence à Internet.
L'utilisation de switch pour
l'interconnexion des postes de travail est préférable à
celle de hub. En effet, les deuxièmes ont pour principe de répéter
ce qu'ils reçoivent sur un port sur tous les autres ports. Ensuite,
seul la machine destinataire prendra en compte la trame, mais tous les
postes l'aura reçue quand même. Il est donc préférable
d'utiliser des appareils qui ne transmettent les trames que vers le bon
destinataire, ou tout au moins qui ne la transmet pas à tout le
monde, comme les ponts, les switchs ou les routeurs.
Interconnexion
par un pont
Le pont est un appareil qui
travail au niveau 2 de la couche ISO, en faisant la jonction entre deux
sous-réseaux de même type. Il reçoit les trames des
deux sous réseaux auquel il est raccordé, et analyse les
adresses des destinataires des paquets. A l'aide des paquets qu'il reçoit,
il maintient une table d'adressage qui lui indique que tel poste ayant
tel adresse MAC se trouve dans tel sous-réseau. Une fois l'adresse
MAC du destinataire extraite de la trame, 3 cas sont possible :
-
Si le destinataire n'est pas
connu dans ses tables d'adressage (il s'agit d'un nouveau poste ou les
tables d'adressages ont été vidées), le paquet est
retransmis sur l'autre sous-réseau. Puis le fait de recevoir de
nouveau le paquet depuis l'un ou l'autre des sous-réseau lui permettra
de situer la station inconnue, et donc de l'inscrire dans ses tables d'adressage.
Les paquets suivants seront alors distribués sans difficultés.
-
Si, d'après ses tables,
le destinataire est dans le même sous réseau que l'expéditeur,
il ne fait rien. Le paquet arrivera à destination sans son intervention.
-
Par contre, s'il est dans l'autre
sous réseau, il transmet le paquet.
De plus, le pont peut apprendre
les adresses auxquelles il doit transmettre tous les messages, ou celles
qui n'en recevront jamais. On peut donc faire en sorte que certains postes,
susceptibles d'abriter un logiciel espion (logiciel capturant les trames
qui ne lui sont pas destinées) ne reçoivent jamais certaines
données.
Interconnexion
par un routeur
Le routeur est un pont qui commute
les paquets au niveau 3 des couches ISO, en fonction de l'adresse IP du
destinataire. Il maintient donc des tables de routage qui font correspondre
les adresses IP des postes et ses ports, de façon à commuter
les paquets sur le bon port. Ils peuvent servir pour interconnecter des
réseaux distants, des sous-réseau de type différents
(Ethernet et Token Ring par exemple) et associés au switchs, ils
peuvent servir dans l'utilisation de VLAN.

Attaques sur un routeur :
Les routeurs communique entre
eux à l'aide du protocole RIP (Routing Information Protocol), qui
leur permet d'échanger leurs tables de routage, et donc de connaître
en permanence le chemin le plus court pour joindre un autre nœud du réseau.
Si un pirate fabrique de fausses informations de routage, et les transmet
à un routeur, il peut rediriger certaines informations à
sa guise, et donc, soit capter des informations qui ne lui sont pas destinées,
soit empêcher le fonctionnement du routeur, et provoquer un refus
de service de celui-ci.
Une technique pour router
des paquets à travers un réseau est le "routage par la source".
C'est le paquet IP lui-même qui contient ses propres informations
de routage, les routeurs n'ont alors qu'à suivre ses informations,
sans utiliser leurs tables de routage. A l'origine, ce système était
une solution de secours en cas de défaillance des routeurs. Si un
pirate construit des paquets IP de ce type, il pourra atteindre des postes
dont l'accès lui est normalement interdit. Le plus simple est de
configurer le routeur pour qu'il refuse ce type de paquets.
Interconnexion
par un switch
Le switch est un pont multi-port,
c'est à dire qu'il fonctionne comme un pont, avec 12, 24 ou plus
de ports. Ceci porte en théorie le nombre de domaines de collisions
au nombre de ports. Il peut commuter les trames au niveau 2 (adresses MAC),
et certains switchs offrent la possibilité de travailler au niveau
3 de la couche ISO (adresses IP).
Même s'ils sont souvent
utilisés dans le but d'accélérer le trafic, ils peuvent
aussi sécuriser un réseau en permettant son cloisonnement
à l'aide de réseaux virtuels ou VLAN.
Utilisation
des VLAN avec les switch
Un VLAN est groupe d'appareil
qui peut communiquer comme s'ils étaient sur le même réseau
physique, mais pouvant être situé n'importe où sur
le réseau. Cela permet donc de segmenter logiquement le réseau
en différant entités, et d'obtenir une séparation
totale de ces entités, sans pour autant déplacer le matériel,
re-brasser les câblages, ou modifier l'adressage IP existant.
En plus de l'optimisation
du trafic, les VLAN isolent physiquement plusieurs sous réseaux.
Avec l'utilisation d'un routeur, ou si le switch est de niveau 3, les VLAN
peuvent communiquer, mais en toute sécurité. Une trame ne
sortira du VLAN de l'expéditeur que si le destinataire n'en fait
pas partie, et si un routeur est configuré pour faire le lien entre
les VLAN. |
 |
Utilisation
des Domaines sous Windows NT
Windows NT permet de définir
des sous réseaux ou domaines qui apportent des sécurités
et une plus grande facilité de gestion au niveau d'un réseau
important.
Chaque domaine possède
son propre serveur primaire de domaine, et peut avoir plusieurs serveurs
secondaires. Une fois le réseau découpé en domaines,
il faut définir des relations d'approbation entre les domaines pour
qu'ils puissent communiquer ensemble.
Par contre, cette segmentation
logique du réseau n'est pas physique. Autrement dit, les trames
sont envoyées sur tous les postes. Windows NT se charge ensuite
de la prendre en compte ou pas, suivant les appartenances à tel
ou tel domaine, et les relations d'approbation correspondantes. Dans ce
cas, un poste utilisant un logiciel de capture de trame pourrait quand
même lire des données qui ne lui sont pas destinées.
Un utilisateur pourra même accéder à une ressource
d'un autre domaine que le sien, sans qu'aucune relation d'approbation de
son domaine vers l'autre ne soit définie, pour peu que le compte
invité soit activé dans l'autre domaine.
Il ne faut donc pas considérer
l'utilisation des domaines NT comme un cloisonnement sécurisé
en sous-réseaux.
Protéger
les données sensibles
Certaines données qualifiées
de très sensible ne peuvent pas circuler en dehors du réseau
interne en clair. Les transferts de paquets n'étant pas sécurisés,
il est parfois nécessaire de rendre ses données illisibles
par une autre personne que le destinataire.
Mais il ne faut pas non plus
obligatoirement crypter de façon poussée toutes les informations
sensibles. Si le pirate est en mesure de copier l'information sur son disque
dur, il pourra lui faire subir un décryptage poussé, et y
passer du temps. Par contre, si l'information ne fait que circuler et qu'elle
a une durée de vie réduite (mot de passe à usage unique
ou limité dans le temps, ...), le pirate disposera d'un temps très
court, et le niveau de cryptage pourra être moindre.
Une fois définis quelles
données devaient être cryptées (e-mail, mots de passe,
fichiers, ...), il faut décider quel besoin de protection est nécessaire
:
-
Les données doivent rester
confidentielles : chiffrement de l'information
-
Les données ne doivent
pas être modifier : hachage des données
-
Certifier l'expéditeur
des données : appliquer une signature numérique
Chaque méthode met en
place une ou deux clés, utilisées par l'expéditeur
ainsi que par le destinataire.
-
La même clé pour
les deux : algorithme symétrique.
-
Deux clés différentes
: algorithme asymétrique.
L'utilisation de deux clés
distinctes le plus sûre, car avec une seule clé, il est toujours
possible de l'intercepté quand elle est échangée entre
l'expéditeur du message et son destinataire. Alors qu'avec deux
clés, une des deux clés ne circule jamais sur le réseau
(voir plus loin la description du système PGP, qui est asymétrique).
Législation
sur le cryptage
Les législations sont
diverses à ce niveau, mais ce qui est sûre, c'est qu'on n'a
pas le droit de crypter ce que l'on veut comme on veut. Les gouvernements
aiment pouvoir contrôler les informations qui circulent sur leur
territoire, et ils limitent donc souvent le niveau de cryptage autorisé
à ce qu'ils sont capables de décrypter. En France, l'utilisation
de clés de 128 bits vient d'être autorisé. Avec des
clés d'une telle complexité, il faudrait plusieurs années
de traitement continue pour les casser.
Pour exemple, lors d'un concours
organisé par la société RSA Data Security, qui consistait
à casse une clé de 56 bits, le super-calculateur "Deep Crack"
a mis 23h30. L'alternative aux gros calculateurs, qu'un pirate ne peut
pas utiliser, est l'association de plusieurs ordinateurs personnels via
internet. Un serveur envoie des paquets de clés à tester
aux participants, et centralise les résultats. Il ne semble pas
avoir de limite à un tel fonctionnement, qui dépend directement
du nombre de participants. Pour le concours précédent, 50
000 ordinateurs ont ainsi travaillé en commun, et disposaient ainsi
d'une puissance de calcul supérieur à celle de deep Crack.
Chiffrement
des données
Transposition
Une clé numérique
permet de mélanger les caractères du texte à chiffrer.
C'est un algorithme symétrique.
On veut par exemple chiffrer
le texte suivant : LECORBEAUSURUNARBREPERCHE
La clé
choisie est: 3142 |
Le tableau de chiffrement
obtenue est :
1234
----
LECO
RBEA
USUR
UNAR
BREP
ERCH
E
|
Le texte chiffré est
donc : CEUAECLRUUBEEOARRPHEBSNRR
Substitution
Chaque caractère est
remplacé par un autre. Cette méthode utilise un algorithme
symétrique.
substitution par décalage
des caractères de la valeur de la clé
:
-
le texte en claire : "sécurité"
-
la clé = 5
-
le texte chiffré : "xjhzwnyj"
Substitution poly-alphabétique
Une clé alphabétique,
mise bout à bout, fournit une phrase de la même longueur que
la phrase à coder. Un tableau à double entrée permet
de faire correspondre au nième caractère de la phrase à
coder et au nième caractère à coder un caractère
précis.
Méthodes modernes
Elles appliquent des fonctions
mathématiques complexes au texte à coder, et utilisent deux
clés générées par ces fonctions. (exemple :
RSA)
Hachage
des données
En appliquant un algorithme
de hachage à un texte, un "résumé cryptographique"
de celui ci est obtenu, et sera envoyé en même temps que le
texte. Deux textes ne peuvent pas avoir le même résumé.
La personne qui reçoit
le texte n'a plus qu'à appliquer le même algorithme au texte.
Si le résumé qu'il obtient n'est pas identique à celui
qui accompagnait le message, c'est que le texte a été modifié.
Exemple de résumé
obtenu avec MD5 (Message Digest 5), à partir d'une phrase où
une seule lettre est modifiée :
-
MD5 ("message digest") = 100a88bb16f13ae8231e7b74257db820
-
MD5 ("message degest") = dbd0130180dd245c63957152502c0669
Authentification
de l'expéditeur
PGP
PGP (Pretty Good Privacy) est
un algorithme qui permet de chiffrer des e-mails et des fichiers, mais
aussi de les signer. Il est asymétrique, et est basé sur
les algorithmes de chiffrement RSA et MD5.
Chaque utilisateur possède
une clé publique et une clé secrète. Il faut avoir
la clé publique d'une personne pour lui envoyer un message, et pour
déchiffrer ceux qu'elle nous envoie.
Soit la notation :
-
Pi(message) : la clé
publique de l'utilisateur i est appliquée au message
-
Pj(message) : la clé
publique de l'utilisateur j est appliquée au message
-
Si(message) : la clé
secrète de l'utilisateur i est appliquée au message
-
Sj(message) : la clé
secrète de l'utilisateur j est appliquée au message
Alors, i envoie le message Pj(message)
à j, que ce dernier sera seul à pouvoir lire, car pour le
déchiffrer, il faut lui applique Sj(Pj(message)).
En effet, on a la relation
: P(S(message)) = S(P(message)) = message
Et P(message) et S(message)
est illisible.
Signature
Pour signer un message, i peut
envoyer à j en plus du message une signature : Si(MD5(message)).
L'utilisateur i étant le seul à pouvoir créer ce message,
car il est codé avec sa propre clé secrète.
Pour vérifier la signature,
l'utilisateur j calcul Pi(Si(DM5(message))) et MD5(message), et il vérifie
qu'il trouve bien la même chose.
Pour combiner confidentialité
et signature, l'utilisateur i envoie à j le message Pj(Si(message,
MD5(message)))
La seule façon de
contrer cette méthode est de diffuser une fausse clé publique
au nom d'une personne, et en utilisant la clé privée qui
va avec, décoder les messages qu'il reçoit. Mais si la personne
piratée consulte ses messages avant le pirate, elle s'en rendra
tout de suite compte, car sa propre clé privée ne fonctionnera
plus.
Pour contrôler l'intégrité
d'une clé publique, il est possible d'en déposer un exemplaire
chez un tiers de confiance, qui pourra la délivrer à la demande.
Cette solution est proposée de façon officielle, par des
organismes agréés par l'état.
Toutes ces procédures
sont bien sur automatisées dans des logiciels dédiés.
5 -
Protection vis à vis de l'extérieur
Il peut s'avérer nécessaire
d'ouvrir son réseau à l'extérieur pour permettre à
d'autres d'avoir accès aux ressources locales, ou pour avoir soi-même
accès à d'autres ressources externes. Par le passé,
ces accès à distance se faisaient à l'aide de systèmes
propriétaires et peu répandus. Il y avait donc peu de risque
de subir une attaque de l'extérieur. Mais avec le développement
du protocole IP et des services internet, le risque devient mondial.
L'internet, et donc par conséquent
ses points d'accès qui sont souvent des firewalls, sont souvent
vus comme le point qui concentre tous les dangers, tous les risques d'intrusion.
Pourtant, il ne faut pas négliger les autres accès extérieurs
qui sont les modems classiques ou numéris, les ligne de télémaintenance,
ou les connexions hautes débit des gros systèmes. Le niveau
de sécurité d'un réseau est en effet égale
à celui de son point le plus faible. Il ne sert à rien de
surprotéger un accès si on laisse une porte ouverte à
côté.
Attaques
possibles
Espionnage
du réseau
Même s'il ne s'agit pas
d'une attaque directe, l'espionnage des communications sur un réseau
peut permettre de recueillir des informations confidentielles, ou bien
de préparer une future attaque plus violente. Une des techniques
est de se connecter physiquement à un des câbles réseau
et de capter les paquets de données qui y circulent.
Windows NT fournis en standard
un logiciel de capture de trame. Il en existe aussi un grand nombre disponibles
sur internet. Il n'est donc pas compliqué pour quelqu'un de se fournir
un tel logiciel, et de s'en servir pour capturer des informations. Cette
technique étant passive, elle est par contre très difficile
à détecter. Si quelqu'un se branche sur un câble réseau
et installe un sniffer (logiciel de capture de trame), on ne peut pas le
détecter, même à l'aide d'un autre logiciel de capture
de trame.
Il est tout de même
possible de se protéger, si par exemple on a une ligne qui circule
à l'extérieur de l'entreprise. On utilisera de préférence
de la fibre optique, qui n'émet pas de signal électrique,
et qui sera donc plus difficile à détecter dans le sol. Certains
médias sont en effet plus facile à pirater que d'autres :
-
Le câble Token ring est
un câble blindé à 4 paires torsadées. La topologie
en étoile rend difficile un branchement pirate sur un câble.
-
Le câble coaxial 10Base5
: on peut le dérivé sans le couper, avec un transcender.
Il n'est donc pas très sûr.
-
Le câble Ethernet 10baseT
ou 100BaseT est très courant, il ne faut donc pas laisser des hubs
ou des switchs accessibles aux utilisateurs, car ils pourraient se connecter
sur un port à l'aide d'un câble personnel. Les prises réseaux
inutilisées des bureaux doivent être désactivées,
et les ports des hubs ou switch aussi, si cela est possible par le matériel.
-
La fibre optique est très
difficile à pirater, car dès qu'elle est coupée, le
réseau et indisponible, ce qui rend la tentative repérable.
-
Les connexions sans câbles,
comme le satellite, l'infrarouge, les ondes radio : les informations peuvent
facilement être espionnées. Elles n'arrivent en effet pas
directement dans l'appareil de réception, mais dans un rayon de
taille variable tout autour d'elle. Si un capteur espion est placé
à proximité de celle de l'entreprise, elle pourra capter
les signaux reçus par l'entreprise, et les consulter. Il faut donc
associer à ce mode de transmission un cryptage de l'information.
La technique
du bourrage
Si un pirate veut espionner
les échanges de données entre deux postes, il peut filtrer
les paquets qui circulent sur la voie de communication en fonction des
adresses IP des correspondants, et ne retenir que les paquets échangés
par ceux ci. Il peut ensuit lire le contenu des paquets, et recueillir
des informations. Mais si les échanges de donnés sont trop
importants, il n'aura pas le temps de tous les capter ou de tous les analyser.
Une solution est donc de produire un flux continue d'information entre
les deux correspondants, et d'envoyer les paquets réellement porteurs
d'information mélangés à d'autres sans importance.
Le logiciel du pirate ne saura pas faire la différence, il sera
submergé d'information, et le traitement lui prendra trop de temps.
Mais une telle pratique nécessite de pouvoir monopoliser une ligne
de communication, ce qui n'est pas possible en cas d'utilisation partagée
par un nombre important d'utilisateurs.
Attaques
d'un réseau
IP spoofing
Cette technique vise à
contrôler un système en se faisant passer pour une machine
qu'il connaît, et en qui il a toute confiance.
Stealth scan
C'est le fait d'envoyer des
paquets vers un firewall, sans essayer de se connecter. Le firewall ne
pourra pas constater d'attaque, et ne notera pas dans ses journaux cette
approche. Par contre, cela permet aux pirates de repérer le fonctionnement
du firewall en vue d'une véritable attaque ultérieure.
Brute force
C'est une méthode pour
prendre le contrôle d'une machine sur un réseau, en essayant
les mots de passe d'origine des systèmes, au cas où l'administrateur
aurait oublié d'en changer un. Des mots de passe génériques
peuvent aussi être essayés.
Déni de service
L'objectif est d'empêcher
l'utilisation de certains services du réseau. Il existe plusieurs
façon d'arriver à ce résultat, mais toutes ont la
même stratégie : saturer le serveur ou le firewall par des
demandes pour le bloquer.
-
Sync storm : établir
le plus possible de liaison TCP/IP.
-
Système lock flood :
générer un maximum d'entrées dans le fichier de log
du firewall pour le saturer.
-
Data flood : envoi d'un grand
nombre de données sur un port donné du serveur visé.
-
Open-close : ouvrir et fermer
un même fichier de nombreuses fois.
Intrusion
par un script CGI
Les scripts CGI utilisés
pour traiter des bases de données via le web, ont la particularité
d'être placés sur les serveurs web. Ils sont donc dans un
endroit stratégique. Si un pirate réussi a en installer un
de sa conception, le script pourra alors naviguer sur le serveur, accéder
aux données qu'il est censé traiter, ou ouvrir une porte
que le pirate pourra utiliser par la suite pour une autre attaque.
Une intrusion
pas à pas
Il peut être utile de
connaître la façon de procéder de certains pirates,
pour ensuite mieux s'en prémunir.
Avant de débuter toute
tentative d'intrusion, le pirate commence en se créant un anonymat,
à l'aide d'une boite aux lettres chez un fournisseur gratuit, comme
hotmail.com, usa.net, ou encore mieux, en France, une adresse électronique
à l'aide du Minitel, qui rend impossible l'identification de son
propriétaire. Pour ce qui est de la connexion internet, les fournisseurs
d'accès gratuits offre la possibilité d'en changer souvent.
Il existe en plus des services sur internet comme anomyzer.com, qui fournissent
des passerelles web permettant de surfer de façon anonyme. L'utilisation
d'un Proxy par le pirate lui permet en plus de camoufler ses connexions.
1. Le pirate a d'abord besoin
de connaître des informations sur le réseau qu'il veut attaquer.
L'envoi d'e-mail à une adresse inventée associée à
un site (essai@societe.com par exemple) renverra un message d'erreur, contenant
l'adresse IP du serveur. Il peut aussi utiliser les adresses e-mail qui
figurent sur le site de l'entreprise. L'outils Who is, qui permet
des recherches sur l'adresse e-mail, ou l'adresse URL d'un site, retourne
en réponse les coordonnées de l'hôte du service web,
ainsi que la ou les adresses IP du serveur. La commande nbstat -A 100.100.100.100
lui donnera des informations sur le serveur possédant cette adresse
IP, comme le numéro d'ordinateur, le nom des utilisateurs connectés.
L'utilisation de finger donnera également des informations
sur les comptes d'utilisateurs pour les systèmes utilisant TCP/IP
et DNS.
2. Pour affiner la localisation
du serveur web, L'outil DOS traceroute permet de connaître
tous les nœuds IP traversé par un paquet jusqu'au serveur visé.
3. Une première intrusion
peut alors être tentée par l'utilisation de Telnet. Si le
premier port n'est pas accessible, un logiciel scanneur de port comme "Aggressor
Exploit Generator" permettra de tous les passer en revue, au cas ou
un l'eux serait ouvert.
4. Si le Telnet fonctionne,
il faut souvent franchir la barrière de l'identification. Le pirate
passe alors en revue les identifiants génériques, comme "root",
"administrateur", "admin", "sys", "install", qui permettent d'avoir tous
les pouvoirs d'administration. Il peut ensuite essayer des identifiants
qui offrent moins de pouvoirs, comme "user", "guest", "invité".
Il peut aussi essayer les identifiants récoltés à
travers les e-mails figurants sur le site, en essayant des mots de passe
génériques.
5. Si cette voie ne s'ouvre
pas, le pirate se rabat sur le port FTP, et essaye d'utiliser les noms
de serveurs ou les adresses IP qu'il a pu recueillir auparavant. Si le
système s'ouvre, il recherchera alors le fichier contenant les mots
de passe du réseau sous forme cryptée, qu'il pourra décoder
avec un logiciel de crackage de mots de passe.
6. Si la porte FTP reste
infranchissable, le pirate utilise les adresses électroniques récoltées
avant pour entrer sur le serveur de messagerie, et pour ensuite récupérer
le fichier passwd qu'il déchiffrera.
7. Une fois le mot de passe
d'un utilisateur en main, le pirate peut tenter une nouvelle pénétration
par un Telnet. Dès qu'il parvient à utiliser un compte d'utilisateur,
il essaie d'augmenter les droits de celui-ci, pour pouvoir faire ce qu'il
veut.
Les pirates ont d'autre méthodes
pour obtenir des informations sur une entreprise. Une téléprospection
ou un faux publipostage pourra recueillir des informations, ou les tickets
de carte bleue dans les magasins, ou même les poubelles, qui peuvent
révéler des informations confidentielles. Mais la plus grande
source d'information reste sûrement l'internet, et principalement
les forums de discussions qui fournissent une manne pour qui recherche
des e-mails.
Les attaques ont donc souvent
lieu à travers des entrées détournées du réseau,
les " backdoors " ou portes de derrière. Elles sont d'autant plus
à craindre qu'elles sont de plus en plus pratiquées par des
personnes ne possédant pas forcement une grande culture informatique.
Elles peuvent donc faire des dégâts sans le vouloir.
Déterminer
et sécuriser les ressources accessibles depuis l'extérieur
Une topologie
sécurisée
S'il est indispensable de protéger
chaque élément du réseau contre toute malveillance,
il est aussi primordial que l'ensemble de l'organisation du réseau
soit cohérente. La topologie du réseau doit intégrer
la sécurité.
Pour une entreprise qui est
connectée à internet, et a plus forte raison, qui offre des
services sur internet (serveurs mail ou web au sein même de l'entreprise),
il faut mettre des protections entre le réseau interne et le réseau
externe. Un firewall permet par exemple de filtrer ce qui entre et ce qui
sort.
Si certains serveurs doivent
être en lien direct avec l'extérieur, on peut alors créer
une zone "démilitarisée", qui sera protégée
de l'extérieur par un firewall. Après cette zone, le réseau
interne sera lui-même protégé par un autre firewall.

Dans un autre cas de figure,
si une entreprise met en accès un site web depuis un serveur web,
mais que le réseau interne n'a pas besoin d'utiliser de ressources
externes, le serveur web peut alors être la seule machine connectée
à internet, en étant totalement autonome par rapport au reste
du réseau. Les autres postes du réseau sont donc totalement
protégées des attaques extérieures.
Comme les risques d'intrusion
sont plus importants pour un réseau offrant un accès public
à un serveur web, il peut être judicieux de le séparer
totalement du reste du réseau. S'il subit une attaque d'un pirate,
le réseau locale ne pourra pas être touché. Le réseau
local pourra quand même accéder aux données de ce serveur
en se connectant via internet, comme tout autre client consultant ce serveur.
Dans le cas ou un serveur
FTP est installé pour mettre en accès des fichiers depuis
l'extérieur, il faut savoir que les mots de passe servant à
identifier un utilisateur FTP circulent en clair sur le réseau.
Il ne faut donc pas que les comptes du réseau interne servent à
accéder au serveur FTP. Dans le domaine du possible, il est préférable
de n'avoir que des accès anonymes sur le serveur FTP. Dans tous
les cas, aucunes donnée confidentielle ne doit être stockée
sur ce type de serveur.
Les postes qui offrent leurs
services à l'extérieur sont par définitions toujours
des serveurs, et ont donc des données sensibles. Il faut donc ouvrir
les accès aux ressources dont ont besoin les utilisateurs extérieurs,
mais uniquement celles-ci. Et tout comme pour les ressources partagées
en locale, il faut définir et appliquer des droits précis
: lecture seule, écriture, modification, contrôle total, ...
Ces machines doivent être
particulièrement suivies. Les versions des systèmes et des
applications doivent être régulièrement mises à
niveau et les correctifs de sécurité doivent être installés
dès qu'ils sont connus.
Tous les services réseaux
inutiles seront désactivés, et un outil de contrôle
et de trace des connexions tel que "tcp_wrapper" sur Unix sera utilisé.
Sur ces serveurs, tous les messages de journaux d'audit seront renvoyés
sur un serveur interne, pour être sûr qu'ils ne soient pas
corrompus.
Les données confidentielles,
internes à l'entreprise, ne seront pas placées sur ces serveurs.
Par exemple, dans le cas d'un site internet publique, et d'un intranet
privé, les données ne seront pas sur le même serveur.
Utilisation
de Windows NT
Sachant que l'installation par
défaut de ce système installe plusieurs services qui ne sont
pas forcément nécessaires dans tous les réseaux, il
est conseillé de les arrêter. Tout service inutile est une
porte d'entrée potentielle, qui sera d'autant moins protégée
qu'elle n'est pas utilisée. Une autre stratégie est d'exécuter
ces services sous des comptes autres que le compte système (utilisé
par défaut par tous les services), et de doté ces comptes
de moins de privilèges. Le compte système peut en effet accéder
au système dans son ensemble, et si le service est défectueux,
s'il est détourné ou utiliser par un pirate, il pourra causer
de nombreux dommages.
De plus, une façon
de recevoir les mise à jour de Windows NT le plus vite possible,
dès que des trous de sécurités sont découverts
et corrigés, est d'utiliser la version internationale. Les services
pack et autres Hot-Fix sortent toujours avant pour cette version.
Limiter
les accès secondaires au réseau
Pour répondre à
certains besoins précis, il peut être nécessaire de
mettre en place des liens entre le réseau local et l'extérieur
autres que le lien principal, qui lui peut être protégé
par un firewall et/ou un Proxy.
-
Mise en place d'un accès
distant via un modem sur un serveur.
-
Utilisation d'un modem en local
sur un poste pour accéder à internet ou à des services
télématiques (Minitel, transferts bancaires, ...).
-
Echanges de données avec
d'autres entreprises par EDI (Echange de Données Informatisées)
Ces portes d'entrée
doivent être ouvertes en connaissance de cause : elles sont des portes
d'entrée aux intrusions au même titre que l'accès principal
du réseau. De plus, elles sont utilisées par une personne
en qui l'entreprise a toute confiance, comme un de ses employés,
une banque, une entreprises associée, et on peut donc avoir tendance
a ne pas protéger assez ces liens. Ainsi, si un pirate en découvre
l'existence, il aura moins de difficultés à l'utiliser pour
pénétrer le réseau.
Lors d'une connexion au réseau
local à distance, par le service RAS sous Windows NT par exemple,
il ne faut pas qu'une personne de l'extérieur puisse se faire passer
pour un des administrateurs du réseau. Il aurait alors tout pouvoir,
et pourrait causer de graves dommages. Il ne faut donc accorder le droit
de connexion à distance à aucun administrateur, sauf s'il
doit faire des tâches d'administration à distance. S'il doit
juste accéder à certaines ressources du réseau, il
peut utiliser un autre compte qui possède des droits moindres, et
qui offrira donc moins de possibilités s'il se fait pirater.
Ces accès secondaires
sont souvent mis en place à l'aide d'un modem. Or, un pirate peut
utiliser un "numéroteur de choc", un logiciel qui compose des centaines
ou des milliers d'appels par jour à la recherche des tonalités
de connexion des modems. Une fois le numéro de téléphone
associé au modem, il sait que ce numéro est une porte d'entrée
vers un ordinateur, ou mieux, le serveur d'un réseau local. Il peut
alors tenter de se connecter à l'ordinateur qui se trouve derrière
le modem. Une solution pour que son modem ne soit pas repéré
par de tels logiciels est de le configurer pour qu'il ne décroche
pas dès la première sonnerie. Le numéroteur n'attendra
pas plusieurs sonneries, et passera au suivant sans voir le modem.
Le
choix des protocoles à utiliser
Par le passé, les environnements
qui nécessitaient des niveaux de sécurité élevés
utilisaient souvent des protocoles propriétaires sur leurs réseaux.
Leur fonctionnement était très peu connu, et les hackers
avaient donc du mal à mettre au point des attaques sur un environnement
qu'ils ne connaissaient pas. Mais aujourd'hui, le protocole TCP/IP s'est
imposé comme un standard de fait, et toute connexion d'un réseau
vers l'extérieur passe presque obligatoirement par lui. Tout le
monde peut connaître en détail les mécanismes de ce
protocole.
Pour une entreprise de petite
taille, n'ayant pas besoin d'une sécurité maximale, les postes
qui ne doivent pas être reliés directement avec l'extérieur
peuvent avoir une adresse IP qui ne soit pas routable. Ce sont des adresse
qui normalement, ne doivent pas être transmise sur internet par les
routeurs. Les informations circulant en interne ne pourront donc pas sortir
du réseau local.
-
Pour la classe A : les adresse
commençant par 10.-.-.-
-
Pour la classe B : les adresse
commençant par 128.-.-.-
-
Pour la classe C : les adresse
commençant par 192.-.-.-
Pour les entreprises de plus
grandes importances, si TCP/IP est indispensable, il faudra mettre en place
une solution globale, qui conjuguera des commutateurs et des routeurs pour
scinder le réseau en différant entités. Ceux-ci étants
configurés pour filtrer très précisément les
paquets en fonction des adresses IP.
Un serveur utilisant la pile
de protocole TCP/IP offre potentiellement 1000 points d'entrée pour
des clients, ou pour des pirates essayant de s'introduire dans son système.
Le protocole communique en effet à travers des ports, au nombre
de 1000. Certains sont connus, comme le port 20 ou 21pour le FTP, le port
80 pour le web, ou le port 23 pour Telnet. Ces ports connus sont souvent
les premiers attaqués par des pirates, mais souvent les mieux protégés.
Par contre, un logiciel de recherche de ports peut scruter tous les ports
d'un serveur, et vérifier s'ils sont ouverts ou fermés, et
dans la première alternative, s'ils sont protégés.
En effet, certains logiciels ouvrent un port pour communiquer, mais ne
le referme pas, laissant ainsi une porte d'entrée sur le système.
Une technique est de tous les fermer, puis de rouvrir uniquement ceux qui
sont utilisés. Ces outils d'analyse peuvent aussi être utilisés
par l'administrateur pour vérifier l'état des ports d'un
serveur. L'un de ces logiciel le plus connu est "SATAN"
Un risque sur certains réseaux
à hautes performances, comme sur le Gigabits Ethernet, est de saturer
les routeurs en raison du trop grand nombre de paquet à contrôler.
Dans ce cas, le routeur pourra laisser passer des paquets sans les contrôler.
Il faut donc plafonner la vitesse du réseau à celle que peuvent
supporter les routeurs, ou prévoir des routeurs assez performants.
Le protocole TCP/IP n'est
pas toujours indispensable au bon fonctionnement d'un réseau local.
On peut donc utiliser une solution multi-protocoles pour empêcher
une intrusion sur le réseau local. Par exemple, si un utilisateur
en déplacement doit accéder à certaines données
stockées sur un serveur, on peut lui configuré sa connexion
pour utiliser le protocole NetBeui, qui a la particularité de n'être
pas routable. Si le serveur auquel il accède est configuré
pour NetBeui et TCP/IP, et les postes du réseau local pour TCP/IP,
le client distant pourra bien accéder au serveur avec NetBeui, les
postes du réseau local accéderont à ce même
serveur avec TCP/IP, mais le client distant ne pourra pas accéder
au réseau local.

Détection
d'intrusion
Les réseaux locaux se
doivent de plus en plus de fournir des services à des personnes
distantes (clients, employés nomades, ...). Une barrière
physique ne suffit donc plus pour protéger un réseau. Il
faut un niveau de protection logique. Mails malgré l'utilisation
de firewall ou de Proxy, il est toujours possible à une personne
non autorisée dans s'introduire dans un réseau local. Donc,
si on ne peut pas totalement empêcher les intrusions, il faut tout
de même pouvoir les détecter, pour réagir au plus vite.
Tout comme les logiciels
antivirus, les détecteurs d'intrusions ont des signatures en mémoire
qui permettent de reconnaître une tentative d'intrusion. Il est indispensable
de mettre à jour régulièrement auprès des éditeurs
ces fichiers de signatures.
De tels logiciels peuvent
automatiquement, par message sur un poste ou par mail, avertir une personne
déterminée en cas de détection d'intrusion. De façon
autonome, ils peuvent aussi reconfigurer automatiquement le firewall pour
qu'il bloque toute connexion en provenance de la source suspectée.
Il existe plusieurs façon
de détecter qu'une personne extérieure essaye de s'introduire
sur un réseau.
L'approche
comportementale
En comparant le comportement
d'un utilisateur avec celui d'utilisateur " normal ", on peut détecter
une tentative d'intrusion. Il faut pour cela mettre en place des outils
:
-
Les statistiques
-
Les système expert
-
Les réseau de neurones
-
L'immunologie
L'approche
par scénario
En connaissant le mode opératoire
de certaines attaques, on peut les déceler quand elles sont reproduites.
Cette technique utilise :
-
Les systèmes experts
-
La reconnaissance de mode opératoire
-
Les algorithmes génétiques
Utilisation
d'un firewall
Un firewall est un matériel
autonome ou un ordinateur équipé de plusieurs cartes réseaux
placées entre le réseau interne et le réseau externe
(souvent l'internet). Comme son nom l'indique (pare-feux), il sert à
protéger le réseau local de problèmes pouvant provenir
de l'extérieur. Il traite les paquets au niveau physique, au niveau
IP (couche réseau), jusqu'à la couche transport.
Un firewall peut avoir deux
utilités :
-
Filtrage de paquets.
-
Relais d'application ou Proxy.
Filtrage
de paquets
Ce rôle d'un firewall
est d'être un filtre entre le réseau local et un autre réseau.
Il se met en place sous la forme d'un routeur ou d'un ordinateur dédié
qui transmet les paquets en suivant un certain nombre de règles
déterminées.
Il sert aussi à superviser
tout le trafic entrant et sortant du réseau, et fournit donc des
informations pour détecter des tentatives d'intrusion, ou pour remonter
jusqu'aux responsables d'intrusions.
Il ne s'agit pas d'une solution
totalement efficace vis à vis des malveillances qu'un réseau
local peut subir, mais c'est une façon de se préserver contre
certaines tentatives d'intrusion. Elle est par exemple inefficace contre
les attaques de virus.
Chaque paquet IP contient
des informations que le routeur va extraire et étudier :
-
l'adresse de l'expéditeur
-
l'adresse du destinataire
-
le port IP du service demandé
-
le port IP du poste demandeur
-
le flag (drapeau) qui
précise si le paquet est une réponse à une demande
de service, ou un demande d'établissement de connexion. Un flag
ayant la valeur "ACK" (acknowledge) indique que le paquet fait partie d'une
discussion en cours
-
la date
Le filtre peut alors mettre
en application plusieurs règles, contenues dans un fichier de règles,
et basées sur les informations des paquets. Il existe deux façons
d'écrire les règles des firewall.
Tout ce qui n'est pas explicitement
interdit est autorisé : Dans ce cas, les règles décrivent
l'ensemble des services qui doivent être filtrés par le firewall.
Les critères de chaque paquet sont comparés aux règles,
les unes après les autres, et si aucune ne rejette le paquet, il
est accepté.
Tout ce qui n'est pas explicitement
autorisé est interdit : Dans ce cas, les règles décrivent
l'ensemble des services qui doivent être acceptés par le firewall.
Les critères de chaque paquet sont comparés aux règles,
les unes après les autres, et si l'une accepte le paquet, il est
accepté.
On peut par exemple, dans
un environnement très sécurisé, n'accepter que les
paquets entrant comprenant le flag acknowledge. Ceci qui signifie que les
utilisateurs internes peuvent demander des services à l'extérieur,
et que seul les réponses à ces demandes de services peuvent
pénétrer le réseau.
Dans un fichier de règle,
il est important de faire attention à l'ordre des règles.
Elles sont appliquées les unes après les autres, comme si
on appliquait des tamis des plus en plus fins. Donc, si un service est
rejeté par une règle, puis accepté par une autre règle
plus loin dans le fichier, il ne sera pas accepté.
Exemple de règle :
-
access-list 101 permit udp a.b.0.0
0.0.255.255 0.0.0.0 255.255.255.255 eq 53
-
access-list 101 deny ip c.d.e.f
0.0.0.0 0.0.0.0 255.255.255.255
-
Autorise l'accès au port
53 de toutes les machines du réseau interne depuis les machines
externes ayant une adresse IP dans la plage a.b.0.0 à 0.0.255.255
-
Interdit ensuite l'accès
de la machine ayant l'adresse IP c.d.e.f sur tous les ports de toutes les
machines du réseau interne.
De plus, ils ne sont
pas capables de déchiffrer les informations liées au "login".
Si une intrusion passe le cap des filtres, il est difficile de reconstituer
le schéma de l'intrusion.
Conclusion sur le filtrage
de paquets :
-
Solution peu coûteuse,
car il suffit de configurer un routeur avec les règles à
appliquer.
-
Configuration délicate
pour une solution optimale.
-
Certains services sont difficiles
à sécuriser.
-
Chaque paquet est vérifié,
donc un nombre de règle trop important peut ralentir le travail
du routeur.
Relais
d'application ou Proxy.
Il s'agit d'un logiciel qui
se situe entre les clients et les serveurs, qu'ils soient en interne dans
réseau local, ou en externe.
Son rôle :
-
Il relaye tous les échanges
entre clients et serveurs
-
Il authentifie tous les services
-
Il maintient un journal de toutes
ce qui passe par lui
-
Il masque certaines informations
(nom et adresse IP) des machines du réseau interne, et les remplace
par les siennes
Il permet donc d'empêcher
les personnes extérieures au réseau d'avoir des informations
sur l'organisation du réseau, comme par exemple les adresses IP
des postes. Seule celle du serveur Proxy sera connue de l'extérieur.
Par contre, les applications
doivent être prévues pour utiliser un Proxy, et l'utilisateur
doit configurer ses applications localement avec les informations du Proxy.
Son utilisation n'est pas transparente.

D'autres services, parfois
utiles sont fournis par les Proxy :
-
Un historique de toutes les
connexions à l'internet des utilisateurs est maintenu. On peut ainsi
contrôler l'activité des utilisateurs.
-
Une liste d'URL peut être
interdite, pour proscrire certains sites aux utilisateurs internes.
-
Les pages web récemment
consultées sont mises en cache, ce qui accélère les
consultations.
Un
exemple d'outils de gestion de la sécurité sur un réseau
IP: IP-Watcher, d'En Garde Systems
Une entreprise peut avoir un
réseau important, avec plusieurs types de serveurs : Windows NT,
UNIX, Novell NetWare, OS/2, des gros et moyens systèmes IBM. Dans
ces conditions, un ou plusieurs administrateurs réseau ne peuvent
pas définir une sécurité optimale uniquement à
l'aide des outils fournis par les différents systèmes. Il
faut dans ce cas là une solution globale, que seules des sociétés
spécialisées dans la sécurité peuvent offrir.
Plusieurs produits d'observation
du réseau existent. IP-Watcher en est un, et il permet de contrôler
tout ce qui se passe sur un réseau, et de prendre le contrôle
des sessions en cours. Ce type d'outils est donc très puissant,
met peut aussi être très dangereux s'il est utilisé
par une personne mal intentionnée.
Les services fournis par
IP-Watcher sont :
-
Inspection de toutes les données
transmises entre deux postes, et de toutes les connexions au réseau.
-
Permet de visualiser en temps
réel une session d'un poste du réseau, comme l'utilisateur
de la session, et de l'enregistrer en mode texte, pour étude ultérieure.
-
Une interface permet de sélectionner
et de filtrer les sessions à étudier.
La technique d'espionnage d'IP-Watcher
est l'analyse réseau active, qui contrairement à l'analyse
passive, peut interagir avec les communications réseau. Il est possible
d'intercepter et de fabriquer de faux paquets IP, et donc de se faire passer
pour un serveur ou pour un client, sans que l'autre interlocuteur ne s'en
rende compte. La société En garde recommande donc que les
utilisateurs soient authentifiés en permanence durant leur session,
pour éviter qu'un tel logiciel ne prenne la main sur session une
fois l'authentification effectuée. Dans le cas d'un routeur qui
autorise l'accès au réseau en fonction de l'adresse d'expédition,
il pourra laisser passer un paquet envoyé de l'extérieur
s'il possède une fausse adresse d'expédition correspondant
à un poste interne.
Une attaque par dénie
de service est très facile à effectuer, il suffit de stopper
une session d'un serveur. De plus, si le client est déconnecté,
il essaiera sûrement de se reconnecté, et l'utilisateur de
l'analyseur réseau pourra alors capter le mot de passe s'il est
envoyé en clair.
La seule riposte à
ce type de logiciel est de crypter les donnée, car même si
une session est détournée, et que le pirate redirige vers
lui des informations, il ne pourra pas les lire.
Protection
vis à vis des virus
Un virus est un programme, parfois
destructeur, dont le but est de se déplacer de machine en machine
pour propager son action. Il s'attache à d'autres fichiers, souvent
des exécutables (.com ou .exe dans le monde Windows) pour pouvoir
circuler, et sont moins présents dans les environnements UNIX
Avant le développement
de l'internet, les virus se propageaient presque uniquement par l'échange
de disquettes. En contrôlant leur utilisation, on pouvait alors se
protéger efficacement. Aujourd'hui, ils utilisent principalement
les courriers électroniques, et circulent donc par l'internet.
Quelques règle de
sécurité peuvent diminuer les risques :
-
Ne jamais ouvrir un fichier
joint à un e-mail si son expéditeur est inconnu. Sa simple
exécution peut permettre au virus de se développer.
-
Avoir un logiciel antivirus
installé sur chaque poste du réseau, et télécharger
régulièrement les mise à jour des signatures de virus
mises à disposition sur les sites des éditeurs.
-
En cas de contamination d'une
machine, limiter au maximum ses liens avec les autres machines du réseau,
jusqu'à l'éradication du virus, pour éviter sa propagation
à d'autres postes.
-
Si un virus est détecté,
mais que le logiciel n'arrive pas à le supprimer, envoyer les informations
sur ce virus à l'éditeur du logiciel, pour lui permettre
de trouver une parade. Cette procédure est souvent automatisée
sur les logiciels récents.
Les cibles
des virus
Les virus de fichiers ajoutent
leur code aux fichiers exécutables, et sont donc lancés chaque
fois que l'exécutable est lancé. Ils peuvent interférer
avec le système, et se propager au sein de la machine.
Les virus du secteur d'amorce
du disque dur ou des disquettes : ce secteur est le premier qui est chargé
en mémoire centrale lors du démarrage du système.
Les virus cherchent donc à y écrire leur code pour être
exécuté à chaque démarrage.
Les virus des tables de partition
des disques durs : Cette table, qui décrit l'organisation du disque
dur en disques logiques, est chargée à chaque démarrage
du système, et n'est pas modifiée lors d'un formatage classique
du disque dur. C'est donc un emplacement stratégique pour les virus.
Il faut un formatage de bas niveau pour le supprimer.
Les virus de macro cherchent
à infecter les documents créés par les logiciels de
bureautique les plus courants, en s'associant aux macros qui peuvent les
accompagner. Ils sont surtouts présents dans des fichiers Word,
Excel, et peuvent circuler sur les versions PC ou Macintosh.
Les virus de blocs modifie
les entrées dans les répertoires et dans la FAT, pour que
certains programmes pointent vers eux.
Un virus intelligent peut se
protéger
Certains virus sont plus difficiles
que d'autre à détecter, car ils peuvent avoir des techniques
pour ne pas être enrayé.
Les virus furtifs
Ils peuvent détourner
certaines commandes qui pourraient les identifier, comme la vérification
de la taille de fichier. (un virus croit régulièrement de
volume). Il peut ainsi rester invisible du système et de logiciels
antivirus.
Les virus cryptés
Ils modifient eux même
leur code en le cryptant pour rendre leur détection plus difficile.
Par contre, le programme leur permettant de se décrypter doit tout
de même rester en clair.
Les virus mutants
ils modifient leur aspect, leur
signature, leur code d'identification, chaque fois qu'ils contaminent un
nouveau fichier
Les virus de pièges
Ils associent un virus connu
à un virus encore inconnu. Si le premier est détecté
et supprimé, le second reste en place.
Les rétrovirus
Ils sont créés
pour contrer et déjouer les fonctions d'un logiciel antivirus connu.
Les risques encourus
Les virus peuvent avoir des
effets plus ou moins graves. Du simple dysfonctionnement de certaines applications,
à l'instabilité du système, jusqu'à la destruction
d'information. Mais il y a plus dangereux, comme le rapatriement de données
vers le créateur du virus, ou la modification de données
de l'entreprise, ce qui est indécelable, et donc impossible à
corriger.
Mais par contre, un virus
ne peut pas détruire le matériel. Il peut juste supprimer,
copier ou altérer des données, ou au pire, supprimer le BIOS
d'une carte mère, ce qui la rendra inutilisable, mais il est presque
toujours possible de le réinstaller.
Tester
les solutions mises en place
Une fois que les différentes
solutions ont été mises en place, il reste encore un travail
important : tester l'efficacité de ces solutions. Pour cela, des
tests d'intrusion, effectués par quelqu'un de l'entreprise, ou de
façon plus poussée par une entreprise spécialisée,
permettront de mettre en évidence les faiblesses de la solution
choisie.
On pourra ainsi améliorer
la solution choisie, si la faiblesse est importante, ou bien seulement
prévoir les améliorations possibles dans le futur si les
corrections n'ont pas un caractère urgent.
6 -
Sécurité passive
Veille
technologique
La veille technologique consiste
à se tenir au courant en permanence des informations ayant trait
aux sécurités.
Elle peut s'effectuer auprès
de divers organismes :
-
Les fournisseurs de services
ou de matériel informatique ont souvent des listes de diffusions,
forums ou sites web qui permettent de faire circuler les informations à
propos des problèmes rencontrés sur leurs systèmes,
ainsi que les solutions qui peuvent y être apportées. Par
exemple, si l'entreprise utilise une liaison spéciale comme TRANSPAC,
RENATER ou autre, ces organismes ont des groupes de travail chargé
de suivre toutes les évolutions des systèmes informatiques.
Des groupes de travail comme le CERT (Computer Emergency Response Team)
publient aussi très régulièrement des avis sur les
trous de sécurité qu'ils peuvent trouver.
-
Certains site web mettent en
accès au monde entier des méthodes pour prendre la main sur
des serveurs sur un réseau, ou pour mettre à mal un système
informatique. Ils fournissent donc des armes redoutables au public, mais
ils offrent aussi souvent les contre attaques à apporter à
ces méfaits. Leur but est souvent de pousser les éditeurs
de systèmes à rendre leurs produits encore plus fiables.
Malheureusement, n'importe qui peut découvrir ces sites et appliquer
ces méthodes. On peut donc se tenir régulièrement
au courant de l'actualité de ces sites, pour prévoir ce qui
pourrait arriver, et mettre en place des protections.
-
En ce qui concerne les évolutions
des réglementations : il est nécessaire de se tenir au courant
des modifications de celle-ci. Par exemple pour la cryptographie, que ce
soit dans son propre pays, mais aussi dans le reste du monde.
Suivi
des audits
Certaines informations peuvent
être collectées par le système d'exploitation réseau
ou par certains matériels réseau. Ces informations peuvent
alors mettre en lumière des actions non décelées auparavant.
Ces données sont :
-
L'audit système. Certaines
actions sur le réseau peuvent permettre de détecter un comportement
anormal d'un utilisateur. Il suffit de mettre en place des audits, et de
définir quelles actions à auditer, et à quel niveau.
Par exemple, si on fait un suivi des tentatives de connexion sur le réseau,
on pourra conserver les traces de toutes les connexions ou tentatives de
connexions, ou pour un environnement moins sécurisé, uniquement
les tentatives ayant échouées, ou celles sous un certain
nom d'utilisateur. On pourra aussi suivre toutes les actions d'un employé
qui est suspecté de malveillance. Les autres événements
systèmes pouvant être audités sont :
-
Les événements
de gestion des utilisateurs et des groupes (création d'un nouvel
utilisateur, modification des droits d'un utilisateur ou d'un groupe, ...).
-
Détection de l'activité
des utilisateurs (exécution d'un programme, accès réussi
ou non à un objet, ...).
-
Connexion ou déconnexion
au niveau de la machine local ou du réseau.
-
Modification des stratégies
de sécurité.
-
Tentative d'utilisation des
privilèges.
-
Evénements systèmes
affectant la sécurité du système ou du journal des
événements.
-
L'audits applicatifs
-
L'audit du système de
fichier. Quand certains fichiers partagés sur le réseau ont
des droits d'accès particuliers, on peut vérifier de temps
en temps si ces droits n'ont pas été modifiés. Une
recherche des fichiers modifiables par tous les utilisateurs est aussi
possible, et permet de détecter des modifications de droits d'accès
non autorisées.
-
Les paquets du réseau
-
...
On peut par exemple détecter
une tentative d'infection par un virus par l'utilisation suivante de l'audit.
Les fichiers visés en règle générale par les
virus sont les fichiers exécutables (avec l'extension ".exe" ou
".dll"). Après les avoir protégés en écriture,
et définit un audit sur les échecs de tentative d'écriture
sur ces fichiers, on pourra détecter les actions d'un éventuel
virus qui essaierait d'infecter des programmes.
Il faut par contre garder
en mémoire que l'audit consomme de ressources du système,
car il doit écrire toutes les opérations auditées
dans les journaux. De plus, la consultation des audits est souvent longue.
Il faut donc définir avec soin les actions à auditées,
et cibler ses choix. Il est inutile de contrôler les connexions de
tous les employés si on ne veut en fait vérifier que le comportement
d'un seul d'entre eux. On peut par exemple définir des filtres qui
ne retiendront que les informations essentielles, permettant de détecter
une intrusion ou une activité illicite.

L'audit n'est par contre
une source sure d'information que si elle n'est elle-même pas attaquée
par un pirate, qui pourrait effacer les traces de ses propres actions dans
les journaux. Sous Windows NT, les journaux sont au nombre de trois, et
se situent dans le répertoire : systemroot\System 32\Config.
-
APPEVENT.EVT : journal
des événements d'application
-
SECEVENT.EVT : journal
des événements de sécurité
-
SYSEVENT.EVT : journal
des événements système
Un
responsable de la sécurité
Pour organiser toutes les tâches
liées à la protection d'un réseau, une personne peut
prendre le poste de 'Responsable des Sécurités du Système
information'.
L'administrateur du réseau
est ainsi soulagé d'une tâche qui lui incombe souvent.

Cela permet de plus de ne
pas isoler ce problème au niveau du service informatique de l'entreprise,
mais de concerner tous les services. La sécurité doit en
effet s'intégrer d'une manière horizontale, et être
appliquée dans tous les secteurs.
7 -
Conclusion
Il ne sera jamais possible de
sécurisé totalement un système d'information. il y
aura toujours des hackers de génie pour découvrir de nouvelles
failles dans les systèmes. Mais on peut toujours rendre une intrusion
plus difficile, et si le pirate n'a pas d'intérêt particulier
à pénétrer cette entreprise plutôt qu'une autre,
s'il éprouve trop de difficulté, il changera sûrement
de cible, pour en trouver une plus facile.
Au niveau des états,
l'exemple du gouvernement américain est flagrant : il possède
le réseau Echelon, qui permet à l'agence NSA d'écouter
les communications de la planète entière. Ils réussissent
à influencer les fabricants de matériel du monde entier pour
adapter les techniques de chiffrement de telle sorte qu'ils puissent les
décoder. A moins qu'ils ne placent leurs anciens responsables à
des postes stratégiques dans des sociétés concevant
des systèmes de sécurité. On peut ajouter à
cela une puissance de calcul titanesque qui leur permet de traiter et de
stocker toutes les douze heures un volume de données équivalent
à celle de la bibliothèque du congrès américain.
Il est donc inconcevable, avec de telles puissances, d'espérer protéger
parfaitement des données, ou des échanges d'informations.
8 -
Bibliographie
Livres
-
UNIX, utilisation, administration,
système et réseau de Christian Pélissier
-
Linux, le Macmillan Edition
1999, 5ème édition, de Jack Tacket et Jr. Steven Burnett
-
Supports de cours pour la certification
Microsoft Windows NT 4 Server
-
Guide pratique de la sécurité
sous Windows NT de Tom Sheldon
-
Les réseaux de Guy Pujolle
-
Documentation de produits 3
Com
Revues
Sites web
-
Observatoire de la sécurité
des systèmes d'information et des réseaux (http://www.ossirr.org)
-
Comité réseau
des universités (http://www.cru.fr)
-
CERT (www.cert.fr)
-
CNRS (http://www.cnrs.fr)
-
IGTech (http://www.igtech.fr)
-
La page des réseaux (http://www.guill.net)
-
Security (http://securite.web-france.com)
-
Transtec (http://www.transtec.fr)
Travaux universitaires
Documentation de matériel
-
3 com
-
Transtec (les illustration sur
le RAID en sont issues)
Avis au lecteur
Ce document a été
réalisé entre janvier et juin 2000, dans le cadre du Brevet
de Technicien Supérieur d'informatique de Gestion.
Malgré tout les efforts
de l'auteur pour réalisé un document exhaustif sur le sujet
abordé, il est evident que certains aspects n'ont pas été
traités. Il s'agit d'une étude des sécurités
d'un réseau, pas d'un document de référence.
De même, l'auteur s'est
efforcé de vérifier le sérieux et la véracité
de tous les documents utilisés lors de ses recherches. Mais une
erreur est toujours possible dans l'interpretation, ou dans les sources
elles-mêmes. De plus, certaines informations peuvent se révéler
fausse au bout d'une certaine période. L'auteur ne pourra en aucun
cas en être tenu pour responsable.
Pour toute remarque ou commentaire
: nicolas.jeannes@libertysurf.fr