Do tej pory mogliście przeczytać w moich wpisach m.in. o automatyzacji nieautoryzowanej instalacji Debiana. Dzisiaj zajmiemy się tak zwanym Obowiązkowym Hattrickiem Admina czyli 3xA. W dzisiejszym artykule zabezpieczymy serwer pod kątem wirusów, malware i rootkitów. 

Dawniej panowało przekonanie, że na Linuxa nie ma wirusów. Rzeczywiście kiedyś ciężko było spotkać typowego wirusa pod system linux, ale wraz ze wzrostem jego popularności pojawiły się złośliwe aplikacje, które mają za zadanie nie tylko wykraść nasze dane, ale także mogą zamienić nasz serwer w potencjalne narzędzie do ataku, np DDOS na inny serwer lub infrastrukturę. Właśnie dlatego dziś zabezpieczymy się przed tym na 3 sposoby. 

Clamav 

Najpopularniejszym i darmowym narzędziem w walce przeciwko wirusom na Linuxa jest popularny Clamav. Jest to najczęściej używane narzędzie do ochrony przeciwko wirusom, najbardziej rozwijane i skuteczne. Clamav w systemie Linux może działać jako demon, albo jako narzędzie adhoc wtedy kiedy go potrzebujemy. 

Jaka jest różnica? W trybie demona Clamav wczytuje do pamięci sygnatury milionów wirusów i złośliwych aplikacji, tak aby skanowanie plików mogło odbyć się bardzo szybko, niemal w czasie rzeczywistym. Clamav wyłączony z demona, każdorazowo musi załadować wszystkie sygnatury do pamięci co zabiera sporo czasu zwłaszcza na wolniejszych serwerach, co wpływa na szybkość skanowania poszczególnych plików i nie jest tak wydajne. 

Aktualizujemy na początek listę pakietów:
apt update

Instalacja Antywirusa Clamav w systemie Debian: 
apt install clamdscan clamav

Instalacja Demona Clamav w systemie Debian:
apt install clamav-daemon

Skanowanie pojedynczego pliku w trybie usługi:
clamscan plik 

Skanowanie pojedynczego pliku w trybie Demona:
clamdscan –fdpass plik

Porada: Możemy skorzystać z dodatkowych poleceń Clamava – np automatycznego przenoszenia zainfekowanych plików do Kwarantanny. 

Utwórzmy na początek katalog kwarantanny:
mkdir -p /tmp/quarantaine

Skanowanie:&
clamscan –move=/tmp/quarantaine plik clamdscan –fdpass –move=/tmp/quarantaine plik

Wiemy już jak skanować pliki, jak zatem przeskanować cały katalog? np. /var/www
clamscan –move=/tmp/quarantaine -ri /var/www

Jaka jest zatem różnica między skanowaniem Clamava w trybie demona, a w trybie wywołania? 

W trybie demona (z wczytaną bazą wirusów od pamięci):
sudo clamdscan –fdpass –move=/tmp/quarantaine plik

plik: OK 

———– SCAN SUMMARY ———– 

Infected files: 0
Time: 0.570 sec (0 m 0 s)

Podsumowanie skanowania 1

W trybie adhoc (bez wczytanej bazy wirusów do pamięci)
clamscan –move=/tmp/quarantaine plik

plik: OK

———– SCAN SUMMARY ———–

Known viruses: 7016614
Engine version: 0.102.2
Scanned directories: 0
Scanned files: 1
Infected files: 0
Data scanned: 5.80 MB
Data read: 2.88 MB (ratio 2.01:1)
Time: 28.580 sec (0 m 28 s)

Podsumowanie skanowania 2

Widać więc, że na samym załadowaniu bazy wirusów do pamięci zyskujemy w przypadku pojedynczego pliku wiele czasu. W przypadku katalogów z wieloma plikami różnica będzie jeszcze większa.

