
DECAF (abreviatura de Dynamic Executable Code Analysis Framework) es una plataforma de análisis binario basada en QEMU. Este es también el hogar de la plataforma de análisis dinámico de malware para Android DroidScope. DroidScope es ahora una extensión de DECAF.
DECAF (abreviatura de Dynamic Executable Code Analysis Framework) es una plataforma de análisis binario basada en QEMU.
DECAF++, la nueva versión de DECAF, tiene un análisis de contaminación aproximadamente 2 veces más rápido, lo que lo convierte, según nuestro conocimiento, en el marco de análisis de contaminación dinámica de todo el sistema más rápido. Esto resulta en una usabilidad mucho mejor al imponer solo un 4% de sobrecarga (SPEC CPU2006) cuando no existe entrada sospechosa (contaminada). Incluso bajo cargas de trabajo de análisis de contaminación pesadas, DECAF++ tiene un rendimiento mucho mejor, alrededor de un 25% más rápido en nbench, gracias a su elasticidad. La elasticidad de DECAF++ lo convierte en un caso muy adecuado para tareas de análisis de seguridad que analizarían selectivamente la entrada, por ejemplo, Sistemas de Detección de Intrusiones (IDS) que pueden filtrar tráfico benigno. Para más detalles técnicos, consulte nuestro artículo de RAID 2019. Para activar las optimizaciones, consulte nuestra página DECAF++ wiki.

Ali Davanian, Zhenxiao Qi, Yu Qu, and Heng Yin, DECAF++: Elastic Whole-System Dynamic Taint Analysis, In the 22nd International Symposium on Research in Attacks, Intrusions and Defenses (RAID), September 2019. (Si desea citar la nueva versión optimizada de DECAF, cite este artículo)
"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, and Heng Yin, to appear in the International Symposium on Software Testing and Analysis (ISSTA'14), San Jose, CA, July 2014.(Si desea citar DECAF, cite este artículo)
Lok Kwong Yan, Andrew Henderson, Xunchao Hu, Heng Yin, and Stephen McCamant?.On soundness and precision of dynamic taint analysis. Technical Report SYR-EECS-2014-04, Syracuse University, January 2014.
DroidScope: Seamlessly Reconstructing OS and Dalvik Semantic Views for Dynamic Android Malware Analysis", Lok-Kwong Yan and Heng Yin, in the 21st USENIX Security Symposium, Bellevue, WA, August 8-10, 2012.
Luo, L., Fu, Y., Wu, D., Zhu, S., & Liu, P. (2016, June). Repackage-proofing android apps. In 2016 46th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN) (pp. 550-561). IEEE.
Wei, J., Yan, L. K., & Hakim, M. A. (2015, December). Mose: Live migration based on-the-fly software emulation. In Proceedings of the 31st Annual Computer Security Applications Conference (ACSAC) (pp. 221-230).
Carmony, C., Hu, X., Yin, H., Bhaskar, A.V., & Zhang, M. (2016). Extract Me If You Can: Abusing PDF Parsers in Malware Detectors. In Proceedings of 2016 Network and Distributed System Security Symposium (NDSS).
Feng, Q., Prakash, A., Yin, H., & Lin, Z. (2014, December). Mace: High-coverage and robust memory analysis for commodity operating systems. In Proceedings of the 30th annual computer security applications conference (pp. 196-205)
Alwabel, A., Shi, H., Bartlett, G., & Mirkovic, J. (2014). Safe and automated live malware experimentation on public testbeds. In 7th Workshop on Cyber Security Experimentation and Test (CSET'14).
DECAF (Dynamic Executable Code Analysis Framework) es el sucesor de las técnicas de análisis binario desarrolladas para TEMU (componente de análisis dinámico de BitBlaze) como parte del trabajo de Heng Yin en el proyecto BitBlaze dirigido por Dawn Song. DECAF se basa en TEMU. Agradecemos a todos los que trabajaron con nosotros en ese proyecto.
Fig 1 la arquitectura general de DECAF
La Fig 1 ilustra la arquitectura general de DECAF. DECAF es un marco de análisis binario dinámico de todo el sistema e independiente de la plataforma. Proporciona las siguientes características clave.
A diferencia de TEMU, DECAF no utiliza un controlador invitado para recuperar la semántica a nivel de sistema operativo. El componente VMI de DECAF es capaz de reconstruir una vista actualizada a nivel de SO de la máquina virtual, incluyendo procesos, hilos, módulos de código y símbolos para soportar el análisis binario. Además, para soportar múltiples arquitecturas y sistemas operativos, sigue un diseño independiente de la plataforma. El flujo de trabajo para extraer información semántica a nivel de SO es común en múltiples arquitecturas y sistemas operativos. El único manejo específico de la plataforma reside en qué estructuras de datos del kernel y qué campos extraer información.
Idealmente, nos gustaría tener el mismo código de análisis (con el mínimo código específico de la plataforma) funcionando para diferentes arquitecturas de CPU (por ejemplo, x86 y ARM) y diferentes sistemas operativos (por ejemplo, Windows y Linux). Esto requiere que el marco de análisis oculte los detalles específicos de la arquitectura y del sistema operativo de los plugins de análisis. Además, para que el marco de análisis en sí mismo sea mantenible y extensible a nuevas arquitecturas y sistemas operativos, el código específico de la plataforma dentro del marco también debe minimizarse. DECAF puede proporcionar soporte tanto para múltiples arquitecturas como para múltiples sistemas operativos. Actualmente, DECAF soporta Windows XP/Windows 7 de 32 bits, Linux y X86/ARM.
DECAF asegura una contaminación precisa manteniendo precisión a nivel de bit para los registros de la CPU y la memoria, e insertando reglas de contaminación precisas en los bloques de código traducidos. Así, el estado de contaminación de cada registro de la CPU y ubicación de memoria se procesa y actualiza sincrónicamente durante la ejecución del código de la máquina virtual. La propagación de las etiquetas de contaminación se realiza de manera asincrónica. Al implementar esta lógica de contaminación principalmente a nivel de representación intermedia (más concretamente, a nivel de IR de TCG), se facilita la extensión del soporte de contaminación a una nueva arquitectura de CPU.
DECAF proporciona una interfaz de programación basada en eventos. Esto significa que el paradigma de "instrumentar" en la fase de traducción y luego analizar en la fase de ejecución es invisible para los plugins de análisis. Los plugins de análisis solo necesitan registrarse para los eventos de interés e implementar las funciones correspondientes de manejo de eventos. El marco se encarga de los detalles de la instrumentación del código.
Para reducir la sobrecarga en tiempo de ejecución, el código de instrumentación se inserta en el código traducido solo cuando es necesario. Por ejemplo, cuando un plugin registra un hook de función en el punto de entrada de una función, el código de instrumentación para este hook se coloca solo en el punto de entrada de la función. Cuando el plugin anula el registro de este hook de función, el código de instrumentación también se elimina del código traducido en consecuencia. Para facilitar el desarrollo de plugins, la gestión de la instrumentación dinámica del código se maneja completamente en el marco y, por lo tanto, es invisible para los plugins.
Consulte nuestra página wiki para obtener documentos de ayuda.