Chrome Dev Summit 2018 is happening now and streaming live on YouTube. Watch now.

Atak ze złośliwym oprogramowaniem

Ten etap dotyczy witryn wykorzystywanych przez hakerów do rozpowszechniania złośliwego oprogramowania. Często informuje o tym ostrzeżenie „Ta witryna może wyrządzić szkody na Twoim komputerze” widoczne w wynikach wyszukiwania. To jeden z najdłuższych etapów procesu odzyskiwania. W jego trakcie utworzysz listę uszkodzonych plików w witrynie. Użyjesz jej na późniejszym etapie – Oczyść i zabezpiecz witrynę.

Jeśli witryna zamiast złośliwego oprogramowania zawiera spam, o czym w wynikach wyszukiwania informuje ostrzeżenie „Ta witryna mogła paść ofiarą ataku hakerów”, przeczytaj artykuł Oceń szkody (atak ze spamem).

Czego potrzebujesz:

  • dostępu administratora do powłoki lub terminala serwerów witryny: internetowego, bazy danych i plików;
  • znajomości poleceń powłoki lub terminala;
  • możliwości uruchamiania zapytań SQL w bazie danych.

Co musisz zrobić:

Przygotowania

  1. Unikaj otwierania stron witryny w przeglądarce. Złośliwe oprogramowanie często się rozpowszechnia, wykorzystując luki w zabezpieczeniach przeglądarki, dlatego otwarcie zainfekowanej nim strony może spowodować szkody na Twoim komputerze.
  2. Utwórz dokument, w którym będziesz zapisywać informacje uzyskane na tym etapie. Te informacje to (przynajmniej) nazwa i lokalizacja każdego naruszonego pliku oraz opis, jak został on zainfekowany. Dokument będzie potrzebny na etapie – Oczyść i zabezpiecz witrynę.
  3. W razie potrzeby zapoznaj się z materiałami dodatkowymi:
    • Obejrzyj film powyżej, by dowiedzieć się, jak działa złośliwe oprogramowanie i jak zabezpieczyć się podczas badania zaatakowanej witryny.
    • Na stronie diagnostycznej w Bezpiecznym przeglądaniu Google znajdziesz informacje o tym, czy witryna może być niebezpieczna dla użytkowników. Opis stanu witryny jest dostępny pod adresem URL podobnym do tego:
      http://www.google.com/safebrowsing/diagnostic?site=<your-site>
      Na przykład: http://www.google.com/safebrowsing/diagnostic?site=webmastercentralblog.blogspot.com
  4. Użyj narzędzia cURL lub Wget, by wysłać żądania HTTP (gdy zechcesz np. przejrzeć treść strony).

    Te bezpłatne narzędzia pozwalają dołączyć do żądań informacje o stronie odsyłającej i kliencie użytkownika, co ułatwia diagnostykę przekierowań. Podanie konkretnej strony odsyłającej lub klienta użytkownika pomaga zasymulować okoliczności oczekiwane przez hakerów, którzy mogą skonfigurować wyświetlanie złośliwych treści tylko użytkownikom z określonym klientem lub stroną odsyłającą, tak by skierować je do bardziej „przeciętnych” osób oraz uniknąć wykrycia przez właścicieli witryn i skanery złośliwego oprogramowania.

    $curl -v --referer "http://www.google.com" <your-url>

Badanie określonych typów infekcji złośliwym oprogramowaniem w witrynie

  1. Wybierz zweryfikowaną witrynę w Search Console, a potem kliknij Problemy dotyczące bezpieczeństwa.
  2. Na stronie „Problemy dotyczące bezpieczeństwa” skontroluj wszystkie kategorie złośliwego oprogramowania w witrynie (np. Konfiguracja serwera czy Wstrzyknięty SQL). Aby uzyskać dodatkowe informacje o zainfekowanych adresach URL z wybranej kategorii, kliknij „Pokaż szczegóły”. Szczegóły mogą zawierać przykładowe fragmenty kodu wstrzykniętego przez hakera. Z każdej kategorii skopiuj do dokumentu z wynikami kontroli następujące dane:
    • wszystkie przykładowe zainfekowane adresy URL, które znajdziesz na stronie „Problemy dotyczące bezpieczeństwa”, w sekcji poświęconej złośliwemu oprogramowaniu;
    • adresy wszystkich pozostałych stron, na których podczas kontroli wykryjesz szkody;
    • szczegółowe informacje o zainfekowanych stronach, np. rodzaj wyrządzonych szkód.
  3. Poniżej znajdziesz informacje, które ułatwią Ci kontrolę każdego typu złośliwego oprogramowania:

Ocena szkód w systemie plików

Teraz musisz zalogować się do systemu plików witryny, by przeprowadzić dokładniejszą kontrolę. Pamiętaj, że haker mógł między innymi zmienić istniejące strony lub rekordy w bazie danych, utworzyć zupełnie nowe strony ze spamem, dopisać funkcje wyświetlania spamu na nienaruszonych stronach oraz zostawić sobie „furtki”, które (jeśli nie zostaną usunięte) pozwolą mu znowu dostać się do systemu witryny i dalej prowadzić złośliwe działania.

Jeśli witryna jest online, przed wykonaniem tego punktu możesz przełączyć ją w tryb offline.

  1. Jeśli masz nienaruszoną kopię zapasową witryny, ustal, które pliki zostały utworzone lub zmienione od czasu wykonania tej kopii. Dodaj je do swojej listy, bo warto je dokładnie zbadać. W systemie typu Unix możesz użyć tego polecenia:
    $ diff -qr <current-directory> <backup-directory>
    Na przykład:
    $ diff -qr www/ backups/full-backup-20120124/
    oraz
    $ md5sum <current-page> <backup-page>
    Na przykład:
    $ md5sum www/page.html backups/full-backup-20120124/page.html
  2. dziennikach serwera, dostępu i błędów poszukaj podejrzanej aktywności, np. nieudanych prób logowania, nietypowych poleceń w historii (szczególnie na koncie root), tworzenia nieznanych kont użytkowników itd. Pamiętaj, że haker mógł zmienić te dzienniki, by zatrzeć po sobie ślady. W razie potrzeby kilka pomocnych przykładów możesz zobaczyć w filmie do etapu Znajdź lukę w zabezpieczeniach.
  3. Poszukaj przekierowań w plikach konfiguracyjnych, takich jak .htaccess i httpd.conf. Hakerzy często tworzą warunkowe przekierowania uzależnione od klienta użytkownika, pory dnia lub strony odsyłającej.
  4. Poszukaj zbyt szerokich uprawnień do folderów i plików. Hakerzy manipulują uprawnieniami, bo jeśli właściciel witryny nie wykryje zmienionych uprawnień, będą mogli znowu dostać się do systemu witryny. Pliki z uprawnieniami wyższymi niż 644 (rw-r--r--) i foldery z uprawnieniami wyższymi niż 755 (rwxr-xr-x) mogą powodować problemy z bezpieczeństwem. Upewnij się, że takie uprawnienia faktycznie są potrzebne. W systemie typu Unix użyj poleceń:
    $ find <your-dir> -type d -not -perm 755 -exec ls -ld {} \;
    $ find <your-dir> -type f -not -perm 644 -exec ls -la {} \;
  5. Jeśli korzystasz z bazy danych, skontroluj po kolei każdy rekord, używając np. narzędzia phpMyAdmin.

Kolejny etap

Kolejny etap procesu – Znajdź lukę w zabezpieczeniach.