^^^Problema: virus, trojan e spyware hanno infettato il vostro pc, l'antivirus pare non funzioni e/o non riesce a cancellare i files infetti. Avete il sospetto che ci siano virus ancora sconosciuti. ^^^Perchè linux? Con linux è possibile avere un vero sistemo operativo su live cd con migliaia di programmi che , in questo caso, possono comprendere svariati antivirus, recupero dati, partizionamento, forensic, ecc, ecc ^^^Strategia Operando da cd gli antivirus e relativi aggiornamenti non possono essere compromessi, il cd stesso non può essere compromesso ed i virus non possono essere attivi perchè il s.o. sul quale sono installati non è attivo. Con alcuni accorgimenti è possibile lanciare la scansione di più antivirus ed avere i rispettivi risultati di seguito in file di testo, questo è molto comodo perchè evita di presidiare per ore il pc in attesa di lanciare i vari av. Con find, xargs, grep è possibile fare delle ricerche "superspecializzate" ad esempio sul contenuto di tutti i file che hanno la stessa data di un virus, o su tutti i files eseguibili creati e/o modificati in un certo periodo, ecc, ecc. Con mv (o il filemanager) è possibile rinominare i files sospetti senza cancellarli, se qualcosa va storto basta riavviare con il cd e ripristinare il nome originale. Con biew, hexdump, ecc è possibile controllare il contenuto di un file binario, molti virus sono facilmente individuabili controllando con un editor esadecimale i binari infettati. ^^^Costruire il proprio cd La cosa più comoda e veloce è modificare un live cd (knoppix, faether, insert, ecc ecc) inserendo uno o più antivirus oltre a quello/i che eventualmente sono presenti. Oltre a clamav ci sono altri av gratuiti (clamav e rilasciato sotto gpl la maggior parte degli altri qui indicati sono freeware) come f-prot, antivir e bitdefender. La caratteristica di questi citati è che sono "scriptabili" e non necessitano necessariamente di una interfaccia grafica. Oltre a queste caratteristiche essi dovranno avere la possibilità di scrivere su di un file di log ed avere una dimensione abbastanza contenuta. Sebbene con alcuni av è possibile indicare la posizione dei files contenenti le rispettive definizioni (con alcuni non è possibile) è meglio lasciare dei link sulle posizioni originali e spostare tutto in una porzione scrivibile del nostro live cd, es: /var/local. F-prot, ad esempio, può essere delocalizzato spostando la cartella /usr/local/f-prot in /var/local e piazzando un link ( ln -s /var/local/f-prot /usr/local/f-prot) nella posizione originale, gli aggiornamenti in questo modo potranno essere scaricati anche dal live cd. Spesso non si dispone di una connessione internet e/o si vuole avere un sistema "pronto all'uso" con le definizioni già aggiornate. Teoricamente si potrebbe conservare il filesystem espanso in una partizione con linux e, di tanto in tanto, aggiornare i vari av in chroot. Il problema è che la generazione del filesystem compresso è una operazione lunga ed avida di cpu e gli av dovrebbero essere aggiornati molto spesso. Una soluzione semplice è portare fuori dal filesystem compresso le definizioni. Basta installare gli stessi av nella propria distribuzione linux, con uno script aggiornarne le definizioni e creare un file compresso che contenga le definizioni stesse e la loro posizione: find ed afio fanno tutto in pochi secondi! In questo modo si dovrà ricreare solo la iso finale, questo avverrà in pochi instanti. Un esempio funzionante dello script di aggiornamento: #! /bin/sh echo -e "\n\n\t\tAggiorno la definizione degli antivirus....attendi.." #Aggiorno f-prot /usr/local/f-prot/check-updates.sh #Aggiorno Bit Defender bdc --update #Aggiorno clamav freshclam #Aggiorno antivir antivir --update wait echo -e "\n\n\t\tAggiorno il file var-local.afio contenente la definizone dei virus x il live cd" find /opt/ /usr/local/ /var/lib/ \( -name '*.DEF' -o -name '*.xmd' -o -name '*.ivd' -o -name '*.cvd' -o -name '*.rvd' -o -name '*.ivd' -o -name '*.vdf' \) | afio -oZvG9 /MAXCD2430/vir-def.afio echo -e "\n\n\t\tFatto!" exit Per installare gli aggiornamenti basta piazzare queste due righe in uno script che viene lanciato all'avvio del cd ( es /KNOPPIX/knoppix.sh). cd / afio -iZ /cdrom/vir-def.afio Uno script che presenta una pseudo interfaccia grafica che permette di selezionare l'av ( anche tutti in sequenza..), montare una partizione, selezionare una directory da controllare e gestire il log dei vari av: Xdialog --icon /usr/share/pixmaps/python2.3-32.xpm --wrap --backtitle Note --title Antivirus --msgbox "Questo è una procedura guidata per verificare la presenza di virus nel disco rigido. Sarà possibile selezionare quattro antivirus diversi e montare le partizioni in lettura/scrittura. La presenza di eventuali virus verrà soltanto segnalata ma non verrà effettuata nessuna modifica sui files. Questi potranno, per esempio, essere rinominati manualmente usando il file manager o il comando mv." 20 50 antiv=$(Xdialog --icon /usr/share/pixmaps/python2.3-32.xpm --title Antivirus --menu "Quale antivirus vuoi utilizzare?" 0 0 5 F "F-prot" C "Clam" B "BitDefender" A "Antivir" T "Tutti" 2>&1 >/dev/tty) Xdialog --icon /usr/share/pixmaps/python2.3-32.xpm --title Antivirus --wrap --yesno "Questi sono i dischi attualmenti montati:\n`mount | grep mnt/[s,h]d | awk '{ print $1, $5 }'`\nVuoi montare altri dischi?" 0 0 case $? in 0) monta=$(Xdialog --icon /usr/share/pixmaps/python2.3-32.xpm --title Antivirus --backtitle "Seleziona il disco" --no-buttons --dselect /mnt/ 0 0 0 2>&1 > /dev/tty) mount $monta;; 1) Xdialog --icon /usr/share/pixmaps/python2.3-32.xpm --title Antivirus --infobox "Hai scelto di non montare altri dischi...proseguo" 0 0 3000 ;; 255) echo "";; esac Xdialog --icon /usr/share/pixmaps/python2.3-32.xpm --title Antivirus --msgbox "Ora dischi attualmenti montati sono:\n`mount | grep mnt/[s,h]d | awk '{ print $1, $5 }'`" 0 0 dir=$(Xdialog --icon /usr/share/pixmaps/python2.3-32.xpm --title Antivirus --backtitle "Seleziona la dir da controllare" --dselect /mnt/ 0 0 0 2>&1 > /dev/tty) if [ $antiv = C ] then clamscan -r -i --unzip=/usr/bin/unzip --unrar=/usr/bin/rar --unarj=/usr/bin/unarj --unzoo=/usr/bin/unzoo --lha=/usr/bin/lha -l /ramdisk/home/knoppix/virus.txt $dir #Con la path di unrar non funziona bene..chissà...boh! elif [ $antiv = F ] then f-prot -archive -packed -append -list -report=/home/knoppix/virus.txt $dir elif [ $antiv = B ] then /opt/bdc/bdc --all --arc --mail $dir | tee -a /ramdisk/home/knoppix/virus.txt elif [ $antiv = A ] then /var/local/antivir/antivir --allfiles -s --scan-in-archive --scan-in-mbox --heur-macro --heur-level=3 -ra /ramdisk/home/knoppix/virus.txt $dir elif [ $antiv = T ] then Xdialog --icon /usr/share/pixmaps/python2.3-32.xpm --title Antivirus --msgbox "Hai selezionato tutti gli antivirus:\n la porzione di file system selezionata verrà controllata con quattro antivirus ed i risultati registrati nel file antivirus.txt.\nLa procedura potrebbe richiedere molto tempo" 0 0 echo "========Antivir============" >> /ramdisk/home/knoppix/virus.txt /var/local/antivir/antivir --allfiles -s --scan-in-archive --scan-in-mbox --heur-macro --heur-level=3 -ra /ramdisk/home/knoppix/virus.txt $dir; echo "========Clamscan===========" >> /ramdisk/home/knoppix/virus.txt clamscan -r -i --unzip=/usr/bin/unzip --unrar=/usr/bin/rar --unarj=/usr/bin/unarj --unzoo=/usr/bin/unzoo --lha=/usr/bin/lha -l /ramdisk/home/knoppix/virus.txt $dir echo "========F-PROT=============" >> /ramdisk/home/knoppix/virus.txt f-prot -archive -packed -append -report=/home/knoppix/virus.txt $dir echo "======Bitdefender==========" >> /ramdisk/home/knoppix/virus.txt /opt/bdc/bdc --all --arc --mail $dir | tee -a /ramdisk/home/knoppix/virus.txt else echo "" fi Xdialog --icon /usr/share/pixmaps/python2.3-32.xpm --wrap --backtitle Note --title Antivirus --msgbox "Puoi rivedere l' esito aprendo il file /home/knoppix/virus.txt" 0 0 Naturalmente dovrete creare il file contente i logs, piazzate queste due righe in /KNOPPIX/knoppix.sh: touch /home/knoppix/virus.tx ln -s /home/knoppix/virus.txt /home/knoppix/avlinux.log Max bmax-AT-gmx.it |