شماره ركورد
17288
شماره راهنما(اين فيلد مربوط به كارشناس ميباشد لطفا آن را خالي بگذاريد)
17288
پديد آورنده
سميرا اميني
عنوان
طراحي و پياده سازي يك روش توليد داده آزمون به منظور كشف آسيب پذيري هاي نرم افزار
مقطع تحصيلي
كارشناسي ارشد
رشته تحصيلي
نرم افزار
تاريخ دفاع
آذر 1395
استاد راهنما
دكتر سعيد پارسا
دانشكده
كامپيوتر
چكيده
هدف در اين پايان نامه ارائه يك فازر جعبه خاكستري، جهت كشف آسيب پذيري ها در كد دودويي قابلاجرا است. بررسي ها نشان مي دهد كه آزمون فازينگ داراي سه مشكل اساسي است. از يكسو، فضاي ورودي فراهمشده توسط فازرها بسيار بزرگ است. از سوي ديگر، اغلب فازرها پوشش نامناسبي از كد را ارائه مي دهند. درنهايت زماني كه مسيري از برنامه پيمايش مي شود و آسيب پذيري موجود در آن آشكار مي شود، آزمون فازينگ ممكن است اين مسير آسيب پذير را ناديده بگيرد. روش پيشنهادي در اين پايان نامه، بهمنظور حل مشكل بزرگي فضاي ورودي، فرايند توليد داده آزمون را به سمت پوشش مسيرهايي كه الگوهاي آسيب پذيري در آن ها مشاهدهشده است، هدايت مي كند. بدين منظور از فرايند تكاملي باهدف پوشش مسيرهاي برنامه استفادهشده است. بنابراين علاوه بر كاهش فضاي ورودي، اكثر مسيرهاي برنامه پوشش داده مي شوند. در روش ارائه شده، زماني كه يك داده آزمون يك آسيب پذيري را آشكار مي كند، داده آزمون بعدي بهگونهاي توليد مي شود كه باعث افشاي آن آسيب پذيري شود. درنتيجه تعداد آسيبپذيري هاي شناساييشده توسط ابزار پيشنهادي افزايش مي يابد. آزمايش هاي انجامشده در اين پايان نامه كارايي روش پيشنهادي را در مقايسه با روش سنتي آزمون فازينگ نشان مي دهند.
واژههاي كليدي: آزمون فازينگ، توليد داده آزمون، تحليل رفتاري، پوشش مسير
تاريخ ورود اطلاعات
1396/03/06
تاريخ بهره برداري
1/1/1900 12:00:00 AM
دانشجوي وارد كننده اطلاعات
سميرا اميني
چكيده به لاتين
This thesis is aimed at the construction of a gray box fuzzer to detect the vulnerabilities in binary executable code. Our surveys has three fundamental difficulties with current approaches to fuzz testing. First of all, the input space provided by the fuzzers could be very large. Secondly, fuzzers are most often does not get high code coverage. Finally, most of the current approaches may ignore vulnerable paths when generating test data to reveal vulnerabilities. Our proposed method shrinks the input space of the programs, to be fuzzed, by conducting the test data generation towards suspicious paths in which one or more vulnerability patterns are observed. To achieve this an evolutionary approach to test data generation for generating test data for path coverage testing is adopted. In this way the difficulty with the huge size of the input space is almost resolved while almost all the paths are covered. After a vulnerable path is detected, appropriate test data is generated to examine the path. In this way none of the vulnerable paths is ignored. Our experiments with a number of programs reveals the high performance of our proposed approach compared with the traditional fuzz testing.
Keywords: Fuzz Testing, Test Data Generation, Dynamic Analysis, Path Coverage