Čas od času řeším napadané weby na Drupalu a WordPressu, u kterých se jejich majitelé vykašlali na aktualizace. U takových webů je obvykle nějaký škodlivý kód umístěný v index.php a dalších souborech, a to pomocí Unicode značek s funkcí include. Vlastní includovaný škodlivý kód je pak umístěn v nějakém na pohled neškodném souboru. Například v ikonce nebo něčem jako je skrytý soubor s obrázkem.
Máte-li lepší webhosting, upozorní vás na takový problém sám. Máte-li vlastní virtuální nebo dedikovaný server, je na vás, abyste svoje weby nejenom pravidelně aktualizovali, ale také čas od času zkontrolovali.
Jednou z možností, jak prověřit programové soubory webu psaného v PHP, je využití známého bezplatného antiviru ClamAV. Ten sice v základu kontroluje klasické napadení souborů běžnými viry a jiným malwarem, ale můžete jej přizpůsobit i pro kontrolu PHP skriptů.
Instalace ClamAV na server a do počítače
Většina linuxových distribucí, které pravděpodobně budete mít na svém serveru nejčastěji, obsahuje ClamAV ve svém balíčkovacím systému.
V Debianu, Ubuntu a jejich odvozeninách tedy spustíte instalaci následovně:
apt-get install clamav clamav-daemon
V RedHatu, CentOS a jim podobných použijete podobný příkaz:
yum install clamav clamav-scanner clamav-scanner-systemd clamav-server clamav-server-systemd clamav-update
U RedHatu je možné, že budete muset předtím ještě spustit instalaci Extra Packages for Enterprise Linux: yum install epel-release.
Na počítači s Windows je možné použít instalační balíček přímo z webu www.clamav.net. Na Macu spustíte instalaci nejlépe s využitím Homebrew, a to pomocí příkazu v Terminálu:
brew install clamav
Nastavení ClamAV pro kontrolu PHP a aktualizace definic
Nyní je potřeba doplnit do konfiguračních souborů instrukce pro stažení signatur PHP Malware od Malware Expert. Díky nim bude ClamAV schopen rozpoznat nakažené soubory s kódem webu.
V RedHatu zeditujte soubor /etc/freshclam.conf, v Debianu jej najdete v umístění /etc/clamav/freshclam.conf. Používám Debian s editorem nano, takže příkaz pro editaci v mém případě vypadal následovně:
nano /etc/clamav/freshclam.conf
Do konfiguračního souboru přidejte na konec následující řádky a uložte jej.
DatabaseCustomURL http://cdn.malware.expert/malware.expert.ndb
DatabaseCustomURL http://cdn.malware.expert/malware.expert.hdb
DatabaseCustomURL http://cdn.malware.expert/malware.expert.ldb
DatabaseCustomURL http://cdn.malware.expert/malware.expert.fp
Na Macu je třeba po instalaci ClamAV překopírovat soubory clamd.conf.sample a freshclam.conf.sample ve složce /usr/local/etc/clamav na stejný název, ale bez přípony sample. Nebo je jenom přejmenujte. V obou souborech na Macu zakomentujte nebo smažte řádek se slovem Example. Upravte další konfigurační nastavení dle libosti a přidejte nakonec výše zmíněnou čtveřici řádků.
Ve Windows se ve správci souborů přepněte do složky c:\program files\clamav a překopírujte oba konfigurační soubory z podsložky conf_examples o patro výše. I ve Windows z nich poté odeberte nebo zakomentujte řádek Example a doplňte výše uvedenou čtveřici dalších definic.
Po úpravě konfiguračních souborů spusťte v macOS i na Linuxu příkaz pro stažení aktuálních definic škodlivého softwaru:
freshclam
Spuštění kontroly webu
V příkazovém řádku se nyní přepněte do složky, ve které se nachází soubory webu, který byste chtěli zkontrolovat. V Linuxu tedy tam, kde máte živý web, v macOS třeba do složky se staženým webem, u kterého máte podezření na nákazu.
Ve složce s webem pak zadejte prostý příkaz:
clamscan
Antivir projde soubory nacházející se v aktuálním umístění a zobrazí vám přehled kontrolovaných souborů a souhrn s počtem nákaz a časem trvání kontroly. V reálu budete potřebovat zkontrolovat i soubory ve všech podsložkách a nejlépe si nechat průběžně vypisovat jenom napadené soubory.
Následující příkaz to udělá přesně tak, navíc ještě vytvoří soubor se seznamem napadených souborů:
clamscan -ir | tee clamscan.log
Je pak na vás, abyste napadené soubory prošli a vyčistili. V případě běžných redakčních systémů je samozřejmě nejrychleji vyléčíte tím, že je přepíšete čistou verzí z instalačního balíčku, případně smažete, pokud na webu nemají co dělat.
Další možnosti kontroly
ClamAV je jen jednou z možností, jak hledat malware uvnitř složky s webem. Vyzkoušejte i prográmek Malware Detection či maldet nebo též Linux Malware Detect. Trojice názvů patří open source nástroji kontrolujícímu data v prostředí webu.
Nedávno mě zaujal také ImunifyAV nabízející pěkné uživatelské rozhraní. V základu je sice zdarma, ale zatím funguje jen s ovládacími panely cPanel, Plesk, ISP manager a Direct Admin. Prémiová verze vyjde na 6 dolarů měsíčně.
Tvůrce webů z Brna se specializací na Drupal, WordPress a Symfony. Acquia Certified Developer & Site Builder. Autor několika knih o Drupalu.
Web Development Director v Lesensky.cz. Ve volných chvílích podnikám výlety na souši i po vodě. Více se dozvíte na polzer.cz a mém LinkedIn profilu.
Přidat komentář