ما هو الفائض المخزن المؤقت؟ كيف تعمل هذه الأنواع من الهجمات؟ | تعريف من TechTarget
يحدث تدفق عازلة عندما يحاول البرنامج أو العملية كتابة المزيد من البيانات إلى كتلة ذات طول ثابت من الذاكرة ، أو المخزن المؤقت ، مما يتم تخصيص المخزن المؤقت للاحتفاظ به. تحتوي المخازن المؤقتة على كمية محددة من البيانات ؛ أي بيانات إضافية ستحقق قيم البيانات في عناوين الذاكرة المجاورة للمخزن المؤقت للوجهة.
يمكن تجنب هذا النوع من التدفق الفائض إذا كان البرنامج يتضمن حدود كافية للتحقق من العلم أو تجاهل البيانات عندما يتم إرسال الكثير إلى المخزن المؤقت للذاكرة. الفائض المخزن المؤقت من بين الأكثر استمرارًا وخطورة نقاط الضعف في البرمجيات، في كثير من الأحيان يستغلها المهاجمون للوصول غير المصرح به أو تنفيذ رمز تعسفي.
ما هو هجوم الفائض المخزن المؤقت وكيف يعمل المرء؟
يتيح استغلال تدفق المخزن المؤقت للمهاجم التحكم في عملية أو تعطلها أو تعديل متغيراته الداخلية. يحتل الفطائر العازلة دائمًا المرتبة العالية في تعداد الضعف الشائع (CWE) و بلا 25 أخطاء البرمجيات أكثر خطورة. يتم تحديد تدفق العازلة الكلاسيكية كـ CWE-120 في قاموس CWE لأنواع الضعف. على الرغم من فهمه جيدًا ، لا تزال الفائض المخزن المؤقت يستمر في الطاعون من البرامج من البائعين ، على حد سواء كبيرة وصغيرة.
يمكن أن يحدث فائض المخزن المؤقت عن غير قصد أو عندما يسبب ذلك ممثل ضار. أ ممثل التهديد يمكن إرسال مدخلات مصنوعة بعناية – يشار إليها باسم رمز تعسفي – لبرنامج. يحاول البرنامج تخزين المدخلات في المخزن المؤقت غير كبير بما يكفي للإدخال. إذا تمت كتابة البيانات الزائدة بعد ذلك إلى الذاكرة المجاورة ، فإنها تكتب أي بيانات موجودة بالفعل.
تتضمن البيانات الأصلية في المخزن المؤقت مؤشر إرجاع الوظيفة المستغلة – العنوان الذي يجب أن تذهب إليه العملية بعد ذلك. ومع ذلك ، يمكن للمهاجم تعيين قيم جديدة للإشارة إلى عنوان اختيارهم. عادة ما يضع المهاجم القيم الجديدة إلى موقع يستغل حمولة هو في وضع. يغير هذا التغيير مسار تنفيذ العملية ومراقبة التحويل إلى المهاجم رمز ضار.
غالبًا ما تتضمن هجمات الفائض العازلة الحديثة تقنيات التشويش المتقدمة لتجاوز الكشف واستغلال نقاط الضعف في الأنظمة في الوقت الفعلي.
أنواع هجمات الفائض العازلة
تختلف التقنيات لاستغلال نقاط الضعف في التدفق العازلة بناءً على نظام التشغيل (OS) ولغة البرمجة. ومع ذلك ، فإن الهدف هو دائمًا التلاعب ذاكرة الكمبيوتر لتخريب أو التحكم في تنفيذ البرنامج.
يتم تصنيف الفائض العازلة وفقًا لموقع المخزن المؤقت في ذاكرة العملية. معظمهم من الفائض القائم على المكدس أو الفائض القائم على الكومة. كلاهما يقيم في ذاكرة الوصول العشوائي للجهاز.
بعض أنواع هجمات الفائض العازلة تشمل ما يلي.
فائض المخزن المؤقت القائم على المكدس أو هجوم العازلة المخزن المؤقت
يحتفظ المكدس بالبيانات في بنية أخيرة في أولى. إنها مساحة مستمرة في الذاكرة المستخدمة لتنظيم البيانات المرتبطة بمكالمات الوظائف ، بما في ذلك معلمات الوظيفة ، والمتغيرات المحلية للوظيفة ومعلومات الإدارة ، مثل مؤشرات الإطار والتعليمات. عادةً ما يكون المكدس فارغًا حتى يتطلب البرنامج المستهدف إدخال المستخدم ، مثل اسم المستخدم أو كلمة المرور. عند هذه النقطة ، يكتب البرنامج عنوان ذاكرة الإرجاع إلى المكدس ، ثم يتم وضع إدخال المستخدم فوقه. عند معالجة المكدس ، يتم إرسال إدخال المستخدم إلى عنوان الإرجاع المحدد بواسطة البرنامج.
ومع ذلك ، فإن المكدس له حجم محدود. يجب أن يحجز المبرمج الذي يطور الرمز قدرًا محددًا من المساحة للمكدس. إذا كانت إدخال المستخدم أطول من مقدار المساحة المخصصة لها داخل المكدس ولا يتحقق البرنامج من أن الإدخال سوف يناسب ، فسيتم تجاوز المكدس. هذه ليست مشكلة كبيرة ، لكنها تصبح حفرة أمنية ضخمة عندما يتم دمجها مع مدخلات ضارة.

