شعار زيفيرنت

الكشف عن البرامج الضارة لـ Microsoft

التاريخ:

تم نشر هذه المقالة كجزء من مدونة علوم البيانات.

المُقدّمة

كجزء من كتابة مدونة حول موضوع ML أو DS ، اخترت pris الكشف عن البرامج الضارة لـ Microsoft. هنا تشرح هذه المدونة كيفية حل المشكلة من البداية.

سأشرح لك في هذه المدونة ، كيف أتعامل مع المشكلة وكيف أستخدم الكشف عن البرامج الضارة من Microsoft.

أنا هنا أقوم بتطبيق خوارزمية ML والإحصائيات لحل المشكلة.

  • ما هي البرمجيات الخبيثة؟
  • مشكلة العمل
  • نظرة عامة على البيانات
  • مشكلة Mappin ML
  • EDA (تحليل البيانات الاستكشافية)
  • ميزة الاستخراج
  • ميزة الترميز
  • تحليل متعدد المتغيرات
  • تطبيق نموذج ML
  • النموذج النهائي
  • قارن النموذج
  • وفي الختام
  • الرقم المرجعي

ما هي البرامج الضارة؟

البرامج الضارة عبارة عن برامج متطفلة مصممة لإتلاف أجهزة الكمبيوتر وأنظمة الكمبيوتر وتدميرها ، وتعد البرامج الضارة بمثابة انكماش "للبرامج الضارة". تتضمن أمثلة البرامج الضارة الشائعة الفيروسات والديدان وفيروسات أحصنة طروادة وبرامج التجسس والبرامج الإعلانية وبرامج الفدية.

مصدر:- انقر هنا.

الكشف عن البرامج الضارة لـ Microsoft | Kaggle
المصدر Kaggle

مشكلة العمل

في السنوات القليلة الماضية ، نمت صناعة البرامج الضارة بسرعة كبيرة ، حيث استثمرت النقابات بكثافة في التقنيات للتهرب من الحماية التقليدية ، مما أجبر مجموعات / مجتمعات مكافحة البرامج الضارة على بناء برامج أكثر قوة لاكتشاف هذه الهجمات وإنهائها. يتمثل الجزء الأكبر من حماية نظام الكمبيوتر من هجوم البرامج الضارة في تحديد ما إذا كان جزء معين من الملف / البرنامج عبارة عن برنامج ضار.

تحتوي مجموعة البيانات هذه على 9 فئات من البرامج الضارة.

المصدر https://www.kaggle.com/c/malware-classification

نظرة عامة على البيانات

في هذا القسم ، فهمنا البيانات التي لدينا. لذلك لكل برنامج ضار. لقد قدمنا ​​نوعي الملفات. الملف الأول هو ملف ASM. والثاني هو ملفات بايت.

لمزيد من المعلومات حول ملفات ASM ، https://www.reviversoft.com/file-extensions/asm

لذا فإن ASM تعني ملف كود لغة التجميع ، دعنا نفترض أنه يجب عليك كتابة كود في C ++ و C ++ مترجم يأخذ هذا الكود الخام ويحوله إلى ملف ASM ، ثم هناك شيء يسمى المجمع ويتحول إلى ملفات بايت وهذا الملف يحتوي فقط 0 و 1

تحتوي ملفات .asm على هذا النوع من ملفات كلمات رئيسية مثل "pop" و "jump" و "push" و "move" وما إلى ذلك.

ويحتوي ملف البايت (البيانات الأولية على التمثيل السداسي العشري للمحتوى الثنائي للملف ، بدون رأس PE) على قيم سداسية عشرية وحيث تقع القيمة بين 00 إلى FF

هنا لدينا إجمالي 200 جيجابايت من البيانات حيث 50 غيغابايت من بيانات ملفات البايت و 150 غيغابايت هي ملف .asm.

إذن فإن اسم البرامج الضارة التسعة كما يلي:

  1. Ramnit
  2. مصاصة
  3. كيليهوس_ver3
  4. فوندو
  5. سيمدا
  6. تراكور
  7. كيليهوس_ver1
  8. Obfuscator.ACY
  9. جاتاك

