Metodo di prova
Panda non sembra rivelare l'esatto meccanismo del suo "vaccino", il che è comprensibile, dal momento che è fondamentalmente la sicurezza attraverso l'oscurità . Se sai come funziona, puoi invertire gli effetti e il "vaccino" diventa inutile.
Ho scaricato e installato Panda USB Vaccine e "vaccinato" la mia unità flash, scaricato la partizione dell'unità flash con dd per Windows usando i comandi
dd --list
dd if=\\.\Volume{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} of=C:\vaccinated.img
dove si xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
trova il GUID fornito dal primo comando, aperto c:\vaccinated.img
in un editor esadecimale e cercato AUTORUN
.
Cosa fa il vaccino USB
La voce per AUTORUN.INF
inizia con i seguenti dodici byte:
41 55 54 4F 52 55 4E 20 49 4E 46 42
I primi undici byte sono solo il nome del file 8.3 riempito di spazio :AUTORUN INF
L'ultimo byte specifica gli attributi del file e la sua rappresentazione binaria è:
01000010
Secondo le specifiche del file system Microsoft EFI FAT32 , quest'ultimo byte è un campo bit che assume la seguente forma:
XYADVSHR
dove i bit A
, D
, V
, S
,H
e R
sono 1
se e solo se il file viene archiviato, una directory, l'ID del volume 1 , un file system, nascoste o di sola lettura. AUTORUN.INF
è nascosto, poiché H
è impostato su 1
.
I bit X
e Y
sono riservati e dovrebbero essere entrambi 0
. Tuttavia, il vaccino USB è impostato Y
su 1
.
Cosa dice la specifica
I due bit superiori del byte dell'attributo sono riservati e devono essere sempre impostati su 0 quando un file viene creato e non viene mai modificato o esaminato.
Inoltre, raccomanda di validare il contenuto della directory:
Queste linee guida sono fornite in modo tale che le utility di manutenzione del disco possano verificare la correttezza delle singole voci della directory mantenendo la compatibilità con futuri miglioramenti della struttura della directory.
NON guardare il contenuto dei campi di immissione della directory contrassegnati come riservati e supporre che, se hanno un valore diverso da zero, sono "cattivi".
NON DO azzerare il contenuto dei campi di immissione contrassegnati directory riservata a zero quando contengono i non-valori zero (sotto l'ipotesi che essi sono "cattivo"). I campi di immissione della directory sono designati come riservati , anziché devono essere zero . Dovrebbero essere ignorati dalla tua applicazione. Questi campi sono destinati alle future estensioni del file system. Ignorandoli, un'utilità può continuare a funzionare su versioni future del sistema operativo.
Cosa succede realmente
CHKDSK segue certamente la specifica e ignora la AUTORUN.INF
voce che il driver FAT32 non comprende, ma Windows stesso non sembra soddisfare il requisito della specifica di non guardare mai più i bit riservati : qualsiasi tipo di accesso (diverso dall'elenco del file e i suoi attributi) è negato.
Ad esempio, il comando
DIR /A /Q
afferma che il proprietario di AUTORUN.INF
è ...
. Poiché FAT32 non supporta la proprietà dei file, dovrebbe essere indicato \All
.
Il motivo di questo comportamento imprevisto è che, secondo FAT32 - Voce della directory Wikipedia # , Windows utilizza il bit Y
internamente per segnalare un nome di dispositivo carattere (CON, PRN, AUX, CLOCK $, NUL, LPT1, COM1, ecc.) E non dovrebbe essere presente sui dispositivi di archiviazione. 2
In un certo senso, USB Vaccine induce Windows a supporre cheAUTORUN.INF
non si tratti di un file reale, ma di un dispositivo sul quale non è possibile leggere o scrivere.
Come eliminare il file
Se si ha accesso diretto al file system, è sufficiente impostare Y
su 0
(modificare il byte 42
in 02
) per rendere nuovamente possibile l'eliminazione del file. È inoltre possibile impostare il primo byte della voce della directory su E5
, contrassegnando direttamente il file come eliminato. 3
Un'altra opzione sarebbe quella di utilizzare un driver diverso. Ubuntu 12.04, ad esempio, può eliminare il file senza problemi. In realtà, "corregge" automaticamente la voce della directory durante la lettura. 4
1 Questo attributo viene utilizzato, ad esempio, per l'etichetta del volume o per la cartella Informazioni sul volume del sistema .
2 Certamente, l'impostazione X
su 1
non sembra avere alcun effetto.
3 Ho verificato questo cambiando i byte corrispondenti di C:\vaccinated.img
con un editor esadecimale e scrivendo l'immagine modificata sull'unità flash usando il seguente comando:
dd if=C:\vaccinated.img of=\\.\Volume{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
4 Mentre una palese deviazione dalle specifiche, sembra essere pensata. Ubuntu lascia X
intatto se è impostato su 1
, poiché non danneggia. L'impostazione del Y
bit su 1
potrebbe essere facilmente abusata da un'applicazione dannosa, ad esempio creando un file non cancellabile che occupa l'intero spazio libero dell'unità.