SlideShare ist ein Scribd-Unternehmen logo
1 von 35
Downloaden Sie, um offline zu lesen
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
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
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…
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
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!
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
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
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

Weitere ähnliche Inhalte

Ähnlich wie Abel, il sistema di build della nuova CAINE

ConfSL: Sviluppo Applicazioni web con Symfony
ConfSL: Sviluppo Applicazioni web con SymfonyConfSL: Sviluppo Applicazioni web con Symfony
ConfSL: Sviluppo Applicazioni web con SymfonyLuca Saba
 
Guida al computer - Lezione 53 - Il Sistema Operativo Parte 3
Guida al computer - Lezione 53 - Il Sistema Operativo Parte 3Guida al computer - Lezione 53 - Il Sistema Operativo Parte 3
Guida al computer - Lezione 53 - Il Sistema Operativo Parte 3caioturtle
 
Italy vmug 2019 PowerCLI pret-a-porter
Italy vmug 2019 PowerCLI pret-a-porterItaly vmug 2019 PowerCLI pret-a-porter
Italy vmug 2019 PowerCLI pret-a-porterMarco Scandaletti
 
RiminiLUG. Mini Corso su Linux p1: Installazione & Configurazione
RiminiLUG. Mini Corso su Linux p1: Installazione & ConfigurazioneRiminiLUG. Mini Corso su Linux p1: Installazione & Configurazione
RiminiLUG. Mini Corso su Linux p1: Installazione & ConfigurazioneAlessandro Carichini
 
Why Linux is better
Why Linux is betterWhy Linux is better
Why Linux is betterinfoassist
 
[Ubuntu per tutti] 1, Ottenere ed installare Ubuntu Linux
[Ubuntu per tutti] 1, Ottenere ed installare Ubuntu Linux[Ubuntu per tutti] 1, Ottenere ed installare Ubuntu Linux
[Ubuntu per tutti] 1, Ottenere ed installare Ubuntu LinuxGalliate Linux User Group
 
Linux Embedded per l'automazione
Linux Embedded per l'automazioneLinux Embedded per l'automazione
Linux Embedded per l'automazioneDaniele Costarella
 
Vagrant e Docker a confronto;scegliere ed iniziare
Vagrant e  Docker a confronto;scegliere ed iniziareVagrant e  Docker a confronto;scegliere ed iniziare
Vagrant e Docker a confronto;scegliere ed iniziareDaniele Mondello
 
Sistemi operativi ed iso
Sistemi operativi ed isoSistemi operativi ed iso
Sistemi operativi ed isoJacopo Grimoldi
 
Ubuntu su tablet e smartphone, la prossima Rivoluzione
Ubuntu su tablet e smartphone, la prossima RivoluzioneUbuntu su tablet e smartphone, la prossima Rivoluzione
Ubuntu su tablet e smartphone, la prossima RivoluzioneDario Cavedon
 
Linux vs. Windows - LinuxDay 2010 (Pistoia)
Linux vs. Windows - LinuxDay 2010 (Pistoia)Linux vs. Windows - LinuxDay 2010 (Pistoia)
Linux vs. Windows - LinuxDay 2010 (Pistoia)Andrea Grandi
 
2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...
2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...
2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...Marco Parenzan
 
Guida al computer - Lezione 91 - La Virtualizzazione Parte 1
Guida al computer - Lezione 91 - La Virtualizzazione Parte 1Guida al computer - Lezione 91 - La Virtualizzazione Parte 1
Guida al computer - Lezione 91 - La Virtualizzazione Parte 1caioturtle
 
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...Codemotion
 
Codemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi Cluster
Codemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi ClusterCodemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi Cluster
Codemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi ClusterMatteo Baccan
 

Ähnlich wie Abel, il sistema di build della nuova CAINE (20)

ConfSL: Sviluppo Applicazioni web con Symfony
ConfSL: Sviluppo Applicazioni web con SymfonyConfSL: Sviluppo Applicazioni web con Symfony
ConfSL: Sviluppo Applicazioni web con Symfony
 
Guida al computer - Lezione 53 - Il Sistema Operativo Parte 3
Guida al computer - Lezione 53 - Il Sistema Operativo Parte 3Guida al computer - Lezione 53 - Il Sistema Operativo Parte 3
Guida al computer - Lezione 53 - Il Sistema Operativo Parte 3
 
Java sul tuo Mac
Java sul tuo MacJava sul tuo Mac
Java sul tuo Mac
 