ملف .ASM

.text: 00401030 56 push esi .text: 00401031 8B F1 mov esi، ecx .text: 00401043 74 09 jz short loc_40104E .text: 00401045 56 push esi .text: 00401046 E8 6C 1E 00 00 call [البريد الإلكتروني محمي]@ Z ؛ حذف عامل التشغيل (باطل *). النص: 0040104B 83 C4 04 add esp، 4 .text: 0040104E .text: 0040104E loc_40104E:؛ كود XREF: .text: 00401043j .text: 0040104E 8B C6 mov eax، esi .text: 00401050 5E pop esi .text: 00401051 C2 04 00 retn 4

ملف بايت

6A 04 68 00 10 00 00 68 66 3E 18 00 6A 00 FF 15 D0 63 52 00 8B 4C 24 04 6A 00 6A 40 68 66 3E 18 00 50 89 01 FF 15 9C 63 52 00 50 FF 15 CC 63 52 00 B8 07 00 00 00 C2 04 00 CC CC CC CC CC CC B8 FE FF FF FF FF C3 CC CC CC CC CC CC CC CC CC B8 09 00 00 00 C3 CC CC CC CC CC CC CC CC CC B8 01 00 00 00 C3 CC CC CC CC CC CC CC CC CC B8 FD FF FF FF C2 04 00 CC CC CC CC CC CC CC 8B 4C 24 04 8D 81 D6 8D 82 F7 81 F1 60 4F 15 0B 23 C1 C3 CC CC CC CC CC CC CC CC CC CC CC CC 8B 4C 24 04 8B C1 35 45 CF 3F FE 23 C1 25 BA 3D C5 05 C3 CC CC CC CC CC CC CC CC CC CC CC 8B 4C 24 04 B8 1F CD 98 AE F7 E1 C1 EA 1E 69 D2 FA C9 D6 5D 56 8B F1 2B F2 B8 25 95 2A 16 F7 E1 8B C1 2B C2 D1 E8 03 C2 C1 E8 1C 69 C0 84 33 73 1D 2B C8 8B C1 85 F6 74 06 33 D2 F7 F6 8B C2 5E 8B 4C 24 04 8B D1 8D 81 D6 8D 82 F7 81 F2 60 4F

رسم الخرائط في مشكلة ML

بالنظر إلى الملفات ، يتعين علينا تصنيف أحد الفئات التسعة ، مما يتيح لنا أولاً تحويله إلى مشكلة التعلم الآلي المناسبة.

لذا فهي مشكلة تصنيف متعدد الطبقات.

بالنسبة لمقاييس أداء هذه المشكلة ، نستخدمها هو فقدان سجل متعدد الطبقاتو نحن أيضًا - نستخدم مقاييس الدقة واسترجاع المعلومات ، والتي تعطي فكرة أفضل عن كيفية دقة أوضاعنا.

رسم الخرائط في مشكلة ML
مصدر medium.com 

ترجع خسارة السجل متعدد الفئات احتمالية كل فئة.

لمزيد من المعلومات حول الخسارة ، السجل انقر هنا.

جمعية الإمارات للغوص

لذلك في هذا القسم ستؤدي مجموعة من ملفات EDA (تحليل البيانات الاستكشافية) العمليات.

لذلك دعونا نذهب ونقوم بعمل EDA. لذا فإن أول شيء نقوم به هنا هو فصل ملفات البايت عن ملفات ASM. هذه المشكلة هي مجموعات البيانات غير المتوازنة ، لذا أولاً ، نحن نرسم الرسوم البيانية على تسميات الفصل.

EDA | الكشف عن البرامج الضارة لـ Microsoft
مصدر الملف الشخصي للمؤلف على GitHub

من هذا الرسم البياني لتسمية الفئة ، يمكننا القول أن الفئة 5 بها عدد قليل جدًا من البيانات - النقاط ، والفئتان 2 و 3 بها كمية جيدة من البيانات - النقاط المتاحة.

