Hlavní navigace

ClamAV: antivirus nejen pro poštu, přidání dalších signatur

Petr Macek

V článku o konfiguraci vlastního poštovního serveru byl zmíněn antivirus ClamAV. Přestože dnes existují alternativy, stále se jedná o velmi použitelný antivirus. Řekneme si o něm více.

ClamAV je open source a po dlouhou dobu byl jedním z mála antivirů, které bylo možné zdarma na vlastním poštovním serveru používat. V posledních letech je situace lepší, obzvláště u placeného software. Z mého pohledu je ClamAV stále dobře použitelný, jen má trochu problém s virovými bázemi. Přeci jen nejde srovnávat virové báze komerčních produktů (Eset, Kaspersky a další) a báze tvořené malou skupinou kolem ClamAVu. Proto ClamAV nabízí použití signatur třetích stran, což si také ukážeme. Zajímá vás, co která signatura obsahuje? Na to se také podíváme.

Začneme malou odbočkou – v článku o poštovním serveru byl ClamAV použit jako součást Amavisu. ClamAV má i podporu pro sendmail, tzv. milter. Stačí zkompilovat s příslušnou volbou ( ./configure –enable-milter) nebo třeba ve FreeBSD nainstalovat přímo port nebo balík clamav-milter. Do sendmailu pak jen přidáme:

INPUT_MAIL_FILTER(`clmilter',`S=local:/var/run/clamav/clmilter.sock, F=, T=S:4m;R:4m')

Pustíme démony (clamd, clamav-freshclam, clamav-milter), vygenerujeme nový cf soubor pro sendmail a je to. ClamAV-milter je asi jasný, clamd je vlastní antivir a freshclam se stará o aktualizace.

Offline kontrola

Začneme nejjednodušším, tedy offline kontrolou. Na některých serverech používám tohle na kontrolu dat, která mi nahrávají uživatelé, třeba přes FTP. Doporučuji nacronovat:

# cd /usr/local/ftp
# clamscan -r -i -l zavirovani.log

Samozřejmě jsou i FTP servery, které už ClamAV implementují a kontrola probíhá už při uploadu. O tom níže.

Signatury třetích stran

Pokud chcete více signatur z dalších zdrojů, znamená to větší paměťovou náročnost. Dále se dostanu i ke konfiguračním úpravám, které také vyžadují další paměť. Připravte se na to, že si ClamAV vezme třeba 1,5 GB RAM.

Pro využití signatur třetích stran je nutné v konfiguraci takovou věc povolit. V konfiguračním souboru  clamd.conf:

OfficialDatabaseOnly no

A kde tedy virov báze vzít? Buď můžete znovu vynalézat kolo – hledat a konfigurovat jednotlivé zdroje nebo se podívejte na GitHub. Pro správnou funkci budete potřebovat několik dalších nástrojů – rsync a dig (bind-tools).

Z GitHubu potřebujete jen tři soubory:

  • master.conf z adresáře config  – zkopírujte si do  /usr/local/etc
  • zde se ale podívejte i na konfigurační soubory jednotlivých distribucí a upravte dle nich potřebné údaje (uživatel, tmp, …) v  master.conf
  • clamav-unofficial-sigs.sh  – Nakopírujte do /usr/local/bin

Doporučuji projít důkladně konfigurační soubor. Je tam napsáno, kde všude se musíte zaregistrovat (získat jedinečné ID) a tyto údaje potom zadáte do konfigurace. Je zde i několik služeb zdarma, pro které nemusíte dělat nic dalšího, ale efekt pak není takový.

Nezapomeňte naplánovat jeho spouštění v cronu:

40 */4 * * *   /usr/local/bin/clamav-unofficial-sigs.sh

První spuštění doporučuji z ruky, ať vidíte, zda je vše ok. Můžete třeba zjistit, že část aktualizací nestáhnete třeba kvůli chybějícímu rsyncu.

V logu ClamAVu pak uvidíte, o kolik signatur jste si polepšili. Řádově by to měly být jednotky milionů. Část těchto zdrojů ale není úplně aktuální, jsou mezi nimi i placené verze a ve variantě zdarma dostáváte třeba signatury o několik dnů až týdnů později.

Myslím, že má význam i některé koupit, osobně používám SecuriteInfo. Za pár eur získáte docela dost. Problémem občas může být se na tom webu proklikat k placení.

Je zde i doporučení, co vše v konfiguraci změnit:

DetectPUA yes
IncludePUA Spy
IncludePUA Spyware
IncludePUA Game
IncludePUA Keylogger
IncludePUA Spam
IncludePUA Trojan
IncludePUA NetTool
IncludePUA Win
ScanXMLDOCS yes
DetectBrokenExecutables yes

Také se doporučuji podívat na pravidla foxhole a povolit je. Ty řeší všechny možné kombinace komprimovaných skriptů (JavaScript a další), kterými se škodlivosti rády šíří. Lze tedy použít i jako filtr příloh.

Práce se signaturami

Máme více pravidel a stoupá riziko false-positive. I v SecuriteInfo jsem nalezl signatury, se kterými nesouhlasím. Je možné udělat whitelist. Je to textový soubor s názvem local_whitelist.ign2 v adresáři /var/db/clamav. Jeho obsah je jednoduchý – každá řádka jedna signatura:

SecuriteInfo.com.Spam-661
PUA.Win.Trojan.EmbeddedPDF-1
SecuriteInfo.com.Spam-2945

Pokud vás zajímá, co přesně pravidlo řeší, je možné se podívat:

# sigtool --find-sigs SecuriteInfo.com.Spam-661
[spam_marketing.ndb] SecuriteInfo.com.Spam-661:4:*:582d4d61696c65723a204d6963726f736f6674204f75746c6f6f6b204578707265737320362e30302e333739302e34363537*582d4d696d654f4c453a2050726f6475636564204279204d6963726f736f6674204d696d654f4c452056362e30302e333739302e34393133

Víme, že pravidlo je ze souboru spam_marketing.ndb. Obsah pravidla:

# sigtool --find-sigs SecuriteInfo.com.Spam-661  | sigtool --decode-sigs
VIRUS NAME: SecuriteInfo.com.Spam-661
TARGET TYPE: MAIL
OFFSET: *
DECODED SIGNATURE:
X-Mailer: Microsoft Outlook Express 6.00.3790.4657{WILDCARD_ANY_STRING}X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.4913

Je vidět, že pravidlo řeší stařičký Outlook Express. Já i dnes klienty s tímhle programem potkávám, takže proto ta výjimka. Chcete si řešit vlastní pravidla? Koukněte se třeba na malwarefor.me.

Online kontrola příště

Protože ClamAV je zde už opravdu dlouho, byl začleněn i do dalšího software a je možné tento nástroj použít třeba i na Samba serveru pro online kontrolu otevíraných souborů nebo v IDS/IPS Suricata. To si ukážeme v dalším článku, pokud o něj bude zájem.

Našli jste v článku chybu?