أيبك / ملحمة! رقائق إنتل تسرب الأسرار حتى النواة يجب ألا تراها ... PlatoBlockchain Data Intelligence. البحث العمودي. عاي.

أيبك / ملحمة! رقائق إنتل تسرّب أسرارًا حتى النواة يجب ألا تراها ...

إليك BWAIN هذا الأسبوع ، المصطلح المضحك لـ a علة مع اسم مثير للإعجاب.

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

هذا واحد مدبلج تسرب PIC، لعبة الكلمات APIC و EPIC.

السابق هو اختصار ل وحدة تحكم المقاطعة القابلة للبرمجة المتقدمة، والأخيرة هي ببساطة كلمة "ملحمة" ، كما في عملاق, هائل, أقصى, ميجا, العملاقة.

لم يتم استخدام الحرف في اللغة الإنجليزية المكتوبة منذ العصر الساكسوني. اسمها ش، وضوحا رماد (كما في الشجرة) ، وهو يمثل إلى حد كبير صوت الحرف A في الكلمة الحديثة ASH. لكننا نفترض أنه من المفترض أن تنطق الكلمة Æ الموافقة المسبقة عن علم هنا إما باسم "APIC-slash-EPIC" أو "ah! -eh؟ -PIC".

ما كل هذا؟

كل هذا يثير خمسة أسئلة رائعة:

  • ما هو APIC، ولماذا أحتاجه؟
  • كيف يمكنك الحصول على تلك البيانات حتى النواة لا يمكن إلقاء نظرة خاطفة على؟
  • ما الذي يسبب هذا الفشل الملحمي في أيبك؟
  • هل تسرب PIC يؤثر علي?
  • ماذا أفعل حوله؟

ما هو أيبك؟

دعنا نرجع إلى عام 1981 ، عندما ظهر كمبيوتر IBM الشخصي لأول مرة.

احتوى الكمبيوتر الشخصي على شريحة تسمى وحدة تحكم المقاطعة القابلة للبرمجة Intel 8259A، أو الموافقة المسبقة عن علم. (النماذج اللاحقة ، بدءًا من الكمبيوتر الشخصي AT وما بعده ، كانت تحتوي على اثنين من بلدان جزر المحيط الهادئ ، مرتبطان ببعضهما البعض ، لدعم المزيد من أحداث المقاطعة.)

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

تضمنت مقاطعات الأجهزة هذه أحداثًا مثل: تلقي لوحة المفاتيح بضغطة مفتاح ؛ المنفذ التسلسلي الذي يتلقى حرفًا ؛ وتكرار مؤقت الأجهزة.

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

كما يمكنك أن تتخيل ، سرعان ما تبعت PIC شريحة مطورة تسمى APICو متقدم نوع من الموافقة المسبقة عن علم مدمج في وحدة المعالجة المركزية نفسها.

في هذه الأيام ، تقدم APIC أكثر بكثير من مجرد ردود فعل من لوحة المفاتيح والمنفذ التسلسلي وجهاز ضبط وقت النظام.

يتم تشغيل أحداث APIC بواسطة (وتوفير بيانات في الوقت الفعلي حول) أحداث مثل ارتفاع درجة الحرارة ، وتسمح بتفاعل الأجهزة بين النوى المختلفة في المعالجات متعددة النواة المعاصرة.

وشرائح Intel اليوم ، إذا أمكننا ذلك بشكل مبسط إلى حد كبير ، يمكن بشكل عام تكوينها للعمل بطريقتين مختلفتين ، المعروفة باسم وضع xAPIC و وضع x2APIC.

هنا، xAPIC هي الطريقة "القديمة" لاستخراج البيانات من وحدة التحكم بالمقاطعة ، و x2APIC هي الطريقة الأكثر حداثة.

تبسيطًا أكثر ، يعتمد xAPIC على ما يسمى MMIO، باختصار ل مدخلات / مخرجات الذاكرة المعينة، لقراءة البيانات من APIC عند تسجيل حدث مثير للاهتمام.

في وضع MMIO ، يمكنك معرفة سبب تشغيل حدث APIC من خلال القراءة من منطقة معينة من الذاكرة (RAM) ، والتي تعكس سجلات الإدخال / الإخراج لشريحة APIC نفسها.

يتم تعيين بيانات xAPIC هذه في كتلة ذاكرة 4096 بايت في مكان ما في ذاكرة الوصول العشوائي الفعلية للكمبيوتر.

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

في المقابل ، يتطلب x2APIC منك اقرأ بيانات APIC مباشرة من الشريحة نفسها ، باستخدام ما يعرف بـ السجلات الخاصة بالنموذج (MSRs).

وفقًا لشركة Intel ، تجنب جزء MMIO من العملية "يوفر إمكانية عنونة معالج متزايدة بشكل كبير وبعض التحسينات على تسليم المقاطعة."

والجدير بالذكر أن استخراج بيانات APIC مباشرة من السجلات الموجودة على الشريحة يعني أن الحجم الإجمالي للبيانات المدعومة ، والحد الأقصى لعدد نوى وحدة المعالجة المركزية التي يمكن إدارتها في نفس الوقت ، لا يقتصر على 4096 بايت المتوفرة في وضع MMIO.

كيف يمكنك الحصول على بيانات لا تستطيع حتى النواة إلقاء نظرة عليها؟

ربما تكون قد خمنت بالفعل أن البيانات التي تنتهي في منطقة ذاكرة MMIO عند استخدام وضع xAPIC لا تتم إدارتها بعناية دائمًا كما ينبغي ...

... وبالتالي فإن نوعًا من "تسرب البيانات" إلى منطقة MMIO هو لب هذه المشكلة.

