یکی از مشکلات امنیتی که در بعضی از نرم افزارها مشاهده می شود، سرریزی بافر یا buffer overflow است. سرریزی بافر عموما در زمان اجرا و بسته به ورودی های مختلف برنامه رخ می دهد و حتی می تواند به هکرها کمک کند تا برنامه را تغییر داده و کدهای مخرب در آن وارد کنند. در این مقاله قصد داریم این موضوع را بررسی کنیم و ببینیم سرریزی بافر چیست و چه زمانی اتفاق می افتد.
بافر چیست؟ بافر، حافظه موقتی است که به صورت نرم افزاری و سخت افزاری پیاده سازی می شود، در روش سخت افزاری مثل بافر کیبورد، اطلاعات کلیدهایی که شما روی صفحه کلید فشار داده اید در جایی ذخیره می شود و سیستم عامل آنها را می خواند و پردازش می کند. بافر نرم افزاری به دو صورت قابل پیاده سازی است. 1 در سطح سیستم عامل: سیستم عامل مقداری از حافظه را جهت بافرکردن به خود اختصاص می دهد. این حافظه برای یکسان سازی سرعت دیسک سخت و پردازشگر استفاده می شود. 2 در سطح نرم افزار کاربردی: این حافظه را ما به عنوان برنامه نویس تعریف می کنیم تا امور مختلفی را انجام دهیم. قطعه کد زیر را در نظر بگیرید: void overflow_function (char *str){ char buffer[10]; strcpy(buffer, str); } int main(){ char big_string[14]; strcpy(big_string,"bufferoverflow"); overflow_function(big_string); return 0; } از لحاظ قواعد گرامری این قطعه کد درست است و باید بدون اشکال کار کند اما در زمان اجرا، خطای در حال اجرا صادر خواهد شد با این مضمون: stack around the variable ‘buffer’ was corrupted بسیار خب، این خطا به ما می گوید که متغیر بافر خراب شده است. بیایید ببینیم این کد دقیقا چه کار می کند: ابتدا یک متغیر از نوع رشته به طول 14کاراکتر تعریف کرده و مقدار bufferoverflow را با استفاده از دستور strcpy در آن کپی می کنیم. تا اینجا مشکل خاصی نیست و کد درست است. حال مقدار big_string به تابع overflow_function پاس داده می شود. این تابع سعی دارد مقدار big_string که به آن داده شده است را درbuffer کپی کند اما این عمل ناموفق می ماند و در نتیجه برنامه خطا می دهد. چرا خطا می دهد؟ این تابع می خواهد مقدار 14کاراکتر را در یک رشته 10کاراکتری کپی کند، طبیعی است که این کار را نمی تواند درست انجام دهد، برای همین خطا صادر می شود. کمی دقیق تر به مساله نگاه می کنیم: وقتی تابع overflow_function فراخوانی می شود آدرس برگشت به تابع فراخواننده در ثبات sp قرار می گیرد. سپس این تابع سعی می کند مقدار 14کاراکتر را در 10کاراکتر کپی کند و این عمل با موفقیت انجام می شود. فرض کنید بافر در 10خانه اول بعد از آدرس 100h قرار داد و ثبات sp مقدار خانه 10dh را به عنوان آدرس برگشتی تابع overflow_function در خود دارد. حال مقدار 14کاراکتر در متغیر بافر، کپی می شود و در نتیجه خانه های 100h تا 10eh بازنویسی می شوند و سپس کار تابع به پایان می رسد و سیستم عامل قصد دارد با استفاده از آدرس ذخیره شده در sp به فراخواننده تابع overflow_function بر گردد اما از آن جایی که آدرس 10dh بازنویسی شده است، پردازشگر نمی تواند دستوری را اجرا کند و خطای bufferoverflow صادر می شود. خب، هکرها با استفاده از همین خطا به سیستم های دیگران حمله می کنند. آنها یکسری دستورات به زبان اسمبلی می نویسند که در اصطلاح به آنها shellcode یا exploit گفته می شود. به مثال بالا برمی گردیم، فرض کنید به جای مقدار “bufferoverflow” یک شل کد به تابع overflow_function داده شود. وقتی کار تابع تمام شد، پردازشگر به آدرس 10dh می رود. مقدار این آدرس دیگر یک مقدار نامعتبر نیست بلکه به یک قطعه کد اشاره دارد و پردازشگر، آن قطعه کد را اجرا می کند و سبب می شود برنامه اصلی، کار خودش را درست انجام ندهد . این یک روش برای سوءاستفاده از سرریزی است. روش دیگر دسترسی به بخش های محرمانه حافظه است که اطلاعات اساسی سیستم در آن قرار دارد. هکر با تزریق کد خود به برنامه می تواند به بخش های محرمانه حافظه دسترسی پیدا کند و اطلاعات حیاتی سیستم را مورد سو ءاستفاده قرار دهد.
چگونه جلوی سرریزی را بگیریم؟ تنها کاری که لازم است انجام دهیم، بررسی مقادیر ورودی برنامه است تا دقیقا مطابق با اندازه متغیر داده ها درون آن ریخته شوند. به طور مثال؛ کد بالا را با تغییر کوچکی اصلاح می کنیم و از سرریزی بافر جلوگیری می کنیم. کد بازنویسی شده به صورت زیر خواهد بود: void overflow_function (char *str){ char buffer[10]; strncpy(buffer, str,10); } int main(){ char big_string[14]; strncpy(big_string,"bufferoverflow",14); overflow_function(big_string); return 0; }
امیربهاالدین سبط الشیخ
... برخی کارشناسان می گویند هکرها با استفاده از برخی ابزار می توانند کدهای مخرب خود را از راه دور بر روی آی پد اجرا کرده و کنترل این ابزار را در اختیار بگیرند ...
... تحلیل تهدیدهای آنلاین در طول نیمه دوم سال 2009 توسط شرکت امنیتی وب سنس نشان داد که 81 درصد از ایمیل ها به شکلی درست شده بودند تا کدهای مخرب را ارسال کنند و 95 درصد از کامنت های ارسال شده در وبلاگ ها یا اجتماعات چت، هرزنامه یا لینک هایی به ویروس های دانلود شونده بودند ... 7 درصد از وب سایت های قلابی حاوی نرم افزارهای مخرب بودند و در صد جست وجوی برتر برای جست وجوهای انجام گرفته با استفاده از واژه هایی مانند سرویس های ردیابی موضوعات داغ yahoo! buzz یا گوگل تراند قرار داشتند ... بنا بر این گزارش، شمار وب سایت های مخرب در نیمه دوم سال 2009 نسبت به نیمه اول دو برابر شد و بدتر از آن، هکرها به طور فزاینده ویروس ها را در وب سایت هایی قرار دادند که مردم به آن ها اعتماد داشتند ... این اطلاعات با استفاده از سرویس threat seeker network تهیه شده که در هر ساعت بیش از 40 میلیون وب سایت و حدود 10 میلیون ایمیل را برای یافتن کدهای مخرب اسکن می کند ...
... بر اساس گزارش جدید سوفوس، آمریکا بزرگ ترین شمار وب سایت های مخرب جهان را میزبانی می کند ... به گزارش ایسنا در حالی که وب جهانی اصلی ترین توزیع کننده نرم افزار مخرب شناخته شده، در شمار زیادی از موارد جدید شامل سایت های مخرب، انگشت اتهام به سمت سایت های میزبانی شده در آمریکا نشانه رفته است ... طبق گزارش شرکت امنیتی سوفوس، بیش از 37 درصد از صفحات وب مخرب جهان در آمریکا میزبانی می شوند و شمار وب سایت های مخرب در روسیه و چین که به ترتیب 12 ... چین درباره حملات نرم افزارهای مخرب اغلب گناهکار اصلی خوانده می شود اما شمار صفحات وب مخرب میزبانی شده در این کشور از 51 ... در فهرست 10 کشور برتر در زمینه میزبانی نرم افزارهای مخرب در اینترنت پس از این سه کشور، پرو، آلمان، کره جنوبی، لهستان، تایلند، ترکیه و انگلیس قرار دارند ...
... استفاده های خارج از کنترل و حالات اعتیادآوری که افراد نسبت به اینترنت و رایانه پیدا می کنند، تأثیرات مخربی در زندگی افراد خواهند داشت؛ از دست دادن شغل، طلاق، و حتی تصادفات رانندگی (برای آنهایی که حتی در هنگام رانندگی نیز فکر و دست شان مشغول کار با رایانه و تایپ کردن است) تنها بخشی از تأثیرات مخرب اعتیاد به رایانه و اینترنت است ... اما نمی توان منکر تاثیرات مخرب و اعتیادآور آن که همان استفاده بیش از حد و خارج از کنترل آن است در دراز مدت بر فرد و عادات روحی - رفتاری او شد ...
... به گفته تحلیلگران امنیتی، نرم افزار مخرب مورد استفاده در حمله علیه گوگل نوع تغییریافته ای از تروژان hydraq بوده است ...
... به گفته گوردون لاو، مسوول ناحیه آفریقای موسسه سایمنتک که در زمینه فعالیت های مخرب فضای مجازی تحقیق و بررسی می کند، تحقیقات این شرکت نشان داده که همواره رویدادهای بزرگ دنیا با تهدیدهای بزرگ مجازی روبه رو هستند و احتمال افزایش خطراتی چون تقلب های آنلاین، وب سایت های دروغین، حمله های هرزنامه ها و هک کردن های بسیار می رود ... مصر، کشورهای خاورمیانه و آفریقا در سال 2008 در بالای فهرست خطرناک ترین ناحیه ها از نظر فعالیت های مخرب شناخته شدند ...
... به گفته این سازمان دولتی، یک حفره در سیستم امنیتی اینترنت اکسپلورر به وجود آمده است که حملات و نصب برنامه های مخرب را در رایانه هایی که با سیستم عامل ویندوز عمل می کنند از طریق یک کد دستکاری شده در یک سایت ویژه امکانپذیر می کند ...
... وقتی کاربر می تواند نهایت امنیت را در سیستم خود تامین کند که همیشه بسته امنیتی به روز شده ای داشته باشد تا با استفاده از آن و البته بانک اطلاعاتی که از آخرین فایل های مخرب وجود دارد سیستم را در مقابل حملات مخرب بیمه کند ...
... طبق اعلام مکافی، کسانی که این حملات را مهندسی کرده اند کارمندان این شرکت ها را برای کلیک برروی یک لینک به وب سایتی که از طریق آن نرم افزار مخرب پیشرفته به رایانه ها دانلود می شد، فریب می دادند ...
... به گزارش سرویس ارتباطات خبرگزاری دانشجویان ایران (ایسنا)، از آنجا که فروشگاه اینترنتی «آندروید مارکت» گوگل متکی به برنامه های عرضه شده توسط کاربران است، شرکت ها و مشتریان تلفن هوشمند را در معرض حملات برنامه های مخرب قرار می دهد ... برنامه های بانکی مخرب پیش از این از فروشگاه گوگل که ظاهرا هر کسی می تواند برنامه ای را به عنوان برنامه بانکی ارسال کند، حذف شده اند ... سرویس های مالی و شرکت های دیگر باید در انتظار مشاهده نرم افزارهای مخرب آندرویدی باشند که مشتریان آن ها را هدف گرفته اند زیرا خلافکاران بازار رو به رشد آندروید را ایجاد فرصت جدیدی برای شرارت می بینند ... در حالی که اپل برای اعمال کنترل های شدید برروی برنامه های آیفون و آی پاد تاچ در فروشگاه آنلاین app store مورد انتقاد قرار گرفته اما انتشار گسترده نرم افزار مخرب عمده ای در میان کاربرانش روی نداده است اما به نظر می رسد با وجود کنترل اندک برروی برنامه های آندروید، مشکلات جدی برای مشتریان گوگل چندان دور نباشد ...
| 1 |
صفحه 2
|
3 | 4 | 5 |