Czym jest rootkit?
Rootkit to rodzaj zagrożenia, o którym mniej świadomi użytkownicy, a niekiedy nawet administratorzy systemów mogli nie słyszeć. Cała potęga rootkitów wynika z podstawowego założenia, które przyświeca ich twórcom. Rootkit ma być narzędziem, które umożliwia niezauważone działanie w systemie z podniesionymi do poziomu administracyjnego uprawnieniami. W tym celu wykorzystuje się różne techniki ukrywania plików i procesów lub podszywania się pod dobrze znane usługi systemowe (również na poziomie jądra systemu). Do uruchomienia rootkitów dochodzi najczęściej w efekcie włamania do systemu lub jego zainfekowania przez różnego rodzaju złośliwe oprogramowanie. Co gorsza, rootkit może pozostawać w systemie niezauważony nawet po usunięciu głównego zagrożenia czy podatności, za sprawą których został on zainstalowany.
Jak znaleźć i usunąć rootkita?
W systemach Windows z rootkitami lepiej lub gorzej radzą sobie programy antywirusowe. W usuwaniu rootkitów pomagają też skanery zagrożeń takie jak Spyboot Search & Destroy czy Malwarebytes Anti-Rootkit.
Inaczej ma się sprawa w systemach z rodziny Linux/Unix. Tutaj z powodu wciąż pokutującego błędnego przekonania, że systemy te są odporne na wirusy administratorzy bagatelizują kwestie regularnego skanowania systemów w poszukiwaniu zagrożeń. Doświadczenie uczy nas jednak, że serwery linuksowe są równie częstym celem ataków, a zainstalowane na nich rootkity potrafią działać miesiącami w sposób niezauważalny dla administratorów. Poniżej omówię zatem kilka narzędzi, z których warto skorzystać gdy pojawi się podejrzenie, że zabezpieczenia naszego serwera mogły zostać przełamane. Warto ich używać również w przypadku przejmowania opieki nad systemami, którymi wcześniej administrował ktoś inny lub prewencyjnie uruchamiać je regularnie na własnych systemach.
Chkrootkit
Chkrootkit to pierwsze z popularnych narzędzi do skanowania w poszukiwaniu podejrzanych procesów oraz plików należących do znanych rootkitów. Chkrootkit dostępny jest w każdej popularnej dystrybucji linuksa i można go zainstalować np. przy użyciu instalatora pakietów apt w systemach opartych na debianie:
apt-get install chkrootkit
W przypadku, gdy nasza dystrybucja nie udostępnia gotowych pakietów z tym narzędziem możemy pobrać je i zainstalować ze strony http://www.chkrootkit.org/download/
Po zainstalowaniu uruchamiamy skaner poleceniem chkrootkit. W wyniku jego działania otrzymujemy listę wykonanych operacji z wynikami analizy:
> sudo chkrootkit
[…]
ROOTDIR is `/'
Checking `amd'... not found
Checking `basename'... not infected
Checking `biff'... not found
Checking `chfn'... not infected
Checking `chsh'... not infected
Checking `cron'... not infected
Lynis
Kolejne narzędzie służy do audytowania bezpieczeństwa systemów z rodziny Linux/Unix, ale również macOS. Umożliwia ono weryfikację ustawień mających wpływ na bezpieczeństwo i pozwala dostosować je do wymogów wynikających np. ze standardów HIPAA/ISO27001/PCI DSS. Podobnie, jak w poprzednim przypadku Lynis dostępny jest w większości dystrybucji i zainstalować go możemy przy użyciu naszego managera pakietów, np.
apt-get install lynis
lub pobierając ze strony: https://github.com/CISOfy/lynis
Jeżeli instalowaliśmy go wcześniej, to przed uruchomieniem warto upewnić się, że korzystamy z najnowszej wersji:
> lynis update info
[ Lynis 2.1.1 ]
[+] Initializing program
------------------------------------
- Detecting OS... [ DONE ]
- Checking profile file (/etc/lynis/default.prf)...
- Program update status... [ WARNING ]
===============================================================================
Lynis update available
===============================================================================
Po ewentualnej aktualizacji uruchamiamy skaner poleceniem lynis audit system
> lynis audit system
[...]
Lynis security scan details:
Hardening index : 63 [############ ]
Tests performed : 189
Plugins enabled : 1
Quick overview:
- Firewall [V] - Malware scanner [V]
Lynis Modules:
- Heuristics Check [NA] - Security Audit [V]
- Compliance Tests [X] - Vulnerability Scan [V]
Files:
- Test and debug information : /var/log/lynis.log
- Report data : /var/log/lynis-report.dat
Przydatnym parametrem w wynikach skanowania jest Hardening index, który pokazuje nam poziom „utwardzenia” naszego systemu i daje możliwość porównania go z innymi. Co zrobić, gdy nasz index jest niezadowalający? Dowiemy się za chwilę.
Wyniki skanowania zwracane są stopniowo i za każdym razem wymagają potwierdzenia ze strony użytkownika za pomocą [enter]. Zwracane są m.in. informacje na temat bezpieczeństwa boot managera, jądra, procesów, pamięci, użytkowników, grup, systemu plików, pakietów oprogramowania, portów, sieci, drukarek, oprogramowania pocztowego, firewalla, serwisów (www, ssh, snmp, ldap, squid), baz danych (mysql, postgres, oracle), logów, zadań zaplanowanych w cronie i wielu, wielu innych aspektów bezpieczeństwa. Jeżeli nie chcemy na każdym etapie potwierdzać zapoznania się ze zwracanymi wynikami możemy uruchomić skaner poleceniem lynis –quick. Wówczas wszystkie wyniki zwrócone zostaną bez oczekiwania na potwierdzenie z naszej strony.
Ostatnią sekcją w wynikach skanowania są sugestie działań, które należy przeprowadzić w celu zwiększenia swojego hardening indeksu. Co istotne, opatrzone są one linkami do strony producenta, na której znajdziemy szczegółowe informacje dotyczące danego zagrożenia.
Suggestions:
----------------------------
- Install libpam-tmpdir to set $TMP and $TMPDIR for PAM sessions [CUST-0280]
https://cisofy.com/controls/CUST-0280/
- Install libpam-usb to enable multi-factor authentication for PAM sessions [CUST-0285]
https://cisofy.com/controls/CUST-0285/
- As root run 'ecryptfs-migrate-home --user netdata' to configure Ecryptfs for user's home directory [CUST-0520]
https://cisofy.ccom/controls/CUST-0520/
[...]
Rkhunter
Kolejne popularne narzędzie dostępne w prawie każdej dystrybucji to rkhunter. Skaner ten poszukuje rootkitów, backdorów oraz exploitów. Instalujemy tradycyjnie, przy użyciu managera pakietów, np.
apt-get install rkhunter
lub pobieramy ze strony http://rkhunter.sourceforge.net/. Skanowanie uruchamiamy poleceniem rkhunter –check. Jeżeli program był już zainstalowany wczesniej, to warto zatroszczyć się o jego aktualizację poleceniem rkhunter –update oraz rkhunter –propupd.
rkhunter --check
[...]
Checking for rootkits...
Performing check of known rootkit files and directories
55808 Trojan - Variant A [ Not found ]
ADM Worm [ Not found ]
AjaKit Rootkit [ Not found ]
Adore Rootkit [ Not found ]
aPa Kit [ Not found ]
Apache Worm [ Not found ]
[...]
All results have been written to the log file: /var/log/rkhunter.log
One or more warnings have been found while checking the system.
Please check the log file (/var/log/rkhunter.log)
Po zakończonym procesie skanowania w katalogu /var/log/ znajdziemy plik rkhunter.log z wynikami analizy.
Tiger
Tiger, podobnie jak Lynis jest narzędziem, za pomocą którego możemy nie tylko wyszukiwać rootkity, ale również przeprowadzić audyt konfiguracji systemu. Po raz kolejny do instalacji w popularnych dystrybucjach wystarczyć nam powinien manager pakietów:
apt-get install tiger
Aby uruchomić skanowanie wywołujemy polecenie tiger.
> sudo tiger
[...]
20:15> Performing root directory checks...
20:15> Checking for secure backup devices...
20:15> Checking for the presence of log files...
20:15> Checking for the setting of user's umask...
20:15> Checking for listening processes...
20:15> Checking SSHD's configuration...
[...]
Security report is in `/var/log/tiger/security.report.xxx.170408-20:06
W podanej powyżej ścieżce znajdziemy obszerny raport z analizy naszego systemy (xxx w tym przypadku oznacza nazwę systemu).
Omówione cztery narzędzia (Chkrootkit, Rkhunter, Lynis i Tiger) z pewnością nie wyczerpują tematu. Powinny one jednak być znane każdemu administratorowi systemów, któremu leży na sercu bezpieczeństwo.
Zostaw e-mail aby otrzymać powiadomienia o nowościach oraz dostęp do wszystkich bonusowych materiałów przygotowanych wyłącznie dla subskrybentów.