
مجموعة أدوات بلغة C تنفّذ هجمات القنوات الجانبية المعمارية الدقيقة على معمارية Intel x86-64، بما في ذلك Prime+Probe وFlush+Reload وFlush+Flush وCacheBleed وPrime+Abort.
تستغل هجمات القنوات الجانبية المعمارية الدقيقة التنازع على المكونات الداخلية للمعالج لتسريب المعلومات بين العمليات. وعلى الرغم من أن مثل هذه الهجمات واضحة من الناحية النظرية، إلا أن التطبيقات العملية تميل إلى أن تكون دقيقة وصعبة وتتطلب فهمًا كبيرًا لميزات المعالج الموثقة بشكل ضعيف وللمعرفة الغامضة الخاصة بالمجال. وبالتالي، توجد حاجز أمام الدخول إلى العمل على هجمات القنوات الجانبية المعمارية الدقيقة، مما يعيق تطوير هذا المجال وتحليل مرونة البرمجيات الحالية ضد مثل هذه الهجمات.
يحتوي هذا المستودع على Mastik، وهي مجموعة أدوات للتجريب بهجمات القنوات الجانبية المعمارية الدقيقة. تهدف Mastik إلى توفير تطبيقات لتقنيات الهجوم والتحليل المنشورة. حاليًا، تدعم Mastik ست تقنيات لهجمات القنوات الجانبية على معمارية Intel x86-64:
تتبع Mastik عملية التثبيت القياسية الفعلية على Linux.
إذا كان النظام يمتلك جميع البرامج المطلوبة
وكنت تريد التكوين الافتراضي، فاستخدم:
$ ./configure && make && sudo make install
انظر أدناه للحصول على مزيد من المعلومات.
للتشغيل الأساسي، لا تتطلب Mastik أي حزم.
ومع ذلك، فإن القدرة على حل الرموز في الملفات الثنائية مفيدة للغاية،
وتتطلب حزم البناء binutils وlibdwarf على Linux.
على Mac OS X لا يوجد دعم لرموز التصحيح بعد.
تتطلب واجهة Mastik الرسومية doubloon
Python 3 مع الحزم التالية:
wx وnumpy وparamiko وmatplotlib وtqdm.
يعتمد التثبيت على نوع نظام التشغيل.
Fedora:
$ sudo dnf install binutils-devel libdwarf-devel
Ubuntu:
$ sudo apt-get install binutils-dev libdwarf-dev libelf-dev
CentOS:
فعّل مستودع PowerTools:
$ sudo dnf config-manager --set-enabled PowerTools
ثم قم بتثبيت الحزم:
$ sudo dnf install libdwarf binutils-devel elfutils-libelf-devel libdwarf-devel python3
لإعداد بيئة البناء، استخدم البرنامج النصي configure.
لاستخدام الخيارات الافتراضية، استخدم:
$ ./configure
يقبل البرنامج النصي عدة أعلام لتعديل سلوكه.
بعضها مذكور أدناه.
استخدم ./configure --help للحصول على قائمة كاملة.
| العلم | الوصف |
|---|---|
--help | رسالة المساعدة |
--prefix=PREFIX | تثبيت الملفات في PREFIX [/usr/local] |
--disable-symbols | يعطّل معالجة جداول الرموز في الملفات الثنائية. كما يزيل متطلب binutils وlibdwarf |
--disable-debug-symbols | يعطّل معالجة رموز التصحيح في الملفات الثنائية. يزيل متطلب libdwarf |
--disable-doubloon | لا تثبّت doubloon. يزيل متطلب Python3 |
بعد تكوين بيئة البناء، قم ببناء Mastik باستخدام:
$ make
لتثبيت Mastik، استخدم:
$ make install
لتغيير دليل التثبيت استخدم:
$ make prefix=DIR install
للحصول على مثال على الاستخدام، انظر إلى مجلد العرض التوضيحي.
Mastik مدعوم من: