
DECAF (Dynamic Executable Code Analysis Framework का संक्षिप्त नाम) QEMU पर आधारित एक बाइनरी विश्लेषण मंच है। यह DroidScope गतिशील Android मैलवेयर विश्लेषण मंच का भी घर है। DroidScope अब DECAF का एक विस्तार है।
DECAF (Dynamic Executable Code Analysis Framework का संक्षिप्त रूप) QEMU पर आधारित एक बाइनरी विश्लेषण प्लेटफॉर्म है।
DECAF++, DECAF का नया संस्करण, टेंट विश्लेषण लगभग 2X तेज है, जो हमारी जानकारी के अनुसार इसे सबसे तेज़ संपूर्ण-सिस्टम डायनामिक टेंट विश्लेषण ढांचा बनाता है। इसके परिणामस्वरूप बेहतर उपयोगिता मिलती है, जब कोई संदिग्ध (दूषित) इनपुट मौजूद नहीं होता तो केवल 4% ओवरहेड (SPEC CPU2006) लगता है। भारी टेंट विश्लेषण कार्यभार के तहत भी, DECAF++ का प्रदर्शन बेहतर है, इसकी लोच के कारण nbench पर लगभग 25% तेज। DECAF++ की लोच इसे सुरक्षा विश्लेषण कार्यों के लिए बहुत उपयुक्त बनाती है जो चुनिंदा रूप से इनपुट का विश्लेषण करते हैं, जैसे कि इंट्रूज़न डिटेक्शन सिस्टम (IDS) जो हानिरहित ट्रैफ़िक को फ़िल्टर कर सकते हैं। आगे की तकनीकी जानकारी के लिए, हमारा RAID 2019 पेपर देखें। अनुकूलन सक्रिय करने के लिए, हमारा DECAF++ विकी पृष्ठ देखें।

