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

أمن Linux / أساسي: الهوية والموارد والأدلة / الدرس 5

مراجعة سلطة العملية وقدرات Linux

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

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

أهداف الدرس

  • شرح قصور صفة غير root وحدها عن حد امتياز كامل.
  • تحديد ما يقيده no_new_privs دون اعتباره عزلا كاملا.

حصر ما تستطيع العملية فعله فعلا

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

مقارنة منح القدرات بعمل محدد

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

python فحص اقتراح قدرات خيالي كبيانات عادية
required = set()
proposed = {"CAP_NET_BIND_SERVICE", "CAP_SYS_ADMIN"}
excess = proposed - required
assert excess == proposed
assert "CAP_SYS_ADMIN" in excess
assert not required
print("two capability labels exceed the declared report-worker need")
الناتج المتوقع
two capability labels exceed the declared report-worker need

يقارن البرنامج الكامل مجموعات سلاسل دون استدعاء قدرات أو سمة تنفيذي أو انتقال uid أو استعلام نواة. المجموعة المطلوبة افتراض تصميم تدريبي لا تقييم برنامج فعلي.

فهم حدود no_new_privs

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

json سجل مراجعة يحفظ الدليل الناقص بشأن no_new_privs
{"workload":"report-worker-lab","proposedNoNewPrivileges":true,"existingAuthorityReviewed":false,"openResourcesReviewed":false,"capabilityTransitionVerified":false,"actualFlagSet":false}

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

مراجعة المساعدات المميزة والموارد الموروثة

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

رصد السلطة الفعلية بفحوص معتمدة فقط

تضم خطة معزولة معتمدة العمل المشروع وآثار الإدارة المرفوضة وانتقالات القدرات والإرث المهم. سجل افتراض النواة والمشغل وافصل المرغوب والمحمل والفعال. لا تنفذ هنا عمليات مضيف؛ فتثبت المجموعة والسجل استدلال السياسة فقط. حدد المنح الزائد للعمل الخيالي والانتقال غير المختبر، ولا تجعل uid غير root أو قائمة فارغة أو اقتراح العلم حماية عملية Linux بمفرده.

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

تعني غير root انعدام الامتياز

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

تمنح CAP_SYS_ADMIN كحل صغير

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

يسمى العلم عزلا كاملا

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

اختبر فهمك

1. لا يكتسب العامل امتيازا جديدا لكنه يحتفظ بواصف حساس قابل للكتابة. هل يكفي العلم؟

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

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

2. لماذا ليست المجموعة الفارغة توصية عامة؟

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

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

أهم ما تعلمته

  • تتجاوز السلطة uid والاسم.
  • تحتاج مجموعات القدرات والانتقالات تفسيرا دقيقا.
  • يقيد العلم حدا محددا لا كل مورد.

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