الأمن السيبراني الأدلة التقنية

تحقيق ضوابط ECC بأدوات مفتوحة المصدر Open Source

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

تحقيق ضوابط ECC بأدوات مفتوحة المصدر Open Source

عندما تقرأ الضوابط الأساسية للأمن السيبراني ECC-2:2024 لأول مرة بعين مدير تقني، سوف تجد سؤالاً يتكرر في رأسك عند كل مكون فرعي: هل أحتاج منتجاً تجارياً لهذا؟ والإجابة في أغلب المكون الثاني «لا»، فالحد الأدنى التقني الذي تطلبه الضوابط، من جرد الأصول إلى جدار تطبيقات الويب، له أدوات مفتوحة المصدر ناضجة، وقد شرحنا أغلبها عملياً في مقالات سابقة على الموقع، لكن هذه المقالات متفرقة، ولا يوجد مكان واحد يقول لك «الضابط الفرعي 2-12-3-5 يحققه هذا الإعداد في هذه الأداة، وهذا دليله».

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

دليلالضوابط الأساسية للأمن السيبراني NCA ECC بلغة بسيطةكيف تقرأ الضوابط الأساسية ECC دون أن تضيع في أرقامها، وعلى من تنطبق، وما المطلوب من جهتك فعلاً في كل مكون.دليلأطر الأمن السيبراني Frameworks: أيها تحتاج مؤسستك؟الفرق بين ECC وISO 27001 وNIST CSF وSOC 2 في الإلزام وطريقة الإثبات وما تحصل عليه، وأربعة أسئلة تحدد بها ما تحتاجه مؤسستك.دليلماذا تبني من ضوابط الهيئة الوطنية للأمن السيبراني؟أفكار منتجات تبنى على الالتزامات المتكررة في ضوابط الهيئة، مع مختبر يحول نتائج الفحص إلى تقرير أدلة مربوط بأرقام الضوابط.

وفي هذا المقال سوف نتناول:

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

ماذا تغطي الأداة من المكون الفرعي؟

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

أربع بطاقات للمكون الفرعي 2-12: حدد ووثق واعتمد عمل الفريق، وطبق والحد الأدنى عمل الأداة ومنهما الدليل، وراجع دورياً عمل الفريق بتقارير الأداة
الأداة تحقق الحد الأدنى وتنتج الدليل، والوثيقة والمراجعة على الفريق

وهذا يعني أن جملة «ركبنا Wazuh فحققنا السجلات والمراقبة» غير صحيحة، والصحيح أن تقول: «لدينا معيار معتمد للسجلات يذكر الأصول ومدة الاحتفاظ، وWazuh يجمع سجلات هذه الأصول، وهذا تقرير الأصول التي أرسلت سجلاتها خلال الشهر، وهذا محضر مراجعة الربع الماضي». والفرق بين الجملتين هو الفرق بين نتيجة تقييم جيدة ونتيجة سيئة.

الخريطة الكاملة في شكل واحد

قبل التفاصيل، الشكل التالي يضع كل مكون فرعي في المكون الثاني، ومعه مكون الصمود 3-1، أمام عائلة الأدوات التي تحقق حده الأدنى، ثم نفصل كل مكون فرعي في جدول بأرقام الضوابط الفرعية:

ستة عشر مربعاً للمكونات الفرعية من 2-1 إلى 2-15 و3-1، في كل منها اسم المكون وأدوات مفتوحة المصدر مثل Snipe-IT وauthentik وWazuh وrestic وTrivy وFrigate، وتحتها مربعان للمكون الأول والرابع
المكون الثاني هو الذي تخدمه الأدوات مباشرة

الأصول والهويات والأنظمة: من 2-1 إلى 2-3

