přejít na obsah přejít na navigaci

Linux E X P R E S, Na vaši ochranu: Antivirový program ClamAV

Na vaši ochranu: Antivirový program ClamAV

Přestože viry a další podobná škodlivá havěť není na Linuxu zrovna obvyklou záležitostí, existují i pro tento systém antivirové programy. Jedním z nich je svobodný program ClamAV nabízející širokou škálu použití při ochraně před škodlivým softwarem.


Viry na Linuxu?

Diskuze o tom, zda na Linuxu existují viry a ostatní malware a zda představují reálné nebezpečí, se vyskytují poměrně často. Faktem je, že nějaké viry pro Linux tu máme. Ale hlavně: Linux se často používá pro poštovní, souborové a další servery, sloužící uživatelům Windows. Proto se v Linuxu můžeme se škodlivým softwarem setkat poměrně často, byť systému samotnému nebezpečí nehrozí.

Ze stejného důvodu mají na Linuxu svůj smysl i antivirové programy. Většina jejich tvůrců poskytuje nějakou linuxovou verzi svého produktu, i když třeba ne v celé škále funkcí. Jedním z takových programů je ClamAV - pravděpodobně jediný aktivně vyvíjený a dlouhodobě udržovaný svobodný antivirový program. Podívejme se na něj blíže, jeho autoři totiž na svých webových stránkách slibují věci patřící téměř do říše snů.

ClamAV se představuje

Antivirový program ClamAV vyvíjí tým lidí z různých evropských států. Že svému programu věnují velkou péči, je vidět i na tom, že aktualizace virové báze vydávají i několikrát denně. Všechny součásti produktu jsou poskytovány pod licencí GNU GPL verze 2.

ClamAV se skládá z několik částí. Především je to knihovna LibClamAV, která zajišťuje vlastní kontrolní činnost a kterou lze použít v libovolném programu, samozřejmě pod podmínkou dodržení licence. Dalšími komponentami jsou skenovací program clamscan, démon clamd, klientská aplikace clamdscan, "on-access" skener clamuko, aktualizátor freshclam a poštovní filtr clamav-milter (pro poštovní server sendmail).

Existuje i verze pro Windows, kde lze používat také grafické uživatelské rozhraní ClamWin, ale nejsou zde k dispozici všechny funkce programu. Ani uživatelé Mac OS X nepřijdou zkrátka, ClamAV lze používat i zde. Co se týká Linuxu, také tady jsou pro snazší ovládání k dispozici grafická rozhraní (KlamAV, ClamTk).

Detekční schopnosti

ClamAV není jen antivirovým programem, má ve své databázi kromě škodlivého softwaru také vzorky phishingových e-mailových zpráv. To naznačuje, že jednou z hlavních oblastí použití je právě kontrola pošty. Databáze aktuálně obsahuje cca 470 tisíc vzorků, proběhlo již víc než 8700 malých ("denních") a téměř 50 velkých aktualizací.

Důležité samozřejmě není, kolik virů a další havěti program zná, nýbrž jak se osvědčuje při jejich detekci v reálné praxi - včetně toho, jak brzy je schopen detekovat nový škodlivý kód, jak často se vyskytuje planý poplach atd. Se zjištěním, jak si ClamAV stojí, je trochu problém - při testech antivirových programů nebývá zahrnut, takže neexistují prakticky žádné důvěryhodné výsledky.

Na druhou stranu je fakt, že je ClamAV například standardní součástí produktu Mac OS X Server nebo řešení IBM Power Systems, takže lze předpokládat, že si dodavatelé nějaké testy dělali a ohodnotili ClamAV jako dostatečně způsobilý pro takové nasazení.

Co se týká schopnosti detekce v souborech, ClamAV je schopen pracovat s různými druhy spustitelných souborů a dokumentů, s různými formáty e-mailových úložišť a dokáže kontrolovat i archivy (pro některé - např. ZIP nebo RAR - ovšem potřebuje externí podporu), a to i rekurzivně.

Kontrola pošty

Jedním z hlavních úkolů pro ClamAV bývá kontrola e-mailového provozu na serveru. Typicky to funguje tak, že SMTP server přijme zprávu, tu nechá zkontrolovat programem ClamAV na případnou přítomnost virů, a pak s ní nějak dál naloží. Pokud je oním SMTP serverem sendmail, lze využít filtr clamav-milter. Obecně se ale většinou používá řešení založené na programu AMaViS (typicky amavisd-new), který rozebere každou zprávu na jednotlivé součásti a ty pak předkládá k virové (zde ClamAV) a spamové (např. Spamassassin) kontrole.