ميزة استخراج من ملفات بايت

لذا ، انظر أولاً إلى ملف بايت وافعل بعض الشيء هندسة الميزات

هنا ننظر أولاً إلى حجم الملف كميزة ونرسم مخطط مربع لفهم أن هذه الميزة مفيدة أو لا لتحديد تسميات الفصل ، إذا كانت جميع مخططات مربعات تسميات الفئات متداخلة مع بعضها البعض ، فيمكننا القول أن حجم الملف هذا الميزة ليست مفيدة.

الكشف عن البرامج الضارة لـ Microsoft
مصدر الملف الشخصي للمؤلف على GitHub

من مخطط الصندوق ، يمكننا القول أن ميزة حجم الملف مفيدة لتحديد تسمية الفئة.

لذا فإن الأمور الثانية لاستخراج الميزات هي كما يلي:

نعلم أن ملفات البايت تحتوي على قيم سداسية عشرية وأن القيم السداسية العشرية تقع بين 00 إلى FF ، لذلك نأخذ جميع القيم السداسية العشرية كقيم إدخال أو ميزات.

00,01,02,03,04,05,06,07,08,09,0a,0b,0c,0d,0e,0f,10,11,12,13,14,15,16,17,18,19,1a,1b,1c,1d,1e,1f,20,21,22,23,24,25,26,27,28,29,2a,2b,2c,2d,2e,2f,30,31,32,33,34,35,36,37,38,39,3a,3b,3c,3d,3e,3f,40,41,42,43,44,45,46,47,48,49,4a,4b,4c,4d,4e,4f,50,51,52,53,54,55,56,57,58,59,5a,5b,5c,5d,5e,5f,60,61,62,63,64,65,66,67,68,69,6a,6b,6c,6d,6e,6f,70,71,72,73,74,75,76,77,78,79,7a,7b,7c,7d,7e,7f,80,81,82,83,84,85,86,87,88,89,8a,8b,8c,8d,8e,8f,90,91,92,93,94,95,96,97,98,99,9a,9b,9c,9d,9e,9f,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,aa,ab,ac,ad,ae,af,b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,ba,bb,bc,bd,be,bf,c0,c1,c2,c3,c4,c5,c6,c7,c8,c9,ca,cb,,cf,d0,d1,d2,d3,d4,d5,d6,d7,d8,d9,da,db,dc,dd,de,df,e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,ea,eb,ec,ed,ee,ef,f0,f1,f2,f3,f4,f5,f6,f7,f8,f9,fa,fb,fc,fd,fe,ff

تطبيق ميزة البكسل على ملفات بايت

يعني البكسل هنا أننا نأخذ كل ملف ونحوله إلى صورة ثم نستخدم أول 100 بكسل من الصورة كقيمة إدخال.

أشير: المزيد عن ذلك

الملف الشخصي على GitHub | الكشف عن البرامج الضارة لـ Microsoft
مصدر الملف الشخصي للمؤلف على GitHub

ميزة الترميز

الآن لدينا ميزات ، لتشفير ميزة نقوم بتطبيق ملف ثنائية الجرام BOW (كيس من كلمة)، دعونا نفهم أولاً BOW ،

يعني BOW أننا نأخذ كل ملف بايت ونحسب ببساطة عدد المرات التي تظهر فيها ميزاتنا 00 ، 01 ، 02 ... ، ويعني bi-gram أننا نأخذ الميزات ونحولها إلى زوج من الميزات 00 01 ، 01 02 ، 02 03 ... و ثم نحسب عدد مرات حدوثه.

لمعرفة المزيد عن ينحني.

تحليل متعدد المتغيرات على ميزات ملف بايت

T-SNE هي في الأساس تقنية لتقليل الأبعاد، لذلك أولاً ، نأخذ جميع البيانات ونحولها إلى بُعد ثنائي لأننا باستخدام T-SNE توصلنا إلى فكرة عنها ، وميزتنا مفيدة لتصنيف تسميات الفئة أم لا.

