كيف علّمت الكمبيوتر يكتشف المواقع المزيّفة بدقة 96%؟
في يوم من الأيام، سألت نفسي سؤال بسيط: هل يقدر الكمبيوتر "يحس" إن موقع إلكتروني مزيّف بمجرد ما يشوف رابطه، بدون ما يفتحه أصلًا؟
الإجابة كانت نعم — وهذا قصة أول مشروع تعلم آلي (Machine Learning) أسويه فعليًا من الصفر.
المشكلة: التصيّد الاحتيالي في كل مكان
لو سبق واستلمت رسالة تقول "حسابك البنكي معلّق، اضغط هنا فورًا"، فأنت شفت مثال حي على التصيّد الاحتيالي (Phishing) — مواقع مزيّفة تتنكر بشكل مواقع حقيقية عشان تسرق كلمة مرورك أو بيانات بطاقتك.
المشكلة إن الطرق التقليدية للحماية (قوائم المواقع المحظورة) بطيئة — المحتالين يسوّون موقع جديد كل يوم، والقوائم ما تلحق تتحدث بالسرعة الكافية.
الفكرة: خلّي الكمبيوتر يتعلّم "النمط" مو "القائمة"
بدل ما نحفظ قائمة مواقع سيئة، ليش ما نعلّم نموذج تعلم آلي يفهم الصفات المشتركة بين المواقع المزيّفة؟ زي:
- هل الموقع يستخدم شهادة أمان (SSL) صحيحة؟
- هل الروابط جوه الصفحة توجّه لمكان غريب؟
- هل عمر الدومين قديم ولا جديد جدًا؟
التجربة
استخدمت مجموعة بيانات جاهزة من UCI فيها 11,055 موقع حقيقي، متصنّفين (مزيّف / حقيقي)، ومعاهم 30 خاصية توصف كل موقع.
جرّبت 3 خوارزميات تعلم آلي مختلفة:
الخوارزميةالدقةالانحدار اللوجستي (بسيط)92.45%الغابة العشوائية (Random Forest)96.70% 🏆آلة المتجهات الداعمة (SVM)94.71%
أكثر شيء فاجأني
لما حللت "أي خاصية أهم" بالنسبة للنموذج، طلع إن حالة شهادة SSL وروابط الصفحة الداخلية هما أقوى مؤشرين — بفارق كبير عن باقي الـ30 خاصية.
ليش؟ لأن غالبًا المحتال:
- ما يقدر يحصل شهادة SSL صحيحة لموقع مزيّف
- ينسخ تصميم الموقع الأصلي، فالروابط جواه توجّه رجوع للموقع الحقيقي بالغلط
النموذج اكتشف هذا النمط لوحده، بدون ما أقوله صراحة "ركّز على SSL".
الدرس المستفاد
أكبر شي تعلّمته: مو لازم تكون خبير عشان تبدأ. البيانات كانت جاهزة، الأدوات (Python + scikit-learn) مجانية ومفتوحة، والخطوات واضحة خطوة بخطوة. اللي احتجته الحقيقي كان الصبر والاستمرارية.
الكود الكامل والتفاصيل التقنية متاحة على GitHub:
🔗 github.com/eln2mac-has/phishing-detection-ml
لو عندك سؤال أو تحب تجرب نفس الفكرة، اكتبلي في التعليقات 👇
التعليقات