Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Tworzenie oprogramowania i testowanie w DevSecOps określają, czy bezpieczeństwo staje się częścią codziennej pracy inżynieryjnej, czy też pozostaje czymś, czym zespoły zajmują się zbyt późno. Silne praktyki w zakresie kodowania, narzędzi, integracji i testowania pomagają zespołom znajdować i rozwiązywać problemy, gdy kod jest nadal pisany.
W tym obszarze możliwości opisano, jak zespoły piszą bezpieczny kod, przyspieszają opracowywanie za pomocą zaakceptowanych narzędzi i składników oraz integrują i testują swoją pracę. Jest to punkt, w którym bezpieczeństwo staje się częścią codziennej inżynierii lub pozostaje następstwem.
Gdy organizacje dojrzały, programowanie i testowanie przechodzi z różnych, niezarządzanych działań w kierunku zoptymalizowanego środowiska dostosowanego dla poszczególnych deweloperów. Testowanie zabezpieczeń staje się ciągłe, AI i oprogramowanie open source przechodzą od rozwiązań nieobjętych nadzorem do bezpiecznych dla przedsiębiorstw i wdrażanych w sposób celowy, a testowanie zmienia się z okresowego i ręcznego na zautomatyzowane i prowadzone wcześniej w cyklu wytwarzania.
Podstawowe obszary możliwości
Programowanie i testowanie w usłudze DevSecOps koncentruje się na trzech możliwościach podrzędnych:
Zabezpieczenia kodu: sposób stosowania narzędzi zabezpieczeń i testowania do kodu podczas jego pisania i przeglądania.
Akceleratory rozwoju: Jak sztuczna inteligencja, oprogramowanie open source i komponenty wielokrotnego użytku są zarządzane i wykorzystywane w celu przyspieszenia dostarczania.
Integracja i testowanie: jak zarządzane są repozytoria, gałęzie, kompilacje i zautomatyzowane testowanie.
Etapach
Prace programistyczne i testowanie przechodzą przez pięć etapów dojrzałości. Te etapy pokazują, jak zasady DevSecOps pojawiają się w działaniach deweloperów, od niezarządzanych eksperymentów po zoptymalizowany kod i środowisko testowe, które poprawia wydajność deweloperów.
| Ogólny etap | Pseudonim sceniczny | Jak wygląda |
|---|---|---|
| Ad hoc | Różne | Brak zarządzania zasobami; szybkie tworzenie prototypów i nieujawniane eksploracje. |
| Inicjowanie | Nowo powstające | Zespoły improwizują w zakresie nadzoru, zaczynając skłaniać się ku podejściu DevOps. |
| Orkiestracja | Ciągły | Kompleksowa strategia wraz z automatyzacją wbudowuje standardy w ciągłe procesy. |
| Usprawnianie | Przesunięte w lewo | Przesunięcie w lewo oznacza, że problemy są znajdowane wcześniej i kosztują mniej, aby rozwiązać problem. |
| Pionierskie | Zoptymalizowane | Środowisko kodowe i testowe jest zoptymalizowane pod kątem wydajności poszczególnych deweloperów. |
Różne (ad hoc)
Bez konieczności zarządzania zasobami ani wstępnego kodowania możliwe są szybkie prototypowanie i nieskrępowana eksploracja. Ten stan jest naturalnym punktem wyjścia dla startupów i nowych organizacji.
Zabezpieczenia kodu: nie ma spójnego zastosowania narzędzi zabezpieczeń kodu, co powoduje rosnące ryzyko.
Akceleratory rozwoju: Zespoły używają niezatwierdzonych narzędzi AI poza organizacją oraz na szeroką skalę, bez odpowiedniego nadzoru, korzystają z oprogramowania open source lub przykładów kodu udostępnianych przez społeczność. Brak zasad może również spowodować, że niektórzy deweloperzy całkowicie unikają tych narzędzi, nie ma możliwości zwiększenia wydajności.
Integracja i testowanie: praca jest rozproszona w wielu repozytoriach, a kompilacje są wykonywane ręcznie i rzadko z różnymi konfiguracjami.
Wyłaniający się (początkowy)
Zespoły zaczynają improwizować nadzór nad aktywami i metodologiami, rozpoczynając szerszą zmianę podejścia devOps.
Bezpieczeństwo kodu: Zespoły od czasu do czasu korzystają z lokalnych narzędzi do testowania bezpieczeństwa.
Akceleratory tworzenia oprogramowania: zespoły dostrzegają ryzyka związane z niezatwierdzoną AI i oprogramowaniem open source, a w różnych częściach organizacji pojawiają się polityki, w tym ograniczenia lub wytyczne dotyczące ponownego wykorzystywania kodu pochodzącego ze społeczności deweloperskich.
Integracja i testowanie: usługa Teams definiuje strategie repozytorium i rozgałęziania. Testowanie jest nadal w większości okresowe, ręczne, a czasami zlecone. Jednocześnie testowalność zaczyna pojawiać się miejscami, a niektóre zespoły wdrażają praktyki ciągłej integracji.
Ciągłe (Orkiestracja)
Dzięki kompleksowej strategii wspieranej automatyzacją dynamiczne narzędzia i procesy pomagają trwale wbudować standardy w ciągłe przepływy pracy i monitorowanie.
Bezpieczeństwo kodu: niektóre testy bezpieczeństwa są już stosowane, bezpieczeństwo staje się częścią przeglądu kodu, a bardziej zaawansowane testy bezpieczeństwa są przeprowadzane zgodnie z harmonogramem. Przyjmuje się standardowe strategie nazewnictwa i rozgałęziania.
Akceleratory rozwoju: bezpieczna dla przedsiębiorstw sztuczna inteligencja i oprogramowanie open source są udostępniane zgodnie z zasadami użytkowania. Sztuczna inteligencja jest zintegrowana ze środowiskami IDE jako pomoc w programowaniu oraz z narzędziami DevOps, które usprawniają procesy obsługi pull requestów.
Integracja i testowanie: obowiązują standardowe nazewnictwo, strategie rozgałęziania i struktury testowania. Zautomatyzowane testowanie zostaje wdrożone w głównych potokach CI/CD, w tym obejmuje niektóre testy integracyjne.
Przesunięte w lewo (Usprawnienie)
Tworzenie środowiska sprzyjającego przesunięciu działań na wcześniejszy etap oznacza, że problemy są wykrywane wcześniej, a ich usunięcie kosztuje mniej.
Zabezpieczenia kodu: zespoły wymuszają gating w przypadku wyników zabezpieczeń o wysokiej ważności. Narzędzia do kodowania w środowisku IDE zawierają funkcje zabezpieczeń, w tym ochronę przed atakami typu prompt injection i zatruwaniem danych.
Akceleratory programistyczne: usługa Teams używa bezpiecznych dla przedsiębiorstw modeli dużych języków (LLMs) dostosowanych do jasnych wzorców i standardów. Inżynieria oprogramowania oparta na sztucznej inteligencji i agenci DevOps zaczynają automatyzować pracę i działać z rosnącą autonomią.
Integracja i testowanie: obowiązują powszechne praktyki testowania, w tym testy jednostkowe i integracyjne. Testowanie automatyczne jest uruchamiane w sposób ciągły i wychwytuje problemy we wcześniejszej fazie procesu. Zespoły używają również symulacji wyłudzania informacji.
Zoptymalizowane (pionierskie)
Podczas optymalizowania kodu i środowiska testowego dla poszczególnych deweloperów tworzysz bardziej spersonalizowaną wydajność.
Bezpieczeństwo kodu: staje się procesem ciągłym i jest wspierane przez zaawansowane monitorowanie.
Akceleratory tworzenia oprogramowania: Programiści rozszerzają modele językowe asystentów kodowania o własne niestandardowe wzorce. Użycie składników staje się celowe i jest przeznaczone do osiągania celów związanych z wydajnością, zgodnością i zarządzaniem ryzykiem. Serwery MCP i orkiestracja stają się częścią zestawu narzędzi.
Integracja i testowanie: automatyzacja testów staje się kompleksowa, w tym testowanie wydajnościowe. Zespoły wykorzystują również wykrywanie zagrożeń oparte na sztucznej inteligencji i szukają innych sposobów usprawnienia pętli informacji zwrotnej w procesie inżynieryjnym.