امنیت سیستم‌های نرم‌افزاری

Software Systems Security

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

هدف کلی

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

سرفصل‌ها

  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. A. Shostack. Threat Modeling: Designing for Security. Wiley, 2014.
  5. M. Howard, D. LeBlanc, J. Viega. 24 Deadly Signs of Software Security: Programming Flaws and How to Fix Them. McGraw-Hill, 2009.