« back

Heartbleed, Shellshock, Poodle… Le web et ses failles de sécurité

Shellshock, et plus récemment Poodle, sont des noms que vous avez peut-être entendu récemment sur Internet. Bien que peut-être pas très explicites pour vous, ces noms simples cachent de terribles failles de sécurité. 2014 à été une mauvaise année dans ce domaine, car un grand nombre de failles de sécurité, dont certaines très graves, ont été dévoilées.

Avant de vous présenter ces failles qui ont fait trembler internet, prenons un moment pour rappeler ce que sont les failles de sécurité. Il s’agit bugs, situés dans certains logiciels utilisés pour faire tourner les sites web, qui vont permettre des comportements diminuant la sécurité du site. Ces failles peuvent simples ou complexes, dangereuses ou non. Elles peuvent permettre des déni de service (rendant un site inaccessible), l’interception de données (l’attaquant se plaçant entre vous et le serveur et subtilisant les données, même sécurisées – ou pire, remplaçant ces données) ou de l’execution à distance (donnant la possibilité pour un attaquant de lancer des commandes sur un serveur). Ces failles peuvent exister dans un programme longtemps, parfois connues de seulement quelques individus – espérons qu’il s’agit de chercheurs en sécurité et non de hackers – et sont souvent méconnues jusqu’a leur diffusion, quand les détails sont communiqués publiquement. À ce moment, les attaques s’intensifient, et corriger ou mettre à jour est obligatoire pour garder ses données à l’abri et ses clients heureux.

Voyons quelques unes de ces failles divulguées cette année :

heartbleed

Heartbleed

Cette faille, comme son nom l’indique, va diffuser des informations du cœur de la librairie SSL qui devraient rester privées. Cette faille touche la bibliothèque OpenSSL, une bibliothèque open-source populaire utilisée dans un grand nombre de logiciels sur le web, donc l’impact de cette faille est très important.

Heartbleed permettait à un attaquant de récupérer la clé privée d’un serveur. Cette clé est utilisée par le serveur pour déchiffrer les données que le client lui envoie. Sans cette clé, il est impossible de déchiffrer les données qui circulent entre le client et le serveur. Et, comme son nom l’indique, elle est supposée rester secrète. Mais Heartbleed permettait de récupérer cette clé depuis la mémoire en envoyant des paquets spécialement préparés: de cette manière, un attaquant pouvait récupérer des données privées depuis la mémoire comme des mots de passe, ou pire, la fameuse clé privée, qui permettrait à un attaquant de déchiffrer des données volées depuis une connexion sécurisée ou se faire passer pour le site à qui la clé à été volée.

Cette faille à été rapidement corrigée, à la fois par l’équipe d’OpenSSL et les équipes des systèmes d’exploitation qui fournissent leurs binaires OpenSSL, mais avoir été vulnérable signifie devoir se procurer de nouveaux certificats, car les anciens peuvent avoir été compromis. Ce fut aussi un coup dur pour le projet OpenSSL. Critiquant des failles structurelles et la mauvaise architecture du projet, l’équipe d’OpenBSD à décidé de lancer leur propre version d’OpenSSL, LibreSSL, dont une grande quantité de code ancien à été supprimé et une grande partie du code nettoyé, évitant potentiellement d’autre problèmes de ce genre, et devrait être accessible dans les prochains mois.

Si vous voulez savoir comment Heartbleed marche, le blog anglophone XKCD à une très bonne explication du sujet. Vous pouvez la lire ici.

Shellshock

Shellshock

Tous ceux qui disaient qu’Heartbleed était la pire faille de sécurité ont vite revu leur copie lors de la diffusion de Shellshock. Alors que le premier permettait juste de lire arbitrairement dans la mémoire, Shellshock permet d’executer des commandes sur un server distant. Ce qui permet toutes sortes d’attaques, la récupération de données, la mise hors-service du serveur, la destruction du site web, et tellement plus… Et le pire dans tout cela: cette faille est présente depuis des années.

La faille shellshock touche le logiciel bash, un shell UNIX. Ce logiciel est responsable de l’execution de programmes, que ce soit des programmes lancés par des utilisateurs que d’autres programmes, et est souvent utilisé par les serveurs web pour lancer des sous-programmes responsable de la génération des pages. Cette faille touche l’environnement, un ensemble de données transmises de programme en programme, qui contient des informations utiles pour l’execution de ces derniers. Dans le cas d’un serveur web, il est utilisé pour transmettre toutes les informations sur une requête (quelle page demande l’utilisateur, quel navigateur il utilise, de quelle page il vient, …) au programme suivant.

Le problème est une fonctionnalité ajoutée à bash il y a longtemps (en 1989) qui permet d’utiliser l’environnement pour passer des fonctions, des morceaux de code qui peuvent être utilisées par le shell pour executer certaines tâches. Cette fonctionnalité peut se révéler utile et n’est pas vraiment le problème: dans le cas d’un serveur web, bash se contenterait de passer le code de la fonction au programme de génération de la page et ne jamais les utiliser. Mais voici le problème: si la fonction est écrite correctement, elle peut forcer bash à executer du code à son lancement, ce qui n’est pas souhaitable. Cela veut dire qu’une personne peut simplement demander une page et introduire un en-tête HTTP spécialement préparé, et lorsque bash va lire l’environnement contenant les données malicieuses, il va tenter de les executer. Et cela permet d’executer toutes sortes d’attaques.

Pire: au fur et à mesure que le problème était corrigé, de nouvelles méthodes pour exploiter la faille étaient découvertes et nécessitaient de nouvelles corrections. Alors que heartblead était résumé en un seul rapport de faille (CVE), shellshock à produit 6 rapports – donc 6 failles – permettant l’execution de données. Et il risque d’y en avoir encore plus.

La faille à principalement touché les serveurs Linux ou bash est utilisé pour toutes sortes d’opérations sur le serveur. Des patchs sont sortis rapidement pour corriger le problème et éviter de nouvelles attaques. Apple, qui utilise aussi bash sur OS X, à publié son premier correctif de sécurité pour bash, même si les macs ne devaient pas être vulnérables à moins d’activer des services particuliers.

Poodle

Poodle est une faille dans le protocole de sécurité SSLv3. Et c’est un problème grave car il s’agit d’un problème de conception et non d’un problème de logiciel: il faut donc complètement abandonner ce protocole.

La faille permet à un attaquant volant une connexion sécurisée de décoder les données. Cela permet d’intercepter des données sensibles, comme des mots de passes ou des informations bancaires, ou des cookies permettant à l’attaquant de voler une session ouverte et de se faire passer pour la victime.

Le problème est créé par un validation trop faible des données transmises qui laisse une opportunité pour cette attaque. La solution est simple: oublier complètement SSLv3 et utiliser TLS pour les connexions, vu que cette révision du protocole effectue des vérifications plus strictes des données, rendant cette attaque impossible. Si vous utilisez des logiciels récents, vous devriez déjà utiliser TLS. Sinon, il est temps de faire des mises à jour.

La sécurité sur le web est un sujet bouillant. Toutes les secondes, des serveurs web sont attaqués et des données sont volées. Toutes les minutes, une nouvelle faille peut être découverte, menant à de nouvelles attaques menaçant vos données. Bien sûr, les experts en sécurité veillent en permanence pour découvrir et corriger ces problèmes; mais les hackers font de même, et leur but n’est pas la correction des failles. Est-ce que vous données sont sécurisées ? Peut-être. Le web fait de son mieux pour conserver un espace sécurisé, mais comme vous pouvez le constater ici, ce chemin est parsemé d’embûches.

Laisser un commentaire