Journal du Net > Solutions >  Petit bréviaire des attaques et des failles de sécurité
Article
 
26/11/01

Petit bréviaire des attaques et des failles de sécurité

  Envoyer Imprimer  

Dans le monde de l'informatique, il existe au moins des millions de failles, et encore plus de manières de les exploiter. Même si certaines sont tellement particulières qu'il est difficile de les qualifier avec des termes génériques, la plupart se rangent dans des catégories précises. Cette suite de questions-réponses que vous propose JDNet Solutions ne constitue en rien un mode d'emploi visant à former de nouveaux pirates, ou à aider ceux-ci dans leurs basses besognes. C'est pourquoi le degré de précision s'arrête à de simples définitions mises en perspective. L'objectif étant de sensibiliser le lecteur aux problématiques de sécurité, et de l'assister dans sa compréhension des phénomènes les plus courants.

Voir les autres Questions-Réponses

Faille, vulnérabilité, attaque, intrusion, exploit, incident, alerte... quelle est la différence entre tous ces termes ?
Pour commencer par le plus évident, une faille, une vulnérabilité et une brèche sont de véritables synonymes. En langage familier, l'on parle également de "trou de sécurité". Les solutions du commerce tant que les développements propriétaires n'échappent pas à la règle: il n'existe pas de système infaillible. En clair: il existe presque toujours un ou plusieurs moyens de détourner le fonctionnement "normal" d'une application.

Une fois ceci considéré, le fait de se servir d'une faille pour parvenir à détourner un système de son fonctionnement

normal s'appelle un exploit. Le pirate "exploite" la vulnérabilité, sans confusion possible avec un exploit au sens de la prouesse. Il est souvent enfantin d'exploiter l'existence d'une brèche, même si la réussite de l'action peut susciter un plaisir chez l'individu. C'est d'ailleurs cette évidence, entre autres, qui fait aujourd'hui qu'un nombre croissant de jeunes inexpérimentés constituent la principale menace externe aux systèmes d'informations des entreprises. Une raison de plus de protéger ses capitaux efficacement, car la motivation de ces "boutonneux" ou "boiteux" - comme les appellent les américains - est difficilement contrôlable.

Ensuite, toutes les attaques ne sont pas des exploits. En l'absence de faille, il est parfois encore possible d'attaquer un système. L'un des exemples les plus flagrants consiste à "casser" les codes de chiffrement en mettant en oeuvre de la puissance de calcul. La pratique qui consiste à "forcer une serrure" s'appelle communément "brute force cracking" en langage de sécurité. L'intrusion dans un système, de son côté, est seulement l'un des objectifs possibles d'une attaque. Certaines attaques ont en effet pour simple but de mettre le dit système hors fonction.

Enfin, la question de l'incident intervient quand une attaque a été constatée
en dehors du cadre des tests effectués par les experts en sécurité pour vérifier la présence ou l'absence de failles. A la suite d'un incident, la société spécialisée ou l'organisme chargé du support peuvent publier une alerte afin d'avertir les autres possesseurs de ce système qu'ils courent des risques auxquels ils peuvent pallier.


Pourquoi est-il parfois si facile d'exploiter des failles ?
La réutilisation du code source et de la méthodologie des exploits publiés par certains experts en sécurité ne constitue qu'un des aspects de cette simplicité. Les caractéristiques d'un système varient souvent en fonction des paramètres définis lors de son installation dans un environnement donné. Quelqu'un qui ne maîtrise pas les langages de programmation et l'architecture du système ne saura a priori que copier/coller les lignes de code et suivre pas à pas les explications données.

Il en résulte que les installations par défaut d'applications vulnérables sur des systèmes répandus représentent un élément de facilité supplémentaire, puisque le copier/coller aura davantage de chances de fonctionner. Parmi les situations types de failles évidentes à exploiter, l'on retrouve aussi l'absence de mots de passe, ou le fait que ceux-ci soient trop facile à élucider. Que dire, par exemple, de l'administrateur qui oublie de supprimer un compte de test, dont l'identifiant est "test" et le mot de passe "test"... Et pourtant, le même plaisir peut se lire sur la face du débutant qui trouve cela, que sur celle du hacker expérimenté qui résoud un problème complexe.


Les virus, les vers et les chevaux de Troie sont-ils des failles ?
Souvent, les virus et les vers, quels que soient leurs modes de réplication qui les différencient, profitent de vulnérabilités existantes pour se propager. Ce ne sont pas des failles, mais il arrive parfois qu'ils en créent de nouvelles au passage, volontairement ou non, sur les systèmes dans lesquels ils s'insèrent. En outre, les virus et les vers étant des programmes, ils peuvent eux-mêmes en transporter.

