
DECAF (acronyme de Dynamic Executable Code Analysis Framework) est une plateforme d'analyse binaire basée sur QEMU. C'est également le foyer de la plateforme dynamique d'analyse de logiciels malveillants Android DroidScope. DroidScope est désormais une extension de DECAF.
DECAF (acronyme de Dynamic Executable Code Analysis Framework) est une plateforme d'analyse binaire basée sur QEMU.
DECAF++, la nouvelle version de DECAF, l'analyse de contamination est environ 2 fois plus rapide, ce qui en fait, à notre connaissance, le framework d'analyse dynamique de contamination au niveau système le plus rapide. Cela se traduit par une bien meilleure utilisabilité, n'imposant qu'un surcoût de 4 % (SPEC CPU2006) lorsqu'aucune entrée suspecte (contaminée) n'existe. Même sous de lourdes charges de travail d'analyse de contamination, DECAF++ offre de bien meilleures performances, environ 25 % plus rapide sur nbench, grâce à son élasticité. L'élasticité de DECAF++ le rend très adapté pour des tâches d'analyse de sécurité qui analyseraient sélectivement l'entrée, par exemple les systèmes de détection d'intrusion (IDS) capables de filtrer le trafic bénin. Pour plus de détails techniques, consultez notre article RAID 2019. Pour activer les optimisations, consultez notre page wiki DECAF++.

