ظهرت علامة في Linux kernel تقوم بتعطيل الحماية ضد ثغرات Specter v4 في جميع العمليات الفرعية التي تعمل على الخادم. المزيد عن المعلمة الجديدة - تحت الخفض.
/ فليكر / ري H / CC BY / الصورة تغيرتلماذا تحتاج إلى تعطيل الحماية
أصبحت مجموعة الثغرات الخاصة بمعالج Specter معروفة لأول مرة في بداية عام 2018 ، وخلال الأشهر المقبلة تم تجديد هذه العائلة بـ "ثغرات أمنية" جديدة. ترتبط نقاط الضعف بتشغيل الأنظمة التي تزيد من أداء المعالج - الكتابة
المضاربة والقراءة
والتنبؤ بالانتقالات -
وتسمح للمهاجمين بتجاوز آليات عزل الذاكرة في المعالجات من Intel و AMD.
لإغلاق نقاط الضعف ، يقوم مطورو أنظمة التشغيل بإصدار تصحيحات ، ولكن تثبيتها غالبًا ما يؤدي إلى انخفاض في سرعة الخوادم. على سبيل المثال ، على أجهزة Linux ، تعمل بعض تصحيحات Specter على
خفض الأداء بنسبة 30 إلى 50٪.
كان مسؤولو النظام غير راضين عن المشكلة ، خاصة في مراكز البيانات الكبيرة. بدأوا يطلبون من مطوري kernel Linux تعطيل حماية Specter بشكل انتقائي. بعض نقاط الضعف المكتشفة هي نظرية فقط في الطبيعة ، وفي عدد من الأنظمة التي لا يمكن أن تسبب الضرر بشكل أساسي. على سبيل المثال ، يتم قطع اتصال المزارع وجهاز الكمبيوتر العملاق غير المتصل بالإنترنت ، بحيث
لا يخافون من الحقن البرمجية الخبيثة.
قابل فريق Linux المستخدمين وقدموا العديد من الوظائف التي تعطل الحماية ضد نقاط الضعف Specter v1 و v2 (سنتحدث عنهم لاحقًا) و v4. تم تقديم آخرها في أوائل فبراير لجميع إصدارات kernel الحالية - هذه هي العلامة الجديدة PR_SPEC_DISABLE_NOEXEC.
ماذا ولماذا تعطيل الوظيفة
وتسمى مشكلة ضعف Specter v4 بـ Bypass Store Bypass. فهو يتيح للبرامج الضارة الوصول إلى نتائج الحوسبة المضاربة التي تجاهلها المعالج سابقًا باعتبارها غير ضرورية.
يحدث هذا الموقف عندما تتناوب وحدة المعالجة المركزية القراءة والكتابة باستخدام عنونة غير مباشرة. تحدث القراءة أكثر من الكتابة ، ويمكن للمعالج استخدام البيانات من الذاكرة لتحديد عنوان القراءة دون انتظار حساب إزاحة العنوان غير المباشر. إذا تم ، بعد حساب الإزاحة ، اكتشاف تقاطع في مناطق الذاكرة للكتابة والقراءة (أي ، تم إجراء القراءة من المنطقة الخاطئة) ، يتم تنفيذ العملية الثانية مرة أخرى ، ويتم تجاهل نتيجة المضاربة.
من الناحية النظرية ، اتضح أنه إذا كان المهاجم يعرف عناوين خلايا الذاكرة وهيكلها ، فيمكنه استخراج البيانات منها ، مثل مفاتيح التشفير.
ظهر تصحيح Specter v4 في نواة Linux بعد أيام قليلة من نشر معلومات حول مشكلة عدم الحصانة - بشكل افتراضي ،
أوقف تشغيل وظيفة
إلغاء الغموض في الذاكرة ، مما سمح بتنفيذ الأوامر بشكل استثنائي. لكن هذا
أبطأ عمليات الإدخال / الإخراج للمعالج بنسبة 10-40 ٪.
/ فليكر / ري H / CC BY-SAوفي أوائل يونيو 2018 ، جعل إصدار kernel 4.17 من الممكن تعطيل هذه الحماية. كانت هناك مشكلة واحدة: لم يتم تمرير المعلمة من الأصل إلى العملية الفرعية. بالنسبة لهم ، كان لا بد من تعطيل الحماية يدويا ، مما تسبب في إزعاج لمسؤولي النظام. ولكن في أوائل فبراير ، قام مطورو برامج kernel بتطبيق العلامة
PR_SPEC_DISABLE_NOEXEC . وهو يكمل الوظيفة السابقة وينسخ وضع التشغيل الخاص بالرقعة من Specter v4 من العملية الأصل إلى تلك التابعة. PR_SPEC_DISABLE_NOEXEC جزء من prctl ، ويمكنك تمكينه عند بدء أي عملية جديدة.
ماذا يقول الخبراء
في القائمة البريدية لمطوري Linux kernel ، كتب مقدمة العلامة الجديدة Waiman Long of Red Hat. وفقًا له ، تؤثر الحماية من Specter v4 بشكل كبير على أداء التطبيقات التي تقوم بالعديد من عمليات الكتابة ، مثل قواعد البيانات. سيساعد PR_SPEC_DISABLE_NOEXEC في أتمتة عملية التحقق لتعطيل خوادم التصحيح والتصحيح مع عدد كبير من العمليات قيد التشغيل في وقت واحد.
في الوقت نفسه ، يلاحظ المشاركون في مجتمع تكنولوجيا المعلومات أنه في بعض المواقف ،
يمكن أن تؤدي المعاملة غير المبالية لعلم جديد إلى عواقب غير سارة.
يقول سيرجي بلكين ، رئيس قسم تطوير مزود IaaS 1cloud.ru: "تجدر الإشارة إلى أنه في بعض البيئات ، ليس من الآمن تعطيل الحماية من Specter v4". - تشمل هذه ، على سبيل المثال ، خدمات الويب التي تستخدم Java و JavaScript. قد يكون الكشف عن محتويات عملية التحكم بواسطة التعليمات البرمجية قاتلاً بالنسبة لأمان التطبيق.
حول تصحيحات Specter الأخرى في Linux kernel
بالإضافة إلى علامة PR_SPEC_DISABLE_NOEXEC ، يوجد في Linux kernel معلمات أخرى تعمل على تعطيل حماية Specter.
أول واحد هو
nospectre_v2 . تقوم الوظيفة بتعطيل الحماية من Specter v2 ، والتي تسمح للمهاجمين
باستخدام كتلة التنبؤ بالانتقال من أجل "إجبار" المعالج على إجراء عملية مضاربة في وحدة ذاكرة محددة. للحماية ، يقوم التصحيح
بتعطيل وظيفة التنبؤ بالانتقال غير المباشر ويحظر نقل المعلومات المستلمة بين مؤشرات الترابط في نفس وحدة المعالجة المركزية.
يؤدي تعطيل الحماية إلى زيادة في أداء المعالج بنسبة 30 ٪ - وهذا هو ما حدث بعد تثبيت التصحيح من Specter v2. حتى مؤلف Linux ، Linus Torvalds ، دعم الميزة الجديدة. ووفقا له ، فإن مشكلة عدم الحصانة تهدد المعالجات التي لها وظيفة
SMT فقط ، وفي هذه الحالة بالذات سيكون من الأكثر ربحية تعطيلها.
المعلمة الثانية -
nospectre_v1 - تعطيل الحماية من الخيار Specter الأول. بمساعدة البرامج الضارة ، يمكن للمتسللين أن يتسببوا في توقع المعالج بشكل غير صحيح لنتائج الانتقال الشرطي وتجاهل نتائج العمليات الحسابية المضاربة في منطقة الذاكرة التي يحتاجها المتسللون. على الرغم من أن التصحيح من الإصدار 1 لا يؤثر بشكل كبير على الأداء (وفقًا لبعض
التقارير ، يمكن إهمال تقليل سرعة المعالج على الإطلاق) ، إلا أن المطورين
طلبوا إضافة القدرة على تعطيل هذه الحماية إلى النواة. هذا سمح لنا بتبسيط بنية الشبكات المعزولة من الوصول الخارجي.
يظل مجتمع Linux kernel وفيا لفكرة الاختيار الحر التي
وضعها Linus Torvalds في البداية: المستخدمون أنفسهم مسؤولون عن تحقيق التوازن بين أمان وأداء أنظمة Linux. لذلك ، يجدر التوقع أنه عند اكتشاف ثغرات أمنية جديدة مشابهة لـ Specter في النواة ، ستظهر كلاً من التصحيح والقدرة على تعطيله.
المشاركات من مدونة الشركات لدينا: