
ديكاف (اختصارًا لـ Dynamic Executable Code Analysis Framework) هي منصة تحليل ثنائي مبنية على QEMU. هذا هو أيضًا موطن منصة DroidScope لتحليل البرامج الضارة الديناميكية على أندرويد. DroidScope أصبح الآن امتدادًا لـ DECAF.
DECAF (اختصاراً لـ Dynamic Executable Code Analysis Framework) هي منصة تحليل ثنائي مبنية على QEMU.
DECAF++، الإصدار الجديد من DECAF، تحليل التلوث أسرع بحوالي 2X مما يجعله أسرع إطار عمل تحليل تلوث ديناميكي لكامل النظام حسب علمنا. يؤدي هذا إلى قابلية استخدام أفضل بكثير مع فرض 4% فقط من الحمل الإضافي (SPEC CPU2006) عند عدم وجود مدخلات مشبوهة (ملوثة). حتى تحت أعباء عمل تحليل التلوث الثقيلة، يمتلك DECAF++ أداءً أفضل بكثير، أسرع بحوالي 25% على nbench، بسبب مرونته. تجعل مرونة DECAF++ منه حالة مناسبة جداً لمهام التحليل الأمني التي تحلل المدخلات بشكل انتقائي مثل أنظمة كشف التسلل (IDS) التي يمكنها تصفية حركة المرور غير الضارة. لمزيد من التفاصيل التقنية، راجع ورقة RAID 2019. لتفعيل التحسينات، راجع صفحة 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. (إذا كنت ترغب في الاستشهاد بالإصدار الجديد المحسن من DECAF، يرجى الاستشهاد بهذه الورقة)
"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.(إذا كنت ترغب في الاستشهاد بـ DECAF، يرجى الاستشهاد بهذه الورقة)
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) هو الخليفة لتقنيات التحليل الثنائي المطورة لـ TEMU (مكون التحليل الديناميكي لـ BitBlaze) كجزء من عمل Heng Yin في مشروع BitBlaze بقيادة Dawn Song. يبني DECAF على TEMU. نحن نقدر كل من عمل معنا في ذلك المشروع.
شكل 1: البنية العامة لـ DECAF
يوضح الشكل 1 البنية العامة لـ DECAF. DECAF هو إطار عمل لتحليل ثنائي ديناميكي لكامل النظام ومستقل عن المنصة. يوفر الميزات الرئيسية التالية.
على عكس TEMU، لا يستخدم DECAF برنامج تشغيل ضيف (guest driver) لاستعادة الدلالات على مستوى نظام التشغيل. مكون VMI في DECAF قادر على إعادة بناء عرض محدث على مستوى نظام التشغيل للآلة الافتراضية، بما في ذلك العمليات والسلاسل ووحدات البرمجيات والرموز لدعم التحليل الثنائي. علاوة على ذلك، لدعم العديد من البنى وأنظمة التشغيل، يتبع تصميمًا مستقلًا عن المنصة. سير العمل لاستخراج المعلومات الدلالية على مستوى نظام التشغيل مشترك عبر العديد من البنى وأنظمة التشغيل. المعالجة الخاصة بالمنصة تكمن فقط في هياكل بيانات النواة والحقول التي يتم استخراج المعلومات منها.
من الناحية المثالية، نود أن يعمل نفس كود التحليل (مع الحد الأدنى من الكود الخاص بالمنصة) مع بنى CPU مختلفة (مثل x86 و ARM) وأنظمة تشغيل مختلفة (مثل Windows و Linux). يتطلب ذلك أن يخفي إطار التحليل تفاصيل بنية CPU ونظام التشغيل عن إضافات التحليل. علاوة على ذلك، لجعل إطار التحليل نفسه قابلًا للصيانة وقابلًا للتوسع لبنى وأنظمة تشغيل جديدة، يجب أيضًا تقليل الكود الخاص بالمنصة داخل الإطار. يمكن لـ DECAF توفير الدعم لكل من البنى المتعددة وأنظمة التشغيل المتعددة. حاليًا، DECAF يدعم 32 بت Windows xp/Windows 7/linux و X86/arm.
يضمن DECAF التلوث الدقيق من خلال الحفاظ على دقة مستوى البت لسجلات CPU والذاكرة، ودمج قواعد التلوث الدقيقة في كتل الكود المترجمة. وبالتالي، تتم معالجة حالة التلوث لكل سجل CPU وموقع ذاكرة وتحديثها بشكل متزامن أثناء تنفيذ كود الآلة الافتراضية. يتم نشر علامات التلوث بطريقة غير متزامنة. من خلال تنفيذ منطق التلوث هذا بشكل أساسي على مستوى التمثيل الوسيط (بشكل أكثر تحديدًا، مستوى TCG IR)، يصبح من السهل توسيع دعم التلوث إلى بنية CPU جديدة.
يوفر DECAF واجهة برمجة تطبيقات تعتمد على الأحداث. هذا يعني أن نموذج "الأداة" في مرحلة الترجمة ثم التحليل في مرحلة التنفيذ غير مرئي لإضافات التحليل. تحتاج إضافات التحليل فقط إلى التسجيل للأحداث المهتمة بها وتنفيذ وظائف معالجة الأحداث المقابلة. يتم التعامل مع تفاصيل أداة الكود بواسطة الإطار.
لتقليل الحمل الزمني الزمني، يتم إدراج كود الأداة في الكود المترجم فقط عند الضرورة. على سبيل المثال، عندما تسجل إضافة خطاف دالة عند نقطة دخول دالة، يتم وضع كود الأداة لهذا الخطاف فقط عند نقطة دخول الدالة. عندما تلغي الإضافة تسجيل خطاف الدالة هذا، ستتم إزالة كود الأداة من الكود المترجم وفقًا لذلك. لتسهيل تطوير الإضافات، تتم إدارة إدارة أداة الكود الديناميكية بالكامل في الإطار، وبالتالي فهي غير مرئية للإضافات.
يرجى الرجوع إلى صفحة الويكي الخاصة بنا للحصول على وثائق المساعدة.