توسعه امن نرمافزار
Secure Software Development
مقطع: تحصیلات تکمیلی | گرایش: رایانش امن |
نوع درس: نظری | تعداد واحد: ۳ |
پیشنیاز: – | همنیاز: – |
هدف کلی
این درس دانشجویان را با چالشهای اصلی در طراحی و پیاده سازی سیستمهای نرمافزاری و برنامههای کاربردی امن آشنا میسازد. اهمیت امنیت، انواع آسیب پذیریهای نرمافزار، و چگونگی بهره بردن مهاجمان از آسیب پذیریها از موضوعاتی هستند که در این درس مطرح میشوند. همچنین، دانشجویان میآموزند چگونه میتوان به صورت روشمند با تلفیق امنیت و چرخه حیات توسعه نرمافزار با حملهها مقابله کرد. برای این کار، لازم است دانشجویان تحلیل نیازمندیهای امنیتی، مدلسازی تهدید، مدیریت مخاطرات امنیتی، برنامه نویسی امن، و نیز بازبینی و آزمون امنیتی را فراگیرند. همچنین، دانشجویان با برخی از ابزارهای موجود برای توسعه امن نرمافزار آشنا میشوند
سرفصلها
- امنیت نرمافزار: مسائل امنیتی در نرمافزار، ویژگیهای امنیتی، آسیب پذیری و حملهها
- استانداردهای امنیتی
- چرخه حیات توسعه امنیتی: تحلیل نیازمندیهای امنیتی، مدلسازی تهدید و تحلیل مخاطرات، طراحی امنیتی، برنامه نویسی امن، بازبینی امنیتی، تولید سیستم قابل اجرا، آزمون امنیتی، استقرار امن، ترمیمهای امنیتی
- آزمون امنیتی: ارزیابی آسیب پذیری، طرحهای آزمون امنیتی، ابزارهای پوشش کد، موارد آزمون امنیتی
- روشهای آزمون: آزمون نفوذ، آزمون فاز، تزریق خرابی
- امنیت مبتنی بر زبان
- امنیت در برنامههای تحت وب
- امنیت در برنامههای کاربردی موبایل
ارزیابی پیشنهادی
- تمرینها و پروژه: ۳۰ درصد نمره
- آزمونهای میانترم و پایانی: ۵۰ درصد نمره
- پروژه پژوهشی: ۲۰ درصد نمره
منابع پیشنهادی
- A. K. Talukder, and M. Chaitanya. Architecting Secure Software Systems. CRC Press, 2009.
- G. McGraw. Software Security: Building Security In. Addison-Wesley, 2006.
- M. Dowd, J. McDonald, and J. Schuh. The Art of Software Security Assessment: Identifying and Preventing Software Vulnerabilities. Addison-Wesley, 2006.
- M. Howard, D. LeBlanc, J. Viega. 24 Deadly Sins of Software Security: Programming Flaws and How to Fix Them. McGraw-Hill, 2009.
- M. S. Merkow, and L. Raghavan. Secure and Resilient Software Development. CRC Press, 2010.