Jak zaktualizować Clamava? Poza standardową aktualizacją pakietów w systemie poprzez apt, Clamav dodatkowo sam uruchamia co godzinę (w systemie Debian) aktualizowanie bazy sygnatur z wirusami.

Sun May 17 04:00:03 2020 -> Received signal: wake up
Sun May 17 04:00:03 2020 -> ClamAV update process started at Sun May 17 04:00:03 2020
Sun May 17 04:00:03 2020 -> daily.cld database is up to date (version: 25814, sigs: 2415321, f-level: 63, builder: raynman)
Sun May 17 04:00:03 2020 -> main.cvd database is up to date (version: 59, sigs: 4564902, f-level: 60, builder: sigmgr)
Sun May 17 04:00:03 2020 -> bytecode.cvd database is up to date (version: 331, sigs: 94, f-level: 63, builder: anvilleg)

Jeśli Clamav znajdzie zainfekowany plik – pokaże nam stosowny komunikat:

Skanowanie 3

chrootkit

Niemniej groźne od wirusów są współczesne rootkity czyli aplikacje, których zadaniem jest umożliwienie atakującemu uzyskanie uprawnień administratora (root’a) systemu bez wiedzy użytkownika/administratora. Najczęściej rootkity ukrywają siebie i usuwają z listy procesów, a także mogą ukrywać inne procesy z listy, tak aby administrator lub użytkownik nie zorientował się, że pracują w systemie.

Jak przeciwdziałać, wykrywać rootkity?

Instalacja:
apt install chrootkit

Skanowanie:
chkrootkit

chrootkit

Rootkit Hunter

Rootkit Huner to kolejna aplikacja po chrootkicie, która skanuje system operacyjny w poszukiwaniu podmienionych plików i aplikacji, a także może sprawdzać aktualność systemu, uprawnienia. Potrafi także zakomunikować niebezpieczne konfiguracje usług jak na przykład niedostatecznie chronioną usługę SSH.

Instalacja:
apt install rkhunter

Skanowanie rootkit hunter’em:
rkhunter -c

Rootkit Hunter

Performing 'strings’ command checks

               Checking 'strings’ command                                         [ OK ]

  Performing 'shared libraries’ checks

               Checking for preloading variables                                [ None found ]

               Checking for preloaded libraries                                   [ None found ]

               Checking LD_LIBRARY_PATH variable                      [ Not found ]

  Performing file properties checks

               Checking for prerequisites                             [ OK ]

Warto w tym miejscu poświęcić nieco więcej czasu na automatyzację tych zadań. Możemy ustawić cykliczne skanowanie w cronie, możemy także skorzystać z nasłuchu na inode (inotify).

Gdzie szukać logów z aplikacji?
Clamav: /var/log/clamav chrootkit: /var/log/chkrootkit rkhunter: /var/log/rkhunter.log

Co jeśli znajdziemy wirusa? co dalej?

Jeżeli podczas rutynowego, automatycznego lub zaplanowanego skanowania natrafimy na wirusa lub plik podejrzany warto posiłkować się także innymi rozwiązaniami dostępnymi bezpłatnie w sieci internet. Z pomocą przychodzi nam doskonale znane wszystkim narzędzie: https://virustotal.com.

Kiedy już skaner znajdzie plik podejrzany lub zainfekowany i przeniesie go do kwarantanny lub pokaże ostrzeżenie na ekranie, wyeksportujmy w bezpieczny sposób i załadujmy do skanera online, aby dodatkowo upewnić się, że plik jest zainfekowany.

Dostępny bezpłatnie skaner online od virustotal wykorzystuje kilkadziesiąt silników najbardziej popularnych antywirusów i antimalware dzięki czemu możemy z niemal 100% pewnością stwierdzić czy dany plik jest zainfekowany czy nie.

Strona główna virustotal.

Virus Total

Widok pokazujący plik, który został zainfekowany.

Zainfekowany plik