Blog

Défendre l'oiseau : l'ingénierie de sécurité des produits chez Twitter

par Vivian Au 23 juillet 2014 | 5 minutes de lecture

Alex Smolen, ingénieur logiciel chez Twitter, s'est récemment entretenu avec notre groupe Meetup DevOps au siège de PagerDuty sur les philosophies et les meilleures pratiques suivies par ses équipes 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 évolution rapide : les défis

Twitter est l'un des réseaux sociaux les plus utilisés au monde et continue d'ajouter des utilisateurs à un rythme soutenu.

Si la croissance de Twitter est enthousiasmante, elle pose également des problèmes de sécurité. Étant donné que de nombreuses personnes comptent sur Twitter pour diffuser des informations en temps réel, le site 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é compromis et qu'un tweet a été envoyé à propos d'un attentat à la bombe inexistant, cela a fait chuter la bourse ce jour-là
  • Lorsque du spam a été envoyé 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 également de nombreux investissements en matière d'infrastructure, ce qui oblige l'équipe de sécurité de l'entreprise à agir rapidement. Le site a été créé en tant qu'application Rails, mais il a depuis été basculé vers une architecture basée sur Scala. Ce changement a nécessité de nouveaux outils et techniques en matière de sécurité.

De plus, Alex a noté que l’équipe de sécurité est responsable de nombreuses autres applications qu’elle a acquises en plus de Twitter lui-même.

La 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 le désir de faire preuve de créativité et de discernement dans tout ce que fait l'équipe d'ingénierie.

« Lorsque nous faisons quelque chose et que nous pensons que c'est fastidieux, nous essayons de trouver un moyen de l'automatiser. » – Alex Smolen, ingénieur logiciel, Twitter

C'est lors d'une des Hack Weeks de Twitter, une sorte de grande foire scientifique, que la question de l'automatisation est apparue pour la première fois. À partir de ces efforts initiaux, l'équipe de sécurité a créé un lieu central pour gérer les informations et exécuter des analyses statiques et dynamiques sur la sécurité.

L'automatisation permet aux ingénieurs de Twitter de détecter les problèmes de sécurité dès le début du processus de développement. Lorsque des problèmes de sécurité surviennent, les outils d'automatisation de Twitter, associés à la plateforme de performances opérationnelles de PagerDuty, permettent d'attribuer les incidents aux bonnes personnes, afin que les problèmes soient résolus plus rapidement.

Un exemple est un programme appelé Brakeman, qui est exécuté sur des applications Rails et affiche toutes les vulnérabilités dans le code des applications. Si une vulnérabilité est découverte, le développeur est alerté afin qu'il puisse résoudre le problème rapidement. L'objectif est de boucler la boucle le plus rapidement possible, car plus un problème est découvert tard, plus la résolution est complexe et coûteuse.

D'autres outils incluent Coffee Break pour les scripts Java et Phantom Gang, qui analyse de manière dynamique le site en direct de Twitter. Comme avec Brakeman, les problèmes sont attribués à la personne d'astreinte appropriée pour la tâche.

Deuxième étape : un processus rigoureux de révision du code

La sécurité n'est pas uniquement la responsabilité de l'équipe de sécurité, mais elle est également la responsabilité de nombreux ingénieurs. Il existe également des équipes spécifiques qui s'occupent du spam et des abus.

Sur le thème de la responsabilité partagée, les développeurs de Twitter sont encouragés à résoudre les problèmes de sécurité dès le début du processus de développement du code. Pour le code sensible, dès qu'il est soumis, il fait également l'objet d'un examen de sécurité. Les développeurs peuvent également utiliser un formulaire en libre-service pour demander l'avis de l'équipe de sécurité.

L'équipe d'ingénierie de sécurité se responsabilise à l'aide d'un tableau de bord maison indiquant les révisions à effectuer. Autrefois, les ingénieurs de sécurité de Twitter utilisaient roshambo pour attribuer des révisions de code, mais à mesure que leur équipe s'est développée, ils ont désormais exécuté un script pour attribuer des révisions de code de manière aléatoire.

« Roshambo est vraiment difficile à faire via Skype. »

Troisième étape : concevoir en fonction des utilisateurs

Les utilisateurs de Twitter, plus de 200 millions d'utilisateurs, ont tout intérêt à ce que le site reste sécurisé. C'est pourquoi certaines mesures de sécurité de Twitter sont adaptées à des cas d'utilisation spécifiques.

L'une d'entre elles est l'authentification à deux facteurs, disponible sur Twitter depuis un certain temps. Au départ, elle était basée sur les SMS ; aujourd'hui, il existe une version native qui peut générer une clé privée pour signer les demandes de connexion.

Une autre mesure destinée aux utilisateurs est l'accent mis sur le SSL. Twitter a été l'un des premiers grands services à exiger 100 % SSL. Pourtant, comme de nombreux sites autorisent encore l'utilisation de connexions non SSL, l'équipe d'Alex a intégré HTTP Strict Transport Security (HSTS), qui oblige les utilisateurs à visiter la version SSL du site. Une autre stratégie utilisée est l'épinglage de certificat. Si quelqu'un essaie d'accéder à Twitter avec un faux certificat, le client natif ne l'acceptera pas.

En fin de compte, a déclaré Alex, la sécurité consiste à donner les moyens aux gens – à la fois aux utilisateurs et aux ingénieurs de Twitter. Étant donné que l'équipe de sécurité de Twitter représente environ 1 % de tous les ingénieurs de l'entreprise, assurer la sécurité de Twitter n'est pas chose aisée. Mais avec les bons processus et les bons outils, ces ingénieurs peuvent faire leur travail efficacement et maintenir Twitter en activité.

Regardez la présentation complète d'Alex ici :

Restez à l'écoute des articles de blog sur les deux autres présentations de rencontres sur la sécurité de Stephen Lee (Okta) et de notre propre Evan Gilman.