المعلوماتية > برمجيات

ثغراتٌ برمجيّةٌ أكثر ..حمايةٌ وأمانٌ أكثر!!

كما نعلم جميعًا؛ يرصد الرادار الأهداف المعدنية من طائراتٍ ونحوها، ولذلك؛ يُعدُّ نشر عدة أهداف معدنيَّة وهميّة -سواء أكانت شرائح ألمنيوم أو بلاستيك مُمَعدن- لصرف انتباه الرّادار عن الهدف الأساسي من الوسائل الفعَّالة  في تشتيت إشاراته، وخلق الآلاف من الأهداف الوهمية التي تُربِك هذه الأنظمة.

تحوي معظم الطائرات الحربية والسفن الحربية والعديد من الصواريخ الباليستية أنظمةً للتشويش، والآن يطبق باحثو أمن المعلومات الفكرة نفسها على البرمجيات.

الفكرة بسيطة من ناحية المبدأ؛ تحوي البرامج غالبًا العديدَ من الأخطاء، ولا يستطيع المبرمج أو مستخدم البرنامج العادي ملاحظة معظمها، ولكن يبحثُ المخترقون عنها كي يستغلّوها في الهجمات، ويحققوا أهدافهم سواء أكانت السَّيطرة على الحاسوب أو التلاعب به وبالمعلومات المخزنة فيه.

ولكن ليست الثغرات كلّها متساوية في الأهمية؛ إذ لا يُمكنُ استغلالُ بعض هذه الأخطاء لأغراض خبيثة، ويقتصرُ عملها على التّسبب بتعطيل البرنامج فحسب، وعلى الرَّغم من خطورة هذا الأمر؛ لكن تعملُ  فئة كبيرة من البرامج التي تحتوي على خدمات في الخلفية، وقد صُمّمت للتعامل مع هذه الأعطال بأمان من خلال إعادة تشغيل البرنامج، وهذه الثغرات أقلّ خطورة بكثير من تلك التي تسمح للمخترقين باستغلالها لأغراض خبيثة.

ولكن التَّفريق بين هذه الثغرات ليس دائماً بالأمر اليسير؛ فبعد أن يجد المخترقون الثغرات؛ يجب عليهم التفريق بين تلك الثغرات القابلة للاستخدام في الاختراق والثغرات الحميدة نسبيًا، وهذه العملية صعبة عمومًا وتستغرق وقتًا طويلًا.

وهذا هو أساس الفكرة الجديدة التي تُطوَّرُ من قبل Zhenghao Hu وزملائه في جامعة نيويورك؛ لماذا لا تُملأُ الشيفرة البرمجية العادية بالثغرات الحميدة كوسيلة خداع للمهاجمين المحتملين؟

تكمن الفكرة في إجبار المهاجمين على استخدام مواردهم في إيجاد الثغرات غير المفيدة واختبارها، وتُعدُّ هذه الطريقة مجرَّد خطوة في لعبة القط والفأر المتزايدة التَّعقيد بين خبراء الأمن والمخترقين؛ فقد طورت مجموعات مختلفة -في السنوات الأخيرة- برامجَ بحثٍ عن الثَّغرات، هدفها البحث عن نقاط ضعف في الشّيفرة البرمجية التي قد يَستغلّها المهاجم، ويستخدم خبراء الأمان هذا الأسلوب للعثور على هذه الثغرات وإزالتها قبل نشر البرنامج، في حين يستخدم المهاجمون الطريقة نفسها للعثور على ثغرات يمكن استغلالها، ولكن بالنسبة إلى باحثي أمن المعلومات؛ فإن تطوير برامج البحث هذه أمرٌ صعب، ويتطلب وجود نقاط ضعف في البرنامج المطلوب البحث عن ثغراته في المقام الأول، ولذلك قام الباحثون بتطوير أداة أخرى تضيف هذه الأخطاء عشوائيًا إلى البرامج لـ "اكتشافها" لاحقًا بواسطة برنامج صيد الثغرات الأمنية.

وقد اتضح أنَّ إضافة الأخطاء والثغرات ليست عملية بسيطة؛ إذ إنَّ التغييرات العشوائية المطبقة على الشيفرة البرمجية بهدف خلق هذه الثغرات قد تؤدي إلى جعل هذه الشيفرة البرمجية عديمة الفائدة.

عوضًا عن ذلك؛ تتضمَّن العملية تشغيل الشيفرة البرمجية وإعطائها مدخلات مختلفة ومراقبة ما يحدث لهذه المدخلات  في أثناء تقدُّم تنفيذ التعليمة البرمجية، وتبحث هذه العملية عن نقاط في البرنامج لم يعد يُستخدَم هذا الإدخال فيها في اتخاذ أيّة قرارات مستقبلية (إدخال ميت)، في هذه الحالة؛ يمكن التلاعب بهذا الإدخال على نحوٍ ضار يؤدي إلى تلف الذاكرة أو امتلائها، ويشير برنامج البحث عن الثغرات إلى مكان وجود هذه الإدخالات الميتة  كي نتمكَّن استغلالها لاحقًا.

وتَبيَّن أن هذه الأخطاء المحتملة شائعةٌ في التعليمات البرمجية المكتوبة بلغات مثل C++ ،C،  الّتي لا تحوي أنظمةً تُشرف على استخدام الذاكرة.

وقد استخدم Zhenghao Hu وزملاؤه هذا النهج لإضافة ثغرات أو أخطاء في أنحاء التَّعليمات البرمجية جميعها وتؤثر في الذاكرة، وفي الظروف العادية؛  تعدُّ هذه الأخطاء حميدة. ولكن إذا وجدها المخترقون؛ فلا يمكن استغلالها إلا لإيقاف البرنامج عن العمل وليس لأي شيء أكثر خُبثًا، وهذا هو سبب استخدامها كوسيلة حماية.

ويقول Hu:  "المهاجمون الذين يحاولون العثور على الثغرة واستغلالها في البرمجيات، سيجدون -باحتمالية عالية- ثغرة غير قابلة للاستغلال توضَعُ عن عمد وتهدر الموارد الثمينة".

ويواصل الفريق إظهار أنَّ العمليات الحالية لإيجاد الثغرات المحتملة تُخدَعُ بواسطة هذا الأسلوب: "نحن نُظهر أنَّ وظيفة البرنامج لم تتضرَّر، ونُظهر أن ثغراتنا تبدو قابلة للاستغلال في أدوات البحث الحالية".

هذا نهجٌ مثير للاهتمام؛ من شأنه أن يعرقل المهاجمين كثيرًا، لكنه يثير بعض الأسئلة أيضًا، فعلى سبيل المثال؛ لا يوجد دليل فعليّ على أن العثور على الثغرات القابلة للاستغلال صعب ويستغرق وقتًا طويلًا، ومن الممكن -نظريًا- أن يجد شخص ما في مكان ما طريقةً سريعةً للقيام بذلك.

وإذا اتضح وجود طريقة للتمييز بسهولة بين الثغرات الحميدة وتلك القابلة للاستغلال؛ فإن هذا النهج يصبح بلا قيمة.

ويوجد اختلاف بسيط جدًا بين الثغرات المحقونة والثغرات العادية أيضًا؛ إذ يقول Hu: "هذا يمكن أن يسمح للمهاجمين بتحديد الأنماط الموجودة في الثغرات التي نُنتِجها ويستبعدوا تلك التي تتطابق مع هذا النمط".

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

المصادر:

هنا