كل ما تريد معرفته عن قواعد سيجما. الجزء 3

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



السمات مع المعلومات الوصفية



العنوان (سمة العنوان)



يصف العنوان بإيجاز جوهر القاعدة. يصل طول حقل النص هذا إلى 256 حرفًا. هنا يجب أن تقدم الوصف الأقصر والأكثر رحابة. اتبع هذه الإرشادات:



  • لا تستخدم تراكيب مثل "يكتشف ..." كعنوانك. وبدون ذلك يتضح أن القاعدة تكتشف شيئًا.
  • استخدم عناوين واسعة لا تزيد عن 50 حرفًا.
  • اكتب أي تفسيرات وتعليقات مهمة في حقل الوصف (سننظر فيه أكثر).


وصف مفصل وتفسيرات إضافية للقاعدة (سمة الوصف)



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



معرّف فريد للقاعدة ومعرّفات القواعد ذات الصلة (المعرّف ، نسبي)



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



يمكن إنشاء المعرف الفريد بطرق مختلفة ، أسهل طريقة في Windows هي تشغيل كود PowerShell التالي:



PS C:\> "id: $(New-Guid)"                               
id: b2ddd389-f676-4ac4-845a-e00781a48e5f


في نظام التشغيل المستند إلى Linux kernel ، يمكنك استخدام الأداة المساعدة uuidgen:



$ echo “id: `uuidgen`”
id: b2ddd389-f676-4ac4-845a-e00781a48e5f


عند إجراء تغييرات مهمة على قاعدة ما ، يجب تغيير معرفها. المواقف التي يتم فيها إنشاء معرف جديد:



  • تغيير منطق القاعدة ؛
  • وراثة قاعدة من قاعدة موجودة مع الحفاظ على القاعدة الأصلية (ينطبق هذا أيضًا على حالة تحسين القاعدة)
  • دمج القواعد.


بالنسبة لحالات الوراثة ودمج القواعد ، هناك معرّف خاص مرتبط بأربع قيم محتملة من النوع (سمة النوع).



لنفكر في المواقف الافتراضية التي قد نجد فيها أنه من المفيد استخدام المعرف ذي الصلة. من أجل الوضوح ، بدلاً من المعرفات الطويلة في تنسيق UUID ، سنكتب ببساطة X ، Y ، Z.



في الحالة الأولى ، القاعدة الجديدة (المعرف: X) مشتقة من القاعدة الموجودة (المعرف: Y). يمكن أن يحدث هذا إذا قمنا بتحسين منطق العمل في قاعدة جديدة ، ولكن لسبب ما نريد الاحتفاظ بالقاعدة القديمة. وبالتالي ، فإن قاعدتنا لها قاعدة أصلية يتم حفظها ويمكن استخدامها في المستقبل:







الحالة الثانية شبيهة بالحالة الأولى باستثناء حقيقة واحدة: القاعدة القديمة لا تحفظ. أي أننا أعدنا كتابة القاعدة بشكل جذري ، وكان تعيين معرف جديد مطلوبًا ، والمعرف القديم عفا عليه الزمن (عفا عليه الزمن) ولن يتم استخدامه بعد الآن. لذلك ، كان لدينا قاعدة (المعرف: Y) أعدنا كتابتها ، وقررنا أننا لم نعد بحاجة إليها. تلقت القاعدة الجديدة معرفًا (المعرف: X). في قاعدة سيجما ، سيبدو موقف مشابه كالتالي:







في الحالة الثالثة ، ضع في اعتبارك الموقف الذي ظهرت فيه قاعدة جديدة نتيجة لدمج قاعدتين أو أكثر من القواعد الحالية. القاعدة الجديدة (المعرف: X) هي نتيجة دمج قاعدتين (المعرف: Y ، Z). من المهم ملاحظة أنه يتم الاحتفاظ بالقواعد الأصلية التي تم تضمينها في الدمج ويمكن استخدامها بشكل أكبر. في قاعدة سيجما ، قد يبدو الموقف مشابهًا كما يلي: على







الرغم من عدم تحديد ترتيب القواعد أثناء الدمج ، فقد قمنا بترقيمها في التعليقات للتوضيح.



النوع الرابع هو إعادة التسمية. كما يوحي الاسم ، يتم تطبيق هذا النوع من الارتباط بين المعرفات عند إعادة تسمية قاعدة قديمة. في الواقع ، لا يتم استخدام هذا النوع في الممارسة. كمثال على الاستخدام ، استشهد المؤلفون بحالة تغيير مخطط إنشاء المعرفات (نتذكر أن UUID ليس مخطط التسمية الوحيد الممكن).



حالة استعداد القاعدة (سمة الحالة)



وفقًا للمواصفات ، يمكن أن تكون القاعدة في إحدى الحالات الثلاث:



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


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



الترخيص الذي يتم توزيع القاعدة بموجبه (سمة الترخيص)



الترخيص الذي يتم توزيع القاعدة بموجبه. جاء هذا المجال من عالم البرمجيات الحرة. نادرًا ما يتم تحديد هذه المعلمة ، ولكن إذا تم تحديدها ، فيجب أن تتوافق مع مواصفات معرف SPDX.



