Qualsevol servidor accessible per internet, independentment del sistema operatiu, és susceptible de poder infectar-se amb malware o algun programa maliciós en algun moment. En aquest article, et mostrarem com escanejar el teu servidor en cerca de malware i com realitzar una auditoria del servidor, per poder estar més tranquil que el teu servidor Linux està net. Entre les opcions, detallarem els passos per ClamAV, Lynis, LMD, Rkhunter, Chkrootkit i PHP-Antimalware-Scanner.
ClamAV
Una de les eines més populars per detectar malware, virus, troians, etc., és ClamAV. Aquesta solució està molt integrada en servidors de correu, però també funciona molt bé per escanejar directoris sota demanda. A més, aquesta solució és de codi obert (Open Source).
Per instal·lar ClamAV a Debian/Ubuntu, executa:
# apt install clamav clamav-freshclam clamav-daemon clamdscanPer instal·lar ClamAV a CentOS/AlmaLinux, executa:
# yum install epel-release
# yum -y install clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd Un cop instal·lat ClamAV, el primer que hauràs de fer és actualitzar les signatures de la base de dades de virus amb la següent comanda:
# freshclamAra ja pots executar una anàlisi d'un directori. Per provar un positiu i comprovar que funciona correctament, executarem:
# vi /var/virustest.txtAfegim el següent contingut:
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
Després executa la següent comanda:
clamscan -r -i /var/
Al finalitzar podràs veure que ha trobat un fitxer infectat:
var/virustest.txt: Eicar-Signature FOUND
----------- SCAN SUMMARY -----------
Known viruses: 8577355
Engine version: 0.103.2
Scanned directories: 310
Scanned files: 3204
Infected files: 1
Data scanned: 214.73 MB
Data read: 516.17 MB (ratio 0.42:1)
Time: 37.451 sec (0 m 37 s)
Start Date: 2021:11:15 16:53:15
End Date: 2021:11:15 16:53:53
Amb això ja pots analitzar directoris i fins i tot configurar una tasca cron perquè ho faci de manera automàtica i enviar un mail amb el resultat.
Chkrootkit
Si vols realitzar una exploració del teu servidor a la recerca de rootkits, una de les opcions més populars és Chkrootkit. Entre les diferents tasques que pot realitzar hi ha l’anàlisi dels binaris del sistema, comprovar si la interfície està en mode promisc, si hi ha eliminacions de lastlog o wtmp, comprovar si hi ha indicis de troians LKM, substitució de cadenes i comprovació d’eliminacions d’utmp.
Quins Rootkits, troians i LKM pot detectar?
Hi ha una llista extensa que pots consultar a la pàgina oficial fent clic en aquest enllaç.
Instal·lació a Debian/Ubuntu:
# apt update
# apt install chkrootkitInstal·lació a CentOS/Alma Linux:
# dnf config-manager --enable powertools
# dnf install glibc-static
# yum install tar wget gcc-c++ gcc
# cd /usr/local/src
# wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz
# tar -zxvf chkrootkit.tar.gz
# mkdir /usr/local/chkrootkit
# mv /usr/local/src/chkrootkit*/* /usr/local/chkrootkit
# cd /usr/local/chkrootkit
# make sensePer fer un anàlisi a Debian/Ubuntu:
# chkrootkitPer fer un anàlisi a CentOS/Alma Linux:
# /usr/local/chkrootkit/chkrootkitAquest comando executa totes les opcions que pot realitzar per defecte.
En finalitzar el procés tindràs un resultat similar al següent:
ROOTDIR is `/'
Checking `amd'... not found
Checking `basename'... not infected
Checking `biff'... not found
Checking `chfn'... not infected
Checking `chsh'... not infected
Checking `cron'... not infected
Checking `sniffer'... lo: not promisc and no packet sniffer sockets
eth0: PACKET SNIFFER(/usr/lib/systemd/systemd-networkd[30273])
Checking `w55808'... not infected
Checking `wted'... chkwtmp: nothing deleted
Checking `scalper'... not infected
Checking `slapper'... not infected
Checking `z2'... chklastlog: nothing deleted
Checking `chkutmp'... chkutmp: nothing deleted
Checking `OSX_RSPLUG'... not tested
En negreta tens un exemple de possible infecció. En aquest cas es tractaria d'un fals positiu ja que la interfície de xarxa està configurada per dhcp.
Rkhunter
Aquesta eina és molt similar a chkrootkit ja que també realitza escanejats del sistema per a detectar rootkits i altres vulnerabilitats. Tenir totes dues instal·lades és una bona idea pel fet que algunes vegades es produeixen falsos positius i així poder constatar el problema amb dues eines.
Per a instal·lar Rkhunter en Debian/Ubuntu executa els següents comandos:
# apt update
# apt install rkhunterPer a instal·lar Rkhunter en CentOS/AlmaLinux executa els següents comandos:
# yum install epel-release
# yum update
# yum install rkhunterPosteriorment, edita la configuració de rkhunter executant el següent comando:
# vi /etc/rkhunter.confEdita les següents variables perquè tinguin aquests valors:
MIRRORS_MODE=0
UPDATE_MIRRORS=1
WEB_CMD=""El següent pas és actualitzar les signatures:
# rkhunter --updatePer a realitzar una anàlisi executa el següent comando:
# rkhunter -cEn finalitzar el procés tindràs un resultat similar al següent:
System checks summary
=====================
File properties checks...
Files checked: 142
Suspect files: 0
Rootkit checks...
Rootkits checked : 498
Possible rootkits: 0
Applications checks...
All checks skipped
The system checks took: 1 minute and 50 seconds
All results have been written to the log file: /var/log/rkhunter.log
One or more warnings have been found while checking the system.
Please check the log file (/var/log/rkhunter.log)Amb aquesta eina al costat de Chkrootkit tindràs un bon indici de si el teu sistema està infectat per rootkits.
LMD – Linux Malware Detect
LMD és una eina de codi obert que analitza el sistema a la recerca de programari maliciós. A més, es pot integrar amb ClamAV per a un millor rendiment. Per defecte, la integració ve activada.
Per instal·lar LMD executa les següents ordres:
# cd /tmp
# wget http://www.rfxn.com/downloads/maldetect-current.tar.gz
# tar -zxvf maldetect-current.tar.gz
# cd maldetect-1.*
# bash install.sh
Per executar una anàlisi d’un directori, executa la següent ordre:
# maldet -a /homeSi no es detecta cap malware, obtindràs una resposta com aquesta:
Linux Malware Detect v1.6.4
(C) 2002-2019, R-fx Networks <proj@rfxn.com>
(C) 2019, Ryan MacDonald <ryan@rfxn.com>
Aquest programa pot ser redistribuït lliurement sota els termes de la GNU GPL v2
maldet(3714): {scan} signatures carregades: 17258 (14436 MD5 | 2039 HEX | 783 YARA | 0 USER)
maldet(3714): {scan} construint la llista de fitxers per a /home/, això pot trigar una estona...
maldet(3714): {scan} establint prioritats del planificador nice per a totes les operacions: cpunice 19 , ionice 6
maldet(3714): {scan} llista de fitxers completada en 0s, s'han trobat 4 fitxers...
maldet(3714): {scan} s'ha trobat el binari clamav a /usr/bin/clamdscan, s'utilitza el motor d'escaneig clamav...
maldet(3714): {scan} escaneig de /home/ (4 fitxers) en curs...
maldet(3714): {scan} escaneig completat a /home/: fitxers 4, impactes de malware 0, impactes netejats 0, temps 0s
maldet(3714): {scan} informe d’escaneig desat, per veure’l executa: maldet --report 211118-1512.3714Com que has instal·lat prèviament ClamAV, s’ha utilitzat el binari per executar l’anàlisi.
Lynis
Un dels punts més importants per evitar infeccions al sistema és la prevenció i securització prèvia del servidor de manera correcta. La funció principal d’aquesta eina és fer una auditoria del servidor basada en configuracions del sistema operatiu, kernel, programari instal·lat, xarxa, criptografia i anàlisi de malware, per finalment presentar un informe amb millores que es poden adoptar per augmentar la seguretat del servidor.
Per instal·lar Lynis en Debian/Ubuntu, executa:
# apt install lynisPer instal·lar Lynis en CentOS/Alma Linux, executa:
# yum install epel-release -y
# yum install lynis -y
Per fer una auditoria del sistema, executa:
# lynis audit systemEl resultat ens donarà avisos sobre aspectes a millorar en el nostre sistema, i a més proporciona enllaços web amb informació sobre com solucionar els possibles problemes:
-[ Lynis 2.6.2 Results ]-
Warnings (5):
----------------------------
! Version of Lynis is very old and should be updated [LYNIS]
https://cisofy.com/controls/LYNIS/
! No password set for single mode [AUTH-9308]
https://cisofy.com/controls/AUTH-9308/
! Found one or more vulnerable packages. [PKGS-7392]
https://cisofy.com/controls/PKGS-7392/
! Found some information disclosure in SMTP banner (OS or software name) [MAIL-8818]
https://cisofy.com/controls/MAIL-8818/
! iptables module(s) loaded, but no rules active [FIRE-4512]
https://cisofy.com/controls/FIRE-4512/
Suggestions (50):
----------------------------
* Install libpam-tmpdir to set $TMP and $TMPDIR for PAM sessions [CUST-0280]
https://your-domain.example.org/controls/CUST-0280/
* Install libpam-usb to enable multi-factor authentication for PAM sessions [CUST-0285]
https://your-domain.example.org/controls/CUST-0285/
* Install apt-listbugs to display a list of critical bugs prior to each APT installation. [CUST-0810]
https://your-domain.example.org/controls/CUST-0810/
* Install apt-listchanges to display any significant changes prior to any upgrade via APT. [CUST-0811]
https://your-domain.example.org/controls/CUST-0811/
* Install debian-goodies so that you can run checkrestart after upgrades to determine which services are using old versions of libraries and need restarting. [CUST-0830]
https://your-domain.example.org/controls/CUST-0830/Plugins
Si disposes d’una subscripció a la versió Enterprise, és possible ampliar les funcionalitats de Lynis mitjançant plugins. Els pots trobar en aquest enllaç.
PHP-Antimalware-Scanner
PHP-Antimalware-Scanner és una eina de seguretat per a llocs web desenvolupats en PHP, que detecta malware i altres amenaces. Funciona escanejant els fitxers del codi font del lloc web per trobar patrons sospitosos que podrien indicar la presència de malware.
Per utilitzar-la, descarrega-la amb:
# wget https://raw.githubusercontent.com/marcocesarato/PHP-Antimalware-Scanner/master/dist/scanner
I executa-la amb la CLI de PHP:
# php scanner /ruta/directori/web/ --auto-skip --allRealitzarà una anàlisi de la ruta indicada i, si troba fitxers infectats, et preguntarà quina acció vols aplicar. Tot i això, és important tenir en compte que PHP-Antimalware-Scanner no és una solució completa de seguretat per al teu lloc web.
Esperem haver-te ajudat amb aquest tutorial 🙂. Recorda que si tens consultes sobre aquesta o qualsevol altra qüestió relacionada amb els teus servidors a Clouding, no dubtis a escriure a suport@clouding.io.
Estem al teu costat per al que necessitis!