15
Nov

Affrontiamo oggi l’argomento degli ADS, meglio conosciuti come Alternate Data Stream, strettamente collegati con il filesystem NTFS.

Vedremo come creare un semplice file txt con del testo segreto, come fare la stessa cosa con un’ innocua immagine e come eliminare data stream pericolosi (veicolo di malware, trojan, virus & Co.)

Cosa vuol dire NTFS? Da Wikipedia:
“NTFS (acronimo per New Technology File System), file system dei sistemi operativi basati su kernel NT. Questo file system nasce negli anni Novanta, quando Microsoft abbandonò lo sviluppo congiunto con IBM del sistema operativo OS/2 e decise di sviluppare in proprio Windows NT (che significa New Technology). Proprio per questo alcuni degli aspetti presenti nel file system HPFS di OS/2 sono presenti anche in NTFS.”

NTFS è il filesystem utilizzato da Windows Xp.

Ogni volta che un qualsiasi file viene creato, il filesystem NTFS provvede ad associargli automaticamente un “data stream” finalizzato a memorizzarne il contenuto effettivo; ma è possibile anche, per ogni file memorizzato su NTFS, creare dei data stream aggiuntivi che, a differenza del data stream predefinito ed usato dal sistema operativo per gestire i dati, sono praticamente invisibili, inaccessibili ed impossibili da identificare.

In questo modo è possibile memorizzare altri contenuti su stream addizionali, i famosi ADS, capaci di contenere altri contenuti nascondendoli. Sono quindi veicoli di malware, spyware & company.

Impariamo a riconoscerli e a distruggerli.

Veniamo al dunque, ed ecco i passaggi per creare un ADS, che nel nostro caso si occuperà di
nascondere un testo segreto in un file txt, testo.txt

  • Apriamo il prompt dei comandi (cmd.exe) e creiamo un file di testo con il data stream aggiuntivo denominato “secret” (ma potrebbe anche chiamarsi “segreto”, “ciao”…), utilizzando la seguente sintassi: “notepad text.txt:secret”
  • Confermiamo le operazioni di creazione del file e scriviamo la parola “ciao”, salviamo e chiudiamo.
  • A questo punto nella cartella C:Documents and Settingsnomeutente avete un file “text.txt” che se aperto con il normale doppio click sarà vuoto, ma se aperto con la sintassi che specifica lo stream aggiuntivo “notepad text.txt:secret” vedrete la parola “ciao”.

FAT vs NTFS… un attimo di chiarezza
La storia della FAT affonda le sue radici  nel  lontano  1980  con  la  prima versione di QDOS di Tim Paterson, il predecessore  del  PC-DOS  e  di  MS-DOS della Microsoft. Con questa innovazione si poteva tener traccia delle aree di disco usate e di quelle libere. In seguito la FAT assunse nuovi nomi, come FAT12, FAT32, VFAT e NTFS, la differenza consisteva in quanti bit sono allocati per numerare i cluster del  disco, ad esempio  con  32  bit  si potevano gestire 232 = 4.294.967.296 cluster e così via…

La FAT è sostanzialmente composta di quattro aree: Area riservata, Tabella di Allocazione dei File, Directory
radice ed Area dei File; le informazioni per gestire il disco (boot sector) sono immagazzinate nell’area riservata che parte dal settore logico zero.
La  NTFS nasce negli anni ’90 ed è un sistema a 64 bit portando i computer a poter indicizzare hard disk enormi.
Possiede caratteristiche di affidabilità (se un processo è  interrotto  brutalmente  il  filesystem non si corrompe), di sicurezza (si possono  impostare  dei  permessi  di  accesso su files e cartelle) e di supporto dei  nomi  lunghi  dei  files  fino  a 255 caratteri grazie alla codifica Unicode.

Nella NTFS le informazioni su file e cartelle sono memorizzate in una tabella chiamata Master File Table (MFT). In questa regione del disco ogni file è identificato da una collezione di oggetti chiamati attributi. Tra questi troviamo, ad esempio, il nome assegnato al file, la data di creazione, la data dell’ultima modifica, i descrittori di protezione e, ovviamente, i dati che ne rappresentano il contenuto. Ma a questi dati ufficiali si affiancano dei dati di contenuto alternativi, gli ADS appunto, che permettono, come in un allegato e-mail, di agganciare ad un file noto, ad esempio notepad.exe, un altro file di qualsiasi tipo.