الضابطما يطلبه النصالأداة مفتوحة المصدرشرحها على الموقع
2-1-2، 2-1-5تطبيق إدارة الأصول، وتصنيف الأصول وترميزها Labeling والتعامل معهاSnipe-IT لسجل الأجهزة والرخص، مع حقل التصنيف لكل أصلSnipe-IT ودورة حياة الأصول
2-2-3-1، 2-2-3-2التحقق بكلمة المرور، والتحقق متعدد العوامل MFA للوصول عن بعد وللحسابات المميزةauthentik مزوداً للهوية مع MFA أو Passkeysauthentik وPasskeys وForward Auth
2-2-3-3الصلاحيات بمبدأ الحاجة إلى المعرفة Need-to-Know وأقل صلاحية Least Privilege وفصل المهام Segregation of Dutiesالمجموعات والأدوار في authentik، وربطها بالتطبيقاتIAM وPAM
2-2-3-4إدارة الوصول المميز PAMبوابة وصول مع تسجيل الجلسات مثل Apache Guacamole، وخزنة كلمات مرور مثل Vaultwardenأدوات الوصول الآمن وGuacamole وVaultwarden
2-2-3-5، 1-9-5المراجعة الدورية للهويات والصلاحيات، وسحب الصلاحيات فوراً عند انتهاء العلاقة الوظيفيةSCIM من نظام الموارد البشرية إلى مزود الهوية، وتقرير الحسابات من authentikدورة حياة الحسابات JML وSCIM
2-3-3-1الحماية من الفيروسات والبرمجيات الضارة Malware على الأجهزة والسيرفراتوكيل Wazuh لمراقبة سلامة الملفات واكتشاف التهديدات، مع ClamAV للفحصكيف يعمل وكيل EDR
2-3-3-3إدارة حزم التحديثات Patch ManagementTrivy وWazuh لمعرفة ما يحتاج تحديثاً، وunattended-upgrades على Debian وUbuntuمختبر الثغرات
2-3-3-4مزامنة مركزية للوقت مع مصدر دقيق وموثوق، مثل مصادر الهيئة السعودية للمواصفات والمقاييس والجودةchrony مع خادم الوقت الوطني time.saso.gov.saفي التجربة العملية أدناه

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

البريد والشبكات والأجهزة المحمولة: من 2-4 إلى 2-6

الضابطما يطلبه النصالأداة مفتوحة المصدرشرحها على الموقع
2-4-3-1تحليل رسائل البريد وتصفيتها، خاصة التصيد Phishing والرسائل المزعجة SpamProxmox Mail Gateway أو Rspamd أمام خادم البريدبوابات أمن البريد وProxmox Mail Gateway
2-4-3-2MFA للوصول عن بعد وللبريد عبر الويب WebmailWebmail خلف authentik، أو MFA داخل خادم البريد نفسهForward Auth
2-4-3-3أرشفة البريد ونسخه احتياطياًنسخ صناديق البريد بأداة النسخ الاحتياطي، مثل resticأدوات النسخ الاحتياطي
2-4-3-5التحقق من نطاقات البريد بـ SPF وDKIM وDMARCسجلات DNS، وتقارير DMARCشرح SPF وDKIM وDMARC
2-5-3-1، 2-5-3-2عزل أجزاء الشبكة وتقسيمها بجدار حماية Firewall ودفاع متعدد الطبقات، وعزل شبكة الإنتاج عن بيئات التطوير والاختبارVLANs وقواعد جدار الحماية، مثل MikroTik أو nftablesتقسيم الشبكة وجدار الحماية في MikroTik
2-5-3-6أنظمة الحماية من الاختراق IPSSuricata في وضع IPS، وCrowdSec لحظر المصادر المسيئةمقالا Suricata وCrowdSec في مرحلة الأمن السيبراني
2-5-3-9الحماية من هجمات حجب الخدمة الموزعة DDoSطبقات الحماية، ومنها خدمة مدارة أمام السيرفر لأن الأدوات على السيرفر وحدها لا تكفي للهجمات الكبيرةطبقات الحماية من DDoS وأدوات الحماية
2-6-3-1، 2-6-3-3فصل بيانات الجهة وتشفيرها على الأجهزة المحمولة وBYOD، وحذفها عند فقد الجهاز أو انتهاء العلاقةإدارة الأجهزة MDM مثل Fleet مع osquery، وHeadwind MDM لأجهزة Androidإدارة أجهزة الموظفين وBYOD

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

البيانات والتشفير والنسخ الاحتياطي: من 2-7 إلى 2-9

