Przejdź do treści
Podłącz konto · 4,99 zł / mies.
poradnik

OWASP ZAP po ludzku: co skanuje i 10 najczęstszych alertów

··4 min czytania
Tomasz ŻyłkaZałożyciel Kasandro, ClassKasa i CzynszOK. Wrocław. Od 2024 roku buduje narzędzia na PSD2 w Polsce. LinkedIn

OWASP ZAP to darmowy skaner open source, który patrzy na stronę tak, jak pierwsze narzędzie napastnika. Przegląda stronę, czyta każdą odpowiedź i zgłasza to, co wygląda źle: brakujący nagłówek bezpieczeństwa, ciasteczko bez flagi, formularz bez tokenu. To objaśnienie narzędzia; co pokazały własne skany baseline Kasandro, opisuje wpis o naszych kontrolach.

OWASP ZAP w jednym akapicie

ZAP (Zed Attack Proxy) strona projektu opisuje jako darmowy i otwarty, „najczęściej używany skaner aplikacji webowych na świecie”. Stoi jako proxy między przeglądarką a stroną albo sam ją przeszukuje i zgłasza alerty, każdy z identyfikatorem i nazwą z publicznego katalogu. Na stronie nosi znak „ZAP by Checkmarx”, a jednocześnie nazywa się niezależnym projektem open source. Uruchomisz go z aplikacji desktopowej, z Dockera albo jako krok w CI.

Skan baseline a skan aktywny

Skan baseline jest lekki. Według dokumentacji domyślnie przez minutę przeszukuje stronę (spider), czeka na koniec skanu pasywnego i raportuje. Nie wykonuje „żadnych prawdziwych ataków”: czyta tylko odpowiedzi, które strona i tak wysyła, więc jest bezpieczny na własnej stronie, trwa kilka minut i mieści się w CI. Domyślnie każdy alert to ostrzeżenie; plik reguł zamienia regułę w IGNORE, INFO lub FAIL.

Skan aktywny wysyła zapytania podobne do ataków (na przykład payloady SQL injection czy odbitego XSS). Może zmieniać dane, więc należy do kopii testowej i tylko do systemu, który wolno testować.

10 alertów, które widać najczęściej

To dziesięć alertów, które zwykłe strony dostają w skanie baseline najczęściej. ID i nazwy pochodzą z katalogu ZAP.

  1. Content Security Policy (CSP) Header Not Set (10038). Strona nie mówi przeglądarce, jakie skrypty i obrazy wolno ładować, więc wstrzyknięty skrypt ma łatwiej. Poprawka: nagłówek Content-Security-Policy z realnymi źródłami.
  2. Missing Anti-clickjacking Header (10020). Obca strona może osadzić Twoją w ukrytej ramce i podsunąć kliknięcie. Poprawka: frame-ancestors w CSP lub X-Frame-Options.
  3. X-Content-Type-Options Header Missing (10021). Przeglądarka może zgadywać typ pliku i uruchomić coś, co miało być tekstem. Poprawka: X-Content-Type-Options: nosniff.
  4. Strict-Transport-Security Header Not Set (10035). Pierwsza wizyta po zwykłym HTTP może zostać przechwycona. Poprawka: Strict-Transport-Security w odpowiedziach HTTPS.
  5. Cookie No HttpOnly Flag (10010). Skrypt na stronie może odczytać ciasteczko. Poprawka: HttpOnly na ciasteczkach sesji.
  6. Cookie without SameSite Attribute (10054). Ciasteczko jedzie przy zapytaniach z innych stron. Poprawka: SameSite ustawione na Lax lub Strict, gdzie przepływ na to pozwala.
  7. Server Leaks Version Information via "Server" HTTP Response Header Field (10036). Dokładna wersja oprogramowania pomaga wybrać znany exploit. Poprawka: nie wysyłać wersji.
  8. Cross-Domain Misconfiguration (10098). Strona pozwala innym originom czytać odpowiedzi szerzej, niż trzeba. Poprawka: wymienić zaufane originy zamiast gwiazdki.
  9. Absence of Anti-CSRF Tokens (10202). Inna strona może wysłać formularz w imieniu zalogowanego użytkownika. Poprawka: token na formularz albo ścisła polityka ciasteczek i sprawdzanie originu.
  10. Vulnerable JS Library (10003). Wbudowana biblioteka ma znaną podatność. Poprawka: aktualizacja; audyt zależności w CI wyłapie to wcześniej.

Dwa kolejne spotkasz w skanie aktywnym: SQL Injection (40018) i Cross Site Scripting (Reflected) (40012).

Czego czysty skan nie dowodzi

Skan baseline czyta odpowiedzi: nie loguje się, nie rozumie logiki pieniędzy i nie szuka złamanej reguły dostępu między dwoma użytkownikami. Czysty wynik znaczy „żadnego znanego błędu nagłówka czy ciasteczka na stronach, do których dotarł spider”. To podłoga, nie certyfikat, i nie zastępuje przeglądu kodu ani testu penetracyjnego wykonanego przez człowieka.

Jak to wygląda w grupie veinito

ClassKasa, siostrzany produkt z grupy veinito, ma w potoku CI zadanie ze skanem OWASP ZAP baseline, a od 13 października 2026 Kasandro uruchamia ten sam skan baseline przy każdej zmianie kodu: nowe znaleziska zatrzymują build. Pierwsze uruchomienie, 63 sprawdzenia zaliczone i 0 niezaliczonych, opisuje nasz wpis o kontrolach.

FAQ

Czy OWASP ZAP jest darmowy?

Tak. Strona projektu opisuje go jako darmowy i otwarty.

Czy skan baseline ZAP jest bezpieczny na własnej stronie?

Dokumentacja mówi, że nie wykonuje ataków: przeszukuje stronę i analizuje odpowiedzi pasywnie. Uruchamiaj go na systemach, które są Twoje albo które wolno testować.

Czy czysty skan ZAP znaczy, że strona jest bezpieczna?

Nie. Znaczy, że ZAP nie znalazł znanych błędów nagłówków, ciasteczek ani bibliotek na stronach, do których dotarł. Błędy logiki i dostępu wymagają przeglądu przez człowieka.

Czy Kasandro było skanowane ZAP?

Tak: skan baseline działa przy każdej zmianie kodu od 13 października 2026, a nowe znaleziska zatrzymują build. Pierwsze uruchomienie opisuje nasz wpis o kontrolach.

Źródła

Czytaj dalej

Kasandro to narzędzie do wglądu w Twoje finanse, nie doradztwo inwestycyjne ani finansowe. Liczby Marka, Ani i Tomka są danymi przykładowymi.

RSS · Ten wpis po polsku · Blog in English

Pytanie, na które ten wpis nie odpowiada? Napisz: support@kasandro.com.