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

أمن Linux / متقدم: التصميم المقيد والتغيير المتحقق / الدرس 18

مراجعة تصميم عامل Linux بأقل الصلاحيات

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

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

أهداف الدرس

  • ربط كل نتيجة محمية بنموذج وافتراض مرجعي وملاحظة مطلوبة.
  • كتابة حالة جاهزية صادقة للتصميم المقترح الكامل.

تعريف سلوك العامل المفيد والمحظور

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

فحص علاقة المورد والإجراء على مستوى العمل

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

python فحص أزواج مورد وإجراء مختلقة دقيقة
allowed = {("public-schedule-w4", "read"), ("summary-w4", "write")}
def permits(resource, action):
    return (resource, action) in allowed

assert permits("public-schedule-w4", "read") is True
assert permits("summary-w4", "write") is True
assert permits("attendee-contacts-w4", "read") is False
assert permits("arbitrary-output", "write") is False
print("four resource-action cases preserve the declared worker scope")
الناتج المتوقع
four resource-action cases preserve the declared worker scope

يقارن البرنامج الكامل سلاسل دون قراءة مورد أو كتابته ولا ينفذ طبقة نظام فعلية. يثبت نجاحه علاقة التطبيق المعلنة فقط.

إسناد سؤال الإنفاذ إلى طبقته

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

python حفظ حدود المنصة غير المتحققة في الحزمة
required = {"application-scope", "dac-acl", "service-view", "mandatory-policy", "artifact-trust"}
verified = {"application-scope"}
pending = sorted(required - verified)
assert pending == ["artifact-trust", "dac-acl", "mandatory-policy", "service-view"]
assert not required <= verified
print("local application scope leaves four platform boundaries pending")
الناتج المتوقع
local application scope leaves four platform boundaries pending

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

مراجعة الانتقالات والتعافي مع بدء التشغيل

يراعي التصميم التحديث وتغير الحساب والمجموعة واستبدال المخرج وتغير المفتاح والطرف والاحتفاظ بالسجلات والاستعادة وفشل العمل. قد يبدأ العامل صحيحا ويوسع انتقال لاحق السلطة أو يعيد ضعفا قديما. وضح ملكية التنظيف وآثار الرفض. لا تنفذ عملية حياة فعلية هنا. يفحص التنفيذ المعتمد الانتقالات المناسبة ببيانات مؤقتة مملوكة ويحفظ انحدارات مفيدة. لا تستبدل نموذج حفظ العمل عبر الزمن بدرجة تقوية عامة أو سلسلة أوامر أو مسار بديل غير موثق.

كتابة حالة الجاهزية المحدودة

نجحت سياسة المورد والإجراء المحلية في الحالات المختلقة المحددة، وحفظت القائمة أربعة حدود منصة غير متحققة؛ وهذه النتيجة المدعومة. لم يقيم مضيف Linux أو يقو أو يمسح أو يهيأ أو يعاد تشغيله أو يختبر إنفاذه. تشرح مراجع Ubuntu 24.04 و Linux و systemd و AppArmor و nftables و APT و OpenSSH الافتراضات لا ضمانات النشر. يحدد التسليم الملاحظات المعتمدة المطلوبة ومالك القرار. تجعل الحدود التصميم محددا وقابلا للمراجعة دون ادعاء تنفيذ النماذج عمليات إدارية أو أمنية.

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

تصير السياسة ضمان Linux كاملا

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

يثبت البدء أمان الحياة

لماذا يحدث؟
يهمل اللاحق والتحديث والتعافي.
كيف تصلحه؟
راجع الانتقال وثابت الفشل.
كيف تتجنب تكراره؟
أدرج المحفزات في التصميم.

تعد التسميات اختبار ملفات فعليا

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

اختبر فهمك

1. تمنع سياسة المشروع الوصول إلى بيانات الاتصال بالحضور، بينما يبقى التحقق من DAC/ACL منتظرا. ما الذي يمكن استنتاجه؟

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

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

2. اكتب نتيجة تسليم تمارين المساق.

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

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

أهم ما تعلمته

  • تدعم كل طبقة ادعاءها المحمي.
  • تترك النماذج المفيدة أسئلة الإنفاذ الفعلي.
  • يحدد التسليم الدليل والقيد والرصد المسؤول التالي.

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