Wydawanie i wdrażanie w usłudze DevSecOps

W DevSecOps wydawanie i wdrażanie określają, czy działania związane z bezpieczeństwem wykonane wcześniej w cyklu życia zostaną utrzymane aż do środowiska produkcyjnego. Solidne praktyki w zakresie zarządzania zależnościami, nadzoru nad wydaniami i przepływów pracy wdrożeniowej pomagają uczynić proces dostarczania oprogramowania bezpiecznym, powtarzalnym i godnym zaufania.

W tym obszarze możliwości opisano, w jaki sposób organizacja zarządza bezpiecznymi zależnościami, zabezpiecza swoje wersje i obsługuje przepływy pracy wdrażania. To właśnie na tym etapie działania związane z bezpieczeństwem z wcześniejszych etapów zostają albo zachowane aż do wdrożenia produkcyjnego, albo zaprzepaszczone.

W miarę dojrzewania organizacji wydania i wdrożenia przechodzą od kruchych, doraźnych sposobów dostarczania do powtarzalnych procesów wspieranych przez prognozowanie. Zarządzanie zależnościami dojrzewa wraz z kolejnymi poziomami Secure Supply Chain Consumption Framework (S2C2F), kolejne wydania zyskują zautomatyzowane testy bezpieczeństwa i mechanizmy wycofywania zmian, a przepływy wdrożeniowe stają się ciągłe, zarządzane jako kod i w coraz większym stopniu samonaprawialne.

Podstawowe obszary możliwości

Wydawanie wersji i wdrażanie w DevSecOps koncentruje się na trzech podobszarach kompetencji:

  • Bezpieczne zależności: Jak zależności zewnętrzne i open source są ewidencjonowane, skanowane i utrzymywane.

  • Bezpieczne wersje: Jak identyfikowane są podatności i jak zarządza się nimi na kolejnych kamieniach milowych i w wydaniach.

  • Procesy wdrażania: Jak wdrożenia są automatyzowane, testowane oraz czynione niezawodnymi i powtarzalnymi.

Etapach

Procesy publikowania wydań i wdrażania przechodzą przez pięć etapów dojrzałości. Te etapy pokazują, jak zasady DevSecOps pojawiają się w administrowaniu systemami inżynieryjnymi, od późnej i niespójnej ochrony do chronionych procesów rozszerzonych przez przewidywanie.

Ogólny etap Pseudonim sceniczny Jak wygląda
Ad hoc Kruche Niewiele jest chronione od początku; zagrożenia są identyfikowane i ograniczane późno, jeśli w ogóle.
Inicjowanie Dane ustrukturyzowane Podstawowe procesy pozwalają wcześnie czerpać korzyści z częstszych i bardziej przewidywalnych wydań.
Orkiestracja Wzbogacony Automatyzacja i rozszerzone pokrycie testowe przed wdrożeniem dodają pewność i zmniejsz ryzyko.
Usprawnianie Ciągły Szerszy zakres testów dzięki automatyzacji zwiększa pewność i usprawnia wdrażanie kolejnych wydań.
Pionierskie Refleksyjny Chronione procesy są wspomagane udoskonaleniami w zakresie przewidywania.

Kruche (Ad hoc)

Gdy zespoły koncentrują się wyłącznie na osiąganiu pierwszych rezultatów i ich dostarczaniu, nie uwzględniają bezpieczeństwa w procesie wytwarzania oprogramowania od samego początku. Często identyfikują i ograniczają zagrożenia późno, jeśli w ogóle.

  • Bezpieczne zależności: nie ma zorganizowanego spisu. Aktualizacje pakietów są ręczne i mogą się w ogóle nie zdarzyć.

  • Bezpieczne wersje: nie ma zorganizowanych działań związanych z zabezpieczeniami wydań.

  • Przepływy pracy wdrożeniowej: Działania wdrożeniowe są rozproszone i podejmowane doraźnie.

Ustrukturyzowane (inicjowanie)

