Un bac à sable est utilisé pour exécuter des fichiers malveillants dans un environnement isolé tout en instrumentant leur comportement dynamique et en collectant des artefacts médico-légaux.
CAPE a été dérivé de Cuckoo V1 qui présente les capacités de base suivantes sur la plate-forme Windows:
Cape complète la sortie traditionnelle du bac à sable de CUCKO avec plusieurs ajouts clés:
Il existe une instance de démonstration gratuite en ligne que n'importe qui peut utiliser:
https://capesandbox.com - Pour l'activation du compte, revenez à https://twitter.com/capesandbox
Cuckoo Sandbox a commencé comme un projet Google Summer of Code en 2010 dans le projet Honeynet. Il a été initialement conçu et développé par Claudio Guarnieri, la première version bêta a été publiée en 2011. En janvier 2014, Cuckoo V1.0 a été publié.
2015 a été une année charnière, avec une fourche importante dans l'histoire de Cuckoo. Le développement du moniteur et de la méthode d'accrochage de l'API d'origine a été interrompu dans le projet de coucou principal. Il a été remplacé par un moniteur alternatif à l'aide d'un format de signature basé sur restructuredText compilé via Linux Toolchain, créé par Jurriaan Bremer.
À peu près à la même époque, une fourche appelée Cuckoo modifiée a été créée par le développement continu de Brad 'Spender' Spengler du moniteur d'origine avec des améliorations significatives, y compris le support 64 bits et l'introduction du compilateur Visual Studio de Microsoft.
Au cours de la même année, le développement d'un outil de configuration de ligne de commande dynamique et d'extraction de la charge utile appelée CAPE a été commencé à la sécurité des informations contextuelles par Kevin O'Reilly. Le nom a été inventé en tant qu'acronyme de «Extraction de configuration et de charge utile» et la recherche originale s'est concentrée sur l'utilisation de crochets API fournis par la bibliothèque Detours de Microsoft pour capturer les charges utiles et la configuration de logiciels malveillants déballés. Cependant, il est devenu évident que les crochets API seuls fournissent une puissance et une précision insuffisantes pour permettre le déballage des charges utiles ou des configurations à partir de logiciels malveillants arbitraires.
Pour cette raison, la recherche a commencé à un nouveau concept de débogueur pour permettre aux logiciels malveillants d'être contrôlés et instrumentés avec précision tout en évitant l'utilisation d'interfaces de débogage de Microsoft, afin d'être aussi furtives que possible. Ce débogueur a été intégré à l'outil de ligne de commande basé sur des détours de preuve de concept, se combinant avec des crochets API et entraînant des capacités très puissantes.
Lorsque le travail initial a montré qu'il serait possible de remplacer Microsoft Detours par le moteur d'accrochage de l'API de Cuckoo Modified, l'idée de Cape Sandbox est née. Avec l'ajout du débogueur, du déballage automatisé, de la classification basée sur Yara et de l'extraction de configuration intégrée, en septembre 2016 au 44Con, Cape Sandbox a été publié publiquement pour la première fois: Cape version 1.
Au cours de l'été 2018, le projet a eu la chance de voir le début des énormes contributions d'Andriy 'Doomedaven' Brukhovetskyy, un contributeur du coucou de longue date. En 2019, il a commencé la tâche gigantesque de porter Cape à Python 3 et en octobre de la même année, CAPEV2 a été publié.
Le CAPE a été développé et amélioré en permanence pour suivre le rythme des progrès des logiciels malveillants et des capacités du système d'exploitation. En 2021, la capacité de programmer le débogueur de Cape pendant la détonation via des scans YARA dynamiques a été ajouté, permettant de créer des contournement dynamiques pour les techniques anti-sandbox. Windows 10 est devenu le système d'exploitation par défaut, et d'autres ajouts significatifs incluent le bureau interactif, la capture de charge utile AMSI (interface anti-malware), `` Hooking Syscall '' basé sur les contre-mesures système directes / indirectes de Microsoft Nirvana et basés sur le débogueur.

Les logiciels malveillants peuvent être classés en cap via trois mécanismes:

L'analyse peut être effectuée en utilisant le propre framework de Cape, alternativement les cadres suivants sont pris en charge: RatDecOders, DC3-MWCP, Malduck ou Maco
def extract_config(data): qui sera appelé par cape_utils.py et 0 complications.
Cape profite de nombreuses techniques ou comportements de logiciels malveillants pour permettre une capture de charge utile déballée:
Ces comportements entraîneront la capture des charges utiles injectées, extraites ou décompressées pour une analyse plus approfondie. De plus, CAP crée automatiquement un vidage de processus pour chaque processus, ou, dans le cas d'une DLL, l'image du module de DLL en mémoire. Ceci est utile pour les échantillons remplis de packers simples, où souvent le vidage d'image du module est entièrement déballé.
En plus des mécanismes de déballage «passifs» par défaut de CAPE, il est possible d'activer le déballage «actif» qui utilise des points d'arrêt pour détecter l'écriture dans des régions de mémoire nouvellement allouées ou protégées, afin de capturer des charges utiles déballées le plus tôt possible avant l'exécution. Ceci est activé via la bac à bac à soumission Web ou en spécifiant l'option unpacker=2 et est laissée par défaut car elle peut avoir un impact sur la qualité des détonations.
Le CAPE peut être programmé via la signature Yara pour déballer des emballeurs spécifiques. Par exemple, les emballeurs de type UPX sont très courants et, bien que, au CAP, ces charges utiles déballées soient capturées passivement, la capture par défaut est effectuée après que la charge utile non lancée a commencé à s'exécuter. Par conséquent, en détectant dynamiquement les packers dérivés de l'UPX via la signature YARA personnalisée et en définissant un point d'arrêt sur l'instruction finale du packer, il est possible de capturer la charge utile à son point d'entrée d'origine (OEP) avant de commencer à s'exécuter.


