Die Herausforderung: Ein kleines AppSec-Team effizient in großem Maßstab einsetzen
Reddit ist heute eine der größten Social-Media-Plattformen und konzentriert sich darauf, Communitys im Forum-Stil aufzubauen, in denen Menschen gemeinsame Interessen diskutieren. Mit dem Wachstum des Unternehmens stieg jedoch auch die Zahl der Code-Repositories und die Vielfalt der Technologien, auf denen die Plattform basiert. Reddit formalisierte seine AppSec-Bemühungen durch die Einführung von Snyk, um die Risiken der sich weiterentwickelnden Codebasis zu mindern.
Außerdem verfügte Reddit über ein kleines Sicherheitsteam, das seine Aktivitäten auf zahlreiche Entwicklungsteams mit fast 600 Engineers ausweiten sollte. Da die Snyk-Plattform bereits für die Software Composition Analysis im Einsatz war, benötigte Reddit eine robuste API, die sich problemlos in den gesamten Tech-Stack integrieren ließ, um zeitaufwendige AppSec-Aufgaben zu automatisieren.
Bis vor Kurzem bestand unser Application-Security-Team bei Reddit nur aus mir“, berichtete Spencer Koch, Security Professional bei Reddit. „Bei wenigen Repositories ist die Bedienung über die Snyk-Benutzeroberfläche kein Problem, aber Reddit hat über tausend Repositories. Ich konnte es mir nicht leisten, mich durch die Benutzeroberfläche zu klicken, um Probleme zu unterdrücken, Repositories hinzuzufügen oder andere Verwaltungsaufgaben zu erledigen.“
Die Lösung: Automatisierte Behebung mit der Snyk API
Die Snyk-Benutzeroberfläche eignet sich für Unternehmen mit nur wenigen Code-Repositories. Manuelle Änderungen darin waren jedoch für die Anforderungen von Reddit nicht effizient genug. Mit der Snyk API konnte Reddit nicht nur wiederkehrende Aufgaben automatisieren, sondern Sicherheitsscans auch eng in GitHub Enterprise (GHE) integrieren. Dadurch kann Reddit Open-Source-Schwachstellen automatisch erkennen und sie über Pull Requests beheben.
„Nachdem wir unsere Repositories bereinigt hatten, änderten wir den Ansatz: Neue Pull Requests wurden abgelehnt, wenn sie Sicherheitslücken enthielten“, erklärte Koch. „So entwickelte sich Reddit weg von einem reaktiven, vom Sicherheitsteam initiierten Ansatz hin zu einem entwicklerzentrierten, von Entwicklern getragenen Ansatz zur Behebung von Problemen. All diese Arbeit konnten wir nur mithilfe der Snyk API bewältigen.“
Die Snyk API und der Python-Wrapper
Neben der direkten Nutzung der Snyk API verwendet Reddit auch den Snyk Python-Wrapper. Da ein großer Teil des Tech-Stacks von Reddit auf Python basiert, integriert der pysnyk-Client Snyk enger in die vorhandenen Entwicklertools. Diese enge Integration hat Hindernisse abgebaut und die Einführung der Snyk-Plattform in den Entwickler-Workflow beschleunigt. So konnte das Sicherheitsteam von Reddit sofort Erkenntnisse zu den Risiken durch Schwachstellen in Anwendungen gewinnen.
Reddit entwickelte außerdem eine GHE-Integration, die das Unternehmen inzwischen als Open Source für die AppSec-Community bereitgestellt hat. Mit snyk-sync führt Reddit jede Woche einen regelmäßig geplanten Cron-Job aus, um Änderungen mit GHE-Repositories zu synchronisieren. Dazu gehört das Hinzufügen neuer und Entfernen veralteter Repositories, das Festlegen geeigneter GHE-Integrationseinstellungen sowie eine Benachrichtigung, wenn ein manueller CI-Schritt mit der Snyk CLI erforderlich ist. Mit pysnyk führt Reddit außerdem Massenaktionen aus, etwa das Unterdrücken von Problemen in Codebasen von Drittanbietern oder Open-Source-Projekten, die für die Codebasis von Reddit nicht relevant sind.
Wir schätzen Snyk, weil wir damit einige unserer Tools zentralisieren und Änderungen in großem Umfang in den Workflows unserer Entwickler vornehmen können“, erklärte Koch.
„Snyk ist stark auf Entwickler ausgerichtet und ließ sich für uns einfach skalieren, ohne die Entwickler zu beeinträchtigen.Die PR-Tests mit GHE geben Entwicklern Feedback, fügen sich sehr gut in unseren aktuellen Workflow ein und bauen Hindernisse ab.“
Die Wirkung: Sicherheit für mehr als 1.000 Repositories skalieren
Durch den Einsatz der Snyk API und des Python-Clients hat Reddit die Geschwindigkeit, mit der Entwickler und Security Engineers aussagekräftige Einblicke in die Sicherheit und das Schwachstellenmanagement erhalten, erheblich gesteigert. Das Sicherheitsteam von Reddit führte die Snyk-Plattform innerhalb weniger Wochen ein und deckte dabei relativ einfach einen Großteil der Reddit-Codebasis ab. So konnte Reddit Open-Source-Abhängigkeiten in großem Umfang scannen und schnell einen Return on Investment erzielen.
„Der menschliche Faktor ist äußerst wichtig“, sagte Koch. „Ohne die Snyk API würden viele Sicherheitsaufgaben angesichts der Größe von Reddit sehr viel Zeit in Anspruch nehmen. Durch die Automatisierung einiger dieser Aufgaben konnten wir den Betriebsaufwand senken und die Gesamtbetriebskosten für die Einführung der Snyk-Plattform reduzieren.“