لكن بالنظر إلى ذلك أنت تحتاج بالفعل إلى صلاحيات على مستوى مسؤول النظام لقراءة بيانات MMIO في المقام الأول ، وبالتالي يمكنك بالتأكيد الحصول على أي وجميع البيانات الموجودة في الذاكرة على أي حال ...

... لماذا قد تظهر بيانات الأشخاص الآخرين عن طريق الخطأ في منطقة بيانات APIC MMIO الملحمي تسريب؟

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

لسوء الحظ ، هذا الافتراض غير صحيح إذا كان أي برنامج على النظام يستخدم Intel's SGX ، باختصار ملحقات حماية البرمجيات.


اعرف المزيد عن SGX


يتم دعم SGX من قبل العديد من وحدات المعالجة المركزية Intel الحديثة ، وهي توفر طريقة لنواة نظام التشغيل لـ "ختم" جزء من التعليمات البرمجية والبيانات في كتلة فعلية من ذاكرة الوصول العشوائي وذلك لتشكيل ما يعرف باسم الجيب.

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

بمجرد تعيين "قفل" SGX الخاص بالمرفق ، يمكن فقط لكود البرنامج الذي يعمل داخل منطقة الذاكرة المغلقة قراءة وكتابة محتويات ذاكرة الوصول العشوائي تلك.

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

بما في ذلك النواة نفسها.

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

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

كما يمكنك أن تتخيل ، إذا كان من المفترض نسخ البيانات التي من المفترض أن تكون مختومة داخل جيب SGX بطريق الخطأ في ذاكرة الوصول العشوائي MMIO التي تُستخدم "لعكس" بيانات APIC عند استخدام وضع xAPIC "تعيين الذاكرة" ...

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

ما الذي يسبب هذا الفشل الملحمي في أيبك؟

الباحثون وراء ورق تسرب الموافقة المسبقة عن علم اكتشفوا أنه من خلال الترتيب لقراءة بيانات APIC عبر تسلسل ماكر وغير معتاد من عمليات الوصول إلى الذاكرة ...

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

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

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

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

هل يؤثر PIC Leak علي؟

للحصول على قائمة كاملة من الرقائق المتأثرة ، انظر الاستشارات الخاصة بشركة إنتل.

بقدر ما يمكننا أن نقول ، إذا كان لديك معالج Intel من الجيل العاشر أو الحادي عشر ، فمن المحتمل أن تتأثر.

ولكن إذا كان لديك وحدة معالجة مركزية جديدة من الجيل الثاني عشر (أحدثها وقت كتابة هذا التقرير) ، فيبدو أن الشرائح من فئة الخادم هي فقط التي تتأثر.

ومن المفارقات ، في رقائق الكمبيوتر المحمول من الجيل الثاني عشر ، تخلت Intel عن SGX ، لذلك لا ينطبق هذا الخطأ لأنه من المستحيل أن يكون لديك أي جيوب SGX "مختومة" يمكن أن تتسرب.

بالطبع ، حتى على شريحة معرضة للخطر ، إذا كنت لا تعتمد على أي برنامج يستخدم SGX ، فإن الخطأ لا ينطبق أيضًا.

والبق مدبلج CVE-2022-21233، لا يمكن استغلاله إلا من قبل مهاجم لديه بالفعل وصول محلي على مستوى المسؤول (الجذر) إلى جهاز الكمبيوتر الخاص بك.

المستخدمون العاديون لا يمكن الوصول إلى كتلة بيانات APIC MMIO ، وبالتالي لا توجد طريقة لإلقاء نظرة خاطفة على أي شيء على الإطلاق هناك ، ناهيك عن البيانات السرية التي ربما تكون قد تسربت من منطقة SGX.

أيضا، أجهزة افتراضية للضيوف (VMs) التي تعمل تحت سيطرة نظام تشغيل مضيف في برنامج Hypervisor مثل HyperV أو VMWare أو VirtualBox لا يمكن بالتأكيد استخدام هذه الحيلة لنهب الأسرار من الضيوف الآخرين أو المضيف نفسه.

وذلك لأن أجهزة VM الضيف بشكل عام لا يمكنها الوصول إلى دائرة APIC الحقيقية في المعالج المضيف ؛ بدلاً من ذلك ، يحصل كل ضيف على APIC المحاكي الخاص به والذي يتفرد به جهاز VM.

ماذا ستفعلين.. إذًا؟

لا داعي للذعر.

على جهاز كمبيوتر محمول أو كمبيوتر مكتبي ، قد لا تكون في خطر على الإطلاق ، إما لأن لديك جهاز كمبيوتر أقدم (أو ، محظوظًا ، جهاز كمبيوتر جديد تمامًا!) ، أو لأنك لا تعتمد على SGX على أي حال.

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

إذا كانت لديك خوادم ضعيفة وكنت تعتمد على SGX كجزء من الأمان التشغيلي ، فتحقق من إرشادات أمان Intel إنتل- SA-00657 للحصول على معلومات الحماية والتخفيف.

وفقًا للباحثين الذين كتبوا هذا ، "أصدرت Intel [] تحديثات الرمز الصغير و SGX Software Development Kit لإصلاح المشكلة."

يبدو أن فريق Linux kernel يعمل الآن على تصحيح يسمح لك بتهيئة نظامك بحيث يستخدم دائمًا x2APIC (والذي ، كما ستتذكر سابقًا ، لا ينقل بيانات APIC عبر الذاكرة المشتركة) ، وسيمنع النظام بأمان إعادة إجباره على وضع xAPIC بعد التمهيد.


الطابع الزمني:

اكثر من الأمن عارية