مبادئ الكشف بوصفه شيفرة
التعامل مع عمليات الكشف كما نتعامل مع البرمجيات.
مبادئ الكشف بوصفه شيفرة درس مجاني في Cyber Security Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cyber Security Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cyber Security Academy 4 دروس في المجموع.
سبب استخدام الكشف بوصفه كودًا
يطبّق Detection-as-Code (DaC) ممارسات هندسة البرمجيات على عمليات الكشف الأمني. فبدلًا من أن يحرّر المحللون القواعد يدويًا داخل وحدة تحكم SIEM، تُحفظ عمليات الكشف في ملفات نصية ضمن نظام للتحكم في الإصدارات، وتُنشر عبر مسار تنفيذ.
والفوائد ملموسة:
- تغييرات قابلة للمراجعة عبر طلبات السحب
- عمليات نشر قابلة لإعادة الإنتاج عبر البيئات
- منطق قابل للاختبار قبل وصوله إلى الإنتاج
- سجل قابل للتدقيق يوضح من غيّر ماذا ولماذا
يصبح الكشف أثرًا برمجيًا يمكنك مقارنته والتراجع عنه وتحليله، مثل أي كود آخر.
عمليات الكشف بوصفها ملفات ذات إصدارات
يُخزَّن كل كشف في ملف مستقل، عادةً بصيغة YAML أو بلغة استعلام خاصة بالمورّد، ويُحفظ في مستودع Git. ويعكس تخطيط المستودع طريقة تنظيم تغطيتك.
يفصل هيكل شائع القواعد حسب المنصة والتكتيك:
detections/
windows/
credential_access/
lsass_memory_dump.yml
execution/
suspicious_powershell.yml
cloud/
aws/
root_account_usage.yml
tests/
windows/
lsass_memory_dump_test.ymlمراجعة طلبات السحب
يمر كل كشف جديد أو معدّل عبر طلب سحب. ويراجع مهندس آخر المنطق، واحتمال الإيجابيات الكاذبة، وربط ATT&CK قبل دمجه.
ويطرح المراجعون الأسئلة التالية:
- هل يتوافق المنطق مع التهديد الموصوف؟
- ما النشاط المشروع الذي قد يؤدي إلى تشغيل هذا الكشف؟
- هل درجة الخطورة ومرجع ATT&CK صحيحان؟
- هل تغطي الاختبارات الإيجابيات الحقيقية والكاذبة؟
يكشف هذا الأسلوب أخطاءً قد يفوتها محلل يعمل منفردًا على SIEM في الساعة الثانية صباحًا.
التحقق بالتكامل المستمر
يعمل مسار التكامل المستمر تلقائيًا عند كل عملية دفع. ويفرض بوابات جودة قبل السماح بدمج القاعدة.
المراحل المعتادة في CI لمستودع يستند إلى Sigma:
# .github/workflows/validate.yml (excerpt)
steps:
- name: Lint Sigma syntax
run: sigma check ./detections
- name: Validate against schema
run: sigma check --validators all ./detections
- name: Run unit tests
run: pytest tests/النشر الآلي
بعد الدمج، تحوّل مهمة نشر القواعد المحمولة إلى لغة الاستعلام المستهدفة، ثم تدفعها إلى SIEM أو EDR عبر واجهة API.
بالنسبة إلى Sigma، تشغّل عادةً محوّلًا مثل sigma convert مع واجهة خلفية تلائم منصتك (Splunk، Elastic، Microsoft Sentinel). ثم يحمّل مسار التنفيذ عمليات البحث المحفوظة أو القواعد التحليلية الناتجة.
لا ينسخ أي شخص الاستعلامات ويلصقها في وحدة تحكم. وتتطابق الحالة المنشورة دائمًا مع ما هو موجود في main.
sigma convert -t splunk -p splunk_windows \
detections/windows/execution/suspicious_powershell.ymlاختبار عمليات الكشف
الكشف الذي لا تدعمه اختبارات ليس سوى تخمين. يقرن DaC كل قاعدة ببيانات اختبار: عينات سجلات ينبغي أن تؤدي إلى تشغيلها (إيجابيات حقيقية)، وعينات سليمة ينبغي ألا تؤدي إلى تشغيلها (إيجابيات كاذبة).
تُشغّل الاختبارات في CI، لذا يفشل البناء قبل الدمج إذا تسبب تغيير ما في تقليص التغطية أو إعادة الضوضاء. وهذا أكبر مصدر للثقة عند إعادة هيكلة القواعد على نطاق واسع.
test:
- log: { Image: 'C:\\Windows\\System32\\rundll32.exe', CommandLine: 'rundll32 javascript:...' }
expected: match
- log: { Image: 'C:\\Windows\\System32\\rundll32.exe', CommandLine: 'rundll32 shell32.dll,Control_RunDLL' }
expected: no_matchبيانات القاعدة الوصفية ودورة حياتها
تعامل مع البيانات الوصفية باعتبارها عنصرًا أساسيًا. يسجّل كل كشف حالته أثناء نضوجه عبر دورة الحياة:
experimental— كُتب حديثًا وتتم مراقبته عن كثبtest— قيد التشغيل، لكنه لم يكتسب الثقة بعد لإصدار التنبيهاتstable— مُثبت وذو معدل منخفض من الإيجابيات الكاذبةdeprecated— استُبدل أو أُحيل إلى التقاعد
يتيح تتبع الحالة في الملف ترقية القواعد وخفضها وإحالتها إلى التقاعد بصورة مدروسة، بدلًا من ترك المنطق القديم عالقًا في الإنتاج.
قابلية النقل بين الواجهات الخلفية
تتمثل إحدى أهم مزايا DaC في كتابة منطق الكشف مرة واحدة بتنسيق مستقل عن المورّد، ثم ترجمته إلى العديد من الواجهات الخلفية. وتُعد Sigma المعيار الفعلي لعمليات الكشف المستندة إلى السجلات.
يمكن لملف القاعدة نفسه استهداف Splunk SPL وElastic Lucene/EQL وMicrosoft Sentinel KQL وغيرها، من خلال عمليات ربط الحقول الخاصة بكل مسار تنفيذ. وبذلك تتجنب إعادة كتابة الفكرة نفسها خمس مرات، كما تتجنب الارتهان لمورّد واحد.
sigma convert -t elasticsearch rule.yml
sigma convert -t microsoft365defender rule.yml
sigma convert -t splunk rule.ymlمسارات ربط الحقول
تسمّي مصادر السجلات المختلفة البيانات نفسها بطرق مختلفة. يستخدم حدث إنشاء عملية في Sysmon الحقل Image، بينما قد يستخدم سجل Windows Security الحقل NewProcessName. وتعمل مسارات المعالجة على سد هذه الفجوة.
تحوّل المسارات أسماء حقول Sigma العامة إلى الحقول الدقيقة التي تستخدمها بياناتك، بحيث تُربط القاعدة المنطقية نفسها بسلاسة بأي مخطط يستوعبه SIEM لديك. ويعني الحفاظ على المسارات مركزيًا أن تغيير المخطط يُصلح مرة واحدة، لا في كل قاعدة.
sigma convert -t splunk -p sysmon rule.ymlالبيئات والترقية
مثل كود التطبيقات، تنتقل عمليات الكشف عبر البيئات قبل وصولها إلى الإنتاج. ويكون المسار المعتاد من التطوير إلى التجهيز ثم الإنتاج.
- التطوير — إنشاء القاعدة وتشغيل اختبارات الوحدة في CI
- التجهيز — النشر مقابل نسخة من بيانات القياس عن بُعد الحقيقية في وضع التدقيق
- الإنتاج — الترقية بعد أن يصبح معدل الإيجابيات الكاذبة مقبولًا
الترقية خطوة مدروسة وخاضعة للمراجعة، مرتبطة بحالة دورة حياة القاعدة، وليست نتيجة عرضية للدمج. ويحاكي هذا النشر المرحلي منهجية التنبيه ثم الحظر المستخدمة مع عمليات الكشف المضمّنة.
التغطية والمقاييس
بما أن عمليات الكشف عبارة عن برمجيات، يمكنكم قياس التغطية برمجيًا. اربطوا كل قاعدة بتقنيات MITRE ATT&CK وأنشئوا خريطة حرارية توضّح ما تغطّونه وما لا تغطّونه.
مقاييس مفيدة لمتابعتها بمرور الوقت:
- التقنيات المغطاة مقارنةً بإجمالي التقنيات في نموذج التهديد لديكم
- معدل الإيجابيات الكاذبة لكل قاعدة
- متوسط الزمن من طرح فكرة القاعدة إلى وصولها إلى بيئة الإنتاج
- عدد القواعد في كل حالة من حالات دورة الحياة
تحوّل هذه الأرقام هندسة الكشف من مجرد انطباعات إلى برنامج مُدار.
اختبار سريع
اختبروا مدى فهمكم لأساسيات الكشف كبرمجية.
مراجعة
يضيف الكشف كبرمجية صرامة هندسة البرمجيات إلى عمليات الكشف:
- توجد القواعد في ملفات ذات إصدارات داخل Git
- تمر التغييرات عبر مراجعة طلبات السحب
- ينفّذ CI عمليات الفحص والتحقق والاختبارات تلقائيًا
- تُنشر القواعد المدمجة عبر خط أنابيب، مما يحافظ على تزامن بيئة الإنتاج مع main
- تحمي الاختبارات من الإيجابيات الكاذبة والتراجعات
- تتيح قابلية النقل (Sigma + خطوط الأنابيب) توجيه قاعدة واحدة إلى العديد من الأنظمة الخلفية
- تجعل البيانات الوصفية ودورة الحياة والمقاييس الكشفَ برنامجًا مُدارًا
بعد ذلك، ستكتبون القواعد المحمولة نفسها باستخدام Sigma.
الأسئلة الشائعة
هل درس «مبادئ الكشف بوصفه شيفرة» مجاني؟
نعم — نص درس «مبادئ الكشف بوصفه شيفرة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cyber Security Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Cyber Security Academy 4 دروس في المجموع.
ماذا ستتعلم في «مبادئ الكشف بوصفه شيفرة»؟
التعامل مع عمليات الكشف كما نتعامل مع البرمجيات. تتمرن على Cyber Security Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Cyber Security Academy؟
لا تُشترط خبرة سابقة. Cyber Security Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «مبادئ الكشف بوصفه شيفرة»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Cyber Security Academy هذا؟
نعم. كل درس في Cyber Security Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- مبادئ الكشف بوصفه شيفرة
- كتابة قواعد Sigma
- الربط مع MITRE ATT&CK
- اختبار عمليات الكشف وضبطها