CAINE è una delle distribuzioni Linux per l’informatica forense più usate al mondo. Analogamente ad altri progetti simili, l’attuale metodo di sviluppo comporta numerosi step non automatizzati. Molte delle personalizzazioni presenti nella distribuzione sono realizzate a mano, rendendo difficile tenerne traccia e valutare eventuali correzioni di bug o miglioramenti nella procedura. Abel (Automated Build Environment Lab) è un progetto che mira a produrre le nuove versioni di CAINE in modo totalmente automatizzato, tracciabile e peer-reviewed, con un ambiente di build omogeneo basato su Vagrant e numerosi script che applicano tutte le modifiche necessarie.
1 of 35
Download to read offline
More Related Content
Abel, il sistema di build della nuova CAINE
1. ABEL
Il sistema di build della nuova CAINE
Andrea Lazzarotto — andrealazzarotto.com
3. CAINE

2008: Nata come tesi di laurea

2009: Nanni Bassetti diventa maintainer

2017: Esce la versione 9, contando ormai utenti
e recensioni da tutto il mondo
Idea iniziale di Giancarlo Giustini
5. CAINE è uno strumento completo che comprende
decine di tool e applicazioni forensi
6. Grazie a rbfstab e Mounter tutti i dispositivi sono
bloccati in scrittura
Strumenti basati sul lavoro di John Lehr
7. Ci sono inoltre delle patch agli script di avvio
per evitare montaggi
Alcune modifche suggerite da Suhanov Maxim
12. Per non parlare di eventuali bug report,
che vengono inviati per email a Nanni
14. IDEA
Ho pensato di automatizzare e rendere tracciabile
tutto il processo.
L’ispirazione è stata una parola molto brutta, e la
sto per dire…
DevOps
16. PROPOSTO AL TEAM DI DEFT

Bla bla… e quindi avresti tutto tracciato.

Bello! Però boh abbiamo sempre fatto così…

Ma avete sempre il problema che uno fa tutto.

Vero, boh… sento gli altri, ti so dire…
18. POI AL TEAM DI CAINE

A maggio nasce la prima bozza di Abel
(Automated Build Environment Lab)

Basato su Vagrant per racchiudere l’ambiente
dentro a una VM conosciuta e riproducibile

Utilizza Customizer su Ubuntu 16.04
19. La prima demo di Abel
aggiornava tutti i
pacchetti con APT
20. STRUTTURA DI ABEL
bin / abel
environment /

base.iso

branding.sh

customizer.conf

hook.sh

launchers / generate.py

Makefle

overlay.sh

scripts / …
Vagrantfle
Processo di build automatizzato
con Makefle e cartella script
Provision tramite Vagrantfle
(Ubuntu 16.04 + Customizer)
21. MAKEFILE
Il comando abel esegue un Makefle
all: extract hook rebuild clean
extract:
sudo customizer --extract
hook:
/environment/overlay.sh
sudo customizer --hook
rebuild:
sudo /environment/branding.sh
sudo customizer --rebuild
sudo mv /home/*.iso /environment
clean:
# More runs could be needed because it fails sometimes
while true; do if sudo customizer --clean; then break; fi; done
chroot:
sudo customizer --chroot
24. FINCHÉ NON SI È ROTTO TUTTO
Un bel giorno la build ha smesso di funzionare…
Ubuntu ha rilasciato un kernel che usa una
compressione diversa dai precedenti!
26. MORALE

Reinstallare il kernel (nella ISO non è completo)
e fssarlo con apt-mark

Usare sempre versioni fsse dei programmi che
non sono nei repository

Testare, testare, testare
34. VANTAGGI

La ISO viene prodotta in modo totalmente
automatizzato, tracciabile e peer-reviewed

Più persone possono lavorare allo sviluppo

I miglioramenti si fanno con gli script