روابط سريعة
التوزيع العشوائي لتخطيط مساحة العنوان (ASLR) هو أسلوب أمان مستخدم في أنظمة التشغيل، تم تطبيقه لأول مرة في عام 2001. تتميز الإصدارات الحالية من جميع أنظمة التشغيل الرئيسية (iOS، وAndroid، وWindows، وmacOS، وLinux) بحماية ASLR. ولكن في الأسبوع الماضي، ظهرت طريقة جديدة لتجاوز ASLR تم العثور عليه. لذا، هل يجب أن تقلق؟
بالنسبة لأولئك الذين ليس لديهم خلفية برمجة منخفضة المستوى، يمكن أن يكون ASLR مربكًا. لفهم ذلك، يجب عليك أولاً فهم الذاكرة الافتراضية.
ما هي الذاكرة الافتراضية؟
الذاكرة الظاهرية هي تقنية لإدارة الذاكرة لها العديد من الفوائد، ولكن تم إنشاؤها في المقام الأول لتسهيل البرمجة. تخيل أن لديك Google Chrome وMicrosoft Word والعديد من البرامج الأخرى مفتوحة على جهاز كمبيوتر مزود بذاكرة وصول عشوائي (RAM) تبلغ سعتها 4 جيجابايت. بشكل عام، تستخدم البرامج الموجودة على هذا الكمبيوتر أكثر من 4 جيجابايت من ذاكرة الوصول العشوائي. ومع ذلك، لن تكون كافة البرامج نشطة في جميع الأوقات، أو تحتاج إلى الوصول المتزامن إلى ذاكرة الوصول العشوائي (RAM).
يخصص نظام التشغيل أجزاء من الذاكرة لبرامج تسمى الصفحات. إذا لم يكن هناك ما يكفي من ذاكرة الوصول العشوائي (RAM) لتخزين جميع الصفحات مرة واحدة، فسيتم تخزين الصفحات الأقل احتمالًا للحاجة إليها على محرك الأقراص الثابتة الأبطأ (ولكنه أكثر اتساعًا). عند الحاجة إلى الصفحات المخزنة، سيتم تبديل المساحات بصفحات أقل أهمية موجودة حاليًا في ذاكرة الوصول العشوائي (RAM). تسمى هذه العملية ترحيل الصفحات، وتعطي اسمها لملف pagefile.sys على نظام التشغيل Windows.
تسهل الذاكرة الظاهرية على البرامج إدارة ذاكرتها الخاصة، كما أنها تجعلها أكثر أمانًا. لا داعي للقلق بشأن مكان قيام البرامج الأخرى بتخزين البيانات، أو مقدار ذاكرة الوصول العشوائي المتبقية. يمكنهم فقط أن يطلبوا من نظام التشغيل ذاكرة إضافية (أو إعادة الذاكرة غير المستخدمة) حسب الضرورة. كل ما يراه البرنامج هو جزء واحد متواصل من عناوين الذاكرة لاستخدامه الحصري، تسمى العناوين الافتراضية. لا يسمح للبرنامج بالاطلاع على ذاكرة برنامج آخر.
عندما يحتاج أحد البرامج إلى الوصول إلى الذاكرة، فإنه يمنح نظام التشغيل عنوانًا افتراضيًا. يتصل نظام التشغيل بوحدة إدارة الذاكرة الخاصة بوحدة المعالجة المركزية (MMU). تترجم وحدة MMU بين العناوين الافتراضية والمادية، وتعيد تلك المعلومات إلى نظام التشغيل. لا يتفاعل البرنامج مباشرة مع ذاكرة الوصول العشوائي في أي وقت.
ما هو ASLR؟
يتم استخدام التوزيع العشوائي لتخطيط مساحة العنوان (ASLR) بشكل أساسي للحماية من هجمات تجاوز سعة المخزن المؤقت. في حالة تجاوز سعة المخزن المؤقت، يقوم المهاجمون بتغذية الوظيفة بأكبر قدر ممكن من البيانات غير المرغوب فيها، تليها حمولة ضارة. ستقوم الحمولة بالكتابة فوق البيانات التي ينوي البرنامج الوصول إليها. تعتبر تعليمات الانتقال إلى نقطة أخرى في الكود من الحمولة الشائعة. على سبيل المثال، استخدمت طريقة JailbreakMe الشهيرة لكسر الحماية لنظام التشغيل iOS 4 هجوم تجاوز سعة المخزن المؤقت، مما دفع شركة Apple إلى إضافة ASLR إلى نظام التشغيل iOS 4.3.
يتطلب تجاوز سعة المخزن المؤقت أن يعرف المهاجم مكان وجود كل جزء من البرنامج في الذاكرة. عادة ما يكون اكتشاف ذلك عملية صعبة من التجربة والخطأ. بعد تحديد ذلك، يجب عليهم صياغة حمولة وإيجاد مكان مناسب لحقنها. إذا كان المهاجم لا يعرف مكان وجود الكود المستهدف، فقد يكون من الصعب أو المستحيل استغلاله.
يعمل ASLR جنبًا إلى جنب مع إدارة الذاكرة الافتراضية لتحديد مواقع الأجزاء المختلفة من البرنامج في الذاكرة بشكل عشوائي. في كل مرة يتم فيها تشغيل البرنامج، يتم نقل المكونات (بما في ذلك المكدس والكومة والمكتبات) إلى عنوان مختلف في الذاكرة الظاهرية. لم يعد بإمكان المهاجمين معرفة مكان هدفهم من خلال التجربة والخطأ، لأن العنوان سيكون مختلفًا في كل مرة. بشكل عام، تحتاج التطبيقات إلى أن يتم تجميعها بدعم ASLR، ولكن هذا أصبح هو الإعداد الافتراضي، بل إنه مطلوب على Android 5.0 والإصدارات الأحدث.
فهل ما زال ASLR يحميك؟
يوم الثلاثاء الماضي، قدم باحثون من جامعة ولاية نيويورك بينجهامتون وجامعة كاليفورنيا في ريفرسايد ورقة بحثية بعنوان القفز فوق ASLR: مهاجمة المتنبئين بالفرع لتجاوز ASLR. توضح الورقة طريقة مهاجمة المخزن المؤقت لهدف الفرع (BTB). يعد BTB جزءًا من المعالج الذي يعمل على تسريع البيانات من خلال التنبؤ بالنتيجة. باستخدام طريقة المؤلفين، من الممكن تحديد مواقع تعليمات الفروع المعروفة في برنامج قيد التشغيل. تم تنفيذ الهجوم المعني على جهاز Linux مزود بمعالج Intel Haswell (تم إصداره لأول مرة في عام 2013)، ولكن من المحتمل أن يتم تطبيقه على أي نظام تشغيل ومعالج حديث.
ومع ذلك، لا ينبغي عليك بالضرورة أن تشعر باليأس. عرضت الورقة بعض الطرق التي يمكن لمطوري الأجهزة وأنظمة التشغيل من خلالها التخفيف من هذا التهديد. تتطلب تقنيات ASLR الأحدث والدقيقة مزيدًا من الجهد من المهاجم، كما أن زيادة كمية الإنتروبيا (العشوائية) يمكن أن تجعل هجوم القفز فوق غير ممكن. على الأرجح، ستكون أنظمة التشغيل والمعالجات الأحدث محصنة ضد هذا الهجوم.
إذن ما الذي بقي ل أنت أن تفعل؟ إن ممر Jump Over جديد، ولم يتم رصده في البرية بعد. وعندما يستغله المهاجمون، فإن الخلل سيزيد من الضرر المحتمل الذي يمكن أن يسببه المهاجم لجهازك. هذا المستوى من الوصول ليس غير مسبوق؛ قامت Microsoft وApple بتطبيق ASLR فقط في أنظمة التشغيل الخاصة بهما التي تم إصدارها عام 2007 وما بعده. وحتى لو أصبح هذا النمط من الهجوم أمرًا شائعًا، فلن تكون حالتك أسوأ مما كنت عليه في أيام نظام التشغيل Windows XP.
ضع في اعتبارك أنه لا يزال يتعين على المهاجمين الحصول على الكود الخاص بهم على جهازك لإحداث أي ضرر. هذا الخلل لا يوفر لهم أي طرق إضافية لتصيبك. كما هو الحال دائمًا، يجب عليك اتباع أفضل ممارسات الأمان. استخدم برامج مكافحة الفيروسات، وابتعد عن مواقع الويب والبرامج غير الواضحة، وحافظ على تحديث برامجك. باتباع هذه الخطوات وإبعاد العناصر الضارة عن جهاز الكمبيوتر الخاص بك، ستكون آمنًا كما كنت دائمًا.
حقوق الصورة: ستيف/ فليكر
(العلامات للترجمة)الميزات(ر)أندرويد(ر)iOS