Archivio

Archive for settembre 2012

punti di vista sul filesystem

Nell’ottica forense di ricercare malware sulla propria macchina linux uno dei migliori sistemi è quello di fare un’analisi comparativa tra dati visibili a runtime e gli stessi dati visibili non a runtime. Ossia a macchina sistema infetto avviato o da livecd.

Fino ad ora ci siamo occupati di effettuare analisi a runtime. Questo sistema puo’ presentare molti svantaggi ma anche qualche vantaggio. Gli svantaggi presunti sono per esempio l’impossibilità di avere una visione oggettiva dei file, device, processi e quant’altro sia presenti o assenti nel sistema. Le nostre fonti di informazioni: il kernel, i processi, le librerie potrebbero essere contaminati e addirittura contraffatti.

L’immagine del kernel potrebbe non essere quella originale del pacchetto o uno dei moduli potrebbe essere stato sostituito. Un kernel o un modulo infetto potrebbero non darci una visione oggettiva della situazione e lo stesso un binario (tipo ls o ps) o una libreria (libc).
Se da una parte il malware nascondendo o alterando qualcosa dimostra la sua forza, dall’altra è proprio il nascondere la sua debolezza. Se però non sappiamo cosa stiamo cercando e soprattutto dove, le cose possono diventare più complicate.
Gli approcci quindi devono essere molteplici. Procederemo partendo da un’analisi ad ampio spettro fino ad un’analisi dettagliata nelle varie parti del sistema.
La prima cosa da fare è una lista di tutti i file presenti nel sistema e relativo md5.

# find /bin /boot /cdrom /etc /lib /media /mnt /opt /root /sbin /selinux /srv /tmp /usr /var -type f -exec md5sum '{}' ';' -exec sha256sum '{}' ';' | awk '{print $2,$1}' | sed 's/^\///g' >> /sistema.hashes.runtime

Una volta effettuata questa operazione è necessaria la stessa scansione partendo da un live cd. Una volta che abbiamo il secondo file va confrontato tra i due e il risultato sarà una lista di file differenti e/o mancanti tra i due.

Quindi da cdlive:

# find bin boot cdrom etc lib media mnt opt root sbin selinux srv tmp usr var -type f -exec md5sum '{}' ';' -exec sha256sum '{}' ';' | awk '{print $2,$1}' | sed 's/^\///g' >> /sistema.hashes.notruntime

quindi sempre da cd:

# diff /sistema.hashes.runtime /sistema.hashes.notruntime

Come noterete gli hash prodotti sono sia md5 che sha256 questo per evitare il noto problema delle collissioni md5.
Un ulteriore vantaggio dell’utilizzo del live cd è la possibilità di utilizzare il cold boot attack per effettuare un’acquisizione fedele della memoria fisica.

Categorie:forensics

aggiungere chiave repo ubuntu

Per aggiungere una chiave gpg di un repo (me lo dimentico sempre):

gpg --keyserver hkp://pgp.mit.edu --recv-keys EBB1B7ED997D3880 && sudo gpg --armor --export EBB1B7ED997D3880 | sudo apt-key add -
Categorie:Uncategorized