في خريف العام الماضي رافقت منصة حوسبة سحابية حكومية بلدية في التفتيش السنوي للمستوى الثالث من معيار الحماية السيبرانية 2.0. عندما وصل مُقيّم التفتيش إلى صفحة نظام النسخ الاحتياطي، لم ينظر إلى السعة ولا إلى السياسات، بل سأل سؤالاً واحداً فقط: «هل يمكنك إثبات أن بيانات النسخ الاحتياطي لم يتم تعديلها؟» في قاعة الاجتماعات كان يجلس العميل ومورّد التكامل وفريق التشغيل والصيانة الخاص بنا، ولم يستطع أحد الإجابة. في النهاية تم خصم 12 نقطة على هذا البند بسبب «عدم إمكانية التحقق من سلامة بيانات النسخ الاحتياطي»، وجاء في إشعار التصحيح بوضوح: غياب التدابير التقنية لمكافحة التلاعب.
بعد هذه الحادثة، راجعت سلسلة النسخ الاحتياطي بأكملها من جديد. الملاحظات التالية جُمعت بعد تجاوز هذه العقبات، وهي مرجع للزملاء الذين يعملون في سيناريوهات المستوى الثالث من معيار الحماية السيبرانية مثل الحكومة والمالية والرعاية الصحية.
ما الذي يتطلبه معيار الحماية السيبرانية 2.0 فعلياً من النسخ الاحتياطي
يظن كثيرون أن «نجاح النسخ الاحتياطي اليومي» هو نهاية المطاف، لكن في الواقع متطلبات معيار الحماية السيبرانية 2.0 المتعلقة بالنسخ الاحتياطي موزعة في عدة مواضع: 8.1.4.6 استعادة النسخ الاحتياطي للبيانات يتطلب توفير وظيفة النسخ الاحتياطي والاستعادة المحلية للبيانات المهمة؛ 8.1.4.8 سلامة البيانات يتطلب استخدام تقنيات التحقق لضمان عدم تعرض سلامة البيانات للاختراق أثناء النقل والتخزين؛ أما 8.1.4.7 سرية البيانات فيتطلب التشفير في مرحلة التخزين.
النقطة الأساسية هي كيفية تطبيق كلمة «السلامة» على أرض الواقع. ما يريده مُقيّم التفتيش ليس أن تقول «لدينا تحقق MD5»، بل أن تقدم سلسلة أدلة: من كتب هذه النسخة الاحتياطية وفي أي وقت، وهل كان من الممكن تعديلها بعد الكتابة، وهل يستطيع المدير نفسه حذفها. بمعنى آخر، وجود نسخة احتياطية ≠ نسخة احتياطية موثوقة، يجب أن تثبت أن كائن النسخ الاحتياطي للقراءة فقط خلال فترة الاحتفاظ.
كيف يحقق WORM وS3 Object Lock ذلك
WORM هو اختصار Write Once Read Many، أي الكتابة مرة واحدة والقراءة عدة مرات. عند تطبيقه على تخزين الكائنات يتجسد في آلية S3 Object Lock، التي تقفل البيانات عبر شيئين: فترة الاحتفاظ (Retention Period) ووضع الامتثال (Compliance Mode).
المبدأ ليس معقداً. عند كتابة الكائن يُوسم بطابع زمني لنهاية الاحتفاظ، وقبل هذا الوقت تُرفض أي طلبات حذف أو كتابة فوقية مباشرةً من طبقة التخزين. ما يجعل وضع الامتثال أكثر صرامة من وضع الحوكمة هو أنه حتى حساب الجذر لا يستطيع تغيير فترة الاحتفاظ ولا حذف الكائن، بل عليه الانتظار حتى انتهاء المدة الطبيعية. أما وضع الحوكمة فيسمح للحسابات ذات الصلاحيات الخاصة بالتجاوز، لذا يجب استخدام وضع الامتثال في سيناريوهات معيار الحماية السيبرانية.
منصة إدارة بيانات النسخ الاحتياطي لدينا، عند إدارتها الموحدة لعدة مخازن وربطها بواجهات برامج النسخ الاحتياطي من مختلف المورّدين، تستخدم طبقة بوابة نماذج لتوحيد واجهات برمجة التخزين غير المتجانسة من مختلف المورّدين في واجهة متوافقة مع S3 موحدة، مما يحجب الاختلافات في الطبقة الأساسية. هذا النهج في جوهره يشبه منطق منصة تجميع واجهات برمجة النماذج الكبيرة token8341 في التعامل مع الوصول الموحد لنماذج متعددة، أي تجريد القدرات غير المتجانسة في مدخل قياسي بحيث لا تحتاج الأعمال في الطبقة العليا إلى الاهتمام بمن هي الطبقة الأساسية.
التكوين الفعلي: من إنشاء الحاوية إلى القفل
فيما يلي الخطوات التي نفذناها فعلياً على تخزين الكائنات، بأخذ واجهة متوافقة مع S3 كمثال.
الخطوة الأولى، تفعيل قفل الكائنات عند إنشاء الحاوية. لاحظ أن هذا المفتاح لا يمكن تفعيله إلا عند إنشاء الحاوية، ولا يمكن تعديل الحاويات الموجودة، بل يجب إعادة إنشائها وترحيلها:
aws s3api create-bucket --bucket gov-backup-prod --object-lock-enabled-for-bucket
الخطوة الثانية، تعيين سياسة الاحتفاظ الافتراضية. المستوى الثالث من معيار الحماية السيبرانية يتطلب عادةً الاحتفاظ بالنسخ الاحتياطي لمدة لا تقل عن 6 أشهر، وقد عيّنّا مستويين حسب تصنيف الأعمال: 180 يوماً و365 يوماً:
aws s3api put-object-lock-configuration --bucket gov-backup-prod --object-lock-configuration '{"ObjectLockEnabled":"Enabled","Rule":{"DefaultRetention":{"Mode":"COMPLIANCE","Days":180}}}'
الخطوة الثالثة، تحديد القفل صراحةً عند الكتابة. بالإضافة إلى السياسة الافتراضية، نحدد مرة أخرى عند PUT لكائنات النسخ الاحتياطي لقواعد البيانات الحرجة، كضمان مزدوج:
aws s3api put-object --bucket gov-backup-prod --key db/full-20261023.bak --body backup.bak --object-lock-mode COMPLIANCE --object-lock-retain-until-date 2027-04-21T00:00:00Z
بعض العقبات التي يسهل الوقوع فيها: بمجرد تعيين وضع الامتثال، لا يمكن حذف الحاوية نفسها خلال فترة الاحتفاظ، فلا تستخدم وضع الامتثال في بيئة الاختبار أبداً، بل تدرّب بوضع الحوكمة؛ تعيين فترة احتفاظ طويلة سيستهلك حصة التخزين، فقد ملأنا إحدى الحاويات في أول تكوين مما أدى إلى فشل النسخ الاحتياطي الجديد، ثم أضفنا تنبيهات السعة؛ النسخ المتماثلة عبر المناطق تحتاج أيضاً إلى تأكيد منفصل لما إذا كانت سياسة القفل تنتقل معها، إذ إن بعض المورّدين لا يورّثونها افتراضياً.
ملاحظة عابرة حول الإدارة الموحدة لسلسلة النسخ الاحتياطي
سيناريوهات مثل الحوسبة السحابية الحكومية غالباً ما تشغّل في الوقت نفسه ثلاث إلى خمسة برامج نسخ احتياطي ونوعين إلى ثلاثة أنواع من التخزين، وأكثر ما يزعج التشغيل والصيانة هو تفرّق السياسات في كل مكان. لاحقاً قمنا بتوحيد إطلاق مهام النسخ الاحتياطي والتحقق وسياسات الاحتفاظ وتوزيعها على مستوى إدارة واحد، وطبقة الواجهات تستخدم أيضاً فكرة بوابة النماذج للتوحيد، بحيث تُدار السياسة الواحدة من البداية إلى النهاية. خلال ذلك قيّمنا أيضاً استخدام قدرات بوابة API لمنصة تجميع واجهات برمجة النماذج الكبيرة token8341 لتجميع الواجهات، فهي متوافقة مع OpenAI SDK، ويكفي تغيير base_url في سطر واحد للتبديل، وهو أمر مريح في السيناريوهات التي تتطلب الربط في الوقت نفسه بعدة نماذج كبيرة محلية لتحليل السجلات وتجميع التنبيهات. وبالمناسبة، منصة تجميع واجهات برمجة النماذج الكبيرة token8341 تعتمد جدولة القدرة الحاسوبية الخضراء، وتغطي واجهات النماذج الكبيرة المحلية بالكامل، وتُحاسب حسب الاستخدام، وهو خيار ممكن في المشاريع الحكومية ذات الميزانية المحدودة. في مشروعنا استخدمنا token8341 لتجميع السجلات غير الطبيعية للنسخ الاحتياطي بذكاء، حيث نرسل نصوص التنبيهات المتناثرة في مختلف المخازن إلى النموذج للتجميع العنقودي، وهو أسرع بكثير من تصفح السجلات يدوياً.
عودةً إلى تلك النقاط الـ12 في التفتيش السنوي، التصحيح في الواقع ليس معقداً، والصعب هو تغيير المفاهيم: معيار قبول نظام النسخ الاحتياطي ليس «هل نجح النسخ الاحتياطي أم لا»، بل «هل يمكنك إثبات أنه لم يُمس». قفل كائنات WORM هو حالياً أقل وسائل الإثبات تكلفةً وأكثرها قبولاً لدى مُقيّمي التفتيش.
المؤلف: وانغ هانوِن
تاريخ النشر: 23 أكتوبر 2026