Nonostante se ne intraveda già la pericolosità è da dire anche che gli ADS sono invisibili e non alterano la dimensione del file originale, se per esempio inseriamo un file di 2,66 Mb nel notepad.exe (70Kb), il nostro  blocco note continuerà a mantenere la dimensione di 70Kb, l’unico campanello d’allarme sarà raffigurato dalla modifica della data di creazione del file. Ma anche questo è un problema facilmente aggirabile. Ecco due semplici utilities per cambiare il date-time stamp dei files:

  1. Attribute Magic (free)
  2. FileTweak(trial)

All’opera…
Vediamo come creare velocemente un ADS con cui includere il contenuto di un file bmp nel Blocco Note.

Prima creiamo una cartella c:ads1, poi clicchiamo su START, quindi su ESEGUI, digitiamo CMD, scriviamo cd ads1, e infine scriviamo copy  %windir%notepad.exe c:ads1

Così copiamo il file notepad.exe (il Blocco Note) nella cartella ads1. Poi copiamo un’immagine esemplare, in nostro caso: immagine.bmp nella cartella c:ads1.

Adesso procediamo alla grande alchimia, inseriamo l’immagine immagine.bmp nel file notepad.exe e  scriviamo:

type  immagine.bmp  -> notepad.exe:immagine.bmp

ed il gioco è fatto!
Notiamo  subito  che  notepad.exe è di 70Kb e immagine.bmp è di 2.66 Mb.

Dopo aver cancellato immagine.bmp, notiamo che notepad.exe è ancora di 70Kb, però la data è cambiata, dal 19/08/2004 al 16/09/2006 ed anche l’ora.

Che succede se digitiamo notepad.exe e premiamo INVIO?
Ecco  la  risposta:  parte  il  Blocco Note,  ma  se  digitiamo  start  ./notepad.exe:immagine.bmp , accade
un’altra cosa: appare un innocentissimo biglietto da visita, ma se fosse stata un  eseguibile
(exe) malevolo? Virus, spyware, ecc? O un immagine  illegale?

Facciamo finta che il programma calc.exe (la calcolatrice di windows) sia un pericoloso trojan virus:
type %windir%calc.exe >notepad.exe:calc.exe

Adesso abbiamo inserito il file calc.exe nel  blocco note quindi se digitiamo:

start   ./notepad.exe:calc.exe

Ecco che appare la calcolatrice di Windows.
La  peculiarità  degli  ADS  è  che possono inglobare dei file eseguibili da altri programmi, come ad esempio uno script PERL o VBS o PHP ed essere eseguiti dal programma relativo, ad esempio:

perl notepad.exe:ciaoscript.pl

Dobbiamo però ricordarci, che gli ADS:

  • possono essere eseguiti solo se chiamati direttamente da un programma col percorso completo del file inquinato, quindi è impossibile che sia eseguito accidentalmente
  • nessuno dei protocolli  di  Internet come SMTP (posta  elettronica), FTP ecc. può  trasportarli,  perchè non supportano  gli  streams, quindi gli ADS non possono essere inviati via Internet
  • i files contenenti ADS possono viaggiare attraverso le LAN a patto che si vadano a copiare su sistemi che hanno l’NTFS. In alcuni casi, gli streams sono stati usati per effettuare degli exploit sui web  server.

Come eliminare un file sospetto
Se scrutando nei meandri del Task Manager osservassimo un processo del tipo notepad.exe:
ciao.exe , potremmo già insospettirci. È l’ora di rimboccarsi le maniche e in questi casi può essere utile:

  • copiare il file sospetto su una chiavetta USB(solitamente formattata in FAT) o spostarlo su un Hard Disk non NTFS.
  • Pulirlo da linea di comando con ren notepad.exe note.exe
  • type  note.exe  -> notepad.exe
  • del  note.exe
  • Utilizzare un utility come Streams

Hey, non hai notato qualcosa di nuovo? Cosa ne pensi della nuova grafica? !

 

One Response to “Alternate Data Streams: i file nascosti di Windows”


  1. marvho (1 comments)

    “nessuno dei protocolli di Internet come SMTP (posta elettronica), FTP ecc. può trasportarli, perchè non supportano gli streams, quindi gli ADS non possono essere inviati via Internet”

    ma io sono pieno di “ads” su messaggi di posta elettronica..
    da dove arrivano allora?

E tu cosa ne pensi?