The #ChromeDevSummit site is live, happening Nov 12-13 in San Francisco, CA
Check it out for details and request an invite. We'll be diving deep into modern web tech & looking ahead to the platform's future.

Jak naprawić szkody spowodowane atakiem wykorzystującym maskowanie słów kluczowych i linków

W tym przewodniku omawiamy ataki hakerów polegające na dodawaniu do witryny stron z bezużytecznym tekstem zawierającym dużo słów kluczowych. Jest to tzw. atak z wykorzystaniem bezużytecznego tekstu. Narażeni są na niego użytkownicy popularnych systemów zarządzania treścią (CMS), ale podane tu informacje mogą Ci się przydać, nawet jeśli nie korzystasz z takiego systemu.

Uwaga: nie masz pewności, czy Twoja witryna nie została zaatakowana? Poczytaj, jak sprawdzić, czy witryna została zaatakowana przez hakerów.

Spis treści

Jak rozpoznać ten rodzaj ataku

Atak z wykorzystaniem maskowanych słów kluczowych i linków polega na tworzeniu wielu stron zawierających pozbawione sensu słowa, linki i obrazy. Czasami tego typu strony zawierają podstawowe elementy szablonu oryginalnej witryny, dlatego na pierwszy rzut oka – do momentu przeczytania ich treści – wyglądają jak zwykła część witryny.

Zmodyfikowane strony mają manipulować czynnikami branymi przez Google pod uwagę podczas tworzenia rankingu. Hakerzy próbują często zarabiać, sprzedając linki na zmodyfikowanych stronach różnym osobom z zewnątrz. Zdarza się również, że takie zmodyfikowane strony przekierowują użytkowników na niepowiązane strony, np. w witrynach pornograficznych, które dla hakerów są również źródłem przychodów.

Aby dowiedzieć się, czy Twoja witryna padła ofiarą takiego ataku, skorzystaj przede wszystkim z narzędzia Problemy dotyczące bezpieczeństwaSearch Console i sprawdź, czy Google znajduje zmodyfikowane strony w Twojej witrynie. Takie strony możesz też wykryć, wpisując w wyszukiwarce Google site:[your site]. Spowoduje to wyświetlenie stron zindeksowanych przez Google w Twojej witrynie – w tym stron zmodyfikowanych przez hakerów. Przejrzyj kilka stron wyników wyszukiwania pod kątem nietypowych adresów URL. Jeśli za pomocą wyszukiwarki Google nie znajdziesz zmodyfikowanych treści, spróbuj wpisać te same słowa w inną wyszukiwarkę. Inne wyszukiwarki mogą wyświetlać zmodyfikowane treści, które zostały usunięte z indeksu Google. Mogłoby to wyglądać tak:

Uwaga: w tych wynikach wyszukiwania pojawia się wiele stron, których nie utworzył właściciel witryny. Jeśli przyjrzysz się opisom pierwszego i drugiego wyniku, zauważysz przykłady bezużytecznego tekstu utworzonego przez hakera.

Gdy spróbujesz odwiedzić zmodyfikowaną stronę, być może zobaczysz komunikat, że strona nie istnieje (np. błąd 404). Nie daj się zwieść. Haker będzie usiłował Cię przekonać, że witryna działa poprawnie, bo zmodyfikowane strony zniknęły lub zostały poprawione. W tym celu zastosuje maskowanie treści. Aby sprawdzić, czy tak się nie stało, wpisz adres URL witryny do narzędzia Pobierz jako Google. Pozwoli to zobaczyć ukryte treści. Poniżej znajdziesz przykład zmodyfikowanej strony.

Jak naprawić szkody spowodowane atakiem

Zanim zaczniesz usuwać pliki, zrób ich kopię offline na wypadek, gdyby trzeba je było później przywrócić. Jeszcze lepiej jest utworzyć kopię zapasową całej witryny przed przystąpieniem do jej czyszczenia. Możesz zapisać wszystkie pliki z serwera w innej lokalizacji lub poszukać najlepszych metod tworzenia kopii zapasowej dla Twojego systemu CMS.

Sprawdzanie pliku .htaccess (trzy kroki)

