Il primo
commento inserito nel codice sorgente del virus è
"barok -loveletter(vbe) <i hate go to school>"
La frase "i hate go to school" significa "odio andare a
scuola", notate però che la lettera "i", quando indica
la prima persona, in inglese dovrebbe essere scritta in maiuscolo.
Il
codice
Il
codice del virus è facilmente visibile in quanto uno script VBS
contiene le istruzione Visual basic "in chiaro" cioè non
compilate. E' sufficiente aprire il file del virus in un editor di
testi (anche il Blocco Note) per visualizzare il codice.
Analizzare il codice di questo virus ha diversi scopi utili, tra cui
scoprire come difendersi meglio da questo virus, come rimediare ai
danni che provoca oppure mettere alla prova le proprie capacità di
programmazione e di conoscenza del linguaggio.
Di seguita darò una breve descrizione del funzionamento del virus e
delle sue caratteristiche. Chiaramente questa sarà una introduzione,
ognuno di voi, se lo vorrà, potrà andare a studiarsi da solo il
codice più in profondità.
Le prime righe del codice del virus sono dedicate ai commenti di cui
ho parlato in precedenza e alla impostazioni di alcune variabili che
poi saranno usate nel programma.
La riga 10 costituisce la chiamata alla sub main() che da il
via vero e proprio all'attività del virus.
Il codice è composto da 8 subroutines i cui nomi sono:
- main()
- regruns()
- listadriv
- infectfiles(folderspec)
- folderlist (folderspec)
- regcreate(regkey,
regvalue)
- spreadtoemail()
- html()
e dalle tre
funzioni:
- regget(value)
- fileexist()
- folderexist(folderspec)
Passo ora alla
descrizione delle azioni del virus.
La sub main() imposta alcune variabile usate nelle successive
routine e crea nell'ordine i tre files "MSKernel32.vbs",
"Win32DLL.VBS" e LOVE-LETTER-FOR-YOU.TXT.vbs". Il primo
e il terzo vengono inseriti nella directoy di sistema di windows
(SYSTEM in Win9x o SYSTEM32 in WinNT) mentre il seocndo finisce nella
directory di Windows.
In seguito vengono lanciate le seguenti routines:
- regruns()
- html()
- spreadtoemail()
- listadriv()
La sub regruns()
inserisce nel registro due chiavi che fanno eseguire all'avvio del
sistema i due script "MSKernel32.vbs" e
"Win32DLL.vbs". Il sotto programma inoltre individua la
directory impostata di default per lo scaricamento dei files da
internet e verifica che esista il file "WinFAT32.exe" nella
directory di Windows. Se quest'ultimo file esiste, il virus modifica
(attraverso il Registro) la Pagina Iniziale di MS Internet Explorer
inserendo la URL del file "WIN-BUGFIX.EXE" posto in una
sottodirectoy (dal nome complicato e apparentemente insensato) 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. Dopodiché la Pagina Iniziale di
IE diventa "about:blank"
La
routine html() crea una pagina HTML contente il
codice virale nella directory di Windows con il nome "LOVE-LETTER-FOR-YOU.HTM".
Questa pagina verrà poi usata dal virus per infettare altri utenti
attraverso mIRC.
La sub spreadtoemail() legge gli indirizzi e-mail
nella rubrica del client predefinito MAPI e prepara per ognuno una
e-mail con le seguenti caratteristiche con oggetto "ILOVEYOU"
e testo nel corpo "kindly check the attached LOVELETTER coming
from me.". Al messaggio viene allegato il file "LOVE-LETTER-FOR-YOU.TXT.vbs"
contenuto nella directory di Windows.
listadriv()
analizza i drives presenti nel disco e per ogni unità esegue la
funzione folderlist .
infectfiles(folderspec)
si occupa di individuare tutti i files con scripts o fogli di stile
(*.vbs, *.vbe, *.js, *.jse, *.css, *.wsh, *.sct, *.hta) e ne
sostituisce il codice con una copia integrale del virus.
Le immagini JPEG (*.jpg, *.jpeg) e i files sonori in MP3 e MP2 (*.mp2,
*.mp3) vengono sovrascritti da un file avente lo stesso nome,
estensione *.vbs e, come contenuto, di nuovo una copia del codice
virale.
Questa routine, inoltre cerca la presenza del software mIRC,
uno dei più diffusi per l'uso delle Internet Relay Chat e crea nella
sua cartella un file di nome "SCRIPT.INI". Questo script
contiene i comandi per inviare ai propri interlocutori una copia di
"LOVE-LETTER-FOR-YOU.HTM" che è una pagina html contente
ancora una copia del virus.
Cosa
ci riserva il futuro
Questo virus, nonostante il grande clamore suscitato, in effetti, non
era né particolarmente sofisticato né pericoloso.
La maggior parte degli utenti di PC sa (o dovrebbe sapere) che gli
allegati di posta elettronica non vanno MAI aperti prima di essere
sicuri del loro contenuto, vanificando così l'azione del virus alla
fonte. La possibilità di analizzare semplicemente il codice virale,
inoltre, ha permesso un rapido studio del virus e delle contromisure
per combatterlo.
Gli analisti sostengono che vbs.Loveletter sia solo il primo di una
serie di virus che si diffonderanno attraverso i programmi di posta
elettronica. Purtroppo, sfruttando opportunamente alcune
caratteristiche dei Mail reader avanzati con MS Outlook, è possibile
forzare il software all'apertura dei file in allegato senza la
necessità dell'avvio manuale. Allo stato attuale sarebbe impossibile
difendersi contro un virus di questo tipo. Tutte le grandi Software
House, però, stanno lavorando per rendere un po' più sicuri i propri
software di messaggistica.
Inoltre possiamo notare che, nonostante la tecnologia sia ampiamente
disponibile, questo tipo di virus non si è ancora visto in
circolazione. Questo potrebbe essere spiegato considerando forse
alcune difficoltà di ordine pratico nella scrittura di un programma
di questo genere o anche l'eccessiva aggressività del virus: per
essere veramente inevitabile, il virus, dovrebbe essere in grado di
infettare il suo stesso creatore.