نقدم لك Kasper، وهو ماسح ضوئي لأداة التنفيذ التأملي لنواة Linux. يستخدم Kasper سياسات تحليل الشوائب لتصميم مهاجم قادر على استغلال ثغرات أمنية عشوائية في البرامج/الأجهزة على مسار عابر للتحكم في البيانات (على سبيل المثال، من خلال تدليك الذاكرة أو LVI)، أو الوصول إلى الأسرار (على سبيل المثال، من خلال خارج الحدود أو الاستخدام بعد ذلك). الوصول المجاني)، وتسريب هذه الأسرار (على سبيل المثال، من خلال القنوات السرية القائمة على ذاكرة التخزين المؤقت أو حركة الديمقراطيين الاشتراكيين أو القنوات السرية القائمة على تنافس المنفذ). على الرغم من أن النواة محصنة بشكل كبير ضد هجمات التنفيذ العابرة، إلا أن Kasper يجد المئات من الأدوات التي لم يتم تخفيفها بعد. يمكنك العثور على الورقة كاملة هنا.
تثبيت التبعيات، بما في ذلك go-task كمدير مهام:
sudo apt install build-essential clang-11 lld-11 libelf-dev qemu-system-x86 bison flex golang libssl-dev cmake debootstrap python3-pexpect socat ninja-build ccache
sudo sh -c "$(curl -ssL https://taskfile.dev/install.sh)" -- -d -b /usr/local/bin
تهيئة/تحديث الوحدات الفرعية لـ git (سيستغرق هذا بعض الوقت عند تشغيله لأول مرة):
task update
قم بإنشاء initramfs وصورة قرص لاستخدامها مع syzkaller:
task initramfs:create
task syzkaller:create-image
تكوين وبناء LLVM بدعم Kasper:
task llvm:config llvm:build
إنشاء syzkaller بدعم من Kasper:
تحذير : إصدار syzkaller الذي نستخدمه يعمل فقط مع golang 1.15 (نحن نستخدم golang 1.15.15)!
task syzkaller:build
تكوين وبناء نواة Linux بأجهزة Kasper:
task kernel:config build kernel:bzImage
اختبار أن النواة المجهزة تعمل بشكل صحيح:
task qemu:test
زغب النواة المجهزة:
task syzkaller:run-nobench
لتجميع الأدوات الذكية وإجراء التقييم، يرجى مراجعة نتائج kasper.