أمن Linux / متوسط: حدود الخدمة والسياسة ودورة الحياة / الدرس 11
استخدام السجلات كأدلة أمنية محدودة
حفظ سياق المصدر وفئات المنع دون تسجيل أسرار أو اعتبار الحدث الغائب نجاحا.
في هذه الصفحة
أهداف الدرس
- فصل حقول المصدر المنظمة عن تفسير الرسالة الحرة.
- تصميم سجلات تشخيص مفيدة وحفظ الأسباب المجهولة.
اختيار سؤال الأمن قبل جمع التفاصيل
قد يفشل العامل بسبب تحقق التطبيق أو DAC أو قيود عرض ملفات الخدمة أو السياسة الإلزامية أو تبعية. لا تحدد رسالة permission denied عامة الطبقة وحدها. عرف العملية وفئة المورد وسياق العملية الموثوق والنتيجة المتوقعة قبل تفسير التشخيص. تدعم السجلات الفحص ضمن رؤية مصدرها واحتفاظها وموثوقيتها فقط. يستخدم المساق سجلات مختلقة ولا يقرأ journal أو سجل تدقيق أو بيانات عملية أو إعداد مضيف. لا يفعل التدقيق أو يغير الجمع؛ فالهدف استخدام دليل دقيق، لا جمع أكبر قدر من الحمولات.
حفظ فئات المنع المعروفة والمجهولة
يجمع البرنامج الأول حقائق منع تدريبية معلنة ويحفظ الأسباب المجهولة. لا يستنتج سبب نواة حقيقيا من نص بشري. لحقول systemd journal دلالات موثقة، و MESSAGE محتوى مقروء بشريا وليس هدفا ثابتا لاستخراج البيانات الوصفية. يختلف سياق الثقة بحقول يرسلها التطبيق وحقول يضيفها نظام التسجيل. وحتى بيانات الجمع الموثوقة لا تثبت صدق كل ادعاء تطبيق. احفظ معرف المصدر وطريقة التصنيف، وهل استندت إلى تشخيص مراجع أو فرضية فقط.
events = [{"id":"e1","layer":"dac"}, {"id":"e2","layer":"mandatory"}, {"id":"e3","layer":"unknown"}]
groups = {layer:[e["id"] for e in events if e["layer"] == layer] for layer in ("dac", "mandatory", "unknown")}
assert groups["dac"] == ["e1"]
assert groups["mandatory"] == ["e2"]
assert groups["unknown"] == ["e3"]
print("known denial layers and uncertainty remain separate")
known denial layers and uncertainty remain separate
ينظم البرنامج الكامل ثلاثة قواميس مختلقة ولا يقرأ journal أو تدقيقا أو يفحص مصدر منع حقيقي. الفئات بيانات تمرين لا رسائل Linux دقيقة.
استخدام عروض تشخيص بالحد الأدنى
يحفظ التشخيص العملية والنتيجة ومعرف الحالة والسياق غير السري المناسب، ويستبعد الاعتمادات والحمولات الخاصة. يستبعد البرنامج الثاني علامة تدريب خاملة بقائمة سماح، ولا يضمن سلامة كل مسار تسجيل. راجع الكائنات المتداخلة ورسائل الاستثناء وتفريغ البيئة ومكتبات الطرف الثالث في التصميم الفعلي المعتمد. الوصول للسجلات والاحتفاظ والنقل والسلامة ضوابط مستقلة. لا تجعل صعوبة التشخيص سببا لنسخ بيانات حساب أو طلب أو إعداد كاملة إلى سجل واسع الرؤية.
event = {"operation":"write-summary", "result":"denied", "case":"lab-3", "credentialMarker":"PUBLIC-INERT-MARKER"}
allowed = {"operation", "result", "case"}
diagnostic = {k:v for k,v in event.items() if k in allowed}
assert set(diagnostic) == allowed
assert "credentialMarker" not in diagnostic
assert "PUBLIC-INERT-MARKER" not in str(diagnostic)
print("diagnostic projection excludes the inert marker")
diagnostic projection excludes the inert marker
يستخدم البرنامج الكامل سلاسل عامة مختلقة ولا يكتب سجلا أو يقرأ أو يرسل اعتمادا. يثبت اختيار الحقول فقط، وتبقى التغطية والخصوصية والتخزين غير متحققة.
معاملة غياب السجل كسؤال تغطية
قد يغيب حدث بسبب الاحتفاظ أو تعطيل الجمع أو حد المعدل أو التخزين المؤقت أو مصدر آخر أو عدم وقوع فعل متعلق. لا يثبت الغياب إنفاذا ناجحا أو حذفا متعمدا آليا. تهم دلالة الوقت وجودة ساعة المصدر عند الربط أيضا. راجع بنية التسجيل المعتمدة وفجواتها قبل استنتاج التكرار أو الغياب. تحتاج تسمية uid أو وحدة أو تنفيذي سياق مصدر موثقا ولا تنسب إنسانا بذاتها. لا يجمع المساق مواد حية أو يهيئ تدقيقا مميزا أو يجري جمعا جنائيا لحسم ذلك.
ربط التشخيص بالآثار المحمية الفعلية
يقارن اختبار معتمد النتيجة العامة والحالة المحمية وفئة التشخيص المناسبة لحالتي قبول ورفض مضبوطتين. تحقق من عدم إنشاء مخرج أو إشعار غير مقصود عند الرفض وفق العقد. تبقى السجلات دليلا مساعدا لا الإثبات الوحيد لعدم التعديل. سجل المصدر والإصدار وأساس الوقت والحدود غير المنفذة. تفحص الأمثلة تنظيم البيانات واختيار الحقول فقط، ولا تثبت تغطية كشف المضيف أو جودة التنبيه أو إنفاذ السياسة أو نتيجة حادث. تجعل الحدود الواضحة التشخيص التالي أنفع وأقل تدخلا.
الأخطاء الشائعة وإصلاحها
تحدد الرسالة العامة طبقة المنع
- لماذا يحدث؟
- يعد النص سببا فريدا.
- كيف تصلحه؟
- استخدم السياق الموثق والحالة المساندة.
- كيف تتجنب تكراره؟
- احفظ المجهول حتى دعمه.
يثبت غياب السجل غياب الحدث
- لماذا يحدث؟
- تهمل التغطية والاحتفاظ.
- كيف تصلحه؟
- صف المصدر وفجواته.
- كيف تتجنب تكراره؟
- راجع النفي مع بنية التسجيل.
يتضمن التشخيص اعتمادات كاملة
- لماذا يحدث؟
- تتجاوز السهولة مراجعة الحقول والجمهور.
- كيف تصلحه؟
- استخدم عرضا مراجعا وعلامات خاملة.
- كيف تتجنب تكراره؟
- افحص المسارات دون أسرار فعلية.
اختبر فهمك
1. الحدث unknown. هل يعد منع AppArmor ؟
اعرض الحل المشروح
لا. احفظه حتى يحدد السياق المدعوم الطبقة. قد ترتبط رسالة قريبة ولا تفسره آليا. يعتمد النموذج حقائق معلنة ولا يفحص المضيف.
2. لماذا تقارن الحالة مع سجل المنع؟
اعرض الحل المشروح
قد ينقص السجل أو يضلل أو يكتب بعد تعديل غير مقصود. يحتاج العقد الحالة والآثار الفعلية. عاضد التشخيص بالنتيجة المرصودة في بيئة مصرح بها، ولا تستنتج الإنفاذ من السلسلة وحدها.
أهم ما تعلمته
- للسجلات حدود مصدر وتغطية وتفسير.
- يدعم السياق والحالة تشخيص السبب.
- يقلل العرض المحدود الكشف الزائد.