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.
- 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-ScanneriDisallow: /, 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. Jest jeden wyjątek, opisany w punkcie Ponowienie po 403 lub 406.
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.
Ponowienie po 403 lub 406
W pełnym skanie potwierdzonej domeny, jeśli zapytanie wysłane z user agentem ShieldWave dostanie odpowiedź HTTP 403 lub 406, skaner wysyła to jedno zapytanie jeszcze raz, ze zwykłym user agentem przeglądarki, i zapisuje to w logu skanu. Chodzi o zapory, które odprawiają nieznane user agenty. W darmowym teście i w każdym innym sprawdzeniu, które tylko czyta, ponowienia nie ma: gdy strona odmówi wydania strony głównej, sprawdzenie się kończy. Po odpowiedzi 429 skaner nigdy nie zmienia user agenta: zwalnia.
Dlatego sama reguła zapory na user agent nie zatrzyma pełnego skanu. Zatrzyma go robots.txt albo wyłączenie domeny, 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 twardy limit czasu całego sprawdzenia.
| Profil | Do czego służy | Zapytań na sekundę, najwyżej | Limit czasu | Dane testowe |
|---|---|---|---|---|
| basic | Darmowy test na shieldwave.io i każde sprawdzenie domeny, nad którą nie potwierdzono kontroli | 5 | 90 sekund | Nie |
| standard | Pełny skan potwierdzonej domeny: plany płatne i jednorazowy skan | 15 | 3 minuty | Tak |
| quick | Tylko API, z "profile": "quick", na potwierdzonej domenie | 10 | 60 sekund | Nie |
| deep | Tylko API, z "profile": "deep", na potwierdzonej domenie | 3 | 6 minut | Tak |
| stealth | Tylko API, z "profile": "stealth": wolne sprawdzenie dla stron ze ścisłym limitem tempa zapytań | 1 | 4 minuty | Nie |
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. Zaczyna od tempa profilu i nigdy go nie przekracza. Gdy serwer daje znać, że ma dość, sprawdzenie zwalnia:
- po HTTP 429 lub 503 tempo spada do 40%,
- po HTTP 403 spada do 70%,
- nigdy nie schodzi poniżej jednego zapytania na 2 sekundy.
Po zdrowych odpowiedziach powoli przyspiesza, ale nigdy ponad tempo profilu. Gdy części sprawdzenia skończy się czas, jej pozostałe zapytania przepadają, a nie idą później.
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
- Loguje się tylko wtedy, gdy właściciel potwierdzonej domeny uruchomi sprawdzenie z danymi logowania, które sam podał. Nigdy nie zakłada kont.
- Nigdy nie wysyła formularzy kontaktowych ani formularzy zamówienia.
- Nigdy niczego na stronie nie zmienia ani nie naprawia.
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.
DisallowiAllowdziałają jak w RFC 9309: wygrywa najdłuższa pasująca reguła, a*i$działają jako symbole wieloznaczne.Disallow: /w tej grupie zatrzymuje sprawdzenie, zanim skaner poprosi o cokolwiek innego, a raport o tym mówi.- Jakakolwiek reguła Disallow w tej grupie wyłącza testy z szablonów, bo nie potrafią przestrzegać reguł dla ścieżek.
Ż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. Po odpowiedzi 429 skaner nigdy nie ponawia zapytania z innym user agentem. Reguła zapory, która odpowiada kodem 403, też spowalnia pełny skan, ale każde zablokowane przez nią zapytanie skaner ponawia tam raz z user agentem przeglądarki. Pewnym sposobem na zablokowanie ShieldWave jest więc robots.txt albo wyłączenie 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.