Les chevaux de Troie, en revanche, ont justement pour but d'ouvrir de nouvelles brèches appelées "backdoors" (portes de derrière). Pour éviter de reproduire un exploit à chaque intrusion dans un système, le hacker peut en installer un pour revenir quand bon lui semble et disposer de ressources en place qui lui permettent d'élargir son champ d'action.

Lire le Questions-Réponses sur les codes malicieux


Les vulnérabilités touchent-elles uniquement les systèmes ?
Non, pas seulement. L'être humain, lui aussi, est faillible. Lorsqu'il ne respecte pas les consignes élémentaires de sécurité, il met en danger l'intégrité du système dont il a la charge. C'est ce qui arrive, par exemple, lorsque les mots de passe sont en clair ou trop faciles à élucider. Et l'on parle également de vulnérabilité humaine quand un ver arrivant par mail se sert de la crédulité en incitant à cliquer sur la pièce jointe infectée.


N'est-ce pas ce qui arrive aussi dans le cas du "Social Engineering" (ingénierie sociale) ?
Tout à fait. L'ingénierie sociale est un ensemble de procédés utilisés par les hackers pour exploiter les vulnérabilités humaines. Un appel à la secrétaire du patron en se faisant passer pour le support technique afin de récupérer un mot de passe, et les nombreuses techniques du genre que l'on retrouve parfois dans les films d'espionnage, sont des pratiques d'ingénierie sociale. En raison de leur prolifération, il est essentiel d'implémenter une politique globale de sécurité qui tienne compte des facteurs humains et pas seulement informatisés.


Revenons à l'informatique. A quoi correspondent les attaques de déni de service (DOS) ? Pourquoi dit-on parfois qu'elles sont "distribuées" (DDOS) ?
Lorsqu'un système refuse de fonctionner, il "dénie" le service qu'il est censé rendre. Lorsqu'ils sont soumis à une attaque de déni de service, un serveur web n'affiche plus le site qu'il supporte, un serveur de messagerie ne gère plus l'envoi et la réception des messages, et un serveur d'applications ne sait plus quoi faire de ses applications. Cela arrive, par exemple, lorsque le serveur est forcé de redémarrer au lieu d'assurer la continuité du service. Cela arrive aussi lorsqu'il se bloque.

L'une des principales techniques employées pour provoquer un déni de service consiste à "flooder" (inonder en bon français) l'ordinateur cible. En recevant un flux trop important de données, celui-ci n'est plus capable de les gérer. Et en quelque sorte, il fait la grève. Pour augmenter ce flux, le pirate peut commander à plusieurs machines synchronisées entre elles d'envoyer simultanément des données. Et l'on parle alors de déni de service distribué.

Certaines attaques de DOS ou de DDOS ont pour seul objectif de provoquer la panne. Mais d'autres visent à profiter de cette panne pour faciliter l'intrusion, lorsque les systèmes de sécurité installés sont aussi touchés ou qu'une brèche s'ouvre à un instant donné.


Qu'est-ce qu'un "buffer overflow" ? Ce terme est-il synonyme d'un "buffer overrun" ?
Ces deux techniques d'attaque sont différentes, mais ont pour même objet la mémoire tampon, ou le "buffer". Le logiciel se sert de celle-ci pour stocker en mémoire, à un espace réservé, les données en cours de traitement. A partir de là, et connaissant l'adresse en mémoire vive (RAM) de cette mémoire tampon (buffer) du logiciel, le pirate peut provoquer un "buffer overflow" en dépassant sa capacité maximale de traitement. Selon les cas, l'excédent de données peut avoir différentes conséquences : provoquer un mauvais fonctionnement exploitable du logiciel, ou même réécrire la zone suivante qui était protégée et n'était pas facilement accessible.

Un "buffer overrun", quant à lui, a pour but de remplacer purement et simplement le contenu de la mémoire tampon, de sorte qu'il soit interprété (bien ou mal) et/ou éxécuté par l'application. L'un et l'autre sont des vulnérabilités que les programmeurs du logiciel pourraient éviter s'ils protégeaient cette zone de la mémoire.


Pourquoi l'obtention d'un "root compromise" est-elle si prisée des hackers ?
Le terme "root" est un synonyme anglais de "superuser", soit le super-utilisateur à l'échelon le plus élevé de la hiérarchie des utilisateurs d'un système comme Unix ou Windows NT. Mais pas de Windows 95, 98 et Me, qui sont des systèmes à un seul utilisateur. C'est la raison pour laquelle ils ne sont généralement pas utilisés pour faire tourner des applications serveur auxquelles accèdent plusieurs personnes en simultané.

