الحداد - هجوم جديد على ذاكرة DRAM وشرائح DDR4

نشر فريق من الباحثين من ETH Zurich وVrije Universiteit Amsterdam وQualcomm طريقة هجوم RowHammer جديدة يمكنها تغيير محتويات الأجزاء الفردية من ذاكرة الوصول العشوائي الديناميكي (DRAM). أطلق على الهجوم الاسم الرمزي Blacksmith وتم تحديده باسم CVE-2021-42114. العديد من شرائح DDR4 المجهزة بالحماية ضد أساليب فئة RowHammer المعروفة سابقًا تكون عرضة لهذه المشكلة. يتم نشر أدوات اختبار أنظمتك بحثًا عن نقاط الضعف على GitHub.

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

للحماية من RowHammer، اقترح مصنعو الرقائق آلية TRR (Target Row Refresh)، التي تحمي من تلف الخلايا في الصفوف المجاورة، ولكن بما أن الحماية كانت مبنية على مبدأ "الأمن بالغموض"، فإنها لم تحل المشكلة عند الجذر، ولكنه محمي فقط من الحالات الخاصة المعروفة، مما جعل من السهل إيجاد طرق لتجاوز الحماية. على سبيل المثال، في شهر مايو، اقترحت Google طريقة Half-Double، التي لم تتأثر بحماية TRR، نظرًا لأن الهجوم أثر على الخلايا التي لم تكن مجاورة مباشرة للهدف.

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

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

تبين أن هذه الطريقة أكثر فعالية بشكل ملحوظ من الأساليب المقترحة سابقًا لتجاوز TRR - تمكن الباحثون من تحقيق تشويه البت في جميع شرائح ذاكرة DDR40 الأربعين التي تم شراؤها مؤخرًا والتي تم تصنيعها بواسطة Samsung وMicron وSK Hynix وشركة مصنعة غير معروفة (كانت الشركة المصنعة غير محدد على 4 شرائح). وعلى سبيل المقارنة، كانت طريقة TRRespass التي اقترحها نفس الباحثين سابقًا فعالة لـ 4 شريحة فقط من أصل 13 تم اختبارها في ذلك الوقت.

بشكل عام، من المتوقع أن تنطبق طريقة Blacksmith على 94% من جميع شرائح DRAM الموجودة في السوق، لكن الباحثين يقولون إن بعض الرقائق أكثر عرضة للهجوم وأسهل للهجوم من غيرها. إن استخدام رموز تصحيح الأخطاء (ECC) في الرقائق ومضاعفة معدل تحديث الذاكرة لا يوفر حماية كاملة، ولكنه يزيد من تعقيد العملية. يشار إلى أن المشكلة لا يمكن حظرها في الرقائق التي تم إصدارها بالفعل وتتطلب تنفيذ حماية جديدة على مستوى الأجهزة، وبالتالي سيظل الهجوم ذا صلة لسنوات عديدة.

تتضمن الأمثلة العملية طرق استخدام Blacksmith لتغيير محتويات الإدخالات في جدول صفحات الذاكرة (PTE، إدخال جدول الصفحات) للحصول على امتيازات kernel، مما يؤدي إلى إتلاف المفتاح العام RSA-2048 المخزن في الذاكرة في OpenSSH (يمكنك إحضار المفتاح العام في جهاز افتراضي لشخص آخر لمطابقة المفتاح الخاص للمهاجم للاتصال بالجهاز الظاهري للضحية) وتجاوز التحقق من بيانات الاعتماد عن طريق تعديل ذاكرة عملية sudo للحصول على امتيازات الجذر. اعتمادًا على الشريحة، يستغرق الأمر من 3 ثوانٍ إلى عدة ساعات من وقت الهجوم لتغيير بتة هدف واحدة.

بالإضافة إلى ذلك، يمكننا أن نلاحظ نشر إطار عمل LiteX Row Hammer Tester المفتوح لاختبار طرق حماية الذاكرة ضد هجمات فئة RowHammer، الذي طورته شركة Antmicro لصالح Google. يعتمد الإطار على استخدام FPGA للتحكم الكامل في الأوامر المنقولة مباشرة إلى شريحة DRAM للتخلص من تأثير وحدة التحكم في الذاكرة. يتم تقديم مجموعة الأدوات في Python للتفاعل مع FPGA. تتضمن البوابة المستندة إلى FPGA وحدة نمطية لنقل حزم البيانات (تحدد أنماط الوصول إلى الذاكرة)، ومنفذ الحمولة، ووحدة التحكم المستندة إلى LiteDRAM (تعالج كل المنطق المطلوب لـ DRAM، بما في ذلك تنشيط الصف وتحديث الذاكرة) ووحدة المعالجة المركزية VexRiscv. يتم توزيع تطورات المشروع بموجب ترخيص Apache 2.0. يتم دعم منصات FPGA المختلفة، بما في ذلك Lattice ECP5 وXilinx Series 6 و7 وUltraScale وUltraScale+.

المصدر: opennet.ru

إضافة تعليق