ميزة الترميز
مصدر الملف الشخصي للمؤلف على GitHub

من T-SNE يمكننا القول أن ميزاتنا مفيدة لتصنيف تسميات الفصل.

تطبيق نموذج ML على ملفات بايت

1 قم بتطبيق نموذج عشوائي

نحن نعلم أن مصفوفة التقييم الخاصة بنا عبارة عن خسارة لوغاريتمية ، وقيم خسارة اللوغاريتمات تقع بين [0 ، ما لا نهاية].

للعثور على أعلى قيمة لفقدان السجل في بياناتنا ، نستخدم نموذجًا عشوائيًا ونجد اختبارًا وخسارة في سجل التدريب.

نموذج عشوائي كالتالي: -

أولاً ، نأخذ بياناتنا ونتوقع تسميات الفئات بشكل عشوائي ، و- لدينا أيضًا تسمية فئة فعلية ونطبق فقدان سجل متعدد الفئات ونجد قيمة فقدان السجل متعدد الفئات في بيانات السيرة الذاتية (التحقق المتبادل) والقيمة هو 2.45.

هذه القيمة هي أسوأ قيمة بالنسبة لنا ، لذلك علينا أن نحاول تقليل فقد السجل بقدر ما نستطيع.

2 قم بتطبيق KNN (تصنيف K أقرب الجوار) على ملفات البايت

نحن هنا نطبق KNN في مجموعة البيانات الخاصة بنا وهي طريقة تعتمد على الحي ، وذلك لأخذ نقطة K المجاورة والتنبؤ بتسميات الفئات.

يبلغ فقدان التدريب والاختبار 0.078 و 0.245 ، وهنا تكون الاختلافات في التدريب وفقدان الاختبار عالية جدًا ، ومن ثم يمكننا القول إن نموذجنا يتناسب مع بيانات القطار.

من خلال مراقبة الدقة ، يمكننا القول أن جميع البيانات مصنفة جيدًا لجميع الفئات باستثناء الفئة 5 ، وذلك لأن لدينا كمية أقل جدًا من نقطة البيانات التي تنتمي إلى الفئة 5.

3. تطبيق الانحدار اللوجستي على ملفات البايت

نقوم بتطبيق الانحدار اللوجستي على ملف بايت.

التدريب وفقدان الاختبار هو 0.1918 و 0.3168

عند مراقبة فقدان السجل من القطار ، فإن بيانات الاختبار تتلاءم قليلاً مع البيانات.

لكنها لا تصنف جميع البيانات - النقاط. من الدقة ، يمكننا القول أن هذا لا يتنبأ بالفئة 5 بسبب كمية البيانات الأقل.

4 تطبيق مجموعة عشوائية على ملفات بايت

هنا نطبق RF على بيانات البايت وهو يعمل بشكل جيد.

التدريب وفقدان الاختبار هو 0.0342 و 0.0971

من الدقة ، يمكننا القول أنه تم توقع كل تصنيف تقريبًا للفئة 5.

ومن الاسترجاع ، يمكننا القول أن هذا هو التصنيف الصحيح لتسمية الصنف تقريبًا. والنظر من فقدان السجل فهو مناسب جيدًا.

5 قم بتطبيق XGBoost على ملفات بايت

الآن نطبق XGBoost على البيانات وهي تقنية تعتمد على نموذج المجموعة.

لمزيد من المعلومات حول هذا الموضوع انقر هنا.

يبلغ فقدان القطار والاختبار 0.022 و 0.079 ، وهذه الخسارة جيدة جدًا من الطرز الأخرى.

من الدقة ، يمكننا القول أنه من المتوقع أن يكون كل تصنيف فئة تقريبًا صحيحًا ، حتى بالنسبة للفئة 5.

ومن الاسترجاع ، يمكننا القول أن هذا هو التصنيف الصحيح لتسمية الصنف تقريبًا.

استخراج ميزة من ملفات .asm

