HeartBleed
On vient de remarquer que le grillage au fond du jardin de l'Internet est coupé. Depuis deux ans. C'est grave.
TL;DR Si vous administrez un serveur, mettez-à-jour immédiatement OpenSSL. Maintenant, pas demain. Tout de suite.
Si vous n'administrez pas de serveur, vous pouvez quand même paniquer (un peu) : je vous explique pourquoi dans des mots simples.
Mise à jour : Vous pouvez tester vos sites préférés ici, mais continuez la lecture pour mieux comprendre.
Comment ça, « une faille » ? #
Il n'est pas toujours facile pour les personnes non-techniques de comprendre ce qui se passe quand on leur parle de failles de sécurité.
La faille découverte hier soir est d'une ampleur considérable, et pourrait avoir des conséquences très lourdes, voire inédites.
La faille HeartBleed touche une brique logicielle très importante dans le monde de l'Internet : OpenSSL. C'est le nec plus ultra du logiciel libre en matière de sécurité ; un niveau d’exigence très important, une stabilité sans égale, une intégration facile… c'est la boîte-à-outil logicielle parfaite quand on doit faire du chiffrement.
On utilise au quotidien cette technologie pour faire de nombreuses transactions en ligne :
- Évidemment, pour les paiements (c'est le cadenas) ;
- Pour lire ses emails ;
- Pour consulter ses comptes bancaires en ligne ;
- Pour partager ses photos scandaleuses à ses contacts Facebook, etc.
Le protocole TLS − ou plus communément le « S » de HTTPS − est ainsi chargé de s'assurer que personne sur le réseau ne peut lire votre mot de passe en clair en se branchant derrière votre box, en utilisant le même wifi public que vous au bar, en piratant votre Wifi, en se faufilant dans votre réseau au boulot, etc.
Do not login to Yahoo! The OpenSSL bug #heartbleed allows extraction of usernames and plain passwords! pic.twitter.com/OuF3FM10GP
— Mark Loman (@markloman) April 8, 2014
Ah, c'est encore une de ces failles “super grave”… #
Enlevez vos guillemets. Là, on a touché le fond.
Cette faille, qui touche donc le trafic HTTPS, concerne plusieurs centaines de milliers de serveurs dans le monde, et sans doute les plus grands services que vous utilisez tous les jours ; le tout, sans laisser de traces.
Des attaquants l'utilisent peut-être depuis des mois sans qu'on n'en sache rien.
Si vous êtes simple utilisateur, vous ne pouvez rien faire, si ce n'est espérer que les serveurs que vous utilisez au quotidien soient patchés au plus vite.
Par contre, il serait intéressant dans votre propre intérêt de changer tous vos mots de passes (ça fait des mois que vous deviez le faire de toutes façons…).
Comment la faille fonctionne ? #
Il existe une fonctionnalité optionnelle de TLS, le protocole qui sécurise donc HTTPS, qui permet de maintenir une connexion plus longtemps.
Cela correspond grosso-modo à bloquer le pied dans l'ouverture d'une porte. C'est assez fréquent dans de nombreux protocoles que vous utilisez au quotidien ; le client et le serveur envoient des messages de temps en temps pour indiquer qu'ils sont encore-là. Ces petits messages sont appelés battements de cœur (heartbeats).
Le hic, c'est qu'il y a un bug dans OpenSSL sur cette fonctionnalité, qui permet via un buffer overflow de lire le contenu de la mémoire vive du serveur. Or, dans la mémoire vive, on stocke des mots de passes, des clés de chiffrement (!), des données en tout genre très souvent confidentielles.
Et ce n'est pas tout. Vu que ces battements de cœurs sont amenés à se faire très régulièrement, il n'y a pas de trace à chaque fois qu'on en reçoit ou en envoie (vous imaginez la taille des journaux, sinon ?).
Cela signifie qu'on peut exploiter ce bug en passant inaperçu.
Un attaquant peut se connecter “normalement”, et voler l'entièreté du contenu de la mémoire en peu de temps, sans que personne ne s'en rende compte.
En quoi est-ce très très grave ? #
Cette faille, discrète, très efficace, permet de récupérer les clés de chiffrements, les certificats, les clés privées des serveurs.
Ces clés privées sont utilisées parfois depuis des années. Cela peut permettre à des autorités comme la NSA, la DGSE, des opérateurs malveillants ou autres attaquants de déchiffrer a posteriori beaucoup, beaucoup plus rapidement les données collectées auparavant depuis des années.
Je suis sysadmin. Que faire ?
Vérifiez si vous êtes concernés. Il y a de fortes chances que vous le soyez, le bug ayant été patché hier, et la fonctionnalité en question qui a introduit la faille a été poussée il y a deux ans.
Tapez :
# openssl version -a
Si votre version est 1.0.1
(avec ou sans lettre à la fin), regardez la date de build. Si c'est antérieur au 7 avril 2014, vous êtes vulnérable.
Si vous avez une autre version (1.0.0
, 0.9.x
ou antérieur), vous êtes protégé.
Mettez-à-jour immédiatement vos paquets, puis relancez les services qui se basent sur OpenSSL pour TLS (par exemple, nginx
ou apache2
).
Attention : cela ne touche pas SSH qui, par un hasard bien heureux, n'utilise pas TLS. Il n'empêche que vous devriez regénérer les paires de clés privées et publiques utilisées sur vos serveurs HTTPS, qui peuvent désormais être considérées comme compromises.
Ne déconnez pas. La sécurité de vos échanges avec vos clients est en jeu.
Courage. ♥
Ce texte vous est proposé par @Signez, un gars sans histoire qui code et vends des billets de train chez Capitaine Train, et a fondé une radio qui s'appelle SynopsLive.
Source : HeartBleed.com. Discussion sur Hacker News (en anglais).
Si j'ai commis une erreur − c'est probable − ou que vous voulez simplement réagir, les commentaires en répondant par Twitter.