الإصدار 1.0.0 من خارج الشجرة - أدوات لتطوير واختبار عمليات الاستغلال ووحدات Linux kernel


الإصدار 1.0.0 من خارج الشجرة - أدوات لتطوير واختبار عمليات الاستغلال ووحدات Linux kernel

تم إصدار الإصدار الأول (v1.0.0) من out-of-tree، وهو عبارة عن مجموعة أدوات لتطوير واختبار برامج استغلال الثغرات ووحدات Linux kernel.

يتيح لك برنامج out-of-tree إمكانية أتمتة بعض الإجراءات الروتينية لإنشاء بيئات لتصحيح أخطاء وحدات kernel وبرمجيات استغلال الثغرات، وإنشاء إحصائيات موثوقية استغلال الثغرات، كما يوفر القدرة على الاندماج بسهولة في CI (التكامل المستمر).

يتم وصف كل وحدة نمطية أو استغلال لـ kernel بواسطة ملف ‎.out-of-tree.toml، الذي يحدد معلومات حول البيئة المطلوبة و(إذا كان استغلالًا) قيودًا على التشغيل في ظل وجود إجراءات تخفيف أمنية معينة.

تسمح لك مجموعة الأدوات أيضًا بتحديد إصدارات kernel معينة متأثرة بالثغرة الأمنية (باستخدام الأمر --guess)، ويمكن استخدامها أيضًا لتبسيط عمليات البحث الثنائية لالتزام محدد.

فيما يلي قائمة بالتغييرات منذ الإصدار v0.2.

تمت الإضافة

  • تم تنفيذ القدرة على تحديد عدد النوى التي تم إنشاؤها (مولد تلقائي للنواة خارج الشجرة) (استنادًا إلى الوصف الموجود في .out-of-tree.toml) وعمليات التحقق (مقاعد خارج الشجرة) باستخدام —max= المعلمة X.

  • أمر genall جديد، والذي يسمح لك بإنشاء جميع النوى لتوزيع وإصدار محدد.

  • يتم الآن تخزين جميع السجلات في قاعدة بيانات sqlite3. تم تنفيذ أوامر للاستعلامات البسيطة المطلوبة بشكل متكرر، بالإضافة إلى تصدير البيانات إلى json وmarkdown.

  • تم تنفيذ حساب احتمالية التشغيل الناجح (بناءً على عمليات الإطلاق السابقة).

  • القدرة على حفظ نتائج البناء (معلمة --dist جديدة لأمر بيو خارج الشجرة)

  • دعم إنشاء البيانات الوصفية للنواة المثبتة على النظام المضيف، بالإضافة إلى البناء مباشرة على المضيف.

  • دعم لنواة الطرف الثالث.

  • تبحث الآن بيئة تصحيح الأخطاء خارج الشجرة تلقائيًا عن رموز تصحيح الأخطاء على النظام المضيف.

  • تمت إضافة القدرة على إدارة عمليات تخفيف الأمان من خلال إشارات التمكين/التعطيل KASLR وSMEP وSMAP وKPTI أثناء تصحيح الأخطاء.

  • تمت إضافة المعلمة --threads=N إلى أمر اختبار pew خارج الشجرة، والذي يمكن استخدامه لتحديد عدد سلاسل العمليات التي سيتم من خلالها إنشاء/تشغيل واختبار برامج استغلال الثغرات ووحدات kernel.

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

  • تمت إضافة القدرة على تحديد إصدار النواة دون استخدام التعبيرات العادية.

  • أمر حزمة جديد، يُستخدم للاختبار الشامل لبرامج استغلال الثغرات ووحدات kernel في الدلائل الفرعية.

  • في التكوين (.out-of-tree.toml) لوحدة الاستغلال والنواة، تمت إضافة القدرة على تعطيل KASLR وSMEP وSMAP وKPTI، بالإضافة إلى تحديد العدد المطلوب من النوى والذاكرة.

  • يتم الآن تحميل الصور (rootfs) تلقائيًا أثناء تشغيل kernel autogen. لم تعد هناك حاجة إلى bootstrap.

  • دعم لنواة CentOS.

التغييرات

  • الآن، إذا لم تكن هناك صورة (rootfs) للإصدار المطلوب من التوزيع، فسيحاول out-of-tree استخدام صورة الإصدار الأقرب. على سبيل المثال، صورة Ubuntu 18.04 لـ Ubuntu 18.10.

  • الآن لن تعتبر اختبارات وحدات kernel فاشلة إذا كانت مفقودة (لا توجد اختبارات - لا توجد أخطاء!).

  • الآن، سيُرجع out-of-tree رمز خطأ سلبيًا في حالة فشل مرحلة واحدة على الأقل (الإنشاء أو الإطلاق أو الاختبار) على أي من النوى.

  • لقد تحول المشروع إلى استخدام وحدات Go، ويفضل الآن البناء باستخدام GO111MODULE=on.

  • وأضاف الاختبارات الافتراضية.

  • سيتم الآن استخدام Test.sh بشكل افتراضي إذا لم يتم تنفيذ التجميع في ${TARGET}_test في ملف Makefile.

  • لم يعد يتم مسح سجل kernel قبل تشغيل وحدة kernel أو استغلالها. تستخدم بعض برمجيات إكسبلويت تسربًا لقاعدة kernel في dmesg لتجاوز KASLR، لذا قد تؤدي عملية التنظيف إلى كسر المنطق المطبق للبرمجية المستغلة.

  • يستخدم qemu/kvm الآن كافة إمكانيات المعالج المضيف.

إزالة

  • مصنع النواة تمت إزالته بالكامل بسبب تنفيذ إنشاء kernel استنادًا إلى ملفات Dockerfiles المحدثة بشكل متزايد.

  • Bootstrap لا يفعل أي شيء آخر. ستتم إزالة الأمر في الإصدار التالي.

ثابت

  • في نظام التشغيل macOS، لم تعد ملفات GNU الأساسية مطلوبة للتشغيل.

  • تم نقل الملفات المؤقتة إلى ~/.out-of-tree/tmp/ بسبب أخطاء التثبيت داخل عامل الإرساء في بعض الأنظمة.

المصدر: linux.org.ru

إضافة تعليق