الآن نقوم باستخراج الميزة من ملف .asm ، جميع الملفات تشكل حوالي 150 جيجا بايت.

هنا استخرجناها ميزات شنومكس من جميع ملفات .AS التي تعتبر مهمة.

يحتوي هذا الملف على السجلات والكلمات الرئيسية وأكواد التشغيل والبادئات من هذه الأجزاء الأربعة من الملف ، ونحن نستخرج ما مجموعه 4 ميزة ، ونقوم بتضمين حجم الملف - كميزة ، لذلك في المجموع ، لدينا 52 ميزة هنا.

 البادئات = ['HEADER:'، '. text:'، '. Pav:'، '. idata:'، '. data:'، '. bss:'، '. rdata:'، '. edata:'، '.rsrc:'، '. tls:'، '. reloc:'، '. BSS:'، '. CODE'] أكواد العمليات = ['jmp'، 'mov'، 'retf'، 'push'، 'pop '،' xor '،' retn '،' nop '،' sub '،' inc '،' dec '،' add '،' imul '،' xchg '،' or '،' shr '،' cmp '، 'call'، 'shl'، 'ror'، 'rol'، 'jnb'، 'jz'، 'rtn'، 'lea'، 'movzx'] الكلمات الرئيسية = ['.dll'، 'std ::'، ': dword'] registers = ['edx'، 'esi'، 'eax'، 'ebx'، 'ecx'، 'edi'، 'ebp'، 'esp'، 'eip']

توزيع أحجام ملفات .asm

الآن نرسم مربعًا نرسم حجم ملف لفهم أن هذه الميزة مفيدة أو لا لتحديد تسميات الفصل.

Boxplot | الكشف عن البرامج الضارة لـ Microsoft

مصدر الملف الشخصي للمؤلف على GitHub

من boxplot ، يمكننا القول أن حجم الملف لأن الميزة مفيدة لتصنيف بياناتنا.

تحليل متعدد المتغيرات على ميزات ملف .asm

بالنسبة للتحليل متعدد المتغيرات ، نستخدم نفس المفهوم الذي نستخدمه في ملفات بايت ، ونطبق TSNE هنا للتحقق مما إذا كانت هذه الميزات الـ 53 مفيدة لفصل نقاط البيانات أم لا.

مصدر الملف الشخصي للمؤلف على GitHub

من المؤامرة ، هناك العديد من المجموعات للفئات المختلفة ، وبالتالي يمكننا أن نقول نعم هذه الميزات مفيدة لفصل التسميات

قم بتطبيق النموذج على ملفات ASM

1 تطبيق نموذج عشوائي على ملفات ASM: -

نعلم هنا أن مصفوفة الأداء الخاصة بنا عبارة عن خسارة في السجل متعدد الفئات ، لذلك نعلم أن قيم فقدان السجل تقع بين (0 ، ما لا نهاية] هنا نعرف القيمة المنخفضة ولكننا لا نعرف قيمة عالية ، باستخدام نموذج عشوائي نجد قيمة عالية من فقدان السجل.

ومن ثم فإن فقدان السجل في بيانات الاختبار للنموذج العشوائي هو 2.493.

2 قم بتطبيق KNN (تصنيف K أقرب الجيران) على ملفات ASM

هنا نطبق KNN في مجموعة البيانات الخاصة بنا وهي تقنية حي - قاعدة - ، وهذا هو أخذ نقطة K المجاورة - والتنبؤ بتسميات الفئات.

يبلغ فقدان التدريب والاختبار 0.0476 و 0.089 ، وهنا تكون الاختلافات في التدريب وفقدان الاختبار عالية جدًا ، ومن ثم يمكننا القول أن نموذجنا يتناسب مع بيانات القطار.

من خلال مراقبة الدقة ، يمكننا القول أن جميع البيانات مصنفة جيدًا لجميع الفئات باستثناء الفئة 5 ، وذلك لأن لدينا كمية أقل جدًا من نقطة البيانات التي تنتمي إلى الفئة 5.

