|
Introduction et initiation à la Sécurité Informatique |
Introduction à la sécurité informatique
Le but de cette fiche est de familiariser les lecteurs avec les notions de base de la sécurité informatique, telles que
définies dans la norme ISO 7498-2 par exemple.
Les objectifs de la sécurité informatique
La sécurité informatique à plusieurs objectifs, bien sûr liés aux types de menaces ainsi qu'aux types de ressources, etc...
Néanmoins, les points principaux points sont les suivants :
- empêcher la divulgation non-autorisée de données
- empêcher la modification non-autorisée de données
- empêcher l'utilisation non-autorisée de ressources réseau ou informatiques de façon générale
Les champs d'application de la sécurité informatique
Ces objectifs s'appliquent dans différents domaines ou champs d'applications, chacun faisant appel à des techniques
différentes pour atteindre le ou les mêmes objectifs; ces champs sont:
- la sécurité physique
- la sécurité personnelle
- la sécurité procédurale (audit de sécurité., procédures informatiques...)
- la sécurité des émissions physiques (écrans, câbles d'alimentation, courbes de consommation de courant...)
- la sécurité des systèmes d'exploitation
- la sécurité des communications
Terminologie de la sécurité informatique
La sécurité informatique utilise un vocabulaire bien défini que nous utilisons dans nos articles. De manière à bien
comprendre ces articles, il est nécessaire de définir certains termes :
- Les vulnérabilités : ce sont les failles de sécurité dans un ou plusieurs systèmes. Tout système vu dans sa globalité
présente des vulnérabilités, qui peuvent être exploitables ou non.
- Les attaques (exploits): elles représentent les moyens d'exploiter une vulnérabilité. Il peut y avoir plusieurs attaques
pour une même vulnérabilité mais toutes les vulnérabilités ne sont pas exploitables.
- Les contre-mesures : ce sont les procédures ou techniques permettant de résoudre une vulnérabilité ou de contrer une
attaque spécifique (auquel cas il peut exister d'autres attaques sur la même vulnérabilité).
- Les menaces : ce sont des adversaires déterminés capables de monter une attaque exploitant une vulnérabilité.
Pour d'autres définitions, consultez la norme ISO 7498-2 qui définit pas moins de 59 termes; d'autres définitions sont
également disponibles dans notre lexique.
Types d'attaques
Les attaques peuvent à première vue être classées en 2 grandes catégories :
- les attaques passives : consistent à écouter sans modifier les données ou le fonctionnement du réseau. Elles sont
généralement indétectables mais une prévention est possible.
- les attaques actives : consistent à modifier des données ou des messages, à s'introduire dans des équipements réseau ou à
perturber le bon fonctionnement de ce réseau. Noter qu'une attaque active peut être exécutée sans la capacité d'écoute.
De plus, il n'y a généralement pas de prévention possible pour ces attaques, bien qu'elles soient détectables (permettant
ainsi une réponse adéquate).
Profils et capacités des attaquants
Les attaquants peuvent être classés non-seulement par leurs connaissances (newbies, experts, etc...) mais également suivant
leurs capacités d'attaques dans une situation bien définie. Ainsi, on dénombrera les capacités suivantes :
- transmission de messages sans capacité d'écoute (IP spoofing...)
- écoute et transmission de messages
- écoute et perturbation des communications (blocage de paquets, DoS et DDoS...)
- écoute, perturbation et transmissions de messages
- écoute et relai de messages (attaques type man-in-the-middle)
Une autre caractéristique des attaquants va être leur emprise uni-directionnelle ou bi-directionnelle
sur les communications, du fait de la nature asymétrique de celles-ci. En effet, la plupart des canaux de transmissions sur
Internet ou sur tout autre réseau hétérogène sont uni-directionnels et empruntent des chemins différents suivant les
règles de routage. Ainsi, de nombreux protocoles de sécurité sont également unidirectionnels et il faut établir plusieurs
canaux pour permettre un échange en "duplex". Ces canaux qui sont au nombre de 2 minimum, sont la plupart du temps gérés
de façon totalement indépendante par les protocole de sécurité. C'est le cas pour SSL/TLS mais également pour IPSec dont
les associations de sécurité (SA) sont unidirectionnelles et indépendantes, chacune définissant son propre jeu de clés,
algorithmes, etc...
Services principaux de la sécurité informatique
Pour remédier aux failles et pour contrer les attaques, la sécurité informatique se base sur un certain nombre de services
qui permettent de mettre en place une réponse appropriée à chaque menace. A ce niveau, aucune technique n'est encore
envisagée; il ne s'agit que d'un niveau d'abstraction visant à obtenir une granularité minimale pour déployer une politique
de sécurité de façon optimale (les aspects pratiques tels qu'analyses de risques, solutions technologiques et coûts
viendront par la suite. Voir le "Site Security Handbook", RFC 1244 pour plus
de détails). Décrivons les principaux services de sécurité :
- confidentialité
- authentification (entité, origine des données)
- intégrité
- machines (tamper-résistance, tamper-proofness, exécution sécurisée...)
- données (avec possibilité de récupération)
- flux :
- mode non-connecté, au niveau paquet (échanges de type requête-réponse, comme UDP)
- mode orienté-connexion (ensemble de l'échange, comme TCP)
- intégrité de séquences partielles (VoIP, applications, etc... permet d'éviter les DoS par exemple)
- contrôle d'accès (= autorisation, à différentier de l'authentification)
- non-répudiation (avec preuve d'émission ou avec preuve de réception)
Notez que le chiffrement, les signatures digitales et autres techniques correspondent au niveau d'abstraction inférieur,
décrit comme l'ensemble des mécanismes de sécurité permettant de réaliser les services décrits ci-dessus. Plusieurs
mécanismes peuvent par exemple réaliser le service d'authentification (schémas d'authentification, chiffrement, signatures
digitales...). Néanmoins, ces mécanismes de sécurité ne correspondent pas encore aux solutions finales qui seront
réellement implémentées. Il faudra pour cela effectuer un dernier raffinement, consistant à choisir les algorithmes
symétriques, les algorithmes asymétriques, la tailles des clés, etc...
Enfin, il existe d'autres notions qui ne peuvent être classées directement dans ces listes; la confiance (trust) est un bon
exemple. En effet, bien qu'elle soit très coûteuse, la confiance est obligatoire pour garantir l'efficacité des mécanismes
de sécurité mis en place. Citons l'exemple d'un protocole d'encapsulation chiffrée (tunneling), développé en soft, permettant
d'échanger des données tout en préservant leur confidentialité. Or, si seules les données sont protégées, il est plus
simple pour un attaquant de s'introduire dans l'une des machines aux extrémités (PC ou autres), de modifier les librairies
correspondantes de façon à fausser le mécanisme de sécurité (nombres aléatoires forcés à une valeur constante, valeurs
de clés prédéfinies, algorithmes NULL) et enfin de pouvoir accéder à loisir aux données transmises. D'où la nécessité de
mettre en place un schéma de confiance visant à interdire ce type d'attaque; il est nécessaire de pouvoir faire confiance
aux équipements de sécurité car dans le cas contraire, l'utilité même des mécanismes de sécurité est remise en question.
| |