Close

Sicherheit in der Softwareentwicklung bei Atlassian


Bei Atlassian ist Sicherheit in jede Phase des Entwicklungszyklus integriert, um sicherzustellen, dass unser Code, unsere Produkte und Kunden geschützt sind. In allen Phasen den Entwicklungszyklus setzen wir hierzu sichere Entwicklungsverfahren ein.

  • Die Entwicklung wird durch Schulungsprogramme zur Anwendungssicherheit und einer vom Sicherheitsteam verwalteten Sicherheitswissensdatenbank unterstützt.
  • Zu den Verfahren in der Designphase gehören Bedrohungsmodellierung, Designprüfungen und eine regelmäßig aktualisierte Bibliothek mit Sicherheitsstandards, die sicherstellt, dass die entsprechenden Sicherheitsanforderungen berücksichtigt werden.
  • Während der Entwicklung setzen wir im Rahmen der Sicherheitsprüfung zunächst auf einen Peer-Review-Prozess. Dabei kommen automatisierte statische Analysetests (SAST) und manuelle Sicherheitstest zum Einsatz, die sowohl von internen Teams als auch von externen Fachkräften durchgeführt werden, wie in unserem Prozess zur Risikobewertung angegeben.
  • Formale Betriebsbereitschaft und Änderungskontrollprozesse stellen sicher, dass nur genehmigte Änderungen ihren Weg in die Produktion finden. Nach dem Deployment setzen wir auf regelmäßige automatisierte Schwachstellen-Scans und ein branchenführendes Bug-Bounty-Programm, damit unsere Anwendungen sicher sind – und es auch bleiben. Zudem helfen uns Sicherheits-Scorecards dabei, die Sicherheit unserer Produkte im Laufe der Zeit zu überwachen.
Jersey

Unternehmenskultur

Engagement

Training

Standards

Liste auf Klemmbrett

Best Practices

CHECKPOINTS

Sicherheitsprüfung

Sicherheitsoptimierung

Aufbau einer Sicherheitskultur

Atlassian baut eine Sicherheitskultur auf, indem wir unsere Teams mit einem Security Champions-Programm und Sicherheitsschulungen unterstützen.

Security Champions-Programm

Atlassian beschäftigt in allen Produkt- und Serviceteams Sicherheitsexperten, sogenannte Security Champions, die die Verantwortung dafür übernehmen, wichtige Sicherheitsinitiativen unter ihren Kollegen umzusetzen und die Kommunikation mit unserem zentralen Sicherheitsteam so offen wie möglich zu halten. So sorgen wir dafür, dass Sicherheit in unserem Unternehmen immer an erster Stelle steht.

Die Security Champions treffen sich regelmäßig, um über Tools zu sprechen und Erfahrungen zu aktuellen Sicherheitsproblemen und -herausforderungen auszutauschen, damit alle unsere Teams davon profitieren können. Das Programm hat das Thema Sicherheit zu einem noch festeren Bestandteil unserer Unternehmenskultur gemacht.

Sicherheitsschulungen für Entwickler

Unsere Schulungen umfassen sowohl intern als auch extern entwickelte Inhalte und unterstützen unsere Entwicklerteams dabei, sich die nötigen Kenntnisse zur Entwicklung sicherer Anwendungen anzueignen. Dabei prüfen wir regelmäßig den Zustand unseres Schulungsprogramms und stellen sicher, dass es in Bezug auf Bedrohungen auf dem neusten Stand ist.

Designphase

In der Designphase setzen wir auf Verfahren wie Bedrohungsmodellierung und Designprüfungen sowie unsere Bibliothek mit Sicherheitsstandards, um sicherzustellen dass die entsprechenden Sicherheitsanforderungen berücksichtigt werden.

Bedrohungsmodellierung

Wir setzen auf Bedrohungsmodellierung, um Sicherheitsrisiken besser zu verstehen, wenn Projekte komplexen Bedrohungen ausgesetzt sind oder die Anpassung sicherheitskritischer Funktionen erfordern. Dies umfasst eine Brainstorming-Sitzung, bei der unsere Entwickler, Sicherheitstechniker, Architekten und Produktmanager Bedrohungen identifizieren und priorisieren. Die gewonnenen Erkenntnisse werden dann in den Designprozess aufgenommen und entsprechende Kontrollen implementiert. Auf diese Weise werden auch gezielte Prüfungen und Tests in den späteren Phasen der Entwicklung unterstützt.

