
استغلال Meltdown / إثبات المفهوم / يتحقق مما إذا كان النظام متأثرًا بالمتغير 3: التحميل المارق لذاكرة التخزين المؤقت للبيانات (CVE-2017-5754)، المعروف أيضًا باسم MELTDOWN.

إثبات المفهوم /
استغلال /
يتحقق مما إذا كان النظام متأثرًا بـ Variant 3: rogue data cache load (CVE-2017-5754)، المعروف أيضًا باسم MELTDOWN.
الفكرة الأساسية هي أن المستخدم سيعرف ما إذا كان النظام قيد التشغيل مصححًا بشكل صحيح أم لا، باستخدام شيء مثل حزمة تصحيحات KAISER (https://lkml.org/lkml/2017/10/31/884) على سبيل المثال.
اطلع على مقالتي على المدونة التي ترشد القارئ خلال إثبات المفهوم لثغرة Meltdown: http://funwithbits.net/blog/programmers-guide-to-meltdown/
*** يعمل فقط على لينكس في الوقت الحالي ***
يعمل عن طريق استخدام /proc/kallsyms للعثور على جدول استدعاءات النظام والتحقق مما إذا كان عنوان استدعاء نظام تم العثور عليه عبر استغلال MELTDOWN يطابق العنوان المقابل في /proc/kallsyms.
انسخ المستودع، ثم شغّل make لتجميع المشروع، ثم شغّل meltdown-checker:
git clone https://github.com/raphaelsc/Am-I-affected-by-Meltdown.git
cd ./Am-I-affected-by-Meltdown
make
taskset 0x1 ./meltdown-checker
Unable to read /proc/kallsyms...
هذا لأن نظامك قد يمنع البرنامج من قراءة رموز النواة في /proc/kallsyms بسبب ضبط /proc/sys/kernel/kptr_restrict على 1.
سيقوم الأمر التالي بالغرض:
sudo sh -c "echo 0 > /proc/sys/kernel/kptr_restrict"
Unable to read /boot/System.map-.
من المحتمل أن يكون السبب هو أن نظامك لا يحتوي على /boot مُحمّلًا. يعتمد هذا البرنامج على ذلك القسم، لذا ستحتاج إلى تثبيت قسم /boot أولاً.
*يرجى فتح مشكلة (issue) إذا كانت لديك فكرة حول كيفية العودة إلى نهج بديل في هذا السيناريو.

Checking whether system is affected by Variant 3: rogue data cache load (CVE-2017-5754), a.k.a MELTDOWN ...
Checking syscall table (sys_call_table) found at address 0xffffffffaea001c0 ...
0xc4c4c4c4c4c4c4c4 -> That's unknown
0xffffffffae251e10 -> That's SyS_write
System affected! Please consider upgrading your kernel to one that is patched with KAISER
Check https://security.googleblog.com/2018/01/todays-cpu-vulnerability-what-you-need.html for more details