Cyber Security
ما هو ال Nmap
يعتبر Nmap لفترة طويلة بمثابة الماسح الضوئي القياسي للمنافذ لكل من مهندسي
الشبكات ومتخصصي الأمن. يمكننا استخدامه لاكتشاف الأصول للهجوم أو الدفاع.
هجمات الشبكة
الهجمات على البروتوكولات والتطبيقات المستضافة على الشبكة وفيرة. يتم تناول
تطبيقات الويب في القسم الخاص بها في هذه الدورة التدريبية.
يمكن أن تحتوي الخدمات على أخطاء متأصلة فيها مما يسمح باستغلالها من قبل
المهاجمين. تتضمن هذه الهجمات عادةً استخدام تعليمات خاصة لنظام التشغيل، عبر
الخدمة المعرضة للخطر، للتحكم في عملية تشغيل خدمة الشبكة. Buffer Overflows هي
فئة من هذه الهجمات.
تحتوي الشبكة عادةً على العديد من التطبيقات، بعضها يحتوي على عمليات تسجيل
دخول بسيطة والبعض الآخر بوظائف معقدة. تتمثل إحدى طرق الحصول على نظرة عامة
على سطح الهجوم، وكذلك تحديد نقاط الضعف بسهولة لاستغلالها، في فحص المنافذ
لجميع الأصول في البيئة المستهدفة، ثم تصويرها.
أدوات مثل
EyeWitness تحقق ذلك. تتيح لنا الأداة الحصول بسرعة على نظرة عامة حول الأصول التي
يتم تمثيلها على الشبكة، ثم توفر لقطات شاشة لكل خدمة. من خلال الحصول على
لقطات الشاشة، يمكننا بسهولة البحث والتقييم بسرعة للأنظمة التي يجب أن نلقي
نظرة فاحصة عليها.
يعني استغلال الخدمة إساءة استخدام الخدمة بطرق لم يكن الغرض منها ذلك. غالبًا
ما يعني نشاط الاستغلال هذا أن المهاجمين قادرون على تشغيل التعليمات البرمجية
الخاصة بهم، وهذا ما يسمى RCE ("تنفيذ التعليمات البرمجية عن بُعد").
تجاوز سعة المخزن المؤقت
ينطوي استغلال خدمات الشبكة أحيانًا على إساءة استخدام وظائف إدارة الذاكرة
لأحد التطبيقات. إدارة الذاكرة؟ نعم، تحتاج التطبيقات إلى نقل البيانات داخل
ذاكرة الكمبيوتر من أجل جعل التطبيق يعمل. عندما تمنح لغات البرمجة المطور
التحكم في الذاكرة، فقد توجد مشاكل مثل Buffer Overflow. توجد العديد من
الثغرات الأمنية المماثلة، وفي هذا القسم نراجع Buffer Overflows.
تتيح لغة البرمجة C و++C للمطورين تحكمًا كبيرًا في كيفية إدارة الذاكرة. يعد
هذا مثاليًا للتطبيقات التي تتطلب من المطورين البرمجة بشكل وثيق جدًا مع
الأجهزة، ولكن يفتحها على الثغرات الأمنية. لا تسمح لغات البرمجة مثل Java و
JavaScript و#C و Ruby و Python وغيرها بسهولة للمطورين بارتكاب هذه الأخطاء، مما يجعل Buffer Overflows أقل احتمالًا في التطبيقات المكتوبة بهذه اللغات.
يحدث Buffer Overflows عندما يتم وضع المدخلات غير المعقمة في المتغيرات. يتم
تمثيل هذه المتغيرات في نظام التشغيل عبر بنية ذاكرة تسمى Stack. يمكن للمهاجم
بعد ذلك الكتابة فوق جزء من المكدس يسمى Return Pointer