تعد خوارزميات إنشاء المجال (DGAs) فئة من الخوارزميات التي تنشئ بشكل دوري وديناميكي أعدادًا كبيرة من أسماء المجال. عادةً ما يتم استخدام المجالات بواسطة البرامج الضارة و botnets كنقاط التقاء لتسهيل إعادة الاتصال بخوادم الأوامر والتحكم الخاصة بالجهة الضارة. تسمح DGAs للبرامج الضارة بإنشاء عشرات الآلاف من المجالات يوميًا ، والغالبية العظمى منها غير مسجلة. تُستخدم الأعداد الهائلة من المجالات غير المسجلة للتنكر على المجالات المسجلة ، مما يسمح لشبكات الروبوت المصابة بالتهرب من الاكتشاف والردع عن طريق التوقيع أو أنظمة الكشف الأمني القائمة على سمعة IP.
كانت أول عائلة برامج ضارة معروفة تستخدم DGA هي Kraken في عام 2008. وفي وقت لاحق من ذلك العام ، دفعت دودة Conflicker تكتيك DGA إلى الشهرة. حتى بعد مرور 10 سنوات ، لا يزال من الممكن العثور على Conflicker أو أحد متغيراته على بعض شبكات اليوم.
بالتوازي مع الانتشار المتزايد للبرامج الضارة ، أصبح استخدام DGAs أكثر انتشارًا.
أهداف كشف DGA
نظرًا لأن نشاط DGA يعد مؤشرًا كبيرًا على التسوية ، يصبح من الضروري اكتشاف أي أنشطة من هذا القبيل على شبكتك. هناك ثلاثة مستويات لاكتشاف DGA ، مع كل مستوى لاحق مرتبط بزيادة في الخطورة. يعد الاكتشاف في المستويات اللاحقة أكثر صعوبة ولكنه أكثر أهمية.
إذا تم اكتشاف DGA ، فهذا يعني أن واحدًا أو أكثر من أنظمتك قد أصيب ببرامج ضارة قائمة على DGA وأصبحت شبكات روبوت. يجب اتخاذ بعض الإجراءات. الهدف الأول هو تحديد الأنظمة المتأثرة وتنظيفها أو عزلها بشكل صحيح لمنع التصعيد.
الهدف التالي هو تحديد ما إذا كان قد تم تسجيل اسم مجال DGA معين. إذا تم تسجيل المجال ، فقد أصبح خادمًا نشطًا للقيادة والتحكم يمثل خطرًا كبيرًا على شبكتك. قد تستخدم الأنظمة المصابة ، الآن الروبوتات ، هذه الخوادم للاتصال بالمنزل وتلقي الأوامر من المهاجم الضار. لذلك ، فإن المكون الثاني لنظام اكتشاف DGA الفعال هو القدرة على التمييز بين المجالات المسجلة والمجالات غير المسجلة.
على سبيل المثال ، قد يُنشئ DGA 1000 مجال ، من xyzwer1 ، xyzwer2…. إلى xyzwer1000. يحتاج المخترق فقط إلى تسجيل مجال واحد ، أي xyzwer500 ، وليس النطاقات الـ 999 الأخرى. إذا كان من الممكن تحديد المجال المسجل وعنوان IP المرتبط به ، فيمكن استخدام المعلومات لحظر قناة الاتصال بين النظام المستهدف وخادم القيادة والتحكم. بالإضافة إلى ذلك ، يجب نشر المعلومات على جميع أنظمة المنع أو الكشف الأخرى الموجودة لعرقلة رد الاتصال إلى هذا الخادم من أي نظام في الشبكة.
الهدف الأخير والأكثر أهمية لنظام اكتشاف DGA هو تحديد ما إذا كان رد الاتصال ناجحًا مع المجالات المسجلة وتم إجراء اتصال بين النظام (الأنظمة) المصاب وخادم القيادة والتحكم. إذا تم الكشف عن مثل هذا النشاط ، فقد يكون قد حدث بعض الضرر بالفعل. ربما تم تحديث البرامج الضارة في شبكتك ، أو تم تثبيت برامج ضارة جديدة. ربما تم اختراق البيانات الحساسة.
كيف يعمل DGA Detection؟
يتم الكشف عن نشاط DGA عن طريق التقاط حزم الشبكة وتحليلها ، عادةً في خمس خطوات عامة.
الخطوة 1 - كشف تطبيق DNS
يبدأ الاكتشاف عبر طلب DNS و / أو رسائل الاستجابة. DNS هو بروتوكول إنترنت أساسي ، ومعظم جدران الحماية لديها سياسة للسماح بحركة مرور DNS الصادرة على المنفذ المحجوز 53. ومع ذلك ، قد يستفيد المتسلل من المنفذ 53 لإرسال حركة المرور الخاصة به دون التقيد بتنسيق رسالة DNS القياسي. يسمى هذا الهجوم نفق DNS. يوصى باستخدام محرك الفحص العميق للحزم (DPI) لتحديد تطبيقات DNS بدقة أكبر.
الخطوة 2 - استخراج أسماء المجال
بمجرد تحديد تطبيق الشبكة على أنه DNS ، يجب استخراج أسماء المجال في استعلام DNS ورسائل الاستجابة. من أجل استخراج اسم المجال الصحيح ، يجب تحليل محتوى رسالة DNS بعناية ويكون محرك DPI مطلوبًا لأداء هذه المهمة.
الخطوة 3 - كشف أي DGA
يجب إجراء التحليل على المجالات المستخرجة من رسائل DNS لتحديد ما إذا كانت DGAs. ربما تكون هذه هي الخطوة الأكثر تعقيدًا. يتمثل التحدي في تقليل الإيجابيات الزائفة والسلبيات الكاذبة. تطورت آليات الكشف بشكل كبير خلال السنوات العشر الماضية أو أكثر.
تعتمد بعض الآليات على إنتروبيا شانون البسيط نسبيًا.
https://www.splunk.com/blog/2015/10/01/random-words-on-entropy-and-dns.html
تعتمد بعض الآليات على Ngrams الأكثر تطوراً كما قدمها Fyodor في مؤتمر Hitb
في الآونة الأخيرة ، مع انتشار التعلم الآلي ، تم أيضًا تطبيق منهجياته على اكتشاف DGA. يمكن أن يجمع التعلم الآلي بين ميزات Ngrams و Shannon Entropy بالإضافة إلى طول أسماء النطاقات للتأثير على القرارات. تم تجربة العديد من نماذج التعلم الآلي. هناك مدونة جيدة جدًا كتبها جاي جاكوبس في عام 2014 تصف العملية.
إليك كاشف DGA آخر مفتوح المصدر يعتمد على التعلم الآلي باستخدام Markov Chain:
https://github.com/exp0se/dga_detector
الخطوة 4 - كشف مجالات DGA المسجلة
لاكتشاف ما إذا كان اسم مجال DGA مسجلاً ، يجب التحقق من استجابات DNS. مجرد تتبع طلبات DNS ليس كافيًا - يجب أن يتتبع نظام الكشف المعاملة بأكملها لتسهيل الارتباط بين أجزاء المعلومات.
الخطوة 5 - كشف حركة المرور لنطاقات DGA المسجلة
عندما تركز معظم أنظمة اكتشاف DGA الحالية على اكتشاف ما إذا كان اسم المجال هو مجال DGA ، فإنها غالبًا ما تنسى السؤال الأخير ، والأهم: هل هناك أي حركة مرور تم إرسالها إلى مجالات DGA المسجلة؟ لاكتشاف ذلك في الوقت المناسب ، يجب أن يكون اكتشاف مجال DGA مقترنًا بإحكام بفحص حركة مرور الشبكة. يجب إعادة صدى النتائج إلى محرك فحص المرور على الفور قبل حدوث أي ضرر.
الخطوة 6 - حظر حركة المرور إلى مجالات DGA المسجلة
على الرغم من أنه ليس من الناحية الفنية جزءًا من الاكتشاف ، إذا كان هناك تكامل مع نظام منع مثل جدار الحماية أو IPS ، فيجب إدراج قاعدة على الفور لحظر كل حركة المرور إلى المجالات المسجلة.
يجب أن يقوم نظام اكتشاف DGA الرائع بتنفيذ جميع الخطوات الخمس. يجب أن يشتمل نظام اكتشاف DGA الممتاز أيضًا على الخطوة 5. لسوء الحظ ، تتوقف معظم أنظمة الكشف DGA اليوم عند الخطوة 6 أو الخطوة 3.
خاتمة
نظرًا لصعوبة اكتشاف DGAs من خلال نظام الكشف أو الوقاية القائم على التوقيع أو السمعة ، فقد أصبحت شائعة جدًا لدى مطوري البرامج الضارة.
مطلوب نظام كشف ذكي لإجراء الكشف. يجب أن يقوم نظام اكتشاف DGA الممتاز باستخراج معلومات اسم المجال من معاملات DNS ، وإجراء تحليلات شاملة للكشف عن حالة DGA ، والتحقق من حالة التسجيل للنطاقات المشبوهة ، والربط مع فحص حركة مرور الشبكة لتقييم مستوى الاختراق ، والتكامل بشكل مثالي مع أنظمة المنع لتجنب المزيد مرونة. لتقليل كل من الإيجابيات الخاطئة والسلبيات الكاذبة ، يجب التفكير بجدية في التعلم الآلي. فقط من خلال الذكاء الشامل والمتغلغل في كل مرحلة يمكن تخفيف التهديد حقًا.
المصادر
يحتوي المستودع في Github بواسطة Andrey Abakumove على خوارزميات لتوليد أسماء النطاقات ، بالإضافة إلى قواميس أسماء النطاقات الضارة.