3. تطبيق الانحدار اللوجستي على ملفات ams

نقوم بتطبيق الانحدار اللوجستي على ملف .asm.

التدريب وفقدان الاختبار هو 0.781 و 0.742

مراقبة فقدان السجل من القطار ، بيانات الاختبار ، مناسبة بشكل جيد.

لكنها لا تصنف جميع نقاط البيانات. من الدقة ، يمكننا القول أن هذا لا يتنبأ بالفئة 5 بسبب كمية البيانات الأقل.

ومن عملية الاسترجاع ، لم يتم تصنيف تصنيف الفئة الصحيح للفئات 5 و 6 و 7 و 9.

4 تطبيق مجموعة عشوائية على ملفات بايت

هنا نطبق RF على البيانات وهو يعمل بشكل جيد للغاية.

التدريب وفقدان الاختبار هو 0.0271 و 0.0462

من الدقة ، يمكننا القول أنه من المتوقع أن يكون كل تصنيف فئة تقريبًا صحيحًا ، حتى بالنسبة للفئة 5.

ومن الاسترجاع ، يمكننا القول أن هذا هو التصنيف الصحيح لتسمية الصنف تقريبًا.

والنظر من فقدان اللوغاريتمات يكون مناسبًا جيدًا

5 قم بتطبيق XGBoost على ملفات بايت

هنا نقوم بتطبيق XGBOOST على البيانات وهو يعمل بشكل جيد للغاية.

من الدقة ، يمكننا القول أنه من المتوقع أن يكون كل تصنيف فئة تقريبًا صحيحًا ، حتى بالنسبة للفئة 5.

التدريب وفقدان الاختبار هو 0.0241 و 0.0371

ومن الاسترجاع ، يمكننا القول أن هذا هو التصنيف الصحيح لتسمية الصنف تقريبًا.

وبالنظر من فقدان السجل ، فهو مُجهز جيدًا ، وهذا أيضًا أفضل من طراز RF.

النموذج النهائي

نقوم الآن بدمج كلا الملفين .asm و. bytes ونموذج التطبيق الذي يتم تنفيذه بشكل أفضل في الملفات الفردية وهنا يكون النموذج الأفضل هو XGboost.

لدينا هنا إجمالي 66 ألف ميزة وهذه مهمة صعبة للغاية بالنسبة لي ، أولاً ، نطبق TSNE لأنه يعطيني فكرة أن هذه الميزات هي مدى جودة فصل الملصقات

مصدر الملف الشخصي للمؤلف على GitHub

الآن يمكننا أن نقول أن كل هذه الميزات مفيدة جدًا للبيانات - الفصل.

هنا قمنا بعمل متعدد المتغيرات على هذه الميزة.

ومن هنا يمكننا أن تساعد هذه الميزة في الفصل بين نقاط البيانات.

Random Forest Classifier على الميزات النهائية

هنا نطبق RF على البيانات النهائية ويعمل

التدريب وفقدان الاختبار هو 0.03143 و0.09624

من الدقة ، يمكننا القول أنه تم توقع كل تصنيف تقريبًا للفئة 5.

ومن الاسترجاع ، يمكننا القول أن هذا هو التصنيف الصحيح لتسمية الفئة تقريبًا.

والنظر من فقدان اللوغاريتمات يكون مناسبًا جيدًا. ومن ثم يمكننا القول أن التردد اللاسلكي يعمل جيدًا لبياناتنا.

LGBMClassifier عن الميزات النهائية

نحن نعلم هنا بالنسبة لكلا الملفين أن نموذجنا الفائز هو XGBOOST ، ولكن في الميزة النهائية ، نطبق lightgbm لأن وقت حوسبة xgboost لدينا مرتفع جدًا و lightgbm أسرع قليلاً من xgboost ومن ثم نقوم بتطبيق LGBM هنا وكلاهما يفعل نفس الأشياء.

هنا نقوم بتطبيق LGBM على البيانات النهائية وهو يعمل

من الدقة ، يمكننا القول أنه تم توقع كل تصنيف تقريبًا للفئة 5.

