Bezpieczeństwo w tworzeniu oprogramowania w Atlassian
W Atlassian zabezpieczenia stanowią nieodłączny element każdego etapu cyklu rozwoju i mają na celu zapewnienie ochrony naszego kodu, produktów i klientów. Stosujemy bezpieczne praktyki programistyczne na wszystkich etapach cyklu tworzenia produktów.
- W ramach wspierania procesu tworzenia produktów prowadzimy programy szkoleń w zakresie bezpieczeństwa aplikacji oraz bazę wiedzy na temat zabezpieczeń, za które odpowiada specjalny zespół ds. bezpieczeństwa.
- Na etapie projektowania praktyki obejmują modelowanie zagrożeń, przegląd projektu i naszą regularnie aktualizowaną bibliotekę standardów bezpieczeństwa, dzięki czemu mamy pewność, że odpowiednie wymagania dotyczące zabezpieczeń są uwzględniane.
- W trakcie tworzenia oprogramowania stosujemy obowiązkowy proces wzajemnej oceny, który stanowi pierwszy stopień przeglądu bezpieczeństwa. W ramach wsparcia na tym etapie przeprowadza się zautomatyzowane kontrole oparte na analizie statycznej (SAST) oraz ręczne testy zabezpieczeń (z udziałem zarówno zespołów wewnętrznych, jak i ekspertów z zewnątrz, zgodnie z naszym procesem oceny ryzyka).
- Dzięki procesom formalnej gotowości operacyjnej oraz kontrolowania zmian zyskujemy pewność, że do produkcji wdrażane są tylko zatwierdzone zmiany. Po wdrożeniu stosujemy regularne automatyczne skanowanie pod kątem luk w zabezpieczeniach i wiodący w branży program wykrywania błędów Bug Bounty, aby bezpieczeństwo naszych aplikacji było stale poddawane kontroli. Nieustannie mierzymy stan zabezpieczeń naszych produktów w ujęciu czasowym, wykorzystując system kart wyników dotyczących bezpieczeństwa.
Kultura
Zaangażowanie
Szkolenia
Standardy
Praktyki
Punkty kontrolne
Przegląd bezpieczeństwa
Poprawa bezpieczeństwa
Budowanie kultury bezpieczeństwa
Atlassian buduje kulturę bezpieczeństwa, wspierając swoje zespoły poprzez solidne szkolenia z zakresu bezpieczeństwa.
Szkolenie z zakresu bezpieczeństwa dla programistów
W trakcie szkoleń wykorzystujemy zarówno treści opracowane we własnym zakresie, jak i treści podmiotów zewnętrznych, aby zespoły programistyczne dysponowały wiedzą na temat bezpieczeństwa niezbędną do tworzenia bezpiecznych aplikacji. Nasz program szkoleniowy jest stale monitorowany, aby zawsze zawierał przydatne treści i rozwijał się wraz ze zmieniającym się środowiskiem zagrożeń.
Faza projektowania
Na etapie projektowania stosujemy modelowanie zagrożeń, przegląd projektu i naszą bibliotekę standardów bezpieczeństwa, dzięki czemu mamy pewność, że odpowiednie wymagania dotyczące bezpieczeństwa są uwzględniane.
modelowanie zagrożeń;
Gdy projekty stają w obliczu złożonych zagrożeń lub wprowadzane są zmiany funkcji krytycznych dla bezpieczeństwa, stosujemy modelowanie zagrożeń, aby lepiej zrozumieć ryzyko związane z bezpieczeństwem. Tego rodzaju działania obejmują burze mózgów z udziałem naszych inżynierów, inżynierów ds. zabezpieczeń, architektów oraz kierowników produktów i mają na celu rozpoznanie adekwatnych zagrożeń oraz ustalenie ich priorytetu. Te informacje są uwzględniane w procesie projektowania i pozwalają wdrożyć odpowiednie środki kontroli. Modelowanie obejmuje również ukierunkowane przeglądy oraz testy na dalszych etapach prac programistycznych.
Nasze modelowanie zagrożeń obejmuje:
- Stosowanie podejścia opartego na ryzyku do ustalania zapotrzebowania na modelowanie zagrożeń.
- Dojrzały proces modelowania zagrożeń z uwzględnieniem materiałów pomocniczych oraz narzędzi.
- Filmy szkoleniowe i materiały do czytania, aby ułatwić zespołom programistycznym przeprowadzanie modelowania zagrożeń.
Faza tworzenia oprogramowania
W trakcie tworzenia oprogramowania stosujemy szereg procesów i praktyk bezpieczeństwa, których celem jest zapewnienie bezpieczeństwa naszego kodu.
Przegląd bezpieczeństwa
Zespół ds. bezpieczeństwa realizuje również proces przeglądu zabezpieczeń w ramach zapewniania bezpieczeństwa na poziomie projektów oprogramowania Atlassian. Ten proces oceny ryzyka służy do wyznaczania obszarów priorytetowych, na których powinny koncentrować się przeglądy zabezpieczeń, oraz wskazywania działań wymaganych do zniwelowania ryzyka związanego z projektem. W zależności od rozpoznanego poziomu ryzyka aktywności związane z zapewnianiem bezpieczeństwa stanowią kombinację następujących działań:
- Przegląd projektu i modelowanie zagrożeń
- Przegląd kodu i testy bezpieczeństwa
- Niezależne zapewnianie bezpieczeństwa z wykorzystaniem zewnętrznych badaczy i konsultantów
Weryfikacja przez współpracownika
Na etapie tworzenia oprogramowania cały kod podlega procedurze testowania, którą nazywamy Peer Review, Green Build (PRGB). Proces ten wymaga, aby wielu starszych lub czołowych programistów przeglądało wszystkie commity, zanim zostaną wypchnięte do środowiska produkcyjnego. Dodatkowo w ramach wsparcia na tym etapie przeprowadza się zautomatyzowane kontrole oparte na analizie statycznej (SAST) oraz ręczne testy zabezpieczeń (z udziałem zarówno zespołów wewnętrznych, jak i ekspertów z zewnątrz, zgodnie z naszym procesem oceny ryzyka). W ramach wspierania procesu tworzenia produktów prowadzimy również programy szkoleń w zakresie bezpieczeństwa aplikacji oraz bazę wiedzy na temat bezpieczeństwa, za które odpowiada specjalny zespół ds. bezpieczeństwa.
Rozdzielenie środowisk
Zachowujemy logiczną i fizyczną separację środowisk produkcyjnych i nieprodukcyjnych (używanych do tworzenie oprogramowania) w przypadku wszystkich naszych usług o znaczeniu krytycznym. Nasze środowisko przejściowe jest logicznie — ale nie fizycznie — oddzielone i zarządzane z zastosowaniem procesów dostępu i kontrolowania zmian klasy produkcyjnej.
Atlassian ma również zasady bezpieczeństwa zabraniające wykorzystywania danych produkcyjnych w środowiskach nieprodukcyjnych. Udostępniamy wytyczne dotyczące sposobów ograniczania zakresu i ochrony danych — w tym danych osobowych — z wykorzystaniem technik anonimizacji, mieszania i tokenizacji.
Faza utrzymania
Zanim wypchniemy kod do produkcji, musi przejść nasze procesy kontroli zmian i formalnej gotowości operacyjnej.
Po wdrożeniu systemu regularnie przeprowadzamy automatyczne skanowanie pod kątem luk w zabezpieczeniach. Jak wskazujemy w naszych praktykach dotyczących bezpieczeństwa, prowadzimy również wiodący w branży program wykrywania błędów, który polega na ciągłym, bieżącym zapewnianiu bezpieczeństwa z pomocą zaufanej grupy crowdsourcingowej badaczy zabezpieczeń.
Karty wyników dotyczące bezpieczeństwa
Opracowaliśmy zautomatyzowany system odpowiedzialności i monitorowania nazywany kartami wyników dotyczącymi bezpieczeństwa produktu, aby mierzyć stan bezpieczeństwa wszystkich produktów w Atlassian. Stosujemy szeroki zakres kryteriów związanych z bezpieczeństwem, takich jak bieżące luki w zabezpieczeniach, zakres szkoleń i ostatnie incydenty dotyczące bezpieczeństwa, w celu wyliczenia ogólnej codziennej punktacji stanowiącej ocenę bezpieczeństwa każdego z naszych produktów.
Dzięki zastosowaniu takiego procesu ocen każdy z naszych zespołów ds. produktów zyskuje obiektywny pogląd na to, jakie obszary bezpieczeństwa wymagają uwagi. Ten proces pozwala wykryć istniejące luki, które należy wyeliminować, oraz wskazać działania, jakie należy w tym celu podjąć. Proces tworzenia kart wyników dotyczących bezpieczeństwa daje również zespołowi ds. bezpieczeństwa Atlassian możliwość monitorowania rozwoju produktów w czasie pod względem bezpieczeństwa, a w szczególności w miarę skalowania naszego pakietu produktów.