Poštu lze kontrolovat v zásadě dvojím způsobem. Buď běží démon clamd a tomu se data předkládají ke kontrole, anebo lze spouštět skenovací program (clamscan) vždy na jednotlivé zprávy. Kromě výjimečných případů je vhodnější metoda první, protože není potřeba pokaždé znovu načítat obsáhlou virovou databázi.

Zapojení do KMailuZapojení do KMailu

V linuxových distribucích to bývá běžně tak, že není potřeba se starat o kooperaci mezi programy AMaViS a ClamAV, konfigurační soubory AMaViSu jsou již připravené pro různé antivirové programy, stačí jen případně změnit parametry, je-li třeba.

Ruční kontrola souborů

Ruční kontrola je nejsnazším způsobem použití programu ClamAV. Jednou z možností je použít grafické rozhraní (např. KlamAV), ale i z příkazové řádky se program ovládá velmi jednoduše. Tady je pár příkladů:

clamscan
clamscan divnyprogram.exe
clamscan /home/franta
generator | clamscan -

První příkaz zkontroluje všechny soubory v aktuálním adresáři. Druhý provede kontrolu určeného souboru a třetí kontrolu souborů v zadaném adresáři (pouze v něm, ne v podadresářích). Konečně čtvrtý příkaz znamená, že clamscan bude přijímat data ze standardního vstupu, kam půjdou přes rouru z programu generator. Všechny tyto příkazy provedou standardní kontrolu, tedy s výchozím nastavením.

Pokud potřebujete ovlivnit chování skeneru, je k dispozici řada parametrů, kterými toho lze dosáhnout - například takto:

clamscan -r /home/franta
clamscan --move=/tmp/viry
clamscan -i --bell

Na prvním řádku je mírná modifikace příkazu pro kontrolu určeného adresáře - v tomto případě bude kontrola rekurzivní, tedy včetně podadresářů. Druhý příkaz přesune infikované soubory do adresáře /tmp/viry, třetí pak hlásí jen infikované soubory (jinak se hlásí výsledek kontroly každého souboru) a navíc ještě při nálezu infekce pípne.

Kromě použití skeneru clamscan máte také možnost předávat soubory ke kontrole běžícímu démonu scand, což značně urychluje skenování. Démon ale samozřejmě musí běžet, navíc nelze používat externí programy pro rozebírání archivů a některé parametry nelze nastavovat (démon pracuje podle své konfigurace, uložené obvykle v souboru /etc/clamd.conf). Takto to vypadá:

clamdscan
clamdscan divnyprogram.exe
clamdscan /home/franta
clamdscan -m /home/franta

Jde o obdobu prvních tří příkazů ukázaných u skeneru clamscan. Opět se kontroluje aktuální adresář, resp. zadaný soubor a zadaný adresář. Ovšem pozor - v tomto případě se adresář skenuje vždy rekurzivně. Poslední příkaz ukazuje drobnou modifikaci kontroly. Démon totiž rozlišuje několik různých režimů. V tomto případě se použije tzv. multiscan, což znamená, že se kontrola paralelizuje do více vláken (vhodné na systémech s více procesory či procesorovými jádry).

Automatická (plánovaná) kontrola

Automatická kontrola podle plánu se prakticky nijak neliší od kontroly ruční. Lze opět použít buď clamscan nebo démon clamdscan. Je každopádně žádoucí provádět kontrolu (ať už kterýmkoli způsobem) se sníženou prioritou procesu, vzhledem k procesorové náročnosti, a případně (pokud to jde) též s nižší I/O prioritou.

Samotné spouštění může probíhat prostřednictvím démonu cron nebo anacron, případně z plánovacího nástroje grafického prostředí. Lze si představit také automatickou kontrolu všech nově vznikajících souborů v určitém adresáři (třeba při FTP uploadu), spouštěnou například programem incron.

Kontrola při přístupu k souboru

Antivirové programy se mnohdy používají tak, že kontrolují soubor v okamžiku, kdy ho někdo otvírá (tzv. "on-access" kontrola) - tak mohou zachytit nebezpečný kód dříve, než se stihne spustit. Toto umí i ClamAV, byť to není úplně triviální.