Ali Davanian, Zhenxiao Qi, Yu Qu, और Heng Yin, DECAF++: Elastic Whole-System Dynamic Taint Analysis, 22वें अंतर्राष्ट्रीय संगोष्ठी में अनुसंधान आक्रमण, घुसपैठ और रक्षा (RAID), सितंबर 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, और Heng Yin, अंतर्राष्ट्रीय संगोष्ठी में सॉफ्टवेयर परीक्षण और विश्लेषण (ISSTA'14), San Jose, CA, जुलाई 2014 में प्रकाशित। (यदि आप DECAF का उल्लेख करना चाहते हैं, तो कृपया इस पेपर का हवाला दें)
Lok Kwong Yan, Andrew Henderson, Xunchao Hu, Heng Yin, और Stephen McCamant? डायनेमिक टेन्ट विश्लेषण की ध्वनि और सटीकता पर। तकनीकी रिपोर्ट SYR-EECS-2014-04, सिराक्यूज़ विश्वविद्यालय, जनवरी 2014।
DroidScope: डायनेमिक एंड्रॉइड मैलवेयर विश्लेषण के लिए OS और Dalvik सिमैंटिक व्यू का सहज पुनर्निर्माण", Lok-Kwong Yan और Heng Yin, 21वें USENIX सुरक्षा संगोष्ठी, Bellevue, WA, 8-10 अगस्त, 2012 में।
Luo, L., Fu, Y., Wu, D., Zhu, S., & Liu, P. (जून 2016). Repackage-proofing android apps. 2016 46वें वार्षिक IEEE/IFIP अंतर्राष्ट्रीय सम्मेलन में विश्वसनीय प्रणाली और नेटवर्क (DSN) (पृ. 550-561). IEEE।
Wei, J., Yan, L. K., & Hakim, M. A. (दिसंबर 2015). Mose: लाइव माइग्रेशन-आधारित ऑन-द-फ्लाई सॉफ्टवेयर एमुलेशन। 31वें वार्षिक कंप्यूटर सुरक्षा अनुप्रयोग सम्मेलन (ACSAC) की कार्यवाही में (पृ. 221-230)।
Carmony, C., Hu, X., Yin, H., Bhaskar, A.V., & Zhang, M. (2016). Extract Me If You Can: मैलवेयर डिटेक्टरों में PDF पार्सर्स का दुरुपयोग। 2016 नेटवर्क और वितरित प्रणाली सुरक्षा संगोष्ठी (NDSS) की कार्यवाही में।
Feng, Q., Prakash, A., Yin, H., & Lin, Z. (दिसंबर 2014). Mace: वाणिज्यिक ऑपरेटिंग सिस्टम के लिए उच्च-कवरेज और मजबूत मेमोरी विश्लेषण। 30वें वार्षिक कंप्यूटर सुरक्षा अनुप्रयोग सम्मेलन की कार्यवाही में (पृ. 196-205)
Alwabel, A., Shi, H., Bartlett, G., & Mirkovic, J. (2014). सार्वजनिक परीक्षण बेड पर सुरक्षित और स्वचालित लाइव मैलवेयर प्रयोग। 7वीं कार्यशाला में साइबर सुरक्षा प्रयोग और परीक्षण (CSET'14)।
DECAF (Dynamic Executable Code Analysis Framework) बाइनरी विश्लेषण तकनीकों का उत्तराधिकारी है जो TEMU (BitBlaze का डायनामिक विश्लेषण घटक) के लिए Heng Yin के BitBlaze प्रोजेक्ट पर काम के हिस्से के रूप में विकसित किया गया था, जिसका नेतृत्व Dawn Song ने किया था। DECAF TEMU पर निर्मित है। हम उन सभी की सराहना करते हैं जिन्होंने हमारे साथ उस प्रोजेक्ट पर काम किया।
चित्र 1: DECAF का समग्र आर्किटेक्चर
चित्र 1 DECAF के समग्र आर्किटेक्चर को दर्शाता है। DECAF एक प्लेटफ़ॉर्म-अज्ञेय संपूर्ण-सिस्टम डायनामिक बाइनरी विश्लेषण ढांचा है। यह निम्नलिखित मुख्य सुविधाएँ प्रदान करता है।
TEMU से अलग, DECAF OS-स्तर की शब्दार्थ जानकारी प्राप्त करने के लिए गेस्ट ड्राइवर का उपयोग नहीं करता है। DECAF का VMI घटक वर्चुअल मशीन का एक ताज़ा OS-स्तर का दृश्य पुनर्निर्माण करने में सक्षम है, जिसमें प्रक्रियाएँ, थ्रेड्स, कोड मॉड्यूल और बाइनरी विश्लेषण का समर्थन करने के लिए प्रतीक शामिल हैं। इसके अलावा, कई आर्किटेक्चर और ऑपरेटिंग सिस्टम का समर्थन करने के लिए, यह एक प्लेटफ़ॉर्म-अज्ञेय डिज़ाइन का अनुसरण करता है। OS-स्तर की शब्दार्थ जानकारी निकालने का कार्यप्रवाह कई आर्किटेक्चर और ऑपरेटिंग सिस्टम में सामान्य है। प्लेटफ़ॉर्म-विशिष्ट हैंडलिंग केवल इस बात में निहित है कि कर्नेल डेटा संरचनाओं और किन फ़ील्ड्स से जानकारी निकालनी है।
आदर्श रूप से, हम एक ही विश्लेषण कोड (न्यूनतम प्लेटफ़ॉर्म-विशिष्ट कोड के साथ) को विभिन्न CPU आर्किटेक्चर (जैसे, x86 और ARM) और विभिन्न ऑपरेटिंग सिस्टम (जैसे, Windows और Linux) के लिए काम करने देना चाहेंगे। इसके लिए आवश्यक है कि विश्लेषण ढांचा विश्लेषण प्लगइन्स से आर्किटेक्चर और ऑपरेटिंग सिस्टम विशिष्ट विवरण छिपाए। इसके अलावा, विश्लेषण ढांचे को स्वयं बनाए रखने और नए आर्किटेक्चर और ऑपरेटिंग सिस्टम तक विस्तार योग्य बनाने के लिए, ढांचे के भीतर प्लेटफ़ॉर्म-विशिष्ट कोड भी कम से कम किया जाना चाहिए। DECAF एकाधिक आर्किटेक्चर और एकाधिक ऑपरेटिंग सिस्टम दोनों के लिए समर्थन प्रदान कर सकता है। वर्तमान में, DECAF 32 बिट Windows XP/Windows 7/linux और X86/arm को सपोर्ट करता है।
DECAF CPU रजिस्टरों और मेमोरी के लिए बिट-स्तरीय सटीकता बनाए रखते हुए, और अनुवादित कोड ब्लॉकों में सटीक टेन्टिंग नियमों को इनलाइन करके सटीक टेन्टिंग सुनिश्चित करता है। इस प्रकार, प्रत्येक CPU रजिस्टर और मेमोरी स्थान के लिए टेन्ट स्थिति को वर्चुअल मशीन के कोड निष्पादन के दौरान समकालिक रूप से संसाधित और अद्यतन किया जाता है। टेन्ट लेबल का प्रसार एक अतुल्यकालिक तरीके से किया जाता है। इस तरह के टेन्टिंग तर्क को मुख्य रूप से मध्यवर्ती प्रतिनिधित्व स्तर (अधिक ठोस रूप से, TCG IR स्तर) पर लागू करके, नए CPU आर्किटेक्चर में टेन्टिंग समर्थन का विस्तार करना आसान हो जाता है।
DECAF एक ईवेंट-चालित प्रोग्रामिंग इंटरफ़ेस प्रदान करता है। इसका मतलब है कि अनुवाद चरण में "इंस्ट्रुमेंट" और फिर निष्पादन चरण में विश्लेषण का प्रतिमान विश्लेषण प्लगइन्स के लिए अदृश्य है। विश्लेषण प्लगइन्स को केवल रुचि के ईवेंट के लिए पंजीकरण करना और संबंधित ईवेंट हैंडलिंग फ़ंक्शन लागू करना होता है। कोड इंस्ट्रुमेंटेशन का विवरण ढांचे द्वारा ध्यान रखा जाता है।
रनटाइम ओवरहेड को कम करने के लिए, इंस्ट्रुमेंटेशन कोड को केवल आवश्यक होने पर अनुवादित कोड में डाला जाता है। उदाहरण के लिए, जब कोई प्लगइन किसी फ़ंक्शन के प्रवेश बिंदु पर एक फ़ंक्शन हुक पंजीकृत करता है, तो इस हुक के लिए इंस्ट्रुमेंटेशन कोड केवल फ़ंक्शन प्रवेश बिंदु पर रखा जाता है। जब प्लगइन इस फ़ंक्शन हुक को अपंजीकृत करता है, तो इंस्ट्रुमेंटेशन कोड को अनुवादित कोड से तदनुसार हटा दिया जाएगा। प्लगइन्स के विकास को सुविधाजनक बनाने के लिए, डायनामिक कोड इंस्ट्रुमेंटेशन का प्रबंधन पूरी तरह से ढांचे में ध्यान रखा जाता है, और इस प्रकार प्लगइन्स के लिए अदृश्य है।
कृपया सहायता दस्तावेजों के लिए हमारा विकी पृष्ठ देखें।