Zenbleed: كل ما تحتاج لمعرفته حول هذا الخطأ الأمني ​​من AMD

يعد Zenbleed هو الأحدث في سلسلة طويلة من الأخطاء الأمنية لوحدات المعالجة المركزية (CPU)، وهو شيء آخر يحتاج إلى التصحيح. إليك ما تحتاج إلى معرفته.

بعد الإعلان عن ثغرات Spectre وMeltdown CPU في عام 2018، أصبح عالم الحوسبة يقظًا جدًا حول العثور على الأخطاء الأمنية والثغرات في المعالجات، وفي السنوات الخمس الماضية، اكتشف الباحثون الكثير. وفي 24 يوليو، تم الكشف علنًا عن برمجية استغلالية أخرى بعد الإبلاغ عنها لأول مرة في مايو. هذه المرة، هو خاص بمعالجات AMD المبنية على معمارية Zen 2، ويطلق عليه اسم "زينبليد". إليك كل ما تحتاج لمعرفته حول Zenbleed وما يعنيه للعالم.

كيف يعمل زينبليد؟

يشبه Zenbleed إلى حد كبير الأخطاء الأمنية الأخرى المستندة إلى الأجهزة مثل Spectre من حيث أنه يستغل القدرة التخمينية لوحدات المعالجة المركزية (CPUs). من أجل تحسين الأداء، وحدات المعالجة المركزية التكهن أو التنبؤ بالشيء التالي الذي يتعين عليهم القيام به، ومنذ الكشف عن سبكتر لأول مرة، تعلم العالم أن التكهنات يمكن أن تكون غير آمنة للغاية إذا تم القيام بها بشكل غير صحيح.

المصدر: تافيس أورماندي

يمكن أن تحتوي السجلات الموجودة في وحدة المعالجة المركزية على كمية صغيرة من البيانات، عادةً ما تكون تعليمات أو عنوان تخزين أو أي نوع آخر من البيانات الصغيرة. لا يمكن استخدام تسجيلات XMM في بنية x86_64 (أي من معالجات Zen 2 المتأثرة) إلا لإجراء العمليات الحسابية على البيانات، وليس معالجة الذاكرة. ويمتد هذا إلى 256 بت في حالة سجلات YMM، و512 بت في سجلات ZMM. في هذه الحالة، يشير XMM إلى الـ 128 بت الأقل من الملف

المجموع 512 بت من سجلات ZMM.

هذه السجلات مفيدة بشكل لا يصدق للعديد من الأشياء المختلفة، بما في ذلك وظائف C القياسية. تستغل الثغرة الأمنية التنفيذ التخميني والتنبؤات الخاطئة للفروع لإخراج جزء عشوائي من البيانات من الذاكرة، ولكن يمكن أن تكون هذه البيانات من أي شئ. يمكن لوظائف مكتبة C القياسية، مثل strlen، التي تقيس طول السلسلة، استخدام هذه السجلات لنقل البيانات من حولك، ومن الممكن، عن طريق الصدفة، أن تكون كلمة المرور التي تستخدمها قد سقطت في أحد هذه العناصر السجلات.

يشير التنبؤ بالفرع والتنفيذ التخميني على نطاق واسع إلى الوقت الذي يقوم فيه جهاز الكمبيوتر الخاص بك بتنفيذ عمليات ليست مطلوبة بعد ولكن من المحتمل أن تكون مطلوبة في الدورات اللاحقة. يتم ذلك غالبًا في الأوقات التي يكون فيها نظامك يحتوي على موارد مجانية، لأنه يعمل على تسريع المعالجة الشاملة عندما لا تكون التعليمات أو البيانات جاهزة بعد لوحدة المعالجة المركزية. إذا لم يكن هناك حاجة إلى العمل المنجز، فعادةً ما يتم تجاهله ويمكن للمعالج العودة إلى المكان الذي يحتاج إليه لتنفيذ التعليمات التالية الصحيحة. عندما يفعل ذلك، يسمى هذا بالتنبؤ الخاطئ للفرع.

حيث تنشأ مشكلة في تعليمة vzeroupper، التي تقوم بتصفية البتات الموجودة في الموضع 128 وما فوق في مسجلات YMM وZMM. ويتم ذلك بشكل خاص عند الانتقال بين كود AVX ورمز SSE القديم، لأنه يلغي الأداء العقوبات الناجمة عن التبعيات الخاطئة مع تجنب التأثير المشابه للترويج الصحيح في ج.

إذا نفذ المعالج تعليمة vzeroupper بشكل تخميني، فلن يكون هناك تراجع مناسب. ومع ذلك، قد تضطر معالجات Ryzen المتأثرة إلى التعافي منها، وإن كان ذلك بشكل غير صحيح. وبمجرد الوصول إلى هذه الحالة، يمكن للبرنامج الذي يتم تنفيذه حاليًا التجسس على تلك السجلات في الوقت الفعلي، وعرض البيانات المتدفقة عبر النظام في أي وقت محدد.

ما هي وحدات المعالجة المركزية التي تتأثر بـ Zenbleed، ومتى ستكون التصحيحات متاحة؟

كما ذكرنا من قبل، من المعروف أن وحدات المعالجة المركزية AMD المستندة إلى بنية Zen 2 فقط هي التي تكون عرضة لخلل أمان Zenbleed، ولكن تعمل بنية Zen 2 على تشغيل وحدات المعالجة المركزية في ثلاث سلاسل، مما يجعل من الصعب معرفة أي وحدات المعالجة المركزية معرضة للخطر وأي منها ليست كذلك. فيما يلي جدول يجب أن يوضح كل شيء:

