Académique Documents
Professionnel Documents
Culture Documents
Table des matières
Notions et principes de base.................................................................................................................3
Définitions.......................................................................................................................................3
Système d'information.................................................................................................................3
Sécurité du système d'information..............................................................................................3
Besoin de sécurité.......................................................................................................................3
Critères de sensibilité et de sécurité............................................................................................3
Menace........................................................................................................................................4
Risque..........................................................................................................................................5
Sécuriser un système...................................................................................................................5
La défense en profondeur............................................................................................................5
La sécurité au sein de l'entreprise....................................................................................................5
Une approche globale..................................................................................................................5
La politique de sécurité...............................................................................................................6
Plan de continuité d'activité........................................................................................................6
Moyens techniques...............................................................................................................................7
Contrôle d'accès...............................................................................................................................7
Définition....................................................................................................................................7
Ressources, droits et profil..........................................................................................................7
Authentification..........................................................................................................................8
Architecture.................................................................................................................................9
Protection des données...................................................................................................................10
Contrôle d'intégrité....................................................................................................................10
Protection de la confidentialité..................................................................................................11
Disponibilité..............................................................................................................................13
Surveillance du réseau...................................................................................................................14
Segmentation du réseau............................................................................................................14
Parefeux et DMZ.......................................................................................................................15
Translation d'adresse.................................................................................................................16
Serveur mandataire et interconnexion.......................................................................................16
Sonde, IDS et IPS......................................................................................................................16
Chiffrement des liens................................................................................................................17
Les services essentiels: DNS et NTP........................................................................................18
Protection applicative....................................................................................................................19
Séparation des privilèges..........................................................................................................19
Protection antivirus...................................................................................................................19
Renforcement du système d'exploitation, empreinte et pot de miel.........................................19
Architecture logicielle et principe du moindre privilège..........................................................20
Gestion de la mémoire et contrôle des formats de données......................................................21
Les attaques........................................................................................................................................23
Programmes malveillants...............................................................................................................23
Outils génériques.......................................................................................................................23
Attaques spécifiques aux messageries......................................................................................23
1/32
Attaques par le réseau....................................................................................................................23
Principales techniques...............................................................................................................23
Cartographie du réseau..............................................................................................................25
Attaques cryptanalytiques par canaux auxiliaires ....................................................................26
Recherche de vulnérabilités sur des binaires............................................................................27
En pratique..........................................................................................................................................29
Les applications web......................................................................................................................29
Le wifi............................................................................................................................................32
2/32
Notions et principes de base
Définitions
Système d'information
Le système d'information représente l'ensemble des éléments participant à la gestion, au stockage,
au traitement, au transport et à la diffusion de l'information dans l'entreprise.
Il est composé de plusieurs éléments :
– d'une infrastructure constituée de réseaux et d'équipements actifs visant à assurer le stockage (ex
: serveur de fichier), la transmission (ex : réseau de données), l'affichage ((ex : écran)),
l'échange (ex : passerelle d'interconnexion) et l'acquisition de données (ex : caméra, poste de
travail, robot logiciel).
– d'un ensemble organisés d'outils logiciels, d'humains et de procédures assurant le traitement des
données afin de répondre aux besoins de l'organisation tant dans les fonctions opérationnelles
(production, réalisation de processus industriels) que les fonctions support (aide à la décision,
gestion RH, ...).
D'une manière générale, le système d'information permet de :
– collecter des informations ;
– stocker les informations ;
– traiter les informations ;
– diffuser les informations.
Sécurité du système d'information
La sécurité du système d'information ne se limite pas à la protection des systèmes informatiques
ou de l'information numérique. Elle s'applique à la protection de l'information sous toute ses formes.
L'objectif est de protéger l'information contre l'accès, la diffusion, la destruction et la modification
illégitimes tout en garantissant sa disponibilité et son intégrité pour le système d'information.
Pour assurer la sécurité, il est nécessaire d'apprécier les risques qui pèsent sur le système
d'information et de prendre les mesures nécessaires afin de garantir un niveau de sécurité conforme
au besoin de sécurité.
Besoin de sécurité
Le besoin de sécurité correspond à l'expression des exigences opérationnelles du système
indépendamment de toute considération technique. Il s'appuie sur la définition des niveaux à
atteindre en matière de critères de sensibilité et de sécurité.
Critères de sensibilité et de sécurité
Les critères habituellement utilisés sont :
– La disponibilité ;
– L'intégrité ;
3/32
– La confidentialité ;
– La traçabilité, l'imputabilité, la preuve, ou la nonrépudiation.
La disponibilité correspond à la mesure du rapport entre la période durant laquelle un système est
opérationnel est celle durant laquelle on aurait souhaité qu'il le soit. Par exemple, un système
opérationnel à 99% est utilisable 99% du temps pendant lequel on désire l'utiliser (et non pas
disponible 99% du temps).
L'intégrité correspond au niveau de protection du système contre une altération ou une destruction
volontaire ou accidentelle qui entraîne l'impossibilité de l'utiliser de la manière prévue initialement.
L'intégrité correspond à la prise en compte de quatre informations : l'intégralité (il ne manque pas
d'élément), la précision (ex : l'heure donnée est suffisamment précise), l'exactitude (fiabilité de
l'information) et la validité (pertinence et légitimité de l'information par rapport à son usage).
La confidentialité correspond au niveau de protection contre un accès à une information par des
entités non autorisées.
La traçabilité et l'imputabilité correspondent à la capacité à identifier et suivre un élément du
système d'information. Elle vise a assurer la nonrépudiation.
La nonrépudiation correspond à la possibilité de vérifier que l'envoyeur et le destinataire sont
bien les parties qui disent avoir respectivement envoyé ou reçu le message. Autrement dit, la non
répudiation de l'origine prouve que les données ont été envoyées, et la nonrépudiation de l'arrivée
prouve qu'elles ont été reçues.
Menace
Une menace correspond à une méthode d'attaque résultant d'un élément menaçant.
L'élément menaçant peut être :
– un humain ;
– la nature ;
– l'environnement (social, juridique, logiciel, matériel, ...).
La méthode d'attaque peut être d'origine :
– volontaire (malveillance) ;
– accidentelle;
– involontaire, c'estàdire liée à une erreur, ce qui suppose une action ou une absence d'action
(maladresse, négligence, inconscience).
Elle peut être de nature :
– technique :
– logiciel : virus, cheval de troie, rootkit, logiciel espion.
– matériel : défaillance matérielle.
– environnement : incendie, inondation, climatisation.
– humaine :
– ingénierie sociale ;
– espionnage.
– juridique, financière, ...
– législation relative à la cryptographie ;
– législation relative à la vie privée ;
4/32
– législation relative aux licences ;
– législation relative à la gestion des documents d'archive.
L'élément impacté par une menace est de nature variée :
– un matériel ;
– un logiciel ;
– une personne ;
– un processus.
L'ingénierie sociale est une méthode visant à obtenir d'une personne des informations
confidentielles, que l'on n'est pas normalement autorisé à obtenir, en vue de les exploiter à d'autres
fins. Elle consiste à se faire passer pour quelqu’un que l’on est pas (en général un administrateur) et
de demander des informations personnelles (nom de connexion, mot de passe, données
confidentielles, etc.) en inventant un quelconque prétexte (problème dans le réseau, modification de
celuici, heure tardive, etc.). Elle peut se faire soit au moyen d’une simple communication
téléphonique, soit par mail, soit en se déplaçant directement sur place (très rare).
Risque
Le risque est l'appréciation d'une menace en fonction de la probabilité et l'impact de sa réalisation.
L'impact peut être apprécié de manière qualitative ou quantitative (y compris monétaire).
La vulnérabilité d'un système traduit son exposition au risque. Un système est d'autant plus
vulnérable que la probabilité de réalisation et l'impact des menaces sont importants. De manière
caricatural, on peut écrire : Vulnérabilité = probabilité X impact.
La vulnérabilité global du système résulte de la somme des vulnérabilité marginales du systèmes
aux différentes menaces.
Sécuriser un système
La confrontation des menaces aux besoins de sécurité permet de ne retenir que les risques qu'il est
nécessaire de prendre en compte du fait de leur importance. Ceci permet de mettre en œuvre des
mesures de sécurité qui diminuent le niveau de risque afin d'atteindre un niveau de sécurité qui soit
conforme au besoin de sécurité.
La défense en profondeur
Le principe de défense en profondeur consiste à sécuriser indépendamment chaque sous
ensemble du système. Il s'oppose à la vision d'une protection périphérique. Le corollaire de la
défense en profondeur est le principe de subsidiarité qui confie la réalisation d'une action à la plus
petite entité capable de la réaliser ellemême. Ce qui se résume en disant que la sécurité ne se
délègue pas à quelque niveau que ce soit.
La sécurité au sein de l'entreprise
Une approche globale
La sécurité du système d'information doit traiter de l'ensemble des éléments qui compose le système
d'information, ce qui comprend de manière non exhaustive :
5/32
– la sécurité physique ;
– la sécurité des zones d'hébergement ;
– la sécurité des réseaux et de leur interconnexions ;
– la sécurité des systèmes d'exploitations ;
– la sécurité des applications ;
– la sécurité des données ;
– la sécurité des utilisateurs.
La politique de sécurité
La politique de sécurité est un ensemble d'orientation fixée en matière de sécurité. Elle est déclinée
par les entités responsable de la sécurité dans leur domaine de responsabilité. Ceci se traduit
généralement sous la forme de :
– de règles et de procédures à respecter ;
– de la mise en place d'outils techniques contribuant au respect de ces règles ;
– de formations des utilisateurs sur les comportements à avoir ;
– d'actions à entreprendre et de personnes à entreprendre lorsque des événements contrevenant
aux règles sont détectées.
Concernant tous les acteurs au sein de l'entreprise, elle se doit d'être élaborée au niveau de la
direction de l'organisation concernée, car elle concerne tous les utilisateurs du système. Un bon
niveau de formation des utilisateurs et la précision dans la définition des règles permet de limiter les
inadéquations entre les usages des utilisateurs et les possibilité offertes par le système
d'information.
Plan de continuité d'activité
Le plan de continuité est le complément de la politique de sécurité. Il a pour but de limiter les
éventuelles conséquences d'une catastrophe et de définir les opérations à mener en cas de réalisation
d'une menace dont l'impact rend impossible le maintien du fonctionnement nominal du système
d'information. Il est aussi appelé "plan de reprise d'activité".
6/32
Moyens techniques
Contrôle d'accès
Définition
Le contrôle d'accès est la première mesure essentielle et indispensable à mettre en oeuvre dans le
cadre de la protection d'un système. Concrètement, c'est permettre à un sujet d'accéder à une
ressource sous certaines conditions afin d'effectuer un certain nombre d'opérations. Autrement dit, il
vise à garantir les droits d'accès aux données et ressources d'un système, en mettant en place des
mécanismes d'authentification et de contrôle. Ces mécanismes permettent d'assurer que les
utilisateurs des dites ressources possèdent uniquement les droits qui leurs ont été octroyés.
Le contrôle est généralement discrétionnaire. C'est le propriétaire qui définit les règles d'accès sur
les informations ou systèmes dont il a la responsabilité. La définition des responsabilités est donc un
préalable afin de savoir qui doit définir ces règles.
Ressources, droits et profil
Les ressources peuvent être très diverses dans leur nature :
– pièce dans un bâtiment ;
– partage de fichiers ;
– librairie ou exécutables;
– flux multimédias (image, son, ...)
– fichier sur un disque local ;
– boîte de messagerie ;
– ...
Les règles applicables peuvent généralement être rangées dans trois catégories :
– droit de lecture ;
– droit d'écriture ;
– droit d'exécution.
Elles sont généralement associées à des conditions d'environnement. Par exemple, un utilisateur
distant aura des droits réduits par rapport à la situation où il travaille au sein même de l'entreprise.
Le droit d'écriture peut être conditionné à la concurrence des accès. Par exemple, la modification
simultanée des données sur une tout ou partie d'une base de données par plusieurs utilisateurs peut
être interdite, ce généralement en fonction des dépendances entre les données.
L'attribution de règles ne se limite pas à des utilisateurs mais à tout système manipulant des
informations. Il est en général courant qu'une même ressource soit utilisée à la fois par des êtres
humains et des automates. Par exemple : les données d'un serveur de fichiers sont utilisées par les
utilisateurs et les outils de sauvegardes (on ne veut généralement pas que les données soient
modifiées pendant la sauvegarde).
Le nombre de catégories de règles d'accès ne se limite pas à trois. Par exemple, pour le droit
d'écriture, on distingue souvent l'ajout d'information, la suppression d'information et la modification
des informations existantes.
7/32
Les droits d'accès ne sont pas directement attribuées aux utilisateurs. En effet, dès que le nombre
d'utilisateur devient conséquent il devient impossible de s'assurer la cohérence des règles de chaque
utilisateur au cours du temps. C'est pourquoi, on crée des profils d'utilisateurs correspondant à des
configurations type de droits et ceux sont ces profils qui sont attribuées aux utilisateurs. Ainsi pour
modifier les droits de tous les utilisateurs d'une même catégorie, il suffit de modifier un profil et
non les droits de tous les utilisateurs.
Authentification
Pour pouvoir appliquer les règles d'accès, une condition nécessaire est d'authentifier l'utilisateur. Il
est ainsi possible d'associer à l'identité de l'utilisateur l'ensemble des règles d'accès associées à son
profil.
L'utilisation de profils facilite la délégation de l'authentification à un système tiers. Ce dernier met
en oeuvre les mécanismes associés, il transmet ensuite un identifiant associée à une session
contenant en particulier l'information du profil à utiliser. Ceci évite de multiplier les bases de
comptes et facilite d'autant l'exactitude et la validité des données dans le temps. Ce mécanisme
impose de rendre le canal de communication entre le système opérationnel et le système
d'authentification sûr et le passage par la solution d'authentification incontournable.
Authentification forte
L'authentification forte repose sur la vérification de deux éléments dans les trois catégories
suivantes :
– ce que l'on possède : carte à puce ;
– ce que l'on est : biométrie ;
– ce que l'on sait : mot de passe, code confidentiel.
Dans les solutions basées sur ce que l'on possède, on distingue les solutions passives (pistes
magnétiques, clef) des solutions actives (appareil électronique). Les solutions électroniques se
divisent en dispositifs déconnectés qui fournissent à l'utilisateur un code (token) et ceux connectés
qui utilisent un dialogue entre l'élément physique et le système d'authentification (carte à puce). Les
dernières sont les plus coûteuses mais permettent de rendre des services complémentaires comme le
stockage du dossier d'un utilisateur.
Dans les solutions basées sur ce que l'on sait, il existe notamment les techniques suivantes :
– l'empreinte digitale ;
– la reconnaissance de la main ;
– la reconnaissance faciale ;
– l'analyse vocale ;
– l'analyse de l'iris ;
– la reconnaissance dynamique de la signature.
Le principe de ces solutions repose sur le stockage une empreinte numérique des informations de
l'utilisateur analysées qui peut être formée à partir de points caractéristiques. Lors de
l'authentification de l'utilisateur, cette empreinte est recalculée dynamiquement et comparée à la
base d'empreinte stockée.
Ce système ne permet pas de révoquer des accès en cas de compromission. L'information utilisée
peut potentiellement être facile obtenir soit dans la vie quotidienne pour l'empreinte digitale soit via
un système biométrique basé sur le même principe.
8/32
Dans les solutions basées sur ce que l'on sait, l'utilisateur transmet une information qu'il est seul à
connaître, le système d'authentification vérifie que l'information fournie par l'utilisateur est bien
celle attendue. Un exemple simple est le mot de passe. L'information doit être véhiculée par un
canal sûr afin d'éviter l'interception de l'information.
Une solution alternative est de demander à l'utilisateur de fournir une information différente à
chaque fois qu'il peut calculer à partir d'une information que lui et le système d'authentification
possèdent. C'est le challenge/réponse. Par un exemple, l'utilisateur reçoit une chaîne de donnée. Il
utilise son secret et cette chaîne de donnée pour calculer une nouvelle chaîne de donnée avec une
fonction à sens unique ou fonction de hachage. Il transmet le résultat de ce calcul au système
d'authentification qui vérifie que le résultat est le bon. Ceci permet d'éviter le rejeu.
Les solutions basées sur ce que l'on sait dépendent beaucoup des règles de gestion du secret :
complexité du mot de passe, durée de vie, stockage de cette information sur le serveur, réutilisation
du mot de passe, ...
La règle de base est de ne jamais donner aucun mot de passe à personne et en particulier à un
administrateur.
Infrastructure de gestion de clefs
Une infrastructure de gestion de clefs (ou infrastructure à clefs publiques) permet de gérer les
certificats électroniques durant toute leur vie. Elle fournit les services suivants :
– Enregistrement des utilisateurs ;
– Génération de certificats ;
– Renouvellement de certificats ;
– Révocation de certificats ;
– Publication des certificats ;
– Publication des listes de révocation (comprenant la liste des certificats révoqués) ;
– Identification et authentification des utilisateurs ;
– Archivage, séquestre et recouvrement des certificats (option).
Elles contients les entités suivantes :
– L'Autorité de Certification (AC ou CA) qui a pour mission de signer les demandes de certificat
(CSR : Certificate Signing Request) et de signer les listes de révocation (CRL : Certificate
Revocation List).
– L'Autorité d'Enregistrement (AE ou RA) qui a pour mission de générer les certificats, et
d'effectuer les vérifications d'usage sur l'identité de l'utilisateur final (les certificats numériques
sont nominatifs et uniques pour l'ensemble de l'IGC).
– L'Autorité de Dépôt (Repository) qui a pour mission de stocker les certificats numériques ainsi
que les listes de révocation (CRL).
Les certificats sont normalement délivrés pour un usage donné. On distingue en général les
certificats de signature et ceux de chiffrement. Un découpage plus fin peut évidemment être choisi.
Architecture
On distingue principalement deux architectures de délégation de l'authentification :
– le portail unifié généralement basé sur l'utilisation d'un serveur mandataire. L'utilisateur
s'authentifie une fois auprès d'un portail qui relaie les requêtes de l'utilisateur avec le profil
associé auprès des autres applications;
9/32
– le serveur d'authentification : l'utilisateur accède directement à l'application qui demande au
serveur d'authentification de vérifier les informations d'authentification transmises par
l'utilisateur.
Dans le cas où l'authentification n'est pas déléguée, l'une des deux solutions est adoptée au sein d'un
unique système.
Protection des données
Contrôle d'intégrité
Les codes correcteurs d'erreurs
Lors du stockage ou du transfert d'une information, le signal ou le support peut subir des
modification affectant l'intégrité de celleci du fait :
– de la perte d'un paquet ;
– de l'impossibilité de savoir si un bit est à 0 ou 1 (vieillissement du support) ;
– ...
Le codage correcteur d'erreur, ou codage de canal, assurent une redondance de l'information. Ils
sont caractérisés par leur capacité à détecter et corriger des erreurs en fonction de leur type. Les
erreurs peuvent être isolées, en bloc, uniformément aléatoires. Le choix du code correcteur repose
donc d'une part sur la connaissance des erreurs possibles et d'autre part sur la fréquence avec
laquelle elles se produisent.
Le principe est de rajouter à l’information numérique, des symboles binaires, appelés symboles de
redondance, suivant une loi mathématique particulière. Le décodeur vérifie que la loi de codage n’a
pas été modifié lors des divers traitements réalisés sur l’information numérique codée. Si c’est le
cas, le décodeur conclut à l’absence d’erreurs ; dans le cas contraire, par un traitement approprié, il
repère les symboles erronés puis les corrige par simple inversion binaire.
Un exemple simple est le contrôle de parité. Sur un octet (8 bits d'information 0 ou 1), un bit est
utilisé pour indiquer la parité des sept autres. Si un nombre impair d'erreurs se produit, on peut
détecter qu'il y a eu une erreur mais pas la corriger.
Un exemple plus complexe mais beaucoup plus performant sont les turbocodes qui sont par
exemples utilisés dans l'UMTS. Ils permettent d'obtenir de très bons résultats proches de la limite
théorique de pouvoir de correction de Shannon.
Le principe est d'associer deux codes correcteurs simples pour obtenir un code composite à deux
dimensions. Concrètement, le turbo codeur produira trois sorties à envoyer sur le canal de
transmission (après modulation éventuelle) :
– l'entrée du turbocodeur ;
– la sortie du premier codeur ;
– la sortie du deuxième codeur.
Ce codage permet donc de répartir l'information apporté par un bit de la trame sur ses voisins (avec
le codage du premier codeur) et même sur toute la longueur de la trame transmise (avec le codage
du deuxième codeur). Ainsi, si une partie du message est fortement abîmée pendant la transmission,
l'information peut encore se retrouver ailleurs.
Pour décoder, chaque code élémentaire est d'abord décodé avec le premier codeur puis on
10/32
renouvelle le processus de décodage dans le second et ainsi de suite. Ceci permet à chaque étape de
corriger de nouvelles erreurs.
Le pouvoir de correction de tout code correcteur ne permet pas de dépasser la capacité du canal qui
est définit par la limite de Shannon ou seuil plancher pour le rapport signal/bruit.
Les codes correcteurs d'erreurs ne permettent pas de se prémunir des modifications intentionnelles.
L'attaquant est en effet en mesure de recalculer les valeurs de redondances et ainsi cacher les
modifications qu'il a effectuées.
Condensat numérique ou fonction de hashage
Une fonction de hachage est une fonction qui fait subir une succession de traitements à une donnée
quelconque fournie en entrée pour en produire une empreinte servant à identifier la donnée initiale.
Ceci permet de stocker des mots de passe. En ne stockant que l'empreinte, on ne dispose pas du mot
de passe. Lorsque l'utilisateur s'authentifie, on compare l'empreinte calculée avec celle stockée.
L'utilisation d'un sel par utilisateur permet d'éviter que deux utilisateurs avec le même mot de passe
aient la même empreinte.
Des exemples de fonction de hashage sont md5, sha1 ou sha2.
Les condensats numériques permettent également de calculer des sommes de contrôles. Ceci donne
un moyen simple de vérifier l'intégrité lors d'une transmission de données.
Scellement numérique et signature numérique
Deux techniques peuvent être utilisées : le scellement numérique et la signature électronique.
Le scellement numérique repose sur un algorithme non linéaire irréversible qui permet de calculer
un sceau à partir des données transmises. Ce sceau est ensuite ajouté aux données utiles et transmis
avec l'information. L'algorithme de scellement peut être un algorithme de chiffrement par bloc en
mode CBC dans lequel on utilise le bloc précédent chiffré et le bloc à chiffrer pour calculer le
nouveau chiffré.
Ce peut également être une fonction de condensation ou fonction de hachage dont le résultat est
chiffré avec un algorithme de chiffrement symétrique.
La signature numérique est un scellement particulier dans lequel on chiffre le condensat numérique
avec un algorithme asymétrique ce qui garantit l'identité de la personne qui a créé le message.
Protection de la confidentialité
Chiffrement
Le chiffrement des informations vise à rendre incompréhensibles les données par un attaquant. Elle
est utilisée pour les connexions sécurisées dans le cadre du commerce électronique. La sécurité
repose sur la connaissance d'un secret. Une attaque courante contre cette technique est l'attaque par
le milieu ou man in the middle. Elle consiste à se faire passer auprès de chacun des intervenants
pour l'autre intervenant.
Les principaux systèmes de chiffrement sont :
– le chiffrement symétrique. Il utilise la même clef pour chiffrer et déchiffrer.
– Le chiffrement asymétrique. Il utilise des clefs différentes : une paire composée d'une clef
publique, servant au chiffrement, et d'une clé privée, servant à déchiffrer. Le point fondamental
11/32
soutenant cette décomposition publique/privée est l'impossibilité calculatoire de déduire la clé
privée de la clé publique.
La sécurité du chiffrement repose non pas sur l'algorithme utilisé mais sur le secret utilisé. Il est
donc recommandé d'utiliser des longueurs minimales :
– pour un chiffrement symétrique, une clef d'au moins 128 bits.
– pour un chiffrement asymétrique, une clef d'au moins 2048 bits.
La taille de la clef doit être d'autant plus longue que l'information sera confidentielle longtemps. Il
est par ailleurs recommandé d'utilisé des chiffrements par blocs et non par flot avec des tailles de
blocs d'au moins 128 bits. Il est recommandé d'utiliser un chiffrement symétrique AESCBC et la
fonction de hashage SHA256. Sauf exception, il faut également limiter la crytopériode (la durée
limitée d'emploi d'une clé de chiffrement) à une durée inférieure à deux ans.
Stéganographie
La stéganographie est l'art de la dissimulation. L'objet n'est pas de rendre un message inintelligible
mais de le faire passer inaperçu. Pour être efficace, il faut que le procédé utilisé empêche une
personne interceptant le message :
– de découvrir le contenu caché ;
– de savoir qu'un contenu est caché ;
– empêcher la transmission d'un contenu caché éventuel ;
– d'envoyer une fausse information en se faisant passer pour l'émetteur.
Les techniques pouvant être utilisées sont l'utilisation :
– d'un message adhoc ou codage sous forme d'une apparence de spam. Le message utilise une
convention connue pour transmettre via des banalités de l'information. Le principe est d'utiliser
un codage binaire simple basé sur l'utilisation de synonyme par exemple (succès = 1, réussite =
0). Ce procédé est difficilement utilisable de manière répétée.
– de modification mineures du contenu, par exemple l'usage des bits de poids faible d'une image
(LSB) ou la modulation fine d'un texte écrit. Décaler une lettre de quelque pixels est
pratiquement invisible à l'œil nu. En jouant sur les interlettrages d'un texte très long et à raison
de deux valeurs d'espacement correspondant à 1 et 0, il est possibḷe de transmettre un message
sous forme papier. De la même façon, on peut marquer les caractères (avec un point par
exemple).
– La dissimulation dans un élément annexe du contenu. Cela consiste par exemple à maintenir une
image intacte mais à y incorporer une table des couleurs ou palette construite dans un ordre qui
paraît arbitraire.
Les canaux cachés
Un canal caché est un canal de communication qui utilise la bande passante d'un autre canal dans
l'objectif de transmettre des informations sans l'autorisation ou la connaissance du propriétaire de
l'information. Il existe deux types de canaux cachés :
– Les storage channels : le processus émetteur modifie une donnée particulière, et le processus
récepteur détecte et interprète la donnée modifiée pour recevoir indirectement des informations.
– Les timing channels : le processus émetteur module la durée d'une tâche effectuée par le
processus récepteur, et le processus récepteur interprète cette variation comme une information.
La protection contre de tels système est très difficile et n'est généralement possible que dans le cas
12/32
de comportements facile à détecter et peu ambigu. Tout canal qui permet d'envoyer deux
informations peut être utilisé comme canal caché.
Les données oubliées
La protection de la confidentialité nécessite de se premunir contre le vol de données dont on a
oublié l'existence.
Par exemple, une femme de ménage dans une entreprise volant chaque jour quelques pages en bas
d'une des piles de papier sur un bureau a toute les chances que l'on ne s'aperçoive pas de la
disparition de ces documents.
Les disques durs contiennent de nombreuses données résiduelles. Pour accéder à un fichier le
système utilise une table des fichiers qui donne la correspondance entre le nom du fichier et son
emplacement sur le support physique. Pour des raisons de performance, lors de l'effacement d'un
fichier, on ne supprime que la référence dans la table. Le fichier est donc toujours accessible si l'on
lit le support au bon endroit.
Des outils permettent de récupérer l'information sur un support sans la table des fichiers. Les outils
d'effacement résiduel suppriment le fichier du support en écrivant des données aléatoires sur les
espaces non affectés à des fichiers présent dans la table. Il effectuent cette tâche plusieurs fois car à
chaque écriture les données précédentes ne sont pas totalement effacées. En effet la tête du disque
dur n'inscrit jamais la donnée exactement au même endroit sur le disque.
Des données peuvent également être conservées dans les imprimantes réseaux, sur les disques
réseaux de partage de fichiers, fichiers de quarantaine des antivirus, fichiers temporaires, ... Toutes
ces zones peuvent être la source de fuite d'informations.
Disponibilité
Hautedisponibilité
La haute disponibilité correspond à des sytèmes pour lesquels on a mis en place des mécanismes
assurant une disponibilité suffisante. On distingue quatre techniques :
– l'asynchronisme. Un élément synchrone peut être bloqué car il attend une ressource pour être
actif. Un fonctionnement asynchrone lui permet d'être disponible même si des ressources lui
manque pour traiter la requête.
– la répartition de charge. La puissance des éléments doit être suffisante pour assurer le service si
l'un d'entre eux est défaillant. Par exemple avec trois machines, chaque serveur doit pouvoir
assurer 50% de la charge. Ceci permet d'avoir une très bonne fiabilité puisqu'un élément fiable à
99% redondé une fois donne une fiabilité de 99,99% (probabilité que les deux éléments soit
défaillants au même moment = 1/100x1/100 = 1/10.000 ). Dans un fonctionnement actif/actif,
tous les composants sont actifs en permanence. En mode actif/passif, le secours surveille les
autres équipements et remplace l'élément défaillant lorsqu'il le détecte.
– la redondance différentielle. On utilise des outils différents pour assurer la même fonction. Par
exemple : utilisation de deux antivirus de marque différente.
– la redondance avec système de vote. Différents composants traitent les mêmes entrées et
produisent donc (en principe) les mêmes sorties. Les résultats produits par tous les composants
sont collectés, puis un algorithme est mis en œuvre pour produire le résultat final. L’algorithme
peut être simple (vote à la majorité) ou complexe (moyenne, moyenne pondérée, médiane…),
l’objectif étant d’éliminer les résultats erronés imputables à un dysfonctionnement sur l’un des
13/32
composants et/ou de fiabiliser un résultat en combinant plusieurs résultats légèrement différents.
Ce procédé est utilisé généralement dans les cas suivants :
– Des systèmes reposant sur des capteurs (exemple : capteurs de température) pour lesquels
les capteurs sont redondés
– Des systèmes ou plusieurs composants différents assurant la même fonction sont utilisés et
pour lesquels un meilleur résultat final peut être obtenu en combinant les résultats produits
par les composants (exemple : système de reconnaissance de formes utilisant plusieurs
algorithmes pour obtenir un meilleur taux de reconnaissance.
Raid
Le disque dur est l'une des pièces les plus fragiles car il comporte de nombreuses pièces
mécaniques. La mise en raid permet de combiner de nombreux périphériques de stockage de sorte
que ce groupement offre une capacité, une fiabilité et/ou des performances accrues, et ce pour un
coût largement inférieur à un périphérique de stockage unique équivalent. Il peut être logiciel ou
matériel.
Le raid 0 consiste à faire travailler n disques en parallèle. La perte d'un disque entraîne la perte de
données. Les performances sont améliorées.
Le raid 1 consiste à faire travailler les disques en miroir. La capacité est celle du plus petit disque.
La fiabilité est élevée puisqu'il faut perdre tout les disques pour perdre les données. Le coût est
élevé.
Le raid 5 ajoute au raid 0 de la redondance afin de permettre de stocker sur n disques de taille X,
(n1) * X données. Il supporte la perte d'un disque et est pénalisé en écriture du fait de l'ajout de la
redondance.
Le raid ne permet pas de protéger contre les destructions importantes du fait par exemple d'un
incident électrique.
Les sauvegardes
La sauvegarde consiste à dupliquer et à mettre en sécurité les données contenues dans un système
informatique. La principale difficulté est la restauration des données sauvegardées dans le système
en production.
L'archivage
L'archivage correspond à un enregistrement des données sur un support, généralement non
réinscriptible, pour une conservation de longues durée. Les données archivées ne sont normalement
plus utiles en production. La principale difficulté est le choix d'un support matériel et d'un format de
fichiers pérennes en particulier dans les stockage de très longues durées (>30 ans).
Surveillance du réseau
Segmentation du réseau
ACL
La mise en place d'un plan d'adressage définissant la manière dont seront distribuées les adresses IP
et du routage qui va permettre le transfert des informations sur le WAN constituent deux préalables
à la maîtrise des flux. Ceci peut s'accompagner de la mise en place d'ACL (liste de contrôle
14/32
d'accès ) définissant les adresses Ips ayant le droit de communiquer. Les ACL peuvent être utiliser
pour filter des protocoles utilisant des ports statiques mais pas les protocoles complexes à port
dynamiques.
VLAN
L'IEEE a défini les VLAN (Virtual Area Network) sous la référence 802.1Q. Il s'agit d'un réseau
local logique indépendant. Plusieurs VLAN peuvent être créer sur un même réseau physique. Ceci
permet de segmenter le réseau en diminuant la zone de broadcast et contribue également à la
sécurité du réseau en rendant plus difficile le dialogue entre des machines appartenant à des VLAN
différents.
Il existe des VLAN
– par port physique ;
– par adresse MAC ;
– par adresse IP ou sousréseau.
Parefeux et DMZ
Parefeux
Un parefeu est parfois appelé coupefeu ou encore firewall en anglais est un équipement offrant
des fonctions de filtrage de paquets. Le filtrage se fait selon divers critères, les plus courants étant :
– l'origine ou la destination des paquets (adresse IP, ports TCP ou UDP, interface réseau, etc.)
– les options contenues dans les données (fragmentation, validité, etc.)
– les données ellesmêmes (taille, correspondance à un motif, etc.)
On distingue au moins deux familles de parefeux :
– parefeu à états (stateful firewall) : ils permettent de filtrer les protocoles avec un suivi de la
connexion. Ce suivi de connexion est soit lié au protocole dans le cas de TCP soit simulé pour
UDP.
– Parefeu applicatif : il vérifie la conformité du paquet à un protocole attendu. Il permet en outre
de suivre les protocoles utilisant des ports dynamiques tels que FTP qui échangent au niveau
applicatif des informations du niveau IP (échange d'adresses) ou du niveau TCP (échange de
ports).
Le filtrage applicatif n'est pas toujours possible. Avec IRC, par exemple, une requête DCC (direct
client to client) fait passer dans la requête au serveur le pseudo de l'utilisateur et non son adresse IP,
le parefeu ne peut donc pas connaître l'adresse IP du client distant qui va essayer d'établir la
connexion.
DMZ
Les parefeux permettent d'isoler le réseau en plusieurs zones de sécurité appelées zones
démilitarisées ou DMZ. Ces zones sont séparées suivant le niveau de confiance qu'on leur porte.
La DMZ (zone démilitarisées) se définit comme une zone, un sousréseau voire même une plage
d'adresses IP (ou une seule adresse IP) sur un réseau n'étant pas soumise aux règles d'un parefeu
mais dont les échanges avec d'autres zones sont filtrés. Généralement une DMZ n'accepte que les
connexions entrantes si elle n'héberge que des serveurs, à l'exception de certains protocoles de base
comme DNS ou NTP que les serveurs peuvent avoir besoin d'utiliser.
15/32
Translation d'adresse
La translation d'adresse consiste à faire correspondre des adresses IP internes nonuniques et
souvent non routables à un ensemble d'adresses externes uniques et routables.
On distingue les types suivants :
– NAT : changement de l'adresse IP par une autre ;
– PAT : changement de l'adresse IP et du port.
Les règles de correspondances peuvent être statiques ou dynamiques, unidirectionnelles ou
bidirectionnelles. Le NAT améliore la sécurité en cachant le réseau interne visàvis de l'extérieur,
une fois la connexion établie, la sécurité de la connexion n'est pas améliorée.
Serveur mandataire et interconnexion
Le serveur mandataire ou proxy (de l'anglais) est un serveur informatique qui a pour fonction de
relayer des requêtes entre un poste client et un serveur. Les serveurs mandataires sont notamment
utilisés pour assurer les fonctions suivantes :
– mémoire cache ;
– la journalisation des requêtes ;
– le filtrage et l'anonymat.
Le reverse proxy est implémenté du coté des serveurs. L'utilisateur passe par son intermédiaire pour
accéder aux applications. Cette technique permet entre autre de protéger un serveur des attaques
provenant de l'extérieur. Il permet en outre de fournir les services suivants :
– accélération SSL ;
– équilibrage de charges entre les serveurs ;
– cache des éléments statiques et compresssion des données.
Les serveurs mandataires permettent la mise en place d'interconnexions, c'est àdire de relier des
systèmes ayant des caractéristiques différentes et en particulier des niveaux de sécurité différents.
Une interconnexion entre deux acteurs implique normalement :
– un engagement d'innocuité visà vis de l'autre ;
– un engagement de coopération pour contribuer à la sécurité ;
– la possibilité unilatérale de rompre ou de restaurer l'interconnexion ;
– la possibilité de contrôler les mesures de sécurité.
Sonde, IDS et IPS
Les sondes permettent d'écouter le trafic sans perturber le réseau. Elles comprennent un prisme
(pour les fibres optiques) ou bien une connectique adaptée qui permet de capter une partie du signal
afin de ne pas couper la liaison en cas de dysfonctionnement de la sonde. Le signal est ensuite
stocké et peut être analysée par la sonde.
Un système de détection d'intrusion (ou IDS : Intrusion Detection System) est un mécanisme
destiné à repérer des activités anormales ou suspectes sur la cible analysée (un réseau ou un hôte). Il
permet ainsi d'avoir une connaissance sur les tentatives réussies comme échouées des intrusions.
Comme un antivirus, il s'appuie sur la recherche de signature ou de motifs (pattern). Il peut
également essayer de faire de la corrélation entre plusieurs événéments issus de sondes différentes.
16/32
Un système de prévention d'intrusion (ou IPS, Intrusion Prevention System) est un outil similaire
aux IDS, sauf que ce système peut prendre des mesures afin de diminuer les risques d'impact d'une
attaque. C'est un IDS actif, il détecte un balayage automatisé, l'IPS peut bloquer les ports
automatiquement.
Des comportements typiquement suspects sont par exemples :
– les scans : généralement beaucoup de petits flux depuis une adresse IP avec peu de sessions
établies et beaucoup de messages icmp pour indiquer des ports fermés ;
– les virus et les vers : beaucoup de petits flux courts vers un grand nombre de machine et/ou de
ports. Les destinations peuvent être aléatoires et ne pas correspondre à des segments réseaux
routés. L'adresse source peut également ne pas faire partie du réseau si les paquets sont forgés.
– les réseaux cachés : encapsulation dans des flux DNS, icmp ou http. Des flux DNS ou icmp de
plus de quelques secondes et ko sont suspects. Des flux http symétriques sont également à
surveiller en particulier s'ils durent dans le temps. La détection d'adresses publiques ou de ports
non standards est à surveiller.
– les flux répétifs : ceuxci peuvent correspondre à de la messagerie ou de la navigation web.
– les changements de protocoles entre deux points qui peuvent correspondre à différentes
tentatives d'encapsulation.
Chiffrement des liens
IPSEC
Réalisé pour le protocole IPv6, IPSec fut adapté pour Ipv4. Il permet d'assurer un chiffrement et une
authentification des flux au niveau de la couche transport. Il est l'un des éléments essentiel pour la
mise en place des réseaux privés virtuels (VPN).
Son fonctionnement repose sur deux étapes :
– l'échange des clefs : une connexion UDP depuis et vers le port 500 (canal ISAKMP pour
Internet Security Association and Key Management Protocol). Le protocole IKE est en charge
de négocier la connexion. Ce protocole permet deux types d'authentifications, PSK (PreShared
Key ou secret partagé) pour la génération de clefs de sessions ou à l'aide de certificats/signatures
RSA.
– un ou plusieurs canaux de données par lesquels le trafic du réseau privé est véhiculé, deux
protocoles sont possibles :
– le protocole n°50, ESP (Encapsulating Security Payload) qui fournit l'intégrité et la
confidentialité ;
– le protocole n°51, AH, (Authentication Header) qui ne fournit que l'intégrité.
Deux modes sont possibles :
– le mode transport : les données utiles sont chiffrées et le paquet est modifié en conséquence (en
particulier la valeur du ckecksum).
– le mode tunnel. chaque paquet est chiffré dans son ensemble et le résultat devient l'information
utile d'un nouveau paquet. Le tunnel préserve la confidentialité de toutes les informations sur les
émetteurs et récepteurs dans le cas où on utilise le mode ESP.
Ceci permet de créer des chaînes de tunnels avec des redirections, des séparations et des
multiplexation de flux. La compatibilité et l'interropérabilité des produits est le problème essentiel.
SSL/TLS
17/32
SSL/TLS est un protocole de sécurisation des échanges au niveau de la couche de session.
Le chiffrement est réalisé par un chiffrement asymétrique (qui va permettre une authentification) et
un chiffrement symétrique (qui est plus léger qu'un chiffrement asymétrique) qui va assurer la
transmission des informations. On y adjoint une fonction de hachage pour s'assurer que les données
sont transmises sans être corrompues.
Dans la majorité des cas, l'utilisateur authentifie le serveur SSL sur lequel il se connecte. Cette
authentification est réalisée par l'utilisation d'un certificat numérique X509 délivré par une autorité
de confiance (AC). Mais de plus en plus d'applications web utilisent maintenant l'authentification
du poste client en exploitant SSL. Il est alors possible d'offrir une authentification mutuelle entre le
client et le serveur.
Le protocole utilisant le plus SSL/TLS pour fournir la couche de sécurité est HTTPS.
S/MIME
Multipurpose Internet Mail Extensions (MIME) est un standard internet qui étend le format de
données des courriels pour supporter des textes en différents codage de caractères autres que
l'ASCII, des contenus non textuels, des contenus multiples, et des informations d'entête en d'autres
codages que l'ASCII. Les courriels étant généralement envoyés via le protocole SMTP au format
MIME, ces courriels sont souvent appelés courriels SMTP/MIME.
L'utilisation des types multipart/signed et multipart/encrypted permet de sécuriser le contenu des
courriels.
multipart/signed est utilisé pour attacher une signature numérique à un message. Il est composé de
deux parties : le corps du message et la partie signature. L'ensemble de la partie corps du message, y
compris les entêtes MIME, est utilisé pour générer la signature.
multipart/encrypted est utilisé pour envoyer un contenu encrypté. Sa première partie définit les
informations nécessaires pour décrypter la seconde partie (application/octetstream).
Les services essentiels: DNS et NTP
Le service de nommage (DNS : domain name service) est l'un des services les plus utilisés et n'est
pas le plus souvent correctement protégé. Les principales vulnérabilités sont :
– la fuite d'informations ;
– la corruption de la résolution ;
– le déni de service.
Dans le cas où une station interne peut effectuer des requêtes DNS vers l'extérieur, il est possible
d'envoyer de l'information soit par un tunnel ssh sur le port 53 ou bien en faisant un tunnel IP
directement dans le trafic DNS. La solution est de n'autoriser que les serveurs mandataires à
effectuer des requêtes vers l'extérieur du réseau.
La corruption de la résolution vise à corrompre les données DNS pour assurer un trafic avec un
autre site que celui désiré en :
– compromettant le processus de résolution ;
– en modifiant le trafic DNS ;
– en modifiant le cache dans le serveur de nom.
Le déni de service consiste à envoyer un grand nombre de question sur les serveurs DNS exposé à
l'extérieur.
18/32
Il est nécessaire de segmenter le service DNS en fonction des besoins. Le serveur DNS cache
interne permet la résolution des adresses internes auprès des machines internes. Pour les proxys
cherchant à résoudre des adresses externes, les serveurs caches relaient la question auprès de
serveurs placés en DMZ et qui ne peuvent que faire la résolution des sites externes. Pour les
interrogations externes, un serveur dédié et isolé effectue la résolution des noms des domaines dont
on a la responsabilité.
Pour la sécurisation du DNS visàvis du contrôleur de domaine ou du serveur DHCP qui peuvent
effectuer des mise à jours dynamiques du DNS, il est possible de créer des sousdomaines sur
lesquels ces serveurs ont des droits limités.
L'exploitation des journaux n'est possible que si les équipements sont à l'heure. Il donc important de
les faire se synchroniser sur un serveur de temps en utilisant le protocole NTP.
Protection applicative
Séparation des privilèges
Protection antivirus
Censé protégé le microordinateur contre les malwares, l'antivirus repose sur quatre techniques
principales :
– la recherche de séquences de programmes caractéristiques (détection sur signature), la méthode
la plus usitée;
– l'analyse heuristique ou analyse du comportement
– la modification de zones réservées.
Les antivirus sont globalement satisfaisante pour se prémunir des attaques communes mais sont
inefficaces face aux attaques ciblées ou aux codes malicieux complexes.
Lors de la détection d'un virus, l'antivirus dispose de trois options, il peut :
– tenter de réparer les fichiers endommagés en éliminant le virus ;
– mettre le fichier en quarantaine afin qu’ils ne puissent être accessibles aux autres fichiers ni se
répandre et qu'il puisse éventuellement être réparé ultérieurement ;
– supprimer les fichiers contaminés.
En pratique, seule la suppression a un intérêt réel.
Renforcement du système d'exploitation, empreinte et pot de miel
Le renforcement des systèmes d'exploitation s'appuie avant tout sur l'utilisation de règles simples :
– verrouiller les comptes utilisateurs avec un mot de passe ayant un niveau de complexité
suffisante (mélanger chiffre et lettres, minuscules et majuscules, attention à l'attaque par
dictionnaire et aux substitutions basique o > 0 ou aux séquences de clavier " azerty ") ;
– gérer les accès au système de fichiers ;
– minimiser le nombre de services ;
– faire les mises à jour.
Une mesure complémentaire est de diminuer l'information diffusée par le serveur afin de rendre
plus difficile l'identification du système d'exploitation utilisé et des logiciels associés.
19/32
On peut configurer les services afin de limiter l'information fournie par les banières. On peut aussi
modifier le comportement réseau par une personnalisation de la pile TCP/IP. Ceci peut se faire soit
avec un dispositif en coupure qui va appliquer des filtres (par exemple netfilter) modifiant ainsi les
réponses soit en modifiant directement le comportement de la pile au niveau du noyau. La seconde
solution est plus intrusive et n'est pas toujours possible en particulier pour les systèmes
d'exploitation propriétaires.
De nombreux paramètres dépendent du système d'exploitation, généralement pour des questions de
performances : taille de la fenêtre, réponse sur des ports fermés en UDP et en TCP, ... Des outils
sont également basés sur la réponse à des paquets mal formés. Une solution est d'utiliser un filtre
suprimant les paquets mal formatés (taille de l'entête, combinaison de drapeaux invalide, ...) et
réécrivant certains paramètres (recalcul du checksum, modification des drapeaux, ...) complété par
une reconstruction des paquets fragmentés.
Ces techniques sont en général difficiles à mettre en oeuvre car elles rendent plus difficiles
l'application des correctifs et des nouvelles versions.
Pour comprendre les attaques qui sont menés contre des serveurs, une technique est la mise en place
de serveurs dédiés, les honypots, qui servent de cibles pour les attaques. L'analyse des
comportements permet de mieux détecter les attaques sur les vrais serveurs.
Architecture logicielle et principe du moindre privilège
Les risques
Un logiciel ne peut être sécurisé que si la problématique est traitée dès la conception initiale.
Certains facteurs sont propices à des failles de sécurité et nécessitent des précautions particulières :
– utilisation d'un langage de bas niveau comme C qui permet nu grand nombre d'erreurs ;
– développement spécifique à une plateforme avec utilisation de mécanismes spécifiques à la
plateforme ;
– utilisation de démons fournissant des services réseaux qui exposent le logiciel à une exploitation
à distance;
– utilisation de protocole Internet complexes et qui contiennent parfois des problèmes de sécurité
inhérents : messagerie électronique, téléphonie sur IP.
Une bonne organisation des sources facilite la relecture du code. Un exemple d'organisation est la
séparation des différentes parties du source en fonction des soussystèmes associés. Une verbosité
importante du code et des commentaires facilitent la compréhension de celuici.
La relecture des sources, l'audit du code et la vérification de l'utilisation mémoire sont indispensable
au maintien de la sécurité d'un programme mais ces tâches sont complexes et coûteuses en temps.
Moindre privilège
Les logiciels sont souvent amenés à faire des tâches complexes. L'utilisation d'une architecture
monolithique rend difficile le maintien d'un bon niveau de sécurité. Certains services nécessitent
des droits élevés comme par exemple l'écoute sur des ports privilégiés tandis que le programme
peut être amené à traiter des données non sûres, gérer des files d'attentes, se connecter sur d'autres
programmes, assurer de la disponibilité. La séparation en module permet de répartir les contraintes
et d'appliquer des exigences adaptées à chaque souspartie. Ceci évite que des erreurs de
programmation sur une souspartie affecte le bon fonctionnement de l'ensemble.
20/32
Le programme doit utiliser le moindre privilège. C'estàdire que s'il n'a besoin d'aucun privilège, il
n'a aucune raison d'être lancé avec les droits root. Si le programme a besoin d'effectuer des actions
privilégiées, il doit les effectuer le plus tôt possible dans son fonctionnement.
Si le logiciel doit effectuer régulièrement des actions nécessitant des droits élevés, par exemple
lancer des nouveaux processus, il faut isoler ces fonctions dans un soussystème spécifique dont le
nombre de tâche sera réduit au minimum. En particulier l'utilisateur ne devra pas pouvoir effectuer
des tâches dans ce contexte et les données en entrée et en sortie devront être soigneusement
vérifiées.
Chroot et jail
Chroot ou jail permettent de changer pour un programme le répertoire racine de la machine hôte.
Ceci permet d'isoler l'exécution d'un programme et d'éviter ainsi certaines malveillances, comme
l'exploitation d'un dépassement de tampon, pour ensuite accéder au répertoire racine de la machine
hôte. Il permet également de faire tourner plusieurs instances d'un même ensemble de services ou
démons sur la même machine hôte.
Gestion de la mémoire et contrôle des formats de données
Format des données
Le programme doit considérer comme non sûres toutes les informations qu'il reçoit d'autres
programmes ou d'un utilisateur. Ceci implique en particulier de vérifier que les chaînes de
caractères reçues sont bien des chaînes de caractères, c'estàdire qu'elles se terminent par le
caractère '\0'. Il faut également vérifier la longueur des données pour éviter d'avoir des
débordements de tampons dans le cas où les données seraient de taille trop importante. Enfin, il est
important de vérifier que de la mémoire est effectivement disponible. On peut se retrouver avec un
pointeur NULL ou encore provoquer une erreur de programme pour manque de mémoire.
Gestion de la mémoire
Plusieurs solutions permettent de gérer plus ou moins efficacement la mémoire dans un programme.
Une solution est d'utiliser une librairie qui gère les tampons et les chaînes de caractères afin de gérer
la taille de ceuxci. On peut également utiliser des buffers de taille fixe mais ce n'est pas très souple.
Certains langages de haut niveau utilisent un ramassemiette ce qui permet de ne pas avoir à gérer la
mémoire. Ceci n'empêche pas de prendre en compte la charge induite par le traitement de la
mémoire afin de ne pas dégrader les performances de l'ensemble.
Enfin une solution est de combiner l'utilisation d'une pile pour stocker les données temporaires et
d'un espace mémoire partagé que le programme répartie entre les différentes parties du programme.
La pile permet de stocker les données temporaires et pour désallouer, on supprime la pile entière.
Sensibilité de la mémoire
Un examen de la mémoire lors ou en dehors de l'exécution d'un programme permet de récupérer des
informations sensibles. Ceci est particulièrement vrai pour les mots de passe. La première chose
évidente à ne pas faire est de stocker dans le code un mot de passe. Celuici sera conservé lors de la
compilation et l'attaquant pourra le retrouver en parcourant le fichier binaire.
Suivant les droits possédés par l'attaquant, celuici peut examiner le contenu de la mémoire. Ceci est
possible sous windows avec winhex qui permet de parcourir la mémoire vive. Si des mots de passe
ont été stockés en mémoire vive en clair, ils pourront être lu. Dans le cas de données sensibles, une
21/32
technique consiste à réécrire sur l'espace mémoire. Dans le cas d'une base de données, il est
judicieux de ne pas conserver les mots de passe en clair mais leur image via une fonction de
hashage.
22/32
Les attaques
Programmes malveillants
Outils génériques
On distingue les types suivants :
– Le virus : programme se dupliquant sur d'autres ordinateurs ;
– Le ver (worm en anglais) : exploite les ressources d'un ordinateur pour se dupliquer ;
– Le wabbit : programme qui se réplique par luimême (mais qui n'est ni un virus, ni un ver) ;
– Le cheval de Troie (trojan en anglais) : programme à apparence légitime (voulue) qui exécute
des routines nuisibles sans l'autorisation de l'utilisateur ;
– La porte dérobée (backdoor en anglais) : ouvreur d'un accès frauduleux sur un système
informatique, à distance ;
– Le logiciel espion (spyware en anglais) : collecteur d'informations personnelles sur l'ordinateur
d'un utilisateur sans son autorisation, et en envoyant cellesci à un organisme tiers ;
– L'enregistreur de frappe (keylogger en anglais) : programme généralement invisible installé sur
le poste d'un utilisateur et chargé d'enregistrer à son insu ses frappes clavier ;
– L'exploit : programme permettant d'exploiter une faille de sécurité d'un logiciel ;
– Le rootkit : ensemble de logiciels permettant généralement d'obtenir les droits d'administrateur
sur une machine, d'installer une porte dérobée, de truquer les informations susceptibles de
révéler la compromission, et d'effacer les traces laissées par l'opération dans les journaux
système.
Attaques spécifiques aux messageries
En dehors des nombreux programmes malveillants qui se propagent par la messagerie électronique,
il existe des attaques spécifiques à celleci :
– Le pourriel (spam en anglais) : un courrier électronique non sollicité, la plupart du temps de la
publicité. Ils encombrent le réseau, et font perdre du temps à leurs destinataires ;
– L'hameçonnage (phishing en anglais) : envoi massif d'un courriel dont l'expéditeur se fait
généralement passer pour un organisme financier et demandant au destinataire de fournir des
informations confidentielles ;
– Le canular informatique (hoax en anglais) : un courrier électronique incitant généralement le
destinataire à retransmettre le message à ses contacts sous divers prétextes. Ils encombrent le
réseau, et font perdre du temps à leurs destinataires. Dans certains cas, ils incitent l'utilisateur à
effectuer des manipulations dangereuses sur son poste (suppression d'un fichier prétendument
lié à un virus par exemple).
Attaques par le réseau
Principales techniques
Voici les principales techniques d'attaques sur le réseau :
– Le sniffing : technique permettant de récupérer toutes les informations transitant sur un réseau
23/32
(on utilise pour cela un logiciel sniffer).Elle est généralement utilisée pour récupérer les mots de
passe des applications qui ne chiffrent pas leurs communications, et pour identifier les machines
qui communiquent sur le réseau.
– La mystification (en anglais spoofing) : technique consistant à prendre l'identité d'une autre
personne ou d'une autre machine. Elle est généralement utilisée pour récupérer des informations
sensibles, que l'on ne pourrait pas avoir autrement ;
– L'ARP Spoofing : c'est probablement le cas le plus fréquent. Si l'un des interlocuteurs et
l'attaquant se trouvent sur le même réseau local, il est possible, voire relativement aisé, pour
l'attaquant de forcer les communications à transiter par son ordinateur en se faisant passer
pour un « relais » (routeur, passerelle) indispensable. Il est alors assez simple de modifier
ces communications.
– Le Spoofing de DNS : L'attaquant altère le ou les serveur(s) DNS des parties de façon à
rediriger vers lui leurs communications sans qu'elles s'en aperçoivent.
– Le déni de service (en anglais denial of service) : technique visant à générer des arrêts de
service, et ainsi d’empêcher le bon fonctionnement d’un système. Elle peut se faire via
l'utilisation d'une faille ou plus couramment par l'utilisation massive de requêtes.
– Attaque de l'homme du milieu (man in the middle) : une attaque dans laquelle l'attaquant est
capable de lire, insérer et modifier comme il le souhaite les messages chiffrés entre deux parties,
sans que ni l'un ni l'autre ne puisse se douter que la ligne entre eux a été compromise.
L'attaquant doit d'abord être capable d'observer et d'intercepter les messages d'une victime à
l'autre. L'attaque HDM est particulièrement applicable dans le protocole original d'échange de
clés DiffieHellman, quand il est utilisé sans authentification.
Et d'autres techniques (généralement obsolètes) utilisant les différences de comportement entre les
équipements et les mauvais implémentations de TCP/IP :
– vol de session TCP (hijacking) : il s'agit d'une attaque à l'aveugle dans laquelle on établit une
session avec un hôte en se faisant passer pour un autre. Quand l'attaquant effectue la première
étape de ce procédé, il va mettre l'adresse IP de l'hôte de confiance de la cible comme adresse
source dans l'entête IP du paquet SYN. Mais quand la cible répond par un paquet SYN|ACK,
ce dernier va être envoyé au véritable propriétaire de l'adresse à savoir l'hôte de confiance.
L'attaquant ignore donc le numéro de séquence envoyé par la cible, or il en a besoin pour établir
la connexion. S'il se trompe de numéro d'acquittement, la cible va envoyer un paquet RESET
qui met fin à la procédure. L'attaquant a donc besoin de prédire le numéro de séquence envoyé
par la cible en fonction du numéro de séquence initiale du paquet qu'il a envoyé. Mais s'il arrive
à deviner une plage de valeurs possibles, il peut éventuellement « inonder » la cible avec des
paquets ACK et espérer que l'un des paquets aura le bon numéro d'acquittement. ;
– Syn flood : cette attaque permet un déni de service par un envoi massif de requêtes SYN vers la
cible. En ne terminant pas le dialogue d'initialisation, on crée un grand nombre de connexion
semiouvertes, ce qui empêche l'ouverture de nouvelles sessions. Plusieurs solutions existent :
– limitation du nombre de connexions depuis la même source ou la même plage d'IP, avec un
délai imparti plus ou moins grand ;
– libération des connexions semiouvertes selon un choix de client et un délai aléatoires ;
– réorganisation de la gestion des clients en évitant de consommer des ressources avec des
champs inutiles tant que la connexion n'est pas complètement établie.
– attaque par fragmentation (fragments attacks) : une attaque réseau par saturation (déni de
service) exploitant le principe de fragmentation du protocole IP. En effet, le protocole IP est
prévu pour fragmenter les paquets de taille importante en plusieurs paquets IP possédant chacun
un numéro de séquence et un numéro d'identification commun. A réception des données, le
24/32
destinataire réassemble les paquets grâce aux valeurs de décalage (en anglais offset) qu'ils
contiennent. L'attaque par fragmentation la plus célèbre est l'attaque Teardrop. Le principe de
l'attaque Teardrop consiste à insérer dans des paquets fragmentés des informations de décalage
erronées. Ainsi, lors du réassemblage il existe des vides ou des recoupements (overlapping),
pouvant provoquer une instabilité du système.
– Tiny Fragments : L’attaque consiste à fragmenter sur deux paquets IP une demande de
connexion TCP. Le premier paquet IP de 68 octets ne contient comme données que les 8
premiers octets de l’entête TCP (ports source et destination ainsi que le numéro de séquence).
Les données du second paquet IP renferment alors la demande de connexion TCP (flag SYN à 1
et flag ACK à 0). Or, les filtres IP appliquent la même règle de filtrage à tous les fragments d’un
paquet. Le filtrage du premier fragment (Fragment Offset égal à 0) déterminant cette règle elle
s’applique donc aux autres (Fragment Offset égal à 1) sans aucune autre forme de vérification.
Ainsi, lors de la défragmentation au niveau IP de la machine cible, le paquet de demande de
connexion est reconstitué et passé à la couche TCP. La connexion s’établit alors malgré le filtre
IP.
– Fragment Overlapping : si deux fragments IP se superposent, le deuxième écrase le premier.
L’attaque consiste à forger deux fragments d’un paquet IP. Le filtre IP accepte le premier car il
ne contient aucune demande de connexion TCP (flag SYN = 0 et flag ACK = 0). Cette règle
d’acceptation s’applique, là encore, aux autres fragments du paquet. Le deuxième contenant les
véritables données de connexion est alors accepté par le filtre IP.
Attaques sur les mots de passe
Les deux méthodes suivantes sont les plus utilisées :
– L'attaque par dictionnaire : le mot testé est pris dans une liste prédéfinie contenant les mots de
passe les plus courants et aussi des variantes de ceuxci (à l’envers, avec un chiffre à la fin, etc.).
Ces listes sont généralement dans toutes les langues les plus utilisées, contiennent des mots
existants, ou des diminutifs (comme par exemple “powa” pour “power”, ou “G0d” pour “god”).
– L'attaque par force brute : toutes les possibilités sont faites dans l’ordre jusqu’à trouver la bonne
solution (par exemple de “aaaaaa” jusqu'à “ZZZZZZ” pour un mot de passe composé
strictement de six caractères alphabétiques).
Cartographie du réseau
Reconnaissance passive
La première démarche pour cartographier un réseau est d'utiliser un ensemble de techniques non
intrusives (qui ne pourront pas être détectée) :
– utilisation du Web ;
– les Outils réseau : Whois (donne les informations sur les enregistrements dns), nslookup.
Cette démarche permet d'obtenir des informations sur la cible, diffusées publiquement, mais
pouvant être confidentielles (diffusées généralement par erreur ou insouciance).
Ceci permet d'avoir des noms de responsable, des numéros téléphonique et des adresses
électroniques.
Reconnaissance semiactive
Bien que non intrusives, les techniques suivantes deviennent détectables par la cible, notamment à
l'aide d'un système de détection d'intrusion :
25/32
– ping, traceroute et utilisation des propriétés du protocole ICMP ;
– Balayage de port (port scan en anglais) via Nmap ;
– Prise d'empreinte TCP/IP (TCP/IP fingerprinting en anglais).
Ces techniques permettent généralement de recenser et d'identifier une grande partie des éléments
du réseau cible.
Reconnaissance active
On passe dans les techniques réellement intrusives, donc clairement détectables, mais ne
représentant pas un risque immédiat pour la cible :
– Utilisation des propriétés des protocoles SNMP, SMB, RPC ;
– Détection automatisée de vulnérabilités : Nessus.
Techniques d'intrusion système
– Connexion à une ressource partagée ;
– Attaque par force brute ;
– Attaque par débordement de tampon ;
– Accès à un interpréteur de commandes interactif ;
– Élévation des privilèges ;
– Installation d'un rootkit ;
– Effacement des traces
Attaques avancées
– Le cassage de logiciel (Cracking en version anglaise) : cette technique a pour but la
modification d'un programme pour déjouer sa protection (en général pour permettre une
utilisation complète, ou à durée illimitée) ;
– La rétroingénierie (compréhension des mécanismes internes des logiciels) ;
– Exploitation des bogues de formats : exploite le fait de ne pas vérifier le format des entrées
fournies à un programme ;
– Détournement et utilisation de données WEB : Cookie, CSS, CGI, vulnérabilités concernant les
langages PHP, ASP, SQL, etc.
Attaques cryptanalytiques par canaux auxiliaires
Une sécurité mathématique ne garantit pas forcément une sécurité lors de l'utilisation en pratique.
On distingue deux grandes catégories d'attaques :
– les attaques invasives qui endommagent le matériel (voire le détruisent totalement) :
– attaque par sondage : elle consiste à placer une sonde directement dans le circuit à étudier,
afin d'observer son comportement (généralement utilisée dans le cas des bus chiffrés) ;
– les attaques noninvasives qui se contentent de procéder à une observation extérieure du
système :
– attaque temporelle : étude du temps mis pour effectuer certaines opérations ;
– cryptanalyse acoustique : étude du bruit généré par un ordinateur ou une machine qui
chiffre. En effet, le processeur émet du bruit qui varie en intensité et en nature selon sa
consommation et les opérations effectuées ;
– analyse d'émanations électromagnétiques : similaire à la cryptanalyse acoustique mais en
utilisant le rayonnement électromagnétique (émission d'ondes, analyse d'une image
thermique, lumière émise par un écran, etc.) ;
26/32
– analyse de consommation : une consommation accrue indique un calcul important et peut
donner des renseignements sur la clé ;
– attaque par faute : introduction volontaire d'erreurs dans le système pour provoquer certains
comportements révélateurs. Notons que ce type d'attaque peut être considérée comme
invasive dans certains cas.
Les constructeurs de puces de chiffrement visent à aplanir la courbe de consommation électrique
pour dissimuler les opérations sousjacentes. Des protections et des blindages permettent de limiter
le rayonnement en dehors du circuit. Il faut également tenir compte des états impossibles qui ne
doivent pas se produire et doivent être traités correctement s'ils venaient à être détectés. Limiter les
messages d'erreur et la communication d'informations diverses avec l'extérieur est aussi une
solution mais elle pénalise les développeurs et les utilisateurs du système.
Recherche de vulnérabilités sur des binaires
Analyse par graphes
Les logiciels sont généralement disponibles sous forme compilée. Les seules informations
accessibles sont les commandes au niveau assembleur. Des changements mineurs dans le code
peuvent changer considérablement la suite d'instructions du fait :
– d'allocation de registres différents ;
– de la réorganisation des instructions par le compilateur ;
– d'inversion de branchements entre les blocs d'instructions pour des raisons d'optimisation.
Une approche est de considérer l'exécutable comme un graphe de fonctions qui s'appellent entre
elles, c'est le graphe des appels. Une première comparaison permet de détecter l'ajout de contrôle ou
le remplacement d'un appel par un autre. Pour comparer différentes versions d'un logiciel, on
calcule la signature structurelle des différentes fonctions en s'appuyant sur le nombre de blocs
basiques dans la fonction, le nombre d'arcs vers cette fonction et le nombre d'appels. Ceci permet de
trouver des points fixes d'une version à une autre et par propagation de trouver les isomorphismes
entre les versions.
L'utilisation d'une distance euclidienne permet de résoudre les ambiguités en calculant la racine
carré de la somme des carrés des différences entre les points. Au sein des fonctions on peut
appliquer le même schéma aux blocs basiques en utilisant une signature structurelle telle que
nombres d'arcs pour arriver à l'entrée du bloc, nombre d'arc pour arriver à la fin du bloc et nombre
de sousblocs appelés. On n'utilise plus le nombre d'appels de la fonction car en général le point
d'entrée est unique.
Pour la recherche de vulnérabilités, on se concentre sur les changements apportés, ce qui permet de
trouver plus facilement des zones susceptibles de contenir des vulnérabilités.
Fuzzing
Une autre technique, le fuzzing, consiste à envoyer des données aléatoires presques conformes à un
système afin de détecter des comportements anormaux. Les comportements anormaux sont par
exemple une utilisation anormale de ressources mémoires ou processeurs. Les changements les plus
usités sont :
– des chaînes aléatoires dans leur contenu et leur longueur ;
– des chaînes typiques ;
– un grand nombre aléatoire d'arguments ;
27/32
– des longues chaînes alphanumériques ;
– des chaînes de caractères quelconques ;
– création de contenu adaptés avec des erreurs de compression.
28/32
En pratique
Les applications web
Les banières suffisent en général à identifier le serveur :
telnet www.microsoft.com 80
HEAD / HTTP/1.0
HTTP/1.1 200 OK
Server: MicrosoftIIS/5.0
P3P: CP='ALL IND DSP COR ADM CONo CUR CUSo IVAo IVDo PSA PSD TAI TELo OUR
SAMo CNT COM INT NAV ONL PHY PRE PUR UNI'
ContentLocation: http://tkmsftwbw11/default.htm
Date: Fri, 05 Oct 2001 09:18:47 GMT
ContentType: text/html
AcceptRanges: bytes
LastModified: Thu, 04 Oct 2001 18:34:38 GMT
ETag: "188b883934dc11:854"
ContentLength: 23062
Server: Apache/1.3.14 (Unix) (RedHat/Linux) PHP/4.0.3pl1 mod_perl/1.24
Certains langages sont typiques d'un serveur :
– Apache, Netscape : script PHP ;
– IIS : pages dynamiques ASP ;
– Lotus : bases NSF ;
– Tomcat, WebLogic : script JSP.
Les messages d'erreurs peuvent également être exploités. Il permettent en outre de connaître
l'existence ou non d'un utilisateur dans le cas d'une authentification basic http.
GET /pipo HTTP/1.0
HTTP/1.1 404 Not Found
Date: Sat, 03 Nov 2001 14:33:08 GMT
Server: Apache
Connection: close
ContentType: text/html; charset=iso88591
<!DOCTYPE HTML PUBLIC "//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>404 Not Found</TITLE>
</HEAD><BODY>
<H1>Not Found</H1>
The requested URL /pipo was not found on this server.<P>
<HR>
<ADDRESS>Apache/1.3.12 Server at p500.labo.net Port 80</ADDRESS>
</BODY></HTML>
Les attaques les plus courantes sont :
– l'accès à un shell via une requête par exemple GET ../../../winnt/system32/cmd.exe
– l'injection de requête SQL : elle s'appuie sur l'injection d'une requête SQL non prévue ;
– le cross site scripting par envoi de contenus html ou javascript affiché par le serveur sans
filtrage. Ces attaques ne compromettent pas le serveur mais permettent de voler des données.
29/32
Le cross site scripting consiste à injecter du javascript dans les données envoyées au serveur. Ce
code est ensuite exécuter sur le poste client. Il existe trois types de failles XSS :
– faille locale : le problème est dans le script d'une page côté client. Par exemple, si un fragment
de javascript accède à un paramètre d'une requête d'URL, et utilise cette information pour écrire
du HTML dans sa propre page, et que cette information n'est pas encodée sous forme d'entités
HTML, alors il y a probablement un trou XSS, puis les données écrites seront réinterprétées par
le navigateur comme du HTML contenant éventuellement un script ajouté.
– faille non permanente : elle apparaît lorsque des données fournies par un client web sont
utilisées telles quelles par les scripts du serveur pour produire une page de résultats. Si les
données non vérifiées sont incluses dans la page de résultat sans encodage des entités HTML,
elles pourront être utilisées pour injecter du code dans la page dynamique reçue par le
navigateur client.
– faille permanente : elle se produit quand les données fournies par un utilisateur sont stockées sur
un serveur (dans une base de données, des fichiers, ou autre), et ensuite réaffichées sans que les
caractères spéciaux HTML aient été encodés. Elle est souvent présente sur des forums.
La méthode HTTP TRACE permet de faire du XSS. Cette méthode est traditionnellement utilisée
pour déterminer la vision qu’a le serveur d’une requête. Le serveur renvoyant exactement
l’argument fourni par l’utilisateur, cette méthode est couramment utilisée pour réaliser des attaques
de type XSS.
var xmlHttp = new ActiveObject("Microsoft.XMLHTTP")
xmlHttp.open("TRACE", "./", false)
TRACE
/mail/victime.nsf/c1dee9080256c3f003dccf5/33cc18a13483c9f2c125704400447cf
6/$FILE/
HTTP/1.1
Accept: */* AcceptLanguage: fr
Referer:
http://Srv_Domino/mail/victime.nsf/c1cdee9080256c3f003dccf5/33cc18a13483c
9f2c125704400447cf6/$FILE/Humour.htm
AcceptEncoding: gzip, deflate
UserAgent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR
1.1.4322)
Host: Srv_Domino
ContentLength: 0
Connection: KeepAlive
CacheControl: nocache
Authorization:,dmljdGltZTptZHBfc2VjcmV0IA
La seconde attaque la plus courante est l'injection de code SQL qui permet de corrompre la base ou
de faire des requête arbitraires. Par exemple :
Private Sub btnLogin_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles btnLogin.Click
SqlConnection1.Open()
Dim str As String = "SELECT * FROM Users WHERE UserID='" _
& txtName.Text & "' AND Password='" & _
txtPassword.Text & "'"
Dim comm As New SqlCommand(str, SqlConnection1)
Dim reader As SqlDataReader = comm.ExecuteReader()
If Not reader.HasRows Then _
Response.Write("Login failed. Please try again")
30/32
While reader.Read()
Response.Write("Hello " & reader("UserName"))
End While
End Sub
Indépendemment de l'application web, il est judicieux de mettre des filtres (mod_security) afin de
bloquer les requêtes malveillantes connues. Ceci permet également de cacher les erreurs qui
peuvent être générées par le serveur. Enfin on peut faire une analyse avec un antivirus des fichiers
reçus ou encore chrooter le serveur. Dans le cas d'application web bien construite, on peut définir
un profil contenant l'ensemble des requêtes valides afin de ne permettre que l'envoi de cellesci.
Exemples d'attaques sur les entêtes : répétition d'entêtes. Certains serveurs prennent en compte le
premier, d'autres le second.
Des modules (mod_dosevasive) permettent de détecter des bloquer les deni de service en limitant
les requêtes répétés sur des ressources et la fréquences de cellesci selon trois facteurs :
– requêtes répétées sur une même ressource. Un utilisateur ne récupère pas plusieurs fois la même
ressource.
– multiplication du nombre de requêtes. Un utilisateur ne récupère pas massivement des
ressources.
– sortie de la liste noire après un certain délai.
31/32
Le wifi
Le wifi est une technologie de réseau informatique sans fil mise en place pour fonctionner en réseau
interne. Les réseaux filaires traditionnels posent des problèmes liés aux travaux de mise en place,
coût d'acquisition, au nécessaire surdimensionnement des infrastructures, et à la faible mobilité du
réseau.
Les réseaux wifi posent des problèmes liés :
– au confinement du réseau : contrôle d'accès au médium est difficile du fait de la multiplicité des
points d'accès et la difficulté pour confiner le réseau.
– à la confidentialité des échanges : faible segmentation du réseau. Les points d'accès se
comportent comme des hubs. N'importe quel utilisateur peut écouter une grande partie du trafic.
– à la résistance à l'écoute : faible robustesse des mécanismes standards de sécurité et des
technologies de chiffrement et possibilité d'écoute passive.
– à la disponibilité du réseau : saturation des ressources ip disponibles avec un grand nombre de
demandes. Brouillage par bruit électromagnétique.
La mise en œuvre de tels réseaux nécessite :
– la vérification du respect de la législation sur l'usage des bandes de fréquences;
– d'évaluer les perturbations électromagnétique de l'environnement ainsi que les risques naturels.
– une étude sur le positionnement des point de raccordement qui soit adapté à la zone de
couverture. Définition des espaces couverts non désirés.
– la protection physique des locaux et des abords des locaux afin de se prémunir contre les
atteintes aux matériels et l'écoute passive.
– la définition des flux réseaux transportés sur le réseau et de leur sensibilité.
– la protection logique du réseau adaptée à la sensibilité des services par les mesures graduelles
suivantes :
– l'activation du chiffrement des flux avec une clef WPA qui est plus sûre que WEP du fait
d'une meilleure utilisation des moyens cryptographiques et des changements réguliers de
clefs;
– le cloisonnement entre le réseau non filaire et le réseau filaire;
– une restriction des postes autorisés (adresse IP et MAC) mais difficile à gérer sur un réseau
de taille importante et/ou avec des changements fréquents des postes.
– la mise en place de l'authentification réciproque des clients et de l'infrastructure réseau
(nécessite un serveur d'authentification);
– l'activation d'IPSEC;
– sécurisation des points d'accès : changement des mots de passe, limitation des services, réglages
des puissances, gestion des mises à jour, journalisation, gestion des pannes matérielles,
supervision, ...
Dans tous les cas on est confronté au risque résiduel de brouillage à l'aide d'un émetteur contre
lequel il est difficile de se prémunir y compris en utilisant des sauts de fréquence.
32/32