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

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.