اکسپلویت سرریز بافر

اکسپلویت یا كد مخرب کدی است که برای نارواگری از یک آسیبپذیری مدل سازی شده است. اکسپلویت ها برای این ساخته می شوند که توانایی دستیابی غیر مشروع به اطلاعات و برنامه ها را در سیستم های قربانی برای تازنده فراهم کنند. بنابراین اکسپلویت، یا همان کدهای مخرب، برنامهها و کدهایی هستند که به واسطه یک یا چند هکر یا پژوهشگر امنیتی به منظور تایید یا استفاده از آسیب پذیری ویژه ای در یک نرم افزار سیستم عامل یا سخت افزار ویژه نوشته می شوند. جهت آشنایی بیشتر با مفهوم اکسپوینت سرریز بافر، در ادامه همراه ما باشید:
اکسپلویت Exploit چیست؟
این برنامه ها الزاماً برای تخریب نوشته و پخش نمی شوند، بلکه اهداف و آماج تحقیقاتی و آموزشی را هم دنبال می کنند. هرچند بهره گیری از این کدها برای سرایت به سیستم های استفاده کنندگان کاری رایج است. اکسپلویتها اغلب موقع پیدا کردن آسیب پذیری ها و یا بعد از پیدا کردن حفره های امنیتی نوشته می شوند. اکسپلویت نویسها بیشتر هکرهایی هستند که با شیوه ها و راه های گوناگون، شروع به نوشتن کدهای مخرب می کنند. در دنیای امروز خرید و فروش این کدها به شکل یک معامله درآمده است. کدهای مخرب با توجه به قسم و طبقه بندی آسیب پذیری مورد استفاده در آن و همچنین مدل سیستم های هدف و شیوه های کدنویسی، در بعضی مواقع تا صدها هزار دلار نیز به فروش می رسند .
چگونه اسیر اکسپلویت نشویم؟
اغلبا سیستم هایی که بروزرسانی نمی شوند بیشتر در معرض حمله توسط اکسپلویت ها هستند. به همین خاطر گام اول، بروزرسانی همیشه و به موقع سیستم است. گام بعدى بهره گیری از سیستم های بازشناسی و پیشگیری از سرایت در سیستم و شبکه است. مثل آنتى ویروس، IDS و IPS . گام سوم استفاده نکردن از لوازم بی پایه و دارای عدم صلاحیت است. این نکات تا حد بسیار زیادی جلوی این بحران را می گیرد.
سرریز بافر
سرریز بافر یا Buffer OverFlow زمانی اتفاق می افتد که با دادن داده هایی به اون برنامه باعث می شویم که بافر اون برنامه پر شود. (بافر بخشی از حافظه است که به طور موقت برای حفظ اطلاعات یک نرم افزار تعلق گرفته باشد). بعد از پر شدن بافر برنامه دچار کرش می شود و بعد از آن ما می توانیم هر فرمانی که می خواهیم به آن برنامه بدهیم. (مثل تزریق کردن شل کد برای ایجاد دسترسی است).
در ایمنی کامپیوتر و برنامه نویسی، سرریز بافر، یا هجوم آوردن بافر، یک مستثنی است که در آن برنامه، زمانی که در حال نوشتن داده ها به بافر است، از محدوده بافر تجاوز می کند و سبب نسخه برداری حافظه مجاور می شود. این نمونه ای ویژه از نقض امنیت حافظه است.
سرریزهای بافر به وسیله ورودی مدل سازی شده اند که برای نمایش کد یا راه، عمل برنامه را تغییر می دهند. این فعل ممکن است موجب رفتار آشفته، از جمله خطاهای دسترسی به حافظه، برآیندهای غلط، تصادف، یا نقض امنیت سیستم واقع گردد. به همین خاطر، آن ها بنیان خیلی از آسیب پذیری های نرم افزار هستند و می توانند توسط ویرانگر مورد سوء استفاده قرار بگیرند.
حافظه بافر چیست؟
بافر واسطه حافظه ای بین دو دستگاه یا سخت افزار است. بافر تکلیف هم وزن سازی و متعادل کردن سرعت پردازش های مختلف را بر عهده دارد. برای مثال در هارد دیسک ها حافظه بافر وظیفه یکسان سازی سرعت، جا به جایی اطلاعات از کامپیوتر به هارد دیسک و بالعکس را عهده دار است. به عنوان مثال از رم برای ذخیره سازی اطلاعات و داده ها به صورت گذرا استفاده می شود. پس بافر بخشی از حافظه است که به طور گذرا برای نگه داری اطلاعات یک نرم افزار استفاده می شود. اطلاعات پیش از رسیدن به محل اصلی در محلی به نام بافر به صورت گذرا ذخیره می شوند. بافر اغلب یک ظرفیت از پیش مشخص شده دارد که توسط برنامه نویس مشخص می شود.
شیوه اعمال حمله سرریز بافر به واسطه هکر
- یک متغیر در بافر وارد می شود تا میزان حافظه پشته پر شود.
- اکنون مقادیر داده ای بیشتر از آنچه که حافظه برای آن در نظر گرفته شده است، وارد می شود. عاقبت آن سرریز بافر می باشد.
- سپس یک متغیر دیگر را در بافر وارد می کنند تا مقدار قبلی را بپوشاند و به برنامه بگوید چه چیزی را عمل کند.
- در آخر اگر هکر با موفقیت اشاره گر کد را بپوشاند، برنامه کد هکر را اجرا می کند.
بیشتر هکرها نیازی به داشتن دانش درباره این کدها ندارند؛ زیرا کدهای آماده زیادی در اینترنت وجود دارد..
حمله سرریز integer
بیشتر زبان های برنامه نویسی بالاترین اندازه را برای اعداد صحیح تعریف می کنند. زمانی که از این اندازه عبور کند، نتیجه ممکن است سبب خطا شده یا نتیجه غلطی را در محدوده اعداد صحیح نشان دهد. حمله سرریز Integer وقتی پیش می آید که یک عدد صحیح در فرآیند محاسباتی استفاده شود و نتیجه اندکی بیش از بیشترین طول عدد صحیح باشد. به عنوان مثال برای ذخیره عدد 192 به 8 بیت حافظه احتیاج است. اگر فرآیند 64 را به این عدد اضافه کند، پاسخ 256 در حافظه اختصاص داده شده جای نمیگیرد، زیرا به 9 بیت احتیاج دارد.
حملات format string
مهاجمان با استفاده غلط از حومه ها و پیرامون کتابخانه فرمت بندی رشته مانند printf و sprintf دستیابی و دگرگونی و ایجاد تغییر در سایر فضاهای حافظه و شیوه تداول برنامه را تغییر می دهند. زمانی که این حمله محقق می شود، این داده ها و اطلاعات به واسطه کاربر مانند یک فرمان اجرایی، بر روی آن عملیات صورت می پذیرد و مورد پردازش قرار می گیرند.
حمله سرریز unicode
این فرمت را می توان در برنامه هایی مورد استفاده قرار داد که تمام ورودی های آن باید از نوع کاراکترهای ASCII باشد. پیشگیری از این نوع حملات با دانستن اطلاعات زیر ممکن است:
- در صورتی که برنامه نویس هستید یادتان نرود که از همان اول کد نویسی و مدل سازی، امنیت را یک گوشه از ذهن تان قرار بدهید.
- همه ورودی های کاربر از جمله فرم ها را تحلیل کنید، تا تنها اطلاعات مورد نظر شما توانایی عبور داشته باشند.
- تست نرم افزارتان را برای این گونه حملات فراموش نکنید و در آخر سرویس هایی را که استفاده نمی کنید، غیرفعال کنید.
- این حملات از ضعف به دست آمده از عدم تست اندازه داده ورودي استفاده مي کنند. به همین دلیل بهترين اصل در برنامه نويسي، يک سرويس يا برنامه استوار در برابر آن ها، چک کردن اندازه تمام ورودی ها به برنامه، پیش از انجام هر کاری روی داده ها است. براي برنامه نويسان محيط unix/linux کتابخانه هايی مثل StackGuard وجود دارند که برنامه نويس می تواند با لينک کردن اين کتابخانه ها به نرم افزار خود، مانع بسیاری از این نوع هجوم ها شود.
کارنامک حملات سرریز بافر
در نوامبر سال ۱۹۹۶ مقاله ای به واسطه آقای آلف وان منتشر شد که دید جدیدی را در دنیای امنیت دیجیتال به وجود آورد. این مقاله توضیح می داد که چگونه عدم توانایی در برنامه نویسی می تواند سبب دستیابی به یک نرم افزار یا از کارانداختن آن شود. این شکل و نوع از حمله را سرریز بافر یا Buffer Overflow Attack می نامند.
نتیجه گیری
در دنیای هکینگ آسیب پذیری هایی گوناگونی وجود داره و هر کدوم از این آسیب پذیری ها دسترسی هایی به هکر می دهد که بسیار خطرناک هست و امنیت ما را به خطر می اندازند , به صورت لاصه مهمترین راه برای بالا بردن امنیت خود در برابر این نوع حملات استفاده از جدیدترین نسخه نرم افزار ها است و هر روز سایت های ثبت اکسپلویت را چک کنید تا اگر اسیب پذیری جدیدی پیدا شد براساس سورس ان اسیب پذیری خود را در برابر آن مصون می مانیم.
دیدگاهتان را بنویسید