W ataku z wykorzystaniem zamaskowanych słów kluczowych i linków plik .htaccess automatycznie tworzy w witrynie zamaskowane strony. Jeśli poznasz podstawowe zasady działania pliku .htaccess, opisane na oficjalnej stronie Apache, łatwiej zrozumiesz wpływ ataku na Twoją witrynę, ale nie jest to niezbędne.

Krok 1

Znajdź plik .htaccess w witrynie. Jeśli nie masz pewności, gdzie go szukać, a korzystasz z systemu CMS takiego jak WordPress, Joomla czy Drupal, wpisz w wyszukiwarkę „lokalizacja pliku .htaccess” oraz nazwę systemu CMS. Plików .htaccess może być więcej, w zależności od witryny. Utwórz listę lokalizacji plików .htaccess.

Uwaga: plik .htaccess jest często plikiem ukrytym. Pamiętaj, by włączyć wyświetlanie ukrytych plików, gdy go szukasz.

Krok 2

Otwórz plik .htaccess, by wyświetlić jego zawartość. W pliku powinien być widoczny wiersz kodu podobny to tego:

  RewriteRule (.*cj2fa.*|^tobeornottobe$) /injected_file.php?q=$1 [L]

Zmienne w tym wierszu mogą być inne. Ciągi „cj2fa” oraz „tobeornottobe” mogą stanowić dowolną kombinację liter lub słów. Najważniejsze jest znalezienie pliku .php, do którego odniesienie zawiera ten wiersz.

Zanotuj plik .php wymieniony w pliku .htaccess. W przykładzie ma on nazwę „injected_file.php”, ale zwykle nazwa pliku .php nie jest tak oczywista. Często jest to losowy zestaw niewinnie wyglądających słów, np. „breloczki.php”, „wigry.php” itp. Prawdopodobnie jest to złośliwy plik .php, który potem trzeba będzie namierzyć i usunąć.

Nie wszystkie wiersze z RewriteRule i plikiem .php w Twoim pliku .htaccess są szkodliwe. Jeśli nie masz pewności, jak działa dany wiersz kodu, na forach pomocy dla webmasterów znajdziesz doświadczonych programistów, którzy Ci pomogą.

Krok 3

Zastąp wszystkie pliki .htaccess wersją czystą lub domyślną. Domyślną wersję pliku .htaccess zwykle znajdziesz, wpisując w wyszukiwarkę „domyślny plik .htaccess” wraz z nazwą systemu CMS. W witrynach z wieloma plikami .htaccess trzeba znaleźć czystą wersję każdego pliku i zastąpić wszystkie.

Jeśli nie ma domyślnego pliku .htaccess, a plik .htaccess w Twojej witrynie nie był przez Ciebie konfigurowany, znaleziony plik jest prawdopodobnie złośliwy. Zapisz kopię pliku (plików) .htaccess na wszelki wypadek offline, a następnie usuń plik .htaccess z witryny.

Znajdowanie i usuwanie innych złośliwych plików (pięć kroków)

Rozpoznawanie złośliwych plików może być trudne i czasochłonne. Nie spiesz się, gdy sprawdzasz pliki. To dobry moment, by utworzyć kopię zapasową plików w witrynie, jeśli jeszcze jej nie masz. Wyszukaj w Google „kopia zapasowa witryny” wraz z nazwą systemu CMS, by dowiedzieć się, jak utworzyć taką kopię.

Krok 1

Jeśli używasz systemu CMS, zainstaluj ponownie wszystkie podstawowe (domyślne) pliki, które znajdują się w domyślnej wersji Twojego systemu CMS (a także motywy, moduły i wtyczki). Będziesz mieć pewność, że nie są zmodyfikowane przez hakera. Wyszukaj w Google „ponowna instalacja” wraz z nazwą systemu CMS, by dowiedzieć się, jak przeprowadzić ten proces. Jeśli masz jakieś wtyczki, moduły, rozszerzenia lub motywy, pamiętaj, by je również zainstalować ponownie.

Ponowna instalacja może spowodować utratę ewentualnych dostosowań. Zanim przystąpisz do ponownej instalacji, koniecznie utwórz kopię zapasową bazy danych i wszystkich plików.