الضابطما يطلبه النصالأداة مفتوحة المصدرشرحها على الموقع
2-7-2تطبيق حماية البيانات بحسب مستوى تصنيفهاالتصنيف في سجل الأصول، والتعتيم Masking لاكتشاف البيانات الشخصية مثل Presidio، والتخزين غير القابل للتعديل لنسخ البيانات المهمةS3 Object Lock
2-8-3-1معايير أنظمة التشفير وحلوله المعتمدة بحسب المعايير الوطنية للتشفير NCSاختيار الخوارزميات والإعدادات في الأدوات نفسها (TLS وSSH والأقراص)التشفير للمطورين
2-8-3-2الإدارة الآمنة لمفاتيح التشفير Key Management خلال دورة حياتهاOpenBao لحفظ الأسرار والمفاتيح، وGnuPG للتوقيعالتشفير للمطورين وGnuPG عملياً
2-8-3-3تشفير البيانات أثناء النقل In-transit وأثناء التخزين At-rest بحسب تصنيفهاCaddy أو Nginx Proxy Manager لشهادات TLS، وLUKS لتشفير الأقراص، وتشفير restic للنسخالشهادات الرقمية TLS وCaddy
2-9-3-1، 2-9-3-2نطاق النسخ يشمل الأصول الحساسة، والقدرة على الاستعادة السريعة بعد الحوادثrestic أو Borg أو Kopia، مع نسخة خارج الموقعقاعدة 3-2-1 ومقارنة أدوات النسخ واستعادة PostgreSQL لنقطة زمنية
2-9-3-3اختبار فعالية الاستعادة دورياًسكربت استعادة مجدول يكتب محضره بنفسهقاعدة 3-2-1 واختبار الاستعادة

ولاحظ أن 2-8-3 يربط التشفير بالمعايير الوطنية للتشفير التي تنشرها الهيئة، فلا تكتف بأن «الموقع يعمل بـ HTTPS»، وإنما تأكد أن الخوارزميات والإصدارات المسموح بها في إعداد TLS لديك توافق مستوى المعيار المناسب لتصنيف بياناتك. وفي النسخ الاحتياطي تذكر حريق OVHcloud في ستراسبورغ، حيث احترقت نسخ احتياطية لعملاء كانت في المبنى نفسه مع البيانات، وهذا ما يقصده 2-9-3-2 بالقدرة على الاستعادة بعد الحادث وليس قبله.

الثغرات والاختبار والسجلات والحوادث: من 2-10 إلى 2-13

الضابطما يطلبه النصالأداة مفتوحة المصدرشرحها على الموقع
2-10-3-1، 2-10-3-2تقييم الثغرات واكتشافها دورياً، وتصنيفها بحسب خطورتهاTrivy للحزم والـ Images، وOpenVAS لفحص الشبكة، وWazuh لمطابقة الحزم المثبتةأدوات إدارة الثغرات وفحص الـ Docker Images
2-10-3-3، 2-10-3-4معالجة الثغرات بحسب تصنيفها، واختبار التحديثات في بيئة غير الإنتاج قبل تطبيقهاDefectDojo لمتابعة الثغرات حتى إغلاقها، وبيئة اختبار منفصلةإدارة الثغرات
2-10-3-5الاشتراك في مصادر موثوقة للثغرات الجديدةسكربت تنبيه على OSV وNVD ونشرات المنتجات التي تستخدمهامختبر الثغرات
2-11-3-1، 2-11-3-2اختبار اختراق دوري يشمل كل الخدمات المقدمة عبر الإنترنت ومكوناتهاNmap وOWASP ZAP وNuclei، بإذن مكتوب ونطاق محددثغرات الويب بالتجربة وDAST
2-12-3-1، 2-12-3-2تفعيل سجلات الأحداث للأصول الحساسة وللحسابات المميزة ولأحداث الوصول عن بعدauditd وسجلات SSH وsudo وسجلات مزود الهويةسجل التدقيق Audit Trail
2-12-3-3، 2-12-3-4تقنيات SIEM لجمع السجلات، والمراقبة المستمرةWazuh منصة SIEM، أو Graylog وLoki لجمع السجلات مع تنبيهاتكيف يعمل محرك SIEM وGraylog وLoki
2-12-3-5مدة الاحتفاظ بسجلات الأحداث 12 شهراً على الأقلإعداد الاحتفاظ في أداة السجلات، والتخزين الكافي لهفي التجربة العملية أدناه
2-13-3-1، 2-13-3-2خطط الاستجابة للحوادث والتصعيد، وتصنيف الحوادثTheHive لإدارة الحالات، وVelociraptor وأدوات التحقيق لجمع الأدلةالتحقيق الرقمي DFIR وأدوات التحقيق
2-13-3-5جمع معلومات التهديدات Threat Intelligence ومعالجتهاMISP وOpenCTIمنصة استخبارات التهديدات

