- PagerDuty /
- Der Blog /
- Veranstaltungen /
- Den Vogel verteidigen: Produktsicherheitstechnik bei Twitter
Der Blog
Den Vogel verteidigen: Produktsicherheitstechnik bei Twitter
Alex Smolen, Software Engineer bei Twitter, sprach kürzlich mit unsere DevOps Meetup-Gruppe im PagerDuty Hauptquartier über die Philosophien und Best Practices, die seine Teams verfolgen, um ein hohes Maß an Sicherheit für ihre über 255 Millionen aktiven Benutzer pro Monat aufrechtzuerhalten.
Sicherheit in einem sich schnell verändernden Umfeld: Die Herausforderungen
Twitter ist eines der weltweit am häufigsten genutzten sozialen Netzwerke und es kommen weiterhin stetig neue Benutzer hinzu.
Obwohl das Wachstum von Twitter spannend ist, bringt es aus Sicherheitssicht auch Herausforderungen mit sich. Da sich so viele Menschen darauf verlassen, dass Twitter ihnen Nachrichten und Informationen in Echtzeit liefert, ist es ein ständiges Ziel für Hacker. Zwei Vorfälle aus der Vergangenheit verdeutlichen, warum die Sicherheit bei Twitter wichtig ist:
- Als der Account von Associated Press (@AP) kompromittiert und ein Tweet über einen nicht existenten Bombenanschlag verschickt wurde, trieb dies an diesem Tag die Aktienkurse in den Keller.
- Als Spam von Barack Obamas Konto verschickt wurde, erhielt Twitter eine Zustimmungsverordnung der FTC bezüglich der Informationssicherheit
Das schnelle Wachstum von Twitter erfordert auch hohe Investitionen in die Infrastruktur, was das Sicherheitsteam des Unternehmens zu schnellem Handeln zwingt. Die Site wurde als Rails-App erstellt, wurde aber inzwischen auf eine Scala-basierte Architektur umgestellt. Diese Änderung erforderte völlig neue Tools und Techniken in Bezug auf die Sicherheit.
Darüber hinaus wies Alex darauf hin, dass das Sicherheitsteam neben Twitter selbst auch für viele weitere Apps verantwortlich sei, die es erworben habe.
Der erste Schritt zur Absicherung von Twitter: Automatisierung
Automatisierung ist eine der Strategien, die sowohl PagerDuty als auch Twitter zur Optimierung der Sicherheit verwenden. Die treibende Kraft hinter der Automatisierung bei Twitter ist der Wunsch, bei allem, was das Entwicklungsteam tut, Kreativität oder Urteilsvermögen einzusetzen.
„Wenn wir etwas tun und es langweilig finden, versuchen wir, einen Weg zu finden, es zu automatisieren.“ – Alex Smolen, Softwareentwickler, Twitter
Auf einer der Hack Weeks von Twitter, die einer großen Wissenschaftsmesse ähneln, kam das Thema Automatisierung erstmals auf. Ausgehend von diesen ersten Bemühungen schuf das Sicherheitsteam einen zentralen Ort, an dem Informationen verwaltet und sowohl statische als auch dynamische Sicherheitsanalysen durchgeführt werden konnten.
Durch Automatisierung können die Ingenieure von Twitter Sicherheitsprobleme schon früh im Entwicklungsprozess erkennen. Wenn Sicherheitsprobleme auftreten, helfen die Automatisierungstools von Twitter – in Verbindung mit der Betriebsleistungsplattform von PagerDuty – dabei, Vorfälle den richtigen Personen zuzuweisen, sodass Probleme schneller gelöst werden.
Ein Beispiel ist ein Programm namens Brakeman, das mit Rails-Apps ausgeführt wird und alle Schwachstellen im Code der Apps anzeigt. Wenn eine Schwachstelle entdeckt wird, wird der Entwickler benachrichtigt, damit er sich schnell um das Problem kümmern kann. Das Ziel besteht darin, den Kreis so schnell wie möglich zu schließen, denn je später etwas entdeckt wird, desto komplexer und teurer ist die Lösung.
Zu den weiteren Tools gehören Coffee Break für Java-Scripting und Phantom Gang, das die Live-Site von Twitter dynamisch scannt. Wie bei Brakeman werden Probleme der richtigen Bereitschaftsperson für den jeweiligen Job zugewiesen.
Der zweite Schritt: Robuster Code-Review-Prozess
Sicherheit ist nicht nur die Verantwortung des Sicherheitsteams, sondern liegt in der Verantwortung vieler Ingenieure. Es gibt auch spezielle Teams, die sich mit Spam und Missbrauch befassen.
Zum Thema geteilte Verantwortung werden Twitter-Entwickler ermutigt, Sicherheitslücken schon früh im Code-Entwicklungsprozess zu beheben. Bei sensiblem Code wird dieser gleich nach der Übermittlung auf seine Sicherheit geprüft. Entwickler können auch ein Selfservice-Formular verwenden, um die Eingaben des Sicherheitsteams anzufordern.
Das Sicherheitstechnikteam behält seine Verantwortung mithilfe eines selbst erstellten Dashboards, das anzeigt, welche Überprüfungen durchgeführt werden müssen. Früher verwendeten die Sicherheitstechniker von Twitter Roshambo, um Codeüberprüfungen zuzuweisen. Mit der Vergrößerung ihres Teams führen sie nun ein Skript aus, um Codeüberprüfungen nach dem Zufallsprinzip zuzuweisen.
„Roshambo lässt sich über Skype wirklich nur schwer machen.“
Der dritte Schritt: Benutzerorientiertes Design
Die über 200 Millionen Twitter-Nutzer haben ein großes Interesse daran, dass die Seite sicher bleibt. Aus diesem Grund sind einige der Sicherheitsmaßnahmen von Twitter für bestimmte Anwendungsfälle angepasst.
Eine davon ist die Zwei-Faktor-Authentifizierung, die bei Twitter schon seit einiger Zeit verfügbar ist. Ursprünglich war sie SMS-basiert; heute gibt es eine nativ erstellte Version, die einen privaten Schlüssel zum Signieren von Anmeldeanforderungen generieren kann.
Eine weitere benutzerorientierte Maßnahme ist die Betonung von SSL. Twitter war einer der ersten großen Dienste, der 100 % SSL erforderte. Da viele Websites jedoch immer noch die Verwendung von Nicht-SSL-Verbindungen zulassen, hat Alex‘ Team HTTP Strict Transport Security (HSTS) eingebaut, das Benutzer dazu zwingt, die SSL-Version der Website zu besuchen. Eine weitere verwendete Strategie ist das Certificate Pinning. Wenn jemand versucht, mit einem gefälschten Zertifikat auf Twitter zuzugreifen, wird der native Client dies nicht akzeptieren.
Letztlich, so Alex, gehe es bei der Sicherheit darum, Menschen zu befähigen – sowohl Benutzer als auch Twitters eigene Ingenieure. Angesichts der Tatsache, dass das Sicherheitsteam von Twitter etwa 1 % aller Ingenieure des Unternehmens ausmacht, ist es nicht einfach, Twitter sicher zu halten. Aber mit den richtigen Prozessen und Tools können diese Ingenieure ihre Arbeit effektiv erledigen und dafür sorgen, dass Twitter am Laufen bleibt.
Sehen Sie sich hier Alex‘ vollständige Präsentation an:
Bleiben Sie dran für Blogbeiträge zu den beiden anderen Sicherheits-Meetup-Präsentationen von Stephen Lee (Okta) und unserem eigenen Evan Gilman.