L'option dump-on-api permet de vider un module lorsqu'il appelle une fonction API spécifique qui peut être spécifiée dans l'interface Web (par exemple dump-on-api=DnsQuery_A ).
Le débogueur a permis à Cape de continuer à évoluer au-delà de ses capacités d'origine, qui incluent désormais des contournements anti-évasion dynamiques. Étant donné que les logiciels malveillants modernes essaient généralement d'échapper à l'analyse dans les bacs à sable, par exemple en utilisant des pièges à synchronisation pour la virtualisation ou la détection des crochets API, CAPE permet de développer des contre-mesures dynamiques combinant des actions de débogueur dans les signatures de Yara pour détecter l'échantillon évasif alors qu'il faisait exploser et effectuer une manipulation de flux de contrôle pour forcer l'échantillon à détour complètement ou à skira les actions évasives.


L'accès rapide au débogueur est rendu possible avec les options de soumission bp0 via bp3 acceptant les valeurs RVA ou VA pour définir des points d'arrêt, après quoi une trace d'instruction courte sera sortie, régie par des options count et depth (par exemple bp0=0x1234,depth=1,count=100 ). 
Pour définir un point d'arrêt au point d'entrée du module, ep est utilisé à la place d'une adresse (par exemple bp0=ep ). Alternativement, break-on-return permet un point d'arrêt sur l'adresse de retour d'une API accrochée (par exemple break-on-return=NtGetContextThread ). Un paramètre base-on-api en option permet à la base d'image de définir les points d'arrêt RVA par appel API (par exemple base-on-api=NtReadFile,bp0=0x2345 ).

Options action0 - action3 Autoriser les actions à effectuer lorsque les points d'arrêt sont touchés, tels que le vidage des régions de mémoire (par exemple action0=dumpebx ) ou la modification du flux de contrôle d'exécution (par exemple action1=skip ). La documentation de CAPE contient d'autres exemples de telles actions.
Le référentiel contenant le code du moniteur du CAPE est distinct.
Il existe un référentiel communautaire de signatures contenant plusieurs centaines de signatures développées par la communauté du CAPE. Toutes les nouvelles fonctionnalités communautaires doivent être poussées à ce repo. Plus tard, ils peuvent être déplacés vers Core si les développeurs sont capables et disposés à les maintenir.
Veuillez contribuer à ce projet en aidant à créer de nouvelles signatures, analyseurs ou contournement pour d'autres familles de logiciels malveillants. Il y en a actuellement beaucoup, alors regardez cet espace.
Un énorme merci à @ D00m3dr4v3n pour avoir porté à lui seul Cape à Python 3.
Python3
Seul Rooter doit être exécuté comme racine , le reste en tant qu'utilisateur CAPE . Courir en tant que racine gâchera les autorisations.
conf !kvm-qemu.sh et cape2.sh doivent être exécutés à partir de la session tmux pour éviter tout problème de système d'exploitation si les connexions ssh se brisent.<username> par un vrai motif.<WOOT> à l'intérieur!sudo ./kvm-qemu.sh all <username> 2>&1 | tee kvm-qemu.logsudo ./cape2.sh base 2>&1 | tee cape.logconf .systemctl restart <service_name>journalctl -u <service_name>-h pour le menu d'aide. L'exécution du service en mode débogage ( -d ) peut également vous aider.-h , mais veuillez vérifier les scripts pour comprendre ce qu'ils font.git pullpython3 utils/community.py -waf voir -h avant de vous assurer de comprendre git add --all
git commit -m '[STASH]'
git pull --rebase origin master
# fix conflict (rebase) if needed
git reset HEAD~1
# make sure kevoreilly repo has been added as a remote (only needs to be done once)
git remote add kevoreilly https://github.com/kevoreilly/CAPEv2.git
# make sure all your changes are commited on the branch which you will be merging
git commit -a -m '<your commit message goes here>'
# fetch changes from kevoreilly repo
git fetch kevoreilly
# merge kevoreilly master branch into your current branch
git merge kevoreilly/master
# fix merge conflicts if needed
# push to your repo if desired
git push
Si vous utilisez CAPEV2 dans votre travail, veuillez le citer comme spécifié dans le menu GitHub "citer ce référentiel".
pefile comme version de chaque épingle qu'ils veulent.pefile comme vous l'avez déjà installée. Volia plus de douleur.