
YARA और regex मिलानों को दृश्य रूप से निरीक्षण करें और बलपूर्वक डिकोड करें, जो बाइनरी और टेक्स्ट डेटा दोनों में रंगों के साथ पाए जाते हैं। ढेर सारे रंग।

बाइनरी डेटा और/या टेक्स्ट में पाए जाने वाले सभी regex मिलान (और उनके अधिक आकर्षक, अधिक गुप्त चचेरे भाई, YARA मिलान) का दृश्य रूप से निरीक्षण करें। देखें कि जब आप उन मिलान बाइट्स पर विभिन्न कैरेक्टर एन्कोडिंग लागू करते हैं तो क्या होता है। रंगों के साथ।
pipx install yaralyzer
# किसी फ़ाइल में YARA परिभाषाओं के विरुद्ध स्कैन करें:
yaralyze --yara-rules /secret/vault/sigmunds_malware_rules.yara lacan_buys_the_dip.pdf
# किसी भी नियमित अभिव्यक्ति के विरुद्ध स्कैन करें:
yaralyze --regex-pattern 'good and evil.*of\s+\w+byte' --regex-modifier wide the_crypto_archipelago.exe
# किसी भी YARA हेक्स पैटर्न के विरुद्ध स्कैन करें:
yaralyze --hex-pattern 'd0 93 d0 a3 d0 [-] 9b d0 90 d0 93' one_day_in_the_life_of_ivan_cryptosovich.bin
'/.+/' के लिए स्कैन कर सकते हैं और तुरंत फ़ॉरवर्ड स्लैश के बीच रहने वाले सभी बाइट्स की एक खिड़की प्राप्त कर सकते हैं। कोट्स, BOM आदि के लिए भी यही कहानी है। YARA जिस किसी भी regex को संभाल सकता है, वह समर्थित है, इसलिए सीमा आसमान है।chardet कैरेक्टर एन्कोडिंग का अनुमान लगाने के लिए एक परिष्कृत लाइब्रेरी है और इसका यहां उपयोग किया गया है।chardet का भी उपयोग यह देखने के लिए किया जाएगा कि क्या बाइट्स किसी ज्ञात एन्कोडिंग के पैटर्न में फिट होते हैं। यदि chardet पर्याप्त आश्वस्त है (कॉन्फ़िगर करने योग्य), तो उस एन्कोडिंग का उपयोग करके बाइट्स को डिकोड करने का एक प्रयास प्रदर्शित किया जाएगा।यारालाइज़र की कार्यक्षमता को द पीडीएफ़लाइज़र से निकाला गया था जब यह स्पष्ट हो गया कि बाइनरी में पैटर्न मिलानों की कल्पना और डिकोडिंग का PDF विश्लेषण उपकरण के अलावा भी अधिक उपयोगिता थी।
YARA, जो लोग नहीं जानते1, उनके लिए इसे मैलवेयर विश्लेषण/अलर्टिंग टूल के रूप में ब्रांडेड किया गया है, लेकिन वास्तव में यह उससे कहीं अधिक और कहीं कम है। इसे सोचने का एक तरीका यह है कि YARA एक स्टेरॉयड पर रेगुलर एक्सप्रेशन मिलान इंजन है। यह किसी भी regex इंजन की तरह बाइनरी में regex मिलानों का पता लगा सकता है, लेकिन यह इससे कहीं अधिक विचित्र चीजें भी कर सकता है जैसे कि regex को तार्किक समूहों में संयोजित करना, बाइनरी के सभी 256 XORed संस्करणों के विरुद्ध regex की तुलना करना, पैटर्न के base64 और अन्य एन्कोडिंग की जांच करना, और बहुत कुछ। शायद सबसे महत्वपूर्ण बात यह है कि YARA एक मानक टेक्स्ट-आधारित प्रारूप प्रदान करता है जिससे लोग अपने 'रॉइडेड' regex को दुनिया के साथ साझा कर सकते हैं। ये सभी सुविधाएं विशेष रूप से मैलवेयर का विश्लेषण या रिवर्स इंजीनियरिंग करते समय उपयोगी होती हैं, जिनके लेखक चीजों को खोजना मुश्किल बनाने में काफी समय लगाते हैं।
लेकिन... YARA बस इतना ही करता है। बाकी सब कुछ उपयोगकर्ता पर निर्भर है। YARA सिर्फ एक मिलान इंजन है और यदि आप नहीं जानते कि क्या मिलान करना है (या यह भी नहीं जानते कि आप किस कैरेक्टर एन्कोडिंग में मिलान कर सकते हैं), तो यह आपको केवल इतना ही ले जाता है। मैंने कुछ महत्वपूर्ण पैटर्न के सभी मिलानों को देखने के लिए YARA का उपयोग करने में थोड़ी निराशा महसूस की:
\".+\" और \'.+\')/.+/)। फ़ॉरवर्ड स्लैश कई कार्यान्वयनों में एक रेगुलर एक्सप्रेशन को सीमांकित करते हैं और मैं यह देखने की कोशिश कर रहा था कि क्या इस पैटर्न से मेल खाने वाले कुछ बाइट्स वास्तव में regex थे।YARA आपको केवल बाइट स्थिति और मिलान स्ट्रिंग बताता है, लेकिन यह आपको यह नहीं बता सकता कि वे बाइट्स UTF-8, UTF-16, Latin-1 आदि हैं (या उपरोक्त में से कोई नहीं)। मैं यह भी समझना चाहता था कि मिलान बाइट्स के क्षेत्र में क्या चल रहा है, न कि केवल मिलान बाइट्स में। दूसरे शब्दों में, मैं जो भी मिला उससे तुरंत पहले और बाद के बाइट्स का दायरा बनाना चाहता था।
यारालाइज़र में प्रवेश करें, जो आपको मिलानों के आसपास के क्षेत्रों को जल्दी से स्कैन करने देता है, साथ ही यह भी दिखाता है कि यदि उन क्षेत्रों को विभिन्न कैरेक्टर एन्कोडिंग में बलपूर्वक डाला जाए तो वे कैसे दिखेंगे।
यारालाइज़र एक मैलवेयर रिवर्सिंग टूल नहीं है। यह वह काम नहीं कर सकता जो CyberChef जैसा उपकरण करता है और वह ऐसा करने की कोशिश नहीं करता। इसका उद्देश्य आपको बाइनरी में संदिग्ध क्षेत्रों का एक त्वरित दृश्य अवलोकन देना है ताकि आप उन क्षेत्रों पर ध्यान केंद्रित कर सकें जिन्हें आप अधिक गंभीर उपकरण से निरीक्षण करना चाह सकते हैं।
इसे pipx या pip3 से स्थापित करें। pipx थोड़ा बेहतर समाधान है क्योंकि यह गारंटी देता है कि इसके साथ स्थापित कोई भी पैकेज आपके स्थानीय पायथन वातावरण के बाकी हिस्सों से अलग रहेगा। बेशक, यदि आपके पास वास्तव में कोई स्थानीय पायथन वातावरण नहीं है तो यह एक विवादास्पद बिंदु है और आप pip/pip3 के साथ स्थापित करने के लिए स्वतंत्र महसूस कर सकते हैं।
pipx install yaralyzer
कमांड लाइन विकल्पों को देखने के लिए yaralyze -h चलाएँ (नीचे स्क्रीनशॉट)।

