Czym jest DevSecOps
- Lucian Constantin,
- James A. Martin,
- Florian Maier,
- 06.12.2021, godz. 15:03
DevSecOps polega na zintegrowaniu aspektów bezpieczeństwa IT na jak najwcześniejszym etapie cyklu życia aplikacji. W ten sposób można wyeliminować potencjalne słabe punkty, podczas gdy rozwój i eksploatacja stanowią jedną całość i umożliwiają szybki rozwój zgodnie z potrzebami użytkownika.
DevSecOps - definicja
DevSecOps nie odnosi się do technologii, ale do zmiany kulturowej w tworzeniu oprogramowania. Celem podejścia DevSecOps jest zakotwiczenie bezpieczeństwa IT w dzisiejszych typowo szybkich cyklach rozwojowych.
Aby wdrożyć to podejście w praktyce, firmy muszą zlikwidować przepaść między zespołami ds. rozwoju i bezpieczeństwa, która zazwyczaj jest wyraźna. W idealnym przypadku jak najwięcej procesów bezpieczeństwa jest zautomatyzowanych lub obsługiwanych przez sam zespół programistów.
Zobacz również:
- Najpopularniejsze stanowiska pracy w chmurze obliczeniowej
- Apple się poddaje - sideloading na iPadOS zadebiutuje jesienią
DevSecOps - bezpieczne tworzenie oprogramowania
W tradycyjnym rozwoju oprogramowania, nowe wersje były wydawane co kilka miesięcy - czasami nawet lat. Dzięki temu firmy miały wystarczająco dużo czasu, aby poddać swój kod procedurom kontroli jakości i testom bezpieczeństwa. Procesami tymi zajmowały się różne, wyspecjalizowane zespoły. W ciągu ostatnich dziesięciu lat sytuacja ta uległa zasadniczej zmianie: chmura publiczna, technologia kontenerowa i podejście do mikroserwisów sprawiły, że monolityczny proces tworzenia oprogramowania został podzielony na wiele małych procesów, które działają niezależnie od siebie.
To zmieniło sposób, w jaki tworzone jest oprogramowanie: dzięki zwinnym metodom rozwoju i „kroczącym" cyklom wydawniczym, funkcje i nowy kod są dodawane stale i w krótkich odstępach czasu. W wielu przypadkach procesy te zostały zautomatyzowane dzięki nowym technologiom i narzędziom, co zdecydowanie zwiększyło tempo wdrażania innowacji, a tym samym konkurencyjność przedsiębiorstw.
Jednak chmura, kontenery i mikroserwisy napędzają kolejny obszar: podejście DevOps. Deweloperzy sami dostarczają i skalują infrastrukturę - nie ma już osobnego zespołu, który zajmowałby się tym zadaniem. Wszyscy główni dostawcy usług w chmurze oferują interfejsy API i narzędzia konfiguracyjne, które umożliwiają dostarczanie infrastruktury jako kodu za pomocą "szablonów zespołu wdrożeniowego".
DevOps bez wątpienia sprawił, że rozwój oprogramowania stał się bardziej innowacyjny, zwinny i szybszy, ale skupienie się na szybkości zbyt często doprowadzało do zaniedbania bezpieczeństwa IT. Koncepcja DevSecOps ma na celu poprawienie tej sytuacji i pełną integrację testów bezpieczeństwa w potokach CI/CD. Ponadto, DevSecOps to także umożliwienie programistom samodzielnego przeprowadzania testów i ewentualnych przeróbek.
DevSecOps - czynniki sukcesu
„Zwłaszcza realizacja tego ostatniego punktu zajmie trochę czasu. Ale dopiero wtedy, gdy osobny zespół ds. bezpieczeństwa stanie się zbędny, można naprawdę mówić o DevSecOps" - przekonuje Chris Wysopal, CTO w firmie Veracode, dostawcy usług bezpieczeństwa.
Aby poszerzyć umiejętności programistów w zakresie bezpieczeństwa, niektóre firmy powołują „mistrza bezpieczeństwa" w zespole programistów. Osoba ta przeszła już zaawansowane szkolenie z zakresu bezpieczeństwa i bierze odpowiedzialność za jego jakość, podczas gdy reszta zespołu stopniowo przechodzi dalsze szkolenia z zakresu bezpiecznego programowania.
Jednak połączenie rozwoju i bezpieczeństwa musi mieć miejsce również na poziomie zarządzania, o czym wie Brian Fox, CTO w firmie Sonatype, dostawcy platformy DevOps: „Jeśli tak się nie stanie, może dojść do walki o władzę i powstania rozbieżnych celów, nawet jeśli zaangażowane osoby znajdują się w tym samym zespole. To trochę jak na placu zabaw dla dzieci: dwoje dzieci siedzi obok siebie, nie kłócą się - ale to nie znaczy, że bawią się razem. Dokładnie to samo dzieje się w wielu firmach".
DevSecOps - narzędzia
Wczesne narzędzia DevSecOps nie zawsze były przyjazne programistom: zamiast automatycznych narzędzi wiersza poleceń, których dane wyjściowe można szybko i łatwo przesłać do bug trackerów, tradycyjne narzędzia bezpieczeństwa były zazwyczaj przeznaczone dla zespołów bezpieczeństwa i CISO, stawiając w centrum uwagi ład, politykę bezpieczeństwa i zarządzanie ryzykiem.
W międzyczasie to się zmieniło - nowe narzędzia, stworzone (częściowo) przez programistów dla programistów, wzbogacają obecnie środowiska programistyczne i przepływy pracy CI/CD w wielu miejscach. Narzędzia te można podzielić na różne kategorie. Do najpopularniejszych narzędzi DevSecOps należą m.in:
Wykrywanie anomalii:
• Alerta
• Contrast Assess
• Contrast Protect
• ElastAlert
Automatyzacja:
• CodeAI
• Parasoft Suite
• Red Hat Ansible
• StackStorm
• Veracode
Dashboardy:
• Grafana
• Kibana
Threat Modeling:
• IriusRisk
• Threat Modeler
• OWASP Threat Dragon
Testowanie:
• BDD-Security
• Checkmarx CxSAST
• Chef InSpec
• Fortify
• Gauntlt
• Synopsis Suite
W ciągu ostatnich kilku lat, niektórzy tradycyjni dostawcy zabezpieczeń zaczęli dostosowywać swoje produkty zarówno do świata programistów, jak i CISO, łącząc funkcje raportowania i analizy z prostymi wskazówkami dla użytkowników. Dostawcy usług w chmurze również zaczęli wzbogacać swoje usługi o funkcjonalności związane z testowaniem bezpieczeństwa.