
स्वचालित बाइनरी भेद्यता विश्लेषण उपकरण जो Ghidra के माध्यम से निष्पादन योग्य फ़ाइलों को डीकंपाइल करता है, Semgrep के साथ स्यूडो-सी कोड को स्कैन करता है, और गलत सकारात्मकता को कम करने के लिए GPT-3.5-Turbo का उपयोग करके निष्कर्षों को मान्य करता है।
एक बुद्धिमान स्वचालित बाइनरी भेद्यता विश्लेषण उपकरण
डेमो:\

कैलिस्टो एक बुद्धिमान स्वचालित बाइनरी भेद्यता विश्लेषण उपकरण है। इसका उद्देश्य स्वायत्त रूप से प्रदान की गई बाइनरी को डीकंपाइल करना और उस स्यूडो सी कोड में संभावित सुरक्षा कमजोरियों की खोज के लिए स्यूडो कोड आउटपुट के माध्यम से पुनरावृति करना है। गिद्रा का हेडलेस डीकंपाइलर बाइनरी डीकंपाइलेशन और विश्लेषण भाग को संचालित करता है। स्यूडो कोड विश्लेषण प्रारंभ में सेमग्रेप SAST उपकरण द्वारा किया जाता है और फिर सेमग्रेप के निष्कर्षों के मान्यकरण के साथ-साथ अतिरिक्त कमजोरियों की संभावित पहचान के लिए GPT-3.5-Turbo में स्थानांतरित किया जाता है।
इस उपकरण का इच्छित उद्देश्य बाइनरी विश्लेषण और जीरो-डे भेद्यता खोज में सहायता करना है। आउटपुट का उद्देश्य शोधकर्ता को बाइनरी में संभावित रुचि के क्षेत्रों या कमजोर घटकों की पहचान करने में मदद करना है, जिसका मान्यकरण और शोषण के लिए गतिशील परीक्षण के साथ अनुसरण किया जा सकता है। यह निश्चित रूप से सब कुछ पकड़ नहीं पाएगा, लेकिन सेमग्रेप से GPT-3.5-Turbo तक दोहरी मान्यता का उद्देश्य गलत सकारात्मक (फाल्स पॉजिटिव्स) को कम करना और प्रोग्राम का गहन विश्लेषण करने की अनुमति देना है।
जो लोग इस उपकरण को त्वरित हेडलेस डीकंपाइलर के रूप में उपयोग करना चाहते हैं, उनके लिए बनाई गई output.c फ़ाइल में बाइनरी से निकाला गया सभी स्यूडो कोड होगा। इसे आप अपने स्वयं के SAST उपकरणों में प्लग कर सकते हैं या मैन्युअल रूप से विश्लेषण कर सकते हैं।
मैं मार्को इवाल्डी @0xdea का उनके सार्वजनिक रूप से जारी किए गए कस्टम सेमग्रेप C नियमों के साथ-साथ सेमग्रेप और डीकंपाइलरों से स्यूडो कोड आउटपुट का उपयोग करके भेद्यता खोज को स्वचालित करने के उनके विचार के लिए बहुत आभारी हूं। आप उनके शोध के बारे में यहाँ अधिक पढ़ सकते हैं: गिद्रा और सेमग्रेप के साथ बाइनरी भेद्यता खोज को स्वचालित करना
आवश्यकताएँ:
pip install semgreppip install -r requirements.txtconfig.txt फ़ाइल में आपके Ghidra निर्देशिका का सही पथ सेट हैचलाने के लिए:
python callisto.py -b <बाइनरी_का_पथ> -ai -o <आउटपुट_फ़ाइल_का_पथ>
-ai => OpenAI GPT-3.5-Turbo विश्लेषण सक्षम करें। config.txt फ़ाइल में एक मान्य OpenAI API कुंजी रखने की आवश्यकता होगी-o => एक आउटपुट फ़ाइल परिभाषित करें, यदि आप आउटपुट सहेजना चाहते हैं-ai और -o वैकल्पिक पैरामीटर हैं-all सभी फ़ंक्शनों को OpenAI विश्लेषण के माध्यम से चलाएगा, चाहे Semgrep के कोई निष्कर्ष हों या नहीं। इस फ़्लैग के लिए पूर्वापेक्षा -ai फ़्लैग आवश्यक हैpython callisto.py -b vulnProgram.exe -ai -o results.txtpython callisto.py -b vulnProgram.exe -ai -all -o results.txtप्रोग्राम आउटपुट उदाहरण:\
