امنیت داده و شبکه
| مدرس: دکتر کامبیز میزانیان | پیشنیاز: – |
| ترم: تابستان ۱۴۰۴ | محل برگزاری: کلاس مجازی |
| زمان ارائه: یکشنبه و سهشنبه ۱۷:۰۰ تا ۱۸:۳۰ | مشاهده: دریافت لایسنس |
معرفی درس
امنیت داده و شبکه؛ از شناخت آسیبپذیریها تا طراحی سیستمهای امن
امنیت یکی از چالشهای اساسی در طراحی و توسعه سامانههای نرمافزاری و زیرساختهای دیجیتال است. وبسایتها، شبکههای ارتباطی، سیستمعاملها و برنامههای موبایل همواره در معرض تهدیدهایی قرار دارند که میتوانند محرمانگی اطلاعات، صحت دادهها یا دسترسپذیری خدمات را به خطر بیندازند. شناخت این تهدیدها و آشنایی با روشهای دفاعی، برای افرادی که در حوزه طراحی، پیادهسازی و نگهداری سامانههای نرمافزاری فعالیت میکنند، اهمیت زیادی دارد.
درس امنیت داده و شبکه با هدف آشنایی با مفاهیم بنیادی امنیت و بررسی روشهای متداول حمله و دفاع در سامانههای رایانهای طراحی شده است. در این درس، با مدلهای کنترل دسترسی و سیاستهای امنیتی آشنا میشوید و سپس موضوعاتی مانند آسیبپذیریهای نرمافزارهای تحت وب، امنیت ارتباطات شبکه، سازوکارهای رمزنگاری، تهدیدهای امنیت سیستم و ملاحظات امنیتی سکوهای موبایل را بررسی میکنید.
این درس تنها به معرفی تهدیدها محدود نمیشود؛ بلکه به راهکارهای پیشگیری، شناسایی و کاهش خطر نیز میپردازد. آشنایی با ابزارهایی مانند دیواره آتش، سامانههای تشخیص نفوذ، شبکه خصوصی مجازی، تحلیل ایستا و پویای نرمافزار و روش فازینگ، دید گستردهتری درباره شیوههای ارزیابی و تقویت امنیت سامانهها فراهم میکند.
در پایان این درس چه تواناییهایی کسب میکنید؟
- شناخت مفاهیم پایه امنیت اطلاعات، سیاستهای امنیتی و مدلهای کنترل دسترسی، از جمله DAC، MAC و RBAC
- درک آسیبپذیریهای رایج در برنامههای تحت وب، از جمله تزریق SQL، حملات XSS و CSRF، و آشنایی با سازوکارهای مقابله با آنها
- شناخت اصول رمزنگاری متقارن و نامتقارن، توابع درهمساز و کدهای احراز صحت پیام
- درک سازوکارهای حفاظت از اطلاعات در ارتباطات وب و آشنایی با HTTPS، SSL و سیاستهای امنیتی مرورگر
- شناخت تهدیدهای امنیتی در پروتکلهای شبکه و آشنایی با ابزارهای دفاعی مانند دیواره آتش، VPN و سامانههای تشخیص نفوذ
- آشنایی با حملات منع سرویس و شناخت رویکردهای دفاعی برای حفظ دسترسپذیری خدمات
- درک برخی آسیبپذیریهای سطح سیستم و آشنایی با روشهای کاهش خطر، از جمله ایزولهسازی، مجازیسازی و جعبه شنی
- آشنایی با روشهای ارزیابی امنیت نرمافزار، از جمله تحلیل ایستا، تحلیل پویا و فازینگ
- شناخت تهدیدها و ملاحظات امنیتی در سکوهای موبایل، بهویژه Android و iOS
این درس برای دانشجویان و دانشآموختگان علوم کامپیوتر و مهندسی کامپیوتر و همچنین برنامهنویسان، توسعهدهندگان وب و متخصصان شبکه مناسب است که میخواهند درک عمیقتری از آسیبپذیریهای نرمافزاری و شبکهای و روشهای دفاع در برابر آنها به دست آورند. مطالب درس میتواند به بهبود نگاه امنیتی در طراحی و توسعه نرمافزار، ارزیابی سامانهها و ادامه یادگیری در حوزههایی مانند امنیت نرمافزار و امنیت شبکه کمک کند.
پیشنیاز
آشنایی مقدماتی با برنامهنویسی، مفاهیم پایه سیستمعامل و شبکههای رایانهای برای بهرهگیری بهتر از این درس توصیه میشود. تجربه کار با برنامههای تحت وب یا آشنایی با مفاهیم پروتکلهای شبکه نیز میتواند در درک مثالها و آسیبپذیریهای مطرحشده مفید باشد.
ریز مواد
- مفاهیم و تعاریف اولیه
- خط مشی امنیتی و مدلهای کنترل دسترسی
- کانالهای پنهان، کنترل جریان اطلاعات
- مدلهای اختیاری (DAC) و مدلهای اجباری (MAC)
- مدلهای نقش-مبنا (RBAC)
- مدل امنیتی وب
- امنیت نرمافزارهای کاربردی تحت وب (sql, XSS, CSRF)
- مدیریت نشست های تحت وب (Cookies)
- مفاهیم رمزنگاری متقارن و نامتقارن
- کدهای احراز صحت پیام و توابع درهمساز
- امنیت اطلاعات وب در حین تبادل (Https/SSL)
- مکانیزمهای دفاعی سمت مرورگر (SOP, CSP, CORS)
- امنیت شبکه
- تهدیدات امنیتی در پروتکل های شبکه (etc, routing, BGP, DNS, TCP)
- ابزارهای دفاعی در شبکه (etc, IDS, VPN, Firewall)
- حملات منع سرویس و راهکارهای دفاعی
- محاسبات با اعتماد (Trusted Computing) و SGX
- امنیت سیستم
- نحوهی اجرای نرمافزارها و تعاملات آنها با سیستم و نقاط ضعف
- حملات و روشهای دفاعی (control hijacking)
- مدیریت امن کدهای قدیمی در حال استفاده (جعبه شنی، مجازی سازی، ایزوله سازی در لایه های مختلف)
- روشهای موجود برای توسعه امن کد (تحلیل ایستا، تحلیل پویا)
- روشهای نقض امنیت و Fuzzing
- امنیت موبایل
- امنیت سکوهای موبایل (iOS, Android)
- تهدیدات در حوزه موبایل
ارزیابی
- تمرین و پروژه: ۶ نمره
- آزمون پایانی: ۱۴ نمره
منابع
- Matt Bishop. Computer Security. Addison-Wesley, 2017.
- John Erickson. The Art of Exploitation 2nd Edition, No Starch Press, 2008.
- Robert C. Seacord. Secure Coding in C and C++. 2nd Edition, Pearson Education, 2005.
- A. Sotirov. Bypassing Browser Memory Protections. 2008.
- T. Garfinkel. Traps and Pitfalls: Practical Problems in System Call Interposition Based Security Tools. NDSS, 2003.
- Adam Barth, Collin Jackson, and John C. Mitchell. Securing Browser Frame Communication. Usenix, 2008.
- Adam Barth, Collin Jackson, Charles Reis, and the Google Chrome Team. The Security Architecture of the Chromium Browser. 2008.
- Bortz et al. Origin Cookies: Session Integrity for Web Applications. 2011.
- Enck, Ongtang, and McDaniel. Understanding Android Security. 2009.
- Allan Tomlinson. Introduction to the TPM: Smart Cards, Tokens, Security and Applications. 2008.
- Andrew Baumann, Marcus Peinado, and Galen Hunt. Shielding Applications from an Untrusted Cloud with Haven. OSDI 2014.