منشئو القواعد (سمة المؤلف)



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



روابط للدراسات التي ساعدت في تطوير القاعدة (سمة المراجع)



عند كتابة قواعد Sigma ، من المعتاد تضمين روابط للمقالات الأصلية والتغريدات والأبحاث التي ساعدت أو ألهمت إنشاء القاعدة. بالإضافة إلى التعبير عن الاحترام لعمل شخص آخر ، تساعد هذه الروابط لاحقًا في فهم كيفية عمل القاعدة.



تظهر حقول الأحداث المفيدة للتحليلات عند تشغيل قاعدة (سمة الحقول)



نظرًا لأن مؤلف القاعدة لديه فهم عميق لخوارزمية الهجوم والأحداث التي تم إنشاؤها أثناء تنفيذها ، فيمكنه تحديد قائمة الحقول من الأحداث التي ستساعد مشغل SOC أو موظف آخر في فريق أمن المعلومات على فهم الحادث.



حالات الإيجابيات الكاذبة للقاعدة (صفة الإيجابيات الكاذبة)



يعتبر حقل falsepositives أمرًا غير معتاد بالنسبة لقواعد الكشف. لا يؤثر على مسار التحقق من صحة الحدث بأي شكل من الأشكال ، ولكنه يؤدي شيئين مفيدين:



  • ساعد المستخدم في تحديد ما إذا كان مشغل القاعدة المحدد خطأ.
  • ذكر مطور القاعدة مرة أخرى أنه يمكن تشغيل قاعدته بشكل خاطئ. يمكن أن تساعد هذه الأفكار المطور على كتابة قاعدة أكثر دقة.


العلامات والعلامات المختلفة (سمة العلامات)



عادةً ما يتم استخدام هذا الحقل لعلامات MITER ATT & CK و CAR. نوصي بشدة أن تقوم بتصنيف قاعدتك على الفور ، لأن هذا الترميز يسمح لك بدمج قواعد Sigma مع مشاريع أمان المعلومات الأخرى. ومع ذلك ، فإن التنسيق لا يقصر مؤلفي القواعد على مثل هذه التسميات فقط ، يمكنك وضع أي منها.



مجموعات القواعد



وفقًا لمعيار YAML ، يمكن أن يحتوي ملف واحد (في دفق المصطلحات) على عدة مستندات YAML. يتم تحقيق ذلك بفضل علامة مستند YAML - ثلاث واصلات ("---"). بالنسبة لتنسيق Sigma ، يمكن أن تكون هذه المستندات عبارة عن قواعد Sigma مستقلة أو مستندات إجراءات.



في الحالة الأولى ، يكون كل شيء بسيطًا: يحتوي ملف واحد على قواعد Sigma كاملة مفصولة عن بعضها البعض عن طريق تسمية مستند YAML (مثال على القواعد / الوكيل / proxy_ursnif_malware.yml )



الحالة الثانية أكثر تعقيدًا: يتم التعامل مع مستند YAML كمستند إجراء إذا كانت سمة إجراء المستوى الأعلى تحتوي على إحدى القيم الثلاث التالية:



  • global — , YAML- . action- . : , Sigma- ;
  • reset — , action-;
  • repeat — repeat .


ملاحظة : يمكن أن تظهر سمة الإجراء في أي مكان في القاعدة.



حالة الاستخدام الأكثر شيوعًا لمجموعة من القواعد هي تحديد قواعد Sigma متعددة للأحداث المتشابهة ، مثل Windows Security EventID 4688 و Sysmon EventID 1. يظهر كلا الحدثين كنتيجة لإنشاء العملية ، فلهما مصادر مختلفة فقط. يمكن أن تحتوي مجموعة قواعد سيجما لسيناريو معين على ثلاثة مستندات عمل:



  1. وثيقة عمل عالمية تحدد حقول البيانات الوصفية الشائعة ومؤشرات الكشف.
  2. القاعدة التي تحدد مصدر سجل أحداث أمان Windows والحدث EventID = 4688.
  3. قاعدة تحدد مصدر سجل أحداث Windows Sysmon والحدث EventID = 1.


يمكن أن يكون الحل البديل:



  1. وثيقة عمل عالمية تعرف حقول البيانات الأولية العامة.
  2. Windows Security Event Log ( EventID=4688) .
  3. Action- repeat, logsource EventID , . 2.


action-



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



ملاحظة : إذا كان المستند الحالي يحتوي على سمة الإجراء مع قيمة إعادة التعيين ، فلن تتم إضافة حقول المستند العامة إليها.



منطق العمل مع المستندات العالمية هو كما يلي: بمجرد أن يصادف المحلل اللغوي مستندًا عالميًا (مستند يحتوي على سمة إجراء ذات قيمة عامة) ، فإنه يضيف حقوله إلى مخزن مؤقت خاص وينتقل إلى المستند التالي. دعونا نطلق على هذا المخزن المؤقت الخاص GLOBALYAML ، وسوف يساعد في المستقبل الرجوع إليه في الرسوم البيانية.



