ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
ABEL
Il sistema di build della nuova CAINE
Andrea Lazzarotto — andrealazzarotto.com
MI OCCUPO DI

Informatica forense

Sviluppo software

RecuperaBit, Carbon14, CAINE
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
Abel, il sistema di build della nuova CAINE
CAINE è uno strumento completo che comprende
decine di tool e applicazioni forensi
Grazie a rbfstab e Mounter tutti i dispositivi sono
bloccati in scrittura
Strumenti basati sul lavoro di John Lehr
Ci sono inoltre delle patch agli script di avvio
per evitare montaggi
Alcune modifche suggerite da Suhanov Maxim
Purtroppo fnora la distro è stata fatta a mano
… con Systemback
SVANTAGGI
Questo approccio è poco ordinato ed è facile
commettere errori
Diventa difcile tenere traccia delle modifche
Non si può suddividere lo sviluppo
Per non parlare di eventuali bug report,
che vengono inviati per email a Nanni
Abel, il sistema di build della nuova CAINE
IDEA
Ho pensato di automatizzare e rendere tracciabile
tutto il processo.
L’ispirazione è stata una parola molto brutta, e la
sto per dire…
DevOps
(scusatemi per l’imprecazione)
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…
Abel, il sistema di build della nuova CAINE
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
La prima demo di Abel
aggiornava tutti i
pacchetti con APT
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)
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
Abel, il sistema di build della nuova CAINE
Abel, il sistema di build della nuova CAINE
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!
Abel, il sistema di build della nuova CAINE
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
Abel, il sistema di build della nuova CAINE
PERSONALIZZAZIONI
Tramite gli script possiamo installare tutti i
pacchetti desiderati
Scarichiamo e incorporariamo programmi già
compilati come Autopsy
Applichiamo le patch forensi alla ISO
Creiamo i lanciatori (icone nel menu) con un
pratico script Python
Cambiamo tema,
sfondo e icone in
/etc/skel
Abel, il sistema di build della nuova CAINE
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
vagrant up
vagrant ssh
abel

More Related Content

Abel, il sistema di build della nuova CAINE

  • 1. ABEL Il sistema di build della nuova CAINE Andrea Lazzarotto — andrealazzarotto.com
  • 2. MI OCCUPO DI  Informatica forense  Sviluppo software  RecuperaBit, Carbon14, CAINE
  • 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
  • 8. Purtroppo fnora la distro è stata fatta a mano … con Systemback
  • 9. SVANTAGGI Questo approccio è poco ordinato ed è facile commettere errori
  • 10. Diventa difcile tenere traccia delle modifche
  • 11. Non si può suddividere lo sviluppo
  • 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
  • 28. PERSONALIZZAZIONI Tramite gli script possiamo installare tutti i pacchetti desiderati
  • 29. Scarichiamo e incorporariamo programmi già compilati come Autopsy
  • 30. Applichiamo le patch forensi alla ISO
  • 31. Creiamo i lanciatori (icone nel menu) con un pratico script Python
  • 32. Cambiamo tema, sfondo e icone in /etc/skel
  • 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