Jak ShieldWave skanuje działającą stronę
ShieldWave sprawdza stronę z zewnątrz, tak jak widzi ją każdy odwiedzający. Ta strona mówi dokładnie, ile ruchu skan wysyła do Twojej działającej strony, jak trzyma ten ruch w wyznaczonym budżecie oraz kiedy zwalnia albo się zatrzymuje, żeby skan nigdy nie obciążył Twojej strony. Techniczne szczegóły samego skanera i sposoby na jego zablokowanie znajdziesz na stronie ShieldWave-Scanner.
- Budżet ruchu
- Najwyżej 5 zapytań na sekundę w darmowym teście i 15 w pełnym skanie. Jedno zapytanie na 2 sekundy to najwolniejsze tempo, do jakiego schodzi.
- Jeden naraz
- Jednej strony pilnuje naraz tylko jeden skan, także pomiędzy naszymi serwerami, więc równoległe skany się nie sumują.
- Obserwuje serwer
- Mierzy czasy odpowiedzi i błędy, a gdy Twój serwer ma dość, zwalnia, zatrzymuje się albo przerywa.
- Wyłączenie
- Reguła w robots.txt dla ShieldWave-Scanner albo prośba o wyłączenie trzyma go z dala od Twojej strony. Zobacz szczegóły.
- Kontakt
- support@shieldwave.io
Budżet ruchu na każdy plan
Każdy skan działa w jednym profilu. Profil ustala, ile najwyżej zapytań na sekundę skan wysyła do Twojej strony, oraz twardy limit czasu całego skanu. Skan nigdy nie przekracza liczby zapytań na sekundę z tej tabeli.
| Profil | Do czego służy | Zapytań na sekundę, najwyżej | Limit czasu |
|---|---|---|---|
| basic | Darmowy test na shieldwave.io i każde sprawdzenie strony, nad którą nie potwierdzono kontroli | 5 | 90 sekund |
| standard | Pełny skan potwierdzonej strony: plany płatne i jednorazowy skan | 15 | 3 minuty |
| quick | Tylko API, z profilem quick, na potwierdzonej stronie | 10 | 60 sekund |
| deep | Tylko API, z profilem deep, na potwierdzonej stronie | 3 | 6 minut |
| stealth | Tylko API, z profilem stealth, wolne sprawdzenie dla stron ze ścisłym limitem tempa zapytań | 1 | 4 minuty |
Wszystkie zapytania jednego skanu do Twojej strony i jej subdomen przechodzą przez jeden regulator tempa, utworzony dla tego skanu. Gdy kilka zapytań jest gotowych w tej samej chwili, wychodzą jedno po drugim w tempie profilu, więc nigdy nie trafiają naraz.
Jeden skan naraz na stronę
Zanim pełny skan cokolwiek wyśle, zakłada krótką blokadę na Twoją stronę, trzymaną w naszej bazie danych, więc liczy się ona na wszystkich naszych serwerach. Drugi pełny skan tej samej strony czeka na tę blokadę. Gdy pierwszy skan się skończy, czekający rusza. Jeśli czeka około 90 sekund, a strona wciąż jest zajęta, drugi skan zatrzymuje się i zgłasza, że inny skan tej strony już trwa, zamiast wysyłać drugi zestaw zapytań na wierzch pierwszego.
Blokada podtrzymuje sygnał życia w trakcie skanu i wygasa sama, gdy serwer, który ją trzyma, się zatrzyma, więc awaria nigdy nie zostawia strony zablokowanej. Darmowy test i darmowe narzędzia czytają niewiele i ta blokada ich nie wstrzymuje.
Co ShieldWave mierzy na Twoim serwerze
Zanim ruszą aktywne testy, skaner wysyła kilka lekkich odczytów strony głównej, żeby zmierzyć wartość bazową: jak szybko Twój serwer odpowiada bez obciążenia (jego czas odpowiedzi p95). W trakcie skanu obserwuje odpowiedzi na własne zapytania: bieżący czas odpowiedzi p95 oraz udział odpowiedzi, które są błędami serwera (5xx).
Kiedy zwalnia, zatrzymuje się i przerywa
Skan trzyma ruch w budżecie z powyższej tabeli, a wycofuje się jeszcze bardziej, gdy Twój serwer daje oznaki obciążenia. Zawsze tylko zwalnia, nigdy nie przyspiesza ponad tempo profilu.
- Gdy Twój serwer odpowie kodem HTTP 429 lub 503, tempo od razu spada do 40 procent.
- Gdy serwer zaczyna odpowiadać wolno (jego p95 przekroczy dwukrotność wartości bazowej i co najmniej 500 milisekund ponad wartość bazową) albo gdy więcej niż jedna na pięć odpowiedzi to błąd 5xx, tempo spada o połowę.
- Jeśli mimo to dalej jest źle, skan zatrzymuje się na około 30 sekund, żeby serwer odetchnął, a potem mierzy ponownie kilkoma lekkimi odczytami.
- Jeśli po tej przerwie wciąż jest źle, skan przerywa pozostałe aktywne testy i oznacza to w wyniku, więc nigdy nie naciska serwera, który sobie nie radzi.
- Tempo nigdy nie schodzi poniżej jednego zapytania na 2 sekundy.
Pojedyncze HTTP 403 nie spowalnia skanu. Zapora, która odprawia jedno zapytanie, nic nie mówi o obciążeniu serwera, więc 403 jest traktowane jak zwykła odpowiedź. O prawdziwym obciążeniu decydują czasy odpowiedzi i błędy powyżej.
Testy z szablonów w tym samym budżecie
Profile standard i deep uruchamiają też zestaw testów z szablonów (Nuclei) na znane odsłonięcia i błędy konfiguracji. Działają jako osobne narzędzie, więc biorą stały udział z tego samego budżetu: 6 z 15 zapytań na sekundę w profilu standard i 1 z 3 w profilu deep. Reszta skanu zwalnia o tyle samo, więc suma nigdy nie przekracza tempa profilu. Gdy Twój robots.txt ma jakąkolwiek regułę Disallow dla ShieldWave-Scanner, testy z szablonów są pomijane, bo nie potrafią przestrzegać reguł dla ścieżek.
Jak go wyłączyć albo spowolnić
To Ty decydujesz, czy ShieldWave skanuje Twoją stronę. Grupa w robots.txt napisana dla skanera, z Disallow: /, zatrzymuje skan, zanim cokolwiek wyśle. Możesz też poprosić o wyłączenie strony ze wszystkich sprawdzeń. Pełne instrukcje i sposób rozpoznania skanera w logach są na stronie ShieldWave-Scanner. Twój serwer może też w każdej chwili dać znać, że ma dość, odpowiadając kodem HTTP 429 lub 503, a skan od razu zwolni.
Co skan zgłasza z powrotem
Każdy skan zapisuje, co wysłał, i pokazuje to prostymi słowami w raporcie oraz na stronie wyniku skanu: ile wysłał zapytań, jakie najwyższe tempo osiągnął, czy zwolnił, zatrzymał się albo przerwał i dlaczego, oraz czy uszanował wyłączenie z robots.txt. Zawsze widzisz więc dokładnie, jak skan zachował się na Twojej stronie.
Kontakt
Jeśli skan Twojej strony był dla Ciebie zaskoczeniem, chcesz zadać pytanie albo zgłosić nadużycie, napisz na support@shieldwave.io. Podaj stronę, a jeśli możesz, wiersz z logu dostępu z czasem zapytania.