كتابة قواعد Sigma
صياغة قواعد كشف قابلة للنقل.
كتابة قواعد Sigma درس مجاني في Cyber Security Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cyber Security Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cyber Security Academy 4 دروس في المجموع.
ماهية Sigma
إن Sigma تنسيق توقيع عام ومحايد عن المورّدين لعمليات الكشف المستندة إلى السجلات. تكتبون منطق الكشف مرة واحدة بصيغة YAML، ثم تحوّلونه إلى SPL في Splunk، واستعلامات Elastic، وKQL في Sentinel، والعديد من الأنظمة الخلفية الأخرى.
تؤدي Sigma في مجال الكشف في السجلات الدور الذي تؤديه YARA في مجال الكشف عن الملفات: لغة مشتركة محمولة. فهي تتيح للفرق مشاركة القواعد علنًا وتجنّب إعادة كتابة الفكرة نفسها لكل SIEM.
بنية القاعدة
قاعدة Sigma مستند YAML يتضمن أقسامًا مطلوبة وأخرى اختيارية. والعناصر الأساسية هي title وlogsource وdetection.
title: Suspicious PowerShell Encoded Command
id: 7e3f3c1a-1f2b-4c3d-9a8b-1234567890ab
status: experimental
logsource:
category: process_creation
product: windows
detection:
selection:
Image|endswith: '\\powershell.exe'
CommandLine|contains: '-enc'
condition: selection
level: highكتلة logsource
تخبر كتلة logsource المحوّلَ بالسجلات التي تنطبق عليها القاعدة. وهي لا تستعلم عن البيانات مباشرةً؛ بل تحدد تعيين الحقول والفهرس المناسبين أثناء التحويل.
المفاتيح الشائعة:
product— مثل windows وlinux وawscategory— مثل process_creation وnetwork_connection وfile_eventservice— مثل sysmon وsecurity وsshd
اختاروا أكثر تركيبة تحديدًا تدعمها بياناتكم، حتى يعيّن خط الأنابيب الحقول على النحو الصحيح.
التحديدات ومعرّفات البحث
داخل detection تعرّفون واحدًا أو أكثر من معرّفات البحث المسماة (التحديدات). وكل واحد منها خريطة لمعايير الحقول والقيم. وتُربط الحقول المتعددة داخل التحديد الواحد بالشرط المنطقي AND.
في هذه الحالة، يجب أن يكون الشرطان صحيحين حتى يطابق selection.
detection:
selection:
EventID: 4688
NewProcessName|endswith: '\\whoami.exe'
condition: selectionمعدّلات الحقول
تضبط المعدّلات كيفية مطابقة القيمة. وتُضاف إلى اسم الحقل بعد علامة الأنبوب.
contains— مطابقة جزء من النصstartswith/endswith— مطابقة مقيدة بالبداية أو النهايةall— يجب أن تكون كل قيمة في القائمة موجودةre— تعبير نمطيbase64offset|contains— مطابقة أجزاء نصية مشفّرة بترميز base64
يمكن ربط المعدّلات من اليسار إلى اليمين، وتُطبّق بالترتيب نفسه.
detection:
selection:
CommandLine|contains|all:
- 'Invoke-WebRequest'
- 'DownloadString'
condition: selectionالقوائم والخرائط بوصفها OR / AND
تحكم قاعدتان المنطق داخل التحديد:
- تكون قائمة القيم تحت حقل واحد بمنطق OR — إذ تكفي مطابقة أي قيمة.
- تكون خريطة الحقول المتعددة بمنطق AND — إذ يجب أن تتطابق جميع الحقول.
في المثال أدناه، يطابق Image أيًا من الملفين التنفيذيين، كما يجب أن تساوي قيمة User أيضًا SYSTEM.
detection:
selection:
Image|endswith:
- '\\net.exe'
- '\\net1.exe'
User: 'SYSTEM'
condition: selectionتعبير condition
تجمع condition التحديدات المسماة باستخدام المنطق البولياني. وهنا تعبّرون عن عوامل التصفية والاستثناءات.
تشمل العوامل and وor وnot والأقواس، بالإضافة إلى تجميعات مثل count(). ويمكنكم أيضًا استخدام 1 of selection* / all of selection* للإشارة إلى مجموعات من المعرّفات اعتمادًا على بادئتها.
detection:
selection:
EventID: 4625
timeframe: 5m
condition: selection | count() by SourceIp > 10تصفية الضجيج
لكبت النشاط المعروف بأنه سليم، عرّفوا معرّفًا منفصلًا واطرحوه في الشرط باستخدام not. يحافظ ذلك على وضوح منطق النشاط الضار ويجعل الاستثناءات صريحة.
في هذه الحالة، تُطلق القاعدة عند إنشاء rundll32 اتصالًا شبكيًا، باستثناء عملية تحديث سليمة ومعروفة.
detection:
selection:
Image|endswith: '\\rundll32.exe'
filter_legit:
ParentImage|endswith: '\\MicrosoftEdgeUpdate.exe'
condition: selection and not filter_legitالبيانات الوصفية للفرز الأولي
إلى جانب المنطق، تتضمن القواعد الجيدة بيانات وصفية تساعد المستجيبين على التصرف بسرعة، وتساعد المهندسين على الحفاظ على التغطية.
level— معلوماتي، منخفض، متوسط، مرتفع، حرجtags— تقنيات ATT&CK، مثل attack.t1059.001falsepositives— المحفزات السليمة المعروفةreferences— تقارير التهديدات أو الوثائقauthorوdate
تستغرق كتابة هذه الحقول دقائق، لكنها توفر ساعات أثناء وقوع الحادث.
قواعد الارتباط
لا تستطيع القواعد التي تتعامل مع حدث واحد التعبير عن الهجمات متعددة الخطوات. إذ تجمع قواعد الارتباط في Sigma عدة قواعد أساسية عبر الزمن لاكتشاف التسلسلات والأنماط.
تشمل الأنواع المدعومة event_count (عدد N من المطابقات ضمن نافذة زمنية)، وvalue_count (القيم المميزة، مثل عدد كبير من المستخدمين الذين فشل تسجيل دخولهم)، وtemporal (القاعدة A ثم القاعدة B). ويتيح لكم ذلك، مثلًا، اكتشاف تسجيل دخول ناجح مباشرةً بعد موجة من محاولات الدخول الفاشلة.
name: bruteforce_then_success
correlation:
type: temporal
rules: [failed_logins, successful_login]
group-by: [SourceIp, TargetUser]
timespan: 10mالتحويل إلى نظام خلفي
باستخدام sigma-cli، تحوّلون القاعدة إلى لغة الاستعلام المستهدفة. ويعيّن خط المعالجة أسماء حقول Sigma إلى المخطط الحقيقي لديكم.
يكون الناتج استعلامًا جاهزًا للنشر يمكنكم لصقه أو دفعه عبر واجهة API.
sigma convert -t splunk -p sysmon \
-f default rule.yml
# Example output (Splunk SPL):
# Image="*\\powershell.exe" CommandLine="*-enc*"اختبار سريع
تحققوا من مدى استيعابكم لمنطق الكشف في Sigma.
مراجعة
يمكنكم الآن تأليف قواعد Sigma محمولة:
- يحدد
logsourceالسجلات وتعيينات الحقول التي تنطبق - تكون التحديدات معايير مسماة للحقول والقيم (الحقول = AND، وقوائم القيم = OR)
- تضبط المعدّلات مثل contains وendswith وall وre كيفية المطابقة
- يربط
conditionالتحديدات باستخدام and/or/not وعوامل التصفية والتجميعات - تطرح معرّفات التصفية المنفصلة الضجيج المعروف بأنه سليم
- تسرّع البيانات الوصفية (level وtags وfalsepositives) عملية الفرز الأولي
- يحوّل
sigma convertالقاعدة إلى النظام الخلفي الخاص بـ SIEM لديكم
بعد ذلك، ستربطون هذه القواعد بتقنيات الخصوم باستخدام MITRE ATT&CK.
الأسئلة الشائعة
هل درس «كتابة قواعد Sigma» مجاني؟
نعم — نص درس «كتابة قواعد Sigma» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cyber Security Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Cyber Security Academy 4 دروس في المجموع.
ماذا ستتعلم في «كتابة قواعد Sigma»؟
صياغة قواعد كشف قابلة للنقل. تتمرن على Cyber Security Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Cyber Security Academy؟
لا تُشترط خبرة سابقة. Cyber Security Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «كتابة قواعد Sigma»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Cyber Security Academy هذا؟
نعم. كل درس في Cyber Security Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.