Ile ataków odpiera Twój serwer, gdy śpisz
Jeden serwer pod naszą opieką odparł prawie trzy tysiące prób logowania w ciągu dwóch i pół doby. Nie skok, nie incydent, nie „zhakowali nas” — zwykły wtorek serwera wystawionego do internetu. Najbardziej niepokojące jest tu jednak nie te trzy tysiące, tylko to, jak łatwo dało się je zupełnie przeoczyć. Nasz monitoring uczciwie zapisywał wszystko — ale kanał powiadomień milczał: jeden zepsuty parametr konfiguracji przez kilka dni z rzędu cicho połykał każde ostrzeżenie. Natrafiliśmy na to podczas rutynowego przeglądu własnej floty: naprawiliśmy jedną linijkę — i zobaczyliśmy, co spokojnie działo się przez cały ten czas.
Opowiemy tę historię na żywych liczbach z własnego sprzętu — zanonimizowanych, ale bez upiększeń. Bo najlepsze wyjaśnienie bezpieczeństwa to nie horror rodem z podręcznika, tylko to, co dzieje się właśnie teraz na Twoim serwerze, gdy o tym nie myślisz.
Czym jest atak brute-force na RDP i kogo dotyczy
RDP to protokół pulpitu zdalnego — ten sam przycisk „połącz się z serwerem z domu”, z którego korzystają miliony. Domyślnie nasłuchuje na porcie 3389, a ten numer zna na pamięć każdy bot w sieci. Schemat jest banalnie prosty: automaty dniem i nocą przeczesują internet w poszukiwaniu otwartego 3389, a gdy go znajdą — mielą tysiącami kombinacji „login-hasło”, dopóki nie trafią albo nie zostaną zablokowane.
Najważniejsze: to nie jest atak wymierzony osobiście w Ciebie. To szum tła, który uderza we wszystkich jednakowo — w bank, w piekarnię i w testowy serwer, który ktoś postawił „na pięć minut” trzy lata temu. Jeśli kiedyś wystawiłeś na zewnątrz port 3389 — sam albo za sprawą podwykonawcy — „żeby wygodnie łączyć się zdalnie”, gratulacje: już jesteś w tej puli. Pytanie tylko, czy drzwi są zamknięte — i czy dowiesz się, gdy ktoś jednak wejdzie.
Pisaliśmy już o niewidocznych czytelnikach Twojej strony — nieszkodliwych botach AI, które po cichu przeglądają Twoje strony. Ci goście są z tej samej rodziny — równie niewidzialni, tylko z przeciwnym zamiarem.
Co pokazują żywe liczby
Zacznijmy od firewalla. W ciągu ponad stu dni nieprzerwanej pracy zablokował na jednym serwerze 218 211 pakietów walących w port RDP — to około dwóch tysięcy dziennie. Na innym naszym serwerze — 61 436, kolejne sześćset dziennie. To nawet nie są próby logowania, to agresywne źródła, które firewall odciął już na podejściu prostą regułą: pięć prób z jednego adresu w ciągu minuty — i adres leci na czarną listę.
Najciekawsze zaczyna się za tą barierą. Rozproszony atak celowo omija limit „na adres”: wiele źródeł, każde puka po trochu, żeby blokada nie zadziałała. Dziennik jednej maszyny z tych samych 2,5 doby pokazał 2893 nieudane próby logowania, które przebiły się aż do okna uwierzytelniania. Z tego 2890 — dokładnie 99,9% — celowało w jedno jedyne konto: wbudowane administrator. Źródeł było 34, rozsianych po całym świecie: Korea Południowa, Niemcy, USA, kilka zakresów azjatyckich i latynoamerykańskich — typowy globalny botnet, któremu jest zupełnie obojętne, kim jesteś. I atak nie słabł — trzymał się na poziomie setek i tysięcy prób dziennie: 571, potem 1242, potem 1080.
Żadna się nie udała — bo administrator na tym serwerze jest wyłączony. Ale oto liczba, dla której warto było czytać aż dotąd. Kolejny serwer — bardzo podobny, tylko jego RDP nasłuchuje na niestandardowym porcie zamiast gołego 3389 — w tym samym okresie zebrał zaledwie 634 blokady. Wobec 218 tysięcy. Ten sam internet, te same botnety, jeden parametr konfiguracji — i mniej więcej trzysta razy mniej szumu na wejściu.
„Wszystko zielone” to najdroższe kłamstwo w monitoringu
Teraz najbardziej szczera część. Wszystkie te serwery przez cały czas pokazywały „wszystko w porządku” — i właśnie tam czai się największa pułapka. Oto trzy pułapki, w które wpadliśmy we własnej flocie podczas tego samego przeglądu.
Po pierwsze. Nocny backup przez pięć nocy z rzędu raportował sukces — kod wyjścia zero, zielony ptaszek — a w rzeczywistości za każdym razem się wywalał. Przyczyna jest typowa: uruchamiał się przez pośredni launcher w trybie „odpal i zapomnij”, a harmonogram zadań widział kod wyjścia launchera (zawsze zero), a nie prawdziwego skryptu pod spodem. Morał: monitorować trzeba rezultat — świeżość pliku-znacznika, zawartość logu — a nie status zadania. „Wykonano pomyślnie” nic nie znaczy, jeśli nie sprawdzasz, co konkretnie zostało wykonane.
Po drugie — ta sama historia, od której zaczęliśmy. System bezpieczeństwa przez kilka dni rzetelnie rejestrował krytyczne zdarzenia — i tyle samo dni nie mógł nikomu o nich powiedzieć: kanał powiadomień nie był skonfigurowany. A wszystkie zadania świeciły na zielono. Milczący monitoring jest gorszy niż żaden — daje fałszywe poczucie spokoju. Dlatego pierwsze, co trzeba przetestować po skonfigurowaniu alertów, to czy naprawdę docierają.
Po trzecie. Kolejna maszyna po cichu nagromadziła ponad tysiąc procesów — setki zombie z zadania, które przy każdym uruchomieniu zostawiało po sobie dwa procesy i nigdy ich nie sprzątało. Po pięćdziesięciu dniach wyczerpała się pamięć wirtualna, a backupy zaczęły się wywalać z błędem „za mało pamięci” — i znowu pod pogodnym zielonym statusem harmonogramu. Stan procesów i zasobów to też monitoring, nie tylko kod wyjścia.
Tak, to nasze własne błędy, i pokazujemy je nie z dumy, tylko dlatego, że skoro wpadliśmy w nie my — ludzie, dla których to codzienna praca — to wpadnie w nie każdy, kto wciąż ufa zielonemu statusowi.
Jak się bronić — co naprawdę działa
Dobra wiadomość: nie trzeba tu niczego egzotycznego ani drogiego. Oto zestaw, który wdrażamy u siebie i u klientów.
Poniższa lista jest już czysto techniczna — najprościej pokazać ją swojemu informatykowi i zapytać, które punkty są u Ciebie już wdrożone.
- Niestandardowy port zamiast gołego 3389. Różnica 218 tysięcy do 634 to bezpośredni dowód, że to działa. Nie jedyna ochrona, ale najtańszy pierwszy filtr, który odsiewa zdecydowaną większość automatycznego szumu.
- Rate-limit na poziomie firewalla — ta sama reguła „pięć prób na minutę z jednego adresu → blokada”. Wyłapuje pojedyncze agresywne źródła, zanim dotrą do logowania.
- Wyłączyć wbudowane konta
administratoriguest. Skoro 99,9% ataków celuje w kontoadministrator, jego wyłączenie sprawia, że cały ten brute-force traci sens. - Zapasowe konto do awaryjnego dostępu — z niestandardową nazwą i mocnym hasłem w menedżerze haseł, żeby po wyłączeniu domyślnego konta nie zamknąć sobie drzwi.
- Monitoring zdarzeń bezpieczeństwa z żywym kanałem powiadomień — u nas to dziennik zdarzeń w postaci krótkiego podsumowania, wysyłanego do komunikatora. Koniecznie z weryfikacją, że alert dociera: patrz pułapka numer dwa.
- Zarządzanie przez prywatną sieć mesh (Tailscale i podobne), a publiczny RDP usunąć całkowicie, jeśli dostęp z zewnątrz nie jest potrzebny. Najpewniejsza ochrona otwartego portu to port zamknięty.
Drzwi, do których pukają co noc
Trzy tysiące prób w dwie i pół doby nie biorą się stąd, że Twój serwer jest dla kogoś interesujący. Biorą się stąd, że w internecie nigdy nie jest tak cicho — dla nikogo: automaty sprawdzają każde drzwi co noc, Twoje też. Cała różnica polega na tym, kto jest gotowy — jedne drzwi są zamknięte i ktoś zobaczy pukanie, a na drugich widnieje „wszystko zielone”, po prostu dlatego, że nikt nie ustawił alarmu.
Ten szum tła pokazujemy na żywo i zanonimizowany — zobacz nasz publiczny dashboard bezpieczeństwa, gdzie widać dostawcę i kraj każdej próby, bez pełnych adresów. To samo podejście stoi za naszym „Strażnikiem” — stałym nadzorem, który wyłapuje to, co ważne, i milczy o drobiazgach. A jeśli interesuje Cię, jak głośna jest Twoja własna noc i czy zielony status Cię nie okłamuje — bezpłatny audyt pokaże to spokojnie, na liczbach.
Potrzebujesz pomocy z IT?
Bezpłatny audyt Twojej infrastruktury — znajdziemy słabe punkty i pokażemy uczciwy plan. Do niczego nie zobowiązuje.
Bezpłatny audyt