Alessandro @jekil Tanasi
automated malware analysis
CONTENUTI
• Automated malware analysis
• Il progetto Cuckoo Sandbox
• Architettura
• Moduli
• Installazione
• Utilizzo
• Community
AUTOMATED MALWARE ANALYSIS
IDEA
MagicBox
SANDBOX
•Meccanismo per isolare l'esecuzione del software
•Mette a disposizione un set limitato e controllato di risorse hardware e software
• Usato per eseguire software non fidato
• Paradigma utilizzato in security e malware analysis
SANDBOX & MALWARE
• Esecuzione del malware in ambiente isolato
•Monitoraggio del suo funzionamento
•Monitoraggio delle intreazioni con le risorse
• Software o hardware
SANDBOX VS MALWARE
• Grandi quantità di malware
•Automazione totale e flessibilità
• Integrazione con altri strumenti di sicurezza
• Analisi con risultati comparabili con quella manuale
SCOPI
•Analisi Malware
•Ricerca di minacce
• Forensics e incident response
• Sistemi integrati per la sicurezza
WANTED!
MA..
• Prodotti commerciali costosi e closed source
• Setup complessi
•Nessuna o poco flessibilità
• Svantaggiosi per studenti, ricercatori, ecc.
CUCKOO SANDBOX
• Sandbox per analisi automatizzata di malware
• Progettata per essere facile da usare
• Progettata per essere totalmente personalizzabile
FUNZIONALITÀ
• Completamente automatizzata
• Personalizzabile in ogni sua parte: tutto e` modulare
• Analisi parallela
• Tracciamento API calls
•Memory dump
• Analisi traffico di rete
•Dump file
• Screenshots
• Signature
TEAM
Claudio nex Guarnieri Alessandro jekil Tanasi
Mark rep Schloesser Jurriaan skier Bremer
@botherder
Lead developer Core developer
Core developer Core developer
@jekil
@repmovsb @skier_t
6 MESI: 15000 DOWNLOADS
> 25 COLLABORATORI
MAJOR RELEASES
2010 2011 2012 2013
Ago 20100.1a
Gen 2011
0.1
Nov 20110.2
Dic 2011
0.3
Giu 20120.4
Dic 2012
0.5
Apr 20130.6
1.0
ARCHITETTURA
ARCHITETTURA
• Host GNU/Linux
• Software di virtualizzazione (VirtualBox, KVM/libvirt, Vmware)
•Macchine virtuali (VM) in cui eseguire il malware
VMVMCuckoo
HOSTFISICO
CICLO DI ANALISI
Recuperatask Prepara VM
Upload analyzer
Esecuzione malware Processing Reporting
COMPONENTI
•Core deamon
‣ Gestisce il processo di analisi, i moduli e le VM.
• Analyzer
‣ All’interno della VM esegue il sample e comunica al core le sue azione.
‣ Modulare: per ogni sistema operativo.
CICLO DI ANALISI
CoreInvioAgent
AnalyzerUpload
Logging & controllo RPC
DB
CUCKOOMON
• Instrumentation via DLL injection
• Hooking delle principali funzioni (circa 170 APIs)
• Logging in real time via network
• Traccia i processi child o injected
• Codice in C
http://github.com/cuckoobox/cuckoomon
MODULI
MACHINERY
• Interagiscono con il software di virtualizzazione
• Codice Python in modules/machinery/
• Software supportati:
‣ VirtualBox
‣ VMWare Workstation
‣ QEMU/KVM
‣ Base class LibVirt
AUXILIARY
• Eseguiti in parallelo all'analisi
• Codice Python in modules/auxiliary/
• Esempio: network sniffer
PROCESSING
• Elaborano i dati grezzi di analisi
• Codice Python in modules/processing/
• Analysis Info
• File Hashes
• Yara Signatures
• Behavior Analysis
• Dropped Files
• Analisi del memory dump con Volatility
• Analisi traffico di rete
• Analisi header PE32
• Strings
• Ricerca VirusTotal
SIGNATURES
• Scattano in corrispondenza di determinati eventi
• Codice Python in modules/signatures/
• Esempi:
‣ Riconoscere famiglie
‣ Estrarre ulteriori dettagli (configurazioni)
• Community repository
https://github.com/cuckoobox/community
REPORTS
• Presentano le informazioni in vari formati
• Codice Python in modules/reporting/
• Default reports:
‣ JSON
‣ HTML
‣ MAEC
‣ MongoDB
ANALYSIS PACKAGES
• Lanciano il sample in base al suo tipo (URL, Office, etc)
• Codice Python in analyzer/windows/modules/packages/
•Default packages:
‣ Java applet, DLL, Word, executable, HTML, URL (Internet Explorer), Java JAR, Adobe PDF, VBS, Excel, ZIP
ANALYSIS AUXILIARY
• Eseguiti parallelamente al sample
• Codice Python in analyzer/windows/modules/auxiliaries/
• Esempi: muovere il mouse, screenshots
SETUP
DOWNLOAD
•Dal sito ufficiale:
http://www.cuckoosandbox.org
•Da GitHub:
http://github.com/cuckoobox/cuckoo
INSTALLAZIONE
• Estrarre Cuckoo
• Installare le dipendenze (da manuale)
• Creare una VM per l'analisi, eseguirci agent.py, e fare uno snapshot
• Configurare il networking
•Modificare a piacimento la configurazione in conf/
CREAZIONE VM
• Diverse VM per requisiti
‣ Sistema operativo e livello di patching
‣ Architettura CPU
‣ Applicativi installati (exploitable)
• Anti VM detection
• Fake stuff: credenziali, ecc.
• Eseguire agent.py
• Fare snapshot
CONFIGURAZIONE
• Configurazione generale
• Configurazione VM
• Sniffer
• Processing
• Reports
La configurazione deve essere
calibrata sul risultato voluto
UTILIZZO
SAMPLE SUBMISSION
• Via console: utils/submit.py
• Via API: utils/api.py
• Via interfaccia web
• Via codice Python
OPZIONI DI SUBMISSION
• Package di analisi e opzioni
• Timeout
• Priorità dell’analisi
• Virtual machine name
• Virtual machine platform
• Virtual machine tag
•Memory dump (VM)
•Memory dump (processo)
• Clock
RISULTATI
• Folder di analisi storage/analysis/{id}/
• Il contenuto dipende dall’esito dell’analisi
• Il contenuto dipende dai moduli abilitati
. |-- analysis.conf |-- analysis.log |-- binary |-- dump.pcap |-- memory.dmp |-- files | |-- 1234567890 | `-- dropped.exe |-- logs | |-- 1232.raw | `-- 1118.raw |-- reports | |-- report.html | |-- report.json | |-- report.maec11.xml | `-- report.metadata.xml `-- shots |-- 0001.jpg `-- 0002.jpg
WEBAPP
•Django web application in web/
• Submission con opzioni
•Ricerca di analisi
• Report interattivo
MALWR.COM
• Istanza pubblica
• Sample condivisi
• User accounts
• Analisi private
• Funzionalità social
COMMUNITY.CUCKOOSANDBOX.ORG
• Portale domanda & risposta
• Supporto utenti
•Knowledge portal
GET IN TOUCH
•Mailing list
https://public.honeynet.org/mailman/listinfo/cuckoo
•Bug tracker
http://dev.cuckoosandbox.org/
• IRC chat
irc://irc.freenode.net/#cuckoosandbox
CONCLUSIONI
Opensource
Custom Community driven
IntegrabileFacilità
Continuo sviluppo
FUTURO
• Più analyzer : Linux e MacOSX
• Supporto per ESXi e macchine fisiche
• Performances
• Più signatures
• Il futuro è guidato dalle esigenze di malware analysis e dalla communità
DOMANDE & COMMENTI