CSITA - Università di Genova Claudio Di Martino Protezione da virus in ambiente Unix Claudio Di Martino ([email protected]) CSITA - Università di Genova Gennaio – Marzo 2002 CSITA - Università di Genova Claudio Di Martino Antivirus e UNIX • • I Sistemi Operativi della famiglia UNIX non sono solitamente soggetti alle classiche infezioni da virus.Tuttavia i sistemi UNIX spesso sono inseriti in contesti eterogenei e forniscono servizi a macchine con Sistemi Operativi diversi possibilmente più vulnerabili. Questo li mette spesso in posizione privilegiata per effettuare un servizio di controllo antivirus in quanto non sono soggetti ad infezione da parte dei virus che eventualmente possono transitare su di essi. Gennaio – Marzo 2002 CSITA - Università di Genova Claudio Di Martino SOPHOS Anti-Virus (1/2) CSITA ha acquisito un certo numero di licenze server di Sophos antivirus redistribuibili all'interno dell'Università. Sophos è disponibile per un ampio numero di piattaforme e viene costantemente aggiornato: Gennaio – Marzo 2002 CSITA - Università di Genova Claudio Di Martino SOPHOS Anti-Virus (2/2) • • • • • • • • • Windows NT/2000/XP Windows 95/98/Me Linux NetWare DOS/Windows 3.1x OpenVMS OS/2 vari Unix (HP-UX, SCO, Solaris, *BSD, ecc...) Macintosh Gennaio – Marzo 2002 CSITA - Università di Genova Claudio Di Martino Installazione di SOPHOS • Scaricare il file .tar corrispondente al proprio S.O. (https://www2.csita.unige.it/intranet/reftecnici/sophos.php3) in una directory di lavoro (es. /tmp) e posizionarsi in essa (cd /tmp); • • • • Scompattare l'archivio con tar xvf os.arch.tar Entrare nella directory di installazione (cd sav-install); Lanciare lo script di installazione (./install.sh -ni); Impostare la variabile d'ambiente per i file di aggiornamento (SAV_IDE=/usr/local/sav; export SAV_IDE). Gennaio – Marzo 2002 CSITA - Università di Genova Claudio Di Martino Uso di SOPHOS da shell • Verificare che /usr/local/bin sia nel PATH della shell ed eventualmente aggiungerlo: PATH=$PATH:/usr/local/bin; export PATH; • Per fare una scansione rapida dei files con estensione nota nella directory corrente e sottodirectory: sweep . • Per fare una scansione di tutti i file e anche degli archivi contenuti nella directory /samba/shares: sweep -all -archive -rec /samba/shares • Il return code sarà 0 se non verranno rilevati errori e 3 se è stato riconosciuto un virus o un frammento di virus. Gennaio – Marzo 2002 CSITA - Università di Genova Claudio Di Martino Aggiornamento di SOPHOS(1/2) • • • Sophos AV aggiorna le firme dei virus nuovi mediante file ausiliari aggiuntivi al file principale di firme. Questi file hanno estensione .ide. La politica di aggiornamento di Sophos è di fornire un file .ide per ogni nuovo virus. Inoltre, una volta al mese, viene rilasciata una nuova versione del motore di scansione che integra tutti gli .ide rilasciati fino a quel momento. Gennaio – Marzo 2002 CSITA - Università di Genova Claudio Di Martino Aggiornamento di SOPHOS(2/2) • CSITA ha attivato un mirror dei file di firme. Il seguente script, se l'installazione è stata eseguita come indicato precedentemente, mantiene aggiornati i file .ide. cd $SAV_IDE wget -N http://www.csita.unige.it/antivirus/ide/ides.zip RETURN_STATUS=$? if [ $RETURN_STATUS -gt 0 ]; then exit fi unzip -o ides.zip Gennaio – Marzo 2002 CSITA - Università di Genova Claudio Di Martino Integrazione di Sophos AV con un MTA • • Integrare l'antivirus ai più comuni Message Transfer Agent per Linux/Unix permette di controllare tutta la posta in arrivo e bloccare i messaggi che contengono allegati con virus. Per svolgere questo compito, il MTA deve essere coadiuvato da un apposito programma; le istruzioni che seguono si riferiscono all'integrazione di Amavis con Sendmail. Gennaio – Marzo 2002 CSITA - Università di Genova Claudio Di Martino Installazione di maildrop(1/2) • • Scaricare i sorgenti del mail delivery agent maildrop all'indirizzo http://www.flounder.net/~mrsam/maildrop/; Scompattare il file scaricato (ad es. nella directory /usr/src con il comando: cd /usr/src; tar xvfz maildrop-1.3.6.tar.gz • Preparare l'installazione con il comando: cd /usr/src/maildrop-1.3.6; ./configure Gennaio – Marzo 2002 CSITA - Università di Genova Claudio Di Martino Installazione di maildrop(2/2) • • • Attendere la fine della configurazione e compilare i sorgenti con il comando make Installare i compilati con il comando make install Se si vuole includere la scansione di allegati compressi (zip,arj,lha ecc.) si devono installare le utility in grado di gestire i diversi formati (di solito esistono le versioni pacchettizate per tutte le principali distribuzioni). Gennaio – Marzo 2002 CSITA - Università di Genova Claudio Di Martino Installazione di AmaViS (1/2) • • Scaricare i sorgenti di AMaViS (A Mail Virus Scanner) all'indirizzo http:///www.amavis.org Scompattare il file scaricato con il comando: cd /usr/src ; tar xvfz amavis-0.2.1.tar.gz • Preparare l'installazione con il comando: cd /usr/src/amavis-0.2.1 ; ./configure. Gennaio – Marzo 2002 CSITA - Università di Genova Claudio Di Martino Installazione di AmaViS (2/2) • Controllare che durante la configurazione amavis riconosca la presenza dell'antivirus Sophos: [...] checking *** Sophos Sweep *** checking for sweep... /usr/local/bin/sweep checking if /usr/local/bin/sweep really is Sophos Sweep... yes [...] • • Compilare i sorgenti con il comando make Installare i compilati con il comando make Gennaio – Marzo 2002 install CSITA - Università di Genova Claudio Di Martino Integrazione di Sophos AV con Sendmail(1/3) • Modificare il file di configurazione sendmail.cf (generalmente in /etc/mail/) sostituendo le righe: Mlocal, P=/usr/bin/procmail, F=lsDFMAw5:/|@SPfhn, S=10/30, R=20/40, T=DNS/RFC822/X-Unix, A=procmail -Y -a $h -d $u con #Mlocal, P=/usr/bin/procmail, F=lsDFMAw5:/|@SPfhn, S=10/30,R=20/40, # T=DNS/RFC822/X-Unix, # A=procmail -Y -a $h -d $u Mlocal, P=/usr/sbin/scanmails, F=lsDFMAw5:/|@SPfhn, S=10/30,R=20/40, T=DNS/RFC822/X-Unix, A=scanmails -Y -a $h -d $u Gennaio – Marzo 2002 CSITA - Università di Genova Claudio Di Martino Integrazione di Sophos AV con Sendmail(2/3) • In alternativa è possibile ricompilare il file sendmail.cf. Si devono aggiungere al file .m4 da cui è stato generato il file di configurazione sendmail.cf le seguenti direttive: dnl change Mlocal to use AMaViS define(`LOCAL_MAILER_PATH', `/usr/sbin/scanmails')dnl define(`LOCAL_MAILER_ARGS', `scanmails -Y -a $h -d $u')dnl • Una volta completata la modifica è necessario far ripartire il server di posta. Gennaio – Marzo 2002 CSITA - Università di Genova Claudio Di Martino Integrazione di Sophos AV con Sendmail(3/3) • Per un corretto funzionamento di AMaViS è necessario definire alcuni alias (nel file /etc/aliases o /etc/mail/aliases): [...] root: superuser postmaster: root MAILER-DAEMON: postmaster virusalert: virusmaster [...] • Digitare il comando newaliases al termine della modifica per rendere attivi i nuovi alias. Gennaio – Marzo 2002 CSITA - Università di Genova Claudio Di Martino Personalizzazione di AMaViS • È possibile personalizzare AMaViS editando il file /usr/sbin/scanmails in modo che notifichi il riconoscimento dei virus ai diretti interessati: [...] ################################################ # send virus report to admin (see mailto)? # # send notification message to sender? # # send notification message to receiver? # ################################################ notifyadmin=yes notifysender=yes notifyreceiver=yes [...] Gennaio – Marzo 2002 CSITA - Università di Genova Claudio Di Martino Test di AMaViS • • Per testare l'installazione è possibile utilizzare i pattern presenti sul sito http://www.eicar.org/ (NON sono pericolosi) . Se AMaViS è stato installato correttamente e si spedisce eicar in attachment compare un messaggio di questo tipo in /var/log/mail.log: [...] Nov 30 17:24:33 server scanmails[8149]: execution started Nov 30 17:24:35 server scanmails[8149]: FOUND VIRUS IN MAIL from [mittente] to [destinatario] [...] Nov 30 17:24:35 server scanmails[8149]: terminating Gennaio – Marzo 2002 CSITA - Università di Genova Claudio Di Martino Installazione di AMaViS su un relay (1/4) • • L'installazione precedente è utile per un server che recapiti localmente la posta. Nel caso di un server che effettua relay o che gestisce mailing-list è comunque possibile configurare sendmail in modo che AMaViS filtri tutta la posta in transito. Prima di procedere alla modifica del file sendmail.cf è opportuno crearne una copia di salvataggio e operare su un'ulteriore copia: cd /etc/mail cp sendmail.cf sendmail.cf.pre-amavis cp sendmail.cf sendmail.cf.post-amavis Gennaio – Marzo 2002 CSITA - Università di Genova Claudio Di Martino Installazione di AMaViS su un relay (2/4) • Creare la directory che amavis userà per gestire la posta in entrata: mkdir /var/spool/mqamavis chmod 0755 /var/spool/mqamavis • Editare il file sendmail.cf.post-amavis e modificare la riga che inizia con: O QueueDirectory= in modo che punti alla directory appena creata: O QueueDirectory=/var/spool/mqamavis Gennaio – Marzo 2002 CSITA - Università di Genova Claudio Di Martino Installazione di AMaViS su un relay (3/4) • Modificare la riga che inizia con: O StatusFile= in modo che scriva nel file /var/log/amavis.st: O StatusFile=/var/log/amavis.st • Individuare la riga che inizia con: Mlocal e inserire precedentemente le seguenti righe: Mamavis, P=/usr/local/sbin/amavis, F=mlsACDFMS5:/|@qhP, S=0, R=0 T=DNS/RFC822/X-Unix, A=amavis $f $u Gennaio – Marzo 2002 CSITA - Università di Genova Claudio Di Martino Installazione di AMaViS su un relay (4/4) • Individuare la riga che contiene la stringa: final parsing e inserire una riga precedente con la regola: R$* • $#amavis $:$1 Sostituire sendmail.cf con sendmail.cf.post e riavviare il server di posta. Gennaio – Marzo 2002 CSITA - Università di Genova Claudio Di Martino Riferimenti • • • • • http://www.sophos.com/ http://www.csita.unige.it/antivirus/sophos.html http://www.amavis.org/ http://www.flounder.net/~mrsam/maildrop/ http://www.eicar.org/anti_virus_test_file.htm Gennaio – Marzo 2002