
Sandbox di analisi malware basata su Python che si integra con Sysinternals Procmon per raccogliere, analizzare e segnalare automaticamente indicatori di runtime con scansione YARA e generazione di IOC.
Noriben Sandbox di Analisi Malware
Informazioni di contatto: @bbaskin su Twitter brian _at_ thebaskins _dot_ com
Noriben è uno script basato su Python che, in combinazione con Procmon di Sysinternals, raccoglie, analizza e genera automaticamente report sugli indicatori runtime dei malware. In sostanza, permette di eseguire un'applicazione, premere un tasto e ottenere un semplice report testuale delle attività del campione.
Noriben consente non solo di eseguire malware in modo simile a una sandbox, ma anche di registrare eventi a livello di sistema mentre si esegue manualmente il malware in modi specifici per farlo funzionare. Ad esempio, può rimanere in ascolto mentre si esegue un'applicazione che richiede diverse opzioni da riga di comando o interazione con l'utente. Oppure, per osservare il sistema mentre si procede passo dopo passo nell'applicazione con un debugger.
Sebbene Noriben sia stato progettato per l'analisi di malware, è stato anche ampiamente utilizzato per controllare applicazioni software normali. Nel 2013 è stato usato dal Tor Project per fornire un audit pubblico del Tor Browser Bundle.
Qui sotto c'è un video del debugging di un malware che controlla la VM in modo da ottenere comunque risultati dalla sandbox (clic errati a causa di un puntatore del mouse fuori di 5 pixel :))
Noriben richiede solo Sysinternals procmon.exe (o procmon64.exe) per funzionare. Non necessita di pre-filtraggio (anche se aiuterebbe molto) poiché contiene numerosi elementi di whitelist per ridurre il rumore indesiderato dall'attività di sistema.
Per una spiegazione più dettagliata, vedi la mia presentazione del Black Hat 2015 Arsenal. E un post più dettagliato sul blog: http://ghettoforensics.blogspot.com/2013/04/noriben-your-personal-portable-malware.html
Ho anche incluso un frontend molto richiesto, NoribenSandbox.py. Questo script permette di automatizzare l'esecuzione di Noriben all'interno di una VM guest e recuperare i report. Attualmente funziona su OSX (ma sarà portato) ed è responsabile di: avviare una VM predefinita e uno snapshot, copiare il malware nella VM, avviare Noriben e il malware, attendere un periodo di tempo predefinito, copiare i risultati sull'host come ZIP e acquisire uno screenshot della VM. Puoi anche usare --update per copiare automaticamente l'ultima versione di Noriben dall'host, in modo da non dover creare continuamente nuovi snapshot quando apporti modifiche allo script.
Vuoi vederlo in azione?
Se hai una cartella di file di firme YARA, puoi specificarla con l'opzione --yara. Ogni nuovo file creato verrà scansionato con queste firme e i risultati verranno mostrati nell'output.
Se hai un'API di VirusTotal, inseriscila in un file chiamato "virustotal.api" (o incorporala direttamente nello script) per inviare automaticamente gli hash MD5 dei file a VT e ottenere il numero di risultati virali.
Puoi aggiungere elenchi di MD5 da ignorare automaticamente (come tutti i file di sistema). Usa md5deep e inseriscili in un file di testo, usa --hash per leggerli. Questo finirà comunque sotto le modifiche.
Puoi automatizzare lo script per l'uso come sandbox. Usando -t per automatizzare il tempo di esecuzione, e --cmd "percorso\exe" per specificare un file malware, puoi eseguire automaticamente il malware, copiare i risultati e poi ripristinare per eseguire un nuovo campione.
La funzionalità --generalize sostituirà automaticamente i percorsi assoluti con percorsi delle variabili d'ambiente di Windows per un miglior sviluppo di IOC. Ad esempio, C:\Users\malware_user\AppData\Roaming\malware.exe verrà risolto automaticamente in %AppData%\malware.exe.
Utilizzo:
--===[ Noriben v1.7.2
--===[ @bbaskin
usage: Noriben.py [-h] [-c CSV] [-p PML] [-f FILTER] [--hash HASH]
[--hashtype {MD5,SHA1,SHA256}] [--headless] [-t TIMEOUT]
[--output OUTPUT] [--yara YARA] [--generalize] [--cmd CMD]
[-d]
optional arguments:
-h, --help show this help message and exit
-c CSV, --csv CSV Re-analyze an existing Noriben CSV file
-p PML, --pml PML Re-analyze an existing Noriben PML file
-f FILTER, --filter FILTER
Specify alternate Procmon Filter PMC
--hash HASH Specify hash whitelist file
--hashtype {MD5,SHA1,SHA256}
Specify hash type
--headless Do not open results on VM after processing
-t TIMEOUT, --timeout TIMEOUT
Number of seconds to collect activity
--output OUTPUT Folder to store output files
--yara YARA Folder containing YARA rules
--generalize Generalize file paths to their environment variables.
Default: True
--cmd CMD Command line to execute (in quotes)
-d, --debug Enable debugging
Brian Baskin <Scrittori di documentazione benvenuti!>
Copyright 2015 Brian Baskin
Concesso in licenza secondo l'Apache License, Versione 2.0 (la "Licenza"); non puoi utilizzare quest'opera se non in conformità con la Licenza. Puoi ottenere una copia della Licenza nel file LICENSE, o all'indirizzo:
http://www.apache.org/licenses/LICENSE-2.0
Salvo quanto richiesto dalla legge applicabile o concordato per iscritto, il software distribuito sotto la Licenza è distribuito "COSÌ COM'È", SENZA GARANZIE O CONDIZIONI DI ALCUN TIPO, esplicite o implicite. Consulta la Licenza per il linguaggio specifico che regola i permessi e le limitazioni previste dalla Licenza.