Unser Ansatz für das Schwachstellenmanagement
Unser Ansatz für die Handhabung von Sicherheitsschwachstellen bei Atlassian
Atlassian ist sich der Tatsache bewusst, dass Sicherheitsschwachstellen auf einer bestimmten Ebene ein fester Bestandteil jedes Softwareentwicklungsprozesses sind. Trotzdem sind wir stets bemüht, den Schweregrad und die Häufigkeit zu verringern, mit der Schwachstellen in unseren eigenen Produkten und Services auftreten.
Zu diesem Zweck nutzen wir einen mehrdimensionalen Ansatz für das Schwachstellenmanagement, der auf eine Kombination aus automatisierten und manuellen Prozessen setzt. Wir glauben, dass dies die effektivste Art und Weise ist, das Risiko von Schwachstellen einzudämmen, die Schutzmechanismen umgehen und längere Zeit unbemerkt bleiben.
In diesem Dokument stellen wir einen Überblick darüber zur Verfügung, wie wir Schwachstellen in unseren Produkten und der Infrastruktur verwalten, und wie wir diesen Ansatz kontinuierlich weiterentwickeln, indem wir die neuesten Tools, Methoden und Denkweisen implementieren und damit sicherstellen, dass unser Umgang mit Schwachstellen auch in Zukunft effektiv ist.
Überblick über unseren Prozess zur Identifizierung und Behebung von Schwachstellen
Wir verfügen über einen methodischen Prozess für die Identifizierung, Nachverfolgung und Behebung von Schwachstellen, der für jeden Typ angewendet werden kann.
Kontinuierliche Asset-Erkennung und -Zuordnung
Kontinuierliche interne Asset-Erkennung – Wir verwenden ein intern entwickeltes System, um alle unsere EC2- und Load-Balancer-AWS-Assets mit AWSConfig zu erfassen und sie dem richtigen Besitzer zuzuordnen. Dabei werden Assets für die Dauer eines Jahres (insgesamt 50–60 Millionen Assets) aufbewahrt.
Erkennen von Schwachstellen
Wir verwenden eine Reihe von erstklassigen Tools für die Erkennung von Schwachstellen, die regelmäßig auf unseren Produkten und Infrastrukturen ausgeführt werden, um automatisch Schwachstellen aufzuspüren. Beispielsweise in Atlassian Cloud- und Data Center-Produkten, Docker-Anwendungs-Images, internen, mobilen und Drittanbieteranwendungen und unseren Infrastrukturen vor Ort und in der Cloud. Diese Tools suchen gezielt nach vorhandenen Schwachstellen und umfassen Folgendes:
- Hostbasierte Scans – Wir verwenden derzeit Assetnote, um kontinuierliche Sicherheitsscans in unserem externen Perimeter durchzuführen, und Tenable.io für sowohl interne als auch externe kontinuierliche Scans. Wir verwenden diese Tools, um offene Ports, in unserer Umgebung ausgeführte Anwendungen und Schwachstellen auf Netzwerkhosts zu identifizieren.
- Scans von Container-Images – Wir verwenden Docker-Container, um viele unserer Anwendungen bereitzustellen. Wir führen Sicherheitsscans der Container-Images durch, wenn diese in unseren Produktions- oder Vorproduktionsumgebungen bereitgestellt werden. Zu diesem Zweck nutzen wir ein Tool namens Synk. Weitere Details finden sich weiter unten auf dieser Seite.
- Open-Source-Abhängigkeitsüberprüfung – Wir verwenden Synk, um eventuell vorhandene Schwachstellen in Open-Source- oder Drittanbietercode zu identifizieren. Weitere Details finden sich weiter unten in diesem Dokument.
- AWS-Konfigurationsüberwachung – Wir integrieren und stellen Lacework in der Atlassian AWS Cloud-Umgebung bereit, um eine kontinuierliche Konfigurationsüberwachung sicherzustellen und die Ergebnisse mit etablierten Baselines für unsere AWS-Umgebungen zu vergleichen.
Wir prüfen kontinuierlich die aktuell verfügbaren Tools und fügen sie der von uns verwendeten Suite hinzu, wenn wir der Ansicht sind, dass sie unsere Fähigkeiten zur Erkennung von Schwachstellen verbessern.
Wir verfügen zudem noch über weitere Methoden, die wir zusammen mit unseren automatisierten Scans zur Identifizierung von Schwachstellen nutzen. Dazu zählen unter anderem:
Unser Bug-Bounty-Programm – Wir nutzen Bugcrowd, um unser Bug-Bounty-Programm auszuführen. Mit Bugcrowd erhalten wir Zugang zu einer technisch versierten, vertrauenswürdigen Community aus Zehntausenden Cybersicherheitsforschern, die unsere Produkte fortlaufend testen und gefundene Schwachstellen melden. Unser Bug-Bounty-Programm wurde 2018 und 2019 als bestes Programm der Branche ausgezeichnet.
Kunden- und Benutzerberichte – Wer unsere Produkte nutzt, kann dem Atlassian-Support jederzeit gefundene Bugs melden. Wir werden dann mit der Person zusammenarbeiten und sämtliche wichtige Informationen einholen, damit die Schwachstelle intern markiert und behoben werden kann (sofern festgestellt wird, dass es sich um eine echte Schwachstelle und nicht um ein falsch positives Ergebnis handelt). Auch Atlassian-Mitarbeiter haben die Möglichkeit, Probleme zu melden, die sie in unseren Produkten (extern oder intern) bemerken. Hierzu können sie sich direkt an das Sicherheitsteam wenden oder ein Support-Ticket erstellen.
Externe Penetrationstests – Wir engagieren Sicherheitsberatungsunternehmen, um White-Box-Penetrationstests mit Code-Unterstützung für Produkte und Infrastrukturen mit hohem Risiko durchzuführen. Siehe "Unser Ansatz für externe Sicherheitstests" für weitere Informationen.
Produktsicherheitsteam von Atlassian – Wir führen zielgerichtete sowohl manuelle als auch toolgestützte Code-Prüfungen durch und arbeiten eng mit unseren Produktentwicklungsteams zusammen, um deren Fähigkeit zu verbessern, Schwachstellen selbst zu erkennen und zu beheben, bevor der Code zu uns gelangt.
Red Team von Atlassian – Wir haben ein internes Red Team, das die Rolle von Angreifern simuliert, welche versuchen, vorhandene Schwachstellen in unseren Systemen, Prozessen und Umgebungen zu identifizieren und auszunutzen. Dadurch können wir sicherstellen, dass diese so früh wie möglich erkannt und behoben werden.
Nachverfolgung und Behebung von Schwachstellen
Wir verwenden ein internes Ticketing- und Eskalationssystem, um alle gefundenen Schwachstellen, die behoben werden sollen, nachzuverfolgen. Unabhängig davon, ob eine Schwachstelle mithilfe eines unserer Scantools oder einer anderen der oben besprochenen Methoden erkannt wird, wird für jede Schwachstelle ein dediziertes Ticket erstellt und zur Behebung dem zuständigen Produktteam zugewiesen. Die Service Level Objectives (SLOs) für die Behebung von Schwachstellen, die wir in unserer Richtlinie zur Behebung von Sicherheits-Bugs veröffentlicht haben, werden für jede Schwachstelle nachverfolgt.
Unser Sicherheitsteam beaufsichtigt diesen Prozess und arbeitet mit unseren Produkt- und Infrastrukturteams zusammen, um Schwachstellen genau zu erkennen und Fragen zur Behebung zu beantworten.
Sobald ein Fix für eine Schwachstelle entwickelt wurde, wird er sorgfältig getestet und, beispielsweise bei unseren Cloud-Produkten, in unsere CI/CD-Pipeline für das Deployment implementiert. Bei Data Center-Produkten werden Fixes regelmäßig entsprechend unserem standardmäßigen Release-Rhythmus zusammen mit neuen Releases und anderen Fixes bereitgestellt. Tickets zu von Scantools ermittelten Schwachstellen werden automatisch geschlossen, wenn erneute Scans keine Schwachstelle mehr finden. Tickets zu manuell ermittelten Schwachstellen werden von Produkt-, Infrastruktur- oder Sicherheitsteammitgliedern geschlossen, nachdem der Fix für Kunden bereitgestellt wurde.
Vermeiden von Schwachstellen während des Entwicklungsprozesses
Scans von Container-Images
Atlassian stellt einen Großteil seiner Anwendungen mithilfe von Docker-Container-Images bereit. Docker-Container bieten eine eigenständige Paket-Umgebung, die aus relevanten Systembibliotheken, Tools, Konfigurationseinstellungen und anderen erforderlichen Abhängigkeiten besteht, damit unsere Produkte unabhängig von den Konfigurationsparametern des einzelnen Geräts ausgeführt werden können. Der Container schafft effektiv eine Abstraktionsschicht, die den Softwarecode von der zugrunde liegenden Infrastruktur entkoppelt, damit unsere Produkte problemlos auf verschiedenen Systemen laufen können.
Container bieten zahlreiche Vorteile für unsere Entwickler und Kunden, was das Deployment von Code angeht, der in den unterschiedlichsten Umgebungen verwendet werden kann. Allerdings können sie auch die Ursache von Sicherheitslücken sein, wenn die Inhalte der Images aus veralteten oder anderweitig unsicheren Bibliotheken oder Komponenten bestehen.
Um das zu verhindern, integriert Atlassian einen ereignisbasierten Sicherheitsscanprozess für Container, der die über unsere Micros-Deployment-Plattform durchgeführten Deployments überwacht. Er gilt für alle Container, die in unseren Produktionsumgebungen bereitgestellt werden. Entwickler können zudem einen Sicherheitsscanprozess in unsere CI/CD-Pipeline integrieren. Dieser gilt für alle Container, die in unseren Entwicklungsumgebungen bereitgestellt werden. Zu diesem Zweck verwenden wir die Open-Source-Engine Synk. Synk stellt diverse Tools bereit, die alle Container-Images gründlich untersuchen, die von unseren Entwicklern bereitgestellt werden. Dies umfasst eine detaillierte Analyse der Images, um die unterschiedlichen enthaltenen Komponenten zu identifizieren und herauszufinden, welche von ihnen bekannte Schwachstellen aufweisen.
Open-Source-Abhängigkeiten
Natürlich ist es wichtig, Schwachstellen in unserem eigenen Code aufzuspüren und zu beheben, aber unsere Produkte und Services verlassen sich auch auf zahlreiche Bibliothek von Drittanbietern. Deshalb müssen wir unbedingt wissen, welche Bibliotheken wir nutzen und ob diese über die aktuellen Sicherheits-Bug-Fixes verfügen. Wir verwenden ein Tool namens Synk, das uns bei dieser Aufgabe unterstützt. Synk stellt einen Scanner zur Verfügung, der Abhängigkeiten in all unseren Software-Builds identifizieren und diese Bibliotheken dann mit einer Datenbank mit bekannten Sicherheitslücken vergleichen kann.
Identifizierte Schwachstellen werden automatisch über ein formales Jira-Ticket an das relevante Produktteam gemeldet, wie es der oben beschriebene Schwachstellenmanagementprozess vorsieht.
Andere Initiativen, die uns dabei helfen, Schwachstellen auszuräumen
Bisher haben wir in diesem Dokument überwiegend die Schritte beschrieben, die wir für die Verwaltung von Schwachstellen am Back-End unternehmen. Damit meinen wir Maßnahmen, um Schwachstellen zu beseitigen, die in unseren Produkten oder Plattformen gefunden wurden. Wir sind jedoch stets bemüht, die Häufigkeit zu verringern, mit der Schwachstellen auftreten. Zu diesem Zweck haben wir einige besondere Initiativen am Front-End unseres Entwicklungsprozesses implementiert, um sicherzustellen, dass unsere Produkte von Anfang an unter Berücksichtigung von Sicherheitsaspekten erstellt werden.
Produktsicherheitstechniker
Man kommt beim Thema Schwachstellenmanagement nicht umhin, zu erklären, welche wichtige Rolle unsere Produktsicherheitstechniker für die Beseitigung von Bugs und die Entwicklung von Lösungen zu diesem Zweck spielen.
Unsere Produktsicherheitstechniker ordnen die gemeldeten Schwachstellen nach Schweregrad ein und arbeiten mit unseren Produktentwicklerteams zusammen, um Fehler optimal zu beheben. Sie sind Experten für Anwendungssicherheit und befinden sich an den unterschiedlichsten Standorten auf der Welt. So können sie bei Bedarf besonders effektiv mit unseren Produktentwicklern zusammenarbeiten.
Die Sicherheitsrollen unserer Sicherheitstechniker sind sowohl proaktiv als auch reaktiv, je nachdem, welchem Produkt sie zugewiesen wurden. Zu ihren Aufgaben zählen unter anderem:
- Prüfung und Analyse von modernen Bedrohungsmodellen für neue und aufkommende Risiken
- Prüfung und Analyse der Sicherheit von neuen Features
- Durchführung manueller Code-Prüfungen
- Durchführung von Penetrationstests
- Durchführung von Prüfungen der Plattform und Architektur
- Nachverfolgung wichtiger Aktivitäten im Zusammenhang mit Projekten sowie Leisten von Hilfestellung, falls erforderlich
- Sichten, Archivieren, Belohnen und Sicherstellen, dass über das Bug-Bounty-Programm gemeldete Probleme frühzeitig behoben werden
- Schreiben neuer Automatisierungslösungen und Pflege vorhandener Automatisierungslösungen und Tools, um die Abdeckung und Effizienz zu maximieren
Sicherheits-Scorecards
Mit den Daten, die wir aus den in diesem Dokument beschriebenen Systemen erfassen, können wir Teams und Produkte miteinander vergleichen und proaktiv Bereiche ermitteln, in denen Verbesserungen nötig sind.
Zusammenfassung
Atlassian verfügt über einen mehrdimensionalen Ansatz für das Schwachstellenmanagement für alle unsere Produkte und Plattformen. Dieser nutzt eine Kombination aus automatischen Scantools, einem Bug-Bounty-Programm und einer Reihe anderer Mechanismen, die sich konstant weiterentwickeln und sicherstellen, dass wir entstehende Schwachstellen so schnell wie möglich identifizieren und beheben und vor allem deren Häufigkeit verringern.
Möchtest du noch mehr wissen?
Möchtest du noch mehr wissen?
Es gibt eine Reihe weiterer Ressourcen, auf die wir in diesem Dokument hingewiesen haben, mit denen du dich näher über unseren Ansatz für das Schwachstellenmanagement oder das Thema Sicherheit im Allgemeinen informieren kannst.
- Atlassian Trust Center
- Atlassian-Richtlinie zur Behebung von Sicherheits-Bugs
- Ansatz für externe Sicherheitstests
- Continuous Delivery
- Sicherheitsempfehlungen
- Bug-Bounty-Programme von Atlassian
Auf dieser Seite verwenden wir die Begriffe Schwachstellen und Bugs synonym. Letzterer ist der Begriff, den wir in einem separaten Dokument zu unserem Ansatz für Sicherheitstests verwenden.