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

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.