هجوم عازلة على أساس الكومة
الكومة هي بنية ذاكرة تستخدم للإدارة الذاكرة الديناميكية. غالبًا ما يستخدم المبرمجون الكومة لتخصيص الذاكرة التي يكون حجمها غير معروف في وقت الترجمة ، حيث تكون كمية الذاكرة المطلوبة كبيرة جدًا بحيث لا تتناسب مع المكدس أو أن يتم استخدام الذاكرة عبر مكالمات الوظائف. تغمر الهجمات القائمة على الكومة مساحة الذاكرة المخصصة لبرنامج أو عملية. نقاط الضعف القائمة على الكومة ، مثل تم اكتشاف خطأ في يوم صفر في Google Chrome في عام 2021 ، يصعب استغلالها ، لذلك فهي نادرة من هجمات المكدس.
الصدفة فائض الهجوم
تحدد معظم لغات البرمجة أقصى أحجام للأعداد الصحيحة. عند تجاوز هذه الأحجام ، قد تتسبب النتيجة في حدوث خطأ ، أو قد تُرجع نتيجة غير صحيحة ضمن حد طول عدد صحيح. يمكن أن يحدث هجوم الفائض الصحيح عند استخدام عدد صحيح في عملية حسابية ونتيجة الحساب هي قيمة أكثر من الحد الأقصى لحجم عدد صحيح. على سبيل المثال ، هناك حاجة إلى 8 بتات من الذاكرة لتخزين الرقم 192. إذا أضفت العملية 64 إلى هذا الرقم ، فلن تتناسب الإجابة 256 في الذاكرة المخصصة ، حيث تتطلب 9 بت.
هجوم سلاسل التنسيق
يغير المهاجمون الطريقة التي يتدفق بها التطبيق عن طريق إساءة استخدام وظائف مكتبة تنسيق السلسلة ، مثل PrintF و SprintF ، للوصول إلى مساحات الذاكرة الأخرى ومعالجتها.
يونيكود فائض الهجمات
تستغل هذه الهجمات الذاكرة الأكبر المطلوبة لتخزين سلسلة في يونيكود تنسيق مما كان عليه في رمز American Standard لتبادل المعلومات (ASCII) الشخصيات. يمكن استخدامها ضد البرامج التي تتوقع أن تكون جميع المدخلات أحرف ASCII.
أمثلة في العالم الحقيقي لهجمات الفائض العازلة
كانت هجمات الفائض العازلة أساسية لبعض من أكثر حوادث الأمن السيبراني البارزة:
- موريس دودة (1988): واحدة من أولى الإنترنت الديدان، استغل نقاط الضعف في التدفق العازلة في أنظمة UNIX ، مما تسبب في اضطراب واسع النطاق.
- Heartbleed (2014): على الرغم من وجود خلل في الإفصاح في الذاكرة بشكل أساسي ، القلب في OpenSSL حدود الذاكرة المستغلة ، مما يتيح للمهاجمين قراءة البيانات الحساسة.
- ال Wannacry Ransomware (2017): تم الاستفادة من EternalBlue ، وهو مستلزم في التدفق المخزن المؤقت الذي يستهدف أنظمة Windows ، للانتشار بسرعة عبر الشبكات.
تؤكد هذه الأمثلة على أهمية التدابير الاستباقية لاكتشاف وتخفيف نقاط الضعف في التدفق العازلة.
كيفية منع هجمات الفائض المخزن المؤقت
هناك عدة طرق ل منع هجمات الفائض المخزن المؤقت من الحدوث ، بما في ذلك الخمسة التالية:
- استخدم حماية وقت تشغيل نظام التشغيل. معظم الأفعال استخدام وقت التشغيل الحماية ، مثل ما يلي ، لجعل من الصعب على هجمات المخزن المؤقت في التدفق النجاح:
-
- العنوان تخطيط الفضاء العشوائي. ASLR يرتب بشكل عشوائي مواضع مساحة العنوان لمجالات البيانات الرئيسية في العملية. ويشمل ذلك قاعدة القابلة للتنفيذ ومواقف المكدس والكومة والمكتبات. هذا النهج يجعل من الصعب على المهاجم القفز بشكل موثوق إلى وظيفة معينة في الذاكرة.
- منع تنفيذ البيانات. علامات DEP مناطق الذاكرة إما قابلة للتنفيذ أو غير قابلة للتقسيم. هذا يمنع المهاجم من القدرة على تنفيذ الإرشادات المكتوبة إلى منطقة بيانات باستخدام تدفق مخزن مؤقت.
- استثناء منظم معالجة حماية الكتابة فوق. تم تصميم Sehop لمنع الهجمات التي تستخدم منظمة معالج الاستثناء الكتابة فوق تقنية ، والتي تنطوي على استخدام سعة عازلة قائمة على المكدس.
- الحفاظ على الأجهزة مصححة. قضية البائعين تصحيحات البرمجيات والتحديثات لإصلاح نقاط الضعف في التدفق المخزن المؤقت التي تم اكتشافها. لا تزال هناك فترة من الخطر بين الضعف الذي يتم اكتشافه والتصحيح الذي يتم إنشاؤه ونشره.
- اتبع مبدأ أقل امتياز (POLP). يجب إعطاء المستخدمين والتطبيقات فقط الأذونات التي يحتاجون إليها للقيام بوظائفهم أو أداء المهام التي يتم تعيينها. بعد أ polp النهج يقلل من إمكانية حدوث هجوم في التدفق المخزن المؤقت. في مثال هجوم Overflow Stack Fouldow ، يتم تشغيل نافذة موجه الأوامر التي تم فتحها بنفس مجموعة أذونات التطبيق الذي تم اختراقه ؛ كلما أقل من الامتيازات التي يتمتع بها ، كلما كان المهاجم أقل. عندما يكون ذلك ممكنا ، فقط منح امتيازات مؤقتة للمستخدمين والتطبيقات ، وإسقاطهم بمجرد الانتهاء من المهمة.
- استخدم لغات البرمجة الآمنة للذاكرة. السبب الأكثر شيوعًا في المخزن المؤقت الذي تعمل بهجمات التدفق العازلة هو أن التطبيقات تفشل إدارة الذاكرة المخصصات والتحقق من صحة المدخلات من العميل أو العمليات الأخرى. يجب أن تتجنب التطبيقات التي تم تطويرها في C أو C ++ وظائف المكتبة القياسية الخطرة التي لا يتم فحصها ، مثل GETS و SCANF و Strcpy. بدلاً من ذلك ، يجب عليهم استخدام المكتبات أو الفئات التي تم تصميمها لأداء سلسلة وعمليات الذاكرة الأخرى بشكل آمن. والأفضل من ذلك ، استخدام لغة برمجة تقلل من فرص التدفق العازفي ، مثل جافاو بيثون أو ج#.
- التحقق من صحة البيانات. يجب على تطبيقات الأجهزة المحمولة والويب التي تم تطويرها في الشركة دائمًا التحقق من صحة أي مدخلات وبيانات من المستخدمين من مصادر غير موثوق بها لضمان وجودها ضمن حدود ما هو متوقع ومنع قيم الإدخال الطويلة المفرطة. يجب أن تتطلب كل سياسة أمان التطبيق اختبار الضعف للإمكانات التحقق من صحة المدخلات وتجاوز المخزن المؤقت نقاط الضعف قبل النشر.
يجب أن تعرف المؤسسات العلامات الرئيسية لحوادث الأمان المشتركة وكيفية الاستجابة للحفاظ على الأنظمة والبيانات آمنة. تعرف على أنواع الحوادث الأمنية وكيفية منعها.