Omówienie metodyki DevSecOps

Ukończone

Wdrażanie chmury nadal przyspiesza, ponieważ organizacje starają się wspierać produktywność biznesową, umożliwić pracę zdalną i wydajnie skalować operacje. Jednak to szybkie wdrożenie bez odpowiedniej infrastruktury zabezpieczeń może przypadkowo naruszyć bezpieczeństwo danych i uwidocznić organizacjom znaczne ryzyko.

Luka w zabezpieczeniach w aplikacjach w chmurze

Luki w zabezpieczeniach utrzymują się nawet w miarę wzrostu wdrażania chmury. Organizacje przechodzące na platformy w chmurze nie zawsze implementują odpowiednie mechanizmy kontroli zabezpieczeń:

Luki w szyfrowaniu: Wiele aplikacji w chmurze nie może prawidłowo chronić danych:

  • Dane w spoczynku: Niezaszyfrowane bazy danych, konta pamięci masowej i systemy plików pozostawiają dane podatne na zagrożenia, gdy dostęp do nośników pamięci zostanie uzyskany, skradziony lub niewłaściwie usunięty.
  • Dane w tranzycie: Aplikacje przesyłające dane za pośrednictwem niezaszyfrowanych połączeń narażają informacje na przechwycenie. Nawet ruch sieciowy wewnętrzny powinien być szyfrowany.
  • Typowe luki: Znaczne wartości procentowe aplikacji SaaS nie szyfrują odpowiednio danych. Aplikacje do przechowywania danych często nie mają szyfrowania zarówno podczas przechowywania, jak i przesyłania. Aplikacje współpracy często przesyłają poufne informacje bez odpowiedniej ochrony.

Braki ochrony sesji: Słabe zarządzanie sesjami tworzy luki w zabezpieczeniach:

  • Brak nagłówków zabezpieczeń HTTP: Aplikacje, które nie implementują nagłówków zabezpieczeń, takich jak HSTS (HTTP Strict Transport Security), CSP (Content Security Policy) i bezpieczne atrybuty plików cookie pozostawiają sesje podatne na porwanie.
  • Ekspozycja tokenu: Tokeny sesji przesyłane niezabezpieczone mogą być przechwytywane i ponownie używane przez osoby atakujące do personifikacji uprawnionych użytkowników.
  • Ograniczone wdrożenie: Bardzo niewiele aplikacji SaaS implementuje kompleksową ochronę nagłówków HTTP, pozostawiając użytkowników narażonych na ataki sesyjne.

Co to jest secure DevOps (DevSecOps)

Napięcie między szybkością a bezpieczeństwem: Metodyka DevOps podkreśla szybsze działanie dzięki automatyzacji, ciągłej integracji i szybkiego wdrażania. Bezpieczeństwo tradycyjnie podkreśla szczegółowość, staranne przeglądy i kompleksowe testowanie. Te cele mogą wydawać się sprzeczne.

Problemy z tradycyjnym podejściem do zabezpieczeń: Gdy problemy z zabezpieczeniami są rozwiązywane tylko na końcu cyklu programowania, pojawiają się kilka problemów:

  • Nieplanowana praca pojawia się niespodziewanie bezpośrednio przed wdrożeniem, gdy zespoły są pod presją.
  • Problemy z zabezpieczeniami wykryte późno wymagają kosztownego przerabiania ukończonych funkcji.
  • Zabezpieczenia stają się wąskim gardłem, które spowalnia lub blokuje wydania.
  • Zespoły postrzegają bezpieczeństwo jako przeszkodę, a nie jako czynnik wspierający.
  • Krytyczne luki w zabezpieczeniach mogą zostać wycofane ze względu na presję wydania.

Rozwiązanie Secure DevOps: Bezpieczna metodyka DevOps integruje zabezpieczenia z praktykami DevOps w spójnym zestawie działań zaprojektowanych w celu osiągnięcia celów zarówno szybkości metodyki DevOps, jak i skuteczności zabezpieczeń. Zabezpieczenia stają się częścią procesu programowania od początku, a nie bramy na końcu.

Diagram Venna przedstawiający nakładające się koło DevOps i koło zabezpieczeń z etykietą Secure DevOps reprezentującą zintegrowane rozwiązania zabezpieczeń.

Korzyści z integracji: Bezpieczny pipeline DevOps umożliwia zespołom deweloperów pracować szybko, nie narażając projektu na niepożądane luki w zabezpieczeniach. Bezpieczeństwo i szybkość stają się uzupełnieniem, a nie przeciwstawnymi celami.

Notatka

Metodyka Secure DevOps jest również czasami nazywana DevSecOps. Możesz napotkać oba terminy, ale każda z nich odnosi się do tej samej koncepcji. Różnica terminologii jest czysto stylistyczna. Praktyki i zasady pozostają identyczne.

Jak zmieniają się zabezpieczenia w usłudze Secure DevOps

