بطاقة حماية Linux Kernel

حماية Linux kernel هي مجال معقد للغاية. يتضمن عددًا كبيرًا من المفاهيم المترابطة بشكل معقد ، وسيكون من المفيد الحصول على تمثيل بياني لها. لذلك ، قمت بتطوير خريطة حامي kernel لنظام Linux . هنا أسطورة:



لذلك ، تحتوي الخريطة على الكائنات التالية:

  • فصول الضعف
  • تقنيات عملها لتنفيذ الهجمات ؛
  • آليات الكشف عن الأخطاء.
  • تكنولوجيا الحماية.

في المقابل ، تقنيات الحماية الأساسية غير متجانسة. بعضها جزء من Linux vanilla kernel ، بينما يتم شحن بعضها الآخر بشكل منفصل لأسباب مختلفة (على سبيل المثال ، هناك ميزات أمان تجارية). توجد آليات حماية kernel تتطلب دعم الأجهزة.

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



الشكل 1. ميزات الأمان لتقنية STACKLEAK

PAX_MEMORY_STACKLEAK هي تقنية حماية نواة لنظام Linux التجارية تتصدى لاستغلال أنواع الثغرات التالية: تجاوز سعة المكدس في العمق ، واستخدام المتغيرات غير المهيكلة ، وتسرب المعلومات إلى مساحة المستخدم. تحتوي الخريطة على معرفات لفئات الضعف هذه (CWE ، تعداد الضعف العام).

تم إدخال تقنية STACKLEAK في Linux kernel Linux ، وهو ما ينعكس في الرسم التخطيطي. هناك أيضًا آلية تصحيح أخطاء KMSAN تسمح بالكشف عند استخدام النواة عن استخدام المتغيرات غير المستهلكة وتسرب المعلومات إلى مساحة المستخدم.

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

يوضح الشكل 2 الخريطة الكاملة لإصدار kernel 5.1 (بالنقر على الصورة ، سيتم فتح الحجم الكامل).


رسم تخطيطي 2. Linux v5.1 kernel ميزات خريطة الأمان

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

dot -Tsvg linux-kernel-defence-map.dot -o linux-kernel-defence-map.svg 

بطاقة Linux Kernel Security هي مشروع مفتوح المصدر مرخص بموجب GPL v3.0. يقع المستودع في جيثب . هذا المشروع مفيد للغاية من أجل:

  • مراقبة الوضع الحالي لأمن النواة ،
  • تطوير نماذج تهديد IP على أساس جنو / لينكس ،
  • اختيار العلاجات المناسبة.

بالإضافة إلى ذلك ، تم تصميم خريطة ميزات أمان kernel Linux لمساعدتك في التعرف على التعليمات البرمجية المصدر والوثائق ومصادر المعلومات الأخرى حول هذا الموضوع:


ولأتمتة التحقق من خيارات الأمان في ملف تكوين Linux kernel ، قمتُ بإنشاء مشروع kconfig-hardened-check ، الذي يتطور بنشاط بفضل العمل التعاوني المفتوح. الأداة تدعم x86_64 ، arm64 ، x86_32 وبنية الذراع.

أدعوك للمشاركة في تطوير خريطة ميزات أمان kernel Linux والأداة المساعدة kconfig-hardened-check .

Source: https://habr.com/ru/post/ar457460/


All Articles