Przegląd bezpieczeństwa kodu
Ręczny przegląd kodu źródłowego, wspierany analizą statyczną, w poszukiwaniu podatności niewidocznych z zewnątrz.
Bezpieczeństwo aplikacji
Ocena bezpieczeństwa drogi od commita do środowiska produkcyjnego: repozytoria, potoki, runnery, zależności i artefakty budowania.
Infrastruktura i chmura
Potok, który buduje i wdraża Twoje oprogramowanie, ma więcej uprawnień niż większość administratorów. Czyta kod źródłowy, przechowuje klucze do podpisywania i dane logowania do chmury oraz zapisuje na środowisku produkcyjnym. Jest też złożony z zewnętrznych akcji, wtyczek i pakietów, które zmieniają się bez uprzedzenia.
Testujemy tę drogę tak, jak zrobiłby to atakujący: co może zrobić współtwórca z minimalnymi uprawnieniami, do czego może dotrzeć złośliwa zależność lub pull request i czy da się wykazać, że wdrażany artefakt to ten sam, który przeszedł przegląd kodu.
01Zakres
02Podejście
Śledzimy drogę od commita do środowiska produkcyjnego i wypisujemy systemy, tożsamości i sekrety, które się na niej znajdują.
Repozytoria, potoki i rejestry przeglądamy pod kątem OWASP Top 10 CI/CD Security Risks i wymagań SLSA.
Z pozycji zewnętrznego współtwórcy, wewnętrznego programisty i przejętej zależności próbujemy dotrzeć do sekretów i zmienić to, co jest budowane. Pracujemy na forkach i projektach testowych wszędzie tam, gdzie to wystarcza do wykazania problemu.
Zmiany porządkujemy według ścieżek ataku, które zamykają. Do każdej dołączamy konfigurację, która ją wprowadza.
03
04
05Standardy
Najbardziej krytyczne ryzyka potoków budowania i dostarczania.
OWASP Foundation
Wymagania dotyczące integralności i pochodzenia artefaktów budowania.
Open Source Security Foundation
Praktyki bezpiecznego wytwarzania oprogramowania, do których przypisujemy znaleziska.
NIST
Ocena istotności i wektor każdego znaleziska.
FIRST
Klasa słabości leżącej u podstaw każdego znaleziska.
The MITRE Corporation
06Pytania
Uruchamiamy nieszkodliwy kod dowodowy, który pokazuje, co byłoby osiągalne, na przykład nazwę sekretu, a nie jego wartość. Potoków produkcyjnych dotykamy tylko tam, gdzie pozwalają na to zasady prowadzenia testów; większość ścieżek wykazujemy w projekcie testowym o tej samej konfiguracji.
Dostawca zabezpiecza platformę. Za to, co na niej umieszczasz, odpowiadasz Ty: uprawnienia, wyzwalacze, sekrety i komponenty zewnętrzne. Właśnie tam udają się ataki na potoki.
Weryfikujemy, czy wykaz komponentów tworzony podczas Twojego procesu budowania jest kompletny i zgodny z artefaktem. Jego generowanie i utrzymanie należy do Twojego procesu budowania; doradzamy, jak to robić.
08Zapytanie
Numer referencyjny
Zachowaj ten numer: podajemy go w całej dalszej korespondencji z Tobą.
W pierwszej odpowiedzi nigdy nie prosimy o płatność, hasła ani zdalny dostęp.