• ورود کاربران دانشگاهی

  • ثبت نام(مطالعه آنلاین پایان نامه ها)

  • کاربر مهمان
    پنجشنبه 30 شهریور 1396| 54.225.39.142 :Your IP

    سامانه دسترسی به پایان نامه های دانشگاه اصفهان



    عنوان :
    آزمون فاز جهت کشف آسیب‌پذیریهای امنیتی
    انتشارات : دانشگاه اصفهان
    سال :1392
    زبان : Persian
    شماره سند : 11714
    موضوع :مهندسی کامپیوتر گرایش هوش‌مصنوعی
    پژوهشگر : منیره قدیریان
    توصیفگر لاتین : Software Testing ? Fuzz Testing ? Concolic Testing ? Heuristic Methods ? Genetic Algorithms
    توصیفگر فارسی : آزمون نرم‌افزار ◄ آزمون فاز ◄ آزمون واقعی-نمادین ◄ روش‌های اکتشافی ◄ الگوریتم ژنتیک
    دانشکده : دانشکده فنی و مهندسی،گروه مهندسی کامپیوتر
    مقطع : کارشناسی ارشد

    استاد راهنما : بهروز ترکلادانی، بهمن زمانی
    استاد مشاور :
    سال دفاع : 1392
    شماره رکورد : 11714
    شماره راهنما : COM2 305
    فهرست : فهرست مطالب
    عنوان صفحه

    فصل اول:کلیات
    1-1- مقدمه 1
    1-2- شرح و بیان مسئله پژوهشی 1
    1-3- کاربرد نتایج تحقیق 3
    1-4- ساختار پایان‌نامه 4
    فصل دوم: ادبیات موضوع
    2-1- مقدمه 5
    2-2- آزمون نرم‌افزار 6
    2-2-1- دسته‌بندی‌های آزمون 6
    2-2-2- معیارهای مقایسه آزمون‌ها 8
    2-3- آزمون فاز 10
    2-3-1- معرفی 11
    2-3-2- اهمیت آزمون فاز 13
    2-3-3- مدل عمومی فازر 15
    2-4- اجرای نمادین 16
    2-4-1- آشنایی با اجرای نمادین 17
    2-4-2- مشکلات اجرای نمادین 20
    2-5- الگوریتم ژنتیک 20
    2-5-1- ساختار الگوریتم‌ ژنتیک 21
    2-5-2- عملگرهای ژنتیکی 22
    2-5-3- روند کلی الگوریتم‏های ژنتیک 24
    2-5-4- روش‏ انتخاب نمونه‌برداری به روش گردونه رولت 24
    2-6- نتیجه‌گیری 26

    عنوان صفحه

    فصل سوم: آزمون فاز در حوزه نرم‌افزار
    3-1- مقدمه 27
    3-2- دسته‌بندی انواع فازرها 28
    3-2-1- دسته‌بندی بر اساس تولیدکننده‌های فاز 28
    3-2-2- دسته‌بندی بر اساس مکانیزم توزیع 32
    3-2-3- دسته‌بندی بر اساس سیستم‌های پایش‌گر 33
    3-3- مرور پژوهش‌های انجام شده در حوزه آزمون فاز 34
    3-3-1- مروری بر پژوهش‌ها در حیطه آزمون‌ فاز جعبه‌سیاه 34
    3-3-2- مروری بر پژوهش‌ها در حیطه آزمون فاز جعبه سفید 45
    3-4- نتیجه‌گیری 51
    فصل چهارم: آزمون فاز واقعی-نمادین اکتشافی
    4-1- مقدمه 53
    4-2- نمای کلی سیستم آزمون 55
    4-2-1- هدف سیستم پیشنهادی 55
    4-2-2- ورودی آزمون 61
    4-2-3- خروجی آزمون 61
    4-3- معماری سیستم پیشنهادی 62
    4-3-1- واحد مولد بذر به روش اکتشافی 63
    4-3-2- واحد اجراکننده واقعی-نمادین 64
    4-3-3- واحد کاشف مسیرهای جدید 64
    4-4- طراحی تفصیلی سیستم پیشنهادی 64
    4-4-1- استفاده از الگوریتم ژنتیک جهت تولید بذر اولیه بهینه 65
    4-4-2- ذخیره‌سازی موارد آزمون جهت نگاشت معکوس 67
    عنوان صفحه

    4-4-3- تولید موارد آزمون به روش آزمون واقعی-نمادین 67
    4-4-4- پوشش مسیرهای ناپیموده و کمتر پیموده شده با الگوریتم ژنتیک 74
    4-5- نتیجه‌گیری 80
    فصل پنجم: پیاده‌سازی و ارزیابی روش پیشنهادی
    5-1- مقدمه 81
    5-2- کلیات پیاده‌سازی 81
    5-2-1- محیط پیاده‌سازی 82
    5-2-2- دیگر ابزارهای مورد استفاده 86
    5-3- پیاده‌سازی و پیکربندی سیستم پیشنهادی 89
    5-4- ارزیابی تحلیلی سیستم پیشنهادی 95
    5-4-1- مطالعه موردی 1: کشف آسیب‌پذیری تقسیم بر صفر 95
    5-4-2- مطالعه موردی 2: کشف ادعای نادرست 97
    5-4-3- مطالعه موردی 3: کشف آسیب‌پذیری سرریز عدد صحیح 101
    5-4-4- مطالعه موردی 4: کشف آسیب‌پذیری سرریز میانگیر در برنامه JLEX 103
    5-5- نتیجه‌گیری 104
    فصل ششم: نتیجه‌گیری و راهکارهای آینده
    6-1- مقدمه 106
    6-2- خلاصه‌ای از مطالب پایان‌نامه 107
    6-3- نوآوری‌ها و مزایای روش پیشنهادی 108
    6-4- راهکارهای آینده 108





    چکیده :
    چکیده آزمون نرم‌افزار یکی از مراحل مهم و پرهزینه چرخه حیات نرم‌افزار است. خسته‌کننده‌‌ و وقت‌گیر بودن آزمون‌های متداول کد، سبب گرایش گروه‌های نرم‌افزاری به سمت آزمون فاز شده است. آزمون فاز، به صورت خودکار برنامه تحت آزمون را با ارسال داده‌های تصادفی یا نیمه تصادفی بمباران کرده و منتظر رفتار غیرعادی در نرم‌افزار تحت آزمون می‌شود. آزمون فاز، در کنار خودکار بودن میتواند در صورت رسیدن به پوشش کد، خطاها و آسیب‌پذیری‌های زیادی را کشف کند. چالش اصلی در تمام آزمون‌های کد مانند این آزمون، رسیدن به پوشش کد و طی مناطق عمیق کد است تا احتمال یافتن خطا و آسیب‌پذیری بیشتر شود. بدین منظور استفاده از روش آزمون واقعی-نمادین در صورت داشتن حلال قیود مناسب و یا شکل دقیق و مناسب شرایط مسیر می‌تواند بسیار امیدبخش باشد؛ اما به دلیل نقش گلوگاهی حلال قیود و شکل قیود ممکن است برخی از مسیرها، جوابی مناسب از حلال قیود دریافت نکرده و دچار انحراف شده و این مسیرها و مسیرهای حاشیه‌ای آن‌ها هرگز پیموده نشوند. همچنین در مواردی، ارسال بذر اولیه نامناسب منجر به توقف ناخواسته آزمون می‌شود بدون آنکه برنامه به صورت مناسبی پوشش داده شود. در این پایان‌نامه، روشی برای تولید بذر اولیه ارائه داده و سپس آزمون واقعی-نمادین بر روی برنامه تحت آزمون با کمک بذر تولیدی اجرا می‌شود. همچنین اکتشافاتی بر روی قیود شرایط مسیر حاصل از آزمون واقعی-نمادین با کمک الگوریتم ژنتیک صورت گرفته و شرایط مسیر بهتری تولید می‌شود به صورتی که توسط حلال قیود قابل حل بوده و طی کردن داده متناظر با آن، به پوشش کد بالاتر می‌انجامد. ارزیابی انجام‌شده دلالت بر پوشش کد بهتر و کشف آسیب‌پذیری‌های بیشتر توسط روش ارائه‌شده دارد. واژه‌های کلیدی: آزمون نرم‌افزار، آزمون فاز، آزمون واقعی-نمادین، روش‌های اکتشافی، الگوریتم ژنتیک

    چکیده انگلیسی :
    Abstract Software testing is one of important and costly phase in software life cycle. Being tedious and time consuming of common code test techniques cause tendency of software teams to fuzz testing.Fuzz testing generates automatically many random or semi-random inputs and feeds them into software under test and waits to see an unexpected behavior in software under test. If fuzz testing reaches to a good coverage, it can discover many bugs and vulnerabilities in software under test. The main challenge of all code testing like fuzz testing is reaching good code coverage and exercising deep code regions to increase probability of finding bugs and vulnerability. Using concolic testing can be promising for this purpose, but it is possible some path conditions don't receive a suitable solution and some path conditions never been seen, because of the bottleneck role of constraint solver and the form of path conditions. Moreover, sending unsuitable initial seed can cause stopping test without good covering of application in some cases .In this thesis, one method for generating initial seed is presented and then concolic testing execute by help of this generated seed. Moreover, by help of genetic algorithm, some heuristics are done on constraints of path condition of concolic testing and better path conditions are produced, such that can be solved by constraint solver and cause more code coverage by exercising correspond data. Experimental results show better code coverage and more discovered vulnerability by presented method. Keywords: Software Testing, Fuzz Testing, Concolic Testing, Heuristic Methods, Genetic Algorithms


    کلید واژه ها :
    آزمون نرم‌افزار ◄ آزمون فاز ◄ آزمون واقعی-نمادین ◄ روش‌های اکتشافی ◄ الگوریتم ژنتیک,Software Testing ◄ Fuzz Testing ◄ Concolic Testing ◄ Heuristic Methods ◄ Genetic Algorithms

    1392
    0

    صفحه اول : University of Isfahan Faculty of Engineering Department of Computer Engineering M.Sc. Thesis Fuzz Testing for Software vulnerability Detection Advisor: Dr. Behrouz Tork Ladani Dr. Bahman Zamani By: Monireh Ghadirian October 2013
    فصل اول : 1-4
    فصل دوم : 5-26
    فصل سوم : 27-52
    فصل چهارم : 53-80
    فصل پنجم : 81-105
    فصل ششم : 106-120