Tradycyjne metodologie zabezpieczeń: W przeszłości zabezpieczenia działały na wolniejszych cyklach i koncentrowały się przede wszystkim na:

  • Kontrola dostępu: Zarządzanie osobami, które mogą uzyskiwać dostęp do systemów i danych za pomocą mechanizmów uwierzytelniania i autoryzacji.
  • Wzmacnianie zabezpieczeń środowiska: Konfigurowanie systemów w celu usuwania niepotrzebnych usług, stosowania poprawek zabezpieczeń i wymuszania bezpiecznych konfiguracji.
  • Ochrona obwodowa: Używanie zapór, systemów wykrywania włamań i segmentacji sieci w celu ochrony granicy sieci.

Rozszerzony zakres zabezpieczeń: Bezpieczna metoda DevOps obejmuje te tradycyjne metodologie zabezpieczeń, ale rozszerza obawy dotyczące zabezpieczeń w całym cyklu tworzenia oprogramowania. Z Secure DevOps, bezpieczeństwo dotyczy zabezpieczenia samego potoku i wszystkiego, co przez niego przepływa.

Fokus zabezpieczeń potoku: Bezpieczna metodyka DevOps obejmuje określenie, gdzie dodawać zabezpieczenia do elementów podłączonych do potoków kompilacji i wdrażania:

  • Repozytoria kodu źródłowego.
  • Tworzenie serwerów i agentów.
  • Magazyn artefaktów i rejestry.
  • Narzędzia i procesy wdrażania.
  • Infrastruktura jako szablony kodu.
  • Systemy zarządzania konfiguracją.
  • Rozwiązania do zarządzania tajnościami.

Kompleksowe podejście: Secure DevOps pokazuje, jak i gdzie dodać zabezpieczenia do praktyk automatyzacji, środowisk produkcyjnych i innych elementów potoku przy zachowaniu szybkich korzyści z metodyki DevOps. Mechanizmy kontroli zabezpieczeń są zautomatyzowane i zintegrowane, a nie ręczne i oddzielne.

Kluczowe pytania, które rozwiązuje Secure DevOps

Bezpieczna metodyka DevOps pomaga organizacjom odpowiedzieć na krytyczne pytania dotyczące zabezpieczeń:

Zabezpieczenia składników innych firm:

  • Czy moja rura korzysta z komponentów zewnętrznych i czy są one bezpieczne?
  • Czy te składniki pochodzą z zaufanych źródeł?
  • Czy podpisy składników są weryfikowane?
  • Czy licencje są zgodne z naszym użyciem?

Zarządzanie lukami w zabezpieczeniach

  • Czy istnieją znane luki w zabezpieczeniach w dowolnym używanym przez nas oprogramowaniu innej firmy?
  • Jak śledzimy zgłoszenia luk w zabezpieczeniach w naszych zależnościach?
  • Jaki jest nasz proces aktualizowania składników podatnych na zagrożenia?
  • Czy mamy spis wszystkich zależności, w tym przechodnich?

Szybkość wykrywania (czas wykrywania):

  • Jak szybko mogę wykryć luki w zabezpieczeniach?
  • Czy skanowanie zabezpieczeń jest zautomatyzowane w procesie?
  • Czy mamy monitorowanie środowiska uruchomieniowego pod kątem problemów z zabezpieczeniami?
  • Jak szybko alerty zabezpieczeń docierają do odpowiednich osób?

Szybkość korygowania (czas korygowania):

  • Jak szybko mogę skorygować zidentyfikowane luki w zabezpieczeniach?
  • Czy możemy wdrażać poprawki przez ten sam zautomatyzowany potok?
  • Jaki jest nasz proces w przypadku poprawek zabezpieczeń awaryjnych?
  • Jak sprawdzić, czy korygowanie jest skuteczne?

Zabezpieczenia jako kod

Zautomatyzowane rozwiązania w zakresie zabezpieczeń: Rozwiązania w zakresie zabezpieczeń do wykrywania potencjalnych anomalii zabezpieczeń muszą być tak niezawodne i szybkie, jak inne części potoku DevOps. Obejmuje to:

Automatyzacja zabezpieczeń infrastruktury:

  • Zautomatyzowane skanowanie zabezpieczeń infrastruktury jako szablonów kodu.
  • Wymuszanie zasad jako kodu dla konfiguracji zasobów w chmurze.
  • Sprawdzanie zgodności przed wdrożeniem infrastruktury.
  • Ciągłe monitorowanie stanu zabezpieczeń infrastruktury.

Automatyzacja zabezpieczeń aplikacji:

  • Statyczne testowanie zabezpieczeń aplikacji (SAST) podczas kompilacji.
  • Dynamiczne testowanie zabezpieczeń aplikacji (DAST) w środowiskach przejściowych.
  • Analiza kompozycji oprogramowania pod kątem luk w zabezpieczeniach zależności.
  • Skanowanie obrazów kontenera przed wdrożeniem.
  • Samodzielna ochrona aplikacji środowiska uruchomieniowego (RASP) w środowisku produkcyjnym.

Ciągłe zabezpieczenia: Zabezpieczenia w usłudze Secure DevOps nie są pojedynczym punktem kontrolnym. Jest to ciągła walidacja w trakcie opracowywania, wdrażania i operacji. Każdy etap potoku obejmuje odpowiednie mechanizmy kontroli zabezpieczeń, które są wykonywane automatycznie bez spowalniania dostarczania.