#LINUX DAY NAPOLI 2013
Data Hiding
- metodologie e strumenti open souce a cura di Marco Ferrigno

-ind. researcher & consu...
root@host:/# intro
PROPEDEUTICITA':
Curiosità e spirito di iniziativa
Nozioni basilari sull'utilizzo dei sistemi operativi...
Premessa
Data hiding … a chi serve?
A chi ha intenzioni malevole (scrittura malware, segreti a danno di terzi da diffonder...
Data hiding timeline
Alfabeto runico
(scandinavi ed anglosassoni)

2000 AC

Sun Tzu:
L'arte della guerra

Cifrario di Cesa...
Data hiding timeline
Cifrario di Vigenère

India:
filigrana nei francobolli

Gurra di indipendenza americana:
Cifratura e ...
Crittografia: che cos'è?
Tecnica di rappresentazione di un messaggio in una forma tale che l’informazione in
essa contenut...
Sostituzione vs trasposizione
In un cifrario a trasposizione, il testo in chiaro viene riposizionato, ma le lettere sono
l...
… a proposito del DES
EFF DES cracker (noto anche come "Deep Crack") è un dispositivo costruito da
Electronic Frontier Fou...
Vigenére: un appunto
È ancora in uso (dal 1586)
Tool web-based per la cifratura → http://sharkysoft.com/misc/vigenere/
È u...
Steganografia
Da non confondere con la crittografia. Come fare?
Poniamoci la domanda:”Il messaggio è visibile (ma criptato...
Tecniche di steganografia
Steganografia digitale:
un programma nasconde un messaggio o un file all'interno di un file vett...
Steghide
http://steghide.sourceforge.net/
Utilizzo di base:
user@localhost:/$ steghide embed -cf picture.jpg -ef secret.tx...
Un esempio rapido ...

Un rapido sguardo all'esadecimale corrispondente.
Così si presenta (la parte finale del) il file or...
… ed indolore

Steganografiamo il file di testo test.txt
user@localhost:/$ steghide embed -cf
locandina_nalug_2013.jpg -ef...
Trova le differenze

Come abbiamo visto, la tecnica per sostituzione comporta la modifica o lo scambio di byte.
Se avessim...
WbStego4open
http://wbstego.wbailer.com/

WbStego4open è un software open source multipiattaforma.
Lavora su *.bmp, *.txt,...
Hydan
www.crazyboy.com/hydan
Strumento open source che consente ai dati di essere nascosti in un file eseguibile.
Hydan us...
Hydan
Da notare:
un eseguibile steganografato con hydan funziona esattamente come il binario originale.
È utilizzato per i...
TCStego

TrueCrypt + steganografia.
tcsteg.py è uno script python semplice e fornito sotto una licenza open source, è semp...
TCStego
A questo punto il file multimediale funziona e viene riprodotto come - giustamente - ci si
espetta, ma se si tenta...
Operation Shady RAT
Operation Shady RAT (Remote Access Tools) è la definizione di Dmitri Alperovitch,
vice-presidente dell...
Operation Shady RAT
1) l'aggressore invia una
mail alla vittima (persone
fisiche o istituzioni)

2) e-mail contiene
un fil...
Operating system data hiding
Premessa: non è un tentativo di sabotaggio al Linux Day :p
Su Windows
Sebbene il sistema non ...
Operating system data hiding
Premessa: non è un tentativo di sabotaggio al Linux Day :p
Su Mac OS X
All'interno dei pacche...
Operating system data hiding
Su GNU/Linux
L'unico limite è la fantasia!
Unendo la gestione a basso livello ottenuta tramit...
File system dentro un file system
Si crei una partizione da 2GB, si crei un file system all'interno di essa, si controlli ...
Utilizzo della traccia 0
La traccia 0 di un hard disk non viene di norma utilizzata. Si parte con il primo cilindro
dove r...
Utilizzo di un sistema RAID
Si prendano tre chiavette usb di pari capacità e le si colleghi a una macchina linux.
Si crei ...
Distro GNU/Linux privacy oriented