وحدات المعالجة المركزية المتأثرة

سلسلة رايزن 3000

الكل باستثناء وحدات APU (مثل Ryzen 3 3200G)

إبيك روما

الجميع

سلسلة رايزن 4000

الجميع

سلسلة رايزن 5000

فقط 5300U، 5500U، و5700U

سلسلة رايزن 7000

7020 وحدة APU فقط (مثل Ryzen 3 7320U)

هذه كمية كبيرة جدًا من معالجات AMD، وهذه هي فقط المعالجات التي تم تأكيدها حتى الآن. يتم استخدام Zen 2 أيضًا في وحدات APU التي تعمل على تشغيل Steam Deck وXbox Series S وX وPS5. لم نسمع بأي من الحالتين ما إذا كانت وحدات المعالجة المركزية هذه قد تأثرت أيضًا، ولكن بالحكم على الطريقة التي يعمل بها هذا الاستغلال، سأكون مندهشًا إذا لم تتأثر أيضًا. ويبدو من غير المرجح أن تقوم AMD بتصحيح هذه المشكلة في أجهزة Xbox وPS5 نظرًا لأن شرائح سلسلة 7020 الأحدث قد تأثرت أيضًا.

في وقت كتابة هذا التقرير، تم إرسال الرمز الصغير إلى Linux kernel سيؤدي ذلك إلى تصحيح هذه الثغرة الأمنية، وقد يكون لنظام التشغيل أو BIOS لديك بالفعل تحديث يعمل على إصلاح هذه المشكلة.

ماذا يعني هذا بالنسبة لأجهزة الكمبيوتر التي تستخدم وحدات المعالجة المركزية الضعيفة؟

من الصعب الإجابة على هذا السؤال، لأنه ليست كل أجهزة الكمبيوتر متساوية. بالنسبة للأشخاص العاديين الذين يستخدمون أجهزة الكمبيوتر المكتبية والمحمولة المخصصة للألعاب فقط، ربما لا داعي للقلق. يعد هذا استغلالًا متطورًا للغاية، وعلى الرغم من أنه أصبح معروفًا للعامة الآن، إلا أنه لا توجد أمثلة معروفة لمهاجم يستخدم Zenbleed لاختراق أي شيء حتى الآن.

ومع ذلك، فإن المخاطر أعلى بكثير بالنسبة لمراكز البيانات والأشخاص المهمين الذين يتعاملون مع المعلومات الحساسة على أجهزة الكمبيوتر الخاصة بهم. هناك سبب يجعل AMD واضحًا جدًا في أنه تم تصحيح Epyc Rome قبل الإعلان عن الثغرة الأمنية: الكثير من الأمور الحساسة تتم معالجة المعلومات بواسطة وحدات المعالجة المركزية Epyc، وستكون كارثة إذا تم بنجاح تشغيل أي وحدات معالجة مركزية تعمل على خوادم واسعة النطاق هاجم. تم إصدار Linux kernel 6.4.6 بالفعل ويصلح هذه الثغرة الأمنية عن طريق الدخول إلى ملف تصحيح الرمز الصغير الرسمي من أيه إم دي. ويبدو من المحتمل أن تقوم Microsoft بدمج شيء مماثل في Windows.

ومما يثير القلق، قد لا يتم طرح تصحيحات BIOS الرسمية الخاصة بشركة AMD لعدة أشهر، وفي هذه الحالة، هناك "قليلا الدجاج" التي يمكنك تعيينها إذا كنت تستخدم جهاز Linux أو FreeBSD. على أجهزة Linux، يمكنك استخدام أدوات msr وتنفيذ الأمر التالي.

wrmsr -a 0xc0011029 $(($(rdmsr -c 0xc0011029) | (1<<9)))

في FreeBSD، يمكنك أيضًا استخدام ما يلي.

cpucontrol(8)

لا يعد تعطيل SMT كافيًا للتخفيف من الثغرة الأمنية.

الشيء الوحيد الذي يجعل Zenbleed سيئًا بشكل خاص هو أن Zen 2 كان أحد أكثر معماريات وحدة المعالجة المركزية شيوعًا في AMD. لقد بدأت عودة AMD في عامي 2019 و2020، ولا يزال الكثير من الأشخاص والشركات والمؤسسات يستخدمون أجهزة الكمبيوتر المزودة بمعالجات Zen 2 في عام 2023، وخاصة Epyc Rome وحدات المعالجة المركزية. هذا ليس سيئًا مثل Spectre (الذي يؤثر تقريبًا على جميع وحدات المعالجة المركزية قبل عام 2019) وMeltdown (الذي يؤثر تقريبًا على جميع وحدات المعالجة المركزية Intel قبل عام 2019)، لكنه لا يزال سيئًا إلى حد ما. واسع الانتشار.

غالبًا ما تؤدي التصحيحات الأمنية لنقاط الضعف مثل هذه إلى فرض عقوبات على الأداء، ولكن وقالت AMD أجهزة توم أن هذه العقوبة ستعتمد على وحدة المعالجة المركزية وعبء العمل. لقد كانت التكهنات والتنبؤات مهمة جدًا لأداء وحدة المعالجة المركزية، لذلك ليس من الواضح ما إذا كان أي إصلاح محتمل سيشهد انخفاضًا كبيرًا في الأداء.