أمن Linux / دليل حلول تحريري
تشخيص كتابة خدمة ترفضها طبقات الوصول
فصل هوية المورد والاعتمادات و DAC/ACL وعرض ملفات الخدمة ودليل السياسة الإلزامية.
قاعدة معرفة للقراءة فقط · بلا تعليقات عامة
تعرّف على الأعراض
قد يقرأ عامل التقارير مدخلاته العامة ويفشل عند إنشاء ملخص. يظهر استثناء مسار قابل للكتابة في الوحدة المقترحة، فيفترض المشغل خطأ AppArmor أو الأذونات. احفظ العملية غير السرية والمورد المقصود ومراجعة الوحدة وفئة التشخيص الموجودة قبل تغيير أي طبقة. لا تحدد رسالة إذن عامة السبب وحدها.
افهم الأسباب المحتملة
- تشمل الأسباب كائنا محلولا مختلفا أو مجموعات عملية قديمة أو غياب اجتياز دليل أو حدود DAC و ACL أو عرض خدمة أو نظاما أساسيا للقراءة فقط أو منعا إلزاميا أو نطاق التطبيق. لا يمنح ReadWritePaths إذن DAC ، ولا يثبت وجود ملف سياسة إرفاقه أو نمطه. تبقى فرضيات حتى يفصلها دليل معتمد فعلي.
تحديد العملية الفعلية والسياق الموثوق
افصل فتح ملف موجود وإنشاء اسم واستبدال مخرج وحذف مؤقت؛ فقد تختلف فحوص الدليل والسياسة لكل منها. سجل هوية الخدمة وافتراض المساحة من دليل موجود معتمد، لا اسم في طلب. لا تستعلم أذونات المضيف أو تغير حسابا أو تجعل الشجرة قابلة للكتابة كاختصار. يستخدم الدليل حقائق مختلقة مقدمة فقط. عند غياب ملاحظة أبق الحد غير متحقق وحدد السؤال المسؤول التالي.
حفظ حقائق المنع المستقلة وعدم اليقين
يوجه البرنامج نتائج DAC وعرض الخدمة والسياسة المعلنة بترتيب تشخيص ثابت. الترتيب اصطلاح مراجعة تدريبي لا خوارزمية نواة كاملة. يعيد المجهول حاجة إلى دليل ولا ينجح بصمت. قد تمنع أكثر من طبقة العملية، ويكشف إصلاح الأولى أخرى. احفظ مصدر الحقيقة وقارن الحالة المحمية. لا يجري البرنامج ملفا أو تجربة سياسة، بل ينظم قيما مقدمة مسبقا.
def review_write(facts):
for layer in ("dac", "serviceView", "mandatoryPolicy"):
if facts.get(layer) is None:
return "needs-evidence:" + layer
if facts[layer] is False:
return "review-denial:" + layer
return "review-application-and-object-outcome"
assert review_write({"dac":False, "serviceView":True, "mandatoryPolicy":True}) == "review-denial:dac"
assert review_write({"dac":True, "serviceView":True, "mandatoryPolicy":None}) == "needs-evidence:mandatoryPolicy"
print("declared denial and missing-evidence routes checked")
declared denial and missing-evidence routes checked
يفحص البرنامج الكامل حالتي توجيه محليتين. لا يأخذ الحقائق من Linux أو يحدد سببا حقيقيا. العلامات مختلقة وليست رسائل سجل نظام دقيقة.
تجهيز التصحيح المحدد وحفظ الحد
إذا أكد دليل معتمد مسارا مشروعا ناقصا أو اختلاف ACL فعليا، فجهز تصحيحا محدودا بالمتطلب. وإذا حظر التصميم العملية فأصلح المستدعي لا السياسة. لا تعطل AppArmor عالميا أو تزل كل قيود الخدمة أو توسع الأوضاع تكراريا. راجع التحميل والاستبدال وإرفاق السياسة وحياة العملية مستقلة عن النص. لا يطبق تغير هنا. أدرج موارد مرفوضة مجاورة كي لا ينجح منح كتابة واسع.
تحقق من نجاح الإصلاح
افحص ببيئة مؤقتة مصرح بها مستقلا إنشاء الملخص المقصود والبدائل السليمة المرفوضة برصد الكائن والحالة. أكد مصدر المنع وسجل الإصدار والسياسة المحملة. لا تدع النجاح من تعديل الوحدة وحده. ينفذ الدليل دالة التوجيه المختلقة فقط دون خدمة أو حساب أو وضع أو ACL أو تركيب أو سياسة أو ملف.
امنع تكرار المشكلة
- احفظ مصفوفة خاصة بالدور وافصل المرغوب والمحمل والمرصود، واحتفظ بانحدار قبول ورفض. وثق تحديث المجموعات وحياة السياسة. يحفظ التشخيص المحدد أقل الصلاحيات والعمل المشروع، ولا يحول كل خطأ وصول إلى استثناء إداري واسع.