35
#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 -

Data hiding - metodologie e strumenti open source

Embed Size (px)

Citation preview

Page 1: Data hiding - metodologie e strumenti open source

#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 -

Page 2: Data hiding - metodologie e strumenti open source

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

Page 3: Data hiding - metodologie e strumenti open source

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 ...)

Page 4: Data hiding - metodologie e strumenti open source

Data hiding timeline

2000 AC

Egito: geroglifici ~525 AC

Sun Tzu: L'arte della guerra

475 AC

Spartan Skytale

Cifrario di Cesare

100-44 AC

Plinio il Vecchio: l'inchiostro invisibile

~1 DC

Alfabeto runico(scandinavi ed anglosassoni)

~600-800 DC

Libro arabo di linguaggio segreto

~750 DC

Page 5: Data hiding - metodologie e strumenti open source

Data hiding timeline

~1550

Griglia di Cardano

1586

Cifrario di Vigenère

1700

Inghilterra:interruttori di codice

Gurra di indipendenza americana:Cifratura e steganografia combinate

1775-1783

Codice Morse

1830

Germania: Enigma

1918

1940

Germania: Micropunti

1947

India: filigrana nei francobolli

1976

Tecnica delloscambio di chiavi

1977

Chiave pubblica

1985

Steganogrofiadigitale

Page 6: Data hiding - metodologie e strumenti open source

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 sostituzionein 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 trasposizioneun cifrario a trasposizione comporta la riorganizzare delle lettere del messaggio in chiaro.

Page 7: Data hiding - metodologie e strumenti open source

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 ...

Page 8: Data hiding - metodologie e strumenti open source

… 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 erecuperava una chiave in un paio di giorni provando tuttele possibili chiavi fino a quando non viene trovata quellagiusta (attacco di forza bruta)

Il DES è quindi insicuro

Page 9: Data hiding - metodologie e strumenti open source

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

Page 10: Data hiding - metodologie e strumenti open source

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 stampantePCWorld, 2004: ”strani” punti gialli visibili in controluce su ogni pagina stampata da una Xerox DocuColor.

Di cosa si tratta?

una minox spy camera

Page 11: Data hiding - metodologie e strumenti open source

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.

Page 12: Data hiding - metodologie e strumenti open source

Steghide

http://steghide.sourceforge.net/

Utilizzo di base:

user@localhost:/$ steghide embed -cf picture.jpg -ef secret.txtEnter 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.jpgEnter passphrase:wrote extracted data to "secret.txt"

NB: funziona per sostituzione

Page 13: Data hiding - metodologie e strumenti open source

Un esempio rapido ...

Un rapido sguardo all'esadecimale corrispondente.

Così si presenta (la parte finale del) il file originale

Page 14: Data hiding - metodologie e strumenti open source

… ed indolore

Steganografiamo il file di testo test.txt

user@localhost:/$ steghide embed -cf locandina_nalug_2013.jpg -ef test.txtEnter passphrase:Re-Enter passphrase:embedding "test.txt" in "locandina_\\.jpg"... done

L'esadecimale corrispondente sarà

Page 15: Data hiding - metodologie e strumenti open source

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 -_-'

Page 16: Data hiding - metodologie e strumenti open source

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 ...

Page 17: Data hiding - metodologie e strumenti open source

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.stegPassword:Done. Embedded 16/16 bytes out of a total possible 561 bytes.Encoding rate:1/201

user@localhost:/$./hydan-decode tar.stegPassword:

user@localhost:/$./tar.steg -xvf hydan-0.13.tarhydan/hydan/CVS/hydan/CVS/Root…...

Page 18: Data hiding - metodologie e strumenti open source

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.

Hydan

Page 19: Data hiding - metodologie e strumenti open source

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.

TCStego

Page 20: Data hiding - metodologie e strumenti open source

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.

TCStego

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/

Page 21: Data hiding - metodologie e strumenti open source

Operation Shady RAT (Remote Access Tools) è la definizione di Dmitri Alperovitch, vice-presidente della divisione di ricerca delle minacce, per un’operazione di cyber-spionaggio 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

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.

Page 22: Data hiding - metodologie e strumenti open source

Operation Shady RAT

1) l'aggressore invia una mail alla vittima (persone fisiche o istituzioni)

2) e-mail contiene un file ”apparentemente” legittimo

Vittima 3) trojan aperto e piazzato sul proprio computer

4) il trojan contatta un sito ”apparentemente” innocuo per prelevare informazioni di tipo CnC

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

Page 23: Data hiding - metodologie e strumenti open source

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

Operating system data hiding

Page 24: Data hiding - metodologie e strumenti open source

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.

Operating system data hiding

Page 25: Data hiding - metodologie e strumenti open source

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

Operating system data hiding

Page 26: Data hiding - metodologie e strumenti open source

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

File system dentro un file system

Page 27: Data hiding - metodologie e strumenti open source

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

Utilizzo della traccia 0

Page 28: Data hiding - metodologie e strumenti open source

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.

Utilizzo di un sistema RAID

Page 29: Data hiding - metodologie e strumenti open source

Distro GNU/Linux privacy oriented

Tails (Debian based)

Liberté Linux (Gentoo based)

Lightweight Portable Security (Thinstation based)

Ubuntu Privacy Remix (Ubuntu Based)

Page 30: Data hiding - metodologie e strumenti open source

AntiforensicsQualche riflessione ...

Page 31: Data hiding - metodologie e strumenti open source

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)

Page 32: Data hiding - metodologie e strumenti open source

Presente && futuro del data hiding

Page 33: Data hiding - metodologie e strumenti open source

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

….….

Page 34: Data hiding - metodologie e strumenti open source

Presente && futuro del data hiding

Page 35: Data hiding - metodologie e strumenti open source

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 ;-)