مهم: نظرًا لأن حدود المستند يتم تحديدها بواسطة علامة "---" ، فمن المهم وضع هذه العلامات بشكل صحيح في الملف.



في المثال أدناه ، يحتوي مستند YAML الأول على سمة إجراء بالقيمة global. تمتد حدود هذا المستند إلى علامة المستند الأولى. وبالتالي ، تتم كتابة المستند الأول بأكمله في المخزن المؤقت العالمي. ثم يتم إضافة حقول هذا المخزن المؤقت إلى كل مستند لاحق. نتيجة لذلك ، نحصل على قاعدتين في الإخراج. المخطط 1. معالجة قاعدة بسيطة مع التعريف الصحيح لملصقات مستندات YAML ولكن إذا حذفت أو نسيت التسمية الأولى ، فسيتم تضمين جميع حقول YAML DOCUMENT 2 في المستند العام. نتيجة لذلك ، نحصل على قاعدة واحدة فقط مع مجموعة غير صحيحة من معرفات البحث في الإخراج. لذلك ، من المهم جدًا تسمية مستندات YAML بشكل صحيح في مثل هذه القواعد المركبة.



















المخطط 2. معالجة القاعدة السابقة - إذا نسيت وضع الملصق الأول لمستند YAML



. تجدر الإشارة إلى أن المستند العام لا يأتي بالضرورة في البداية. إذا نظرت إلى المخططين السابقين ، فلن تكون دائمًا وثيقة YAML 1. علاوة على ذلك ، لا يجب أن تكون في صيغة المفرد. الرسم البياني التالي يوضح ذلك بوضوح. المخطط 3. معالجة قاعدة تحتوي على خيارات مختلفة لتحديد مستند YAML عالمي لذلك ، فقد درسنا المشكلات المتعلقة بالموضع الصحيح لملصقات مستندات YAML. لقد رأينا أيضًا أنه يمكنك تعيين مستند YAML العالمي بطرق مختلفة باستخدام سمة الإجراء مع القيمة العالمية. بعد ذلك ، لنلقِ نظرة على مخطط تحويل القاعدة باستخدام القيمتين المتبقيتين لسمة الإجراء - إعادة التعيين والتكرار.



















المخطط 4. معالجة قاعدة تحتوي على سمات الإجراء مع قيم إعادة التعيين والتكرار



ماذا يجب أن يقال عن مشروع سيجما



Sigma ليست فقط مجموعة من القواعد المنسقة التي تناولناها في هذه السلسلة.



ركزنا في منشوراتنا على وصف شكل وصياغة القواعد. لكن القواعد ليست سوى نصف المشروع ، والثاني هو الخلفيات التي يستخدمها محول sigmac. بشكل تقليدي ، يمكن اعتبار هذه المحولات "محولات" ذات مدخلات عالمية ومخرجات محددة. إن وجود مثل هذه "المحولات" هو ما يجعل تنسيق الوصف العام مفيدًا للغاية. في هذه الحالة ، لا يهم أي من الأنظمة المدعومة التي تستخدمها ، تسمح لك Sigma بوصف الفكرة وخوارزمية الكشف ، بينما تكون الواجهة الخلفية أو الأخرى لمحول sigmac مسؤولة عن بناء الجملة المحدد للنظام المستهدف وتخطيط الحقول.



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



تحديات سيجما الحالية



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



  1. . .
  2. , Windows- (. ). , .
  3. Wiki , . .
  4. experimental — , .
  5. .
  6. , .


من تجربتي الخاصة ، سأقول أنه عندما تعرفت على مشروع Sigma وشاركت في OSCD ، تبين أن العنصر الأول في القائمة هو الأكثر أهمية. اتضح أن الاختلافات بين بناء الجملة في MaxPatrol SIEM و Sigma لا تنتهي فقط مع دلالات الكلمات الرئيسية وتصميم قواعد الارتباط. لا يمكن وصف بعض أفكارنا من حيث بناء جملة سيجما ، لأنه في هذه المرحلة لا توجد إمكانية لارتباط الحدث. تتيح لك آلية الارتباط البحث عن القيم المشتركة لحقول الأحداث وربط هذه الأحداث ببعضها البعض. هذا مفيد عندما نريد أن نؤسس بدقة العلاقة بين الأحداث. على سبيل المثال ، لتتبع الأحداث داخل جلسة مستخدم واحدة. للقيام بذلك ، تحتاج إلى ربط الأحداث بقيمة حقل LogonID أو ما يعادله.



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



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



سباق جديد قريبًا ، انضم إلينا!



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



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



تأكد من الانضمام إلى السباق الثاني. شارك بشكل فردي وقم بتجميع الفرق ، فلنجعل العالم أكثر أمانًا معًا!



جهات اتصال مبادرة OSCD:





المؤلف : أنطون كوتيبوف ، متخصص في قسم خدمات الخبراء وتطوير التقنيات الإيجابية (مركز أمان خبراء PT)



All Articles