Die Bedrohungsmodellierung setzt sich zusammen aus:

  • Einem risikobasierten Ansatz, um die Notwendigkeit der Bedrohungsmodellierung zu ermitteln
  • Einem ausgereiften Prozess zur Durchführung der Bedrohungsmodellierung unter Verwendung unterstützender Materialien und Tools
  • Schulungsvideos und Lesematerial zur Unterstützung von Softwareteams bei der Durchführung der Bedrohungsmodellierung

Entwicklungsphase

Während der Entwicklungsphase setzen wir eine Reihe von Sicherheitsverfahren ein, um unseren Code zu schützen.

Sicherheitsprüfung

Das Sicherheitsteam verfolgt einen Prozess zur Sicherheitsprüfung, um bei allen Atlassian-Softwareprojekten den nötigen Schutz zu gewährleisten. Dabei wird anhand eines Prozesses zur Risikobewertung priorisiert, wo die Sicherheitsprüfung besonders wichtig sind, und ermittelt, welche Maßnahmen erforderlich sind, um Projektrisiken zu reduzieren. Je nach Sicherheitsniveau wird eine Kombination folgender Maßnahmen eingesetzt:

  • Designprüfung und Bedrohungsmodellierung
  • Code-Prüfung und Sicherheitstests
  • Sicherheitsprüfungen von kompetenten unabhängigen Forschern und Beratern

Prüfung von Kollegen

Während der Entwicklung unterliegt der gesamte Code einem PRGB-Testverfahren (Peer Review Green Build). Im Rahmen dieses Verfahrens werden alle Commits von erfahrenen und leitenden Entwicklern geprüft, bevor sie in die Produktionsphase übergehen. Zudem verwenden wir automatisierte statische Analysetests (SAST) und manuelle Sicherheitstest, die entweder sowohl von internen Teams als auch von externen Fachkräften durchgeführt werden, wie in unserem Prozess zur Risikobewertung angegeben. Die Entwicklung wird außerdem durch Schulungsprogramme zur Anwendungssicherheit und einer vom Sicherheitsteam verwalteten Sicherheitswissensdatenbank unterstützt.

Umgebungstrennung

Die Produktions- und Nicht-Produktionsumgebungen unserer wichtigsten Services sind logisch und physisch getrennt. Unsere Staging-Umgebung ist logisch, nicht jedoch physisch, getrennt und wird unter Änderungskontroll- und Zugriffsverfahren der Produktionsklasse verwaltet.

Atlassian verfügt auch über Sicherheitsrichtlinien, die die Verwendung von Produktionsdaten in Nicht-Produktionsumgebungen verbieten. Außerdem verfolgen wir Leitlinien zum Schutz eingeschränkter Daten, einschließlich personenbezogener Daten. Dabei kommen Techniken wie Anonymisierung, Hashing und Tokenisierung zum Einsatz.

Wartungsphase

Bevor der Code in die Produktionsphase übergeht, wird er unseren Prozessen für formale Betriebsbereitschaft und Änderungskontrolle unterzogen.

Sobald ein System bereitgestellt wurde, führen wir regelmäßig automatisierte Schwachstellen-Scans durch. Wie in unseren Sicherheitsverfahren beschrieben, verfolgen wir zudem ein branchenführendes Bug-Bounty-Programm, in dessen Rahmen uns vertrauenswürdige Sicherheitsforscher dabei unterstützen, die Sicherheit unserer Systeme stetig zu verbessern.

Sicherheits-Scorecards

Wir verwenden Produktsicherheits-Scorecards – ein automatisiertes Verantwortlichkeits- und Überwachungssystem –, um das Sicherheitsniveau aller Atlassian-Produkte zu messen. Dabei werden zahlreiche sicherheitsbezogene Kriterien geprüft, wie zum Beispiel aktuelle Schwachstellen, vorhandene Schulungen, aktuelle Sicherheitsvorfälle und Abdeckung mit Security Champions, um jeden Tag eine allgemeine Sicherheitsbewertung für jedes unserer Produkte zu erhalten.

Dieser Bewertungsprozess gibt jedem unserer Produktteams einen objektiven Überblick darüber, auf welche Sicherheitsbereiche sie sich konzentrieren sollten, und identifiziert bestehende Lücken sowie Maßnahmen, um diese Lücken zu schließen. Die Sicherheits-Scorecards ermöglichen es dem Atlassian-Sicherheitsteam zudem, auf einfache Weise zu verfolgen, wie sich die Produkte vom Sicherheitsstandpunkt her entwickeln, insbesondere da wir unsere Produktsuite weiter ausweiten.