OWASP ZAP: Opis narzędzia, główne funkcjonalności i przydatne źródła wiedzy
Pentesterzy wspierają się różnymi narzędziami podczas audytu, aby oszczędzić czas i znaleźć możliwie największą liczbę błędów bezpieczeństwa. Niektórych czynności nie da się wykonać manualnie w racjonalnym czasie. Przykładem jest wykrywanie wszystkich podstron witryny. Istnieją płatne i darmowe narzędzia, które pozwalają na takie działania. Tworzone i aktywnie rozwijane są także skanery podatności, zawierające rozwiązania, które wspierają pentesting.
Co to są skanery podatności?
Skanery podatności to narzędzia, które automatyzują proces wykrywania błędów bezpieczeństwa. Dzielą się one na skanery statyczne - SAST, dynamiczne - DAST i interaktywne - IAST. Działają wykorzystując znane i popularne wzorce, które mogą wywoływać błędy, takie jak Cross-site scripting, SQL Injection, Command Injection, Path Traversal i inne. Istnieje wiele skanerów, zarówno tych płatnych jak i darmowych, a każdy z nich ma swoje mocne i słabe strony. Możesz skorzystać z różnych rozwiązań, pozwalających na benchmark narzędzi - najpopularniejsze z nich to OWASP Benchmark i WAVSEP. Wyniki podanych benchmarków mogą powiedzieć dużo o użyteczności konkretnego narzędzia. Przy wyborze skanera zalecam zapoznanie się z wynikami takich porównań, przeanalizowanie plusów i minusów wybranych rozwiązań oraz dokonanie świadomego wyboru.
Teraz przejdę do przybliżenia Ci sposobu działania skanerów na podstawie jednego z nich. Będzie to OWASP ZAP - narzędzie typu Dynamic Application Security Testing (DAST).
Co to jest OWASP ZAP?
ZAP (ang. Zed Attack Proxy) jest darmowym, open source’owym i wielofunkcyjnym narzędziem do testowania bezpieczeństwa aplikacji webowych. Cechuje się prostotą w instalacji i obsłudze, co czyni je jednym z lepszych wyborów dla osób, które dopiero zaczynają korzystać z tego typu programów. OWASP ZAP jest dostępny zarówno na Windows jak i Linux oraz Mac OS.
Najważniejsze funkcje skanera ZAP
ZAP jest “man-in-the-middle proxy”. Oznacza to, że działa za przeglądarką, ale przed audytowaną aplikacją. Wszystkie informacje wymieniane między przeglądarką a aplikacją, przechodzą więc najpierw przez ZAP.
Źródło: Zaproxy.org
Spójrzmy teraz na kilka wybranych funkcji tego narzędzia.
Active Scan
Aktywne skanowanie szuka potencjalnych podatności, używając znanych ataków. Warto zaznaczyć, że Active Scan pozwala na znalezienie jedynie niektórych podatności. Błędy w logice aplikacji nie mogą zostać znalezione przez żadne aktywne lub automatyczne skanowanie podatności. Jest to możliwe jedynie podczas audytu manualnego.
Passive Scan
ZAP domyślnie skanuje wszystkie żądania i odpowiedzi HTTP wysyłane i odbierane z aplikacji. Skanowanie pasywne nie wpływa na ich zawartość. W tym wypadku możemy dodatkowo dorzucić tagi lub alerty, które poinformują nas o potencjalnych błędach. Jest to domyślnie włączone, ale - jak przy większości funkcjonalności - istnieje możliwość konfiguracji.
Spider
Spider jest crawlerem, czyli narzędziem pozwalającym na odkrywanie i mapowanie wszystkich linków dostępnych w aplikacji. Lista odkrytych linków jest później zapisywana i może zostać użyta do odkrycia dodatkowych informacji o audytowanej aplikacji lub do dalszego pasywnego lub aktywnego skanu.
Fuzzer
To technika, która polega na wysyłaniu wielu niepoprawnych lub nieoczekiwanych danych do testowanej aplikacji. OWASP ZAP pozwala na fuzzowanie. Możemy wybrać jeden z wbudowanych payloadów, pobrać te udostępnione przez społeczność ZAP i dostępne w dodatkach lub stworzyć własne.
Add-ons
ZAP posiada dodatki, które zwiększają jego możliwości. Dodatki mają pełen dostęp do wszystkich funkcji głównego programu i mogą dostarczyć naprawdę ciekawej funkcjonalności. Lista dodatków jest dostępna na Add-on Marketplace w okienku zarządzania dodatkami.
API
ZAP wystawia API pozwalające na interakcję z nim za pomocą innych programów. Przyjmuje on zarówno format JSON, jak i HTML oraz XML. ZAP wystawia prostą stronę, na której widzimy funkcjonalności API. Domyślnie jedynie maszyna, na której działa ZAP może łączyć się z API, ale można umożliwić kontakt innym maszynom w opcjach konfiguracji.
Authentication
Jeśli atakowana aplikacja wymaga uwierzytelnienia, można je skonfigurować. ZAP wspiera różne rodzaje metod weryfikacji. Na liście tych sposobów są: manualna autoryzacja, autoryzacja na podstawie formularza, autentykacja na podstawie formatu JSON, HTTP/NTLM oraz autoryzacja przy użyciu skryptów.
Głębsza analiza - źródła wiedzy o OWASP ZAP
Jeśli chcesz dowiedzieć się wszystkiego o obsłudze ZAP, przygotowałem listę źródeł, które pomogą Ci zrozumieć i opanować każdy aspekt tego narzędzia oraz pozwolą na wejście w szeroką społeczność skupioną wokół niego.
Społeczność
- User Group - Pytania związane z użytkowaniem skanera.
- Developer Group - Pytania związane z rozwojem programu.
- HUD Group - Pytania na temat ZAP Heads Up Display.
- IRC - Tutaj znajdziesz kontakt do developerów ZAP na kanale #zaproxy.
- Evangelists - Lista ludzi znających narzędzie ZAP, którzy chętnie o nim porozmawiają.
Rozwiązywanie problemów
- Issues - Jeśli znajdziesz jakiś problem tutaj możesz to zgłosić.
- Bug Bounty Program - W tym miejscu możesz zgłosić podatności.
Wkład własny
- Contributing Guide - Poradnik opisujący, jak możesz pomóc rozwijać projekt.
- Source Code - Kod źródłowy ZAP.
- Crowdin (GUI) - Pomoc w translacji GUI.
- Crowdin (Desktop User Guide) - Pomoc w translacji ZAP Desktop User Guide.
Materiały instruktażowe
Na stronie Zaproxy.org znajdziesz dużo edukacjynych materiałów. Polecam szczególnie te miejsca:
- The ZAP Blog - Newsy ze świata bezpieczeństwa oraz samego programu i tematy związane z jego społecznością.
- Zap Deep Dive - Seria filmów opisujących różne funkcje programu.
- ZAPCon 2021 - Filmy z konferencji ZAPCon z wykładami specjalistów zarówno o narzędziu jak i bardziej ogólnie o bezpieczeństwie.
- ZAP in Ten - Seria krótkich filmów o ZAP.
- ADDO Authentication Workshop - Kolejny zbiór materiałów o ZAP, skupiony na aspektach związanych z automatyzacją i autoryzacją.
- All in One - Indeks zawierający wszystkie oficjalne materiały na temat ZAP.
Narzędzie OWASP ZAP - podsumowanie
Testowanie bezpieczeństwa aplikacji, wspierane przez narzędzia automatyzujące ten proces, jest sposobem, który pozwala na wykrycie największej liczby błędów na audytowanej witrynie. Niektóre kroki są po prostu zbyt czasochłonne, aby wykonywać je manualnie. Społeczność pentesterów stworzyła darmowe narzędzia, które oszczędzają czas. Warto z nich korzystać. Co więcej, czas poświęcony na naukę programu to dobra inwestycja, która następnie pozwala na dołączenie do społeczności osób interesujących się bezpieczeństwem aplikacji. ZAP to jeden z najbardziej popularnych programów omawianego typu. Dodatkowo jest darmowy i open source’owy, więc każdy może przyczynić się do jego rozwoju.
Korzystam z tego narzędzia, między innymi, sprawdzając bezpieczeństwo aplikacji w Drupalu. Jeśli potrzebujesz pomocy przy przeprowadzaniu audytu tego systemu, zapoznaj się z naszym zespołem wsparcia Drupala.