ما هي تقنية العنوان العشوائي لتخطيط الفضاء في الشبكات ASLR

اقرأ في هذا المقال


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

ما هي تقنية عشوائية تخطيط مساحة العنوان ASLR

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

  • “ASLR” هي اختصار لـ “Address space layout randomization”.

أساسيات تقنية ASLR

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

قد يؤدي ذلك إلى تعطل البرنامج أو ما هو أسوأ من ذلك تزويد المهاجم بالسيطرة الكاملة على النظام وعانت البرمجيات من ثغرات فساد الذاكرة لعقود، وعلى الرغم من الجهود التي تبذلها الشركات الكبيرة مثل “Apple” و”Google” و”Microsoft” للقضاء عليها، ونظراً لأنّه من الصعب العثور على هذه الأخطاء ويمكن لواحد فقط أن يعرض النظام للخطر، فقد صمم المتخصصون في مجال الأمن آليات آمنة لإحباط استغلال البرامج والحد من الضرر في حالة استغلال خلل في تلف الذاكرة.

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

مبدأ عمل ASLR

يعمل “ASLR” عن طريق كسر الافتراضات التي يمكن للمطورين القيام بها حول مكان تكمن البرامج والمكتبات في الذاكرة في وقت التشغيل، والمثال الشائع هو مواقع الأدوات المستخدمة في البرمجة الموجهة نحو الإرجاع “ROP”، والتي غالباً ما تُستخدم للتغلب على الدفاع عن منع تنفيذ البيانات “DEP”.

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

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

  • “DEP” هي اختصار لـ “Data Execution Prevention”.
  • “ROP” هي اختصار لـ “Return-oriented programming”.

خصائص تقنية ASLR

1- العشوائية على أساس وقت التمهيد

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

ملاحظة:“DLL” هي اختصار لـ “Dynamic link library”.

2- ملفات تنفيذية أو مكتبات غير مدعومة

  • لا يتم دعم “ASLR” عندما لا يتم إنشاء ملفات “DLL” مع دعم “ASLR”.
  • على الرغم من أنّ “Windows 8″ و”Windows 10” يحاولان التغلب على هذا القيد وعلى سبيل المثال فرض “ASLR” في “Windows 8″، لا تزال هناك استثناءات تجعل حماية “ASLR” غير فعالة في كثير من الأحيان.
  • الإصدار الأقدم من “Windows” والبرامج القديمة معرضة بشكل خاص لهذا القيد.
  • بالإضافة إلى ذلك تعاني “ASLR” على أنظمة “32 بت” من انخفاض “entropy”، ممّا يجعلها عرضة للقوة الغاشمة والهجمات المماثلة.

3- عدم محاصرة الهجوم

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

4- ASLR لا ينبه في حالة وقوع هجوم

  • لا يعطي “ASLR” أي تنبيهات حول محاولات الهجوم.
  • عند استغلال ثغرة أمنية وفشلها أي بسبب التوزيع العشوائي للذاكرة في “ASLR”، لا يتم تلقي أي تنبيه أو إشارة هجوم.
  • لا يعرف “ASLR” بشكل أساسي متى حدث هجوم.

5- لا تقدم ASLR معلومات حول هجوم

  • يمكن استخدام العمليات المستغلة وعمليات تفريغ الذاكرة ومكدسات المكالمات لتحديد الثغرات وبصمات الأصابع ووسمها.
  • لا تستطيع “ASLR” تقديم هذه المعلومات لأنّها لا تعرف في الواقع ما إذا كان الهجوم قد حدث أو في أي نقطة تم إيقافه.

تطور تقنية ASLR

يستخدم “ASLR” على أنظمة “Linux” و”Windows” و”MacOS”، كما تم تطبيقه لأول مرة على “Linux” في 2005م، وفي عام 2007م تم نشر هذه التقنية على “Microsoft Windows” و”MacOS” بينما توفر “ASLR” نفس الوظيفة في كل من أنظمة التشغيل هذه، حيث يتم تنفيذها بشكل مختلف على كل منها.

تعتمد فعالية “ASLR” على مجمل تخطيط مساحة العنوان الذي يظل غير معروف للمهاجم، بالإضافة إلى ذلك فقط الملفات التنفيذية، والتي تم تجميعها كبرامج “PIE” ستكون قادرة على المطالبة بأقصى حماية من تقنية “ASLR” لأنّ جميع أقسام الكود سيتم تحميلها في مواقع عشوائية، وسيتم تنفيذ كود آلة “PIE” بشكل صحيح بغض النظر عن عنوانها المطلق.

  • “PIE” هي اختصار لـ “Position Independent Executable”.

قيود عمل ASLR

على الرغم من أنّ “ASLR” تجعل استغلال نقاط ضعف النظام أكثر صعوبة، إلّا أنّ دورها في حماية الأنظمة محدود، حيث أنّ “ASLR”:

  • لا يحل نقاط الضعف، ولكنّه يجعل استغلالها أكثر صعوبة.
  • لا يتتبع أو يبلغ عن نقاط الضعف.
  • لا تقدم أي حماية للثنائيات التي لم يتم إنشاؤها بدعم “ASLR”.
  • ليست محصنة ضد التحايل.

مبدأ عمل تقنية ASLR

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

المصدر: COMPUTER NETWORKING / James F. Kurose & Keith W. RossComputer Networks - The Swiss BayCOMPUTER NETWORKS LECTURE NOTES / B.TECH III YEAR – II SEM (R15)An Introduction to Computer Networks / Peter L Dordal


شارك المقالة: