In English

ShieldWave-Scanner

ShieldWave-Scanner to user agent ShieldWave, usługi, która sprawdza bezpieczeństwo strony z zewnątrz, tak jak widzi ją każdy odwiedzający, i opisuje wynik jej właścicielowi. Sprawdzenie uruchamia właściciel strony albo osoba, która ma jego zgodę. Testy z danymi testowymi działają tylko dla domeny, nad którą właściciel potwierdził kontrolę; każde inne sprawdzenie tylko czyta.

Kto prowadzi skaner, jak wyłączyć swoją domenę i jak zgłosić nadużycie: Skaner ShieldWave i wyłączenie domeny. Ta strona opisuje, co skaner wysyła.

User agent
ShieldWave-Scanner/1.0 (+https://shieldwave.io/bot)
Tempo
Najwyżej 5 zapytań na sekundę w darmowym teście i 15 w pełnym skanie. Zwalnia, gdy tylko Twój serwer odpowie kodem 429 lub 503 albo zacznie odpowiadać wolno. Jak działa skan produkcji.
Co robi
Czyta strony. Na potwierdzonej domenie uruchamia też testy z danymi testowymi, które tylko czytają. Niczego na Twojej stronie nie zmienia.
Jak go zablokować
Wpisz go do robots.txt, User-agent: ShieldWave-Scanner i Disallow: /, albo wyłącz swoją domenę. Szczegóły niżej.
Kontakt
support@shieldwave.io

Jak go rozpoznać

Każde zapytanie skanera ma user agent ShieldWave-Scanner/1.0 (+https://shieldwave.io/bot). Wyszukaj w logu dostępu ShieldWave-Scanner, a znajdziesz jego zapytania. Jedno wczytanie strony w przeglądarce bez okna opisuje punkt Wczytanie strony w przeglądarce, a dwa dodatkowe zapytania o stronę główną punkt Sprawdzenie spamu dla wyszukiwarek.

Wczytanie strony w przeglądarce

Pełny skan wczytuje też raz Twoją stronę główną w przeglądarce bez okna (headless). To wczytanie ma user agent Chrome z dopisanym ShieldWave-Scanner/1.0 (+https://shieldwave.io/bot), więc je także rozpoznasz. Darmowy test i inne sprawdzenia, które tylko czytają, nie używają przeglądarki.

Sprawdzenie spamu dla wyszukiwarek

Pełny skan prosi też o Twoją stronę główną jeszcze dwa razy, żeby zobaczyć, czy wyszukiwarkom pokazywana jest inna treść niż odwiedzającym (ukryty spam, cloaking). Jedno zapytanie ma nagłówek Referer: https://www.google.com/ i user agent Chrome z dopisanym na końcu ShieldWave-Scanner, tak jakby odwiedzający przyszedł z wyszukiwarki Google. Drugie ma user agent Googlebota z dopisanym na końcu ShieldWave-Scanner: Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) ShieldWave-Scanner/1.0 (+https://shieldwave.io/bot).

Zapytanie z user agentem Googlebota nie pochodzi od Google. Pokazuje, co zhakowana strona serwuje robotowi. Odróżnisz je od robota Google na dwa sposoby: jego user agent kończy się na ShieldWave-Scanner/1.0, czego robot Google nigdy nie wysyła, a odwrotne zapytanie DNS o jego adres nie kończy się na googlebot.com ani google.com. Poza stroną główną sprawdzenie o nic nie prosi. Przekierowania w obrębie Twojej domeny są śledzone najwyżej trzy razy, a przekierowanie na inną stronę jest odnotowywane, nie śledzone. Jeśli zapora odrzuci user agent Googlebota z adresu, który nie należy do Google, raport napisze, że porównanie się nie odbyło. Nie uzna tego za problem.

Gdy Twoja strona odrzuca skaner

Skaner nigdy nie ponawia zapytania z innym user agentem. W darmowym teście i w każdym innym sprawdzeniu, które tylko czyta, sprawdzenie się kończy, gdy strona odmówi wydania strony głównej. W pełnym skanie moduł, którego zapytanie o stronę główną dostanie HTTP 403 lub 406 albo wyzwanie zapory, jest zgłaszany jako „nie oceniono”, a raport podaje user agent, który trzeba dopuścić w zaporze. Kod 429 to sygnał tempa: skan zwalnia.

Dlatego reguła zapory na user agent zatrzymuje sprawdzenia. robots.txt i wyłączenie domeny też je zatrzymują i mówią nam wprost, że nie chcesz sprawdzeń, zobacz Jak go spowolnić albo zablokować.

Skąd przychodzą zapytania

Skaner działa w Google Cloud Run, w regionie europe-west1 (Belgia), i łączy się ze wspólnych pul adresów wychodzących Google Cloud. Te adresy się zmieniają i nie ma stałej listy adresów IP ShieldWave. Rozpoznawaj ShieldWave po user agencie.

Jak szybko działa

Każde sprawdzenie działa w jednym profilu. Profil ustala, ile najwyżej zapytań na sekundę sprawdzenie wysyła do Twojej domeny, oraz limit czasu samego sprawdzenia.

ProfilDo czego służyZapytań na sekundę, najwyżejLimit czasuDane testowe
basicDarmowy test na shieldwave.io i każde sprawdzenie domeny, nad którą nie potwierdzono kontroli590 sekundNie
standardPełny skan potwierdzonej domeny: plany płatne i jednorazowy skan153 minutyTak
quickTylko API, z "profile": "quick", na potwierdzonej domenie1060 sekundNie
deepTylko API, z "profile": "deep", na potwierdzonej domenie37,5 minutyTak
stealthTylko API, z "profile": "stealth": wolne sprawdzenie dla stron ze ścisłym limitem tempa zapytań14 minutyNie

Limit czasu liczy czas, w którym sprawdzenie pracuje. Czas, w którym sprawdzenie jest zatrzymane, żeby chronić Twój serwer (patrz Tempo), nie wlicza się do limitu, więc czas od startu do końca może być dłuższy niż limit. Jeśli Twój serwer odpowiada wolno już przed sprawdzeniem (jego bazowy czas odpowiedzi p95 jest powyżej 1,5 sekundy), limit rośnie proporcjonalnie: do dwukrotności limitu, gdy bazowy p95 wynosi 3 sekundy, i nigdy ponad czterokrotność limitu. Dotyczy to pełnych skanów. Darmowy test i każde sprawdzenie domeny, nad którą nie potwierdzono kontroli, nie zatrzymują się i nie dostają dodatkowego czasu.

Profil deep zawsze sprawdza subdomeny i otwarte porty. Skan standard sprawdza subdomeny na większości platform, a otwarte porty tylko na stronach opisanych niżej. Profile standard i deep uruchamiają również testy z szablonów.

Tempo

Wszystkie zapytania jednego sprawdzenia do Twojej domeny i jej subdomen przechodzą przez jeden regulator tempa, utworzony dla tego sprawdzenia, więc równoległe sprawdzenia nigdy nie sumują się ponad limit. Zaczyna od tempa profilu i nigdy go nie przekracza. Gdy serwer daje znać, że ma dość, sprawdzenie zwalnia:

Pojedyncze 403 nie spowalnia sprawdzenia: zapora, która odprawia jedno zapytanie, nic nie mówi o obciążeniu serwera. Po zdrowych odpowiedziach tempo powoli wraca w górę, ale nigdy ponad tempo profilu. Gdy części sprawdzenia skończy się czas, jej pozostałe zapytania przepadają, a nie idą później. To, co sprawdzenie zmierzyło (wysłane zapytania, najwyższe tempo, czy zwolniło, zatrzymało się albo przerwało), pokazuje raport. Pełny opis: Jak ShieldWave skanuje strony produkcyjne.

Testy z szablonów

Profile standard i deep uruchamiają też testy z szablonów (Nuclei), w tym samym limicie. Gdy działają, zajmują 6 z 15 zapytań na sekundę w profilu standard i 1 z 3 w profilu deep, a tempo reszty skanu spada o tyle samo. Wysyłają user agent ShieldWave. Nie potrafią przestrzegać reguł dla ścieżek, więc skaner je pomija, gdy Twój robots.txt ma jakąkolwiek regułę Disallow dla ShieldWave.

Co wysyła

Większość zapytań to zapytania GET.

Sprawdzenie, które tylko czyta (profil basic), czyta stronę główną, jej skrypty, nagłówki bezpieczeństwa, certyfikat i ciasteczka oraz pyta o krótką, stałą listę adresów zapomnianych plików. Nie wysyła danych testowych.

Pełny skan potwierdzonej domeny zawiera też testy typowych podatności na wstrzyknięcia (SQL injection, cross-site scripting, path traversal, server-side request forgery, open redirect, XML external entities). Te testy tylko czytają: żaden nie zapisuje, nie zmienia ani nie usuwa danych, żaden nie wysyła formularzy kontaktowych ani formularzy zamówienia i żaden nie prosi serwera o duże ilości pamięci. Skaner nigdy nie wysyła PUT ani DELETE.

Niektóre testy pełnego skanu wysyłają też OPTIONS, TRACE albo małe zapytanie POST, które tylko czyta, na przykład żeby sprawdzić, jakie metody HTTP dopuszcza serwer albo czy odpowiada punkt końcowy API.

Na stronach na WordPressie pełny skan sprawdza też, czy strona logowania zdradza, jakie nazwy użytkowników istnieją. Wtyczki bezpieczeństwa mogą to zapisać jako nieudane próby logowania.

W profilu deep, a w profilu standard także dla stron statycznych albo na platformie, której skaner nie rozpoznaje, próbuje też połączenia TCP z 24 typowymi portami, w tym samym tempie co inne zapytania.

Czego nigdy nie robi

Jak go spowolnić albo zablokować

ShieldWave pobiera Twój robots.txt raz, zanim ruszy jakiekolwiek sprawdzenie, i stosuje grupę napisaną dla niego: User-agent: ShieldWave-Scanner albo User-agent: shieldwave, bez względu na wielkość liter.

Żeby zablokować ShieldWave na całej stronie:

User-agent: ShieldWave-Scanner
Disallow: /

Żeby zablokować tylko część strony:

User-agent: ShieldWave-Scanner
Disallow: /admin/
Disallow: /*.pdf$

Dlaczego User-agent: * nie wystarczy

Skaner nie stosuje reguł spod User-agent: *. Są pisane dla robotów wyszukiwarek, a sprawdzenie ShieldWave uruchamia właściciel strony albo osoba, która ma jego zgodę. Żeby zablokować ShieldWave, wpisz jego nazwę.

Wyłączenie domeny

Możesz też wyłączyć swoją domenę ze wszystkich sprawdzeń ShieldWave, także z darmowego testu i darmowych narzędzi. Napisz na support@shieldwave.io z adresu w tej domenie, w temacie wpisz „Wyłączenie domeny”. Warunki i terminy opisuje dokument Skaner ShieldWave i wyłączenie domeny.

Jak go spowolnić

Odpowiedz kodem HTTP 429 lub 503, a sprawdzenie od razu zwolni, tak jak opisuje punkt Tempo. Zwalnia też samo, gdy Twój serwer zaczyna odpowiadać wolno. Po odpowiedzi 429 skaner nigdy nie ponawia zapytania z innym user agentem. Reguła zapory, która odpowiada kodem 403, nie spowalnia sprawdzenia: skaner nie ponawia odrzuconych zapytań z innym user agentem, a raport pokazuje odrzucone sprawdzenia jako „nie oceniono”. Żeby dać ShieldWave znać, że nie chcesz sprawdzeń, użyj robots.txt albo wyłączenia domeny.

Kontakt

Jeśli sprawdzenie Twojej strony było dla Ciebie zaskoczeniem, chcesz zgłosić nadużycie albo zadać pytanie, napisz na support@shieldwave.io. Podaj domenę i wiersz z logu dostępu z czasem zapytania.