
أداة اختبار تشويش (fuzzer) لاستهداف نواة/برامج تشغيل الأجهزة الافتراضية الكاملة
kAFL/Nyx هو مزوّد تشويش موجّه سريع لأجهزة x86 الافتراضية. إنه ممتاز لأي شيء يعمل كضيف QEMU/KVM، ولا سيما برمجيات x86 الثابتة والأنوية وأنظمة تشغيل كاملة.
ملاحظة: جميع المكوّنات مقدَّمة لأغراض البحث والتحقق فقط. استخدمها على مسؤوليتك الخاصة
kAFL هو مزوّد التشويش الرئيسي الذي يقود جهود Linux Security Hardening for Confidential Compute، حيث يحدد الثغرات في إعداد معقّد ويعزز أمان نواة Linux لجميع حلول CC.
من بين الأهداف الناجحة الأخرى لـ kAFL/Nyx:
بالإضافة إلى ذلك، استُخدم kAFL داخلياً في Intel للتحقق من البرامج الثابتة لبنية x86 وبرامج التشغيل، وكذلك لتشويش معالجات SMM.
يستخدم kAFL/Nyx Intel VT وIntel PML و_Intel PT_ لتحقيق تنفيذ فعّال وإعادة تعيين اللقطات وتغذية راجعة للتغطية في سيناريوهات التشويش بالصندوق الرمادي أو الأبيض. يتيح تشغيل العديد من البرامج الثابتة لـ x86 وأنوية أنظمة التشغيل مع أي سلسلة أدوات مرغوبة وبأقل تعديلات على الكود.
يستخدم kAFL مزوّد تشويش مخصصاً kAFL-Fuzzer مكتوباً بلغة Python. يتبع kAFL-Fuzzer تصميماً شبيهًا بـ AFL وهو محسَّن للعمل مع العديد من نسخ Qemu بالتوازي، مع دعم خيارات مرنة لإعداد الأجهزة الافتراضية والتسجيل والتصحيح.
يدمج kAFL مزوّد التشويش Radamsa بالإضافة إلى إضافتي Redqueen وGrimoire. يستخدم Redqueen استبطان الجهاز الافتراضي لاستخراج مدخلات وقت التشغيل للتعليمات الشرطية، متغلباً على فحوصات البايت السحري النمطية وفحوصات الإدخال الأخرى. يحاول Grimoire تحديد الكلمات المفتاحية وبناء الجمل من مدخلات التشويش لتوليد طفرات أكثر ذكاءً على نطاق واسع.
للحصول على تفاصيل حول Redqueen وGrimoire وIJON وNyx، يرجى زيارة nyx-fuzz.com.
Intel Skylake أو أحدث: يتطلب الإعداد معالج Intel من الجيل السادس أو أحدث (لأجل Intel PT) وذاكرة نظام كافية (~2GB RAM لكل معالج)
نواة مضيف مُصحَّحة: سيتم تثبيت نواة Linux معدّلة للمضيف كجزء من الإعداد. قد يعمل تشغيل kAFL داخل جهاز افتراضي بدءاً من معالج IceLake أو أحدث.
Debian/Ubuntu حديث: تم اختبار التثبيت والدروس التعليمية على إصدارات Ubuntu LTS الحديثة (>=20.04) وDebian (>=bullseye).
بمجرد تثبيت python3-venv وmake، يمكنك تثبيت kAFL باستخدام make deploy:
sudo apt install python3-venv make git
git clone https://github.com/IntelLabs/kAFL.git
cd kAFl
make deploy
قد يستغرق التثبيت بعض الوقت ويتطلب إعادة تشغيل لتحديث نواتك.
تحقق من دليل التثبيت المفصّل في حال حدوث مشاكل، أو دليل النشر للحصول على معلومات تفصيلية وتخصيص إعداد kAFL لمشروعك.
كمثال تشويش أول، نوصي بـ تشويش نواة Linux.
أهداف أخرى متاحة مثل:
يجري العمل على توثيق محسَّن لهذه الأهداف.