ولاحظ أن 2-13-3-3 و2-13-3-4 يطلبان إبلاغ الهيئة بالحوادث ومشاركتها بالإشعارات ومؤشرات الاختراق، وهذا إجراء له قنوات تحددها الهيئة وليس أداة تثبتها، فاكتب في إجراء الاستجابة للحوادث من يبلغ وكيف ومتى، واحفظ نسخة من كل بلاغ.

الأمن المادي وتطبيقات الويب والصمود: 2-14 و2-15 و3-1

الضابطما يطلبه النصالأداة مفتوحة المصدرشرحها على الموقع
2-14-3-2، 2-14-3-3سجلات الدخول والمراقبة بالكاميرات CCTV، وحماية معلوماتهاFrigate لتسجيل الكاميرات، مع صلاحيات ونسخ لتسجيلاتهاFrigate
2-15-3-1جدار حماية تطبيقات الويب WAFCoraza أو BunkerWeb أو ModSecurity مع قواعد OWASP CRSجدار WAF على سيرفرك
2-15-3-2مبدأ المعمارية متعددة المستويات Multi-tier Architectureفصل الواجهة والتطبيق وقاعدة البيانات في شبكات Docker منفصلةتقسيم الشبكة
2-15-3-3استخدام البروتوكولات الآمنة مثل HTTPSCaddy أو Traefik أو Nginx Proxy Manager بشهادات تلقائية، مع ترويسات الأمانCaddy وترويسات الأمان وحماية HTTP
2-15-3-5التحقق من المستخدمين بعوامل مناسبة بحسب تقييم الأثرauthentik أمام التطبيق، أو داخل التطبيق عبر OIDCForward Auth
3-1-3-1، 3-1-3-3استمرارية أنظمة الأمن السيبراني، وخطط التعافي من الكوارث Disaster Recoverykeepalived للتوافرية العالية، ونسخ واستعادة في موقع آخرمفاهيم التوافرية العالية وkeepalived

والمكون الأول والرابع؟ الأداة تحفظ الوثيقة والدليل

المكون الأول، أي الحوكمة من 1-1 إلى 1-10، يطلب استراتيجية وإدارة مستقلة للأمن السيبراني وسياسات وأدواراً ومنهجية للمخاطر ومراجعة وتدقيقاً وتوعية، وكلها قرارات يتخذها الناس، ولا توجد أداة «تحقق» 1-2-1 الذي يطلب إدارة للأمن السيبراني مستقلة عن إدارة تقنية المعلومات. ولكن الأدوات توفر عليك كثيراً في حفظ ما ينتج عن هذه القرارات، كما يلي:

المكون الفرعيماذا تحفظ الأداةأمثلة
1-3 السياسات والإجراءاتنصوص السياسات بإصداراتها وتاريخ اعتمادها ومن غير ماذاGitea لمستودع السياسات، أو BookStack وOutline للقراءة
1-5 إدارة المخاطرسجل المخاطر Risk Register وتقييماتها ومالك كل مخاطرةCISO Assistant أو SimpleRisk، ولكل منهما مقال قادم في هذه المرحلة
1-6 الأمن في المشاريعنتائج فحص الكود والمكتبات والإعدادات قبل الإطلاق، وهي 1-6-2-1 و1-6-3-1 إلى 1-6-3-5SAST وSCA وفحص الأسرار وخط CI/CD آمن
1-8 المراجعة والتدقيقنتائج المراجعة الدورية بالملاحظات والخطط التصحيحيةCISO Assistant لتقييمات الالتزام وخطط المعالجة
1-10 التوعية والتدريبحملات محاكاة التصيد المصرح بها ونتائجها، وسجل الحضوربرنامج التوعية وGoPhish

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

