جلسه 23: بررسی تاثیر Buffer Overflows در تست امنیت

جلسه 23: بررسی تاثیر Buffer Overflows در تست امنیت
نگهداری امن و محرمانه اطلاعات مشتریان از اولویت بالایی در تمامی سازمان ها و شرکت ها برخوردار است. متأسفانه، روزانه آسیب پذیری های جدیدی کشف شده و همگامی نگهداشت امن سازمان در برابر آن ها، تقریباً به امری محال تبدیل شده است. این آسیب پذیری ها در تار و پود زیرساخت IT قرار گرفته و گاهاً به مدت بسیار طولانی کشف نشده باقی می مانند. اگرچه راه های بسیاری برای امن سازی سیستم ها و اپلیکیشن ها در برابر آسیب پذیری ها وجود دارد، اما تنها راه کسب اطمینان واقعی از آن، تست امنیتی بستر IT سازمان به منظور یافتن این حفره های امنیتی است.
داده ها و اطلاعات کاربران و البته وبسایت ها ممکن است به سرقت برده شوند؛ مورد سوء استفاده گرفته و یا در فضای عمومی و بدون خواست صاحبان آن عرضه شوند. تست امنیت Security Testing امروزه مبحث داغ امنیت است تا آسودگی خیال افراد را در بستر اینترنت فراهم کند. راهکار “تست امنیتی” امکان تکرار حملات بر روی سیستم ها، دستگاه ها و اپلیکیشن ها را به منظور آشکارسازی زنجیره ای از مسیرهای باز و آسیب پذیر بر روی سیستم ها و داده های حساس و حیاتی سازمان، فراهم می آورد.
خلاصه جلسه قبل:
در جلسه گذشته به بررسی سروریس های وب در تست امنیت پرداختیم؛ در برنامه های مدرن مبتنی بر وب، استفاده از خدمات وب اجتناب ناپذیر است اما بعضی از این برنامه ها در معرض حملات وب قرار می گیرند؛ از آنجا که سرویس های وب درخواست fetch از چندین وب سایت را دارند، برای جلوگیری از هرگونه نفوذ توسط هکرها، مجبور به انجام اقدامات اضافی هستند. در این جلسه می خواهیم به بررسی تاثیر Buffer Overflows در تست امنیت بپردازیم.
تاثیر Buffer Overflows در تست امنیت
Buffer Overflows یا سرریز بافر هنگامی ایجاد می شود که یک برنامه سعی می کند داده های بیشتری را در یک مکان ذخیره موقت داده ها (بافر) ذخیره کند تا از آن چیزی که برای آن در نظر گرفته شده است نگهداری کند. از آنجا که بافرها برای حاوی مقدار محدودی از داده ها ایجاد می شوند، اطلاعات اضافی می توانند درون بافرهای مجاور سرریز شوند، بنابراین داده های معتبری را که در آنها نگهداری می شوند را خراب می کنند.
مثال:
در ادامه به بررسی یکی از شایع ترین نمونه های سرریزبافر می پردازیم؛ این نمونه یک سرریز بافر ساده را نشان می دهد که توسط اولین سناریو ایجاد شده است که در آن برای کنترل رفتار خود به داده های خارجی متکی است. هیچ راهی برای محدود کردن میزان داده هایی که کاربر وارد کرده است وجود ندارد و رفتار برنامه به این بستگی دارد که کارکتر شما در چه کارکتر هایی هایی قرار داده شده است.
... char bufr[BUFSIZE]; gets(bufr); ...
Hands ON
مرحله 1) برای دسترسی به اینترنت باید با نام و شماره room وارد شوید. در ادامه می توانید تصویری از این سناریو را ببینید.

مرحله 2) همچنین می توانید “Unhide hidden form fields” را در Burp Suite مانند تصویر زیر فعال کنید.

مرحله 3) اکنون ما یک ورودی به نام و شماره room ارسال می کنیم. همچنین می توانید تعداد بسیار بزرگی از آن را در قسمت شماره اتاق تزریق کنید.

مرحله 4) قسمت های پنهان مطابق شکل زیر نمایش داده می شوند. ما روی accept terms کلیک می کنیم.

مرحله 5) حمله به حدی موفقیت آمیز است که به عنوان یک نتیجه از سرریز بافر، شروع به خواندن مکان های حافظه مجاور می کند و مانند تصویر زیر برای کاربر نمایش داده می شود.

مرحله 6) حالا اجازه دهید با استفاده از داده های نمایش داده شده وارد سیستم شویم. بعد از ورود، پیام زیر نمایش داده می شود.

مکانیسم های پیشگیرانه
- بررسی کد
- آموزش توسعه دهنده
- ابزار کامپایلر
- ایجاد توابع ایمن
- اسکن دوره ای
سخن پایانی
در این جلسه به بررسی تاثیر Buffer Overflows در تست امنیت پرداختیم؛ Buffer Overflows یا سرریز بافر هنگامی ایجاد می شود که یک برنامه سعی می کند داده های بیشتری را در یک مکان ذخیره موقت داده ها (بافر) ذخیره کند تا از آن چیزی که برای آن در نظر گرفته شده است نگهداری کند.
در جلسه آینده به بررسی حمله انکار سرویس می پردازیم. لطفا نظرات خود در رابطه با این مقاله را با ما به اشتراک بگذارید.
موفق و سر سبز باشید.
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.