شماره ركورد
14200
شماره راهنما(اين فيلد مربوط به كارشناس ميباشد لطفا آن را خالي بگذاريد)
14200
پديد آورنده
زهرا فاتحي مرج
عنوان
متنوع سازي نرم افزار با هدف تحملپذيري نفوذ با استفاده از فنون تبديل برنامه
مقطع تحصيلي
كارشناسي ارشد
رشته تحصيلي
نرمافزار
سال تحصيل
اسفند ماه 1393
تاريخ دفاع
اسفند ماه 1393
استاد راهنما
دكتر عبداللهي ازگمي
دانشكده
كامپيوتر
چكيده
چكيده
تعداد زياد سيستم كامپيوتري با آسيبپذيري يكسان، ميتواند به تهديدي مهم تبديل شود. متنوعسازي نرمافزار با ايجاد انواع مختلف از يك نرمافزار، به عنوان راهحلي براي تحملپذيري نفوذ در برابر آسيبپذيريهاي مشترك ارائه ميشود. انواع ايجادشده، از نظر رفتاري معادل ولي از لحاظ ساختاري متفاوت هستند. در اين ميان متنوعسازي نرمافزار با استفاده از فنون تبديل برنامه، به دليل خودكار بودن و عدم نياز به چندين تيم برنامهنويسي مورد توجه ويژه قرار گرفته است. پژوهشها، متنوعسازي را در مراحل مختلف سير كد نرمافزار، از كامپايل تا بهروزرساني، و با بهرهگيري از ابزارهايي چون انواع كامپايلرها انجام دادهاند. با اين وجود، مراحل و ابزارهايي وجود دارند كه تاكنون بررسي نشده است. بهعلاوه هيچ يك از پژوهشها، اثبات حفظ رفتار برنامههاي حاصل از متنوعسازي را مدنظر قرار ندادهاند.
در اين پژوهش، يك طرح متنوعسازي نرمافزار با استفاده از فنون تبديل برنامه بهطور خودكار و با هدف حفظ رفتار برنامه ارائه ميشود. متنوعسازي، در زمان كامپايل و در سطوح مختلف برنامه انجام ميشود. تبديل مرتبسازي مجدد تابع در سطح فايل، سه تبديل تزريق بلوك پايه، شكافت بلوك پايه، و مرتبسازي مجدد بلوك پايه در سطح بلوك پايه، و تبديلهاي مرتبسازي مجدد دستورالعمل و لايهگذاري تصادفي در سطح دستورالعمل به كار ميروند. طرح پيشنهادي با توسعه گذرهاي جديد بر پايه كامپايلر LLVM و روي نمايش مياني آن، پيادهسازي شده است.
براي اثبات حفظ رفتار برنامههاي متنوعشده توسط طرح پيشنهادي، از اثبات صوري بر پايه چارچوب Vellvm استفاده ميشود. اثبات حفظ رفتار متنوعساز، مستلزم اثبات مجزاي تبديلهاي آن است. تبديلهاي مرتبسازي مجدد تابع، و مرتبسازي مجدد بلوك پايه به دليل عدم تغيير كد، نيازي به اثبات ندارند. براي اثبات تبديلهاي مرتبسازي مجدد دستورالعمل، و لايهگذاري تصادفي از تعاريف و لمهاي Vellvm استفاده شده است. اثبات فنون تبديل تزريق بلوك پايه، و شكافت بلوك پايه با ارائه يك تعريف و يك لم براي هر كدام انجام شده است. در نهايت كارآمدي طرح پيشنهادي با توجه به تأثير آن بر آسيبپذيريها و حملههاي رايج، مورد بررسي قرار گرفته است. طرح پيشنهادي با كاهش احتمال آسيبپذيريهاي رايج سرريز مبتني بر پشته، آزادسازي مجدد، اشارهگرهاي معلق، و قالبرشته، احتمال وقوع حملههاي خرابي پشته، برنامهنويسي بازگشتگرا، و رونويسي اشارهگر تابع را كاهش داده است.
واژههاي كليدي: متنوعسازي نرمافزار، تبديل برنامه، كامپايلر LLVM، حفظ رفتار، اثبات صوري.