ويمكن القول من هذا هو التصنيف الصحيح لتسمية الطبقة تقريبًا.

وبالنظر من فقدان السجل ، فهو مُجهز جيدًا ، وهذا أكثر من نموذج RF. وحصلنا على خسارة اختبار 0.01 هنا ، وبالتالي يعمل LGBM / XGBOOST على بياناتنا.

قارن النموذج

قارن النموذج | الكشف عن البرامج الضارة لـ Microsoft
مصدر الملف الشخصي للمؤلف على GitHub

وفي الختام

1. أولاً ، البيانات المقدمة هي بيانات برامج Microsoft الضارة ، ومهمتنا هي تصنيف الملف المحدد الذي يحتوي على نوع البرامج الضارة التي ينتمي إليها. هنا في البيانات ، لدينا 9 أنواع من اكتشاف البرامج الضارة من Microsoft.

2. يوجد في بياناتنا نوعان من الملفات ، الأول هو ملفات .bytes والثاني هو ملف .asm.

أ في ملفات بايت ، تحتوي على قيم سداسية عشرية

ب. وفي ملف .asm ، تحتوي على بعض الكلمات الرئيسية الخاصة مثل pop ، push ، إلخ

3. نقوم هنا أولاً بفك ضغط البيانات وفصل كلا النوعين من الملفات ، ويبلغ حجم البيانات هذا 200 جيجابايت تقريبًا. لذلك فهو أمر صعب للغاية بالنسبة لنا.

4. هنا نهجنا هو أولاً تحليل ملفات بايت ثم نذهب لتحليل ملفات .asm.

5. نأخذ أولاً ملف بايت. ونعلم أنه يحتوي على قيمة سداسية عشرية وأن القيم السداسية العشرية تقع بين 00 إلى FF ، لذلك نطبق BOW ثنائي الجرام البسيط ونقوم بحساب بسيط هنا لكل ملف ، ونطبق أيضًا ميزة البكسل مما يعني أننا نقوم أولاً بتحويل كل ملف إلى صورة ونأخذ أول 100 بكسل.

6. نحن نعلم أن القيمة الدنيا لخسارة اللوغاريتمات تساوي 0 وأن القيمة القصوى هي اللانهاية ، لذلك أولاً ، نبني نموذجًا عشوائيًا ونجد الحد الأقصى لخسارة السجل.

7. بعد النموذج العشوائي ، قمنا ببناء نموذج مختلف مثل LR ، و RF ، و KNN ، و xgboost ، ونتحقق من النموذج الذي يعطي خسارة لوغاريتمية منخفضة.

8. الآن نأخذ ملف .asm ونجد بعض الكلمات الرئيسية الخاصة البالغ عددها 53 والتي تعتبر مهمة جدًا لملف .asm.

9. هنا نطبق أيضًا نموذجًا مختلفًا مثل KNN ، LR ، RF ، إلخ.

10. نقوم الآن بدمج ميزات الملف معًا وتطبيق RF و XGBOOST / LGBM.

11. باستخدام XGBOOST / LGBM ، حصلنا على خسارة اختبار هي 0.01.

آمل أن تكون قد استمتعت بمقالتي حول اكتشاف البرامج الضارة من Microsoft. إذا كان لديك أي شكوك ، قم بالتعليق أدناه. اقرأ المزيد من المقالات حول Analytics Vidhya مدونة.

الرقم المرجعي

https://towardsdatascience.com/malware-classification-using-machine-learning-7c648fb1da79

https://www.kaggle.com/c/microsoft-malware-prediction

https://www.appliedaicourse.com

تواصل معي

الوسائط الموضحة في هذه المقالة ليست مملوكة لشركة Analytics Vidhya ويتم استخدامها وفقًا لتقدير المؤلف. 

المصدر: https://www.analyticsvidhya.com/blog/2022/01/microsoft-malware-detection/

بقعة_صورة

أحدث المعلومات الاستخباراتية

بقعة_صورة