Italy vmug 2019 PowerCLI pret-a-porter
Italy vmug 2019 PowerCLI pret-a-porterItaly vmug 2019 PowerCLI pret-a-porter
Italy vmug 2019 PowerCLI pret-a-porter
 
Infrastructure as Data
Infrastructure as DataInfrastructure as Data
Infrastructure as Data
 
RiminiLUG. Mini Corso su Linux p1: Installazione & Configurazione
RiminiLUG. Mini Corso su Linux p1: Installazione & ConfigurazioneRiminiLUG. Mini Corso su Linux p1: Installazione & Configurazione
RiminiLUG. Mini Corso su Linux p1: Installazione & Configurazione
 
Why Linux is better
Why Linux is betterWhy Linux is better
Why Linux is better
 
[Ubuntu per tutti] 1, Ottenere ed installare Ubuntu Linux
[Ubuntu per tutti] 1, Ottenere ed installare Ubuntu Linux[Ubuntu per tutti] 1, Ottenere ed installare Ubuntu Linux
[Ubuntu per tutti] 1, Ottenere ed installare Ubuntu Linux
 
Linux Embedded per l'automazione
Linux Embedded per l'automazioneLinux Embedded per l'automazione
Linux Embedded per l'automazione
 
Vagrant e Docker a confronto;scegliere ed iniziare
Vagrant e  Docker a confronto;scegliere ed iniziareVagrant e  Docker a confronto;scegliere ed iniziare
Vagrant e Docker a confronto;scegliere ed iniziare
 
Informatica
InformaticaInformatica
Informatica
 
Sistemi operativi ed iso
Sistemi operativi ed isoSistemi operativi ed iso
Sistemi operativi ed iso
 
Ubuntu su tablet e smartphone, la prossima Rivoluzione
Ubuntu su tablet e smartphone, la prossima RivoluzioneUbuntu su tablet e smartphone, la prossima Rivoluzione
Ubuntu su tablet e smartphone, la prossima Rivoluzione
 
Standard Dev Workflow
Standard Dev WorkflowStandard Dev Workflow
Standard Dev Workflow
 
TuxIsAlive
TuxIsAliveTuxIsAlive
TuxIsAlive
 
Linux vs. Windows - LinuxDay 2010 (Pistoia)
Linux vs. Windows - LinuxDay 2010 (Pistoia)Linux vs. Windows - LinuxDay 2010 (Pistoia)
Linux vs. Windows - LinuxDay 2010 (Pistoia)
 
2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...
2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...
2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...
 
Guida al computer - Lezione 91 - La Virtualizzazione Parte 1
Guida al computer - Lezione 91 - La Virtualizzazione Parte 1Guida al computer - Lezione 91 - La Virtualizzazione Parte 1
Guida al computer - Lezione 91 - La Virtualizzazione Parte 1
 
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...
 
Codemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi Cluster
Codemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi ClusterCodemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi Cluster
Codemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi Cluster
 

Mehr von Andrea Lazzarotto

Reverse Engineering per dispositivi IoT
Reverse Engineering per dispositivi IoTReverse Engineering per dispositivi IoT
Reverse Engineering per dispositivi IoTAndrea Lazzarotto
 
Come sviluppo le applicazioni web
Come sviluppo le applicazioni webCome sviluppo le applicazioni web
Come sviluppo le applicazioni webAndrea Lazzarotto
 
Pubblicità invasiva e spiona: come proteggersi su Android
Pubblicità invasiva e spiona: come proteggersi su AndroidPubblicità invasiva e spiona: come proteggersi su Android
Pubblicità invasiva e spiona: come proteggersi su AndroidAndrea Lazzarotto
 
Come si creano le app Android
Come si creano le app AndroidCome si creano le app Android
Come si creano le app AndroidAndrea Lazzarotto
 
Ricostruzione forense di NTFS con metadati parzialmente danneggiati
Ricostruzione forense di NTFS con metadati parzialmente danneggiatiRicostruzione forense di NTFS con metadati parzialmente danneggiati
Ricostruzione forense di NTFS con metadati parzialmente danneggiatiAndrea Lazzarotto
 
Recuperare dati da partizioni NTFS danneggiate
Recuperare dati da partizioni NTFS danneggiateRecuperare dati da partizioni NTFS danneggiate
Recuperare dati da partizioni NTFS danneggiateAndrea Lazzarotto
 
Come funziona Internet e perché il software libero è fondamentale
Come funziona Internet e perché il software libero è fondamentaleCome funziona Internet e perché il software libero è fondamentale
Come funziona Internet e perché il software libero è fondamentaleAndrea Lazzarotto
 