تجربة عملية: نثبت ضابطين بإعداد حقيقي ومخرج حقيقي

الكلام عن الخرائط سهل، لذلك سوف نأخذ ضابطين من الجداول السابقة نادراً ما يشرحهما أحد، ونثبت كلاً منهما بإعداد ومخرج يصلحان دليلاً: مزامنة الوقت في 2-3-3-4، ومدة الاحتفاظ بالسجلات في 2-12-3-5.

الضابط 2-3-3-4: مزامنة الوقت مع المرجع الوطني

يطلب الضابط مزامنة مركزية للوقت مع مصدر دقيق وموثوق، ويضرب مثالاً بمصادر الهيئة السعودية للمواصفات والمقاييس والجودة. وقد يتساءل البعض: ما علاقة الوقت بالأمن؟ والإجابة أن كل تحقيق في حادث يقوم على ترتيب الأحداث بين سجلات عدة أجهزة، فإذا كانت ساعة سيرفر متقدمة دقيقتين عن الآخر فسوف يظهر لك أن المهاجم خرج قبل أن يدخل. والهيئة تنشر التوقيت الوطني المرجعي على العنوان time.saso.gov.sa، وتقول إن مختبرها الوطني للتردد والوقت يبث إشارات الوقت عبر الإنترنت ببروتوكول NTP. وقبل أن تضعه في إعداد سيرفراتك، اختبر أنه يجيب من شبكتك، والأمر التالي يستعلم منه دون أن يغير ساعة الجهاز، لأن الخيار -Q في chronyd يطبع الفرق فقط:

docker run --rm alpine:3.22 sh -c "apk add -q chrony >/dev/null && chronyd -Q -t 20 'server time.saso.gov.sa iburst maxsamples 4'"

والمخرج سوف يكون كما يلي:

2026-10-25T19:45:50Z chronyd version 4.6.1 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SIGND +ASYNCDNS +NTS +SECHASH +IPV6 -DEBUG)
2026-10-25T19:45:50Z Disabled control of system clock
2026-10-25T19:45:58Z System clock wrong by -0.720832 seconds (ignored)
2026-10-25T19:45:58Z chronyd exiting

في المخرج أعلاه لاحظ التالي:

  • السطر الثاني يؤكد أن chronyd لم يلمس ساعة الجهاز، فالاختبار آمن على أي سيرفر.
  • السطر الثالث يعني أن الخادم الوطني أجاب، وأن ساعة الجهاز الذي جربنا عليه متأخرة بنحو 0.72 ثانية عن المرجع، وهو فرق تصلحه المزامنة المستمرة في ثوان.

بعد ذلك ضع الخادم في إعداد chrony على كل سيرفر، أو على سيرفر وقت داخلي واحد تتزامن منه بقية الأجهزة، وهذا هو المقصود بكلمة «مركزية» في الضابط. والإعداد التالي في /etc/chrony/chrony.conf على Debian وUbuntu، وفق توثيق chrony.conf:

# ECC 2-3-3-4: national time reference (SASO)
server time.saso.gov.sa iburst
# a second source, so one failure does not leave the server without time
pool 2.debian.pool.ntp.org iburst
makestep 1.0 3
rtcsync

والدليل الذي تحفظه هو مخرج chronyc sources -v من كل سيرفر في تاريخ محدد، ويظهر فيه time.saso.gov.sa مصدراً فعالاً. والآن نجرب العطل: إذا كتبت اسماً قريباً من الصحيح، مثل ntp.saso.gov.sa، فإن الاسم لا يحل في DNS، والأمر نفسه ينتهي بعد المهلة دون أي قياس:

2026-10-25T19:46:52Z Disabled control of system clock
2026-10-25T19:47:07Z Timeout reached
2026-10-25T19:47:07Z chronyd exiting

ولاحظ أن chronyd لا يطبع خطأ واضحاً يقول «الاسم غير موجود»، وإنما يصمت حتى تنتهي المهلة، وفي التشغيل العادي سوف يبقى السيرفر على مصادره الأخرى دون أن يخبرك أحد، لذلك راجع chronyc sources بعد أي تعديل ولا تكتف بأن الخدمة تعمل.

