Skanowanie
Ogma zawiera skanery pasywne i aktywne. Skanowanie pasywne analizuje przechwycony ruch. Skanowanie aktywne wysyła zmodyfikowane żądania i weryfikuje ustalenia na podstawie zachowania odpowiedzi, czasu, odzwierciedlenia danych i porównania z wartością bazową.
Skaner pasywny
Skaner pasywny ocenia przechwycone wpisy HTTP bez wysyłania nowego ruchu.
Wykrywa między innymi:
- Ujawnianie błędów SQL, NoSQL, LDAP, szablonów, deserializacji i XML.
- Brakujące lub słabe nagłówki bezpieczeństwa.
- Problemy z flagami ciasteczek.
- Błędną konfigurację CORS.
- Ujawnione sekrety, klucze prywatne, dane kont usług, webhooki i tokeny.
- Ujawnione dane systemu kontroli wersji, konfigurację, dokumentację API lub poufne pliki.
- Problemy dotyczące JWT, takie jak algorytm
none, długi termin ważności i użycie HMAC. - Powolne odpowiedzi i niebezpieczne metody HTTP.
Ustalenia pasywne przydają się do wstępnej oceny, ale nadal wymagają przeglądu. Ustalenia dotyczące nagłówków i polityk często zależą od kontekstu aplikacji.
Uruchamianie analizy pasywnej
- Przechwyć ruch.
- Otwórz Narzędzia pomocnicze > Skaner.
- Wybierz Skaner pasywny.
- Kliknij Skanuj całą historię.
- Przejrzyj utworzone ustalenia w Ustaleniach.
Niestandardowe reguły pasywne konfiguruje się w Ustawienia > Skaner.
Skaner aktywny
Skaner aktywny wstrzykuje ładunki w potencjalne miejsca w żądaniu i weryfikuje odpowiedź celu.
Zaimplementowane rodziny kontroli:
| Kontrola | Sposób potwierdzania |
|---|---|
| Wstrzykiwanie SQL | Szuka błędów SQL lub powtarzalnego opóźnienia powyżej zmierzonej wartości bazowej dla ładunków czasowych. |
| Odbity XSS | Wymaga odzwierciedlenia ładunku w odpowiedzi HTML bez oczekiwanego kodowania. |
| Przechodzenie po katalogach / LFI | Wymaga wskaźników zawartości pliku nieobecnych w odpowiedzi bazowej. |
| Wstrzykiwanie poleceń systemowych | Wymaga wyniku polecenia lub powtarzalnego opóźnienia powyżej zmierzonej wartości bazowej dla ładunków czasowych. |
| SSTI | Używa deterministycznych ładunków z obliczeniami matematycznymi w szablonie i wymaga obliczonego wyniku w odpowiedzi. |
| SSRF | Wymaga dowodów w postaci metadanych lub banera usługi uzyskanych ze wstrzykniętych ładunków URL. |
| Otwarte przekierowanie | Wymaga odpowiedzi przekierowującej do wstrzykniętej domeny zewnętrznej. |
Skaner celowo nie traktuje ogólnej odpowiedzi 200 OK jako dowodu podatności.
Kontrole z implementacją szczątkową
Lista kontroli aktywnych może zawierać kontrole oznaczone jako mające implementację szczątkową. Są widoczne dla przejrzystości planu rozwoju, ale nie tworzą ustaleń. W obecnym backendzie XXE i niebezpieczne przesyłanie plików nie są automatycznie potwierdzane bez weryfikacji poza kanałem głównym lub właściwej dla aplikacji.
Skanuj wszystko aktywnie
Skanuj wszystko aktywnie testuje ostatnio przechwycone żądania, wstrzykując ładunki do:
- Parametrów zapytania.
- Parametrów formularza w treści.
- Wartości JSON.
- Segmentów ścieżki.
- Wybranych nagłówków, gdy ta opcja jest włączona.
Ustaw zakres testów przed skanowaniem aktywnym, aby skupić ruch i wyniki na celu.
Zalecany przebieg pracy:
- Zdefiniuj i aktywuj zakres testów.
- Przechwyć reprezentatywny ruch celu.
- Zacznij od analizy pasywnej.
- Uruchom skanowanie aktywne wybranych żądań przed użyciem opcji Skanuj wszystko aktywnie.
- Przejrzyj żądania dowodowe i dowody z odpowiedzi w Ustaleniach.
- Usuń wyniki fałszywie dodatnie zamiast raportować surowe wyniki skanera.
Jakość dowodów
Ustalenie skanera o wysokiej jakości powinno odpowiadać na pytania:
- Który parametr lub dane wejściowe przetestowano?
- Jakiego ładunku użyto?
- Co zmieniło się w odpowiedzi?
- Czy zachowanie nie występowało w odpowiedzi bazowej?
- Czy problem jest powtarzalny?
- Czy istnieją powiązane dowody w Ogma?
Gdy dowody są niepewne, obniż poziom pewności lub zachowaj wynik jako notatkę do czasu potwierdzenia.