:: News .:. Documents .:. Forum .:. Downloads .:. Bibliographie .:. Liens .:. Contact  :: 


Home
  :. News
  .: Documents
    .: Notions
    .: Protocoles
    .: Sécurité
    .: Architecture
    .: Prog
    .: Systèmes
  :. Forum
  .: Downloads
  :. Bibliographie
  .: Liens
  :. Contact

Chat

  Nickname:


irc: #guill.net

Forum



 
La sécurité d'un système d'informations  
 

 

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

  • 01 Réseaux

>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éaliser 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

Nicolas Jeannes
 




Sondage

Quel est votre connexion à Internet aujourd'hui ?
 
RTC 56Kbps
ADSL simple de 128 à 2048 Kbps
ADSL + Téléphonie (+TV) de 128 à 2048 Kbps
ADSL simple jusqu'à 20Mbps
ADSL + Téléphonie (+TV) jusqu'à 20Mbps
Autres (RNIS, Satellites bi-directionnel...)
Total :
3241

Recherche


Docs
   Pflogsumm (Analyseur de log mail pour Postfix)
   Proftpd (Mise en service d'un serveur FTP avec proftpd sous Linux)
   Openldap (Mise en service d'un serveur LDAP sous Linux)
   Gestion des périphériques en c++ builder (Communication RS232 en C++ Builder)
   Les sockets windows (Windows Sockets : un cours accéléré)

guill.net©1999-2024