Problém je totiž v tom, že přístup k souborům řeší jádro, kdežto ClamAV je běžný aplikační program. Řešeno je to tedy tak, že je v jádře speciální modul (Dazuko - původně vyvinutý firmou Avira právě pro účely virové kontroly), který umožňuje antivirovému programu získat řízení v okamžiku, kdy se někdo snaží otevřít soubor. Pak lze provést kontrolu a případně otevření souboru zabránit.

Modul dazuko komunikuje s programem ClamAV tak, že vytvoří speciální zařízení, které si ClamAV otevře. Na straně ClamAV se o toto stará komponenta Clamuko, která vytvoří zvláštní vlákno v rámci clamd.

Tento přístup má bohužel své nevýhody. Jednak je potřeba dbát na čisté ukončování démonu clamd, navíc autoři ClamAV přímo varují před použitím tohoto řešení na produkčních systémech. Jako vhodnější náhradu doporučují použít na serverech Samba (což bude typický způsob využití takové kontroly) jiné řešení, založené na modulu samba-vscan, kdy se vše provádí v uživatelském prostoru, bez nutnosti něco provádět v jádře.

Existují ještě další zajímavé metody antivirové kontroly při přístupu. Patří mezi ně například mod_clamav (antivirový modul do HTTP serveru Apache) nebo Avfs (An On-Access Anti-Virus File System - souborový systém určený pro antivirovou kontrolu).

Grafická uživatelská rozhraní

Pro ClamAV existují dvě grafická uživatelská rozhraní pro Linux: KlamAV a ClamTk. První z nich je určeno pro desktopové prostředí KDE, druhé pro GNOME a další prostředí založená na GTK+. Při přítomnosti příslušných knihoven lze programy samozřejmě spouštět i v "cizích" prostředích.

Program KlamAV lze označit za komplexní řešení. Je v něm totiž prakticky vše, co je při antivirové kontrole potřeba - různé ruční kontroly, automatické testy, kontrola pošty (pro klientský program, např. KMail), správa karantény, aktualizace atd. Všechno se dá snadno "naklikat", možnosti jsou skutečně rozsáhlé. Kdo si rád nastavuje věci podle svého, určitě program KlamAV ocení. Z pohledu českého uživatele je trochu nepříjemné, že je přeložen do češtiny pouze částečně.

Nalezen problém v exe souboruNalezen problém v exe souboru

Naproti tomu program ClamTk je velmi jednoduchý - umí pouze ručně spouštěné testy a správu karantény, nic víc. Na jednu stranu je to určité omezení, pro rychlé použití (a pro toho, kdo se nerad proklikává složitým GUI) je to ale výhoda. Po stránce českého překladu je na tom přibližně stejně (špatně) jako KlamAV.

Grafické rozhraní ClamTkGrafické rozhraní ClamTk

Rychlost kontroly

Několikrát jsem se tohoto problému už trochu dotkl. ClamAV je zkrátka pomalý - v porovnání s běžnými antivirovými programy (např. AVG, Avast!, NOD32) až desetkrát. Z toho vyplývají i některá doporučení související s použitím ClamAV.

Aktualizace KlamAV a ClamAVAktualizace KlamAV a ClamAV

Pomalost jednak snižuje použitelnost pro on-access kontrolu. Zejména na pomalejších systémech by takové nasazení znamenalo dlouhé čekání při otevírání každého kontrolovaného souboru. Při automatické i ruční kontrole je pak výhodnější kontrolovat co nejvíce souborů najednou, případně využít služeb démonu - zdaleka nejpomalejší (jednotky až desítky sekund) je totiž načítání virové databáze, proto je žádoucí tuto operaci co nejvíc eliminovat.

Svobodný, použitelný, schopný, ale pomalý

Antivirový program ClamAV je vynikající už tím, že je to svobodný software, který nikoho neomezuje v používání. Odpadá tak nutnost hlídat, zda není vyčerpán počet licencovaných e-mailových schránek či zda se za týden nepřestane aktualizovat virová databáze kvůli vypršení zaplaceného období.

Spolupráce s e-mailovým klientemSpolupráce s e-mailovým klientem

