عشوائية تخطيط مساحة العناوين
تُعدّ تقنية عشوائية تخطيط مساحة العناوين ( ASLR ) إحدى تقنيات أمن الحاسوب التي تُستخدم لمنع استغلال ثغرات تلف الذاكرة . [ 1 ] ولمنع المهاجم من إعادة توجيه تنفيذ التعليمات البرمجية بشكل موثوق إلى دالة مُستغلة مُحددة في الذاكرة، تقوم ASLR بترتيب مواقع مساحة العناوين لمناطق البيانات الرئيسية للعملية بشكل عشوائي، بما في ذلك قاعدة الملف التنفيذي ومواقع المكدس والكومة والمكتبات . وعند تطبيقها على نواة النظام ، تُسمى هذه التقنية عشوائية تخطيط مساحة عناوين النواة ( KASLR ). [ 2 ]
تاريخ
كان مشروع لينكس باكس أول من صاغ مصطلح "ASLR"، ونشر أول تصميم وتنفيذ لتقنية ASLR في يوليو 2001 كتصحيح لنواة لينكس . ويُعتبر هذا التصحيح تنفيذاً كاملاً، حيث يوفر تصحيحاً لعشوائية مكدس النواة منذ أكتوبر 2002. [ 3 ]
كان نظام التشغيل الرئيسي الأول الذي يدعم ASLR بشكل افتراضي هو OpenBSD الإصدار 3.4 في عام 2003، [ 4 ] [ 5 ] متبوعًا بنظام Linux في عام 2005.
فوائد
يُعيق التوزيع العشوائي لعناوين الذاكرة بعض أنواع الهجمات الأمنية، إذ يُصعّب على المهاجم التنبؤ بالعناوين المستهدفة. فعلى سبيل المثال، يجب على المهاجمين الذين يحاولون تنفيذ هجمات العودة إلى مكتبة libc تحديد موقع الكود المراد تنفيذه، بينما يتعين على مهاجمين آخرين يحاولون تنفيذ شيفرة خبيثة مُحقونة في مكدس الذاكرة العثور على المكدس أولًا. في كلتا الحالتين، يجعل النظام عناوين الذاكرة ذات الصلة غير قابلة للتنبؤ من وجهة نظر المهاجمين. يجب تخمين هذه القيم، وعادةً ما يكون التخمين الخاطئ غير قابل للاسترداد بسبب تعطل التطبيق.
فعالية
تعتمد عشوائية تخطيط مساحة العناوين على انخفاض احتمالية تخمين المهاجم لمواقع المناطق الموضوعة عشوائيًا. ويزداد الأمان بزيادة مساحة البحث. لذا، تكون عشوائية مساحة العناوين أكثر فعالية عند وجود قدر أكبر من العشوائية في الإزاحات العشوائية. ويمكن زيادة العشوائية إما بزيادة مساحة منطقة الذاكرة الافتراضية التي تُجرى عليها العشوائية أو بتقليل الفترة الزمنية التي تُجرى خلالها. وعادةً ما تُنفذ الفترة الزمنية بأصغر حجم ممكن، لذا يتعين على معظم الأنظمة زيادة عشوائية مساحة منطقة الذاكرة الافتراضية.
للتغلب على العشوائية، يجب على المهاجمين تخمين مواقع جميع المناطق التي يرغبون في مهاجمتها بدقة. بالنسبة لمناطق البيانات مثل المكدس والكومة، حيث يمكن تحميل تعليمات برمجية مخصصة أو بيانات مفيدة، يمكن مهاجمة أكثر من حالة واحدة باستخدام عمليات NOP لتمرير التعليمات البرمجية أو نسخ البيانات المتكررة. وهذا يسمح بنجاح الهجوم إذا تم اختيار المنطقة عشوائيًا لإحدى القيم المحدودة. في المقابل، يجب اكتشاف مناطق التعليمات البرمجية مثل قاعدة المكتبة والملف التنفيذي الرئيسي بدقة. غالبًا ما تكون هذه المناطق مختلطة، على سبيل المثال، يتم حقن إطارات المكدس في المكدس ثم إعادة المكتبة إليه.
يمكن تعريف المتغيرات التالية:
- (بتات الإنتروبيا في قمة المكدس)
- (بتات الإنتروبيا
mmap()الأساسية) - (بتات الإنتروبيا للقاعدة التنفيذية الرئيسية)
- (بتات الإنتروبيا لقاعدة الكومة)
- (عدد البتات التي تم مهاجمتها لكل محاولة من إنتروبيا المكدس)
- (عدد البتات التي تم مهاجمتها لكل محاولة من
mmap()الإنتروبيا الأساسية) - (عدد البتات التي تم مهاجمتها لكل محاولة من إنتروبيا الملف التنفيذي الرئيسي)
- (عدد البتات التي تم مهاجمتها لكل محاولة من إنتروبيا قاعدة الكومة)
- (محاولات جارية)
- (إجمالي كمية الإنتروبيا:)
لحساب احتمالية نجاح المهاجم، يجب افتراض عدد من المحاولات (α) التي تُنفذ دون أن يعترضها نظام منع الاختراق القائم على التوقيعات، أو جهات إنفاذ القانون، أو أي عامل آخر؛ ففي حالة الهجوم العنيف، لا يمكن إعادة تشغيل البرنامج. كما يجب حساب عدد البتات ذات الصلة وعدد البتات التي يتم مهاجمتها في كل محاولة، ليتبقى عدد البتات التي يتعين على المهاجم اختراقها.
تمثل الصيغ التالية احتمالية النجاح لمجموعة معينة من α محاولات على N بت من الإنتروبيا.
- (تخمين معزول؛ يتم إعادة توزيع مساحة العناوين عشوائياً بعد كل محاولة)
- (عملية اختراق منهجية على نسخ من البرنامج لها نفس مساحة العنوان)
في العديد من الأنظمة،قد يصل العدد إلى الآلاف أو الملايين. في الأنظمة ذات 32 بت، يبلغ مقدار الإنتروبيا N النموذجي 8 بتات. [ 6 ] بالنسبة لسرعات الحواسيب في عام 2004، ذكر شاشام وزملاؤه أن "... 16 بتًا من عشوائية العناوين يمكن اختراقها بهجوم القوة الغاشمة في غضون دقائق." [ 7 ] (يعتمد بيان المؤلفين على القدرة على مهاجمة التطبيق نفسه عدة مرات دون أي تأخير. توفر التطبيقات الصحيحة لتقنية ASLR، مثل تلك المضمنة في grsecurity، عدة طرق لجعل مثل هذه الهجمات بالقوة الغاشمة غير ممكنة. إحدى هذه الطرق تتضمن منع ملف تنفيذي من العمل لفترة زمنية قابلة للتكوين إذا تعطل عددًا معينًا من المرات.) في الأنظمة الحديثةأما بالنسبة للأنظمة ذات 64 بت ، فتصل هذه الأرقام عادةً إلى الملايين على الأقل.
يُطبّق نظام أندرويد [ 8 ] ، وربما أنظمة أخرى، تقنية عشوائية ترتيب تحميل المكتبات (LASLR)، وهي شكل من أشكال ASLR التي تُغيّر ترتيب تحميل المكتبات عشوائيًا. يُوفّر هذا القليل جدًا من العشوائية. يظهر أدناه تقدير لعدد بتات العشوائية المُوفّرة لكل مكتبة مطلوبة؛ وهذا لا يأخذ في الحسبان أحجام المكتبات المختلفة، لذا فإن العشوائية الفعلية المُكتسبة أعلى نوعًا ما. عادةً ما يحتاج المهاجمون إلى مكتبة واحدة فقط؛ وتكون الحسابات أكثر تعقيدًا مع وجود مكتبات متعددة، كما هو موضح أدناه أيضًا. حالة استخدام المهاجم لمكتبة واحدة فقط هي تبسيط للصيغة الأكثر تعقيدًا لـ.
- l (عدد المكتبات المحملة)
- β (عدد المكتبات التي يستخدمها المهاجم)
تميل هذه القيم إلى أن تكون منخفضة حتى بالنسبة للقيم الكبيرة لـ l ، والأهم من ذلك أن المهاجمين عادةً ما يستخدمون مكتبة C القياسية فقط ، وبالتالي يمكن للمرء أن يفترض في كثير من الأحيان أنمع ذلك، حتى مع عدد قليل من المكتبات، يُمكن تحقيق بعض التحسين في مستوى العشوائية؛ لذا، من المفيد دمج عشوائية ترتيب تحميل المكتبات مع عشوائية عناوين VMA لتحقيق تحسين إضافي في مستوى العشوائية. لن تُطبّق هذه التحسينات الإضافية على أجزاء mmap() الأخرى، بل على المكتبات فقط.
تقليل الإنتروبيا
قد يلجأ المهاجمون إلى عدة أساليب لتقليل العشوائية في مساحة العناوين العشوائية، بدءًا من تسريبات المعلومات البسيطة وصولًا إلى استهداف عدة بتات من العشوائية في كل هجوم (مثل رش الذاكرة ). ولا يُمكن فعل الكثير حيال ذلك.
من الممكن تسريب معلومات حول تخطيط الذاكرة باستخدام ثغرات سلاسل التنسيق . تستخدم دوال سلاسل التنسيق، مثل printf، قائمة وسائط متغيرة لأداء وظيفتها؛ وتصف مُحدِّدات التنسيق شكل قائمة الوسائط. ونظرًا لطريقة تمرير الوسائط عادةً، يقترب كل مُحدِّد تنسيق من أعلى إطار المكدس. في النهاية، يمكن استخراج مؤشر الإرجاع ومؤشر إطار المكدس، مما يكشف عنوان مكتبة مُعرَّضة للثغرات وعنوان إطار مكدس معروف؛ وهذا بدوره يُزيل عشوائية المكتبة والمكدس كعائق أمام المهاجم.
يمكن أيضًا تقليل الإنتروبيا في المكدس أو الكومة. عادةً ما يجب محاذاة المكدس إلى 16 بايت، وبالتالي فهذه أصغر فترة عشوائية ممكنة؛ بينما يجب محاذاة الكومة مع الصفحات، وعادةً ما تكون 4096 بايت. عند محاولة شن هجوم، من الممكن محاذاة الهجمات المتكررة مع هذه الفترات؛ يمكن استخدام انزلاق NOP مع حقن الشفرة الخبيثة/bin/sh ، ويمكن استبدال السلسلة ' ' بـ ' ////////bin/sh' لعدد عشوائي من الشرطات المائلة عند محاولة العودة إلى النظام . عدد البتات التي تمت إزالتها هو بالضبطتم مهاجمة n فترة زمنية.
تُحدَّد هذه الانخفاضات بسبب كمية البيانات الموجودة في المكدس أو الكومة. فالمكدس، على سبيل المثال، عادةً ما يكون محدودًا بـ8 ميجابايت [ 9 ] وتزداد إلى أقل من ذلك بكثير؛ وهذا يسمح على الأكثر19 بت ، على الرغم من أن التقدير الأكثر تحفظًا سيكون حوالي 8-10 بتات تقابل 4–١٦ كيلوبايت [ ٩ ] من حشو المكدس. من ناحية أخرى، فإن حجم الكومة محدود بسلوك مُخصِّص الذاكرة؛ ففي حالة مكتبة glibc ، تُنشأ التخصيصات التي تزيد عن ١٢٨ كيلوبايت باستخدام mmap ، مما يحد من قدرة المهاجمين على التخفيض إلى ٥ بتات. يُعد هذا أيضًا عاملًا مُقيِّدًا عند استخدام أسلوب التخمين العشوائي؛ فعلى الرغم من إمكانية تقليل عدد الهجمات، إلا أن حجم الهجمات يزداد بشكل كافٍ بحيث يُمكن في بعض الحالات أن يصبح هذا السلوك واضحًا لأنظمة كشف التسلل .
القيود
يمكن تسريب العناوين المحمية بتقنية ASLR عبر قنوات جانبية متعددة، مما يُفقدها فعاليتها في التخفيف من المخاطر. وقد استغلت هجمات حديثة معلومات مُسرّبة من مخزن التنبؤ بأهداف التفرع (BTB) في وحدة المعالجة المركزية أو من جداول صفحات وحدة إدارة الذاكرة (MMU). ولا يزال من غير الواضح ما إذا كان بالإمكان التخفيف من هذا النوع من هجمات ASLR. وإذا لم يكن ذلك ممكنًا، فإن فائدة ASLR ستتقلص أو تُزال تمامًا.
التحليل التجريبي
في أغسطس 2024، نُشرت ورقة بحثية [ 10 ] تتضمن تحليلًا تجريبيًا لمنصات سطح المكتب الرئيسية، بما في ذلك لينكس وماك أو إس وويندوز، وذلك من خلال دراسة التباين في مواقع عناصر الذاكرة عبر مختلف العمليات والخيوط وإعادة تشغيل النظام. تُظهر النتائج أنه في حين أن بعض الأنظمة، مثل توزيعات لينكس، توفر عشوائية قوية حتى عام 2024، فإن أنظمة أخرى، مثل ويندوز وماك أو إس، غالبًا ما تفشل في تحقيق عشوائية كافية في مناطق رئيسية مثل التعليمات البرمجية القابلة للتنفيذ والمكتبات. علاوة على ذلك، وجد الباحثون انخفاضًا ملحوظًا في إنتروبيا المكتبات بعد إصدار لينكس 5.18، وحددوا مسارات ارتباط يمكن للمهاجم استغلالها لتقليل تعقيد الاستغلال بشكل كبير.
التطبيقات
تُطبّق العديد من أنظمة التشغيل الشائعة ذات الأغراض العامة تقنية ASLR.
أندرويد
يُوفر نظام أندرويد 4.0 آيس كريم ساندويتش تقنية عشوائية تخطيط مساحة العناوين (ASLR) للمساعدة في حماية تطبيقات النظام وتطبيقات الطرف الثالث من الثغرات الأمنية الناتجة عن مشاكل إدارة الذاكرة. أُضيف دعم الملفات التنفيذية المستقلة عن الموقع في أندرويد 4.1. [ 11 ] تخلّى أندرويد 5.0 عن دعم الملفات غير المستقلة عن الموقع، ويشترط أن تكون جميع الملفات الثنائية المرتبطة ديناميكيًا مستقلة عن الموقع. [ 12 ] [ 13 ] قُبلت تقنية عشوائية ترتيب تحميل المكتبات في مشروع أندرويد مفتوح المصدر في 26 أكتوبر 2015، [ 8 ] وأُدرجت في إصدار أندرويد 7.0.
دراجون فلاي بي إس دي
يحتوي نظام DragonFly BSD على تطبيق لتقنية ASLR يعتمد على نموذج OpenBSD، تمت إضافته في عام 2010. [ 14 ] وهي معطلة افتراضيًا، ويمكن تمكينها عن طريق ضبط sysctl vm.randomize_mmap على 1.
فري بي إس دي
ظهر دعم ASLR في FreeBSD 13.0. [ 15 ] [ 16 ] وهو مُفعّل افتراضيًا منذ الإصدار 13.2. [ 17 ]
نظام التشغيل iOS (آيفون، آيبود تاتش، آيباد)
قدمت شركة آبل تقنية ASLR في نظام التشغيل iOS 4.3 (الذي صدر في مارس 2011). [ 18 ]
تم تقديم KASLR في نظام iOS 6. [ 19 ] أساس النواة العشوائي هو 0x01000000 + ((1+0xRR) * 0x00200000)، حيث 0xRRيمثل بايتًا عشوائيًا من SHA1 (بيانات عشوائية) تم إنشاؤه بواسطة iBoot (محمل الإقلاع الثاني لنظام iOS). [ 20 ]
لينكس
فعّلت نواة لينكس شكلاً ضعيفاً من تقنية ASLR افتراضياً منذ إصدار النواة 2.6.12، الذي صدر في يونيو 2005. [ 21 ] توفر حزم تصحيح PaX و Exec Shield لنواة لينكس تطبيقات أكثر اكتمالاً. توفر حزمة تصحيح Exec Shield لنظام لينكس 19 بت من عشوائية المكدس على فترة 16 بايت، و8 بت من عشوائية قاعدة mmap على فترة صفحة واحدة بحجم 4096 بايت. يضع هذا قاعدة المكدس في منطقة عرضها 8 ميجابايت تحتوي على 524288 موضعاً محتملاً، وقاعدة mmap في منطقة عرضها 1 ميجابايت تحتوي على 256 موضعاً محتملاً.
يمكن تعطيل ASLR لعملية معينة عن طريق تغيير نطاق تنفيذها، باستخدام [ 22 ]personality(2) . يتحكم عدد من خيارات sysctl في سلوك ASLR الأساسي. على سبيل المثال، يتحكم الخيار `-1` في ما يتم عشوائيته؛ وأقوى خيار هو 2. ويتحكم الخيار `-2` في عدد البتات التي يتم عشوائيتها لـ mmap . [ 23 ]kernel.randomize_va_spacevm.mmap_rnd_bits
تُطبّق خاصية الملف التنفيذي المستقل عن الموقع (PIE) عنوانًا أساسيًا عشوائيًا للملف التنفيذي الرئيسي، وهي مُفعّلة منذ 18 أبريل 2004. وتُوفّر هذه الخاصية نفس عشوائية العنوان المُستخدمة للمكتبات المشتركة. لا يُمكن استخدام خاصية PIE مع خاصية الربط المُسبق (prelink) لنفس الملف التنفيذي. تُطبّق أداة الربط المُسبق عملية العشوائية أثناء الربط المُسبق وليس أثناء التشغيل، لأنّ الهدف من الربط المُسبق هو معالجة نقل المكتبات قبل أن يقوم الرابط الديناميكي بذلك، مما يسمح بإجراء عملية النقل مرة واحدة فقط لعدة مرات من تشغيل البرنامج. ونتيجةً لذلك، فإنّ تطبيق عشوائية حقيقية على مساحة العناوين سيُفقد الربط المُسبق جدواه.
في عام ٢٠١٤، كشف ماركو-جيسبرت وريبول عن تقنية offset2lib التي تُضعف آلية ASLR في لينكس لملفات PIE التنفيذية. تقوم نواة لينكس بتحميل ملفات PIE التنفيذية مباشرةً بعد مكتباتها؛ ونتيجةً لذلك، يوجد إزاحة ثابتة بين الملف التنفيذي ووظائف المكتبة. إذا تمكن المهاجم من تحديد عنوان دالة في الملف التنفيذي، فسيُعرف عنوان المكتبة أيضًا. وقد أثبتا هجومًا تمكن من تحديد العنوان في أقل من ٤٠٠ محاولة. اقترحا randomize_va_space=3خيارًا جديدًا لتوزيع موضع الملف التنفيذي عشوائيًا بالنسبة للمكتبة، [ ٦ ] ولكنه لم يُدمج في المصدر الرئيسي حتى عام ٢٠٢٤. [ ٢٤ ]
أدى إصدار نواة لينكس 5.18 في مايو 2022 إلى تقليل فعالية كلٍ من تطبيقات 32 بت و64 بت. تستدعي أنظمة ملفات لينكس استدعاءً thp_get_unmapped_areaللاستجابة لطلب mmap مدعوم بملف . مع التغيير في الإصدار 5.18، أصبحت الملفات التي يزيد حجمها عن 2 ميجابايت تُرجع عناوين مُحاذية لحجم 2 ميجابايت، مما يسمح بدعمها بصفحات ضخمة . (سابقًا، كان تحسين المحاذاة يقتصر على تعيينات الوصول المباشر (DAX)). في الوقت نفسه، ازداد حجم مكتبة C (libc) بمرور الوقت ليتجاوز عتبة 2 ميجابايت، لذا فبدلاً من محاذاتها لحدود صفحة (عادةً) 4 كيلوبايت كما كان سابقًا، أصبحت هذه المكتبات الآن مُحاذية لحجم 2 ميجابايت: أي فقدان 9 بتات من العشوائية. بالنسبة لأنظمة لينكس 32 بت، لا تُظهر العديد من التوزيعات أي عشوائية في موضع مكتبة libc. في نظام لينكس 64 بت، يتم تقليل قيمة الإنتروبيا من 28 بت إلى 19 بت. واستجابةً لذلك، قامت أوبونتو بزيادة هذه mmap_rnd_bitsالقيمة. [ 25 ] أضاف مارتن دوشا حالة اختبار في مشروع اختبار لينكس للكشف عن هذه المشكلة. [ 26 ]
عشوائية تخطيط مساحة عناوين النواة
تُمكّن تقنية KASLR (توزيع عشوائي لتخطيط مساحة عناوين النواة) من توزيع مساحة العناوين في صورة نواة لينكس، وذلك عن طريق تغيير موضع كود النواة عشوائيًا عند بدء التشغيل. [ 27 ] دُمجت KASLR في نواة لينكس الرئيسية في الإصدار 3.14، الذي صدر في 30 مارس 2014. [ 28 ] عند تضمينها في النواة، يمكن تعطيلها عند بدء التشغيل بتحديد nokaslr كأحد معلمات بدء تشغيل النواة. [ 29 ]
توجد عدة هجمات جانبية في معالجات x86 قد تؤدي إلى تسريب عناوين النواة. [ 30 ] [ 31 ] في أواخر عام 2017، طُوِّرت تقنية عزل جداول صفحات النواة (KPTI، المعروفة أيضًا باسم KAISER) للتصدي لهذه الهجمات. [ 32 ] [ 33 ] مع ذلك، لا تستطيع هذه الطريقة الحماية من الهجمات الجانبية التي تستغل التصادمات في هياكل مُتنبئات التفرعات . [ 34 ]
اعتبارًا من عام 2021يُعدّ التوزيع العشوائي الدقيق لتخطيط مساحة عناوين النواة (أو KASLR على مستوى الوظائف، FGKASLR) امتدادًا مُخططًا له لتقنية KASLR، حيث يهدف إلى التوزيع العشوائي على مستوى الوظائف عن طريق وضع الوظائف في أقسام منفصلة وإعادة ترتيبها عند بدء التشغيل. [ 35 ]
مايكروسوفت ويندوز
تُفعّل تقنية ASLR في أنظمة تشغيل مايكروسوفت ويندوز فيستا ( التي طُرحت للتصنيع في نوفمبر 2006، وأصبحت متاحة للجمهور في يناير 2007) والإصدارات الأحدث منها فقط للملفات التنفيذية ومكتبات الارتباط الديناميكي المرتبطة خصيصًا لتفعيل ASLR. [ 36 ] ولأسباب تتعلق بالتوافق، لا تُفعّل هذه التقنية افتراضيًا في التطبيقات الأخرى. عادةً، تكون البرامج القديمة فقط هي غير المتوافقة، ويمكن تفعيل ASLR بالكامل عن طريق تعديل إدخال في سجل النظام HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\MoveImages، [ 37 ] أو عن طريق تثبيت مجموعة أدوات تجربة التخفيف المحسّنة من مايكروسوفت .
يتم أيضًا اختيار مواقع الذاكرة المخصصة (heap) ، ومكدس الذاكرة (stack) ، وكتلة بيئة العملية (Process Environment Block)، وكتلة بيئة الخيط (Thread Environment Block) عشوائيًا. وأشارت ورقة بحثية أمنية من شركة سيمانتك إلى أن تقنية ASLR في نظام التشغيل ويندوز فيستا 32 بت قد لا تكون قوية كما هو متوقع، وقد أقرت مايكروسوفت بوجود ثغرة في تطبيقها. [ 38 ]
توفر أنظمة منع الاختراق المعتمدة على المضيف ، مثل WehnTrust [ 39 ] و Ozone [ 40 ] ، تقنية ASLR لأنظمة التشغيل Windows XP و Windows Server 2003. WehnTrust مفتوح المصدر. [ 41 ] لا تتوفر تفاصيل كاملة عن تطبيق Ozone. [ 42 ]
لوحظ في فبراير 2012 [ 43 ] أن فعالية تقنية ASLR على أنظمة ويندوز 32 بت قبل ويندوز 8 قد تنخفض في حالات نقص الذاكرة. وقد لوحظ تأثير مماثل على نظام لينكس في البحث نفسه. تسبب رمز الاختبار في حدوث عطل في نواة نظام ماك أو إس إكس 10.7.3 ، مما جعل سلوك ASLR في هذا السيناريو غير واضح.
نظام التشغيل NetBSD
ظهر دعم ASLR في مساحة المستخدم في NetBSD 5.0 (صدر في أبريل 2009)، [ 44 ] وتم تمكينه افتراضيًا في NetBSD-current في أبريل 2016. [ 45 ]
تمت إضافة دعم ASLR لنواة amd64 في NetBSD-current في أكتوبر 2017، مما جعل NetBSD أول نظام BSD يدعم KASLR. [ 46 ]
أوبن بي إس دي
في عام 2003، أصبح نظام OpenBSD أول نظام تشغيل شائع يدعم شكلاً قوياً من تقنية ASLR ويُفعّلها افتراضياً. [ 4 ] أكمل OpenBSD دعمه لتقنية ASLR في عام 2008 بإضافة دعمه للملفات التنفيذية المستقلة عن الموقع (PIE) . [ 47 ] صُممت دالة malloc(3) في OpenBSD 4.4 لتحسين الأمان من خلال الاستفادة من ميزات ASLR وصفحات الفجوات المُطبقة كجزء من mmapاستدعاءات نظام OpenBSD ، وللكشف عن أخطاء استخدام الذاكرة بعد تحريرها. [ 48 ] في عام 2013، كان OpenBSD 5.3 أول نظام تشغيل شائع يُفعّل الملفات التنفيذية المستقلة عن الموقع افتراضياً على منصات أجهزة متعددة ، كما فعّل OpenBSD 5.7 الملفات التنفيذية الثابتة المستقلة عن الموقع (Static-PIE) افتراضياً. [ 47 ]
نظام التشغيل macOS
في نظام التشغيل Mac OS X Leopard 10.5 (الذي صدر في أكتوبر 2007)، قدمت شركة Apple خاصية التوزيع العشوائي لمكتبات النظام. [ 49 ]
في نظام التشغيل Mac OS X Lion 10.7 (الذي صدر في يوليو 2011)، وسّعت شركة Apple نطاق تطبيقها ليشمل جميع التطبيقات، مصرحةً بأن "تقنية عشوائية تخطيط مساحة العناوين (ASLR) قد تم تحسينها لجميع التطبيقات. وهي متاحة الآن لتطبيقات 32 بت (كما هو الحال مع حماية ذاكرة الكومة)، مما يجعل تطبيقات 64 بت و32 بت أكثر مقاومة للهجمات." [ 50 ]
ابتداءً من نظام التشغيل OS X Mountain Lion 10.8 (الذي صدر في يوليو 2012) والإصدارات اللاحقة، يتم نقل النظام بأكمله، بما في ذلك النواة بالإضافة إلى ملفات kexts والمناطق، بشكل عشوائي أثناء بدء تشغيل النظام. [ 51 ]
سولاريس
تم إدخال تقنية ASLR في نظام سولاريس بدءًا من الإصدار 11.1 (الذي صدر في أكتوبر 2012). ويمكن ضبط ASLR في سولاريس 11.1 على مستوى النظام بأكمله، أو على مستوى كل منطقة، أو على مستوى كل ملف تنفيذي. [ 52 ]
استغلال
تم إثبات قدرة هجوم القناة الجانبية الذي يستغل مخزن الهدف الفرعي على تجاوز حماية ASLR. [ 34 ] وفي عام 2017، تم إثبات قدرة هجوم يُسمى "ASLR⊕Cache" على تعطيل ASLR في متصفح الويب باستخدام جافا سكريبت . [ 53 ]
انظر أيضاً
مراجع
- ↑ ماركو-جيسبرت، هيكتور؛ ريبول، إسماعيل (22 يوليو 2019). "الجيل القادم من عشوائية تخطيط مساحة العناوين" . العلوم التطبيقية . 9 (14): 2928. doi : 10.3390/app9142928 . hdl : 10251/144813 . ISSN 2076-3417 .
- ↑ يونغجين جانغ؛ سانغهو لي؛ تايسو كيم. كسر عشوائية تخطيط مساحة عناوين النواة باستخدام Intel TSX (ملف PDF) . المؤتمر الثالث والعشرون لجمعية ACM لأمن الحاسوب والاتصالات . doi : 10.1145/2976749.2978321 .
- ↑ براد سبينغلر (أكتوبر 2003). "PaX: النهاية المضمونة لتنفيذ التعليمات البرمجية العشوائية" (ملف PDF) . grsecurity.net . الشرائح من 22 إلى 35. مؤرشف (ملف PDF) من الأصل بتاريخ 25 أكتوبر 2020. تم الاطلاع عليه بتاريخ 20 أغسطس 2015 .
- ١ ٢ ثيو دي رادت (٢٠٠٥). "تقنيات تخفيف الثغرات الأمنية (محدثة لتشمل تخصيص الذاكرة العشوائي وتعيينها) في مؤتمر OpenCON ٢٠٠٥" . مؤرشف من الأصل بتاريخ ١٦ يوليو ٢٠١٢. تم الاطلاع عليه بتاريخ ٢٦ أغسطس ٢٠٠٩ .
- ↑ "ابتكارات OpenBSD" . مشروع OpenBSD. مؤرشف من الأصل بتاريخ 9 سبتمبر 2016. تم الاطلاع عليه بتاريخ 12 سبتمبر 2016 .
- 1 2 ماركو-جيسبرت، هيكتور؛ ريبول، إسماعيل (2014-11-20). "حول فعالية تقنية Full-ASLR على نظام لينكس 64 بت" (ملف PDF) . مؤرشف من النسخة الأصلية (PDF) بتاريخ 2015-05-08 . تم الاطلاع عليه بتاريخ 2016-03-29 .
- ↑ شاشام، هـ.؛ بيج، م.؛ بفاف، ب.؛ جوه، إي. جيه.؛ مودادوجو، ن.؛ بونيه، د. (2004). حول فعالية عشوائية مساحة العناوين . المؤتمر الحادي عشر لجمعية الحوسبة الآلية حول أمن الحاسوب والاتصالات. الصفحات 298-307 .
- 1 2 "تنفيذ ترتيب تحميل المكتبات بشكل عشوائي" . مؤرشف من الأصل بتاريخ 11 أغسطس 2023. تم الاطلاع عليه بتاريخ 26 يونيو 2017 .
- 1 2 يتم تحديد أحجام الذاكرة الترانزستورية، مثل ذاكرة الوصول العشوائي (RAM) وذاكرة القراءة فقط (ROM) وذاكرة الفلاش وذاكرة التخزين المؤقت، بالإضافة إلى أحجام الملفات، باستخدام المعاني الثنائية لـ K (1024 1 ) و M (1024 2 ) و G (1024 3 ) وما إلى ذلك.
- ↑ بينوسي، لورينزو؛ بارزاسي، غريغوريو؛ كارميناتي، ميشيل؛ زانيرو، ستيفانو؛ بولينو، ماريو (2024). "وهم العشوائية: تحليل تجريبي لتطبيقات عشوائية تخطيط مساحة العناوين". وقائع مؤتمر ACM SIGSAC لأمن الحاسوب والاتصالات لعام 2024. الصفحات 1360-1374 . arXiv : 2408.15107 . doi : 10.1145 /3658644.3690239 . ISBN 979-8-4007-0636-3.
- ↑ "أمان أندرويد" . مطورو أندرويد. مؤرشف من الأصل بتاريخ 12-10-2011 . تم الاطلاع عليه بتاريخ 7-7-2012 .
- ↑ "oss-security" . مؤرشف من الأصل بتاريخ 2015-10-05 . تم الاطلاع عليه بتاريخ 2015-10-04 .
- ↑ "استعادة "إعادة تفعيل دعم الملفات التنفيذية غير PIE"تمت أرشفة هذا النص من المصدر الأصلي بتاريخ 11 أغسطس 2023. تم الاطلاع عليه بتاريخ 26 يونيو 2017 .
- ↑ mmap - إضافة عشوائية إزاحة mmap مؤرشفة في 2014-02-01 في Wayback Machine ، DragonFly Gitweb، 25 نوفمبر 2010.
- ↑ "تنفيذ عشوائية تخطيط مساحة العناوين (ASLR)" . مؤرشف من الأصل بتاريخ 2019-05-07 . تم الاطلاع عليه بتاريخ 2019-02-10 .
- ↑ "ASLR - ويكي FreeBSD" . مؤرشف من الأصل بتاريخ 17-05-2021 . تم الاطلاع عليه بتاريخ 17-05-2021 .
- ↑ "ملاحظات إصدار FreeBSD 13.2-RELEASE" . مؤرشف من الأصل بتاريخ 11 أبريل 2023. تم الاطلاع عليه بتاريخ 11 أبريل 2023 .
- ↑ اليوم الثاني من Pwn2Own: هزيمة iPhone وBlackBerry؛ غياب Chrome وFirefox. مؤرشف بتاريخ 2 مايو 2012 في Wayback Machine ، Ars Technica ، 11 مارس 2011
- ↑ ستيفان إيسر (7 مارس 2013). "استغلال ثغرة في نظام iOS 6 بعد 280 يومًا" . الشريحة 19، "نظام iOS 6 يُقدّم KASLR". مؤرشف من الأصل بتاريخ 7 مايو 2019. تم الاطلاع عليه بتاريخ 25 أبريل 2018 .
- ^ تارجي ماندت. "مهاجمة نواة iOS: نظرة على 'evasi0n'( ملف PDF) . مؤرشف (ملف PDF) من الأصل بتاريخ 13 ديسمبر 2020. تم الاطلاع عليه بتاريخ 23 يوليو 2023 .
- ↑ دانغ، آلان؛ ميلر، تشارلي (25 مارس 2009). "بت NX وASLR" . تومز هاردوير . مؤرشف من الأصل في 11 أغسطس 2023. تم الاسترجاع في 20 مارس 2010 .
- ↑ – دليل مبرمج لينكس – استدعاءات النظام
- ↑
- "وثائق /proc/sys/kernel/ — وثائق نواة لينكس" . www.kernel.org .
- "وثائق /proc/sys/vm/ — وثائق نواة لينكس" . www.kernel.org .
- ↑ " [ رقعة ] ASLRv3: randomize_va_space=3 يمنع هجوم offset2lib" . lore.kernel.org .
- ↑ ميلر، جاستن (2024-01-08). "ASLRn't: كيف أدى محاذاة الذاكرة إلى تعطيل ASLR في المكتبة" . مدونة zolutal . تم الاطلاع عليه بتاريخ 2024-01-13 .
- ↑ " [ LTP ] [ PATCH 2/2 ] إضافة اختبار لخطأ ASLRn't - مارتن دوشا" . lore.kernel.org .
- ↑ جيك إيدج (9 أكتوبر 2013). "عشوائية تخطيط مساحة عناوين النواة" . LWN.net . مؤرشف من الأصل في 4 أبريل 2014. تم الاطلاع عليه في 2 أبريل 2014 .
- ↑ "نواة لينكس 3.14، القسم 1.7. عشوائية مساحة عناوين النواة" . kernelnewbies.org . 30-03-2014. مؤرشف من الأصل في 15-01-2021 . تم الاطلاع عليه في 02-04-2014 .
- ↑ "kernel/git/torvalds/linux.git: x86, kaslr: Return location from decompress_kernel (Linux kernel source tree)" . kernel.org . 2013-10-13. مؤرشف من الأصل في 2023-08-11 . تم الاطلاع عليه في 2014-04-02 .
- ↑ انتهى عهد KASLR: فليحيا KASLR (ملف PDF) . هندسة البرمجيات والأنظمة الآمنة 2017. 24-06-2017.
- ↑ جانغ، يونغجين؛ لي، سانغهو؛ كيم، تايسو (2016). "كسر عشوائية تخطيط مساحة عناوين النواة باستخدام Intel TSX" (ملف PDF) . وقائع مؤتمر ACM SIGSAC لعام 2016 حول أمن الحاسوب والاتصالات . CCS '16. نيويورك: رابطة آلات الحوسبة. الصفحات 380-392 . doi : 10.1145/2976749.2978321 . ISBN 9781450341394S2CID 6293725. مؤرشف (PDF) من الأصل بتاريخ 21-09-2020 . تم الاطلاع عليه بتاريخ 29-12-2017 .
- ↑ كوربيت، جوناثان (2017-12-20). "الوضع الحالي لعزل جداول صفحات النواة" . أخبار لينكس الأسبوعية . مؤرشف من الأصل في 2018-01-04 . تم الاسترجاع في 2018-01-04 .
- ↑ كوربيت، جوناثان (15 نوفمبر 2017). "كايزر: إخفاء نواة النظام عن مساحة المستخدم" . أخبار لينكس الأسبوعية . مؤرشف من الأصل في 8 ديسمبر 2020. تم الاطلاع عليه في 29 ديسمبر 2017 .
- 1 2 إيفتيوشكين، ديمتري؛ بونوماريف، ديمتري؛ أبو غزالة، نائل (2016). تجاوز ASLR: مهاجمة متنبئات الفروع لتجاوز ASLR (ملف PDF) . المؤتمر الدولي السنوي التاسع والأربعون لـ IEEE/ACM حول الهندسة المعمارية الدقيقة (MICRO) لعام 2016. الصفحات 1-13 . doi : 10.1109/MICRO.2016.7783743 . ISBN 978-1-5090-3508-3. S2CID 3801142 .
- ↑ "لينكس 5.16 تستعد مبكراً لدعم FGKASLR - فورونيكس" . www.phoronix.com . مؤرشف من الأصل بتاريخ 10 نوفمبر 2021. تم الاطلاع عليه بتاريخ 10 نوفمبر 2021 .
- ↑ "حماية أمان برامج ويندوز لمطوري البرامج المستقلين" . Msdn.microsoft.com. 2010-12-06. مؤرشف من الأصل في 2012-04-18 . تم الاطلاع عليه في 2012-04-10 .
- ↑ أساسيات نظام التشغيل ويندوز: بما في ذلك ويندوز سيرفر 2008 وويندوز فيستا، الطبعة الخامسة (للمطورين المحترفين) ISBN 978-0-7356-2530-3
- ↑ أولي وايت هاوس (فبراير 2007). "تحليل عشوائية تخطيط مساحة العناوين في نظام التشغيل ويندوز فيستا" (ملف PDF) . مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 15 يوليو 2019. تم الاطلاع عليه بتاريخ 18 يناير 2009 .
- ↑ "WehnTrust" . Codeplex.com. مؤرشف من الأصل بتاريخ 25-12-2009 . تم الاطلاع عليه بتاريخ 10-04-2012 .
- ↑ "أوزون مهندسي الأمن" . مهندسو الأمن. مؤرشف من الأصل بتاريخ 4 مارس 2016. تم الاطلاع عليه بتاريخ 10 أبريل 2012 .
- ↑ "شفرة مصدر WehnTrust" . مؤرشفة من الأصل بتاريخ 28-11-2013 . تم الاطلاع عليها بتاريخ 15-11-2013 .
- ↑ "توزيع عشوائي لمساحة العناوين لأنظمة ويندوز" (ملف PDF) . مؤرشف (ملف PDF) من الأصل بتاريخ 2010-08-05 . تم الاطلاع عليه بتاريخ 2012-04-10 .
- ↑ أولي (2012-03-02). "البحث والتطوير والتقييم والاستشارة والتثقيف | Recx: تقنية جزئية لمواجهة ASLR - أنظمة تشغيل متعددة" . Recxltd.blogspot.co.uk. مؤرشف من الأصل بتاريخ 2013-03-23 . تم الاطلاع عليه بتاريخ 2012-04-10 .
- ↑ "الإعلان عن NetBSD 5.0" . مؤرشف من الأصل بتاريخ 21-04-2016 . تم الاطلاع عليه بتاريخ 25-04-2016 .
- ↑ كريستوس زولاس (2016). "ملفات PIE الثنائية وASLR مُفعّلة في الإصدار الافتراضي لنظام amd64" . مؤرشف من الأصل بتاريخ 22 أبريل 2016. تم الاطلاع عليه بتاريخ 25 أبريل 2016 .
- ↑ "Kernel ASLR on amd64" . 2017. مؤرشف من الأصل بتاريخ 16-10-2017 . تم الاطلاع عليه بتاريخ 16-10-2017 .
- 1 2 كورت ميلر (2008). "تنفيذ OpenBSD للملفات التنفيذية المستقلة عن الموقع (PIE)" . مؤرشف من الأصل بتاريخ 12-06-2011 . تم الاطلاع عليه بتاريخ 22-07-2011 .
- ↑ "libc/stdlib/malloc.c" . مرجع BSD المتقاطع، OpenBSD src/lib/ . مؤرشف من الأصل بتاريخ 26-12-2014 . تم الاطلاع عليه بتاريخ 12-09-2016 .
- ↑ "نظام التشغيل ماك أو إس إكس - الأمان - يحمي من الفيروسات والبرامج الضارة" . أبل. مؤرشف من الأصل بتاريخ 25 مايو 2011. تم الاطلاع عليه بتاريخ 10 أبريل 2012 .
- ↑ "الأمان" . شركة آبل. مؤرشف من الأصل بتاريخ 2011-06-06 . تم الاسترجاع بتاريخ 2011-06-06 .
- ↑ "نظرة عامة على التقنيات الأساسية لنظام التشغيل OS X Mountain Lion" (ملف PDF) . يونيو 2012. مؤرشف (ملف PDF) من الأصل بتاريخ 10 يوليو 2012. تم الاطلاع عليه بتاريخ 25 يوليو 2012 .
- ↑ التحكم في الوصول إلى موارد الجهاز مؤرشف في 2013-06-20 في Wayback Machine ، مكتبة معلومات أوراكل، 26 أكتوبر 2012.
- ↑ تمت أرشفة AnC في 16 مارس 2017 على موقع Wayback Machine ، VUSec، 2017
روابط خارجية
- تقنيات الحد من الثغرات الأمنية: تحديث بعد 10 سنوات (مؤرشف بتاريخ 20 فبراير 2014 في أرشيف الإنترنت على منصة OpenBSD)
- وثائق PaX حول تقنية ASLR
- مقارنة بين PaX و Exec Shield و W^X (مؤرشفة بتاريخ 14 أبريل 2012 على موقع Wayback Machine)
- عشوائية تخطيط مساحة العناوين في ويندوز فيستا - مدونة مايكل هوارد
- ASLR لنظام التشغيل Windows 2000/XP/2003 (WehnTrust)
- تجاوز حماية PaX ASLR
- حول فعالية عشوائية تخطيط مساحة العناوين
- اختبر التطبيقات (أو المكتبات) لدعمها لتقنيتي ASLR وDEP
- مرجع ASLR Smack & Laugh مؤرشف بتاريخ 28-09-2015 على موقع Wayback Machine
- أمان أنظمة التشغيل
