توسعه امن نرم‌افزار

Secure Software Development

مقطع: تحصیلات تکمیلی گرایش: رایانش امن
نوع درس: نظری تعداد واحد: ۳
پیش‌نیاز: – هم‌نیاز: –

هدف کلی

این درس دانشجویان را با چالش‌های اصلی در طراحی و پیاده سازی سیستم‌های نرم‌افزاری و برنامه‌های کاربردی امن آشنا می‌سازد. اهمیت امنیت، انواع آسیب پذیری‌های نرم‌افزار، و چگونگی بهره بردن مهاجمان از آسیب پذیری‌ها از موضوعاتی هستند که در این درس مطرح می‌شوند. همچنین، دانشجویان می‌آموزند چگونه می‌توان به صورت روشمند با تلفیق امنیت و چرخه حیات توسعه نرم‌افزار با حمله‌ها مقابله کرد. برای این کار، لازم است دانشجویان تحلیل نیازمندی‌های امنیتی، مدلسازی تهدید، مدیریت مخاطرات امنیتی، برنامه نویسی امن، و نیز بازبینی و آزمون امنیتی را فراگیرند. همچنین، دانشجویان با برخی از ابزارهای موجود برای توسعه امن نرم‌افزار آشنا می‌شوند

سرفصل‌ها

  1. امنیت نرم‌افزار: مسائل امنیتی در نرم‌افزار، ویژگیهای امنیتی، آسیب پذیری و حمله‌ها
  2. استانداردهای امنیتی
  3. چرخه حیات توسعه امنیتی: تحلیل نیازمندیهای امنیتی، مدلسازی تهدید و تحلیل مخاطرات، طراحی امنیتی، برنامه نویسی امن، بازبینی امنیتی، تولید سیستم قابل اجرا، آزمون امنیتی، استقرار امن، ترمیم‌های امنیتی
  4. آزمون امنیتی: ارزیابی آسیب پذیری، طرح‌های آزمون امنیتی، ابزارهای پوشش کد، موارد آزمون امنیتی
  5. روشهای آزمون: آزمون نفوذ، آزمون فاز، تزریق خرابی
  6. امنیت مبتنی بر زبان
  7. امنیت در برنامه‌های تحت وب
  8. امنیت در برنامه‌های کاربردی موبایل

ارزیابی پیشنهادی

  • تمرین‌ها و پروژه: ۳۰ درصد نمره
  • آزمون‌های میان‌ترم و پایانی: ۵۰ درصد نمره
  • پروژه پژوهشی: ۲۰ درصد نمره

منابع پیشنهادی

  1. A. K. Talukder, and M. Chaitanya. Architecting Secure Software Systems. CRC Press, 2009.
  2. G. McGraw. Software Security: Building Security In. Addison-Wesley, 2006.
  3. M. Dowd, J. McDonald, and J. Schuh. The Art of Software Security Assessment: Identifying and Preventing Software Vulnerabilities. Addison-Wesley, 2006.
  4. M. Howard, D. LeBlanc, J. Viega. 24 Deadly Sins of Software Security: Programming Flaws and How to Fix Them. McGraw-Hill, 2009.
  5. M. S. Merkow, and L. Raghavan. Secure and Resilient Software Development. CRC Press, 2010.