Défendre l'oiseau : l'ingénierie de la sécurité des produits chez Twitter
Alex Smolen, ingénieur logiciel chez Twitter, s'est récemment entretenu avec notre groupe DevOps Meetup Au siège de PagerDuty, il a évoqué les philosophies et les meilleures pratiques que ses équipes suivent pour maintenir un niveau de sécurité élevé pour leurs plus de 255 millions d'utilisateurs actifs mensuels.
La sécurité dans un environnement en constante évolution : les défis
Twitter est l'un des réseaux sociaux les plus utilisés au monde et continue de gagner des utilisateurs à un rythme soutenu.
Si la croissance de Twitter est enthousiasmante, elle pose également des défis en matière de sécurité. Du fait du grand nombre de personnes qui s'appuient sur Twitter pour s'informer en temps réel, la plateforme est une cible constante pour les pirates informatiques. Deux incidents passés illustrent l'importance de la sécurité sur Twitter :
- Lorsque le compte de l'Associated Press (@AP) a été piraté et qu'un tweet concernant un attentat à la bombe inexistant a été envoyé, cela a fait chuter la bourse ce jour-là.
- Suite à l'envoi de spams depuis le compte de Barack Obama, Twitter a reçu un décret de consentement de la FTC relatif à la sécurité des informations.
La croissance rapide de Twitter exige d'importants investissements dans son infrastructure, ce qui oblige son équipe de sécurité à réagir vite. Initialement développé avec Rails, le site a depuis migré vers une architecture basée sur Scala. Ce changement a nécessité le développement de nouveaux outils et techniques de sécurité.
De plus, Alex a souligné que l'équipe de sécurité est responsable de nombreuses autres applications qu'ils ont acquises en plus de Twitter lui-même.
Première étape pour sécuriser Twitter : l’automatisation
L'automatisation est l'une des stratégies utilisées par PagerDuty et Twitter pour optimiser la sécurité. Chez Twitter, l'automatisation repose sur la volonté de faire preuve de créativité et de discernement dans toutes les activités de l'équipe d'ingénierie.
« Quand on fait quelque chose et qu'on trouve ça fastidieux, on essaie de trouver un moyen de l'automatiser. » – Alex Smolen, ingénieur logiciel chez Twitter
C’est lors d’une Hack Week de Twitter, un événement comparable à une grande foire scientifique, que la question de l’automatisation a été soulevée pour la première fois. À partir de ces premiers efforts, l’équipe de sécurité a créé une plateforme centralisée pour gérer les informations et effectuer des analyses de sécurité statiques et dynamiques.
L'automatisation aide les ingénieurs de Twitter à détecter les failles de sécurité dès les premières étapes du développement. Lorsque des problèmes de sécurité surviennent, les outils d'automatisation de Twitter, associés à la plateforme de performance opérationnelle PagerDuty, permettent d'attribuer les incidents aux personnes compétentes, ce qui accélère leur résolution.
Un exemple est le programme Brakeman, qui analyse les applications Rails et révèle toutes les vulnérabilités de leur code. Si une vulnérabilité est détectée, le développeur est alerté afin qu'il puisse la corriger rapidement. L'objectif est de boucler la boucle au plus vite, car plus une vulnérabilité est découverte tardivement, plus sa résolution est complexe et coûteuse.
Parmi les autres outils, citons Coffee Break pour le développement de scripts Java et Phantom Gang, qui analyse en temps réel le site de Twitter. Comme avec Brakeman, les problèmes sont attribués à la personne d'astreinte compétente.
Deuxième étape : Processus d’examen de code robuste
La sécurité n'est pas uniquement la responsabilité de l'équipe dédiée, mais celle de nombreux ingénieurs. Des équipes spécifiques sont également chargées de lutter contre le spam et les abus.
Dans un souci de responsabilité partagée, les développeurs de Twitter sont incités à corriger les failles de sécurité dès les premières étapes du développement. Pour les codes sensibles, un audit de sécurité est systématiquement réalisé dès leur soumission. Les développeurs peuvent également utiliser un formulaire en ligne pour solliciter l'avis de l'équipe de sécurité.
L'équipe d'ingénierie de sécurité s'auto-responsabilise grâce à un tableau de bord interne qui indique les revues de code à effectuer. Auparavant, les ingénieurs de sécurité de Twitter utilisaient Roshambo pour attribuer les revues de code, mais avec l'expansion de leur équipe, ils exécutent désormais un script pour une attribution aléatoire.
« Le roshambo est vraiment difficile à faire par Skype. »
La troisième étape : concevoir en fonction des utilisateurs
Les plus de 200 millions d'utilisateurs de Twitter ont tout intérêt à ce que la sécurité du site reste assurée. C'est pourquoi certaines mesures de sécurité de Twitter sont adaptées à des cas d'utilisation spécifiques.
L'une d'elles est l'authentification à deux facteurs, disponible sur Twitter depuis un certain temps. Initialement basée sur les SMS, elle intègre aujourd'hui une version native capable de générer une clé privée pour signer les demandes de connexion.
Une autre mesure destinée aux utilisateurs consiste à privilégier le protocole SSL. Twitter a été l'un des premiers grands services à exiger un certificat SSL à 100 %. Cependant, comme de nombreux sites autorisent encore les connexions non sécurisées, l'équipe d'Alex a intégré le protocole HSTS (HTTP Strict Transport Security), qui oblige les utilisateurs à accéder à la version SSL du site. Une autre stratégie mise en œuvre est l'épinglage de certificats. Si quelqu'un tente d'accéder à Twitter avec un certificat falsifié, le client natif le refusera.
En fin de compte, selon Alex, la sécurité consiste à donner les moyens à tous, utilisateurs comme ingénieurs de Twitter. Sachant que l'équipe de sécurité de Twitter représente environ 1 % de l'ensemble des ingénieurs de l'entreprise, assurer la sécurité de Twitter n'est pas chose aisée. Mais grâce à des processus et des outils adaptés, ces ingénieurs peuvent accomplir leur travail efficacement et garantir le bon fonctionnement de Twitter.
Regardez la présentation complète d'Alex ici :
Restez à l'écoute pour les articles de blog concernant les deux autres présentations sur la sécurité, celles de Stephen Lee (Okta) et de notre cher Evan Gilman.