Close

Unser Ansatz für das Schwachstellenmanagement


Unser Ansatz für die Handhabung von Sicherheitsschwachstellen bei Atlassian

Atlassian ist sich der Tatsache bewusst, dass Sicherheitslücken 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[1] 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.

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 Server-Produkten, Docker-Anwendungs-Images, mobilen und Drittanbieteranwendungen und unseren Infrastrukturen vor Ort und in der Cloud. Diese Tools suchen gezielt nach vorhandenen Schwachstellen und umfassen Folgendes:

  • Netzwerkscans – Aktuell verwenden wir Nexpose als unser primäres Tool für das Management von Schwachstellen. Es hilft uns nicht nur dabei, aktive Services, offene Ports und in unserer Umgebung ausgeführte Anwendungen zu identifizieren, sondern auch auf der Netzwerkebene vorhandene Schwachstellen ausfindig zu machen.
  • Kontinuierliche Erkennung von externen Assets - Wir nutzen Assetnote, um eine kontinuierliche Asset-Erkennung und Sicherheitsanalysen in unserem externen Perimeter durchzuführen.
  • Scans von Container-Images – Wir verwenden Docker-Container, um viele unserer Anwendungen bereitzustellen, und führen komplette Sicherheitsscans durch, welche die Inhalte dieser Container immer dann gründlich untersuchen, wenn sie in unseren Produktions- oder Vorproduktionsumgebungen zum Einsatz kommen. Zu diesem Zweck nutzen wir ein Tool namens Anchore. Weitere Details finden sich weiter unten auf dieser Seite.
  • Open-Source-Abhängigkeitsüberprüfung – Wir verwenden SourceClear, um eventuell vorhandene Schwachstellen in Open-Source- oder Drittanbietercode zu identifizieren, den unsere Entwickler nutzen könnten. Weitere Details finden sich weiter unten in diesem Dokument.
  • AWS-Konfigurationsüberwachung - Wir nutzen Cloud Conformity, um eine kontinuierliche Konfigurationsüberwachung bereitzustellen 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 in den letzten zwei Jahren (2018-19) 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

Um die Effizienz und Effektivität unseres Programms für das Schwachstellenmanagement zu maximieren, integrieren wir die von uns verwendeten Prozesse zur Erkennung von Schwachstellen mit unseren internen Ticketing-Systemen. Unabhängig davon, ob eine Schwachstelle mithilfe eines unserer Scantools oder einer anderen der oben besprochenen Methoden erkannt wird, wird für jede in der zugehörigen Jira-Instanz gemeldete Schwachstelle ein dediziertes Ticket erstellt. Dadurch wird sichergestellt, dass das relevante Produktteam darauf aufmerksam gemacht wird und es die Schwachstelle gemäß den in unserer Richtlinie zur Behebung von Sicherheits-Bugs veröffentlichten SLAs behebt.

Unser Sicherheitsteam beaufsichtigt diesen Prozess und arbeitet mit unseren Produkt- und Infrastrukturteams zusammen, um dafür zu sorgen, dass alle Schwachstellen gemäß unseren SLA-Verpflichtungen behoben werden.

Darüber hinaus haben wir ein spezielles Tool entwickelt, das eine zentrale Ansicht für die Nachverfolgung des aktuellen Status von Schwachstellen bietet, die in unseren Produkten und Infrastrukturen im gesamten Atlassian-Ökosystem bestehen. Dadurch erhalten wir eine zentrale Schnittstelle, über die wir jede erkannte Schwachstelle nachverfolgen und sicherstellen können, dass nichts versehentlich vergessen oder übersehen wird.

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 Server-Produkten werden Fixes regelmäßig und unserem standardmäßigen Release-Rhythmus entsprechend zusammen mit neuen Releases und anderen Fixes bereitgestellt.

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 umfassenden Sicherheitsscanprozess für Container in unsere CI/CD-Pipeline, und zwar für alle Container, die in unseren Entwicklungs-, Staging- oder Produktionsumgebungen bereitgestellt werden. Zu diesem Zweck verwenden wir die Open-Source-Engine Anchore. Anchore stellt diverse Tools bereit, die alle Container-Images gründlich untersuchen, welche von unseren Entwicklern bereitgestellt werden. Dies umfasst eine detaillierte Analyse der Images, um die verschiedenen darin enthaltenen Komponenten zu identifizieren (einschließlich Betriebssystem und Anwendungspakete, Bibliotheken von Drittanbietern und Konfigurationsdateien).

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 Open-Source-Bibliotheken. 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 SourceClear, das uns bei dieser Aufgabe unterstützt. SourceClear 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, die mit Anchore oder SourceClear gefunden wurden, 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.

Security Champions-Programm

Im Jahr 2017 haben wir mit der Einführung eines Security Champions-Programms für ganz Atlassian begonnen, um jedes unserer Produkt- und Serviceteams mit einem Sicherheitsexperten zu verstärken. Unsere Champions erhalten außerdem spezifische Schulungen, die ihnen dabei helfen, Schwachstellen bei der Anwendungssicherheit zu verstehen und zu identifizieren und Prozesse für das Schreiben von sicherem Code kennenzulernen. Das Ziel dieses Programms ist der Einsatz eines dedizierten Champions in jedem Team, der für die Verbreitung von wichtigen Sicherheitsmeldungen unter eigenen Teammitgliedern zuständig ist und Sicherheitsprobleme bei unserem zentralen Sicherheitsteam meldet, um den Kommunikationsablauf zu verbessern.

Security Champions von Atlassian treffen sich monatlich, um über Tools zu sprechen und Erfahrungen zu ihren aktuellen Sicherheitsproblemen und -herausforderungen auszutauschen, damit alle unsere Teams davon profitieren können. Das ultimative Ziel ist es, das Champions-Programm als Anstoß dafür zu nehmen, das Thema Sicherheit verstärkt zu einem festen Bestandteil unserer Unternehmenskultur zu machen. Wir glauben, dass diese Art von Ansatz für unsere Bemühungen zur Reduzierung von Schwachstellen extrem wichtig ist.

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 erstklassigen Scantools, unserem 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?

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.

[1] In diesem Dokument 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.