/ SIGINT

NSA - À propos de BULLRUN

Dans cet article, nous allons revenir sur les révélations du Spiegel datant de fin décembre lors du 31c3 (Chaos Computer Congress) et du 17 janvier 2015 portant sur les moyens offensifs de la NSA ainsi que d'autres agences concernant la cryptographie.

La conférence "Reconstructing narratives" de Laura Poitras et Jacob Appelbaum présentant ces documents est visible ci-dessous (mais aussi sur le site du CCC).

BULLRUN, qu'est ce que c'est ?

BULLRUN est un "programme" de la NSA exploitant différents moyens pour accéder à du contenu chiffré. Le New York Times avait abordé le sujet fin 2013 dans son article "Secret Documents Reveal N.S.A. Campaign Against Encryption" mais sans aucun détails (comme The Guardian ou encore propublica).

On savait, à l'époque, que l'on pouvait distinguer en simplifiant trois méthodes que la NSA utilise pour pouvoir accéder à du contenu chiffré :

  • utiliser les mathématiques, c'est à dire trouver de nouvelles méthodes pour réussir à casser un algorithme (par exemple pour "casser" RC4),

  • La deuxième méthode permet "simplement" d'accéder aux clés privées de la cible (pouvant aussi bien être une personne qu'une multinationale) ou aux informations demandées. On arrive là dans un ensemble d'autres programmes, un des plus secrets de la NSA (classification est "CORE SECRETS"). On trouve dans les documents que les agents peuvent être sous couverture dans une entreprise (qu'elle soit américaine ou étrangère), ou encore que le programme TAREX (pour TARget EXploitation) conduit des opérations clandestines aussi bien SIGINT (renseignement d'origine électromagnétique) qu'HUMINT (renseignement humain) partout dans le monde pour exploiter des systèmes via différents moyens : “off net-enabling” (activité clandestine ou sous couverture sur le terrain), “supply chain-enabling” (modifier des équipements directement dans la chaîne logistique ou via le détournement de livraisons) et “hardware implant-enabling” qui semble regrouper un peu des deux précédents.

Les États-unis ne sont évidemment pas obligé de passer par ce genre de d'opérations pour obtenir ce qu'ils veulent de leurs entreprises, il existe le "Foreign Intelligence Surveillance Act" (FISA) et les "lettres de sécurité nationale" qui sont des requêtes contraignantes et qui peuvent obliger une entreprise à permettre un accès à quelque chose en ayant l'obligation de ne pas en parler.

Ainsi, en 2013, l'entreprise Lavabit décida de fermer plutôt que de donner sa clé privée SSL/TLS au FBI, le tribunal la menaçait d'une amende de 5000 € par jour de retard. Lavabit herbergait les mails d'Edward Snowden parmis ses 400 000 utilisateurs.

En 2008, Yahoo a été menacé d'une amende de 250 000 $ par jour de retard si il ne donnait pas des données d'utilisateurs à la NSA

  • La troisième méthode consiste à mettre en place ou profiter d'une mauvaise implémentation, comme le générateur de nombre aléatoire Dual_EC_DRBG, qui pourrait permettre, par exemple, de lire des flux SSL/TLS. Une méthode complémentaire consiste à payer une entreprise pour qu'elle utilise quelque chose en particulier, la NSA à payé 10 millions de dollars à l'entreprise RSA, pour utiliser Dual_EC_DRBG dans certains de ses produits (comme BSAFE).

Ainsi, la NSA (et sans doute les autres agences) a activement travaillé à insérer des vulnérabilitées dans des produits commerciaux, des réseaux (par exemple en se connectant à un routeur pour diminuer la crypto d'un VPN), des protocoles (vous pouvez lire les spéculations de John Gilmore sur la NSA et IPsec) ou directement sur des périphériques de cibles.

Le New York Times rapporte qu'en 2006, la NSA avait réussi à pénétrer les communications de trois compagnies aériennes, un système de réservation de voyages, un programme nucléaire d'un gouvernement étranger en craquant les VPNs les protégeant, et en 2010, EDGEHILL (l'équivalent Britannique de BULLRUN) avait réussi à "déchiffrer" le traffic de 30 cibles.

À propos de configurations

Pour ce que l'on en sait, il suffit d'une bonne configuration pour résoudre la majorité des problèmes (à noter tout de même : les documents datent de 2012, et énormement de choses ont pu changer depuis (Heartbleed, Poodle, nouvelles failles, etc).

SSL/TLS

Le cryptographe Matthew Green a fait un article sur les différents moyens que la NSA a pour "casser" SSL/TLS. Selon lui, la NSA peut utiliser plusieurs méthodes :

Bonnes pratiques :

  • dans la mesure du possible, centraliser la configuration SSL/TLS pour un logiciel sur le serveur. Pour apache2, par exemple, vous pouvez mettre votre configuration (SSLCipherSuite...) dans /etc/apache2/mods-available/ssl.conf, cette conf sera alors pour l'ensemble de vos vhosts, et il faudra donc la changer uniquement là en cas de besoin (et non vhost par vhost, au risque d'en oublier)
  • clé RSA égale ou supérieur à 2048 bits
  • utilisation des courbes elliptiques
  • Forward Secrecy
  • SSLHonorCipherOrder on
  • enlever les ciphers faibles et/ou obsolètes et/ou dangereux (DES, RC4, ...)
  • enlever SSLv3, et s'assurer par la même occasion que SSLv2 est bien mort et enterré (SSLProtocol all -SSLv2 -SSLv3 pour Apache2 par exemple)
  • compression désactivée, pour éviter l'attaque CRIME

Pour vous aider dans la configuration de votre serveur web, vous pouvez utiliser le site jeveuxhttps.fr, et bien entendu le désormais célèbre ssllabs.com qui permet de tester sa configuration.

Des outils comme sslscan, xmpp.net (XMPP/Jabber), starttls.info (mails) peuvent aussi être utile.

SSH

La seule trace du terme backdoor dans les documents à propos d'openSSH est en fait un rootkit, ce qui signifie qu'il FAUT avoir réussi à rentrer dans le serveur et à être root pour pouvoir modifier le binaire et permettre l'accès à une clé ou à un mot de passe, à noter que cette modification empêche de voir les connexions "pirates" de ces comptes dans les logs.

Un problème concernant SSH pourrait être l'utilisation de ciphers obsolètes. Vous pouvez vérifier les ciphers proposés par votre serveur avec la commande ssh -vvv pour se connecter. Une connexion sur un serveur donne quelque chose ressemblant à ceci comme résultat ;

ssh -vvv skhaen@exemple.com

[...]
kex_parse_kexinit: ssh-rsa,ssh-dss
kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se
kex_parse_kexinit: hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-sha2-256,hmac-sha2-256-96,hmac-sha2-512,hmac-sha2-512-96,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96
[...]

Arcfour est en fait un autre nom de RC4, qui pour le coup est cassé depuis un moment. La version 6.7 d'OpenSSH le supprime, et Microsoft recommande de le désactiver depuis 2013.

Pour améliorer la configuration de votre ssh (il n'y a pas que les ciphers), vous pouvez vous référer à ces trois articles. Faites TRÈS attention avant toutes modifications ! Ça peut vous empêcher de vous (re)connecter à votre serveur !

IPSec

Concernant IPSec et comment mieux le configurer, vous pouvez vous référer à l'article de Paul Wouters "Don’t stop using IPsec just yet" (en espérant que le problème se trouve bien là).

TL;DR:

  • utiliser Perfect Forward Secrecy : pfs=yes
  • éviter les PreSharedKeys : authby=secret

Je peux utiliser quoi alors ?

Il ne faut surtout pas tomber dans le piège "on est tous foutu, rien ne marche, on ne peut rien faire", ce n'est absolument pas le cas. Dans les bonnes nouvelles, nous avons aussi la preuve que Tor, OTR, GPG, TAILS et Redphone sont sûr (du moins en 2012 ;-)).

trival_catastrophic

  • Trivial : suivre le parcours d'un document sur Internet
  • Mineur : enregistrer un chat privé sur Facebook
  • Modéré : décrypter un email envoyé via le service de messagerie russe mail.ru
  • Majeur : utiliser des services comme Zoho (?), Tor, TrueCrypt ou OTR
  • Catastrophique : utiliser plusieurs protocoles en même temps, par exemple faire passer de la VoIP utilisant ZRTP par le réseau TOR, le tout à partir d'un ordinateur sous Linux.

On notera avec beaucoup d'intérêts qu'il n'y a aucune trace de logiciels commerciaux (bitlocker...) dans les documents.

  • Tor est un logiciel libre qui, grâce à une technique de routage en oignon, d’anonymiser les connexions sur Internet.
  • OTR permet de chiffrer des communications, en particulier sur XMPP/Jabber, ne pas hésiter à l'utiliser avec du SSL/TLS par dessus.

OTR_encrypted

  • GPG permet de chiffrer un mail, un fichier ou un dossier entier. Il permet aussi de signer un fichier (ou un mail) pour s'assurer de son authenticité.

PGP encrypted

  • TAILS est un système d'exploitation live, que vous pouvez démarrer, sur quasiment n'importe quel ordinateur, depuis un DVD, une clé USB, ou une carte SD. Son but est de préserver votre vie privée et votre anonymat, et de vous aider à utiliser Internet de manière anonyme et contourner la censure (toutes les connexions sortantes vers Internet sont obligées de passer par le réseau Tor).
  • Redphone est une application pour Android qui permet d'avoir des conversations chiffrées (on peut aussi s'intéresser à Textsecure, application Android de la même entreprise pour chiffrer les sms).

Dans un autre document, le logiciel Truecrypt est aussi considéré comme "solide", il ne reste plus qu'à attendre que son fork soit prêt.

Le point commun de tous ces logiciels ? Ce sont des logiciels libres.

Les documents sont disponibles sur le site du Spiegel

NSA - À propos de BULLRUN
Share this