رفتن به مطلب

هكرهاو استفاده ازسرريز بافر


ارسال های توصیه شده

تاريخچه

 

شروع اين ماجرا مربوط به سالها پيش است. طراحان زبان برنامه نويسيC و سپس++C ظاهرا بيش از حد لازم دمكرات بودند. بايد قبول كرد كه اغلب اوقات كمكي محافظه كاري اگر چاشني كار شود نتيجه بهتر خواهد بود! در حالي كه اغلب زبانهاي برنامه نويسي به شكلي برنامه نويس را در تخصيص و يا كاربري حافظه محدود ميكنند اين زبان دست برنامه نويس را تا حد امكان باز گذاشته تا جايي كه برنامه نويس ميتواند يك رشته صد بايتي را در يك حافظه ده بايتي كپي كند. همين ويژگي باعث شد تا برنامه نويسانC كمتر حساسيتي در زمينه چك كردن طول رشته هايي كه در يك بافر كپي ميشوند از خود نشان دهند. نتيجه همه اينها بوجود آمدن يك سرگرمي بسيار پر طرفدار براي هكرها بود. با چند كلك فني ميتوان به جاي رشته ورودي يك رشته طولاني حاوي كد يكBack Door را وارد كرد و نتيجه؟ افتادن كنترل كامل كامپيوتر مورد نظر در دست هكر.

 

اصل ماجرا به همين سادگياست و در واقع پايه فني بسياري از كرمهاي اينترنتي و بسياري از خرابكاري ها همين خطاست.Blaster هم بر اساس وجود يك چنين خطايي در يكي از سرويسهايRPC ويندوز عمل ميكرد. اما اگر مشكل به اين سادگياست چرا تا كنون براي حل آن اقدامي نشده است؟ خواهيد گفت دستكم ميشد به برنامه نويسان پيشنهاد كرد كه لطفا در هنگام نوشتن برنامه طول رشته هاي ورودي را حتما با طول بافر چك كنيد. بسيار پيشنهاد خوبي است اما دو مشكل بزرگ براي عملي كردن آن وجود دارد. اول اينكه برنامه نويسانC اصلا از اين پيشنهاد شما خوششان نخواهد آمد. آنها هميشه كارهاي مهمتري از چك كردن طول رشته ها دارند! و دومين نكته اينكه حجم بسيار عظيمي از كدهايي را كه قبلا نوشته شده نميتوان دوباره تغيير داد. اين مشكل دوم دقيقا چيزياست كه ميكروسافت با آن روبروست : كد ويندوز بنا به برخي روايتها ملغمه عجيب و غريبياست كه هنوز حتي يادگارهايي از كد داس نيز در آن موجود است.

 

راه حلهايي براي آينده

 

واقعيت اينست كه تا كنون يك دوجين راه حل براي حل اين مشكل پيشنهاد شده است و بسياري از تكنولوژيهاي جديد يكي از اولين ويژگيهاي خود را حل اين مشكل عنوان ميكنند. جاوا و.NET دو مثال خوب براي اين قضيه هستند. اين دو زبان (اجازه دهيد با كمي اغماض.NET را زبان بناميم هر چند اينگونه نيست) مكانيزمهايسخت گيرانه اي براي مديريت حافظه دارند و عملا كنترل كامل حافظه برنامه را از دست برنامه نويس خارج ميكنند.

 

اما همانگونه كه حدس ميزنيد اين دو نيز همان اشكالهاي قبلي را دارند: تغيير تمام كدهاي موجود و تبديل آنها به كدهاي جاوا و يا.NET عملي نيست. اينها مشكل را فقط در آينده دور حل كرده اند اما اكنون چاره چيست؟

تغيير ديدگاه

 

اخيرا شركتAMD پروسسورهايي را روانه بازار كرده است كه مهمترين ويژگي آنها اينست : مقاومت در برابر حمله سرريز بافر. اين اولين بار نيست كه براي مشكلات نرم افزاري راه حلهاي سخت افزاري پيشنهاد ميشود. در واقع به نظر ميرسد مشكل دارد در جايي حل ميشود كه اساسا انتظار آن نميرفت: در پايين ترين سطح سيستم: پروسسور.

 

همانگونه كه پيشتر ديديم اين حمله تنها زماني امكان پذير ميشود كه هكر بتواند بهشي از كد را وارد داده كند و به اجراي آن بپدازد. هر برنامه در هنگام اجرا از بخشهاي مختلفي در حافظه تشكيل ميشود كه مهمترين بخشهاي آن عبارتند از دو بخش كد و داده. تا كنون اين دو بخش از ديد پردازنده ها يكسان بودند و پردازنده تفاوتي بين آنها نميگذاشت . اين تنها نرم افزارها بودند كه اين تفاوت را درك ميكردند. اما ازين پس پردازنده هايAMD سريAthlon 64 (براي كامپيوترهاي شخصي) و سريOpteron (براي سرورها) اين تفاوت را خواهند فهميد. به محض اينكه هكر سعي كند يك قطعه كد را در قسمت مربوط به داده برنامه اجرا كند پردازنده جلوي آنرا خواهد گرفت و يك پيغام خطا براي سيستم عامل ارسال خواهد كرد و سيستم عامل برنامه عامل خطا را خواهد بست.

 

دقت كنيد كه كاركرد نهايي اين تكنيك وابسته به همكاري كامل سيستم عامل و پردازنده است . به همين دليل مديرانAMD عملكرد نهايي اين تكنيك را در نسخه آيندهXP وعده داده اند. البتهIntel نيز براي اينكه از قافله عقب نماند خبر از همكاري با ميكروسافت براي حل اين مشكل داده است. سري آيندهItanium از شركت اينتل خصلتي مشابهAthlon هايAMD خواهد داشت.

 

افق

 

آيا اين به معني پايان داستانBlasterياSlammer است. به نظر نمي رسد اينگونه باشد هر چند بايد منتظر نتايج عملي اين تكنولوژي باشيم اما از همين اكنون ميتوان پيش بيني كرد كه هكرها هم راههاي جديدي خواهند يافت. بهر حال اين نكته را بايد يادآوري كنيم كه تا به امروز مهمترين تكنيك مورد استفاده هكرها سرريز بافر بوده ست. با توجه به اين نكته روزهاي سختي براي آنها در پيش است.

 

برگرفته از سايت

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

لینک به دیدگاه
×
×
  • اضافه کردن...