Kvalitu detekce je vzhledem k chybějícím informacím těžké posuzovat. Na základě vlastních zkušeností z tříletého nasazení na poštovním serveru mohu říct, že nevím o jediné infikované zprávě (počítám jen běžný malware, nikoli phishing), která by prošla skrz filtr - současně vím o případech zpráv, které ClamAV správně zachytil jako infikované, zatímco většina ostatních antivirových programů je ještě neznala a propustila je. Někdo jiný může mít samozřejmě zkušenosti odlišné. Pomohly by objektivní testy, pokud by je někdo udělal (resp. do běžných testů ClamAV zahrnul).

Hlavní pole působnosti programu ClamAV bude právě u kontroly pošty, kde mnohdy nevadí pomalost, resp. je více než bohatě vykoupena přínosy ClamAV. Též není problém používat ClamAV pro plánované kontroly souborů, u který také nevadí, když budou trvat poněkud déle. Naopak, kdo by rád používal kontrolu při přístupu, měl by se raději poohlédnout jinde - ClamAV se pro tento úkol příliš nehodí.

Nahoru

Odkazy

Příspěvky

Martin Šín Na vaši ochranu: Antivirový program ClamAV
Martin Šín 16. 12. 2008, 07:43:53
Odpovědět  Odkaz 
Hmm, myslím si, že antivirový program tu není pro moji ochranu, ale pro ochranu systému, kterému hrozí napadení tímto virem. Tzn. nejsme to my, kteří potřebují antivirus, ale je to systém, který ho potřebuje. Také si myslím, že je dobré si uvědomit, že OS Linux antivirový program sám nepotřebuje a instalace antiviru v Linuxu je tak zbytečným mrháním zdrojů počítače.

Modul samba-vscan nebyl doteď dlouhou dobu aktivně vyvíjen (nyní koukám, že se nějaký ochotný vývojář snad našel), ale před několika měsíci jsem ho přestal používat právě z důvodu, že už ani nešel s novou sambou zkompilovat - tedy je to poměrně horké zboží. To samé platí i v případě použití modulu dazuko, jehož instalace na Debianu vyžaduje v první řadě kompilaci vlastního jádra ... Holt, není to jednoduché.

Jako doplněk využití antiviru na serveru bych ještě jmenoval HAVP (antivirová proxy) - kontroluje stahované soubory na přítomnost virů.
Na vaši ochranu: Antivirový program ClamAV
Vojta 16. 12. 2008, 15:15:53
Odpovědět  Odkaz 
V případě, že mám tedy systém pouze s Linuxem, je mi to na nic. A pokud si na fleshku zanesu bordel, ať se s tím poperou ty Windowsy, do kterých to občas strčím. :-) Ale co když mám webový a FTP server? Je to tam k něčemu?
Re:Na vaši ochranu: Antivirový program ClamAV
Martin Sin 16. 12. 2008, 17:03:28
Odpovědět  Odkaz 
A v čem se liší webový a ftp server? Pokud máte Linux,pak se vás běžné viry netýkají (a jiné ani neznám).
Jinými slovy,vir, který je určen pro Windows mi v Linuxu fungovat nebude a tak vlastně přestává být virem. :-)
Re:Re:Na vaši ochranu: Antivirový program ClamAV
Martin H. 16. 12. 2008, 20:19:39
Odpovědět  Odkaz 
Ano, není ti k ničemu ... ale my jsme "hodní" na Woknaře a proto jim instalujeme různá udělátka, vč. antiviru, aby jsme jako správci měli méně starostí s odvirováním jejich strojů :-)

Takže, pro ochranu Linux Mail/WWW serveru fakt k ničemu, ale ten klid, když Woknaři nemají tolik virů za to stojí.

Odpovědět

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích a pravidlech najdete v nápovědě.
Diskuzi můžete sledovat pomocí RSS kanálu rss



 
 

Top články z OpenOffice.cz

Lukáš Jelínek

Lukáš Jelínek

Dlouholetý člen autorského týmu LinuxEXPRESu a OpenOffice.cz. Vystudoval FEL ČVUT v oboru Výpočetní technika. Žije v Kutné Hoře, podniká v oblasti IT a zároveň pracuje v týmu projektu Turris. Ve volném čase rád fotografuje, natáčí a stříhá video, občas se věnuje powerkitingu a na prahu čtyřicítky začal hrát tenis.


  • Distribuce: Debian, Kubuntu, Linux Mint
  • Grafické prostředí: KDE

| proč linux | blog