Krok 2

Zacznij od wyszukania pliku .php, który wcześniej udało Ci się odkryć w pliku .htaccess. W zależności od sposobu uzyskiwania dostępu do plików na serwerze powinna być dostępna jakaś opcja wyszukiwania. Wyszukaj nazwę złośliwego pliku. Gdy znajdziesz plik, najpierw utwórz jego kopię zapasową w innej lokalizacji (na wypadek, gdyby trzeba go było przywrócić), a potem usuń ten plik z witryny.

Krok 3

Sprawdź, czy po wykonaniu dwóch poprzednich kroków nie zostały jeszcze jakieś złośliwe lub zmodyfikowane pliki. Być może udało Ci się już wszystko usunąć, ale warto przejść kolejne etapy na wypadek, gdyby w witrynie było więcej zmodyfikowanych plików.

Nie obawiaj się, że trzeba będzie otwierać i sprawdzać każdy plik PHP. Zacznij od utworzenia listy podejrzanych plików PHP, które chcesz zbadać. Oto kilka sposobów sprawdzenia, które pliki PHP mogą być podejrzane:

  • Jeśli pliki systemu CMS zostały załadowane ponownie, sprawdź tylko te elementy, które nie są domyślnymi plikami lub folderami tego systemu. W ten sposób wyeliminujesz dużą część plików PHP i zostaną Ci do sprawdzenia tylko nieliczne.
  • Posortuj pliki w witrynie według daty ostatniej modyfikacji. Poszukaj plików, które były modyfikowane w ciągu kilku miesięcy od momentu, gdy udało Ci się wykryć atak na witrynę.
  • Posortuj pliki w witrynie według rozmiaru. Poszukaj nietypowo dużych plików.

Krok 4

Gdy sporządzisz listę podejrzanych plików PHP, sprawdź, czy są one prawidłowe czy złośliwe. Jeśli nie znasz się za bardzo na PHP, może to zająć trochę czasu, pomyśl więc nad przejrzeniem dokumentacji języka PHP. Ale nawet jeśli nie masz nic wspólnego z kodowaniem, warto poznać kilka podstawowych wzorców, których można szukać w podejrzanych plikach.

Najpierw przejrzyj podejrzane pliki pod kątem dużych bloków tekstu zawierającego kombinacje pozornie przemieszanych liter i liczb. Taki blok zwykle poprzedza kombinacja funkcji PHP takich jak base64_decode, rot13, eval, strrev, gzinflate. Poniżej znajdziesz przykładowy blok kodu. Czasem taki kod może być ściśnięty w jeden długi wiersz tekstu, dzięki czemu będzie wydawał się mniejszy niż naprawdę jest.

<!--Hackers try to confuse webmasters by encoding malicious code into blocks of texts.
Be wary of unfamiliar code blocks like this.-->