RecuperaBit: Forensic File System Reconstruction Given Partially Corrupted Me...
RecuperaBit: Forensic File System Reconstruction Given Partially Corrupted Me...RecuperaBit: Forensic File System Reconstruction Given Partially Corrupted Me...
RecuperaBit: Forensic File System Reconstruction Given Partially Corrupted Me...Andrea Lazzarotto
 
Presentazione del progetto Itis Linux
Presentazione del progetto Itis LinuxPresentazione del progetto Itis Linux
Presentazione del progetto Itis LinuxAndrea Lazzarotto
 
Data Visualization — Le funzionalità matematiche di Sage per la visualizzazio...
Data Visualization — Le funzionalità matematiche di Sage per la visualizzazio...Data Visualization — Le funzionalità matematiche di Sage per la visualizzazio...
Data Visualization — Le funzionalità matematiche di Sage per la visualizzazio...Andrea Lazzarotto
 
Matematica di base e avanzata con Sage
Matematica di base e avanzata con SageMatematica di base e avanzata con Sage
Matematica di base e avanzata con SageAndrea Lazzarotto
 
Presentazioni di qualità professionale con Impress
Presentazioni di qualità professionale con ImpressPresentazioni di qualità professionale con Impress
Presentazioni di qualità professionale con ImpressAndrea Lazzarotto
 

Mehr von Andrea Lazzarotto (15)

Reverse Engineering per dispositivi IoT
Reverse Engineering per dispositivi IoTReverse Engineering per dispositivi IoT
Reverse Engineering per dispositivi IoT
 
Come sviluppo le applicazioni web
Come sviluppo le applicazioni webCome sviluppo le applicazioni web
Come sviluppo le applicazioni web
 
Pubblicità invasiva e spiona: come proteggersi su Android
Pubblicità invasiva e spiona: come proteggersi su AndroidPubblicità invasiva e spiona: come proteggersi su Android
Pubblicità invasiva e spiona: come proteggersi su Android
 
Come si creano le app Android
Come si creano le app AndroidCome si creano le app Android
Come si creano le app Android
 
Ricostruzione forense di NTFS con metadati parzialmente danneggiati
Ricostruzione forense di NTFS con metadati parzialmente danneggiatiRicostruzione forense di NTFS con metadati parzialmente danneggiati
Ricostruzione forense di NTFS con metadati parzialmente danneggiati
 
Recuperare dati da partizioni NTFS danneggiate
Recuperare dati da partizioni NTFS danneggiateRecuperare dati da partizioni NTFS danneggiate
Recuperare dati da partizioni NTFS danneggiate
 
Come funziona Internet e perché il software libero è fondamentale
Come funziona Internet e perché il software libero è fondamentaleCome funziona Internet e perché il software libero è fondamentale
Come funziona Internet e perché il software libero è fondamentale
 
RecuperaBit: Forensic File System Reconstruction Given Partially Corrupted Me...
RecuperaBit: Forensic File System Reconstruction Given Partially Corrupted Me...RecuperaBit: Forensic File System Reconstruction Given Partially Corrupted Me...
RecuperaBit: Forensic File System Reconstruction Given Partially Corrupted Me...
 
Dallo scatto al volantino
Dallo scatto al volantinoDallo scatto al volantino
Dallo scatto al volantino
 
Presentazione del progetto Itis Linux
Presentazione del progetto Itis LinuxPresentazione del progetto Itis Linux
Presentazione del progetto Itis Linux
 
Data Visualization — Le funzionalità matematiche di Sage per la visualizzazio...
Data Visualization — Le funzionalità matematiche di Sage per la visualizzazio...Data Visualization — Le funzionalità matematiche di Sage per la visualizzazio...
Data Visualization — Le funzionalità matematiche di Sage per la visualizzazio...
 
Italy... in pictures
Italy... in picturesItaly... in pictures
Italy... in pictures
 
Matematica di base e avanzata con Sage
Matematica di base e avanzata con SageMatematica di base e avanzata con Sage
Matematica di base e avanzata con Sage
 
Presentazioni di qualità professionale con Impress
Presentazioni di qualità professionale con ImpressPresentazioni di qualità professionale con Impress
Presentazioni di qualità professionale con Impress
 
Network Forensics
Network ForensicsNetwork Forensics
Network Forensics
 

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
  • 4.
  • 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
  • 13.
  • 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…
  • 17.
  • 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
  • 22.
  • 23.
  • 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!
  • 25.
  • 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
  • 27.
  • 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
  • 33.
  • 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