SAST vs DAST vs IAST: test bezpieczeństwa dla komplementarności trzech braci, nie zastępowania
Trzy najczęstsze skróty w testach bezpieczeństwa aplikacji to SAST, DAST, IAST. Pierwsza reakcja wielu ludzi polegała na "wybraniu jednego z najsilniejszych", ale była to hipotetyczna propozycja - trzej bracia nie rywalizowali, ale patrzyli na tę samą kwestię z różnych perspektyw. Wybór nie zależy od tego, kto jest bardziej zaawansowany, ale na etapie jesteś w cyklu życia oprogramowania, jaki rodzaj luki chcesz znaleźć i jak wiele można znieść.
I. DEFINICJE DOTYCZĄCE PIERWSZEGO ODNIESIENIA
- SAST (statyczny test bezpieczeństwa aplikacji)Inny organizatorNie uruchamiaj programu, pod którym skanujący kod źródłowy / kod bajtów znajduje lukę, która należy do White Box.
- DASTInny organizatorProgram uruchomionyZewnętrzne prośby o uruchomienie, symulowane ataki są "czarne skrzynki" i nie jest wymagany kod źródłowy.
- IAST (Interaktywny test bezpieczeństwa aplikacji)Inny organizatorUruchom program od wewnątrzWtyczka (agent), połączona z kontekstem przepływu i kodu, należy do Szarej Skrzynki.
Kluczem do zrozumienia tej trójki jest to, że każdy z nich odpowiada na różne pytania: SAST pyta: "Gdzie może być błąd w kodzie?" DAST pyta: "Czy uda nam się przetrwać podczas biegania?" IAST pyta: "W tej operacji, który strumień danych naprawdę płynie do punktu zagrożenia".
SAST: Uduszenie problemu na etapie pisania kodów
SAST bezpośrednio analizuje kod źródłowy (lub kompiluje produkty pośrednie) i nie wykonuje programu. Zaletą jest możliwość wykrywania problemów na wczesnym etapie, a nawet po złożeniu kodu, aby zlokalizować konkretne dokumenty i numery linii, przy niskich kosztach naprawy. Obejmuje on "kody można zmieść" i nie zależy od środowiska czasu pracy.
Shortboard: Wskaźnik błędu jest zazwyczaj wysoki, ponieważ nie określa, czy pewna liczba kodów zostanie uruchomiona w rzeczywistym biznesie; problemy, które są narażone tylko podczas pracy (np. błędy konfiguracji, obejścia gwarancji, rzeczywisty łańcuch połączeń polegający na bibliotece) nie są w pełni widoczne; potrzebny jest kod źródłowy, a trzeci komponent źródła zamkniętego nie działa.
Scenariusz typowy: Drzwi do składania kodu strumieniowego CI są zamknięte, aby zapobiec widocznemu wtrysku, klucz kodowania twardego, wywołania funkcji zagrożenia do kręgosłupa.
DAST: Sprawdzanie "Czy to naprawdę działa?"
DAST używa celu jako czarnej skrzynki do wysyłania wniosków z zewnątrz, konstruowania ładunków atakowych i obserwacji reakcji. Jej największą wartością jest...Blisko prawdziwego ataku.- Problem "rzeczywistego dostępu do biegania" został znaleziony, przy stosunkowo niskim poziomie sprawozdawczości. Nie jest wymagany kod źródłowy, więc składniki trzecie, warstwy konfiguracyjne mogą być również objęte.
ShortboardCzęsto tylko do czasu wdrożenia, że wykrycie późnego wykrywania i kosztów naprawy jest wysokie; zasięg jest ograniczony do gadów i tras testowych, które mogą być osiągnięte przez przykład, bez wykrywania niewykrywalnych punktów funkcjonalnych; trudno jest precyzyjnie zlokalizować kod źródłowy, a rozwój i raportowanie jest często znane tylko "który URL jest problematyczny"; a koszty konfiguracji są wysokie dla scenariuszy wymagających logowania, wieloetapowe procesy biznesowe.
Typowy scenariusz: przekaz bezpieczeństwa przed uruchomieniem online, okresowe skanowanie środowiska wdrożonego.
IV. IAST: Wtyczki czasu pracy, kontekst bilansowania z rzeczywistymi przepływami danych
IAST obserwuje również wykonanie kodu i przepływ zewnętrzny podczas uruchamiania programu poprzez wszczepienie antentu w aplikacji. Może zobaczyć, jak pojawiają się prośby i jak dane płyną do kodu, więc można je podać.Weź pełne dowody z gospody.Zazwyczaj jest niższy niż SAST i jest dokładny.
ShortboardKonieczność umieszczania sond w środowisku docelowym (ze względu na obawy związane ze środowiskiem produkcyjnym); uzależnienie od zakresu badań, których nie można znaleźć bez wdrożenia kodu, które często wiąże się z funkcjonalnymi / zautomatyzowanymi badaniami; różnice w pomocy językowej i ramowej; oraz pewne koszty wykonania.
Typowy scenariusz: uruchomić w środowisku testowym w połączeniu z automatycznymi badaniami, zarówno w celu potwierdzenia funkcjonalności, jak i synchronizacji wniosków dotyczących bezpieczeństwa wyjścia.
Pięć, trzy przeciwko jednemu.
| Wymiary | SAST | DAST | AST |
|---|---|---|---|
| Obiekt testowy | Źródło / bajty (nieuruchomione) | Aktywny cel (zewnętrzny) | Zastosowanie operacyjne (wtyczki wewnętrzne) |
| Perspektywy | Białe pudełko | Czarna skrzynka | Szara skrzynka |
| Czas interwencji | Najwcześniejsza faza kodowania / składania | Po rozmieszczeniu | Czas trwania badania |
| Potrzebny kod źródłowy | Tak. | Nie ma potrzeby. | Wymóg (można podłączyć) |
| Poziom nieprawidłowy | Wysoki | Niski | Niższe |
| Precyzja położenia | Do pliku / linii | Do URL / Interfejs | Aby zadzwonić do Inn / strumień danych |
| Nadpisać zależność | Limited (zob. część kodu źródłowego) | Przekroczyć narażenie podczas jazdy | Ograniczona ścieżką wykonania |
| Typowa scena | CI Zakaz kodowania drzwi | Sprawdź i zaakceptuj przed uruchomieniem. | W połączeniu z automatycznymi badaniami |
VI. Dlaczego komplementarność zamiast substytucji
Jeśli połączymy te trzy, ich strefy niewidome będą się uzupełniać:
- SAST widzi kod, ale nie wie, czy zostanie uruchomiony; DAST wie, czy może być uruchomiony, ale nie wie, w której linii problem jest; IAST zarówno, ale wymaga, aby kod był wykonywany.
- SAST obejmuje wczesne, szerokie i głośne; DAST ma niewielki hałas, ale późne interwencje, wąski zasięg; a IAST ma wysoką dokładność, ale może podłączyć i działa wystarczająco dobrze.
- Po prostu przejdź do SAST, który jest podatny na "kilka biurokracji" zmęczenie; przejdź do DAST, gdzie luka jest często narażone na linii; przejdź do IAST, gdzie ścieżka, do której nie jest osiągnięta jest niewidoma.
Odpowiedzią na rzeczywistość nie jest jedno czy dwa, lecz podejście stopniowe: wczesne użycie SAST do zagłuszania wyraźnego wzorca złego smaku i niebezpieczeństwa, faza testowa IAST ma być dokładnie zwalidowana z IAST w połączeniu z automatyzacją, a także stosowanie DAST do zewnętrznej akceptacji z perspektywy agresora. Trzy przesądy stanowią test bezpieczeństwa aplikacji zamknięty pętla bez znaczących luk.
VII. KWESTIE PRAKTYCZNE DOTYCZĄCE WYŁADUNKU
1. Błędne raportowanie, kto się tym zajmuje
Tak czy inaczej, nikt nie naprawia raportu, nikt go nie naprawia. Istnieje wyraźny proces selekcji: kto widzi, jak długo zamknąć, jak oznaczyć "akceptujące ryzyko". W szczególności SAST potrzebuje zarządzania podstawowego, w przeciwnym razie dziedzictwo historii zatopi nowe problemy.
Pokrycie jest ważniejsze niż marki narzędzi
Zdolność IAST do odkrycia zależy bezpośrednio od liczby kodów objętych badaniem; DAST zależy od liczby interfejsów osiąganych przez gady. Znaczniejsze jest, aby zmierzyć "szybkość wykrywania" przed uruchomieniem online niż zastąpić droższe narzędzie.
3. Nie należy traktować testów bezpieczeństwa jako testów jednorazowych Weź to.
Testy bezpieczeństwa powinny być wbudowane w ciągły proces badawczo-rozwojowy, a nie scentralizowane przed uruchomieniem internetu. CI prowadzi SAST, testuje środowisko IAST, regularnie robi DAST do produkcji, więc nie musi polegać na ludzkim ciele, aby uratować ogień.
4. Skoncentrowanie się na synergii między narzędziami
Idealny stan jest to, że trzy rodzaje wyników mogą być pogrupowane w tym samym widoku: ta sama luka, SAST daje położenie kodu, IAST daje dane strumień dowodów, i DAST potwierdza dostępność. Jest wart więcej niż trzy rozdarte wojny wyspy.
VIII. Wykaz decyzji
- Tak.Etap składania wnioskówWstrzymaj oczywistą lukę w SAST, skup się na zamknięciu drzwi i linii podstawowych.
- Do weryfikacjiCzy system naprawdę jest zdolny do ataku? • W górę z DAST, koncentrując się na zasięgu i konfiguracji logowania.
- Aby wyciągnąć wnioski z bezpieczeństwa.Wyjście z automatycznym testowaniemI zlokalizuj dokładnie na AST.
- Ograniczone zasoby mogą być wykorzystywane jedynie jako pierwszy priorytet dla SAST w celu ustanowienia dolnej linii, a następnie stopniowo w celu zakończenia prac MAEA / DAST.
- Poszukiwanie "jednego-size- fits- all, permanentne rozwiązanie" nie istnieje, ale sposób organizowania i przetwarzania jest odpowiedzią.
SAST jest możliwe, DAST jest praktyczny, IAST jest specyficzny - połączenie jest kompletny obraz.