[S.Li.P] Fwd: Virus per Gnu/Linux

Lucio lucio a sulweb.org
Mar 29 Ott 2019 10:03:15 CET


@Davide: Il problema è dare una definizione univoca o almeno largamente 
accettata di cosa sia un virus. Io ci ho rinunciato ed uso il termine 
"virus" in contesti in cui altri direbbero che non so di cosa parlo (e 
magari avrebbero ragione). In realtà un rootkit mi fa molta più paura di 
un virus...

Ai fini di questa discussione io userò il termine "virus" per intendere 
qualsiasi programma progettato per
- installarsi aggirando la volontà dell'utente e le autorizzazioni da 
lui esplicitamente concesse
- nascondersi in modo da sembrare un altro programma legittimo

In questi termini i rootkit rientrano nei virus (della peggior specie se 
chiedi a me) ed una certa parte del software proprietario sarebbe da 
considerare un virus (esempio varie uova di pasqua di mamma Microsoft), 
ma spero che il contesto renda chiaro che non sto parlando di quello.

@Mauro: non esiste una procedura standard per trovare e togliere un 
virus. Non esiste nemmeno su Windows, tanto che gli antivirus devono 
essere continuamente aggiornati per saper gestire i nuovi virus man mano 
che vengono scoperti (o prodotti dalle stesse case degli antivirus 
direbbe qualche malfidente...). Posso però raccontarti cosa è successo a 
me e come ho risolto.

Il 28 agosto, poco prima di mezzanotte, ho iniziato ad avere problemi 
sul mio PC portatile. La ventola girava al massimo di continuo, anche 
con nessun programma avviato (se non altro, nessun programma visibile 
all'utente).

Inizialmente avevo pensato si trattasse di qualche sito che avviava uno 
script bacato (di solito navigo con molte linguette aperte). Tuttavia 
anche chiudendo il browser e tenendo solo il desktop XFCE attivo, il 
carico di sistema non accennava a scendere.

Guardando i processi attivi con top, ho notato un processo dal nome per 
me nuovo (tsm). Qui sta il problema: io sono un sysadmin e conosco la 
maggior parte dei processi in esecuzione su un sistema linux, ma un 
utente medio non li conosce e non saprebbe distinguere un processo 
legittimo da un intruso. Una ricerca su Google può aiutare, ma saper 
scremare ad occhio quelli legittimi velocizza molto la ricerca.

Il fatto che cercando "tsm linux process" su Google non apparisse alcun 
risultato rilevante ha fatto subito aumentare i sospetti.

Una volta identificato il processo per nome, ho guardato il suo PID 
numerico, sempre in top (prima colonna). Ovviamente non ricordo quale 
fosse, ma ipotizziamo fosse il numero 666. Nel terminale sono andato ad 
analizzare da dove provenisse questo processo:

# cd /proc/666
# ls -l cwd exe

Se si è fortunati, il comando ls ci mostrerà quale sia la cartella in 
cui lavora quel processo (file cwd) e dove si trova il file eseguibile 
che fa partire quel processo (file exe). Nel mio caso non ricordo se 
l'ho trovato così, ma mi pare di no, perché quel processo sapeva come 
nascondere queste informazioni.

Sono quindi andato per esclusione, sempre grazie al fatto che conosco il 
sistema. Ero sicuro di non aver avviato io quel processo, quindi doveva 
essere stato avviato da qualche altro processo legittimo.

Su GNU/Linux fortunatamente non ci sono segreti ed i possibili punti di 
partenza automatici non sono poi molti:

1) gli script di avvio del sistema: stile SystemV per i nostalgici 
(quindi /etc/rc.local & Co.) e quelli di systemd per chi si trova nel 2019.

2) le operazioni pianificate: /etc/cron* e le equivalenti di systemd 
visibili con #systemctl list-timers

3) script di avvio a livello utente: $HOME/.profile, $HOM£/.bashrc e simili

4) operazioni pianificate a livello utente: sempre cron (comando 
$crontab -e dato come utente normale invece che come root) e le 
equivalenti systemd (comando $systemctl --user list-timers dato come 
utente non root)

5) la cartella di avvio automatico dell'ambiente grafico (di solito 
$HOME/.config/autostart)

Nel mio caso le operazioni cron a livello utente (punto 4 della lista 
qui sopra) erano quelle che il virus aveva usato per avviarsi da solo. 
Aveva creato una cartella $HOME/.nullcache/ ed aveva installato lì 
dentro alcuni files eseguibili dal contenuto ovviamente ignoto, ma che 
erano i responsabili dell'avvio via cron del processo tsm.

Trattandosi di un'infezione a livello utente e non root, ho immaginato 
che il virus fosse entrato sfruttando qualche problema di sicurezza di 
Chrome o di Firefox o di Thunderbird. Ho aggiornato tutti i software 
installati, cancellato la cartella $HOME/.nullcache e sono andato a 
dormire tranquillo.

$ history | grep nullcache
[...]
8943  29/08/19 00:04:10 rm -rf .nullcache/
[...]

Alcuni giorni dopo l'infezione si è ripresentata, ma questa volta ci ho 
messo molto meno ad identificarla ed eliminarla:

$ history | grep nullcache
[...]
9270  03/09/19 20:31:18 stat .nullcache/
9271  03/09/19 20:31:26 rm -rf .nullcache/

Ho di nuovo aggiornato tutti i software (probabilmente 4 giorni prima 
l'aggiornamento di sicurezza non era ancora arrivato sui repo di 
Debian). Da lì in avanti non ho più avuto problemi.

Alla fine quel che prevedevo 13 anni fa nel mio articolo "Virus per 
Linux: utopia o solo questione di tempo?" sembra essersi avverato. 
L'unico problema è che, vuoi per sfiga o per contrappasso, la vittima 
sono stato io...

https://softwareliberopinerolo.org/articoli/65


Il 29/10/19 08:41, Davide Corio via SLiP ha scritto:
> Virus veri e proprio no, non mi è mai capitato.
> RootKit parecchi.
> 
> Se non erro però è capitato a Lucio. O forse anche nel suo caso non era 
> un vero e proprio virus?
> 
> In ogni caso, antivirus per gnu/linux ce ne sono.
> Penso che il più diffuso tra quelli open sia ancora ClamAV
> 
> Il giorno mar 29 ott 2019 alle ore 08:36 Mauro . via SLiP 
> <slip a liszt.softwareliberopinerolo.org 
> <mailto:slip a liszt.softwareliberopinerolo.org>> ha scritto:
> 
>     Ciao,
> 
>     volevo chiedere se a qualcuno è mai
>     capitato di avere un virus su un sistema
>     operativo Linux, per sapere da cosa te ne accorgi e
>     se può essere eliminato.
>     -- 
>     SLiP mailing list
>     SLiP a liszt.softwareliberopinerolo.org
>     <mailto:SLiP a liszt.softwareliberopinerolo.org>
>     https://liszt.softwareliberopinerolo.org/listinfo/slip
> 
> 
> 
> -- 
> Davide Corio
> enlightx a gmail.com <mailto:enlightx a gmail.com>
> 



Maggiori informazioni sulla lista SLiP