Poradnik

ZAP: darmowy skaner bezpieczeństwa i 10 typowych sprawdzeń

· 3 min czytania

ZAP (Zed Attack Proxy, często nazywany OWASP ZAP) to darmowy program open source, który sprawdza strony internetowe pod kątem typowych błędów w zabezpieczeniach. Na stronie projektu nazywa się go najczęściej używanym na świecie skanerem aplikacji webowych. Ten tekst wyjaśnia, czym ZAP jest i co sprawdza. CzynszOK uruchamia skan baseline ZAP przy każdej zmianie kodu, na swoich stronach publicznych; co jeszcze robimy przy każdej zmianie, opisuje wpis o naszych kontrolach.

Czym jest ZAP

ZAP działa jak pośrednik między przeglądarką a stroną: widzi każde zapytanie i odpowiedź, więc może je przeczytać (to tryb pasywny) albo zmodyfikować i wysłać na próbę (to tryb aktywny). Jest wolnym oprogramowaniem, a projekt opisuje się jako niezależny projekt open source z własnym zespołem. Używają go programiści i zespoły bezpieczeństwa, także w automatycznych procesach, które uruchamiają się przy każdej zmianie kodu.

Skan baseline i skan aktywny

Skan baseline jest krótki i pasywny. Domyślnie przez minutę przegląda stronę, czeka na koniec analizy odpowiedzi i zgłasza wynik. Według dokumentacji ZAP nie wykonuje wtedy żadnych prawdziwych ataków, więc nadaje się do automatycznych procesów, także na stronach produkcyjnych. Widzi tylko to, co pokazują odpowiedzi serwera: brakujące nagłówki, flagi ciasteczek, komunikaty błędów.

Skan aktywny robi coś innego: wysyła spreparowane zapytania, żeby sprawdzić, czy da się stronę oszukać. Dlatego puszcza się go na własnym środowisku testowym, nie na cudzej stronie i nie bez zgody właściciela.

10 typowych sprawdzeń

Poniżej dziesięć sprawdzeń z listy alertów ZAP, z numerami z tej listy. Wszystkie są pasywne, czyli wynikają z samych odpowiedzi serwera.

  1. Brak nagłówka Content-Security-Policy (10038). Ten nagłówek mówi przeglądarce, skąd strona może ładować skrypty, więc utrudnia wstrzyknięcie cudzego kodu.
  2. Brak ochrony przed osadzeniem w ramce (10020). Bez niej ktoś może wstawić Twoją stronę w niewidoczną ramkę i nakłonić do kliknięcia (clickjacking).
  3. Brak X-Content-Type-Options (10021). Przeglądarka może wtedy zgadywać typ pliku i potraktować dane jak skrypt.
  4. Brak Strict-Transport-Security (10035). Ten nagłówek wymusza połączenie szyfrowane, także gdy ktoś wpisze adres bez https.
  5. Ciasteczko bez flagi HttpOnly (10010). Takie ciasteczko może odczytać skrypt na stronie, więc kradzież sesji jest łatwiejsza.
  6. Ciasteczko bez flagi Secure (10011). Może wtedy wędrować po niezaszyfrowanym połączeniu.
  7. Ciasteczko bez atrybutu SameSite (10054). Przeglądarka dołącza je do zapytań z cudzych stron, co pomaga w atakach typu CSRF.
  8. Brak tokenów anty-CSRF w formularzach (10202). Formularz bez nich można podrobić z innej strony.
  9. Serwer zdradza wersję oprogramowania w nagłówku Server (10036). To podpowiedź dla kogoś, kto szuka znanych luk w konkretnej wersji.
  10. Podatna biblioteka JavaScript (10003). Strona ładuje starą wersję biblioteki ze znaną luką.

Raport ZAP bywa długi, ale warto czytać go z głową: alert to podpowiedź, nie wyrok. Część alertów nie dotyczy danej strony, a część jest świadomą decyzją. Ocenia to człowiek.

Co to znaczy dla Ciebie

Jeśli łączysz bank przez aplikację, ZAP jest jednym z narzędzi, którymi można sprawdzić, czy jej strona nie ma podstawowych błędów. Nie zastępuje przeglądu kodu ani testu penetracyjnego. Na stronie Bezpieczeństwo opisujemy wyłącznie to, co dziś potrafimy udowodnić, a CzynszOK uruchamia skan baseline ZAP na swoich stronach publicznych, bez ekranów po zalogowaniu. O tym, co dzieje się z danymi z banku, przeczytasz w Polityce prywatności.

Najczęstsze pytania

Czy ZAP jest darmowy?

Tak. Strona projektu opisuje go jako darmowe oprogramowanie open source.

Czy skan ZAP może zaszkodzić stronie?

Skan baseline jest pasywny i według dokumentacji nie wykonuje ataków. Skan aktywny wysyła prawdziwe, szkodliwe z założenia zapytania, więc uruchamia się go tylko na środowisku, do którego masz prawo i na którym awaria nie boli.

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

Nie. Czysty raport znaczy tylko, że ZAP nie znalazł niczego w tym, co sprawdza. Błędy w logice aplikacji, na przykład to, że jeden użytkownik może zajrzeć w dane drugiego, wymagają przeglądu kodu i testów, których skaner baseline nie wykona.

Czy mogę przeskanować cudzą stronę?

Nie bez zgody właściciela. Skanowanie cudzej strony bez zgody to najkrótsza droga do kłopotów. Jeśli znajdziesz lukę przypadkiem, zgłoś ją właścicielowi.

Czynsz OK? Sprawdź w kilka minut.

Łączysz bank, wpisujesz czynsz z ogłoszenia, dostajesz certyfikat z kodem QR. Bez PDF-ów i bez analityka.

Sprawdź swój czynsz