Tails (Debian based)
Liberté Linux (Gentoo based)
Lightweight Portable Security (Thinst...
Antiforensics
Qualche riflessione ...
Boxroom
Prossimo seminario targato NaLug in vista!

Tutto quello di cui avrei potuto parlare, ma ...
Network data hiding →...
Presente && futuro del data hiding
Presente && futuro del data hiding
Prism Break → sito internet nato principalmente per informare gli utenti di quali
softw...
Presente && futuro del data hiding
root@host:/#exit

Riferimenti e contatti:
Marco Ferrigno
- Security & system independent researcher - International Cyber ...
Upcoming SlideShare
Loading in...5
×

Data hiding - metodologie e strumenti open source

367

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
367
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Data hiding - metodologie e strumenti open source

  1. 1. #LINUX DAY NAPOLI 2013 Data Hiding - metodologie e strumenti open souce a cura di Marco Ferrigno -ind. researcher & consultant in computer security and systems engineering- International Cyber Threat Task Force member - Developer of the Italian Debian GNU/Linux HOWTOs -
  2. 2. root@host:/# intro PROPEDEUTICITA': Curiosità e spirito di iniziativa Nozioni basilari sull'utilizzo dei sistemi operativi Uno sguardo al passato Solo FLOSS COSA IMPAREREMO DA QUESTO TALK: Breve cronistoria sull'occultamento dei dati Steganografia Occultamento dei dati in ambienti multipiattaforma Anti digital forensics Strategie di mitigazione Sviluppi futuri
  3. 3. Premessa Data hiding … a chi serve? A chi ha intenzioni malevole (scrittura malware, segreti a danno di terzi da diffondere …) A chi ha intenzioni benevole/lecite (segretezza di dati in ambito lavorativo, attivisti politici ...)
  4. 4. Data hiding timeline Alfabeto runico (scandinavi ed anglosassoni) 2000 AC Sun Tzu: L'arte della guerra Cifrario di Cesare ~750 DC ~1 DC 475 AC Spartan Skytale Egito: geroglifici ~525 AC Plinio il Vecchio: l'inchiostro invisibile 100-44 AC ~600-800 DC Libro arabo di linguaggio segreto
  5. 5. Data hiding timeline Cifrario di Vigenère India: filigrana nei francobolli Gurra di indipendenza americana: Cifratura e steganografia combinate Chiave pubblica Germania: Enigma ~1550 1830 1700 1586 Inghilterra: interruttori di codice 1940 1976 Codice Morse Germania: Micropunti 1985 Tecnica dello scambio di chiavi Griglia di Cardano 1918 1775-1783 1947 Steganogrofia 1977 digitale
  6. 6. Crittografia: che cos'è? Tecnica di rappresentazione di un messaggio in una forma tale che l’informazione in essa contenuta possa essere recepita solo dal destinatario; ciò si può ottenere con due diversi metodi: celando l’esistenza stessa del messaggio o sottoponendo il testo del messaggio a trasformazioni che lo rendano incomprensibile. Come si lavora: per sostituzione in crittografia, un cifrario a sostituzione è un metodo di cifratura in cui il testo in chiaro viene sostituito con testo cifrato utilizzando un particolare metodo o algoritmo. per trasposizione un cifrario a trasposizione comporta la riorganizzare delle lettere del messaggio in chiaro.
  7. 7. Sostituzione vs trasposizione In un cifrario a trasposizione, il testo in chiaro viene riposizionato, ma le lettere sono lasciate invariate. Al contrario, in un cifrario a sostituzione si mantiene la stessa sequenza del testo in chiaro e si modificano le lettere stesse. Ci sono tanti modi possibili (ma limitati) per riposizionare le lettere di un messaggio, quindi un cifrario a trasposizione può essere ”craccato a mano”, senza la necessità di un computer. I cifrari a sostituzione hanno invece migliaia di implementazioni diverse, alcune delle quali comprendono enormi complessità . Ad oggi la complessità del cifrario a sostituzione è aumentara enormemente. La potenza di calcolo offerta dagli odierni calcolatori permette di combinare sostituzione e trasposizione in una unica tecnica di cifratura. DES (Data Encryption Standard) "vale 16 cicli di trasposizione e sostituzione per ogni gruppo di otto lettere". ma ...
  8. 8. … a proposito del DES EFF DES cracker (noto anche come "Deep Crack") è un dispositivo costruito da Electronic Frontier Foundation (EFF) per recuperare la chiave segreta di un messaggio cifrato con il DES conducendo un attacco a forza bruta. Lo scopo era quello di dimostrare che la lunghezza della chiave del DES era insufficiente a garantire un livello di sicurezza accettabile. Costato 250.000 dollari, conteneva 1.800 processori e recuperava una chiave in un paio di giorni provando tutte le possibili chiavi fino a quando non viene trovata quella giusta (attacco di forza bruta) Il DES è quindi insicuro
  9. 9. Vigenére: un appunto È ancora in uso (dal 1586) Tool web-based per la cifratura → http://sharkysoft.com/misc/vigenere/ È utilizzata in molti device Cisco …. Ops … http://www.hope.co.nz/projects/tools/ciscopw.php
  10. 10. Steganografia Da non confondere con la crittografia. Come fare? Poniamoci la domanda:”Il messaggio è visibile (ma criptato) o invisibile?” Se è criptato è crittografia se è invisibile è steganografia La steganografia è quindi una tecnica che si prefigge di nascondere la comunicazione tra due o più interlocutori Un caso reale: punti di monitoraggio della stampante PCWorld, 2004: ”strani” punti gialli visibili in controluce su ogni pagina stampata da una Xerox DocuColor. Di cosa si tratta? una minox spy camera
  11. 11. Tecniche di steganografia Steganografia digitale: un programma nasconde un messaggio o un file all'interno di un file vettore. Un ipotetico destinatario riceve il file e utilizza lo stesso programma per rivelare il messaggio o il file nascosto. Metodi Steganografici: Inserimento: comporta l'inserimento di contenuti aggiuntivi. NB: questa tecnica, solitamente, ”ruba lo spazio non utilizzato” nel file. Sostituzione: comporta la modifica o lo scambio di byte. Perfetta per rendere impercettibili le modifiche (in special modo) su files multimediali. Molti dei programmi che agiscono per sostituzione lavorano sul bit meno significativo (LSB) cambiandolo da 0 a 1, o un 1 ad uno 0.
  12. 12. Steghide http://steghide.sourceforge.net/ Utilizzo di base: user@localhost:/$ steghide embed -cf picture.jpg -ef secret.txt Enter passphrase: Re-Enter passphrase: embedding "secret.txt" in "picture.jpg"... done Questo comando incorporare il file secret.txt nel file di copertura picture.jpg. Dopo aver incorporato i dati che si vogliono mantenere segreti, è possibile inviare il file picture.jpg alla persona che deve ricevere il messaggio segreto. Il ricevitore deve usare steghide nel modo seguente: user@localhost:/$ steghide extract -sf picture.jpg Enter passphrase: wrote extracted data to "secret.txt" NB: funziona per sostituzione
  13. 13. Un esempio rapido ... Un rapido sguardo all'esadecimale corrispondente. Così si presenta (la parte finale del) il file originale
  14. 14. … ed indolore Steganografiamo il file di testo test.txt user@localhost:/$ steghide embed -cf locandina_nalug_2013.jpg -ef test.txt Enter passphrase: Re-Enter passphrase: embedding "test.txt" in "locandina_.jpg"... done L'esadecimale corrispondente sarà
  15. 15. Trova le differenze Come abbiamo visto, la tecnica per sostituzione comporta la modifica o lo scambio di byte. Se avessimo utilizzato un software di steganografia che adoperava la tecnica dell'inserimento ci saremmo trovati con una situazione del genere (dopo FF D9): 36 45 35 3B 32 00 00 16 00 9B AF 13 79 C4 73 68 74 57 0E D6 28 07 89 8D E9 03 A7 CD D8 89 5E con le dovute conseguenze del caso -_-'
  16. 16. WbStego4open http://wbstego.wbailer.com/ WbStego4open è un software open source multipiattaforma. Lavora su *.bmp, *.txt, *.html e (soprattutto) *.pdf senza cambiamenti percepibili alla vista. il programma sfrutta le intestazioni del file *.pdf per aggiungere informazioni addizionali irrilevanti per qualunque lettore *.pdf. wbstego4open, sfrutta sia le tecniche di l'inserimento/sostituzione sia di modifica del LSB . Altra particolarità e punto di forza è la capacità di lavorare tranquillamente su *.pdf coperti da password o da certificati digitali Un bug di Adobe Acrobat a caso ...
  17. 17. Hydan www.crazyboy.com/hydan Strumento open source che consente ai dati di essere nascosti in un file eseguibile. Hydan usa il reverse engineering del codice binario per determinare i luoghi migliori per nascondere i dati nel file eseguibile. Per la loro struttura, i file binari concedono molto poco spazio per nascondere i dati. Esempio: utilizziamo il binario "tar" per nascondere un messaggio user@localhost:/$./hydan tar message.txt > tar.steg Password: Done. Embedded 16/16 bytes out of a total possible 561 bytes. Encoding rate:1/201 user@localhost:/$./hydan-decode tar.steg Password: user@localhost:/$./tar.steg -xvf hydan-0.13.tar hydan/ hydan/CVS/ hydan/CVS/Root … ...
  18. 18. Hydan Da notare: un eseguibile steganografato con hydan funziona esattamente come il binario originale. È utilizzato per il fissaggio di firme digitali, per la modifica di malware e per eludere i rilevamenti antivirus. Problemi: Hydan a volte può introdurre errori di runtime, quindi non è infallibile! Non è efficiente su immagini o su contenuti multimediali. È anche importante notare che molti programmi di steganalisi non riescono a ”guardare” del tutto gli eseguibili.
  19. 19. TCStego TrueCrypt + steganografia. tcsteg.py è uno script python semplice e fornito sotto una licenza open source, è semplice da usare ed è particolarmente indicato per la steganografia di file video. In pratica: tcsteg.py combina un mp4 esistente o un file multimediale QuickTime con un file truecrypt in modo tale che il file risultante appaia come un comune file multimediale o come un volume truecrypt montabile.
  20. 20. TCStego A questo punto il file multimediale funziona e viene riprodotto come - giustamente - ci si espetta, ma se si tenta anche di montare il file multimediale come se fosse un device, utilizzando TrueCrypt, il funzionamento risulta corretto. Frammenti di steganalisi la scoperta del file steganografato consiste nell'analisi della sezione MDAT e del Sample Table Chunk Offset. Esaminando ogni settore nel STCO possiamo trovare un'anomalia identificabile come una ”regione orfana”. È un'anomalia evidente per un decoder multimediale in quanto troverebbe il vuoto creato dalla inserimento del contenitore truecrypt Il programma è scaricabile qui: keyj.emphy.de/real-steganography-with-truecrypt/
  21. 21. Operation Shady RAT Operation Shady RAT (Remote Access Tools) è la definizione di Dmitri Alperovitch, vice-presidente della divisione di ricerca delle minacce, per un’operazione di cyberspionaggio globale scoperta da McAfee. L’attacco sarebbe paragonabile a Operation Aurora, un’azione condotta nel 2010 contro un centinaio di macchine selezionate tra cui i server di Google. Non è chiaro chi sia il mandante dell’operazione, tuttavia Alperovitch sospetta che si tratti di un’azione sponsorizzata da uno Stato: la Cina, immune da Operation Shady RAT, potrebbe avere fornito agli hacker gli obiettivi da colpire. Stati Uniti, Nazioni Unite e Comitato Internazionale Olimpico. Operation Shady RAT sarebbe stata avviata prima delle Olimpiadi di Pechino del 2008: avrebbe colpito oltre settanta organizzazioni in almeno quattordici Paesi del mondo. Il culmine degli attacchi è stato nel 2011.
  22. 22. Operation Shady RAT 1) l'aggressore invia una mail alla vittima (persone fisiche o istituzioni) 2) e-mail contiene un file ”apparentemente” legittimo Vittima 4) il trojan contatta un sito ”apparentemente” innocuo per prelevare informazioni di tipo CnC 3) trojan aperto e piazzato sul proprio ​ computer 5) le immagini vengono scaricate; esse contengono comandi nascosti steganografati 6) Il file viene analizzato dal trojan 7) Trojan si connette ad un IP remoto Permette l'avvio di una shell remota eseguibile sul computer infetto
  23. 23. Operating system data hiding Premessa: non è un tentativo di sabotaggio al Linux Day :p Su Windows Sebbene il sistema non abbia un'interfaccia che permette all'utente di lavorare a basso livello, il file system NTFS offre molti spunti a chi volesse nascondere dati: ADS (alternative data stream) → nascondere file nel Master File Table Bad block → con un editor esadecimale (opensource, come wxHexEditor) si può intervenire sul file $Badclus e marcare come bad una serie di settori funzionanti. È poi possibile, tramite un editor o alcune utility di Cygwin (ambiente di compatibilità POSIX per Windows) indirizzare direttamente tali cluster per salvarvi informazioni. Sparse attribute → è possibile definire uno o più attributi opzionali per un file definendoli come sparse e utilizzare i blocchi cui puntano tali attributi per salvarvi informazioni. Boot sector → di default NTFS alloca 16 settori per il boot sector. Di questi ne viene usato meno di uno. Gli altri blocchi sono a disposizione per mettervi del proprio codice
  24. 24. Operating system data hiding Premessa: non è un tentativo di sabotaggio al Linux Day :p Su Mac OS X All'interno dei pacchetti applicazione: l'alberatura è scrivibile, quindi al suo interno è possibile inserire qualunque tipo di file (le dimensioni aumentano di conseguenza) Intervenire sui badblock Resource fork del file Nei sistemi OS X l'importanza della resource fork è decisamente inferiore a quella rivestita all'interno dei vecchi OS. Rispetto a questi ultimi, Mac OS X, nella correlazione tra file e applicativi, usa un sistema meno raffinato, o comunque meno flessibile, basato principalmente su una normale tabella di associazione tra estensioni e applicazioni che le possono gestire.
  25. 25. Operating system data hiding Su GNU/Linux L'unico limite è la fantasia! Unendo la gestione a basso livello ottenuta tramite la rappresentazione come file nella directory /dev e l'uso di tool per l'accesso sequenziale come dd oppure dei loop device è possibile usare delle tecniche interessanti, come: File system dentro un file system Utilizzo della traccia 0 Utilizzo di un sistema RAID
  26. 26. File system dentro un file system Si crei una partizione da 2GB, si crei un file system all'interno di essa, si controlli il cilindro di file partizione, si cancelli la partizione e la si ricrei da 2,5 GB Si crei un file vuoto delle stesse dimensioni: user@localhost:/$ dd if=/dev/zero of=file.img bs=1024 count=524288 Si usi il file attraverso un loop device: user@localhost:/$ losetup /dev/loop0 file.img Si crei un file system all'interno del file: user@localhost:/$ mkfs.ext3 /dev/loop0 Si copi, tramite dd, il file nella parte del disco che abbiamo riservato (si ponga /dev/hda2 la partizione appena creata): user@localhost:/$ dd if=file.img of=/dev/hda2 skip=2097152 bs=1024 Si monti il file system creato ad hoc mediante il comando mount e l'opzione di offset: user@localhost:/$ mount -o rw,offset=2147483648 /dev/hda2 /mnt Tale file system non sarà normalmente visibile dato che viene montato di norma quello posto all'inizio della partizione. È possibile complicare ulteriormente la situazione utilizzando la crittografia messa a disposizione dai loop device utilizzando gli encrypted file system (CryptoFS e EncFS) che utilizzano FUSE
  27. 27. Utilizzo della traccia 0 La traccia 0 di un hard disk non viene di norma utilizzata. Si parte con il primo cilindro dove risiede il boot sector per poi cominciare con la prima partizione posta al 64-esimo settore. Indirizzare la traccia 0 con GNU/Linux è banale. Si crei un file vuoto delle dimensioni corrette. Sarà di 62 settori da 512 byte: user@localhost:/$ dd if=/dev/zero of=t0.img bs=512 count=62 Si usi un loop device per ottenere un device: user@localhost:/$ losetup /dev/loop1 t0.img Si stornino le informazioni. Con poco più di 31KB conviene usare un tar o un cpio (magari compresso) piuttosto che un file system; Si copi il file immagine nella traccia 0: user@localhost:/$ dd if=t0.img of=/dev/hda bs=512 skip=1 Anche in questo caso il file potrebbe essere crittografato prima di essere posto nella traccia 0
  28. 28. Utilizzo di un sistema RAID Si prendano tre chiavette usb di pari capacità e le si colleghi a una macchina linux. Si crei per ognuna una partizione e la si setti di tipo 0xfd. Si crei un RAID5 software tra le tre chiavette: user@localhost:/$ mdadm -create /dev/md0 -level=5 -raid-disks=3 /dev/sda1 /dev/sdb1 /dev/sdc1 Si formatti il disco RAID ottenuto: user@localhost:/$ mkfs.ext3 /dev/md0 Si monti il disco /dev/md0 in una directory Si copino i dati nel RAID Si smonti il raid, si tolgano le chiavette. Queste potranno essere date, per esempio, a tre persone diverse. Per recuperare i dati dovranno essere presenti almeno due persone. Una delle chiavette può andare perduta. Anche in questo caso il contenuto può essere crittografato.
  29. 29. Distro GNU/Linux privacy oriented Tails (Debian based) Liberté Linux (Gentoo based) Lightweight Portable Security (Thinstation based) Ubuntu Privacy Remix (Ubuntu Based)
  30. 30. Antiforensics Qualche riflessione ...
  31. 31. Boxroom Prossimo seminario targato NaLug in vista! Tutto quello di cui avrei potuto parlare, ma ... Network data hiding → siamo più legati ai protocolli di rete che al floss (al netto di SNORT) Virtual data hiding → soluzioni proprietarie || vm ”trattabili come file” Mobile data hiding → assenza di soluzioni open source (e presenza di programmi scadenti)
  32. 32. Presente && futuro del data hiding
  33. 33. Presente && futuro del data hiding Prism Break → sito internet nato principalmente per informare gli utenti di quali software, servizio web e sistemi operativi sono in grado di garantire la propria privacy. Categorie: Operating System Web Browser Web Search Maps Email client Video conferencing Social networking Cloud storage Media publishing …. ….
  34. 34. Presente && futuro del data hiding
  35. 35. root@host:/#exit Riferimenti e contatti: Marco Ferrigno - Security & system independent researcher - International Cyber Threat Task Force member - Developer of the Italian Debian GNU/Linux HOWTOs http://marcoferrigno.wordpress.com Grazie. best regards ;-)
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×