Gdy zespoły ustanawiają procesy wydawania i wdrażania, zaczynają widzieć wczesne korzyści wynikające z częstszych i przewidywalnych wydań.

  • Bezpieczne zależności: zespoły wykonują działania S2C2F poziomu 1. Sprawdzanie licencji jest ręczne, a powiadomienia klientów są podstawowe.

  • Bezpieczne wydania: zespoły ręcznie sprawdzają podatności, kwestie licencyjne i problemy z wersjami na etapach kamieni milowych i przy wydaniach, zazwyczaj korzystając z serwisów zewnętrznych.

  • Przepływy wdrażania: istnieją, ale są w dużej mierze ręczne i mogą być niespójne lub niekompletne. Wdrożenia są zwykle duże i rzadko.

Wzbogacone (orkiestracja)

Wprowadzenie do automatyzacji i rozszerzanie zakresu testów przed wdrożeniem zwiększa pewność i zmniejsza ryzyko.

  • Bezpieczne zależności: usługa Teams definiuje początkowy proces zarządzania zmianami z przeglądem i zatwierdzeniami zmian wersji. Korzystają z zestawień składników oprogramowania (SBOM), skanowania pod kątem licencji oraz działań S2C2F na poziomie 2. Wprowadzono maskowanie danych.

  • Bezpieczne wersje: automatyczne narzędzia do testowania zabezpieczeń aplikacji dynamicznych są używane w kluczowych punktach kontrolnych w celu identyfikowania luk w zabezpieczeniach i innych problemów. Korygowanie jest nadal trudne i czasochłonne.

  • Przepływy wdrażania: One stają się dojrzałe i niezawodne. Potoki wdrożeniowe obejmują kompleksowe zautomatyzowane testy, w tym dynamiczne testy bezpieczeństwa aplikacji i testy wydajności. Artefakty są weryfikowane przy użyciu podpisywania kodu.

Ciągłe (streamlinowanie)

Automatyzacja, która zapewnia szersze pokrycie komponentów i scenariuszy, zwiększa pewność i daje zespołom większą elastyczność przy wydawaniu kolejnych wersji.

  • Bezpieczne zależności: Automatyczna zewnętrzna świadomość sytuacyjna umożliwia działanie prewencyjne w defensywie. Zespoły wykonują działania S2C2F poziomu 3 i automatycznie generują SBOM-y.

  • Bezpieczne wydania: zespoły utrzymują pełną ewidencję w całym procesie, wdrażają ochronę przed złośliwym oprogramowaniem i wykrywanie zagrożeń zero-day oraz nie poświęcają jakości na rzecz szybkości, ponieważ mogą szybko i skutecznie wycofywać wdrożenia.

  • Przepływy pracy wdrażania: zautomatyzowane, ciągłe dynamiczne testowanie aplikacji jest zintegrowane w całym cyklu. Sztuczna inteligencja pomaga zapewnić automatyczne naprawianie, a infrastruktura jest zarządzana jako kod. Mniejsze, częstsze zmiany mogą być wdrażane w sposób ciągły bez poświęcania niezawodności.

Refleksywny (Pionierski)

Chronione i chronione procesy są ulepszane dzięki możliwościom predykcyjnym, które zapewniają dodatkowe korzyści z zakresu zabezpieczeń i wydajności.

  • Bezpieczne zależności: zespoły utrzymują plany awaryjne dla każdej zależności, współtworzyją poprawki zabezpieczeń i aktualizacje z powrotem do oprogramowania open source i wykonują działania na poziomie 4 S2C2F.

  • Bezpieczne wydania: Inwestycje strategiczne dodatkowo zwiększają możliwość przewidywania i zapobiegania ekspozycji.

  • Przepływy wdrażania: Agentowa sztuczna inteligencja jest wykorzystywana do optymalizacji przepływów pracy i zwiększania efektywności, co poprawia bezpieczeństwo i usprawnia proces ciągłego wdrażania.