كان المحتالون يرقصون بين قواعدنا: كيف أنقذتنا ‘نماذج اكتشاف الشذوذ’ من جحيم الاحتيال؟

فنجان قهوة بارد وليلةٌ لن أنساها

أذكر تلك الليلة جيداً، كانت ليلة ثلاثاء هادئة في المكتب. كنتُ وفريق العمل في إحدى الشركات الناشئة في قطاع التكنولوجيا المالية (FinTech) نحتفل بإطلاق ميزة جديدة. الأجواء كانت مريحة، والقهوة ساخنة، والمعنويات عالية. كنا نعتقد أن نظامنا لمكافحة الاحتيال، المبني على مجموعة من القواعد المنطقية (Rule-based system)، صخرة صمّاء لا يمكن اختراقها. كانت قواعدنا بسيطة وواضحة: “إذا تجاوزت المعاملة مبلغ X، أوقفها للمراجعة”، “إذا تمت 3 معاملات فاشلة من نفس البطاقة، احظرها”، وهكذا.

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

لكن الشعور بالقلق لم يفارقني. تابعنا المراقبة، وبعد ساعة، تحول الشك إلى يقين. كانت تلك المعاملات الصغيرة والمتفرقة جزءاً من هجوم منسق وذكي. كان المحتالون، يا جماعة الخير، يختبرون آلاف البطاقات المسروقة بمبالغ تافهة (0.50$، 1.00$) ليعرفوا أيها يعمل وأيها لا. كانوا “يرقصون” بذكاء بين ثغرات قواعدنا البسيطة. قضينا بقية الليلة في إيقاف يدوي كارثي للعمليات، وحظر آلاف الحسابات، والتعامل مع تداعيات ما حدث. كانت تلك الليلة هي التي أدركنا فيها أن أسلحتنا القديمة لم تعد تجدي نفعاً في هذه الحرب. هنا بدأت رحلتنا الحقيقية مع “اكتشاف الشذوذ” (Anomaly Detection).

لماذا تفشل الأنظمة القائمة على القواعد (Rule-Based)؟

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

  • ثابتة وغير مرنة: القواعد لا تتطور من تلقاء نفسها. إذا اكتشف المحتالون القاعدة، يمكنهم بسهولة التحايل عليها.
  • تولد إنذارات كاذبة بكثرة (False Positives): قد تقوم بحظر معاملة شرعية لمجرد أنها تطابق قاعدة صارمة، مما يزعج العملاء المخلصين.
  • عاجزة عن اكتشاف “المجهول”: هي مصممة لاكتشاف أنماط الاحتيال المعروفة فقط. ماذا عن أنواع الاحتيال الجديدة والمبتكرة التي لم تفكر فيها بعد؟ هنا تكمن الكارثة.
  • صيانتها كابوس: مع نمو العمل، تزداد القواعد تعقيداً وتداخلاً، وتصبح إدارتها وتحديثها مهمة شبه مستحيلة.

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

مرحباً بك في عالم اكتشاف الشذوذ (Anomaly Detection)

ببساطة، اكتشاف الشذوذ هو تقنية تعلم آلة (Machine Learning) تركز على تحديد البيانات أو الأحداث التي تختلف بشكل كبير عن “الوضع الطبيعي”. بدلاً من البحث عن “السيء” المعروف، هي تبحث عن “الغريب” أو “غير المتوقع”.

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

كيف يعمل هذا السحر في التكنولوجيا المالية؟

يتعلم النموذج “السلوك الطبيعي” لكل مستخدم:

  • ما هو متوسط حجم معاملاته؟
  • من أي الأماكن الجغرافية يشتري عادةً؟
  • في أي أوقات من اليوم يكون نشطاً؟
  • ما هي وتيرة إنفاقه؟

عندما تأتي معاملة جديدة، يقارنها النموذج بهذا السلوك الطبيعي المتعلَّم. إذا كانت المعاملة “شاذة” بشكل كبير – مثلاً، معاملة بمبلغ ضخم من بلد لم يزره المستخدم من قبل في الساعة 3 صباحاً – يقوم النموذج برفع علامة حمراء فوراً.

أشهر تقنيات اكتشاف الشذوذ وأكثرها عملية

هناك عدة طرق لتطبيق اكتشاف الشذوذ، ولكن دعونا نركز على النهج الأكثر عملية وفعالية في سيناريوهات الاحتيال، وهو التعلم غير الخاضع للإشراف (Unsupervised Learning)، لأنه لا يتطلب بيانات مصنفة مسبقاً (fraud/not-fraud)، وهو ما يجعله مثالياً لاكتشاف أنواع جديدة من الاحتيال.

1. غابة العزل (Isolation Forest)

