Fazy cyklu życia bezpiecznego oprogramowania SDLC
Opublikowany: 2021-02-26Inteligentne podejście do tworzenia bezpiecznego oprogramowania to Secure SDLC lub cykl rozwoju oprogramowania. Zamiast tworzyć oprogramowanie, a następnie testować je pod kątem luk, lepiej jest tworzyć je z naciskiem na bezpieczeństwo.
Co to jest bezpieczny SDLC?
W szerszym znaczeniu, Secure SDLC to proces integracji testów bezpieczeństwa i innych środków w istniejącym cyklu życia oprogramowania. Może to obejmować:
- Pisanie wymagań bezpieczeństwa wraz z wymaganiami funkcjonalnymi.
- Wykonywanie analizy architektury.
- Korzystanie z komponentów typu open source bez znanych luk w zabezpieczeniach.
- Testowanie oprogramowania na każdym etapie i zapobieganie przenoszeniu podatności/zagrożeń.
Dlaczego bezpieczne SDLC jest ważne?
Wdrażanie bezpiecznych praktyk cyklu życia oprogramowania jest ważne, ponieważ programiści nie mogą sobie pozwolić na wydanie produktu z lukami w zabezpieczeniach. Aby chronić oprogramowanie i dane przed zagrożeniami i atakami, musi być rozwijane w sposób zapewniający bezpieczeństwo.
Innym powodem jest to, że nie jest to efektywne podejście do tworzenia oprogramowania bez skupienia się na bezpieczeństwie, a następnie testowaniu go i poprawianiu.
Fazy bezpiecznego SDLC
Cała koncepcja bezpiecznego SDLC kręci się wokół niszczenia zła w zarodku. Proces ten zapobiega przeniesieniu defektów do następnej fazy cyklu życia oprogramowania. Oto szkic faz zaangażowanych w Secure SDLC i środków bezpieczeństwa wdrożonych w każdym z nich.
Faza wymagań bezpiecznego SDLC
Wraz z wymaganiami funkcjonalnymi oprogramowania, wymagania bezpieczeństwa są również opisane na początku bezpiecznego SDLC. Te wymagania szczegółowo opisują, co jest wymagane od deweloperów, aby oprogramowanie było z natury bezpieczne.
Szczegółowa lista wszystkich przypadków użycia i scenariuszy związanych z bezpieczeństwem jest kompilowana przed rozpoczęciem rozwoju. Jest to następnie wykorzystywane do tworzenia funkcji zabezpieczeń i projektowania scenariuszy testowania zabezpieczeń.
Te wymagania mogą wyglądać mniej więcej tak:
- Wszystkie bramy i punkty wejściowe muszą być wyposażone w środki uwierzytelniające.
- System musi wdrożyć uwierzytelnianie poprzez bezpieczny ekran logowania.
- Wszystkie dane osobowe muszą być zawsze zaszyfrowane.
- Do przesyłania danych wrażliwych należy używać więcej niż jednego kanału uwierzytelniania.
Faza planowania bezpiecznego SDLC
Faza planowania jest kluczowym krokiem w Secure SDLC. Planowanie może się różnić w zależności od przypadku, ale oto niektóre z najbardziej podstawowych rzeczy, o które należy zadbać:
- Należy utworzyć doświadczony zespół ds. bezpieczeństwa, aby przeoczyć i kierować wszystkimi środkami bezpieczeństwa związanymi z oprogramowaniem w sposób bezstronny. Zespół ten, najlepiej stacjonujący poza biurem zarządzania projektem, powinien składać się z oficera bezpieczeństwa, architektów bezpieczeństwa i testerów bezpieczeństwa. Wszyscy członkowie zespołu muszą mieć jasno określone role i obowiązki.
- Wszelkie niejasności lub eskalacje związane z kwestiami bezpieczeństwa projektu muszą być obsługiwane przez specjalistę ds. bezpieczeństwa produktu. Ma mu doradzić zespół bezpieczeństwa, aby upewnić się, że podejmowane są właściwe decyzje.
- Należy ustanowić punkt kontaktowy ds. bezpieczeństwa, aby upewnić się, że wszelkie zmiany wprowadzone w zabezpieczeniach produktu nie pozostaną niezauważone przez zespół ds. bezpieczeństwa.
Faza architektury i projektowania SDLC
W fazie projektowania należy przeprowadzić szczegółową ocenę ryzyka bezpieczeństwa produktu. Obejmuje to przegląd programu z punktu widzenia bezpieczeństwa, gdy nie wszedł on w fazę kodowania. Wszelkie zagrożenia bezpieczeństwa muszą zostać wyeliminowane przed przejściem do następnej fazy. W celu zapewnienia bezpieczeństwa wszystkie oceny muszą być przeprowadzane zgodnie ze standardami branżowymi.

