                   Analisi del virus AUREA
                   -----------------------

- Classificazione secondo i parametri del VSUM

Virus Name : AUREA
Aliases    : None
V Status   : New
Discovered : May, 1993
Symptoms   : Overwriting of disk sectors; display string on the
             screen.
Origin     : Unknow
Eff. Length: 639 bytes
Type Code  : PNC - Parasitic Not Resident .COM infector;
             Encrypted.
Detection  : User strings
Removal Instructions : Possible.

- User string for F-Prot 2.08a

"1E0E1FBE2600FC8A260E00B967028A0432C48804"

- User string for TBSCAN 6.02, ViruSCAN 104

"1E0E1FBE2600FC8A260E00B967028A0432C4880446E2F7"

-- Commenti generali:

     La prima volta in cui viene lanciato  un  programma  infetto
dal virus AUREA, eseguito il  salto (di  tipo FAR  intersegmento) 
alla prima istruzione della codifica virale e terminate le opera-
zioni della routine  di decrittazione  su un totale di 615 bytes, 
il virus comincia  una ricerca di files con estensione .COM nella 
directory corrente. La ricerca viene eseguita attraverso l'uso di 
funzioni  DOS 2.0+,  la  4EH  (Find First Matching file) e la 4FH 
(Find Next Matching file),  l'attributo  iniziale  della  ricerca 
viene settato a quello di Archivio (20H).
     Il virus NON infetta COMMAND.COM.  Per  evitare  l'infezione
della shell,  una volta che la ricerca abbia dato esito positivo,
vengono testati i primi 8 bytes del nome presenti nel  campo  1EH
della DTA settata dal virus (DTA = Disk Transfer Area - Area usa-
ta  dalle funzioni DOS di ricerca sopra menzionate).  Vengono in-
fettati soltanto dei files uguali o inferiori alla  lunghezza  di
63000 bytes.  Come gia' riscontrato nei virus LUCA-309 e ARAGORN,
il programma da infettare viene aperto in lettura/scrittura senza
fare alcun test sugli attributi. Per cui, se l'eseguibile possie-
de l'attributo READONLY settato,  il virus non sara' in grado  di
infettarlo.
     Per  stabilire  se l'eseguibile e' gia' stato infettato,  il
virus legge in memoria i primi 14 bytes, poi esegue un test tra i
bytes letti e una sequenza di bytes presente nel  codice  virale.
     Il test viene operato sui primi 10 bytes letti.
     Prima di procedere all'infezione,  il virus allinea al para-
grafo il codice dell'host,  aggiungendo in coda all'eseguibile il
numero di bytes che risulta dalla seguente operazione:
               
     10H - (Length_Of_File and 000FH)
               
     La routine di decrittazione dell'AUREA usa una semplice tec-
nica di polimorfismo, calcolando  ogni volta un valore random per 
cifrare il codice del virus. Il numero casuale e' ottenuto attra-
verso la funzione 2CH (Get DOS Time)  dell'INT 21H. Sui valori di 
ritorno della funzione 2CH (Registri della  CPU: CX e DX), vengo-
no operati alcuni calcoli aggiuntivi, intesi ad ottenere il nume-
ro pseudo-casuale necessario al processo di crittazione del virus.
     Una volta cifrato il proprio codice,  l'AUREA  "appende"  un
totale di 653 bytes al programma host.
     Il totale dei bytes e' cosi' composto:

     1) I primi 14 bytes originali del programma infettato
     2) Il valore random ottenuto con la funzione 2CH (1 byte)
     3) La routine di decrittazione (23 bytes)
     4) Il codice cifrato del virus (615 bytes)

     Infine, dopo essersi spostato all'inizio dell'host, il virus
ne riscrive i primi 14 bytes.
     Dopo le operazioni di scrittura,  viene ripristinata la data
originale del programma infettato.
     NOTA: L'intera operazione di ricerca & infezione viene RIPE-
TUTA nella directory C:\DOS.

     Terminata la procedura di infezione, l'AUREA richiede la da-
ta del sistema attraverso la funzione 2AH (Get DOS Date) dell'INT
21H. Vengono operati i seguenti test sulla data ottentuta:

     1) (Mese = Marzo) AND (Giorno = 1)
        a) Riscrittura di 100 settori sul drive C: a partire dal
           settore logico 720.
        b) Scrittura di una frase sullo schermo (vedi sotto)
        c) Blocco del computer
     
     2) (Giorno della settimana = Lunedi') AND ((Anno 1994 e
        superiori) OR (Mese = Settembre e superiori))
        a) Riscrittura di un settore casuale sul drive C:

     La riscrittura avviene attraverso l'uso  dell'interrupt  26H
(Absolute Disk Write).
     La  frase  scritta  sullo  schermo attraverso la funzione 9H
(Display String) dell'INT 21H e' la seguente:

     "I'm sorry, you lost something because of AUREA"

     Terminate le proprie operazioni,  il  virus  restituisce  il
controllo al programma host.

-- Analisi a cura di Paolo Monti per la C.S.I
"Consulenza per la Sicurezza Informatica", srl di Roma.