هذه هي الخوارزمية التي كانت بطل قصتنا الحقيقي. هي خوارزمية بسيطة بشكل خادع لكنها قوية بشكل لا يصدق. فكرتها الأساسية هي أن “البيانات الشاذة يسهل عزلها”.

تخيل أن لديك غرفة مليئة بالناس (نقاط البيانات). معظم الناس يقفون في مجموعات كبيرة في المنتصف. لكن هناك شخصاً واحداً يقف وحيداً في الزاوية (نقطة شاذة). سيكون من الأسهل والأسرع بكثير رسم خط يفصل هذا الشخص الوحيد عن البقية، مقارنة بمحاولة فصل شخصين داخل مجموعة كبيرة.

خوارزمية Isolation Forest تفعل ذلك على نطاق واسع، حيث تبني الكثير من “أشجار القرار” العشوائية، والنقاط التي يتم عزلها في عدد قليل من الخطوات (تقسيمات) تعتبر على الأرجح شاذة.

نصيحة أبو عمر العملية:

ابدأ دائماً بـ Isolation Forest. إنها سريعة، تستهلك ذاكرة قليلة، وتعمل بشكل ممتاز مع مجموعات البيانات الكبيرة، ولا تتطلب الكثير من الضبط المعقد لتعطيك نتائج أولية جيدة.

مثال بالكود (Python)

لنفترض أن لدينا بيانات معاملات بسيطة (المبلغ، وقت المعاملة). إليك كيف يمكننا استخدام `scikit-learn` لتطبيق Isolation Forest:


import numpy as np
import pandas as pd
from sklearn.ensemble import IsolationForest
import matplotlib.pyplot as plt

# 1. إنشاء بيانات معاملات وهمية
# معظم المعاملات طبيعية (مبالغ صغيرة، في أوقات معقولة)
np.random.seed(42)
normal_transactions = np.random.rand(500, 2)
normal_transactions[:, 0] = normal_transactions[:, 0] * 100  # Amount up to 100
normal_transactions[:, 1] = normal_transactions[:, 1] * 24   # Time of day (0-24)

# إضافة بعض المعاملات الشاذة (مبالغ كبيرة جداً أو في أوقات غريبة)
anomalies = np.array([
    [2000, 4],   # Very high amount
    [1500, 2],   # Very high amount
    [50, 23.5]   # Normal amount, but very late time
])

# دمج البيانات
X = np.vstack([normal_transactions, anomalies])
df = pd.DataFrame(X, columns=['amount', 'time_of_day'])

# 2. تدريب نموذج Isolation Forest
# 'contamination' هو تقديرنا لنسبة البيانات الشاذة في العينة
# هذا هو المقبض الذي يمكنك تعديله لزيادة أو تقليل الحساسية
clf = IsolationForest(n_estimators=100, contamination=0.01, random_state=42)
clf.fit(X)

# 3. التنبؤ بالنقاط الشاذة
# -1 يعني شاذة (anomaly), 1 يعني طبيعية (normal)
y_pred = clf.predict(X)
df['anomaly'] = y_pred

# 4. عرض النتائج
print("عدد الشذوذات المكتشفة:", (y_pred == -1).sum())
print(df[df['anomaly'] == -1])

# رسم بياني لتوضيح الفكرة
plt.figure(figsize=(10, 6))
plt.scatter(df['amount'], df['time_of_day'], c=df['anomaly'], cmap='viridis')
plt.title('اكتشاف الشذوذ في المعاملات المالية')
plt.xlabel('مبلغ المعاملة')
plt.ylabel('وقت المعاملة (0-24)')
plt.show()

كما ترى، الكود بسيط نسبياً ولكنه فعال جداً في تحديد النقاط التي لا تنتمي إلى السرب.

2. تقنيات أخرى (للمتقدمين)

  • Local Outlier Factor (LOF): تقيس الكثافة المحلية لنقطة البيانات مقارنة بجيرانها. إذا كانت كثافة النقطة أقل بكثير من جيرانها، فهي تعتبر شاذة.
  • Autoencoders (شبكات عصبونية): هذه تقنية أكثر تقدماً من عالم التعلم العميق. تقوم ببناء شبكة عصبونية تتعلم كيفية ضغط وإعادة بناء البيانات “الطبيعية”. عندما تحاول إعادة بناء معاملة “شاذة”، يكون خطأ إعادة البناء (Reconstruction Error) عالياً جداً، مما يشير إلى أنها معاملة مشبوهة.

نصائح من خبرة أبو عمر في الميدان

تطبيق النموذج ليس سوى البداية. إليك بعض الدروس التي تعلمتها بالطريقة الصعبة:

1. البيانات هي الذهب، وهندسة الميزات هي المنجم

