Kilka dni po uruchomieniu naszej nowej strony zajrzeliśmy do logów serwera. Boty weszły na stronę autora wpisów, odczytały z jej adresu login do panelu i zaczęły próbować haseł na stronie logowania. Żadna próba się nie udała, ale połowę pracy włamywacz dostał od nas za darmo.
Skąd bot zna login
WordPress ma dla każdego autora osobną stronę z listą jego wpisów. Jej adres wygląda tak: /author/nazwa/. Domyślnie ta nazwa powstaje z loginu. Jeśli login to „admin-firma”, adres brzmi /author/admin-firma/ i każdy może go przeczytać.
Bot nie musi nawet znać adresu. Wystarczy, że wpisze ?author=1 po adresie strony. WordPress sam przekieruje go na stronę pierwszego użytkownika, czyli zwykle administratora.
Dalej jest prosto: login już jest, zostaje zgadywanie hasła. Skanery robią to automatycznie, na tysiącach stron naraz, przez całą dobę.
Co widzieliśmy w logach
- wejścia botów na stronę autora z loginem w adresie,
- zaraz potem próby logowania na
wp-login.php, z różnych adresów IP, co kilkadziesiąt minut, - skanery pytające o listę użytkowników przez API różnych wtyczek, po kolei, aż któraś odpowie.
Hasło było długie i losowe, więc wszystkie próby skończyły się niepowodzeniem. Ale przy krótszym haśle albo haśle używanym gdzie indziej ta historia mogłaby się skończyć inaczej.
Co zmieniliśmy
- Login na losowy ciąg znaków, którego nie da się zgadnąć. Bez słowa „admin” i bez nazwy firmy.
- Wyłączyliśmy stronę autora. Na naszej stronie jest jedno konto, więc lista wpisów autora niczego nie wnosiła, a zdradzała login. Teraz jej adres pokazuje stronę „nie znaleziono”.
- Wylogowanie wszystkich sesji, żeby nikt nie został zalogowany na starych danych.
Całość zajęła kilka minut, a strona działała w tym czasie normalnie.
Jak sprawdzić to na swojej stronie w minutę
- Wystarczy wpisać w przeglądarce adres strony z dopiskiem
/?author=1, na przykładadres-strony.pl/?author=1. Jeśli adres zmieni się na/author/coś/, to „coś” widzi każdy. Warto porównać to z loginem, którym logują się Państwo do panelu. - Login nie powinien brzmieć „admin” albo „admin” z nazwą firmy. To pierwsze, co sprawdza każdy skaner.
- Hasło. Powinno być długie, losowe i nieużywane w żadnym innym serwisie. Menedżer haseł załatwia to za Państwa.
Jeśli w punkcie pierwszym wyszedł login, trzeba go zmienić. WordPress nie pozwala zmienić loginu w panelu, dlatego robi się to na poziomie bazy danych albo przez nowe konto administratora i usunięcie starego, z przepisaniem wpisów na nowe konto.
Strona autora często nie jest w ogóle potrzebna
Na stronie firmowej wpisy zwykle publikuje jedna osoba albo firma jako całość. Wtedy strona autora z listą jego wpisów niczego nie wnosi, a zdradza informacje o kontach w panelu. Można ją wyłączyć tak, żeby jej adres pokazywał stronę „nie znaleziono”. Wpisy i blog działają dalej bez zmian.
Serwisy firmowe
Budujemy i utrzymujemy strony na WordPressie, w tym zabezpieczenia, aktualizacje i kontrolę logów.
Pytania i odpowiedzi
Czy wystarczy wtyczka bezpieczeństwa?
Wtyczka może ograniczyć liczbę prób logowania, ale nie zmieni loginu za Państwa. Najpierw warto usunąć przyczynę, czyli login widoczny w adresie, a dopiero potem dokładać ochronę.
Czy zmiana loginu wpłynie na wpisy albo pozycje w Google?
Nie. Wpisy zostają przypisane do tego samego konta, a adresy wpisów się nie zmieniają. Zmienia się tylko adres strony autora, który i tak nie powinien być w wynikach wyszukiwania.
Skąd wiadomo, że ktoś próbuje się włamać?
Z logów serwera. Każda próba logowania zostawia w nich wpis z adresem i godziną. Przy stronach, które utrzymujemy, przeglądamy je regularnie, bo zwykła analityka ruchu tych prób nie pokazuje.