محتويات الدورة

أمن Linux / متوسط: حدود الخدمة والسياسة ودورة الحياة / الدرس 8

فصل السياسة الإلزامية عن الوصول التقديري

استخدام AppArmor مرجعا محددا مع فصل إرفاق الملف ونمطه والمنع الفعلي.

وقت القراءة التقريبي: 4 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • شرح أن سماح DAC لا يتجاوز منع السياسة الإلزامية.
  • فصل ملف السياسة والمحمل وإرفاق العملية والنمط.

فصل قرارات السياسة المتكاملة

يسمح الوصول التقديري بعملية وفق قواعد الهوية والكائن، بينما قد تفرض السياسة الإلزامية قيودا إضافية. لا تجبر قابلية الملف للكتابة من uid الخدمة AppArmor على السماح بالفعل. وفي المقابل لا يوفر سماح السياسة إذن DAC مفقودا. وثائق AppArmor في Ubuntu هي مرجع التوزيعة المختار، ولا يحمل المساق ملف سياسة أو يفحصه. تستخدم وحدات أمن Linux الأخرى نماذج ودلالات مختلفة. لا تنقل صيغة سياسة إلى أخرى بالتشبيه، ولا تعلن حماية المضيف لمجرد وجود حزمة سياسة.

نمذجة منع محدد دون تغيير المضيف

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

python إظهار نتائج التقديري والإلزامي والمجهول
def reviewed_read(dac, mandatory):
    if dac is not True:
        return "DENIED_DAC"
    if mandatory is None:
        return "UNVERIFIED_POLICY"
    return "ALLOWED" if mandatory is True else "DENIED_POLICY"

assert reviewed_read(True, True) == "ALLOWED"
assert reviewed_read(True, False) == "DENIED_POLICY"
assert reviewed_read(False, True) == "DENIED_DAC"
assert reviewed_read(True, None) == "UNVERIFIED_POLICY"
print("four declared DAC and mandatory-policy outcomes checked")
الناتج المتوقع
four declared DAC and mandatory-policy outcomes checked

يقيم البرنامج الكامل أربع حقائق محليا دون فحص نواة أو ملف أو تحميل أو تجربة سياسة. العلامات فئات تدريب لا رسائل AppArmor فعلية.

مراجعة وجود الملف والإرفاق والنمط

تختلف حالات ملف سياسة على القرص وملف محمل وعملية مقيدة به فعلا. ويختلف نمطا enforce و complain في السؤال الذي يجيبانه. يسجل complain عادة مخالفات السياسة بدلا من فرض المنع العادي، لكن قواعد deny الصريحة تظل نافذة وفق الاستثناء الموثق. لذلك لا تختزل النمط إلى قيمة سماح عام. يحفظ السجل جهل الإرفاق والنمط، وهو بيانات مخصصة غير تنفيذية لا صيغة AppArmor أو إثبات حالة. يحتاج التشخيص الحقيقي دليلا معتمدا للعملية والسياسة المحملة المحددتين.

json سجل حالة سياسة مع إنفاذ غير محسوم
{"profile":"report-worker-lab","fileReviewed":true,"loadedVerified":false,"processAttachment":"unknown","mode":"unknown","ordinaryDenyTested":false,"explicitDenyRulesReviewed":false,"hostPolicyChanged":false}

هذا JSON بيانات تدريب مخصصة ولا يهيئ سياسة. لا يثبت fileReviewed تقييد العملية. يبقى جهل الإرفاق والنمط ظاهرا في الاستنتاج.

إصلاح القاعدة المناسبة بدلا من تعطيل الطبقة

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

فحص القبول والرفض المقصودين وفق السياسة

في بيئة مؤقتة مصرح بها مستقلا، افحص عمل المدخلات والمخرجات المطلوب وحالة سليمة لمورد محظور تحت السياسة والنمط المحملين فعلا. افحص DAC وعرض الخدمة أيضا لنسبة المنع للطبقة الصحيحة. سجل افتراضات المنصة والسياسة والانتقالات غير المنفذة. يثبت النموذج والسجل الاستدلال على الحالات المعلنة فقط، لا إنفاذ AppArmor أو وحدة أخرى أو المضيف لقاعدة معينة. يمنع الدليل الدقيق استبدال دفاع مفيد بتجاوز واسع بسبب خطأ غير مفسر.

الأخطاء الشائعة وإصلاحها

يتجاوز إذن DAC المنع الإلزامي

لماذا يحدث؟
تعامل الطبقات كبدائل.
كيف تصلحه؟
راجع القرارين والسياسة المرفقة.
كيف تتجنب تكراره؟
اختبر مصدر المنع صراحة.

يثبت الملف تقييد العملية

لماذا يحدث؟
المحمل والإرفاق والنمط غير متحققة.
كيف تصلحه؟
سجل كل حالة واطلب دليلا معتمدا.
كيف تتجنب تكراره؟
افصل الجهل والمطابقة.

يعطل كل رفض طبقة السياسة

لماذا يحدث؟
لا تحدد العملية والقاعدة.
كيف تصلحه؟
شخص الاختلاف الضيق واحفظ المنع الآخر.
كيف تتجنب تكراره؟
راجع انحدارات القبول والرفض.

اختبر فهمك

1. روجع ملف السياسة، لكن إرفاق العملية به غير معروف. هل يمكن وصف العامل بأنه مقيد بهذه السياسة؟

اعرض الحل المشروح

لا. افصل دليل مراجعة التصميم والتحقق المنتظر من التحميل والإرفاق والنمط. قد يوجد الملف ولا يحكم العملية. يحفظ السجل الفجوة ولا يفحص سياسة المضيف أو يغيرها.

2. لماذا لا ينمذج complain كسماح عام؟

اعرض الحل المشروح

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

أهم ما تعلمته

  • قد تزيد السياسة الإلزامية قيود DAC.
  • يختلف الوجود والتحميل والإرفاق والنمط.
  • يحفظ التشخيص الضيق القبول والمنع المفيدين.

المراجع الرسمية