Jak sprawdzić, czy serwer Linux jest czysty od rootkitów / backdoorów / botnetów itp.?

9

W przypadku, gdy serwer Linux był narażony na Internet z ekstremalnie niskimi zasadami bezpieczeństwa (anonimowe foldery Samba, serwer bazy danych Firebird z domyślnym hasłem administratora, bez zapory ogniowej itp.) Przez tydzień, jak mogę się upewnić, że system jest bez kompromisów bez pełnego formatowania i ponownej instalacji, dostęp do niego tylko zdalnie przez SSH?

Ivan
źródło

Odpowiedzi:

7

Zwykle sugerowałbym kontrolę lokalną za pomocą narzędzia takiego jak chkrootkit, ale jeśli jedynym sposobem uruchomienia kontroli jest zrobienie tego zdalnie, to polecam zamiast tego spróbować Rootkit Hunter .

Rookit Hunter sprawdza rootkity i inne tego typu działania, uruchamiając testy takie jak poniżej (więcej informacji w Informacje o projekcie ):

  • Porównanie skrótów MD5
  • Poszukaj domyślnych plików używanych przez rootkity
  • Niewłaściwe uprawnienia do plików binarnych
  • Poszukaj podejrzanych ciągów w modułach LKM i KLD
  • Poszukaj ukrytych plików

Chcę dodać, że jak powiedzieli inni, jedynym pewnym sposobem, aby upewnić się, że nie było żadnych ingerencji w twoją usługę, jest jej odbudowanie. Narzędzia te działają dobrze, ale nie stanowią 100% gwarancji sukcesu.

runlevelsix
źródło
2

OSSEC sprawdza rootkity i wykrywa podejrzane działania.

chmeee
źródło
2

Wiem, że ta odpowiedź nie jest tym, co chcesz usłyszeć, ale i tak zaczynamy. Istnieje kilka narzędzi, które mogą sprawdzić system. Najlepszym sposobem zapewnienia czystości systemu jest wyczyszczenie serwera i przebudowanie. Zrobiłbym następujące:

  • Usuń komputer z Internetu
  • Wykonaj kopię zapasową danych i skonfiguruj informacje, aby usunąć urządzenia
  • Formatuj pamięć
  • Ponownie zainstaluj konfigurację podstawową / standardową / aktualizacje
  • Ponownie skonfiguruj serwer, używając starych danych jako odniesienia
  • Odzyskaj dane użytkownika

Oto niektóre zasoby, które zacznę czytać, jeśli jeszcze tego nie zrobiłeś.

[link tekst] [1] link tekst link tekst link tekst

[1]: http://www.sans.org/reading_room/whitepapers/linux/linux-rootkits-beginners-prevention-removal_901 „Linux Rootkits Beginners”

JJ01
źródło
2

Nie jest to również odpowiedź, której chcesz, ale jeśli istnieje możliwość zrootowania systemu, może być bardzo trudno być w 100% pewnym, że system jest czysty. Rootkity są zaprojektowane tak, aby były trudne do wykrycia. Jeśli uruchomisz różne programy sprawdzające roota i program sprawdzi, czy system jest czysty, „najprawdopodobniej” twój system jest czysty.

Jeśli bezpieczeństwo stanowi problem, rozważę przebudowanie go tak, jak napisano powyżej, lub przywrócenie go z dobrych kopii zapasowych.

USACASD
źródło
1

Naprawdę musisz być proaktywny. Nie ma niezawodnego sposobu na wykrycie rootkitów na maszynach, dlatego musisz przede wszystkim uniemożliwić im dostęp do rootkitów i znaleźć sposoby na wykrycie ich przy wejściu (np. Przez tripwire i zablokowane interfejsy).

Jeśli uważasz, że komputer został wykorzystany w jakikolwiek sposób, naprawdę musisz go ponownie zainstalować - nie ma gwarantowanego sposobu na wyczyszczenie go bez ponownej instalacji. Zdecydowanie najbezpieczniejsza opcja.

Adam Gibbins
źródło
1

RKhunter, Tripwire itp. Są świetne, ale naprawdę przynoszą korzyść, jeśli zostały zainstalowane przed incydentem - ponieważ doskonale nadają się do wykrywania, czy kluczowe pliki zostały zmienione. Jeśli zainstalujesz teraz RKHunter i uruchomisz go, wykryje włączenie wielu rootkitów, ale nie wykryje żadnych backdoorów, które atakujący otworzyłby w systemie operacyjnym lub używanych aplikacjach.

Na przykład możesz zakraść się do komputera, utworzyć nowego użytkownika, nadać mu uprawnienia SSH i sudo, a następnie posprzątać, pozostawiając legalnie wyglądającą konfigurację i brak rootkitów - potem wróć później i zrób swoje zło.

Najlepiej jest sprawdzić, które porty nasłuchują na portach, a następnie sprawdzić konfigurację wszystkich tych usług i upewnić się, że wszystkie są legalne. Następnie sprawdź konfigurację zapory i zablokuj niepotrzebne porty, zarówno wejściowe, jak i wyjściowe. Następnie zainstaluj RKHunter itp., Aby zobaczyć, czy jakiś skrypciarz upuścił tam rootowanie.

Szczerze mówiąc, prawdopodobnie mniej pracy wymaga zrobienie tego, co JJ zasugerował i przebudowanie, niż absolutne upewnienie się, że komputer nie został naruszony. Cenne są dane, a nie system operacyjny i konfiguracja (oprócz osobogodzin przy konfiguracji).

Nigdy nie będziesz pewien, że nie był złamany przez kogoś mądrzejszego od ciebie.

dunxd
źródło
0

Pierwszym krokiem powinien być naprawdę rkhunter / chkrootkit, jednak w przeszłości miałem również szczęście, dzięki funkcjom wbudowanym w niektóre menedżery pakietów, na przykład „rpmverify”, który przejdzie przez wszystkie pakiety w twoim systemie i sprawdzi, czy MD5Sumy zawartych w nich plików nie różnią się od plików na dysku.

Podstawowe pliki binarne powinny naprawdę mieć identyczne MD5, co określone w bazach RPM lub DPKG, więc jeśli są różne, wiesz, że dzieje się coś dziwnego.

JamesHannah
źródło
-1

Najbardziej skutecznym sposobem ustalenia, czy system operacyjny jest zagrożony, jest skorzystanie z Second Look . Sprawdzi jądro i całe uruchomione oprogramowanie w pamięci, aby upewnić się, że są one zgodne z tym, co dostarczył dystrybutor. Jest to znacznie lepsze podejście niż rkhunter, chkrootkit itp., Które szukają artefaktów określonych znanych infekcji. Second Look nie przyjmuje żadnych założeń dotyczących integralności systemu operacyjnego, więc nie trzeba go używać ani instalować przed incydentem.

(Oświadczenie: Jestem głównym programistą Second Look.)

Andrew Tappert
źródło