امنیت در بحث های اطلاعاتی و نرم افزاری از جنبه های مهم فناوری اطلاعات است، چرا که داده و نرم افزارها که به داده ها دسترسی دارند، از دارایی های مهم هر سازمان می باشد با توجه به این که در بحث های فناوری اطلاعات پیشرفت های صورت گرفته، اما از نظر امنیت هنوز به حد ایده آل نرسیده است هر چند در دهه گذشته کارهای زیادی در این زمینه صورت پذیرفته است.
فناوری اطلاعات به سرعت در کل زیرساخت های حیاتی در حال گسترش است و نرم افزار به بخشی اجتناب ناپذیر از صنایع و سازمان های تبدیل شده است. علاوه بر این، بسیاری از تهدیدات سایبری(رایانه ای) نتیجه کد گذاری ضعیف نرم افزاری است. استاکس نت(stuxnet) که قدرتمندترین سایبر سلاح مورد استفاده در برابر سیستم های کنترل صنعتی بود، آسیب پذیری ها و ضعف های صفر- روز(zero- day ) در ویندوزهای مایکروسافت را مورد استفاده قرا داد.
وزارت امور امنیت داخلی ایالات متحده(DHS) نیز اعلام کرد که آسیب پذیرهای نرم افزاری در میان سه تا از رایج ترین آسیب پذیری های امنیت سایبری در سیستم های کنترل صنعتی(ICS ها) قرار دارند. از اینرو، بهبود حفاظت نرم افزار نقش بسزایی در افزایش سطح امنیت سیستم های مبتنی بر رایانه دارد.
آزمون امنیت نرم افزار با آزمایش درستی و کارآیی کارکردهای امنیتی که توسط نرم افزار اجرا می گردد )و این کارکردها در بیشتر موارد از طریق تست مبتنی بر نیازها تایید می شوند) تفاوت دارد. با وجود اینکه این آزمون ها مهم هستند، اما تنها نشانگر بخش اندکی از شرح یا توصیف لازم برای تایید امنیت نرم افزار می باشند. انجام آزمون امنیت لازم است زیرا رابطه آشکاری با کیفیت نرم افزار دارد. اینکه نرم افزار نیازهای کیفی مرتبط با کارکرد و عملکرد را برآورد می سازد الزاما به معنی امن بودن نرم افزار نمی باشد. مهاجمان می توانند از عیب و نقص های موجود در نرم افزار برای باز کردن حفاره های امنیتی استفاده کنناد. بسیاری از برنامه های کاربردی نرم افزاری به اقدامات امنیتی یکپارچه ای در برابر حملات بدخواهانه احتیاج دارند. شناسایی عیب و نقص های نرم افزاری که امکان دارد به طور بالقوه به نقض امنیت منجر شوند و تایید کارآیی اقدامات امنیتی، از جمله اهداف انجام آزمون امنیتی این سیستم ها می باشد.
فهرست:
چکیده
مقدمه
کلیات
چرخه حیات نرم افزار امن
استراتژی تست برنامه های کاربردی
آزمون نرم افزار
آزمون قابلیت نرم افزار
آزمون امنیتی نرم افزار
رویکردهای آزمون امنیتی نرم افزار
تکنیک های انجام تست و ارزیابی برنامه های کاربردی
تست جعبه سفید
بازبینی کد منبع
تست جعبه سیاه
تکنیک های آزمون امنیتی نرم افزار
بررسی کد
تحلیل ایستای خودکار
وارد کردن خطا به کد برنامه و کد باینری
تست فازی
تحلیل کد دودویی
اسکن(پویش) قابلیت های اسیب پذیری
تست نفوذ
آزمون امنیتی مبتنی بر مدل
انواع مدل ها در آزمون امنیتی مبتنی بر مدل
آزمون امنیت مبتنی بر ریسک
استفاده از متریک هایپیچیدگی در بهبود امنیت نرم افزار
متر یک های داده کاوی
بررسی اجمالی روش های رده بندی باینری
ساخت مجموعه داده ها
تکرار مطالعات شین و همکاران
پیش بینی آسیب پذیری تقابلی برنامه
بحث و نتیجه گیری
منابع