Cuckoo Sandbox: Automated malware analysis

1,466 views

Published on

Analisi automatizzata di malware con Cuckoo Sandbox. Introduzione, funzionamento, utilizzo, demo e casi pratici.
Talk tenuto all'ESC 2013.

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,466
On SlideShare
0
From Embeds
0
Number of Embeds
208
Actions
Shares
0
Downloads
53
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Cuckoo Sandbox: Automated malware analysis

  1. 1. Alessandro @jekil Tanasi automated malware analysis
  2. 2. CONTENUTI • Automated malware analysis • Il progetto Cuckoo Sandbox • Architettura • Moduli • Installazione • Utilizzo • Community
  3. 3. AUTOMATED MALWARE ANALYSIS
  4. 4. IDEA Magic Box
  5. 5. 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
  6. 6. SANDBOX & MALWARE • Esecuzione del malware in ambiente isolato • Monitoraggio del suo funzionamento • Monitoraggio delle intreazioni con le risorse • Software o hardware
  7. 7. SANDBOXVS MALWARE • Grandi quantità di malware • Automazione totale e flessibilità • Integrazione con altri strumenti di sicurezza • Analisi con risultati comparabili con quella manuale
  8. 8. SCOPI • Analisi Malware • Ricerca di minacce • Forensics e incident response • Sistemi integrati per la sicurezza WANTED!
  9. 9. MA.. • Prodotti commerciali costosi e closed source • Setup complessi • Nessuna o poco flessibilità • Svantaggiosi per studenti, ricercatori, ecc.
  10. 10. CUCKOO SANDBOX • Sandbox per analisi automatizzata di malware • Progettata per essere facile da usare • Progettata per essere totalmente personalizzabile
  11. 11. 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
  12. 12. 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
  13. 13. 6 MESI: 15000 DOWNLOADS
  14. 14. > 25 COLLABORATORI
  15. 15. MAJOR RELEASES 2010 2011 2012 2013 Ago 2010 0.1a Gen 2011 0.1 Nov 2011 0.2 Dic 2011 0.3 Giu 2012 0.4 Dic 2012 0.5 Apr 2013 0.6 1.0
  16. 16. ARCHITETTURA
  17. 17. ARCHITETTURA • Host GNU/Linux • Software di virtualizzazione (VirtualBox, KVM/libvirt, Vmware) • Macchine virtuali (VM) in cui eseguire il malware VM VMCuckoo HOST FISICO
  18. 18. CICLO DI ANALISI Recupera task PreparaVM Upload analyzer Esecuzione malware Processing Reporting
  19. 19. COMPONENTI • Core deamon ‣ Gestisce il processo di analisi, i moduli e leVM. • Analyzer ‣ All’interno dellaVM esegue il sample e comunica al core le sue azione. ‣ Modulare: per ogni sistema operativo.
  20. 20. CICLO DI ANALISI CoreInvio Agent Analyzer Upload Logging & controllo RPC DB
  21. 21. 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
  22. 22. MODULI
  23. 23. MACHINERY • Interagiscono con il software di virtualizzazione • Codice Python in modules/machinery/ • Software supportati: ‣ VirtualBox ‣ VMWare Workstation ‣ QEMU/KVM ‣ Base class LibVirt
  24. 24. AUXILIARY • Eseguiti in parallelo all'analisi • Codice Python in modules/auxiliary/ • Esempio: network sniffer
  25. 25. 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 • RicercaVirusTotal
  26. 26. 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
  27. 27. REPORTS • Presentano le informazioni in vari formati • Codice Python in modules/reporting/ • Default reports: ‣ JSON ‣ HTML ‣ MAEC ‣ MongoDB
  28. 28. 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
  29. 29. ANALYSIS AUXILIARY • Eseguiti parallelamente al sample • Codice Python in analyzer/windows/modules/ auxiliaries/ • Esempi: muovere il mouse, screenshots
  30. 30. SETUP
  31. 31. DOWNLOAD • Dal sito ufficiale: http://www.cuckoosandbox.org • Da GitHub: http://github.com/cuckoobox/cuckoo
  32. 32. INSTALLAZIONE • Estrarre Cuckoo • Installare le dipendenze (da manuale) • Creare unaVM per l'analisi, eseguirci agent.py, e fare uno snapshot • Configurare il networking • Modificare a piacimento la configurazione in conf/
  33. 33. CREAZIONEVM • DiverseVM per requisiti ‣ Sistema operativo e livello di patching ‣ Architettura CPU ‣ Applicativi installati (exploitable) • AntiVM detection • Fake stuff: credenziali, ecc. • Eseguire agent.py • Fare snapshot
  34. 34. CONFIGURAZIONE • Configurazione generale • ConfigurazioneVM • Sniffer • Processing • Reports La configurazione deve essere calibrata sul risultato voluto
  35. 35. UTILIZZO
  36. 36. SAMPLE SUBMISSION • Via console: utils/submit.py • Via API: utils/api.py • Via interfaccia web • Via codice Python
  37. 37. 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
  38. 38. 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
  39. 39. WEBAPP • Django web application in web/ • Submission con opzioni • Ricerca di analisi • Report interattivo
  40. 40. MALWR.COM • Istanza pubblica • Sample condivisi • User accounts • Analisi private • Funzionalità social
  41. 41. COMMUNITY.CUCKOOSANDBOX.ORG • Portale domanda & risposta • Supporto utenti • Knowledge portal
  42. 42. GET INTOUCH • Mailing list https://public.honeynet.org/mailman/listinfo/cuckoo • Bug tracker http://dev.cuckoosandbox.org/ • IRC chat irc://irc.freenode.net/#cuckoosandbox
  43. 43. CONCLUSIONI Open source Custom Community driven IntegrabileFacilità Continuo sviluppo
  44. 44. 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à
  45. 45. DOMANDE & COMMENTI

×