
كشف نطاقات DGA باستخدام تحليل تردد الثنائيات
يتم إنشاء المزيد والمزيد من البرامج الضارة بتقنيات متطورة لتجاوز الحظر. من أبرز هذه التقنيات استخدام خوارزميات توليد النطاقات (Domain Generation Algorithms) التي تولد بشكل دوري مجموعة من النطاقات للاتصال بخادم القيادة والتحكم (C&C). معظم نطاقات DGA هذه تولد سلاسل أبجدية رقمية عشوائية تختلف بشكل كبير في بنيتها عن النطاق القياسي. من خلال النظر إلى تكرار ظهور مجموعة من الثنائيات (bigrams) في نطاق ضمن أفضل 1 مليون نطاق في تصنيف Alexa، تمكنا من اكتشاف ما إذا كان النطاق مبنياً على سلسلة عشوائية أم أنه نطاق شرعي قابل للقراءة البشرية. إذا كان النطاق يتكون بالكامل تقريباً من ثنائيات منخفضة التكرار نادراً ما تظهر ضمن أفضل 1 مليون نطاق في Alexa، فمن المرجح أن يكون النطاق عبارة عن سلسلة عشوائية. كانت الثنائيات المكونة من حرف متحرك وحرف ساكن هي الأكثر تكراراً، بينما كانت الثنائيات المكونة من أحرف وأرقام صحيحة هي الأقل تكراراً. تم تشغيل البرنامج النصي على 100,000 نطاق من GameoverZeus وحقق معدل اكتشاف 100% ومعدل إيجابية كاذبة تجاه أفضل 1 مليون نطاق في Alexa بنسبة 8% دون تطبيق أي قوائم بيضاء للنطاقات.
تم اختبار هذا النظام على Ubuntu و RaspberryPi. حالياً لدي RaspberryPi مُعد كخادم DNS باستخدام Bind9. يتم تشغيل برنامج DGA-Detection أيضاً على 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
nohup sudo python dga-detection.py -o 2 -i <واجهة>
عند تشغيل ملف install.sh يرجى ملاحظة أن بروتوكول git:// يستخدم المنفذ 9418، لذا يجب التأكد من أن جدار الحماية يسمح بالاتصالات الصادرة إلى هذا المنفذ.
هذا المشروع لا يزال قيد التطوير.
أثناء تشغيل البرنامج النصي على مستوى الشبكة في شبكتي المنزلية، لاحظت أنه إذا قمت ببعض عمليات البحث في Google على متصفح Google Chrome، سأحصل على مجموعة من التنبيهات التي تبدو وكأنها نطاقات DGA. حتى لو لم تزر هذه المواقع التي تكون عادة صينية (لأنها تستخدم سلاسل غير ذات معنى لنطاقاتها)، فإن Google Chrome يقوم بتحميلها مسبقاً وجلبها مما يسبب التنبيهات.
ملاحظة: ميزة القائمة البيضاء تستخدم أفضل 1 مليون نطاق في Alexa.
اتصل بي عبر تويتر @philarkwright