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.

Identifying vulnerabilities

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 Informationen hierzu folgen etwas später 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 wichtigen 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

Container image scans

Atlassian deploys the bulk of its applications using Docker container images. Docker containers provide a packaged, self-contained environment consisting of relevant system libraries, tools, configuration settings and any other dependencies required so that our products are able to run regardless of individual machine configuration parameters. The container effectively provides a layer of abstraction, decoupling the software code from the underlying infrastructure so that our products can work without issue across different machines.

While containers offer great benefits for our developers and customers in terms of being able to deploy code that can be used in a variety of environments, they can be a source of security vulnerabilities if the contents of the images consist of out-of-date or otherwise insecure libraries or components.

To address this, Atlassian integrates a full container security scanning process into our CI/CD pipeline for any containers that are deployed into our development, staging or production environments. We use the Anchore open source engine for this purpose. Anchore provides a set of tools that undertakes a deep inspection of any container images that are deployed by our developers. This includes a detailed analysis of those images to identify the various components they contain (including operating system and application packages, third party libraries as well as configuration files).

Open source dependencies

While it's important to find and fix vulnerabilities in our own code, our products and services also rely on numerous open source libraries. It is therefore equally critical that we are aware of what libraries we're using and that they're up to date with the latest security bug fixes. We use a tool called SourceClear to assist us with this. SourceClear provides a scanner that can identify dependencies in any of our software builds and can then compare these libraries to a database of known security vulnerabilities.

Any identified vulnerabilities, whether found via Anchore or SourceClear, are then raised automatically via a formal Jira ticket with the relevant product team in accordance with the vulnerability management process we described earlier in this paper.

Andere Initiativen, die uns dabei helfen, Schwachstellen auszuräumen

So far in this paper, we’ve largely described steps we take to manage vulnerabilities at the ‘back end’ – i.e., what we do to address a vulnerability that is identified in our products or platforms. However, we are constantly striving to reduce the frequency with which they arise in the first place. To this end, we have incorporated some unique initiatives at the ‘front end’ of our development process to ensure that our products are built from the ground up with security in mind.

Security Champions Program

In 2017 we started rolling out a Security Champions program across Atlassian to embed security leaders within every one of our product and service teams. Our Champions are also provided with dedicated training to help them understand and identify application security vulnerabilities, as well as processes for writing secure code. The goal of this program is to have a dedicated Champion within each team who assumes responsibility for promulgating key security messages amongst fellow team members and raises any security issues with our central security team to facilitate improved communication flows.

Atlassian’s Security Champions meet on a monthly basis to share tools and knowledge around the latest security issues and challenges they’re facing so that all our teams can benefit. The ultimate aim is to use the Champions program as a springboard for enabling security to form an even more integral part of our culture. We believe that this kind of approach is a key pillar in our approach to minimizing vulnerabilities.

Product security engineers

No discussion of vulnerability management would be complete without explaining the key role our product security engineers have in both ironing out bugs, and designing better irons.

Each of our product teams has a dedicated security engineer embedded within who collaborates with the team to ensure the security of that product. This design ensures that all product teams have a direct link to a dedicated security specialist, and ensures that security is hooked into all aspects of the software development lifecycle.

Our security engineers has both pro-active and re-active security roles in relation to their assigned product, including but not limited to:

  • Reviewing and analysing up to date threat models for new and emergent risks
  • Reviewing and analysing the security of new features
  • Performing manual code review
  • Performing penetration testing
  • Performing platform and architectural review
  • Tracking major activities related to projects and providing guidance when necessary
  • Triaging, filing, rewarding, and ensuring the timely resolution of issues reported via our bug bounty
  • Writing new automation and maintaining existing automation and tooling to maximise coverage and efficiency

Security scorecards

With the data collected from the systems described in this paper, we are able to benchmark teams and products against each other to pro-actively identify areas for improvement.

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.