Notre méthode d'audit des outils pour les défenseurs des droits humains
Subgraph est un fournisseur approuvé du Security Lab de l’Open Technology Fund. Par l’entremise du Lab, nous auditons des logiciels utilisés par des journalistes, des militants et des défenseurs des droits humains. Ce billet décrit comment nous menons ces audits.
Le code que nous examinons ressemble à celui qu’on trouve ailleurs. Il utilise les mêmes protocoles d’authentification, les mêmes analyseurs et les mêmes bibliothèques cryptographiques. La différence tient au modèle de menace.
Modèle de menace
Chaque audit commence par un modèle de menace établi avec les développeurs. Pour la plupart des projets du Lab, l’adversaire est un acteur étatique qui dispose de moyens importants. Les utilisateurs risquent l’arrestation s’ils sont identifiés. Nous notons les hypothèses qui en découlent :
- L’appareil peut être saisi. Nous vérifions chaque secret que l’application stocke, et chaque secret qu’elle devrait stocker mais ne stocke pas, en supposant qu’un adversaire a un accès physique.
- Le réseau est hostile. Nous testons avec des certificats frauduleux, des DNS manipulés et des portails captifs.
- Posséder l’application peut être incriminant. Nous cherchons tout ce qui, sur l’appareil, révèle que l’application est installée ou a servi.
Revue et tests
Nous révisons le code source manuellement. Nous exécutons aussi le logiciel pour le tester directement : interception du trafic, inspection du stockage et tentatives des attaques relevées dans le modèle de menace. À chaque couche, nous posons ces questions :
- Quelles données arrivent sur l’appareil, et que peuvent-elles y faire ?
- Un attaquant sans identifiants peut-il influer sur l’exécution ?
- Quand quelque chose échoue, l’échec est-il sans danger ?
- Chaque affirmation de sécurité de la conception tient-elle ? Nous vérifions que le chiffrement est appliqué là où la documentation le dit, et que le stockage « protégé » n’est pas accessible par une interface de débogage.
Rapport et vérification
Chaque constat de notre rapport comprend :
- Les étapes de reproduction. Les conditions qui déclenchent le problème, et comment confirmer le correctif.
- Un niveau de gravité. Nous l’évaluons selon l’exploitabilité dans le modèle de menace du projet, et nous signalons quand des problèmes moins graves peuvent s’enchaîner.
- Un correctif recommandé. Nous indiquons la décision de conception ou de code à l’origine du problème et proposons un changement précis quand c’est possible.
Une fois les problèmes corrigés par les développeurs, nous refaisons les tests et mettons le rapport à jour.
Rapports publiés
Certains de nos rapports sont publics, dont ceux sur Tella, NetAidKit et FileZilla. D’autres chercheurs peuvent lire et vérifier les constats.
Subgraph a aussi créé Vega, un scanneur de vulnérabilités Web. Si vous maintenez un projet utilisé par des personnes à risque et avez besoin d’un audit, consultez notre page services.