Ali Davanian, Zhenxiao Qi, Yu Qu et Heng Yin, DECAF++ : Elastic Whole-System Dynamic Taint Analysis, dans le 22e Symposium international sur la recherche en attaques, intrusions et défenses (RAID), septembre 2019. (Si vous souhaitez citer la nouvelle version optimisée de DECAF, veuillez citer cet article)
« Make it work, make it right, make it fast : building a platform-neutral whole-system dynamic binary analysis platform », Andrew Henderson, Aravind Prakash, Lok Kwong Yan, Xunchao Hu, Xujiewen Wang, Rundong Zhou et Heng Yin, à paraître dans le Symposium international sur les tests et l'analyse de logiciels (ISSTA'14), San Jose, Californie, juillet 2014.(Si vous souhaitez citer DECAF, veuillez citer cet article)
Lok Kwong Yan, Andrew Henderson, Xunchao Hu, Heng Yin et Stephen McCamant. Sur la fiabilité et la précision de l'analyse dynamique de contamination. Rapport technique SYR-EECS-2014-04, Université de Syracuse, janvier 2014.
« DroidScope : Reconstruire de manière transparente les vues sémantiques du système d'exploitation et de Dalvik pour l'analyse dynamique des logiciels malveillants Android », Lok-Kwong Yan et Heng Yin, dans le 21e Symposium de sécurité USENIX, Bellevue, Washington, 8-10 août 2012.
Luo, L., Fu, Y., Wu, D., Zhu, S. et Liu, P. (juin 2016). Repackage-proofing android apps. Dans 2016 46e Conférence internationale annuelle IEEE/IFIP sur les systèmes et réseaux fiables (DSN) (pp. 550-561). IEEE.
Wei, J., Yan, L. K. et Hakim, M. A. (décembre 2015). Mose : Live migration based on-the-fly software emulation. Dans Actes de la 31e Conférence annuelle sur les applications de sécurité informatique (ACSAC) (pp. 221-230).
Carmony, C., Hu, X., Yin, H., Bhaskar, A.V. et Zhang, M. (2016). Extract Me If You Can: Abusing PDF Parsers in Malware Detectors. Dans Actes du Symposium 2016 sur la sécurité des réseaux et des systèmes distribués (NDSS).
Feng, Q., Prakash, A., Yin, H. et Lin, Z. (décembre 2014). Mace : High-coverage and robust memory analysis for commodity operating systems. Dans Actes de la 30e conférence annuelle sur les applications de sécurité informatique (pp. 196-205).
Alwabel, A., Shi, H., Bartlett, G. et Mirkovic, J. (2014). Safe and automated live malware experimentation on public testbeds. Dans 7e Atelier sur l'expérimentation et les tests de cybersécurité (CSET'14).
DECAF (Dynamic Executable Code Analysis Framework) est le successeur des techniques d'analyse binaire développées pour TEMU (composant d'analyse dynamique de BitBlaze) dans le cadre des travaux de Heng Yin sur le projet BitBlaze dirigé par Dawn Song. DECAF s'appuie sur TEMU. Nous remercions tous ceux qui ont travaillé avec nous sur ce projet.
Fig 1 l'architecture globale de DECAF
La Fig 1 illustre l'architecture globale de DECAF. DECAF est un framework d'analyse binaire dynamique au niveau système, indépendant de la plateforme. Il offre les fonctionnalités clés suivantes.
Contrairement à TEMU, DECAF n'utilise pas de pilote invité pour récupérer les sémantiques au niveau du système d'exploitation. Le composant VMI de DECAF est capable de reconstruire une vue fraîche du système d'exploitation de la machine virtuelle, incluant les processus, threads, modules de code et symboles pour soutenir l'analyse binaire. De plus, afin de prendre en charge plusieurs architectures et systèmes d'exploitation, il suit une conception indépendante de la plateforme. Le flux de travail pour extraire les informations sémantiques au niveau du système d'exploitation est commun à plusieurs architectures et systèmes d'exploitation. La seule gestion spécifique à la plateforme réside dans les structures de données du noyau et les champs à partir desquels extraire les informations.
Idéalement, nous souhaiterions que le même code d'analyse (avec un minimum de code spécifique à la plateforme) fonctionne pour différentes architectures CPU (par exemple, x86 et ARM) et différents systèmes d'exploitation (par exemple, Windows et Linux). Cela nécessite que le framework d'analyse masque les détails spécifiques à l'architecture et au système d'exploitation des plugins d'analyse. De plus, pour rendre le framework d'analyse lui-même maintenable et extensible à de nouvelles architectures et systèmes d'exploitation, le code spécifique à la plateforme au sein du framework doit également être minimisé. DECAF peut prendre en charge à la fois plusieurs architectures et plusieurs systèmes d'exploitation. Actuellement, DECAF prend en charge Windows XP/Windows 7 32 bits, Linux et x86/ARM.
DECAF assure une contamination précise en maintenant une précision au niveau du bit pour les registres CPU et la mémoire, et en intégrant des règles de contamination précises dans les blocs de code traduits. Ainsi, l'état de contamination de chaque registre CPU et de chaque emplacement mémoire est traité et mis à jour de manière synchrone pendant l'exécution du code de la machine virtuelle. La propagation des étiquettes de contamination est effectuée de manière asynchrone. En implémentant cette logique de contamination principalement au niveau de la représentation intermédiaire (plus concrètement, le niveau TCG IR), il devient facile d'étendre la prise en charge de la contamination à une nouvelle architecture CPU.
DECAF fournit une interface de programmation pilotée par les événements. Cela signifie que le paradigme « instrumenter dans la phase de traduction puis analyser dans la phase d'exécution » est invisible pour les plugins d'analyse. Les plugins d'analyse n'ont qu'à s'enregistrer pour les événements qui les intéressent et implémenter les fonctions de gestion d'événements correspondantes. Les détails de l'instrumentation du code sont pris en charge par le framework.
Pour réduire la surcharge d'exécution, le code d'instrumentation n'est inséré dans le code traduit que lorsque cela est nécessaire. Par exemple, lorsqu'un plugin enregistre un crochet de fonction à l'entrée d'une fonction, le code d'instrumentation pour ce crochet n'est placé qu'à l'entrée de la fonction. Lorsque le plugin désenregistre ce crochet de fonction, le code d'instrumentation est également supprimé du code traduit en conséquence. Pour faciliter le développement des plugins, la gestion de l'instrumentation dynamique du code est entièrement prise en charge par le framework, et donc invisible pour les plugins.
Veuillez vous référer à notre page wiki pour les documents d'aide.