
كشف النطاقات المولدة بواسطة خوارزميات DGA باستخدام نماذج التعلم العميق
كشف النطاقات المولدة بواسطة DGA باستخدام نماذج التعلم العميق

أنا حالياً أستخدم Conda (Anaconda/Miniconda) للتطوير، لكن يجب أن تكون قادراً على استخدام Pipenv أو virtualenv أيضاً باستخدام ملف requirements.txt المرفق.
conda:
conda env create -f environment.yml
conda activate degas
Pipenv:
pipenv install -r requirements.txt
pipenv shell
Virtualenv مشابه، لكن لا يوجد حقاً سبب لاستخدام virtualenv بدلاً من Pipenv بعد الآن.
يوجد نموذج مدرب موجود في الدليل models. إذا كنت ترغب في تدريب نموذج خاص بك، ستحتاج أولاً إلى تنزيل بيانات التدريب من S3:
python degas/runner download-data
معالجة البيانات إلى شكل CSV البسيط الذي يتوقعه باني النموذج:
python degas/runner process-data data/raw data/processed
هذه الخطوات تحتاج إلى تشغيلها مرة واحدة فقط، إلا إذا قمت بتغيير بيانات التدريب.
لإعادة تدريب النموذج باستخدام مجموعة البيانات المولدة، قم أولاً بتثبيت tensorflow-gpu باستخدام مدير الحزم الذي تختاره (conda install tensorflow-gpu أو pip install tensorflow-gpu) بحيث يكون التدريب مسرّعاً بواسطة GPU.
ثم، قم بتشغيل:
python degas/runner train-model data/processed
قم بتشغيل python degas/runner train-model --help لبعض خيارات الضبط المتاحة.
يستغرق هذا حوالي ساعة ونصف على بطاقة GTX 1070. يعمل فقط حوالي 9 دورات قبل أن يقصر؛ يمكنك تشغيله مثلاً لـ 5 دورات وستحصل على دقة جيدة مع نصف وقت التدريب:
python degas/runner train-model --epochs 5 data/processed
نظراً لأن هذا المشروع يستخدم Tensorflow كمكتبة تعلم عميق أساسية، الطريقة الموصى بها لاستخدام هذا للاستدلال هي استخدام Tensorflow Serving.
يجب أن تكون قادراً على تشغيله باستخدام:
docker run -p 8501:8501 \
--mount type=bind,source=models/degas,target=/models/degas\
-e MODEL_NAME=degas -t tensorflow/serving
انظر وثائق Tensorflow Serving لمزيد من المعلومات حول الخيارات المتاحة.
لماذا التعلم العميق لهذه المهمة؟ لأنه يعمل بشكل جيد، وليس من الصعب تنفيذه. من Byu et al, 2018:
"Deep neural networks have recently appeared in the literature on DGA detection Woodbridge et al. (2016); Saxe & Berlin (2017); Yu et al. (2017). إنها تتفوق بشكل كبير على طرق التعلم الآلي التقليدية في الدقة، على حساب زيادة تعقيد تدريب النموذج والحاجة إلى مجموعات بيانات أكبر."
نظراً لوجود كمية كبيرة من البيانات المتاحة للتدريب، فإن إنشاء نموذج تعلم عميق يكون بنفس السهولة أو أسهل من البدائل.
https://openreview.net/forum?id=BJLmN8xRW¬eId=BJLmN8xRW http://faculty.washington.edu/mdecock/papers/byu2018a.pdf
egrep -i '^d.*g.*a.* /usr/share/dict/words )للتسجيل، أنا أنطقها "de-gah"، كما في إدغار ديغا، وليس "de-gas"، كما في "إزالة كل الغاز."