ثغرة تجاوز الذاكره او buffer overflow هي احد اشهر الثغرات المعروفه في مجال امن المعلومات هي ثغره معقده ولاكن عندما تفهم كيف تعمل هذه الثغره سوف يكون بامكانك التعامل معها بطريقه سلسه دعنا نفهم كل شي حول هذه الثغره
مفهوم ثغرة buffer overflow
الذاكرة المؤقته buffer هي مساحه يتم تخصيصها في الذاكرة لتخزين البيانات الموقته للبرامج مثل تخزين المدخلات التي تكون عباره عن نصوص وارقام او اي بينات اخري يتعامل معها البرنامج اثناء تشغيله
مالذي يسبب ثغرة buffer overflow
تحدث هذه الثغره عندما يتم استقبال بيانات اكثر من حجم المساحه الحجوزه للبرنامج . عند تجاوز هذه السعه يتم الكتابه فوق الزاكره المجاوره ويمكن هذا ان يؤدي الي تلف البيانات التي يتم الكتابه فوقها . الصوره التاليه توضح تجاوز الذاكره مثال لدينا زاكره مؤقته بسعة 8 bytes وتم تجاوزها ب 2 بايت
كيفية استغلال ثغره buffer overflow ؟
نحدد عنوان العوده return address
البرامج التي تم تصمميها بلغات مثل C , C ++ يتم تخزين عنوان العوده في الذاكره عندما يتم استدعاء داله في البرنامج يتم حفظ السطر التالي بعد عملية الاستدعاء حتي يمكن العوده اليه عند الانتهاء اذا تمكن المهاجم من تجاوز الزاكره المؤقته يمكنه تعديل العنوان لكي يشير الي مكان اكواد خبيثه في الذاكره ويتم استدعاء هذا الكود وتنفيذه
الخلاصه
تعتبر ثغره buffer overflow من الثغرات القويه التي تسبب اضرار وخيمه يمكن للمهاجم ارسال اكواد خبيثه بعد ارسال بينات بحجم الذاكره بعد ذالك يتجاوز الذاكره بهذه الاكواد الخبيثه التي تمكنه من التحكم الكامل في جهازك
ملحوظهالوقايه من هذه الثغره يجب فحص البرنامج لكي تتاكد انه لايقبل اي بيانات تتجاوز حجم الذاكره المؤقته