
مصنّف قائم على LSTM لكشف نطاقات خوارزمية توليد النطاقات (DGA)، مع تطبيقات Keras لنماذج الشبكة العصبية والثنائيات (bigram) لذكاء تهديدات DNS.
يحتوي هذا المستودع على كود بسيط جدًا لتصنيف النطاقات إلى إما DGA أو نطاقات سليمة. يوضح هذا الكود نتائجنا في ورقتنا على arXiv هنا: https://arxiv.org/abs/1611.00791. أحد الاختلافات هو مجموعات البيانات. تستخدم كل من الورقة وهذا المستودع قائمة Alexa لأعلى 1 مليون نطاق كنطاقات سليمة، لكن هذا المستودع يولّد نطاقاته الخاصة من أجل البساطة.
نحن أيضًا ننفّذ فقط مصنّف LSTM ومصنّف bigram من الورقة. وهما أفضل مصنّفين ومن السهل تنفيذهما في Keras.
python run.py سيقوم بتنزيل وتوليد جميع البيانات، وتدريب وتقييم المصنّف، وحفظ PNG على القرص (منحنى ROC).
يستخدم افتراضيًا طية واحدة (fold) لتسريع الأمور. سيعمل هذا الكود على جهازك المحلي أو على جهاز مزود بوحدة معالجة رسومية (GPU) (وبالطبع ستكون GPU
أسرع بكثير).
لدينا 11 خوارزمية DGA في مستودعنا. بعضها من مستودع https://github.com/baderj/domain_generation_algorithms. أشرنا إلى ذلك في كل ملف وحافظنا على رخصة GNU نفسها. ومع ذلك، أجرينا بعض التعديلات الصغيرة مثل السماح بعدم وجود TLD وتغيير الحجم لبعض الخوارزميات.