Wordpress i detecció de malware en servidors linux
1. WORDPRESS I DETECCIÓ DE “MALWARE” EN SERVIDORS LINUX
Per Josep Comas (1/12/2015)
Malauradament, la fama del Wordpress té un cantó negatiu, i és que hi hagi clients que et diguin
que no vulguin una web feta amb ell degut a la seva inseguretat publicitària. Bé, jo de moment
no he tingut problemes actualitzant les webs fetes amb Wordpress i tenint instal·lat el plugin
(complement, extensió) iThemes Security https://wordpress.org/plugins/better-wp-security/ El
que sí puc constatar és un intent brutal i constant d’accedir a l’apartat de login, és a dir, a
domini.com/wp-login.php
Si hi ha intents massius d’entrar rebreu, si així heu configurat correctament el plugin anterior
per rebre en un email, la ip de l’atacant que podeu bloquejar afegint el següent a .htaccess de
l’arrel de Wordpress:
# Bloqueig
<files wp-login.php>
Order allow,deny
Deny from a1.b1.c1.d1
Deny from a2.b2.c2.d2
Allow from all
</files>
On a1.b1.c1.d1 seria una ip de l’atacant i a2.b2.c2.d2 una altra ip atacant.
Pel que fa al “malware” (codi maliciós) que es pugui colar per no tenir actualitzat els
plugins associats així com el tema en Wordpress, podem emprar per a la detecció el
programa “maldet” que es pot baixar de https://www.rfxn.com/projects/linux-
malware-detect/, només caldrà descomprimir l’arxiu i executar ./install.sh per a la seva
instal·lació (es recomana tenir instal·lat prèviament l’antivirus ClamAV per a una major
eficiència). Un cop fet això, podem cridar-lo amb maldet -a /var/www/vhosts/ i
examinar les webs que tinguem en el directori /var/www/vhost (substituir
/var/www/vhost pels directoris que vulgueu examinar, si cal, des de l’arrel)
Aquí teniu un exemple de detecció de malware d’un cas real:
# maldet -a /var/www/vhosts/
Linux Malware Detect v1.5
(C) 2002-2015, R-fx Networks proj@rfxn.com
(C) 2015, Ryan MacDonald ryan@rfxn.com
This program may be freely redistributed under the terms of the GNU GPL v2
maldet(4338): {scan} signatures loaded: 10822 (8908 MD5 / 1914 HEX / 0 USER)
maldet(4338): {scan} building file list for /var/www/vhosts/, this might take awhile...
maldet(4338): {scan} setting nice scheduler priorities for all operations: cpunice 19 ,
ionice 6
maldet(4338): {scan} file list completed in 3s, found 46218 files...
2. maldet(4338): {scan} scan of /var/www/vhosts/ (46218 files) in progress...
maldet(4338): {scan} 46218/46218 files scanned: 10 hits 0 cleaned
maldet(4338): {scan} scan completed on /var/www/vhosts/: files 46218, malware hits
10, cleaned hits 0, time 9462s
maldet(4338): {scan} scan report saved, to view run: maldet --report 151126-
1258.4338
maldet(4338): {scan} quarantine is disabled! set quarantine_hits=1 in conf.maldet or to
quarantine results run: maldet -q 151126-1258.4338
Si hi ha malware tindreu “hits”, podeu veure quins fitxers estaran infectats amb maldet
--report 151126-1258.4338 (substituir 151126-1258.4338 pel que us hagi donat) i amb
maldet -q 151126-1258.4338 (substituir 151126-1258.4338 pel que correspongui)
mourà els fitxers infectats a /usr/local/maldetect/quarantine/, en alguns casos seran
fitxers addicionals que es podran esborrar del directori “quarantine” però en d’altres
poden ser fitxers que necessiteu netejar-li el codi, i perquè no torni a passar us caldrà
tenir ben actualitzat el Wordpress. Aquest programa us servirà no només per Wordpress
sinó per altres cms, codi php... que s’hagi pogut infectar aprofitant forats de seguretat.
El plugin de seguretat per Wordpress que us he comentat al principi també té l’opció de
detectar canvis en fitxers però segurament us hagueu donat compte que teniu quelcom
infectat perquè esteu en alguna llista d’spam i a l’enviar correu des del vostre servidor
no podeu entregar-lo al destinatari. http://www.anti-abuse.org/multi-rbl-check/ és un
bon lloc per comprovar si esteu en alguna d’aquestes llistes. El meu consell és que
separeu el servidor de correu del servidor web en ips diferents, i a ser possible, de
proveïdors diferents i que tinguin una bona gestió d’ell.
En general, per mirar la seguretat de codi en php podeu emprar l’script
http://www.abuseat.org/findbot.pl que a part de detectar malware (per això prefereixo
maldet) us indicarà quines funcions en php poden ser usades per codi maliciós. Per a la
detecció d’aquest codi us recomano redirigir la sortida a un fitxer i fer un “grep” per
"Malware detected".
Un últim consell per a webs que hagueu creat, si aquestes no necessiten de directoris
temporals dins la vostra estructura el que podeu fer és que el directori principal de la
web i els seus recursius, és a dir, els que pengen d’ell, siguin de només lectura, així
evitarem que es puguin pujar arxius maliciosos. I com a recordatori, tingueu sempre
còpies de seguretat diàries i de fa temps, per si el malware us hagi pogut anar infectant
arxius al llarg del temps. Eines com rsync (sincronització-replicació molt eficient d’arxius)
i scripts com automysqlbackup (còpies de les diferents bases de dades mysql en calent,
disponible a https://sourceforge.net/projects/automysqlbackup/) us podran ajudar en
aquesta tasca. Per més seguretat, el programari fail2ban us pot anar molt bé per
protegir-vos d’atacs desmesurats juntament amb SELinux per a un accés més controlat
del que es pot fer dins Linux.