الضابط 2-12-3-5: الاحتفاظ بالسجلات 12 شهراً على الأقل

شرحنا تثبيت Loki وإعداد الاحتفاظ فيه في جمع السجلات مركزياً مع Grafana Loki، حيث كانت المدة في المثال 744 ساعة، أي شهراً. والضابط هنا يطلب سنة على الأقل، أي 8760 ساعة، والإعداد التالي لـ Loki 3.7.9 يحقق ذلك، ونحفظه باسم loki.yaml:

auth_enabled: false
server:
  http_listen_port: 3100
common:
  path_prefix: /loki
  replication_factor: 1
  ring:
    kvstore:
      store: inmemory
  storage:
    filesystem:
      chunks_directory: /loki/chunks
      rules_directory: /loki/rules
schema_config:
  configs:
    - from: 2026-01-01
      store: tsdb
      object_store: filesystem
      schema: v13
      index:
        prefix: index_
        period: 24h
compactor:
  working_directory: /loki/compactor
  retention_enabled: true
  delete_request_store: filesystem
limits_config:
  retention_period: 8760h   # ECC 2-12-3-5: at least 12 months

ثم نشغله ونطلب منه الإعداد الذي يعمل به فعلاً من نقطة /config، لأن الدليل الأقوى ليس الملف الذي كتبته، وإنما ما قرأه البرنامج منه:

docker run -d --name loki -p 127.0.0.1:3100:3100 \
  -v "$PWD/loki.yaml:/etc/loki/loki.yaml:ro" grafana/loki:3.7.9 -config.file=/etc/loki/loki.yaml
curl -s localhost:3100/loki/api/v1/status/buildinfo
curl -s localhost:3100/config | grep -E "^  retention_enabled|^  retention_period|retention_delete_delay|compaction_interval"

والمخرج سوف يكون كما يلي:

{"version":"3.7.9","revision":"d3b4a2f7","branch":"release-3.7.x","buildUser":"root@buildkitsandbox","buildDate":"2026-10-20T21:43:00Z","goVersion":""}
  compaction_interval: 10m0s
  retention_enabled: true
  retention_delete_delay: 2h0m0s
  retention_period: 1y

في المخرج أعلاه لاحظ التالي:

  • Loki يعرض 8760 ساعة بصيغة 1y، وهذا السطر هو الدليل الذي تضعه في ملف الضابط مع تاريخه.
  • retention_enabled: true في قسم الضاغط Compactor ضروري، فبحسب توثيق الاحتفاظ في Loki فإن الضاغط دونه يضغط الجداول فقط ولا يطبق أي مدة احتفاظ.
  • في ملف /config الكامل سطر آخر باسم retention_period: 0s تحت table_manager، وهو إعداد قديم لا علاقة له بالاحتفاظ في مخطط TSDB، فلا يربكك عندما تقرأ الملف كاملاً.

والآن نجرب العطل: إذا حذفت السطر delete_request_store من قسم الضاغط، فإن Loki يرفض أن يعمل أصلاً:

level=error ts=2026-10-25T19:37:52.232274802Z caller=main.go:92 msg="validating config" err="CONFIG ERROR: invalid compactor config: compactor.delete-request-store should be configured when retention is enabled"

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

docker rm -f loki

مقالات الأدوات في مرحلة الأمن السيبراني

بعض الأدوات في الجداول لها مقالات عملية في مرحلة الأمن السيبراني: الدفاع والاختبار، والبطاقات التالية تجمعها:

دليلمراقبة السيرفرات مع Wazuh: من السجل Log إلى حظر المهاجمشغلنا Wazuh مع وكيل على سيرفر تجريبي، فكشف تخمين كلمات مرور SSH وحظر المهاجم تلقائياً، ونبه على ملف PHP دخيل خلال ثانية.دليلCrowdSec: اكتشاف هجمات التخمين وحظرها جماعياًنبني مختبراً من حاويتين، نشن تخميناً حقيقياً على SSH، ونرى CrowdSec يكتشفه ويصدر قرار حظر ينفذه الجدار الناري.دليلتقوية السيرفر Hardening وقياسها مع Lynis ومعايير CISالتقوية حالة تقاس برقم لا شعور، فنقيس خادم Debian قبل وبعد بأداتي Lynis وCIS ونرى الفرق على السيرفر نفسه.دليلاختبار الاختراق المصرح به: المنهجية والإذن والتقريرالأمر الذي ينفذه المختبر هو نفسه أمر المهاجم، والفرق ورقة: الإذن والنطاق وقواعد الاشتباك، ثم تقرير يصلح الفريق على أساسه.

