امنیت سیستمهای نرمافزاری
Software Systems Security
مقطع: تحصیلات تکمیلی | گرایش: رایانش امن |
نوع درس: نظری | تعداد واحد: ۳ |
پیشنیاز: – | همنیاز: – |
هدف کلی
این درس دانشجویان را با چالشهای اصلی در طراحی و پیادهسازی سیستمهای نرمافزاری و برنامههای کاربردی امن آشنا میسازد. اهمیت امنیت، انواع آسیبپذیریهای نرمافزار، و چگونگی بهرهبردن مهاجمان از آسیبپذیریها از موضوعاتی هستند که در این درس مطرح میشوند. همچنین، دانشجویان میآموزند چگونه میتوان به صورت روشمند با تلفیق امنیت و چرخه حیات توسعه نرمافزار با حملهها مقابله کرد. برای این کار، لازم است دانشجویان تحلیل نیازمندیهای امنیتی، مدلسازی تهدید، مدیریت مخاطرات امنیتی، برنامهنویسی امن، و نیز بازبینی و آزمون امنیتی را فراگیرند. همچنین، دانشجویان با برخی از ابزارهای موجود برای توسعه امن نرمافزار آشنا میشوند.
سرفصلها
- مقدمه: مسائل امنیتی در نرمافزار، ویژگیهای امنیتی، آسیبپذیری و حملهها
- استانداردهای امنیتی
- چرخه حیات توسعه امنیتی: مدلسازی تهدید و تحلیل مخاطرات، امنیت در مراحل تولید و استقرار نرمافزار
- آزمون امنیتی: ارزیابی آسیبپذیری، طرحهای آزمون امنیتی
- روشهای آزمون و پوشش، آزمون نفوذ، آزمون فاز، تزریق خرابی
- امنیت مبتنی بر زبان
- امنیت در برنامههای تحت وب
- امنیت در برنامههای کاربردی موبایل
ارزیابی پیشنهادی
- تمرینها و پروژه: ۳۰ درصد نمره
- آزمونهای میانترم و پایانی: ۵۰ درصد نمره
- پروژه پژوهشی: ۲۰ درصد نمره
منابع پیشنهادی
- 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.
- A. Shostack. Threat Modeling: Designing for Security. Wiley, 2014.
- M. Howard, D. LeBlanc, J. Viega. 24 Deadly Signs of Software Security: Programming Flaws and How to Fix Them. McGraw-Hill, 2009.