جودة النموذج تعتمد كلياً على جودة البيانات التي تغذيه بها. لا تكتفِ بالمبلغ والوقت. فكر في إنشاء “ميزات” (Features) أكثر ذكاءً:

  • معدل إنفاق المستخدم في آخر 24 ساعة / 7 أيام.
  • الوقت المنقضي منذ آخر معاملة ناجحة.
  • هل هذه أول معاملة مع هذا التاجر؟
  • المسافة بين الموقع الجغرافي لهذه المعاملة وآخر معاملة.
  • نسبة مبلغ المعاملة الحالية إلى متوسط مبلغ معاملات المستخدم.

كلما كانت ميزاتك أذكى، كان نموذجك أقوى.

2. السرعة هي كل شيء… تقريباً

في عالم الاحتيال، يجب أن يكون الاكتشاف في الوقت الفعلي (Real-time). هذا يعني أن البنية التحتية التقنية الخاصة بك يجب أن تكون قادرة على حساب الميزات وتشغيل النموذج في أجزاء من الثانية. هذا قد يتطلب استخدام تقنيات مثل Kafka لتدفق البيانات وخدمات استضافة النماذج (Model Serving) السريعة.

3. لا تنسَ الحلقة البشرية (Human-in-the-loop)

النموذج ليس قاضياً، بل هو مساعد ذكي. لا تقم برفض المعاملات تلقائياً بناءً على قرار النموذج فقط (على الأقل في البداية). أفضل نهج هو:

  1. النموذج يكتشف معاملة شاذة ويعطيها “درجة خطورة”.
  2. المعاملات ذات الخطورة العالية جداً يمكن حظرها مؤقتاً.
  3. المعاملات ذات الخطورة المتوسطة تُرسل إلى فريق من المحللين البشريين لمراجعتها.
  4. وهذا هو الجزء الأهم: قرار المحلل (هل كانت احتيالاً حقاً أم إنذاراً كاذباً؟) يجب أن يعاد إدخاله في النظام لتحسين النموذج وتدريبه باستمرار.

الخلاصة: من الدفاع إلى الهجوم 🚀

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

الطريق ليس مفروشاً بالورود، ويتطلب فهماً عميقاً للبيانات والعمل. لكن العائد يستحق كل هذا العناء: نظام أكثر ذكاءً، مرونةً، وقدرة على حماية عملك وعملائك من محتالي اليوم والغد. لا تنتظر حتى تحترق أصابعك بنار الاحتيال كما حدث معنا. ابدأ اليوم باستكشاف قوة تعلم الآلة، وابدأ بسيطاً بخوارزمية مثل Isolation Forest. الزبدة، كما نقول، هي أن تتوقف عن بناء جدران أعلى، وتبدأ في توظيف حراس أذكى.

أبو عمر

سجل دخولك لعمل نقاش تفاعلي

كافة المحادثات خاصة ولا يتم عرضها على الموقع نهائياً

آراء من النقاشات

لا توجد آراء منشورة بعد. كن أول من يشارك رأيه!

آخر المدونات

البنية التحتية وإدارة السيرفرات

كانت بنيتنا التحتية قصراً من ورق: كيف أنقذنا Terraform من جحيم “النقرات اليدوية” والكوارث الحتمية؟

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

24 مايو، 2026 قراءة المزيد
ادارة الفرق والتنمية البشرية

من الخوف إلى الإبداع: كيف أنقذت “السلامة النفسية” فريقي من شلل الصمت القاتل؟

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

24 مايو، 2026 قراءة المزيد
​معمارية البرمجيات

كانت واجهاتنا شبكة عنكبوت: كيف أنقذ نمط ‘بوابة الواجهة البرمجية’ (API Gateway) مشروعنا من الفوضى؟

واجهات المستخدم تتحدث مع عشرات الخدمات المصغرة؟ فوضى عارمة! في هذه المقالة، أسرد لكم حكايتي مع هذه المشكلة وكيف كان نمط 'بوابة الواجهة البرمجية' (API...

23 مايو، 2026 قراءة المزيد
ذكاء اصطناعي

كان بحثنا يفهم الكلمات لا المعاني: كيف أنقذتنا ‘التضمينات المتجهة’ (Vector Embeddings) من جحيم البحث الحرفي؟

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

23 مايو، 2026 قراءة المزيد
خوارزميات

كان بحث ‘الأماكن القريبة’ يمسح الكوكب بأكمله: كيف أنقذتنا خوارزمية ‘Geohash’ من جحيم استعلامات المسافة؟

حكاية من أرض الواقع عن يوم كاد فيه تطبيقنا أن ينهار بسبب استعلام بسيط عن "الأماكن القريبة". اكتشفوا كيف حولت خوارزمية Geohash هذا الكابوس إلى...

23 مايو، 2026 قراءة المزيد
البودكاست