Rzeczy, o które należy zadbać w tej fazie, obejmują między innymi:
- Przeglądanie wszystkich funkcji, wymagań, historyjek użytkownika i dokumentów projektowych zgodnie ze szczegółami udostępnionymi przez zespół projektowy. W przypadku braku któregokolwiek z wymaganych dokumentów, wszystko musi być jasno omówione przez członków zespołu projektowego.
- Wszelkie luki w wymaganiach bezpieczeństwa programu muszą zostać zidentyfikowane i ocenione pod kątem stosowanych standardów branżowych. W razie potrzeby modele zagrożeń można tworzyć zgodnie ze zidentyfikowanymi lukami.
- Należy wymienić luki o wystarczających zagrożeniach bezpieczeństwa i zasugerować ich realne łagodzenie.
Faza rozwoju SDLC
To jest rzeczywisty „rozwój” oprogramowania. Po przygotowaniu bezpiecznego układu aplikacji, programiści muszą napisać kod w sposób zgodny z wytycznymi bezpieczeństwa. To zawiera:
- Korzystanie z komponentów typu open source bez znanych luk w zabezpieczeniach.
- Stosowanie uzgodnionych środków bezpieczeństwa przez cały rozwój oprogramowania.
- Testowanie kodu na zimno w celu ujawnienia i złagodzenia wszelkich luk w kodzie.
Niektóre testy są również wykonywane w fazie. Może to obejmować takie rzeczy, jak zapewnienie, że poufne dane nie są przesyłane jako zwykły tekst.
Faza wdrażania SDLC
Po opracowaniu oprogramowania kolejnym krokiem jest dynamiczna analiza kodu. Jest to forma testowania bezpieczeństwa aplikacji, znana również jako testowanie Open Web Application Project (OWASP).
Zanim rozwiązanie zostanie wdrożone w rzeczywistości, przeprowadzana jest analiza podatności i testy penetracyjne. Wersje oprogramowania, na których przeprowadzana jest ta kontrola, nazywane są kompilacjami testowymi. Najważniejsze rzeczy, na które należy zwrócić uwagę, to:
- Narzędzia takie jak HP WebInspect, ZAP, Burp Suite i SOAP służą do sprawdzania podatności oprogramowania w różnych bazach danych o lukach.
- Cała ta faza to połączenie automatyzacji i testowania ręcznego.
- Proces ten jest wykonywany w niezależnym środowisku niepowiązanym ze środowiskiem programistycznym, aby zapewnić scenariusze testowe zbliżone do rzeczywistości.
- Wszelkie luki wykryte w tej fazie są eliminowane przed wydaniem oprogramowania.
- Na tym etapie identyfikowane są wspólne i typowe zagrożenia i podejmowane są kroki w celu ich zapobiegania.
Wniosek
Ponieważ nasza zależność od oprogramowania stale rośnie, ważne jest, aby były one bezpieczne dla użytkowników. Aby upewnić się, że oprogramowanie i aplikacje spełniają wymagania bezpieczeństwa, przyjęto praktyki Secure SDLC. Ostatecznym celem zawsze jest tworzenie niezniszczalnych rozwiązań programowych.
Bezpieczny proces SDLC składa się z pięciu faz, począwszy od zebrania wymagań do testów przed wdrożeniem. Nacisk kładziony jest na łagodzenie zagrożeń i podatności na każdym kroku, aby nie były przenoszone do następnego kroku.