Un "root compromise" signifie donc l'obtention du privilège de super-utilisateur. Comme celui-ci est le plus souvent l'administrateur du système, le hacker qui réussit à posséder ce droit dispose du contrôle existant le plus élevé du système. En clair, il peut changer les mots de passe des autres utilisateurs, accéder à des lecteurs partagés et en ouvrir sur le réseau, modifier les composantes de son choix, etc. Pour éviter cela, les systèmes les plus sécurisés à l'heure actuelle répartissent les privilèges les plus hauts entre deux personnes: l'administrateur et le responsable de la sécurité qui contrôle le premier.


Les failles CSS ont-elles quelque chose à voir avec le langage permettant d'écrire des feuilles de style pour afficher des pages web en fonction de scénarios ?
Pas vraiment. En réalité, l'acronyme CSS signifie Cross Site Scripting dans le cas d'une faille, tandis que le langage s'appelle Cascade Style-Sheet. Lorsqu'il s'agit de la vulnérabilité, elle affecte les sites web où il est possible d'entrer du texte dans des cases: formulaires, forums, webmails... En insérant des lignes de code en langage de script (JavaScript, VBScript...) à la place du texte classique, le serveur non protégé peut les interpréter et les éxécuter. Le résultat varie selon le script qui est inséré. La solution: revoir les développements du site en empêchant l'interprétation des scripts insérés dans les champs ouverts à la saisie.


Une bonne partie de ces risques concernent des attaques depuis l'extérieur. Mais pourquoi dit-on aussi que les risques internes sont plus importants ?
Parce que l'entreprise comprend en général qu'elle doit se protéger de l'extérieur, et installe pour cela des firewalls et différents systèmes de protection qui ont pour but de stopper les intrus. Mais les systèmes de sécurité internes sont plus rares, et n'existent le plus souvent que lorsqu'un audit a été réalisé et une politique globale implémentée. D'autre part, lorsque le cheval de Troie est humain, il connaît l'entreprise, ses habitudes et sait en général où et comment se renseigner pour en apprendre plus. Si les mots de passe apparaissent sur des "post-its" collés aux écrans, il n'a pas besoin de se procurer un badge d'accès pour les voir. Or, le véritable ennemi est parfois interne: salarié qui a le sentiment de ne pas être reconnu, jaloux d'un confrère, simplement curieux... ou même taupe dépêchée par un concurrent.


Si aucun système n'est infaillible, alors pourquoi confier des tâches critiques à l'informatique et ne pas revenir au format papier ? Et si même les systèmes de sécurité sont faillibles, alors pourquoi en installer ?
Tout d'abord, le format papier est lui aussi faillible. Sinon, il n'existerait par exemple pas de faux billets de banque. Quand on connait les moyens mis en oeuvre pour empêcher leur duplication, et que l'on s'aperçoit un beau jour que des petits malins ont réussi à les reproduire... l'on n'interdit pas pour autant les vrais billets.

Un expert a dit un jour: "ne pas installer un système de sécurité sur un serveur revient à ouvrir une banque sans porte blindée ni caméras, avec la possibilité d'aller et venir dans le coffre". Evidemment, la porte blindée ne résistera pas forcément à une caisse de dynamite, mais si elle n'est pas là, rien n'empêche effectivement quiconque de rentrer. Enfin, dans une banque, il faut aussi des gardes et un chef de sécurité qui font respecter des règles. Sans quoi, la porte blindée reste ouverte, les caméras ne sont pas remplacées si elles sont cassées, et personne ne sait quoi faire en cas d'attaque. La politique de sécurité est aussi un peu comme cela: il faut des systèmes de protection adaptés, des règles et des procédures applicables, et des personnes pour les faire respecter.

Pour des informations complémentaires sur les 20 failles les plus critiques liées à la sécurité sur Internet, nous vous suggérons d'en consulter la liste détaillée sur le site du SANS Institute. Cette organisation coopérative américaine de recherche et d'éducation, fondée en 1989, regroupe plus de 96 000 administrateurs réseaux/systèmes et experts en sécurité informatique, travaillant dans les secteurs privé, public et militaire.


JDN Solutions Envoyer Imprimer Haut de page

Sondage

Votre entreprise évolue-t-elle vers une informatique bimodale ?

Tous les sondages