Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/pedrolucasoliva/spectre-attack-demo
تحليل الثغرات الأمنيةالاستغلالالتشفيرأمن الأجهزةالتعلم والتعليماستغلال الملفات الثنائية
GitHubpedrolucasoliva/spectre-attack-demo

spectre-attack-demo

مثال على استخدام ثغرة "Spectre" المُكتشفة (CVE-2017-5753 وCVE-2017-5715)

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
عرض المستودع
11منذ 8 سنواتلم تتم المراجعة بعد

مثال هجوم Spectre

مثال على استخدام ثغرة "Spectre" المُكتشفة في 2 يناير 2018 (CVE-2017-5753 و CVE-2017-5715)

تكسر Spectre العزلة بين التطبيقات المختلفة. إنها تسمح للمهاجم بخداع البرامج الخالية من الأخطاء، التي تتبع أفضل الممارسات، لتسريب أسرارها. في الواقع، فإن فحوصات السلامة لتلك الممارسات الجيدة تزيد من سطح الهجوم وقد تجعل التطبيقات أكثر عرضة لهجوم Spectre.

  • ورقة Spectre - ورقة Spectre ومصدر الكود

اللغة

C، يستخدم المكتبات:

  • stdio.h
  • stdlib.h
  • stdint.h
  • intrin.h - من أجل rdtscp و clflush

ماذا يفعل المثال؟

نضع النص "The Magic Words are Squeamish Ossifrage." في الذاكرة ثم نحاول قراءته باستخدام الثغرة. إذا كان النظام معرضًا للخطر، فسترى نفس النص في المخرجات، مقروءًا من الذاكرة.


في هذا الكود، إذا تم تنفيذ التعليمات المترجمة في victim_function() بترتيب برنامج صارم، فإن الدالة ستقرأ فقط من array1[0..15] لأن حجم array1 = 16. ومع ذلك، عند التنفيذ التخميني، تكون القراءات خارج الحدود ممكنة. تقوم الدالة readMemoryByte() بعدة استدعاءات تدريبية لـ victim_function() لجعل متوقع الفروع يتوقع قيمًا صالحة لـ x، ثم تستدعي مع x خارج الحدود. يحدث خطأ في توقع الفرع، وينفذ التنفيذ التخميني اللاحق قراءة بايت سري باستخدام x خارج الحدود. ثم يقرأ الكود التخميني من array2[array1[x] * 512]، مما يسرب قيمة array1[x] إلى حالة ذاكرة التخزين المؤقت. لإكمال الهجوم، يُستخدم أسلوب بسيط من نوع flush+probe لتحديد أي سطر تخزين مؤقت في array2 تم تحميله، مما يكشف محتويات الذاكرة. يُكرر الهجوم عدة مرات، حتى لو كان البايت الهدف غير مخزّن مبدئيًا، فإن التكرار الأول سيجلبه إلى ذاكرة التخزين المؤقت.

يقرأ الكود غير المحسّن ما يقرب من 10 كيلوبايت/الثانية على جهاز i7 Surface Pro 3.

المصادر

  • معلومات عن ثغرات Spectre
  • CVE-2017-5753 - البديل 1: تجاوز فحص الحدود
  • CVE-2017-5715 - البديل 2: حقن هدف الفرع
  • قائمة معالجات Intel المتأثرة
تنزيل الأداة