55
Alessandro @jekil Tanasi automated malware analysis

Cuckoo Sandbox: Automated malware analysis

  • Upload
    jekil

  • View
    437

  • Download
    4

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Cuckoo Sandbox: Automated malware analysis

Alessandro @jekil Tanasi

automated malware analysis

Page 2: Cuckoo Sandbox: Automated malware analysis

CONTENUTI

• Automated malware analysis

• Il progetto Cuckoo Sandbox

• Architettura

• Moduli

• Installazione

• Utilizzo

• Community

Page 3: Cuckoo Sandbox: Automated malware analysis

AUTOMATED MALWARE ANALYSIS

Page 4: Cuckoo Sandbox: Automated malware analysis

IDEA

MagicBox

Page 5: Cuckoo Sandbox: Automated malware analysis

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

Page 6: Cuckoo Sandbox: Automated malware analysis

SANDBOX & MALWARE

• Esecuzione del malware in ambiente isolato

•Monitoraggio del suo funzionamento

•Monitoraggio delle intreazioni con le risorse

• Software o hardware

Page 7: Cuckoo Sandbox: Automated malware analysis

SANDBOX VS MALWARE

• Grandi quantità di malware

•Automazione totale e flessibilità

• Integrazione con altri strumenti di sicurezza

• Analisi con risultati comparabili con quella manuale

Page 8: Cuckoo Sandbox: Automated malware analysis

SCOPI

•Analisi Malware

•Ricerca di minacce

• Forensics e incident response

• Sistemi integrati per la sicurezza

WANTED!

Page 9: Cuckoo Sandbox: Automated malware analysis

MA..

• Prodotti commerciali costosi e closed source

• Setup complessi

•Nessuna o poco flessibilità

• Svantaggiosi per studenti, ricercatori, ecc.

Page 10: Cuckoo Sandbox: Automated malware analysis
Page 11: Cuckoo Sandbox: Automated malware analysis

CUCKOO SANDBOX

• Sandbox per analisi automatizzata di malware

• Progettata per essere facile da usare

• Progettata per essere totalmente personalizzabile

Page 12: Cuckoo Sandbox: Automated malware analysis

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

Page 13: Cuckoo Sandbox: Automated malware analysis

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

Page 14: Cuckoo Sandbox: Automated malware analysis

6 MESI: 15000 DOWNLOADS

Page 15: Cuckoo Sandbox: Automated malware analysis

> 25 COLLABORATORI

Page 16: Cuckoo Sandbox: Automated malware analysis

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

Page 17: Cuckoo Sandbox: Automated malware analysis

ARCHITETTURA

Page 18: Cuckoo Sandbox: Automated malware analysis

ARCHITETTURA

• Host GNU/Linux

• Software di virtualizzazione (VirtualBox, KVM/libvirt, Vmware)

•Macchine virtuali (VM) in cui eseguire il malware

VMVMCuckoo

HOSTFISICO

Page 19: Cuckoo Sandbox: Automated malware analysis

CICLO DI ANALISI

Recuperatask Prepara VM

Upload analyzer

Esecuzione malware Processing Reporting

Page 20: Cuckoo Sandbox: Automated malware analysis

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.

Page 21: Cuckoo Sandbox: Automated malware analysis

CICLO DI ANALISI

CoreInvioAgent

AnalyzerUpload

Logging & controllo RPC

DB

Page 22: Cuckoo Sandbox: Automated malware analysis

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

Page 23: Cuckoo Sandbox: Automated malware analysis

MODULI

Page 24: Cuckoo Sandbox: Automated malware analysis

MACHINERY

• Interagiscono con il software di virtualizzazione

• Codice Python in modules/machinery/

• Software supportati:

‣ VirtualBox

‣ VMWare Workstation

‣ QEMU/KVM

‣ Base class LibVirt

Page 25: Cuckoo Sandbox: Automated malware analysis
Page 26: Cuckoo Sandbox: Automated malware analysis

AUXILIARY

• Eseguiti in parallelo all'analisi

• Codice Python in modules/auxiliary/

• Esempio: network sniffer

Page 27: Cuckoo Sandbox: Automated malware analysis

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

Page 28: Cuckoo Sandbox: Automated malware analysis
Page 29: Cuckoo Sandbox: Automated malware analysis

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

Page 30: Cuckoo Sandbox: Automated malware analysis
Page 31: Cuckoo Sandbox: Automated malware analysis

REPORTS

• Presentano le informazioni in vari formati

• Codice Python in modules/reporting/

• Default reports:

‣ JSON

‣ HTML

‣ MAEC

‣ MongoDB

Page 32: Cuckoo Sandbox: Automated malware analysis
Page 33: Cuckoo Sandbox: Automated malware analysis

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

Page 34: Cuckoo Sandbox: Automated malware analysis
Page 35: Cuckoo Sandbox: Automated malware analysis

ANALYSIS AUXILIARY

• Eseguiti parallelamente al sample

• Codice Python in analyzer/windows/modules/auxiliaries/

• Esempi: muovere il mouse, screenshots

Page 36: Cuckoo Sandbox: Automated malware analysis
Page 37: Cuckoo Sandbox: Automated malware analysis

SETUP

Page 38: Cuckoo Sandbox: Automated malware analysis

DOWNLOAD

•Dal sito ufficiale:

http://www.cuckoosandbox.org

•Da GitHub:

http://github.com/cuckoobox/cuckoo

Page 39: Cuckoo Sandbox: Automated malware analysis

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/

Page 40: Cuckoo Sandbox: Automated malware analysis

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

Page 41: Cuckoo Sandbox: Automated malware analysis

CONFIGURAZIONE

• Configurazione generale

• Configurazione VM

• Sniffer

• Processing

• Reports

La configurazione deve essere

calibrata sul risultato voluto

Page 42: Cuckoo Sandbox: Automated malware analysis

UTILIZZO

Page 43: Cuckoo Sandbox: Automated malware analysis

SAMPLE SUBMISSION

• Via console: utils/submit.py

• Via API: utils/api.py

• Via interfaccia web

• Via codice Python

Page 44: Cuckoo Sandbox: Automated malware analysis
Page 45: Cuckoo Sandbox: Automated malware analysis

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

Page 46: Cuckoo Sandbox: Automated malware analysis

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

Page 47: Cuckoo Sandbox: Automated malware analysis

WEBAPP

•Django web application in web/

• Submission con opzioni

•Ricerca di analisi

• Report interattivo

Page 48: Cuckoo Sandbox: Automated malware analysis
Page 49: Cuckoo Sandbox: Automated malware analysis

MALWR.COM

• Istanza pubblica

• Sample condivisi

• User accounts

• Analisi private

• Funzionalità social

Page 50: Cuckoo Sandbox: Automated malware analysis

COMMUNITY.CUCKOOSANDBOX.ORG

• Portale domanda & risposta

• Supporto utenti

•Knowledge portal

Page 51: Cuckoo Sandbox: Automated malware analysis

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

Page 52: Cuckoo Sandbox: Automated malware analysis
Page 53: Cuckoo Sandbox: Automated malware analysis

CONCLUSIONI

Opensource

Custom Community driven

IntegrabileFacilità

Continuo sviluppo

Page 54: Cuckoo Sandbox: Automated malware analysis

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à

Page 55: Cuckoo Sandbox: Automated malware analysis

DOMANDE & COMMENTI