
Sandbox d'analyse de malware basée sur Python qui s'intègre à Sysinternals Procmon pour collecter, analyser et rapporter automatiquement les indicateurs d'exécution avec le scan YARA et la génération d'IOC.
Noriben Sandbox d'analyse de malwares
Coordonnées : @bbaskin sur Twitter brian _at_ thebaskins _dot_ com
Noriben est un script basé sur Python qui fonctionne de concert avec Sysinternals Procmon pour collecter, analyser et rapporter automatiquement les indicateurs d'exécution de malwares. En bref, il vous permet d'exécuter une application, d'appuyer sur une touche et d'obtenir un simple rapport textuel des activités de l'échantillon.
Noriben vous permet non seulement d'exécuter des malwares comme dans un sandbox, mais aussi de journaliser les événements système lors d'une exécution manuelle adaptée pour faire fonctionner le malware. Par exemple, il peut écouter pendant que vous exécutez une application nécessitant différentes options de ligne de commande ou une interaction utilisateur. Ou encore, surveiller le système lorsque vous parcourez l'application pas à pas dans un débogueur.
Bien que Noriben ait été conçu pour l'analyse de malwares, il a également été largement utilisé pour auditer des applications logicielles normales. En 2013, il a été utilisé par le projet Tor pour fournir un audit public du Tor Browser Bundle
Ci-dessous une vidéo de débogage d'un malware vérifiant la VM, d'une manière permettant d'obtenir des résultats sandbox (clics erronés à cause d'un pointeur de souris décalé de 5 pixels :))
Noriben nécessite uniquement Sysinternals procmon.exe (ou procmon64.exe) pour fonctionner. Il ne nécessite aucun pré-filtrage (bien que cela aiderait grandement) car il contient de nombreux éléments de liste blanche pour réduire le bruit indésirable de l'activité système.
Pour une explication plus détaillée, consultez mon diaporama du Black Hat 2015 Arsenal. Et un article de blog plus détaillé : http://ghettoforensics.blogspot.com/2013/04/noriben-your-personal-portable-malware.html
J'ai également inclus un opérateur frontal très demandé, NoribenSandbox.py. Ce script vous permet d'automatiser l'exécution de Noriben dans une VM invitée et de récupérer les rapports. Il fonctionne actuellement sur OSX (mais sera porté) et est responsable de : démarrer une VM et un instantané prédéfinis, copier le malware dans la VM, lancer Noriben et le malware, attendre une durée prédéterminée, copier les résultats vers l'hôte sous forme de ZIP, et prendre une capture d'écran de la VM. Vous pouvez même utiliser --update pour copier automatiquement la version la plus récente de Noriben depuis votre hôte, afin de ne pas avoir à créer continuellement de nouveaux instantanés lorsque vous modifiez le script.
Vous voulez voir cela en action ?
Si vous avez un dossier de fichiers de signatures YARA, vous pouvez le spécifier avec l'option --yara. Chaque nouveau fichier créé sera scanné par ces signatures et les résultats seront affichés dans les résultats de sortie.
Si vous possédez une API VirusTotal, placez-la dans un fichier nommé "virustotal.api" (ou intégrez-la directement dans le script) pour soumettre automatiquement les hachages MD5 des fichiers à VT et obtenir le nombre de résultats viraux.
Vous pouvez ajouter des listes de MD5 à ignorer automatiquement (comme tous vos fichiers système). Utilisez md5deep et mettez-les dans un fichier texte, utilisez --hash pour les lire. Cela sera finalement pris en compte dans les modifications, cependant.
Vous pouvez automatiser le script pour une utilisation en sandbox. En utilisant -t pour automatiser le temps d'exécution, et --cmd "chemin\exe" pour spécifier un fichier malware, vous pouvez exécuter automatiquement le malware, copier les résultats, puis restaurer pour exécuter un nouvel échantillon.
La fonctionnalité --generalize remplace automatiquement les chemins absolus par des chemins d'environnement Windows pour un meilleur développement d'IOC. Par exemple, C:\Users\malware_user\AppData\Roaming\malware.exe sera automatiquement résolu en %AppData%\malware.exe.
Usage :
--===[ Noriben v1.7.2
--===[ @bbaskin
utilisation : 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]
arguments optionnels :
-h, --help afficher ce message d'aide et quitter
-c CSV, --csv CSV Réanalyser un fichier CSV Noriben existant
-p PML, --pml PML Réanalyser un fichier PML Noriben existant
-f FILTER, --filter FILTER
Spécifier un PMC de filtre Procmon alternatif
--hash HASH Spécifier un fichier de liste blanche de hachages
--hashtype {MD5,SHA1,SHA256}
Spécifier le type de hachage
--headless Ne pas ouvrir les résultats sur la VM après le traitement
-t TIMEOUT, --timeout TIMEOUT
Nombre de secondes pour collecter l'activité
--output OUTPUT Dossier où stocker les fichiers de sortie
--yara YARA Dossier contenant les règles YARA
--generalize Généraliser les chemins de fichiers en leurs variables d'environnement.
Par défaut : True
--cmd CMD Ligne de commande à exécuter (entre guillemets)
-d, --debug Activer le débogage
Brian Baskin <Les rédacteurs de documentation sont les bienvenus !>
Cowpy pour la conception du logo
Copyright 2015 Brian Baskin
Sous licence Apache, version 2.0 (la « Licence ») ; vous ne pouvez pas utiliser cette œuvre sauf en conformité avec la Licence. Vous pouvez obtenir une copie de la Licence dans le fichier LICENSE, ou à l'adresse :
http://www.apache.org/licenses/LICENSE-2.0
Sauf si la loi applicable l'exige ou si un accord écrit le prévoit, le logiciel distribué sous la Licence est distribué « EN L'ÉTAT », SANS GARANTIES NI CONDITIONS D'AUCUNE SORTE, expresses ou implicites. Consultez la Licence pour connaître les autorisations et limitations spécifiques applicables à la Licence.