SVG इमेज, HTML आदि निर्यात करने की जानकारी के लिए, उदाहरण आउटपुट देखें।
यदि आप अपनी होम डायरेक्टरी या वर्तमान कार्यशील डायरेक्टरी में .yaralyzer नामक एक फ़ाइल रखते हैं, तो उस .yaralyzer फ़ाइल में निर्दिष्ट एनवायरनमेंट वेरिएबल हर बार yaralyzer को कॉल करने पर एनवायरनमेंट में जोड़ दिए जाएंगे। यह विभिन्न कमांड लाइन विकल्पों को स्थायी रूप से कॉन्फ़िगर करने के लिए एक तंत्र प्रदान करता है ताकि आप उन्हें बार-बार टाइप करने से बच सकें। अधिक जानकारी के लिए उदाहरण फ़ाइल .yaralyzer.example में टिप्पणियाँ देखें।
केवल एक .yaralyzer फ़ाइल लोड की जाएगी और कार्यशील डायरेक्टरी का .yaralyzer होम डायरेक्टरी के .yaralyzer पर प्राथमिकता लेता है।
Yaralyzer मुख्य वर्ग है। Yaralyzer के विभिन्न वर्गों और विधियों के लिए स्वतः उत्पन्न दस्तावेज़ यहाँ पाया जा सकता है। इसमें विभिन्न वैकल्पिक कंस्ट्रक्टर हैं जो समर्थन करते हैं:
.yara फ़ाइलों से YARA नियम लोड करनाbytes स्कैन करनायदि आप यारालाइज़र द्वारा उपयोग किए जाने वाले BytesMatch (YARA मिलान के लिए re.Match ऑब्जेक्ट की तरह) और BytesDecoder (डिकोडिंग प्रयास आँकड़े ट्रैक करता है) ऑब्जेक्ट पर पुनरावृत्ति करना चाहते हैं, तो आप इसे इस प्रकार कर सकते हैं:
from yaralyzer.yaralyzer import Yaralyzer
yaralyzer = Yaralyzer.for_rules_files(['/secret/rule.yara'], 'lacan_buys_the_dip.pdf')
for bytes_match, bytes_decoder in yaralyzer.match_iterator():
do_stuff()
यदि आपको एक संख्यात्मक त्रुटि कोड के साथ yara.Error मिलता है, तो आप यहाँ जाँच सकते हैं कि वह कोड क्या मतलब हो सकता है यहाँ।
यारालाइज़र Rich के साथ आने वाली फ़ाइल निर्यात कार्यक्षमता के साथ-साथ एक (कुछ हद तक सीमित) सादा टेक्स्ट JSON प्रारूप का उपयोग करके HTML, ANSI रंगीन टेक्स्ट, और PNG और SVG वेक्टर छवियों दोनों में विज़ुअलाइज़ेशन निर्यात कर सकता है।
यदि आप सीधे यारालाइज़र से नीचे दिए गए चित्रों की तरह .png इमेज निर्यात करना चाहते हैं, तो आपको इनमें से एक काम करना होगा:
brew install --cask inkscape के साथ स्थापित कर सकते हैं)img एक्स्ट्रा का अनुरोध करें जो cairosvg स्थापित करेगा: pipx install yaralyzer[img]। आपको अपने ऑपरेटिंग सिस्टम के आधार पर CairoSVG निष्पादन योग्य को मैन्युअल रूप से अलग-अलग तरीकों से भी स्थापित करना होगा, विवरण के लिए CairoSVG दस्तावेज़ देखें।हमारे अनुभव में Inkscape और CairoSVG दोनों काम करते हैं, हालाँकि हमने Yaralyzer द्वारा प्रस्तुत SVG पर CairoSVG का उपयोग करके प्रस्तुत आउटपुट में कुछ गड़बड़ देखी है, इसलिए Inkscape अनुशंसित विकल्प है।


chardet.detect() आपके बाइट्स के किसी दिए गए एन्कोडिंग/भाषा में होने की संभावना के बारे में क्या सोचता है:
योगदान का स्वागत है; पर्यावरण सेटअप, परीक्षण सूट चलाने आदि के विवरण के लिए CONTRIBUTING.md देखें। वहाँ किए जाने वाले कार्यों की एक TODO सूची भी है।
जैसा कि मैं हाल ही तक था। ↩