base64_decode(strrev("hMXZpRXaslmYhJXZuxWd2BSZ0l2cgknbhByZul2czVmckRWYgknYgM3ajFGd0FGIlJXd0Vn
ZgknbhBSbvJnZgUGdpNHIyV3b5BSZyV3YlNHIvRHI0V2Zy9mZgQ3Ju9GRg4SZ0l2cgIXdvlHI4lmZg4WYjBSdvlHIsU2c
hVmcnBydvJGblBiZvBCdpJGIhBCZuFGIl1Wa0BCa0l2dgQXdCBiLkJXYoBSZiBibhNGIlR2bjBycphGdgcmbpRXYjNXdmJ2b
lRGI5xWZ0Fmb1RncvZmbVBiLn5WauVGcwFGagM3J0FGa3BCZuFGdzJXZk5Wdg8GdgU3b5BicvZGI0xWdjlmZmlGZgQXagU2ah
1GIvRHIzlGa0BSZrlGbgUGZvNGIlRWaoByb0BSZrlGbgMnclt2YhhEIuUGZvNGIlxmYhRWYlJnb1BychByZulGZhJXZ1F3ch
1GIlR2bjBCZlRXYjNXdmJ2bgMXdvl2YpxWYtBiZvBSZjVWawBSYgMXagMXaoRFIskGS"));

Czasem kod nie jest przemieszany i wygląda jak normalny skrypt. Jeśli nie masz pewności, czy kod jest nieprawidłowy, na forach pomocy dla webmasterów znajdziesz doświadczonych programistów, którzy pomogą Ci przejrzeć pliki.

Krok 5

Gdy wiesz już, które pliki są podejrzane, utwórz kopię zapasową lub lokalną – zapisz pliki na komputerze na wypadek, gdyby okazało się, że jednak nie są złośliwe, a potem usuń te podejrzane.

Sprawdzanie, czy witryna jest czysta

Gdy zdołasz się pozbyć zmodyfikowanych plików, sprawdź, czy Twoja ciężka praca przyniosła efekty. Pamiętasz znalezione wcześniej strony z bezużytecznym tekstem? Poszukaj ich za pomocą narzędzia Pobierz jako Google, by sprawdzić, czy wciąż istnieją. Jeśli uzyskasz odpowiedź „Nie znaleziono”, prawdopodobnie jest całkiem dobrze i możesz przejść do likwidowania luk w zabezpieczeniach witryny.

Aby sprawdzić, czy w witrynie nie ma już zmodyfikowanych treści, możesz też wykonać kroki opisane w Narzędziu do rozwiązywania problemów z zaatakowanymi witrynami.

Jak zapobiec ponownym atakom?

Zlikwidowanie luk w zabezpieczeniach witryny stanowi niezbędny etap naprawiania szkód. Zgodnie z niedawnymi badaniami 20% witryn zostaje ponownie zaatakowanych przed upływem jednego dnia. Wiedza o tym, jak doszło do ataku, bardzo Ci się przyda. Na początek poczytaj o najczęściej spotykanych atakach spamerskich. Jeśli nie jesteś w stanie dowiedzieć się, jak doszło do ataku, zapoznaj się z listą kontrolną rzeczy, które możesz zrobić, by ograniczyć luki w zabezpieczeniach witryny:

  • Regularnie aktualizuj system CMS, wtyczki, rozszerzenia i moduły: ten krok już prawdopodobnie masz za sobą. Wiele witryn ulega atakom z powodu nieaktualnego oprogramowania. Niektóre systemy CMS obsługują automatyczne aktualizacje.
  • Regularnie skanuj komputer: korzystaj z któregoś z popularnych programów antywirusowych i szukaj wirusów oraz luk w zabezpieczeniach.
  • Regularnie zmieniaj hasła: regularne zmienianie haseł do wszystkich kont powiązanych z witryną (FTP, CMS, konto u dostawcy usług hostingowych) może zapobiec nieautoryzowanemu dostępowi. Ważne, by dla każdego konta tworzyć silne, niepowtarzalne hasła.
  • Stosuj uwierzytelnianie dwuskładnikowe: zastanów się nad włączeniem go we wszystkich usługach, które wymagają logowania. Uwierzytelnianie dwuskładnikowe utrudnia hakerom zalogowanie się, nawet jeśli zdobędą Twoje hasło.
  • Zastanów się nad subskrypcją usługi monitorowania Twojej witryny pod kątem bezpieczeństwa: dostępnych jest wiele ciekawych usług, które za niewielką opłatą pomogą Ci w tym zadaniu. Rozważ, czy warto zarejestrować się w którejś z nich, by lepiej chronić witrynę.

Dodatkowe zasoby

Jeśli wciąż masz problem z naprawieniem szkód w witrynie, poniżej znajdziesz więcej zasobów, które mogą okazać się pomocne.

Te narzędzia przeskanują witrynę i być może znajdą problematyczne treści. Oprócz VirusTotal żadne z nich nie jest obsługiwane przez Google.

Virus Total, Aw-snap.info, Sucuri Site Check, Quttera: to tylko część narzędzi, które mogą skanować witryny pod kątem podejrzanej zawartości. Pamiętaj, że nie gwarantują one wykrycia wszystkich treści, które stanowią zagrożenie.

Dodatkowe zasoby Google, które mogą się przydać:

Brakuje narzędzia, które Twoim zdaniem mogłoby się przydać? Napisz komentarz i daj nam znać.