أخطاء شائعة عند بناء الامتثال على الأدوات

  • اعتبار تثبيت الأداة تحقيقاً للمكون الفرعي: الأداة تغطي التطبيق والحد الأدنى فقط، فإذا لم تكن لديك وثيقة معتمدة ومحضر مراجعة فالمكون ناقص.
  • تغطية جزء من الأصول: Wazuh على خمسة سيرفرات من ثمانية يعني ثلاثة أصول بلا سجلات، والمقيم يبدأ عادة من سجل الأصول ثم يسأل عن كل أصل، لذلك اربط كل أداة بسجل الأصول وقارن الأعداد شهرياً.
  • دليل بلا تاريخ: لقطة شاشة لإعداد MFA لا تقول متى أخذت ولا على أي نظام، فاحفظ الدليل بتاريخه واسم النظام، والأفضل أن يخرج من الأداة آلياً.
  • إعداد صحيح لا يعمل: مثل chrony يشير إلى اسم خاطئ، أو Loki دون retention_enabled، فالدليل الذي يقرأ الحالة الفعلية أقوى من الدليل الذي يعرض ملف الإعداد.
  • نسيان ما لا تحققه أداة: مثل إبلاغ الهيئة بالحوادث في 2-13-3-3، أو عقود الأطراف الخارجية في 4-1، فهذه إجراءات ووثائق تحتاج مالكاً واضحاً.
  • أداة بلا مالك: أداة مفتوحة المصدر لا يحدثها أحد تصبح هي نفسها ثغرة، فلكل أداة في الخريطة مالك وجدول تحديث، وهذا ما يطلبه 2-3-3-3 أصلاً.

الخلاصة

  • أغلب الحد الأدنى التقني في المكون الثاني من ECC له أدوات مفتوحة المصدر ناضجة، وقد ربطنا كل ضابط فرعي بأداته وبالمقال الذي شرحها.
  • الأداة تخدم ضابطي «طبق» و«الحد الأدنى» في كل مكون فرعي، أما «حدد ووثق واعتمد» و«راجع دورياً» فعمل الفريق، والأداة تعطيه التقارير.
  • المكون الأول والرابع قرارات وعقود، والأداة فيهما تحفظ الوثائق والأدلة.
  • أثبت الضابط بما يعمل فعلاً: مخرج chronyc sources الذي يظهر time.saso.gov.sa، ومخرج /config في Loki الذي يظهر retention_period: 1y.
  • الخطوة التالية أن تحفظ هذه الأدلة في مكان واحد مربوط بأرقام الضوابط، وهذا موضوع مقالي جمع الأدلة تلقائياً وإدارة الامتثال مع CISO Assistant:
دليلإدارة الامتثال Compliance مع CISO Assistant على سيرفركنشغل CISO Assistant ونحمل فيه ضوابط ECC-2:2024 ونقيم منصة حقيقية ونربطها بالضوابط والأدلة ونصدر التقرير، مع كل مشكلة واجهناها في الطريق.

سجل التحديثات

أكتوبر 2026: كتابة المقال وربط الضوابط بنص ECC-2:2024، واختبار مزامنة الوقت مع time.saso.gov.sa باستخدام chrony 4.6.1، والاحتفاظ بالسجلات على Grafana Loki 3.7.9.

نشرة عرب رووت | ArabRoot

معرفة تستحق مكاناً في بريدك.

مقالات مختارة وأدوات مفيدة وأفكار لمشروعك القادم، في رسالة واحدة كل أسبوع.

يمكنك إلغاء الاشتراك متى شئت. الخصوصية

تم استلام طلبك. افتح بريدك واضغط رابط التأكيد لإتمام الاشتراك.