
बिग्राम फ्रीक्वेंसी एनालिसिस का उपयोग करके DGA डोमेन का पता लगाना
अधिक से अधिक मैलवेयर उन्नत ब्लॉकिंग सर्कमवेंशन तकनीकों के साथ बनाए जा रहे हैं। सबसे प्रचलित तकनीकों में से एक डोमेन जनरेशन एल्गोरिदम (Domain Generation Algorithm) का उपयोग है, जो समय-समय पर C&C सर्वर से संपर्क करने के लिए डोमेन का एक सेट उत्पन्न करता है। इनमें से अधिकांश DGA डोमेन यादृच्छिक अल्फ़ान्यूमेरिक स्ट्रिंग उत्पन्न करते हैं जो एक मानक डोमेन से संरचना में काफी भिन्न होते हैं। किसी डोमेन में बिग्राम (bigrams) के एक सेट की आवृत्ति को Alexa टॉप 1M के भीतर देखकर, हम यह पता लगाने में सक्षम थे कि कोई डोमेन किसी यादृच्छिक स्ट्रिंग से बना है या यह एक वैध मानव-पठनीय डोमेन है। यदि कोई डोमेन लगभग पूरी तरह से कम-आवृत्ति वाले बिग्राम से बना है जो Alexa टॉप 1M में शायद ही कभी होते हैं, तो डोमेन के यादृच्छिक स्ट्रिंग होने की अधिक संभावना होगी। स्वर और व्यंजन के बिग्राम सबसे अधिक बार होते हैं जबकि वर्ण और पूर्णांक सबसे कम बार होते हैं। स्क्रिप्ट को 100,000 GameoverZeus डोमेन के विरुद्ध चलाया गया था और इसकी पहचान दर 100% थी तथा बिना किसी डोमेन व्हाइटलिस्टिंग के Alexa टॉप 1M के विरुद्ध गलत सकारात्मक दर (false positive rate) 8% थी।
यह सिस्टम Ubuntu और RaspberryPi पर परीक्षण किया गया है।
वर्तमान में मेरा RaspberryPi Bind9 का उपयोग करके DNS सर्वर के रूप में सेटअप है।
DGA-डिटेक्शन स्क्रिप्ट भी RaspberryPi पर चलती है और अनुरोधों को पढ़ती है।
फिर अनुरोधों को यह निर्धारित करने के लिए संसाधित किया जाता है कि वे संभावित DGA हैं या नहीं।
git clone https://github.com/philarkwright/DGA-Detection.git
cd DGA-Detection
chmod +x install.sh
./install.sh
sudo python dga_detection.py
/data/dga_training.txt फ़ाइल में Tinba DGA से DGA डोमेन हैं। मेरा सुझाव है कि आप मॉडल को प्रशिक्षित करने के लिए इसका उपयोग करें क्योंकि यह अधिकांश DGA डोमेन की संरचना का अनुसरण करता है, हालांकि यदि आप चाहें तो डोमेन को अपने स्वयं के सेट से बदल सकते हैं।test_domains.txt नामक एक टेक्स्ट फ़ाइल बनाएं और इसे /data/ में रखें।nohup sudo python dga-detection.py -o 2 -i <interface>
install.sh फ़ाइल चलाते समय कृपया ध्यान दें कि git:// प्रोटोकॉल पोर्ट 9418 का उपयोग करता है, इसलिए आपको सुनिश्चित करना चाहिए कि आपका फ़ायरवॉल इस पोर्ट पर आउटबाउंड कनेक्शन की अनुमति देता है।
यह परियोजना अभी भी विकास के अंतर्गत है।
अपने होम नेटवर्क पर नेटवर्क स्तर पर स्क्रिप्ट चलाते समय मैंने देखा कि यदि मैं Google Chrome पर कुछ Google खोजें करता हूँ, तो मुझे बहुत सारी चेतावनियाँ मिलती हैं जो DGA डोमेन प्रतीत होती हैं। भले ही आप इन साइटों पर न जाएं, जो आमतौर पर चीनी हैं (क्योंकि वे अपने डोमेन के लिए गिबरिश स्ट्रिंग का उपयोग करते हैं), Google Chrome उन्हें प्रीलोड और प्राप्त करेगा, जिससे चेतावनियाँ उत्पन्न होंगी।
नोट: व्हाइटलिस्ट सुविधा Alexa टॉप 1M का उपयोग करती है।
मुझसे ट्विटर @philarkwright पर संपर्क करें।