Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

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

1.644 Aufrufe

Veröffentlicht am

اسلاید های جلسه چهارم ایمدا با موضوع توسعه امن نرم افزار
ارائه دهنده : محمد حمیدی اصفهانی

Veröffentlicht in: Software

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

  1. 1. ‫افزار‬ ‫نرم‬ ‫امن‬ ‫توسعه‬ ‫اصفهانی‬ ‫حمیدی‬ ‫محمد‬
  2. 2. •‫تاریخی‬ ‫لحاظ‬ ‫به‬ ‫امنیت‬ ‫مساله‬ ‫نبودن‬ ‫تازه‬(‫و‬ ‫ها‬ ‫قلعه‬ ‫از‬ ‫دفاع‬).... •‫پیرامونی‬ ‫دفاع‬ ‫رویکرد‬(Defending perimeters)‫امنیت‬ ‫مسائل‬ ‫بازمانده‬ ‫فیزیکی‬ •‫د‬ ‫دفاع‬ ‫و‬ ‫پیرامونی‬ ‫دفاع‬ ‫ذهنیت‬ ‫به‬ ‫امروزی‬ ‫های‬‫رایانه‬ ‫امنیت‬ ‫شدید‬ ‫وابستگی‬‫ر‬ ‫سیستم‬ ‫مرزهای‬(‫آتش‬ ‫دیوار‬) •‫پیرامونی‬ ‫دفاع‬ ‫فریب‬ ‫های‬‫رویه‬ ‫همان‬ ‫از‬ ‫کنندگان‬‫تقلیدحمله‬ •‫سیستم‬ ‫درون‬ ‫در‬ ‫حتی‬ ‫اعتماد‬ ‫نبود‬ ‫و‬ ‫پیرامون‬ ‫تعریف‬ ‫دشواری‬ •‫اعتمادمتفاوت‬ ‫مقادیر‬ ‫با‬ ‫امروزی‬ ‫وب‬‫تحت‬ ‫های‬‫سیستم‬ ‫شدگی‬ ‫توزیع‬ •‫هزینه‬ ‫تنها‬‫شبکه‬ ‫امنیت‬ ‫تامین‬ ‫برای‬‫کند‬‫نمی‬ ‫حل‬ ‫را‬ ‫امنیت‬ ‫مشکل‬<<<<‫باید‬ ‫بهتری‬ ‫های‬‫افزار‬ ‫نرم‬‫شود‬‫ساخته‬. ‫امنیت‬ ‫مساله‬
  3. 3. ‫افزار‬‫نرم‬ ‫امن‬ ‫توسعه‬ ‫امنیت‬ ‫برای‬ ‫افزار‬‫نرم‬ ‫ازمون‬ ‫و‬ ‫ساخت‬ ،‫طراحی‬ ‫فرآیند‬ ‫امن‬ ‫افزار‬‫نرم‬ ‫طراحی‬ ‫شده‬ ‫ساخته‬ ‫افزار‬‫نرم‬ ‫بودن‬ ‫امن‬ ‫از‬ ‫اطمینان‬ ‫امنیت‬ ‫کردن‬ ‫دخیل‬ ‫درباره‬ ‫آموزش‬ ‫و‬ •‫دهندگان‬‫توسعه‬ •‫طراحان‬ •‫و‬‫کاربران‬ ‫قلب‬‫افزار‬‫نرم‬ ‫مشکالت‬ ‫حذف‬ ‫و‬ ‫شناسایی‬ ‫با‬ ‫رایانه‬ ‫امنیت‬ ‫صورت‬ ‫به‬ ‫تواند‬ ‫می‬ ‫که‬ ‫افزاری‬‫نرم‬ ‫ساخت‬ ‫برای‬ ‫تالش‬‫گیرانه‬‫پیش‬‫ن‬ ‫حمالت‬ ‫از‬ ‫ای‬‫جات‬ ‫یابد‬.
  4. 4. ‫افزار‬‫نرم‬ ‫امن‬ ‫توسعه‬-2 ‫ست‬‫آنها‬‫مدیریت‬ ‫و‬ ‫افزاری‬‫نرم‬ ‫های‬‫ریسک‬ ‫فهم‬ ‫افزار‬‫نرم‬ ‫امنیت‬. ‫مناسب‬ ‫افزار‬‫نرم‬ ‫امنیت‬ ‫فعالیت‬ ‫یک‬ ‫افزار‬‫نرم‬ ‫حیات‬ ‫چرخه‬ ‫ابتدای‬ ‫در‬ ‫امنیت‬ ‫به‬ ‫پرداختن‬ ‫متداول‬ ‫مسائل‬ ‫فهم‬(‫زبان‬ ‫خاص‬ ‫عیوب‬ ‫مثل‬) ‫امنیت‬ ‫برای‬ ‫طراحی‬ ‫افزاری‬‫نرم‬ ‫مصنوعات‬ ‫همه‬ ‫آزمون‬ ‫و‬ ‫ریسک‬ ‫تحلیل‬ ‫ن‬ ‫ای‬‫شبکه‬ ‫کارکرد‬ ‫و‬ ‫افزار‬‫نرم‬ ‫به‬ ‫اجتماع‬ ‫و‬ ‫تجارت‬ ‫وابستگی‬ ، ‫افزار‬ ‫نرم‬ ‫فراگیری‬‫افزار‬‫رم‬ <<<<‫ضروری‬ ‫امری‬ ‫افزار‬‫نرم‬ ‫امنیت‬‫لوکس‬ ‫و‬ ‫اضافی‬ ‫فعالیتی‬ ‫نه‬ ‫و‬!
  5. 5. ‫افزار‬‫نرم‬ ‫امنیت‬ ‫قبال‬ ‫در‬ ‫کاربرد‬ ‫امنیت‬-1 ‫مشکالت‬ ‫اصلی‬ ‫ریشه‬ ‫عنوان‬ ‫به‬ ‫افزار‬ ‫نرم‬ ‫به‬ ‫توجه‬ ‫تازه‬ ‫نسبتا‬ ‫ایده‬ ‫رجحان‬‫افزار‬‫نرم‬ ‫امنیت‬‫بر‬‫کاربرد‬ ‫امنیت‬ ‫کاربرد‬ ‫امنیت‬:‫که‬ ‫سیستمی‬ ‫و‬ ‫افزار‬‫نرم‬ ‫از‬ ‫حفاظت‬ ،‫مختلف‬ ‫افراد‬ ‫برای‬ ‫متفاوت‬‫افزار‬‫نرم‬ ‫آن‬ ‫شدن‬ ‫ساخته‬ ‫از‬ ‫بعد‬ ،‫گردد‬‫می‬ ‫اجرا‬ ‫آن‬ ‫روی‬! ‫بحرانی‬ ‫موضوعات‬: ‫جعبه‬ ‫در‬ ‫کد‬ ‫کردن‬ ‫ایزوله‬‫شنی‬(‫جاوا‬ ‫مجازی‬‫ماشین‬ ‫مثل‬) ‫مخرب‬ ‫کد‬ ‫قبال‬ ‫در‬ ‫حفاظت‬ ‫اجرایی‬ ‫های‬‫برنامه‬ ‫کردن‬ ‫قفل‬ ‫اجرا‬ ‫هنگام‬ ‫به‬ ‫ها‬‫برنامه‬ ‫رصد‬(‫ها‬ ‫برنامه‬ ‫ورودی‬ ‫مخصوصا‬) ‫افزار‬‫نرم‬ ‫از‬ ‫استفاده‬ ‫های‬‫سیاست‬ ‫اعمال‬ ‫قابل‬ ‫های‬‫سیستم‬‫توسعه‬
  6. 6. ‫امنیت‬ ‫قبال‬ ‫در‬ ‫کاربرد‬ ‫امنیت‬‫افزار‬‫نرم‬-2 •‫امنیت‬ ‫به‬ ‫گرا‬‫شبکه‬ ‫رویکرد‬ ‫همان‬ ‫ادامه‬ ‫در‬ •،‫ورودی‬ ‫پاالیش‬ ،‫وصله‬ ‫و‬ ‫نفوذ‬ ‫مثل‬ ‫استانداردی‬ ‫رویکردهای‬ ‫از‬ ‫استفاده‬.... •‫واکنشی‬ ‫و‬ ‫منفعالنه‬ ‫رویکردی‬ ،‫طورکلی‬ ‫به‬ •‫استفاده‬ ‫سوء‬ ‫از‬ ‫بعد‬ ‫شده‬ ‫شناخته‬ ‫امنیتی‬ ‫مشکالت‬ ‫رفع‬ ‫و‬ ‫کشف‬ ‫اساس‬ ‫بر‬(exploit)‫میدانی‬ ‫های‬‫سیستم‬ ‫در‬ •‫مثال‬:‫ترافیک‬ ‫کنترل‬ ‫طریق‬ ‫از‬ ‫سرریز‬ ‫کشف‬http‫پورت‬ ‫روی‬80 •‫تر‬‫بزرگ‬ ‫تصویر‬ ‫ندیدن‬ ،‫کاربرد‬ ‫روی‬ ‫تمرکز‬<<<‫افزار‬‫نرم‬ ‫امنیت‬ •‫کاربرد‬ ‫توسعه‬ ‫پروژه‬ ‫یک‬:‫ها‬ ‫دهنده‬ ‫توسعه‬ ‫از‬ ‫جمعی‬ ‫و‬ ‫معمار‬ ،‫ای‬‫شبکه‬ ،‫سیستمی‬ ‫افراد‬ ‫شامل‬....‫حض‬ ‫بدون‬‫ور‬ ‫امنیتی‬ ‫افراد‬
  7. 7. ‫کاربرد‬ ‫امنیت‬ ‫آزمون‬ ‫ابزارهای‬1 •‫ناامن‬ ‫افزار‬‫نرم‬ ‫تشخیص‬ ‫کار‬‫راه‬ ‫عنوان‬ ‫به‬ ‫محصول‬ ‫آزمون‬ ‫ابزارهای‬! •‫آن‬ ‫کردن‬ ‫برطرف‬ ‫برای‬ ‫ناکارآمد‬ ،‫مساله‬ ‫تشخیص‬ ‫و‬ ‫کشف‬ ‫برای‬ ‫اثربخشی‬ •‫کاربردی‬ ‫های‬‫برنامه‬ ‫با‬ ‫ساده‬ ‫خیلی‬ ‫و‬ ‫سیاهی‬‫جعبه‬ ‫برخورد‬ •‫کد‬ ‫توسعه‬ ‫از‬ ‫بعد‬ ‫اشکاالت‬ ‫حذف‬ ‫و‬ ‫یافتن‬ •‫میزان‬ ‫برای‬ ‫محکی‬“‫نبودن‬ ‫بد‬”!"badness-ometers •‫ابزارها‬ ‫اینگونه‬ ‫اصلی‬ ‫ضعف‬ ‫نقطه‬::‫پورت‬ ‫ترافیک‬ ‫روی‬ ‫تمرکز‬80
  8. 8. ‫کاربرد‬ ‫امنیت‬ ‫آزمون‬ ‫ابزارهای‬2 •… •‫به‬ ‫توجه‬ ‫عدم‬: •‫مثل‬ ‫جدیدتر‬ ‫کاربردهای‬ ‫دیگر‬ ‫های‬‫ورودی‬SSL‫و‬ ‫شده‬ ‫توزیع‬ ‫اجزای‬ ،‫خارجی‬ ‫های‬‫کتابخانه‬ ،‫محیطی‬ ‫متغیرهای‬ ،.... •‫ها‬‫ورودی‬ ‫ورای‬ ‫مسائل‬ •‫معماری‬ ‫درستی‬ •‫ها‬‫داده‬ ‫امنیت‬ •‫و‬ ‫دسترسی‬ ‫کنترل‬...
  9. 9. •‫تنها‬‫ابزارها‬ ‫این‬ ‫مناسب‬ ‫کاربرد‬:‫محصوالت‬ ‫آزمون‬‫موجود‬ ‫تجاری‬ •‫ولی‬‫حل‬‫شده‬ ‫کشف‬ ‫مشکالت‬‫دارد‬ ‫بهتر‬ ‫افزار‬‫نرم‬ ‫توسعه‬ ‫به‬ ‫نیاز‬! •‫کننده‬ ‫حمله‬ ‫رفتار‬: ‫برنامه‬ ‫تجزیه‬ ‫بخش‬ ‫هر‬ ‫کارکرد‬ ‫نحوه‬ ‫فهم‬ ‫رود‬ ‫نمی‬ ‫انتظار‬ ‫عادی‬ ‫کاربران‬ ‫از‬ ‫که‬ ‫رفتاری‬ ‫انجام‬ ‫برنامه‬ ‫رفتار‬ ‫سوء‬ •‫کدام‬‫رویکرد‬‫است؟‬ ‫مؤثرتر‬‫کاربرد‬ ‫امنیت‬ ‫یا‬ ‫افزار‬‫نرم‬ ‫امنیت‬ ‫کاربرد‬ ‫امنیت‬ ‫آزمون‬ ‫ابزارهای‬3
  10. 10. ‫افزار‬‫نرم‬ ‫امنیت‬ ‫مساله‬ ‫گانه‬‫سه‬ ‫د‬ ‫پیچیدگی‬ ‫قابلیت‬ ‫توسعه‬ ‫امنیت‬ ‫افزار‬‫نرم‬ ‫اتصال‬
  11. 11. ‫پیچیدگی‬ ‫پیچیدگی‬ ‫و‬ ‫اندازه‬ ‫نظر‬ ‫از‬ ‫مدرن‬ ‫افزاری‬‫نرم‬ ‫های‬ ‫سیستم‬ ‫نشده‬ ‫کنترل‬ ‫رشد‬ ‫کد‬ ‫اندازه‬ ‫دوی‬ ‫توان‬ ‫با‬ ‫ها‬‫نقص‬ ‫نرخ‬ ‫رشد‬ ‫عمل‬ ‫در‬ ‫اما‬ ، ‫تئوری‬ ‫در‬ ‫کوچک‬ ‫های‬‫برنامه‬ ‫وارسی‬ ‫و‬ ‫تحلیل‬ ‫قابلیت‬... ‫هسته‬ ‫درست‬ ‫کارکرد‬ ‫به‬ ‫ما‬ ‫وابستگی‬ O(10M )‫خط‬‫خود‬ ‫در‬ ‫تنهایی‬ ‫به‬ ‫کد‬‫عامل‬ ‫سیستم‬ ‫هسته‬(‫پی‬‫اکس‬40‫میلیون‬) ‫ها‬‫سیستم‬ ‫شدن‬ ‫بزرگ‬ ‫خیلی‬<<<<‫اشکاالت‬ ‫ناپذیری‬ ‫اجتناب‬ ‫امن‬ ‫غیر‬ ‫افزاری‬‫نرم‬ ‫های‬‫زبان‬ ‫از‬ ‫استفاده‬ ‫اثر‬ ‫در‬ ‫مساله‬ ‫بیشتر‬ ‫پیچیدگی‬ ‫های‬ ‫سکو‬ ‫از‬ ‫استفاده‬.NET‫و‬<<<<J2EE‫پایه‬ ‫کد‬ ‫اندازه‬ ‫کاهش‬ ‫نظر‬ ‫به‬!‫آن‬ ‫افزایش‬ ‫عمل‬ ‫در‬! ‫از‬ ‫استفاده‬ ‫نتیجه‬ ‫در‬ ‫بیشتر‬ ‫پیچیدگی‬: ‫داده‬‫پایگاه‬ ‫کاربردی‬ ‫برنامه‬ ‫های‬‫کارپذیر‬(App. Server) ‫اکس‬-‫ام‬-‫ال‬ ‫شناسه‬ ‫مدیریت‬ ‫های‬‫سیستم‬
  12. 12. ‫اتصال‬ ‫آنها‬ ‫تسهیل‬ ‫و‬ ‫حمالت‬ ‫افزایش‬ ‫سبب‬ ‫خط‬ ‫یرون‬ ‫دیروز‬ ‫تا‬ ِ‫ت‬‫حمال‬ ‫برخط‬ ‫انجام‬ ‫امکان‬! ‫دور‬ ‫راه‬ ‫منابع‬ ‫سوی‬ ‫از‬ ‫افزاری‬‫نرم‬ ‫حمالت‬ ‫خودکار‬ ‫حمالت‬ ‫کارگیری‬ ‫به‬ ‫امکان‬ ‫ها‬ ‫آن‬ ‫به‬ ‫حمله‬ ‫برای‬ ‫دسترس‬ ‫در‬ ‫بیشتری‬ ‫افزاری‬‫نرم‬ ‫های‬‫سیستم‬ ‫وجود‬ ‫شماست‬ ‫در‬ ‫پشت‬ ‫حاال‬ ‫کننده‬ ‫حمله‬! ‫بزرگ‬ ‫های‬ ‫سازمان‬ ‫در‬ ‫عمده‬ ‫اشکال‬ ‫دو‬!! ‫ها‬‫سرویس‬‫وب‬ ‫گرا‬‫سرویس‬ ‫معماری‬SOA ‫ب‬ ‫نشده‬ ‫گرفته‬ ‫نظر‬ ‫در‬ ،‫شبکه‬ ‫تحت‬ ‫عمل‬ ‫برای‬ ‫هرگز‬ ،‫کاربردی‬ ‫های‬ ‫برنامه‬ ‫برخی‬‫ودند‬ <<<‫سرویس‬ ‫عنوان‬ ‫به‬ ‫آنها‬ ‫ارائه‬ ،‫شدن‬ ‫ای‬ ‫شبکه‬!!
  13. 13. ‫توسعه‬‫قابلیت‬ ‫سیستم‬ ‫کارکرد‬ ‫وافزایش‬ ‫تکمیل‬ ‫برای‬ ‫توسعه‬ ‫و‬ ‫روزرسانی‬ ‫به‬ ‫قابلیت‬<<<‫کد‬ ‫متحرک‬(Mobile Code) ‫مثال‬:‫ای‬ ‫وصله‬ ‫معماری‬)!(-‫فایل‬ ‫جدید‬ ‫انواع‬ ‫مرور‬ ‫برای‬ ‫ها‬‫مرورگر‬ ‫مبنای‬ ‫های‬ ‫پیمانه‬dll‫عامل‬‫سیستم‬ ‫در‬ ‫نصب‬ ‫قابل‬ ‫دستگاه‬ ‫های‬ ‫گرداننده‬ ‫و‬ ‫کاربردی‬ ‫های‬‫برنامه‬ ‫کنار‬ ‫در‬ ‫جانبی‬ ‫های‬‫نویسه‬ ‫و‬ ‫ها‬‫اپلت‬ ‫موضوع‬ ‫اقتصادی‬ ‫و‬ ‫تجاری‬ ‫نظر‬ ‫نقطه‬ ‫از‬ ‫جذاب‬! ‫افزاری‬‫نرم‬ ‫های‬‫پذیری‬‫آسیب‬ ‫بروز‬ ‫از‬ ‫جلوگیری‬ ‫لحاظ‬ ‫به‬ ‫دشوار‬ ‫ناخواسته‬ ‫افزاری‬‫نرم‬ ‫اضافات‬ ‫شکل‬ ‫به‬ ‫سیستم‬ ‫به‬ ‫ورود‬!!
  14. 14. ‫افزار‬ ‫نرم‬ ‫امنیت‬ ‫مساله‬ ‫حل‬ ‫فرهنگی‬ ‫تغییرات‬ ‫نیازمند‬ ،‫پیشرفت‬ ‫حال‬ ‫در‬ ‫فعالیتی‬ ‫بـد‬ ‫خبــــــر‬::‫جادویی‬ ‫ابزار‬ ‫هیچ‬ ‫نبود‬! ‫حـــوزه‬ ‫این‬ ‫در‬ ‫کار‬ ‫نیــازمنـد‬ ‫خوب‬ ‫خبـــر‬::‫افز‬‫نرم‬ ‫دهنده‬ ‫توسعه‬ ‫سازمان‬ ‫همه‬ ‫مثبـت‬ ‫پیشــرفت‬،‫ار‬ ‫متـــــــودولوژی‬ ‫هـــر‬ ‫با‬(‫وجود‬ ‫صورت‬ ‫در‬)!!.
  15. 15. ‫موجود‬ ‫های‬‫حل‬‫راه‬ o‫امـــــــن‬ ‫توسـعه‬ ‫چرخــــــه‬McGraw 2004 (‫امــــــــــروز‬ ‫اصلـی‬ ‫بحـــث‬) o‫مایـکروسافــتـ‬ ‫امن‬ ‫توسعـــه‬ ‫چرخـــه‬ o‫پـیشـنهادی‬ ‫چـارچوبـــــــ‬OWASP o‫پــــــــروژه‬SAMTE o… o‫امن‬ ‫توســـــعه‬ ‫به‬ ‫ناظـــر‬ ‫های‬‫نـامـه‬‫گواهــی‬ ‫و‬ ‫ها‬‫استـاندارد‬
  16. 16. ‫و‬ ‫تعاریـف‬ ‫شناســـی‬‫واژه‬
  17. 17. ‫نقص‬(DEFECT) ‫های‬‫پذیری‬‫آسیب‬‫و‬ ‫سازی‬‫پیاده‬ ‫فاز‬ ‫دو‬ ‫در‬ ‫موجود‬‫طراحی‬ ‫عملیات‬ ‫محیط‬ ‫یک‬ ‫در‬ ‫شدن‬ ‫فعال‬ ‫برای‬ ‫خامــــوش‬ ‫ها‬‫سال‬ ‫تا‬ ‫شاید‬‫ی‬
  18. 18. ‫اشکال‬(BUG) ‫افزار‬‫نرم‬ ‫سازی‬‫پیاده‬ ‫سطح‬ ‫در‬ ‫افزاری‬‫نرم‬ ‫مشکل‬ ‫یک‬ ‫نگردد‬ ‫اجرا‬ ‫هرگز‬ ‫اما‬ ،‫باشد‬ ‫موجود‬ ‫است‬ ‫ممکن‬ ‫است‬ ‫اصالح‬ ‫و‬ ‫کشف‬ ‫قابل‬ ‫سادگی‬ ‫به‬ ‫آن‬ ‫انواع‬ ‫از‬ ‫برخی‬ ‫برای‬ ‫مؤثری‬ ‫ابزارهای‬(‫رقابتی‬ ‫شرایط‬ ،‫سرریز‬ ‫مثل‬) ‫تقربا‬45٪‫به‬ ‫شده‬ ‫گزارش‬ ‫افزار‬‫نرم‬ ‫امنیت‬ ‫مشکالت‬ ‫همه‬CERT‫اند‬ ‫بوده‬ ‫بافر‬ ‫سرریز‬ ‫اثر‬ ‫بر‬!! •char x[12]; x[12] = '0';array references in C start with 0! 2‫بافر‬ ‫و‬ ‫هیپ‬ ‫در‬ ‫بافر‬ ‫اختصاص‬ ‫سرریز‬ ‫اصلی‬ ‫مجرای‬ •‫تر‬‫متداول‬ ‫بافر‬ ‫سرریز‬ •void main() { char buf[1024]; gets(buf); }
  19. 19. ‫عیب‬(FLAW) ‫قبلی‬ ‫موارد‬ ‫از‬ ‫تر‬‫عمیق‬ ‫مشکل‬ ‫باشد‬ ‫هم‬ ‫طراحی‬ ‫زمان‬ ‫به‬ ‫مربوط‬ ‫تواند‬‫می‬ ‫ولی‬ ‫است‬ ‫مشاهده‬ ‫قابل‬ ‫افزار‬‫نرم‬ ‫کد‬ ‫در‬ ‫حتما‬(‫نباشد‬ ‫یا‬.) ‫طراحی‬ ‫سطح‬ ‫در‬ ‫عیوب‬ ‫کشف‬ ‫برای‬ ‫خودکار‬ ‫تکنیکی‬ ‫وجود‬ ‫عدم‬ ‫انواع‬ ‫برخی‬ ‫کشف‬ ‫برای‬ ‫دستی‬ ‫ریسک‬ ‫تحلیل‬ ‫فرآیند‬ ‫کمک‬ ‫عیوب‬ ‫به‬ ‫اشکاالت‬ ‫نسبت‬‫عمل‬ ‫در‬:50/50 ‫کد‬ ‫مرور‬ ‫با‬ ‫اشکاالت‬ ‫کردن‬ ‫طرف‬ ‫بر‬<<<‫تنها‬ ‫حل‬50٪‫امنیت‬ ‫مشکل‬ ‫مایکروسافت‬ ‫گزارش‬:50٪‫ذاتا‬ ‫مسائل‬‫معمارانه‬‫شرکت‬ ‫این‬ ‫در‬ ‫شده‬ ‫کشف‬ ‫مشکالت‬ ‫در‬
  20. 20. •‫دشواری‬‫تعیین‬‫اشکال‬(bug)‫یا‬‫عیب‬(flaw)ِ‫ن‬‫بود‬‫یک‬‫نقص‬(defect)‫افزاری‬‫نرم‬ •‫انواع‬‫های‬‫نقص‬‫نرم‬‫افزاری‬ ‫خطا‬(error)‫های‬‫پیاده‬‫سازی‬‫محلی‬‫مثل‬‫استفاده‬‫از‬gets ‫های‬‫پذیری‬‫آسیب‬‫متوسط‬‫شامل‬‫تعامل‬‫بیش‬‫از‬‫یک‬‫ناحیه‬‫از‬‫کد‬ ‫خطاهای‬‫واسط‬‫میان‬‫ای‬‫رویه‬‫مثل‬‫شرایط‬‫رقابت‬ ‫اشتباهات‬‫سطح‬‫باالتر‬‫زمان‬‫طراحی‬‫مثل‬‫اداره‬‫خطا‬(error-handling) ‫نیاز‬‫به‬‫تخصص‬‫بیشتر‬‫برای‬‫کشف‬ ‫سخت‬‫برای‬،‫کشف‬‫تر‬‫سخت‬‫برای‬‫کشف‬‫به‬‫صورت‬‫خودکار‬ •‫وجود‬‫طیف‬‫گسترده‬‫ها‬‫نقص‬‫بر‬‫اساس‬: ‫چه‬‫مقدار‬‫بررسی‬،‫کد‬‫چه‬‫مقدار‬‫جزئیات‬‫از‬‫محیط‬‫زمان‬‫اجرا‬‫برای‬‫کشف‬‫پذیری‬‫آسیب‬‫الزم‬‫است؟‬ ‫وجود‬‫توصیف‬‫خوبی‬‫در‬‫سطح‬‫طراحی‬‫برای‬‫کشف‬‫پذیری‬‫آسیب‬
  21. 21. ‫ریسک‬ ‫گردند‬ ‫ریسک‬ ‫به‬ ‫منجر‬ ‫توانند‬ ‫می‬ ‫اشکاالت‬ ‫و‬ ‫ها‬‫عیب‬. ‫شکست‬ ‫با‬ ‫ریسک‬ ‫نبودن‬ ‫یکسان‬ ‫افزار‬‫نرم‬ ‫هدف‬ ‫بر‬ ‫تواند‬‫می‬ ‫عیب‬ ‫یا‬ ‫اشکال‬ ‫یک‬ ‫که‬ ‫را‬ ‫احتمالی‬ ‫ریسک‬(‫ص‬ ‫به‬‫ورت‬ ‫منفی‬)‫گیرد‬‫می‬ ‫درنظر‬ ‫باشد‬ ‫گذار‬ ‫اثر‬. ‫ریسک‬=‫وقوع‬ ‫احتمال‬×‫اثر‬
  22. 22. ‫چرخه‬MCGRAW ‫اولین‬‫ارائه‬‫در‬‫مجله‬IEEE Security & Privacy‫در‬2004 ‫قابل‬‫کاربرد‬‫صرف‬‫نظر‬‫از‬‫فرآیند‬‫پایه‬‫توسعه‬‫افزار‬‫نرم‬‫از‬‫فرآی‬‫ند‬‫های‬ ،‫آبشاری‬RUP،XP،Agile‫و‬.... ‫قابلیت‬‫تعریف‬‫چرخه‬‫توسعه‬‫امن‬‫دلخواه‬‫با‬‫اضافه‬‫کردن‬‫یک‬‫س‬‫ری‬ touchpoint‫به‬‫فرآیند‬‫موجود‬ ‫دانسته‬‫بودن‬‫توسعه‬‫افزار‬‫نرم‬<<<<‫آموزش‬‫توسعه‬‫امن‬‫افزار‬‫نرم‬
  23. 23. ‫چرخه‬ ‫مرور‬ MCGRAW
  24. 24. ‫افزار‬‫نرم‬ ‫امنیت‬ ‫در‬ ‫ستونه‬ ‫سه‬ ‫رویکرد‬ •‫سه‬‫امنــیت‬ ‫اصـــلی‬ ‫ستــــــــون‬‫افزار‬‫نرم‬: o‫اعمال‬‫ریــسـک‬ ‫مدیـریــت‬ oTouchpoint‫امنیــتــــ‬ ‫هـــای‬‫افزار‬‫نرم‬ o‫و‬‫دانـــــــــــــش‬
  25. 25. ‫اول‬ ‫ستون‬:‫ریسک‬ ‫مدیریت‬ ‫ریسک‬ ‫مدیریت‬ ‫گرفتن‬ ‫نظر‬ ‫در‬ ‫بدون‬ ‫امنیتی‬ ‫بحث‬ ‫هر‬ ‫بودن‬ ‫ناکامل‬ ‫بین‬ ‫تفاوت‬ •‫معماری‬ ‫سطح‬ ‫در‬ ‫ریسک‬ ‫تحلیل‬ ‫کاربرد‬(‫طراحی‬ ‫امنیت‬ ‫تحلیل‬ ‫یا‬ ‫تهدید‬ ‫کردن‬ ‫مدل‬) •‫با‬‫چرخه‬ ‫طول‬ ‫تمام‬ ‫در‬ ‫ریسک‬ ‫کاهش‬ ‫و‬ ‫پیگیری‬ Risk Management Framework (RMF) ‫طول‬ ‫در‬ ‫افزار‬‫نرم‬ ‫امنیت‬ ‫ریسک‬ ‫فهم‬ ‫و‬ ‫پیگیری‬ ،‫دهی‬‫رتبه‬ ،‫شناسایی‬ ‫اصلی‬ ‫ایده‬touchpoint‫در‬ ‫موجود‬ ‫های‬ ‫چرخه‬ ‫بعد‬ ‫جلسه‬ ‫بحث‬....
  26. 26. TOUCHPOINTS ‫دوم‬ ‫ستون‬: ‫کافی‬‫نبودن‬‫اضافه‬‫کردن‬‫های‬‫ویژگی‬‫امنیتی‬‫همچون‬SSL ‫به‬‫کارگیری‬‫توام‬‫های‬‫مکانیزم‬‫امنیتی‬(‫مثل‬‫کنترل‬‫دسترسی‬)‫و‬‫طراحی‬‫برای‬‫امنیت‬. ‫امنیت‬‫یک‬‫ویژگی‬‫تکاملی‬‫یک‬‫سیستم‬‫افزاری‬‫نرم‬‫غیر‬‫قابل‬‫اسپری‬‫کردن‬ ‫نیاز‬‫به‬‫تعبیه‬‫درونی‬‫امنیت‬‫در‬‫فرآیند‬‫توسعه‬ ‫بیشتر‬‫های‬‫رویکرد‬‫عملی‬‫امروزه‬ ‫آموزش‬‫دهندگان‬‫توسعه‬ ‫تحلیل‬‫و‬‫ممیزی‬‫مصنوعات‬‫افزاری‬‫نرم‬ ‫و‬‫مهندسی‬‫امنیت‬
  27. 27. ‫دانـــش‬ ‫سوم‬ ‫ستون‬: ‫نبود‬‫متخصصین‬‫با‬،‫تجربه‬‫یکی‬‫از‬‫های‬‫چالش‬‫امنیت‬‫افزار‬‫نرم‬ ‫نقش‬‫تعیین‬‫کننده‬‫مدیریت‬‫دانش‬‫و‬‫آموزش‬ ‫جمع‬،‫آوری‬‫لفابه‬‫بندی‬‫و‬‫به‬‫اشتراک‬‫گذاری‬‫دانش‬‫به‬‫دست‬‫آمده‬‫در‬‫تجارب‬‫توسعه‬‫امن‬ ‫دسته‬‫بندی‬‫دانش‬‫امنیت‬‫افزار‬‫نرم‬‫به‬7‫بخش‬(‫مبانی‬‫و‬،‫اصول‬‫خطوط‬،‫راهنما‬،‫قوانین‬ ‫ها‬‫پذیری‬‫آسیب‬،‫سوء‬،‫ها‬‫استفاده‬‫الگوهای‬،‫حمالت‬‫و‬‫های‬‫ریسک‬‫قبلی‬) ‫قابل‬‫اعمال‬‫در‬‫های‬‫بخش‬‫مختلف‬‫چرخه‬‫توسعه‬‫امن‬(‫شکل‬‫اســـــــــالید‬ ‫بـــــــــــعدی‬) ‫آموزش‬‫تمامی‬‫دهندگان‬‫توسعه‬‫در‬‫طول‬‫پروژه‬‫سازی‬‫امن‬‫ویندوز‬‫در‬‫سال‬2002
  28. 28. •From: Bill Gates •Sent: Tuesday, January 15, 2002 2:22 PM •To: Microsoft and Subsidiaries: All FTE •Subject: Trustworthy computing •Every few years I have sent out a memo talking about the highest priority for Microsoft. Two years ago, it was the kickoff of our .NET strategy. Before that, it was several memos about the importance of the Internet to our future and the ways we could make the Internet truly useful for people. Over the last year it has become clear that ensuring .NET as a platform for Trustworthy Computing is more important than any other part of our work. If we don't do this, people simply won't be willing or able to take advantage of all the other great work we do. Trustworthy Computing is the highest priority for all the work we are doing. We must lead the industry to a whole new level of Trustworthiness in computing. •When we started work on Microsoft .NET more than two years ago, we set a new direction for the company and articulated a new way to think about our software. Rather than developing standalone applications and Web sites, today we're moving towards smart clients with rich user interfaces interacting with Web services. We're driving the XML Web services standards so that systems from all vendors can share information, while working to make Windows the best client and server for this new era. •There is a lot of excitement about what this architecture makes possible. It allows the dreams about e-business that have been hyped over the last few years to become a reality. It enables people to collaborate in new ways, including how they read, communicate, share annotations, analyze information and meet. •However, even more important than any of these new capabilities is the fact that it is designed from the ground up to deliver Trustworthy Computing. What I mean by this is that customers will always be able to rely on these systems to be available and to secure their information. Trustworthy Computing is computing that is as available, reliable and secure as electricity, water services and telephony. •Today, in the developed world, we do not worry about electricity and water services being available. With telephony, we rely both on its availability and its security for conducting highly confidential business transactions without worrying that information about who we call or what we say will be compromised. Computing falls well short of this, ranging from the individual user who isn't willing to add a new application because it might destabilize their system, to a corporation that moves slowly to embrace e-business because today's platforms don't make the grade. •The events of last yearf rom September's terrorist attacks to a number of malicious and highly publicized computer viruses reminded every one of us how important it is to ensure the integrity and security of our critical infrastructure, whether it's the airlines or computer systems. •Computing is already an important part of many people's lives. Within ten years, it will be an integral and indispensable part of almost everything we do. Microsoft and the computer industry will only succeed in that world if CIOs, consumers and everyone else see that Microsoft has created a platform for Trustworthy Computing. •Every week there are reports of newly discovered security problems in all kinds of software, from individual applications and services to Windows, Linux, Unix and other platforms. We have done a great job of having teams work around the clock to deliver security fixes for any problems that arise. Our responsiveness has been unmatched but as an industry leader we can and must do better. Our new design approaches need to dramatically reduce the number of such issues that come up in the software that Microsoft, its partners and its customers create. We need to make it automatic for customers to get the benefits of these fixes. Eventually, our software should be so fundamentally secure that customers never even worry about it. •No Trustworthy Computing platform exists today. It is only in the context of the basic redesign we have done around .NET that we can achieve this. The key design decisions we made around .NET include the advances we need to deliver on this vision. Visual Studio .NET is the first multi-language tool that is optimized for the creation of secure code, so it is a key foundation element. •I've spent the past few months working with Craig Mundie's group and others across the company to define what achieving Trustworthy Computing will entail, and to focus our efforts on building trust into every one of our products and services. Key aspects include: •Availability: Our products should always be available when our customers need them. System outages should become a thing of the past because of a software architecture that supports redundancy and automatic recovery. Self-management should allow for service resumption without user intervention in almost every case. •Security: The data our software and services store on behalf of our customers should be protected from harm and used or modified only in appropriate ways. Security models should be easy for developers to understand and build into their applications. •Privacy: Users should be in control of how their data is used. Policies for information use should be clear to the user. Users should be in control of when and if they receive information to make best use of their time. It should be easy for users to specify appropriate use of their information including controlling the use of email they send. •Trustworthiness is a much broader concept than security, and winning our customers' trust involves more than just fixing bugs and achieving "five-nines" availability. It's a fundamental challenge that spans the entire computing ecosystem, from individual chips all the way to global Internet services. It's about smart software, services and industry-wide cooperation. •There are many changes Microsoft needs to make as a company to ensure and keep our customers' trust at every level from the way we develop software, to our support efforts, to our operational and business practices. As software has become ever more complex, interdependent and interconnected, our reputation as a company has in turn become more vulnerable. Flaws in a single Microsoft product, service or policy not only affect the quality of our platform and services overall, but also our customers' view of us as a company. •In recent months, we've stepped up programs and services that help us create better software and increase security for our customers. Last fall, we launched the Strategic Technology Protection Program, making software like IIS and Windows .NET Server secure by default, and educating our customers on how to get and stay secure. The error-reporting features built into Office XP and Windows XP are giving us a clear view of how to raise the level of reliability. The Office team is focused on training and processes that will anticipate and prevent security problems. In December, the Visual Studio .NET team conducted a comprehensive review of every aspect of their product for potential security issues. We will be conducting similarly intensive reviews in the Windows division and throughout the company in the coming months. •At the same time, we're in the process of training all our developers in the latest secure coding techniques. We've also published books like Writing Secure Code, by Michael Howard and David LeBlanc, which gives all developers the tools they need to build secure software from the ground up. In addition, we must have even more highly trained sales, service and support people, along with offerings such as security assessments and broad security solutions. I encourage everyone at Microsoft to look at what we've done so far and think about how they can contribute. •But we need to go much further. •In the past, we've made our software and services more compelling for users by adding new features and functionality, and by making our platform richly extensible. We've done a terrific job at that, but all those great features won't matter unless customers trust our software. So now, when we face a choice between adding features and resolving security issues, we need to choose security. Our products should emphasize security right out of the box, and we must constantly refine and improve that security as threats evolve. A good example of this is the changes we made in Outlook to avoid email borne viruses. If we discover a risk that a feature could compromise someone's privacy, that problem gets solved first. If there is any way we can better protect important data and minimize downtime, we should focus on this. These principles should apply at every stage of the development cycle of every kind of software we create, from operating systems and desktop applications to global Web services. •Going forward, we must develop technologies and policies that help businesses better manage ever larger networks of PCs, servers and other intelligent devices, knowing that their critical business systems are safe from harm. Systems will have to become self-managing and inherently resilient. We need to prepare now for the kind of software that will make this happen, and we must be the kind of company that people can rely on to deliver it.
  29. 29. ‫دانش‬2 •‫مدرن‬ ‫های‬‫سیستم‬ ‫طراحان‬ ‫پیشگیرانه‬ ‫صورت‬ ‫به‬ ‫امنیت‬ ‫گرفتن‬ ‫درنظر‬ ‫لزوم‬ •‫افزار‬‫نرم‬ ‫امنیت‬ ‫مشکالت‬ ‫از‬ ‫بسیاری‬ ‫قلب‬ ‫در‬ ،‫بد‬ ‫افزار‬‫نرم‬ •‫سازی‬‫پیاده‬ ‫اشکاالت‬ ‫نیز‬ ‫و‬ ‫طراحی‬ ‫عیوب‬ ‫شکل‬ ‫دو‬ ‫به‬ ‫افزاری‬‫نرم‬ ‫های‬‫نقص‬ ‫بروز‬ •‫پایه‬ ‫از‬ ‫بهتر‬ ‫افزار‬‫نرم‬ ‫ساخت‬ ‫با‬ ‫مشکل‬ ‫دو‬ ‫هر‬ ‫حل‬ •‫درمان‬ ‫از‬ ‫تر‬‫ارزان‬ ‫پیشگیری‬! •‫ممکن‬ ‫راه‬ ‫تنها‬ ‫تضمینی‬ ‫های‬‫فعالیت‬ ‫و‬ ‫پیشگیرانه‬ ‫تکنولوژی‬ ،‫انتها‬ ‫در‬ •‫سیستم‬ ‫یک‬ ‫کارکردن‬ ‫درست‬<<<‫امن‬ ‫مسائل‬ ‫با‬ ‫سیستم‬ ‫سازندگان‬ ‫درگیری‬ ‫مستلزم‬‫یتی‬ <<<‫سازندگان‬ ‫آموزش‬ ‫مستلزم‬
  30. 30. ‫که‬‫نکنید‬‫فراموش‬ ‫هدف‬‫تنها‬‫اضافه‬‫کردن‬‫تعدادی‬‫ویژگی‬‫و‬‫کارکرد‬‫امنیت‬‫ی‬‫به‬ ‫کد‬‫نیست‬! •‫سوال‬‫نویس‬‫برنامه‬:‫آیا‬‫کافی‬‫است‬‫از‬‫این‬API‫استفاده‬ ‫کنم؟‬ •‫سوال‬‫خوب‬:‫چه‬‫حمالت‬‫جدی‬‫و‬‫مؤثری‬‫روی‬‫این‬‫ماژول‬ ‫قابل‬‫انجام‬‫است؟‬
  31. 31. ‫دانش‬3 ‫سازی‬‫امن‬‫زیر‬‫ساخت‬‫با‬‫در‬‫نظر‬‫گرفتن‬‫همه‬‫افراد‬ ‫سازندگان‬:‫های‬‫فعالیت‬‫مهندسی‬‫امنیت‬ ‫مدیران‬:‫فهم‬‫ذات‬‫شده‬‫توزیع‬‫های‬‫سیستم‬‫مدرن‬‫و‬‫آغاز‬‫زندگی‬‫با‬‫مجوز‬ ‫کمینه‬ ‫کاربران‬:‫درک‬‫امنیت‬‫افزار‬‫نرم‬‫و‬‫استفاده‬‫از‬‫افزار‬‫نرم‬‫امن‬‫در‬‫کسب‬‫و‬‫ک‬‫ار‬ ‫خود‬ ‫مدیران‬‫اجرایی‬:‫درک‬‫لزوم‬‫کرد‬‫هزینه‬‫زودهنگام‬‫برای‬‫طراحی‬‫امنیت‬ ‫برای‬‫عایدات‬‫مدت‬‫کوتاه‬،‫بیشترین‬‫توجه‬‫متوجه‬‫سازندگان‬!
  32. 32. ‫گرا‬‫مک‬ ‫چرخه‬ ‫مراحل‬ ‫آغاز‬
  33. 33. ‫دخی‬ ‫منظور‬ ‫به‬ ‫مشخص‬ ‫و‬ ‫صریح‬ ‫های‬‫دستورالعمل‬‫ل‬ ،‫معماری‬ ،‫ها‬‫نیازمندی‬ ‫در‬ ‫امنیت‬ ‫مهندسی‬ ‫کردن‬ ‫داری‬‫نگه‬ ‫و‬ ‫گیری‬‫اندازه‬ ،‫کدزنی‬ ،‫طراحی‬ ‫در‬ ‫شده‬ ‫معرفی‬‫و‬ ‫مشخص‬ ‫نقاط‬ ‫و‬ ‫مراحل‬ ‫قالب‬ ‫نام‬ ‫با‬ ‫لمسی‬ ‫قابل‬Touchpoint ‫مراحل‬ ‫متناوب‬ ‫و‬ ‫ای‬‫چرخه‬ ‫اجرای‬ ‫تولی‬ ‫فرآیند‬ ‫هر‬ ‫به‬ ‫مراحل‬ ‫این‬ ‫بودن‬ ‫اعمال‬ ‫قابل‬‫د‬ ‫افزار‬‫نرم‬ ‫حد‬ ‫که‬ ‫شرایط‬ ‫در‬ ‫مراحل‬ ‫این‬ ‫از‬ ‫استفاده‬ ‫قابلیت‬‫اقل‬ ‫ای‬‫پروژه‬ ‫هر‬ ‫باشد‬ ‫داشته‬ ‫وجود‬ ‫مصنوعاتی‬ ‫مجموعه‬ ‫دارد‬ ‫را‬ ‫کد‬ ‫مصنوع‬ ‫یک‬ ‫حداقل‬. ‫بر‬ ‫مراحل‬ ‫برخی‬ ‫اولویت‬‫دیگران‬
  34. 34. •‫سوال؟‬ •‫مش‬ ‫شده‬ ‫معرفی‬ ‫لیست‬ ‫و‬ ‫تصویر‬ ‫ترتیب‬ ‫در‬ ‫ناهماهنگی‬‫اهده‬ ‫شود؟‬‫نمی‬ •‫جواب؟‬ •‫ادامه‬ ‫در‬!... ‫مراحل‬‫شامل‬: (1‫کــــــد‬ ‫مـــرور‬ (2‫ــــک‬‫ریسـ‬ ‫ــــل‬‫تحلیـ‬ ‫معــــــمارانـــه‬ (3‫نفـــــوذ‬ ‫تســتـ‬ (4‫ـــی‬‫ـ‬‫امنیت‬ ‫های‬‫ـــت‬‫ـ‬‫تس‬ ‫مبـــنا‬‫ریــــسک‬ (5‫سوء‬ ‫های‬‫سناریو‬‫کاربرد‬ (6‫های‬‫نیازمندی‬‫امنیتی‬ (7‫اپراتوری‬ ‫اقدامات‬‫امنیت‬
  35. 35. ‫کــــد‬ ‫مــــــــرور‬
  36. 36. ‫کــــــد‬ ‫مــــرور‬ ‫مثال‬::‫سرریز‬‫بافر‬‫در‬‫خط‬45%‫کدها‬ ‫ابزارهای‬‫مختلف‬‫تحلیل‬‫ایستا‬‫برای‬‫پوی‬‫ش‬‫کد‬ ‫منبع‬‫به‬‫منظور‬‫یافتن‬‫پذیـــ‬‫آســـیب‬‫ری‬ ‫الزم‬‫ولـــــــی‬‫نـاکافــــی‬ ‫بـرطرفــــ‬‫شــدن‬50٪‫هـــا‬‫نقص‬
  37. 37. ‫کد‬ ‫مرور‬ •‫کد‬‫افزاری‬‫نرم‬ ‫های‬‫پروژه‬ ‫همه‬ ‫میان‬ ‫در‬ ‫مشترک‬ ‫دستاوردی‬ •‫اشکال‬ ‫رفع‬ ‫و‬ ‫یابی‬‫عیب‬‫برابر‬ ‫دو‬ ‫حداقل‬‫نویسی‬‫برنامه‬ ‫از‬ ‫تر‬‫دشوار‬!! •‫شما‬ ‫دقت‬ ‫اندازه‬ ‫به‬ ‫شما‬ ‫خروجی‬ ‫کد‬ ‫دقت‬ •‫خودتان‬ ‫کد‬ ‫دیباگ‬ ‫و‬ ‫یابی‬‫عیب‬ ‫برای‬ ‫شما‬ ‫ناتوانی‬ •‫کد‬ ‫دستی‬ ‫مرور‬‫کننده‬ ‫خسته‬ ‫و‬ ‫دشوار‬‫آشنای‬ ‫عبارت‬”،‫شد‬ ‫تمـــــام‬ ‫کارت‬ ‫وقتی‬ ‫بری‬ ‫توانی‬‫می‬!!”‫از‬ ‫استفاده‬‫کد‬ ‫مرور‬ ‫ابزارهای‬ •‫مشکالت‬ ‫ریشه‬ •‫نویسان‬‫برنامه‬:‫آموزش‬ ‫فرآیند‬ ‫در‬ ‫امنیت‬ ‫دادن‬ ‫جای‬ ‫در‬ ‫مدون‬ ‫برنامه‬ ‫یک‬ ‫نبود‬ ‫نویسی‬‫برنامه‬ •‫نویسی‬‫برنامه‬ ‫های‬‫زبان‬:‫د‬ ‫نظر‬ ‫در‬ ‫با‬ ‫نویسی‬ ‫برنامه‬ ‫های‬‫زبان‬ ‫اغلب‬ ‫نشدن‬ ‫طراحی‬‫اشتن‬ ‫امنیت‬ ‫مساله‬
  38. 38. ‫کد‬ ‫ایستای‬ ‫تحلیل‬ o‫کشف‬‫بسیاری‬‫از‬‫مشکالت‬‫متداول‬‫کدزنی‬ o‫قابل‬‫اعمال‬‫حتی‬‫قبل‬‫از‬‫اتمام‬‫یک‬‫بخش‬‫کامل‬‫از‬‫کد‬(‫وقتی‬‫آزمون‬‫ماژول‬‫پذیر‬‫امکان‬‫نیست‬) o‫تحلیل‬‫ایستای‬‫دستی‬<<<‫بر‬‫زمان‬‫و‬‫مند‬‫نیاز‬‫تخصص‬‫ممیزان‬‫کد‬ o‫توجه‬:‫هیچ‬‫مرحله‬‫و‬‫ابزاری‬‫همه‬‫مشکالت‬‫را‬‫نمی‬‫یابد‬ o‫خروجی‬‫غیر‬‫قابل‬‫قبول‬:«‫پذیری‬‫آسیب‬‫روز‬‫صفرم‬»‫تشخیص‬‫داده‬‫شد‬!!!!‫برنامه‬‫شما‬‫اکنون‬‫امن‬‫است‬» o‫خروجی‬‫درست‬:«‫متاسفانه‬‫اشکال‬‫دیگری‬‫پیدا‬‫نشد‬» o‫در‬‫تئوری‬‫تمایل‬‫به‬‫تکیه‬‫به‬‫ابزارهای‬‫تحلیل‬‫ایستای‬‫قوی‬<<<‫شبیه‬‫تکیه‬‫به‬‫کامپایلر‬ o‫در‬‫عمل‬‫خطا‬‫مثبت‬‫و‬‫خطای‬‫منفی‬‫باالی‬‫ابزارهای‬‫موجود‬<<<<‫نیاز‬‫به‬‫ارزیابی‬‫خروجی‬‫ابزارها‬‫توسط‬‫انسان‬ o‫خطامنفی‬‫تر‬‫خطرناک‬<<<‫القای‬‫حس‬‫دروغین‬‫امنیت‬ o‫ابزار‬‫خوب‬‫مرور‬‫کد‬‫ابزار‬‫بدون‬‫خطامنفی‬<<<<‫ابزارهای‬‫نا‬‫خوب‬‫کاهش‬‫خطامثبت‬‫با‬‫تحمل‬‫مقداری‬‫خطامنفی‬!
  39. 39. o‫اگر‬‫کد‬‫منبع‬‫را‬‫در‬‫اختیار‬‫نداشتیم؟‬‫افزارهای‬‫نرم‬‫تجاری‬‫خریداری‬‫شده‬ o‫نیاز‬‫نداشتن‬‫کننده‬‫حمله‬‫به‬‫کد‬‫منبع‬‫برای‬‫سوء‬‫استفاده‬‫از‬‫کد‬<<<‫چرا‬‫ما‬ ‫نتوانیم؟؟‬ o‫اسمبلر‬‫دیس‬‫و‬‫دیکامپایلر‬‫در‬‫جعبه‬‫مارگیری‬‫هر‬‫ای‬‫کننده‬‫حمله‬‫یافت‬ ‫شود‬‫می‬ o‫اما‬‫برای‬‫کننده‬‫حمله‬‫یافتن‬‫تنها‬‫یک‬‫اشکال‬‫کافی‬‫است‬<<<‫مدافعین‬‫باید‬ ‫همه‬‫اشکاالت‬‫را‬‫بیابند‬!! o‫اگر‬‫کد‬‫مصرفی‬‫شما‬<‫کد‬‫تولیدی‬‫نیاز‬‫به‬‫استفاده‬‫از‬ ‫های‬‫پویشگر‬‫باینری‬ ‫باینری‬ ‫کد‬ ‫تحلیل‬
  40. 40. ‫امنیتی‬ ‫اپراتوری‬ ‫احمقانه‬ ‫و‬ ‫کامل‬ ‫سازگاری‬,‫است‬ ‫کوچک‬ ‫های‬ ‫ذهن‬ ‫شبگرد‬!
  41. 41. ‫ریسک‬ ‫تحلیل‬‫معـــمارانه‬ ‫مرحله‬ ‫این‬ ‫در‬ ‫نظر‬ ‫مورد‬ ‫مصنــــوع‬:‫آن‬ ‫طراحی‬ ‫و‬ ‫سیستم‬ ‫مشخصات‬ ‫گران‬‫وتحلیل‬ ‫معماران‬ ،‫طراحان‬<<<‫ای‬‫گونه‬ ‫به‬ ‫مفروضات‬ ‫سازی‬‫مستند‬ ‫باشد‬ ‫ممکن‬ ‫حمالت‬ ‫شناسایی‬ ‫که‬ ،‫صریح‬. ‫گران‬‫تحلیل‬‫امنیت‬<<<‫شناسایی‬‫و‬‫بندی‬‫رتبه‬‫عیوب‬‫معمارانه‬‫به‬‫منظور‬ ‫آغاز‬‫رویه‬‫کاهش‬‫ریسک‬ ‫مثال‬: o‫حساس‬ ‫های‬‫داده‬ ‫از‬ ‫ضعیف‬ ‫محافظت‬ ‫و‬ ‫نامناسب‬ ‫افراز‬ o‫آن؛‬ ‫کاربر‬ ‫و‬ ‫شده‬‫فراخوانی‬ ‫کد‬ ‫اصالت‬ ‫احراز‬ ‫از‬ ‫سرویس‬‫وب‬ ‫ناتوانی‬ o‫دسترسی‬ ‫کنترل‬ ‫تصمیمات‬ ‫اتخاذ‬ ‫در‬ ‫متناسب‬ ‫زمینه‬ ‫نبودن‬ ‫دخیل‬
  42. 42. ‫امنیتی‬ ‫اپراتوری‬ ‫احمقانه‬ ‫و‬ ‫کامل‬ ‫سازگاری‬,‫است‬ ‫کوچک‬ ‫های‬ ‫ذهن‬ ‫شبگرد‬!
  43. 43. ‫نـــفوذ‬ ‫آزمون‬ ‫مصنوع‬‫این‬‫مرحله‬:‫سیستم‬‫در‬‫محیط‬‫عملیاتی‬‫خود‬ ‫مثال‬::‫اداره‬‫ضعیف‬‫وضعیت‬‫برنامه‬‫در‬‫واسط‬‫وب‬ ‫درک‬‫درستی‬‫از‬‫افزار‬‫نرم‬‫در‬‫محیط‬‫عملیاتی‬ ‫دخیل‬‫نکردن‬‫معماری‬‫افزار‬‫نرم‬‫در‬‫آزمون‬<<<‫ممکن‬‫است‬ ‫های‬‫ریسک‬‫افزار‬‫نرم‬‫را‬‫آشکار‬‫نکند‬ ‫نوعی‬‫تست‬‫جعبه‬‫سیاهی‬ ‫شکست‬‫در‬‫اینگونه‬‫آزمون‬‫به‬‫معنای‬‫مشکل‬‫جدی‬‫در‬‫پروژه‬ ‫یک‬‫خطر‬‫درباره‬‫آزمون‬‫نفوذ‬<<<‫کسانی‬‫که‬‫آن‬‫را‬‫انجام‬‫دهند‬‫می‬!! ‫های‬‫هکر‬‫تواب‬!
  44. 44. ‫مبنا‬ ‫ریسکــ‬ ‫امنیـتی‬ ‫تستـــ‬ ‫ارزد‬ ‫می‬ ‫خوب‬ ‫تهدید‬ ‫یک‬ ‫یافتن‬ ‫برای‬ ‫تست‬ ‫هزار‬ ‫انجام‬ Boris Beizer
  45. 45. ‫مبــ‬‫ریــــسک‬ ‫امنیتی‬ ‫های‬‫تست‬‫ـنا‬ ‫مصنوع‬‫این‬‫مرحله‬:‫های‬‫بخش‬‫سیستم‬‫و‬‫نیز‬‫کل‬‫آن‬ ‫مثال‬:‫وسعت‬‫نشت‬‫ها‬‫داده‬ 2‫راهبرد‬: ‫آزمون‬‫های‬‫کارکرد‬‫امنیتی‬‫با‬‫های‬‫تکنیک‬‫آزمون‬‫کارکردی‬ ‫استاندارد‬ ‫آزمون‬‫امنیتی‬‫بر‬‫اساس‬‫الگوی‬،‫حمالت‬‫نتایج‬‫تحلیل‬‫ریس‬‫ک‬‫و‬ ‫های‬‫سناریو‬‫سوء‬‫کاربرد‬ ‫یک‬‫برنامه‬‫آزمون‬‫مناسب‬‫شامل‬‫هردو‬‫راهبرد‬ ‫تفاوت‬‫با‬‫تضمین‬‫کیفیت‬QA:: ‫تضمین‬‫کیفیت‬‫یعنی‬‫تضمین‬‫وقوع‬‫اتفاقات‬‫درست‬‫و‬‫خوب‬ ‫آزمون‬‫امنیتی‬‫یعنی‬‫تضمین‬‫عدم‬‫وقوع‬‫اتفاقات‬‫بد‬! ‫ضرورت‬‫وجود‬‫رویکردی‬‫شبیه‬‫کنندگان‬‫حمله‬
  46. 46. ‫کاربرد‬ ‫ســــوء‬ ‫سنـاریوی‬ ‫تعیین‬
  47. 47. ‫کاربرد‬ ‫سوء‬ ‫های‬‫سناریو‬ ‫مصنوع‬‫این‬‫مرحله‬:‫ها‬‫نیازمندی‬‫و‬‫های‬‫سناریو‬‫کاربرد‬ ‫نمونه‬‫ریسک‬:‫ضعف‬‫در‬‫قبال‬‫حمالت‬‫شناخته‬‫شده‬‫دستکاری‬‫داد‬‫ه‬ ‫تولید‬‫های‬‫سناریو‬‫سوءکاربرد‬‫یک‬‫راه‬‫مناسب‬‫برای‬‫تقریب‬‫به‬‫ذ‬‫هن‬ ‫کننده‬‫حمله‬ ‫شبیه‬‫سناریوی‬‫کاربرد‬(use cases)،‫رفتار‬‫برنامه‬‫را‬‫در‬‫شرایط‬ ‫حمله‬‫نشان‬‫دهد‬‫می‬. ‫لزوم‬‫پاسخ‬‫صریح‬‫به‬‫اینکه‬::‫چه‬‫چیزی‬،‫از‬‫چه‬‫کسی‬‫و‬‫تا‬‫چه‬‫زمان‬‫ی‬ ‫باید‬‫محافظت‬‫شود؟‬
  48. 48. ‫امنیتی‬ ‫های‬‫نیازمندی‬ ‫مصنوع‬‫این‬‫مرحله‬:‫ها‬‫نیازمندی‬ ‫نمونه‬‫ریسک‬:‫عدم‬‫وجود‬‫هیچ‬‫توصیفی‬‫درباره‬‫های‬‫نیاز‬‫حفاظت‬‫از‬‫ها‬‫داده‬ ‫امنیت‬‫باید‬‫به‬‫صورت‬‫صریح‬‫در‬‫سطح‬‫ها‬‫نیازمندی‬‫منعکس‬‫شود‬. ‫پوشش‬‫داده‬‫شدن‬2‫مورد‬‫در‬‫های‬‫نیازمندی‬‫امنیتی‬‫خوب‬ ‫امنیت‬‫به‬‫صورت‬‫کارکرد‬‫مشخص‬(‫مثل‬‫اعمال‬‫رمزنگاری‬) ‫های‬‫ویژگی‬‫امنیتی‬‫ضمنی‬(‫با‬‫توجه‬‫به‬‫الگوی‬‫حمالت‬‫های‬‫وسناریو‬‫سوء‬ ‫کاربرد‬) ‫هنــر‬‫شناسایی‬‫و‬‫حفظ‬‫های‬‫نیازمندی‬،‫امنیتی‬‫پیچیده‬‫و‬‫نیازمند‬‫تال‬‫ش‬ ‫گسترده‬
  49. 49. ‫امنیتی‬ ‫اپراتوری‬ ‫احمقانه‬ ‫و‬ ‫کامل‬ ‫سازگاری‬,‫است‬ ‫کوچک‬ ‫های‬ ‫ذهن‬ ‫شبگرد‬!
  50. 50. ‫امنیت‬‫اپراتوری‬‫اقدامات‬ ‫مرحله‬ ‫این‬ ‫مصنوع‬:‫قرارگرفت‬ ‫و‬ ‫شده‬ ‫داده‬ ‫تحویل‬ ‫سیستم‬‫در‬ ‫ه‬ ‫میدان‬ ‫ریسک‬ ‫نمونه‬:‫کن‬‫حمله‬ ‫پیگرد‬ ‫برای‬ ‫ناکافی‬ ‫ممیزی‬ ‫های‬‫داده‬‫نده‬ ‫اعمال‬ ‫رویه‬ ‫در‬ ‫شرکت‬ ‫به‬ ‫شبکه‬ ‫امنیت‬ ‫متخصصان‬ ‫تشویق‬ ‫شده‬ ‫معرفی‬ ‫فرآیند‬ ‫سازی‬ ‫وپیاده‬ ‫طراحی‬ ‫قوت‬ ‫از‬ ‫مستقل‬ ‫حمله‬ ‫وقوع‬<<<‫فهم‬ ‫ی‬ ‫است‬ ‫شده‬ ‫حمله‬ ‫یک‬ ‫موفقیت‬ ‫موجب‬ ‫که‬ ‫افزار‬‫نرم‬ ‫از‬ ‫رفتاری‬‫ک‬ ‫بود‬ ‫خواهد‬ ‫ضروری‬ ‫دفاعی‬ ‫رویه‬. ‫و‬ ‫تیم‬ ‫به‬ ‫باید‬ ‫ها‬‫اکسپلویت‬ ‫و‬ ‫حمالت‬ ‫از‬ ‫آمده‬ ‫دست‬ ‫به‬ ‫دانش‬ ‫دهد‬ ‫بازخورد‬ ‫افزار‬‫نرم‬ ‫توسعه‬ ‫فرایند‬.
  51. 51. •‫یکسان‬‫نبودن‬‫ترتیب‬‫مراحل‬‫برای‬‫همه‬‫ها‬‫سازمان‬ •‫توجه‬‫ترتیب‬‫بیان‬‫شده‬‫به‬‫کدگرایی‬‫ها‬‫سازمان‬<<<‫مرور‬‫کد‬‫قبل‬‫از‬ ‫تحلیل‬‫ریسک‬‫معمارانه‬ •‫نقص‬(defect)‫های‬‫افزاری‬‫نرم‬:: o‫اشکاالت‬(bugs)<<<<‫مرور‬‫کد‬ o‫عیوب‬(Flaws)<<<<‫تحلیل‬‫ریسک‬‫معمارانه‬ •‫ضروری‬‫بودن‬‫هر‬‫دو‬‫مرحله‬،‫فوق‬‫انجام‬‫ندادن‬‫هر‬‫یک‬‫از‬‫ها‬‫آن‬<<<< ‫باقی‬‫ماندن‬‫نیمی‬‫از‬‫ها‬‫نقص‬ •‫ترتیب‬‫مراحل‬‫نشان‬‫دهنده‬‫رویکرد‬‫واکنشی‬‫در‬‫امنیت‬
  52. 52. ‫خارجیــــ‬ ‫تحلیل‬ ‫تحلیل‬‫خارجی‬::‫تحلیل‬‫توسط‬‫فردی‬‫خارج‬‫از‬‫تیم‬‫طراحی‬ ‫غالبا‬‫از‬‫دید‬‫امنیت‬‫مورد‬‫نیاز‬‫است‬ ‫با‬‫اینکه‬‫یک‬‫مرحله‬‫اساسی‬‫مثل‬‫بقیه‬‫مراحل‬،‫نیست‬ <<<<‫اهمیت‬‫باالیی‬‫دارد‬. ‫اعمال‬‫همه‬‫مراحل‬‫توسط‬‫فردی‬‫که‬‫در‬‫طراحی‬‫و‬‫سازی‬‫پیاده‬ ‫سیستم‬‫نبوده‬‫است‬
  53. 53. •‫سیاه‬ ‫و‬ ‫سفید‬ ‫کاله‬ ‫دو‬ ‫به‬ ‫نیاز‬ •،‫حمله‬ ‫منظور‬ ‫به‬ ‫مخرب‬ ‫رویکرد‬ ‫سیاه‬ ‫کاله‬ ‫و‬ ‫اکسپلویت‬... •‫و‬ ‫طراحی‬ ‫برای‬ ‫سازنده‬ ‫رویکردی‬ ‫سفیدی‬ ‫کاله‬ ‫دفاع‬ •‫حمله‬ ‫و‬ ‫دفاع‬ ‫دوگانه‬ ‫نیاز‬ ‫حل‬ ‫راه‬ ‫یافتن‬ ‫دشواری‬ •‫حم‬ ‫یا‬ ‫دفاع‬ ‫مفاهیم‬ ‫از‬ ‫یک‬ ‫هیچ‬ ‫نبودن‬ ‫بد‬ ‫یا‬ ‫خوب‬‫له‬ •‫چرخه‬ ‫در‬ ‫رویکرد‬ ‫دو‬ ‫از‬ ‫ترکیبی‬
  54. 54. ‫کد‬ ‫مرور‬<<<‫از‬ ‫اجتناب‬ ‫برای‬ ‫سازنده‬ ‫و‬ ‫سفیدی‬ ‫کاله‬ ‫رویکرد‬ ‫مشکالت‬‫سازی‬‫پیاده‬ ‫ت‬‫حلیل‬‫ریسک‬ ‫معمارانه‬<<<<‫از‬ ‫اجتناب‬ ‫برای‬ ‫سفیدی‬ ‫کاله‬ ‫رویکرد‬ ‫عیوب‬‫طراحی‬ ‫تست‬‫نفوذ‬<<<<‫مخرب‬ ‫و‬ ‫سیاهی‬ ‫کاله‬ ‫فعالیتی‬.‫نوع‬ ‫بهترین‬ ‫در‬‫با‬ ‫به‬ ‫مربوط‬ ‫های‬‫ریسک‬ ‫و‬ ‫طراحی‬ ‫از‬ ‫سفیدی‬ ‫کاله‬ ‫دانش‬ ‫ترکیب‬‫آن‬ ‫های‬‫سناریو‬‫سوء‬‫کاربرد‬<<<‫سی‬ ‫کاله‬ ‫بیشتر‬ ‫ولی‬ ‫ترکیبی‬ ‫هم‬ ‫باز‬‫اهی‬ ‫امنیتی‬ ‫های‬‫نیازمندی‬<<<‫کاله‬‫علیه‬ ‫دفاع‬ ‫برای‬ ‫سازنده‬ ‫و‬ ‫سفیدی‬ ‫کاله‬ ‫دنیای‬‫ها‬‫سیاه‬ ‫اپراتوری‬‫امنیتی‬<<<‫یک‬‫سازنده‬ ‫کمتر‬ ‫اما‬ ‫سفیدی‬ ‫کاله‬ ‫فعالیت‬ ‫است‬
  55. 55. ‫امنیتی‬ ‫تیم‬ ‫تشکیل‬ •‫شود‬‫می‬ ‫دیده‬ ‫ها‬‫سازمان‬ ‫از‬ ‫بسیاری‬ ‫در‬ ‫که‬ ‫همانطور‬<<<<‫افزار‬‫نرم‬ ‫امنیت‬ ‫نیست‬ ‫فردی‬ ‫هیچ‬ ‫کار‬! •‫نا‬‫امنیت‬ ‫از‬ ‫سازندگان‬ ‫دیگر‬ ‫و‬ ‫معماران‬ ،‫دهندگان‬‫توسعه‬ ‫اغلب‬ ‫آگاهی‬ •‫ناآگاهی‬ ‫دلیل‬ ‫به‬ ‫پذیری‬‫مسئولیت‬ ‫و‬ ‫پاسخگویی‬ ‫عدم‬<<<‫به‬ ‫مشکل‬ ‫دادن‬ ‫پاس‬ ‫افزار‬‫نرم‬ ‫از‬ ‫مناسب‬ ‫نا‬ ‫استفاده‬ ‫یا‬ ‫نصب‬ ‫برای‬ ‫اپراتورها‬ •‫حوزه‬ ‫افراد‬ ‫با‬ ‫تنها‬ ‫امنیت‬ ‫بودن‬ ‫مرتبط‬ ‫غلط‬ ‫باور‬‫فاوا‬‫اف‬‫نرم‬ ‫با‬ ‫نامرتبط‬ ‫و‬‫زار‬ •‫د‬‫آل‬ ‫ایده‬ ‫حالت‬ ‫ر‬<<<‫است‬ ‫همه‬ ‫وظیفه‬ ‫افزار‬‫نرم‬ ‫امنیت‬ •‫تر‬‫گرایانه‬‫واقع‬ ‫ای‬‫ایده‬ ‫در‬<<<‫خاص‬ ‫گروه‬ ‫یک‬ ‫به‬ ‫مسئولیت‬ ‫انتساب‬‫ر‬ ‫مشکل‬‫تا‬ ‫ا‬ ‫کرد‬ ‫خواهد‬ ‫حل‬ ‫زیادی‬ ‫حد‬
  56. 56. •‫زمان‬‫منتظر‬‫های‬‫محیط‬‫آکادمیک‬‫ماند‬‫نمی‬ •‫لزوم‬‫تربیت‬‫کاران‬‫امنیت‬‫افزار‬‫نرم‬‫در‬‫های‬‫سازمان‬‫فعلی‬ •‫چند‬‫توصیه‬:: ‫با‬‫افراد‬‫امنیتی‬‫آغاز‬‫نکنید‬! ‫امنیت‬‫شبکه‬‫کاران‬‫معموال‬‫به‬‫حد‬‫کافی‬‫درباره‬‫افزار‬‫نرم‬‫دانند‬‫نمی‬ ‫با‬‫افراد‬‫افزاری‬‫نرم‬‫آغاز‬‫کنید‬: ‫امنیت‬‫تر‬‫ساده‬‫از‬‫افزار‬‫نرم‬‫آموخته‬‫شود‬‫می‬! ‫افراد‬‫افزاری‬‫نرم‬‫ماهر‬‫بسیار‬‫با‬‫ارزشند‬‫و‬‫باید‬‫در‬‫سازمان‬‫باقی‬‫بمانند‬ ‫استفاده‬‫از‬‫مشاوران‬‫خارج‬‫از‬‫سازمان‬‫برای‬‫کمک‬‫به‬‫تشکیل‬‫اولیه‬‫یک‬‫گ‬‫روه‬ ‫امنیتی‬ ‫تشکیل‬‫یک‬‫گروه‬‫امنیتی‬‫با‬‫دو‬‫رویکرد‬‫کاله‬‫سفیدی‬‫و‬‫کاله‬‫سیا‬‫هی‬ ‫اگر‬‫بتوانید‬‫افرادی‬‫را‬‫پیدا‬‫کنید‬‫که‬‫بتوانند‬‫هر‬‫دو‬‫کاله‬‫را‬‫داشته‬‫ب‬‫اشند‬.... •‫تمایز‬‫میان‬‫سازندگان‬‫و‬،‫ممیزان‬‫سازندگان‬‫اهمیت‬‫بیشتر‬‫دارن‬‫د‬.
  57. 57. ‫مساله‬ ‫صورت‬ •‫افزار‬ ‫نرم‬ ‫توسعه‬ ‫و‬ ‫امنیت‬ ‫بین‬ ‫گسستگی‬<<<‫تشکیل‬ ‫های‬‫واحد‬ ‫زیر‬ ‫قالب‬ ‫در‬ ‫پیچیده‬ ‫های‬ ‫افزار‬ ‫نرم‬ ‫توسعه‬ ‫افزار‬ ‫نرم‬ ‫امنیت‬ ‫باره‬ ‫در‬ ‫همزمان‬ ‫دید‬ ‫فاقد‬ ‫دهنده‬ •‫آمده‬ ‫دست‬ ‫به‬ ‫اطالعات‬ ‫وامنیت‬ ‫افزار‬ ‫نرم‬ ‫امنیت‬ ‫های‬ ‫حوزه‬ ‫در‬ ‫جدا‬ ‫تجارب‬ ‫مجموعه‬ ‫دو‬ ‫از‬ ‫رویکرد‬ ‫این‬ ‫است‬. •‫تو‬ ‫می‬ ‫واقعی‬ ‫دنیای‬ ‫حمالت‬ ‫با‬ ‫مواجهه‬ ‫در‬ ‫افزار‬ ‫نرم‬ ‫امن‬ ‫توسعه‬ ‫مراحل‬ ‫تعریف‬ ‫های‬ ‫رویه‬ ‫بهترین‬ ‫حتی‬‫با‬ ‫انند‬ ‫شوند‬ ‫مواجه‬ ‫مشکل‬. •‫و‬ ‫اند‬ ‫داشته‬ ‫کار‬ ‫سرو‬ ‫واقعی‬ ‫دنیای‬ ‫حمالت‬ ‫با‬ ‫متمادی‬ ‫سالهای‬ ‫اطالعات‬ ‫امنیت‬ ‫کارشناسان‬ ‫مقابل‬ ‫در‬‫درباره‬ ‫اند‬ ‫اندیشیده‬ ‫ها‬ ‫آن‬ ‫مسبب‬ ‫های‬ ‫پذیری‬ ‫آسیب‬. •‫اما‬...‫هستند‬ ‫هم‬ ‫افزار‬ ‫نرم‬ ‫دهنده‬ ‫توسعه‬ ‫شبکه‬ ‫امنیت‬ ‫متخصصان‬ ‫از‬ ‫کمی‬ ‫تعداد‬. •‫هستند‬ ‫ایزوله‬ ‫یکدیگر‬ ‫از‬ ‫متخصصین‬ ‫گروه‬ ‫دو‬ ‫این‬... •‫که‬ ‫است‬ ‫این‬ ‫سوال‬ •‫؟‬ ‫داد‬ ‫جای‬ ‫امن‬ ‫توسعه‬ ‫فرآیند‬ ‫در‬ ‫را‬ ‫اطالعات‬ ‫امنیت‬ ‫متخصصین‬ ‫توان‬ ‫می‬ ‫چگونه‬
  58. 58. ‫داشتنی‬ ‫دوست‬ ‫های‬‫دیوانه‬
  59. 59. ‫ها‬ ‫نیازمندی‬ ‫فاز‬: ‫درگیر‬‫در‬ ‫ها‬‫اطالعاتی‬ ‫امنیت‬ ‫کردن‬‫س‬ ‫های‬ ‫سناریو‬ ‫تعیین‬‫وء‬ ‫در‬ ‫کاربرد‬‫های‬‫نشست‬ ‫قالب‬brainstorm‫گروهی‬ ‫توجه‬!‫که‬ ‫های‬ ‫میوه‬ ‫آوردن‬ ‫دست‬ ‫به‬ ‫یعنی‬ ‫آنها‬ ‫دادن‬ ‫شرکت‬ ‫اند‬ ‫آویزان‬ ‫پایین‬ ‫همین‬!‫حمالت‬ ‫درباره‬ ‫اطالعات‬ ‫منبع‬ ‫آنها‬ ‫هستند‬.‫باران‬ ‫آخرین‬ ‫از‬ ‫کثیف‬ ‫های‬ ‫میوه‬!‫خسته‬ ‫شاید‬‫و‬ ‫رو‬ ‫ترش‬!‫حمالت‬ ‫از‬ ‫ناآگاه‬ ‫افرادی‬ ‫را‬ ‫ها‬ ‫افزاری‬ ‫نرم‬ ‫چون‬ ‫یافت‬ ‫خواهند‬ ‫در‬ ‫روزه‬ ‫هر‬! ‫ها‬ ‫افزاری‬ ‫نرم‬ ‫میان‬ ‫در‬ ‫موجود‬ ‫ناباوری‬ ‫نتیجه‬ ‫در‬ <<<‫ها‬ ‫امنیتی‬ ‫سمت‬ ‫از‬ ‫نمایی‬‫بزرگ‬!
  60. 60. ‫طراحی‬ ‫فاز‬ ‫در‬:‫تجاری‬ ‫ریسک‬ ‫تحلیل‬ ‫نظر‬ ‫مورد‬ ‫سیستم‬ ‫و‬ ‫کارفرمایان‬ ‫برای‬ ‫ریسک‬ ‫توجیه‬ ‫و‬ ‫توضیح‬ ‫مشاب‬ ‫اتفاقات‬ ‫سازی‬ ‫مستند‬ ‫و‬ ‫توجیه‬ ‫برای‬ ‫امنیتی‬ ‫افراد‬ ‫از‬ ‫استفاده‬‫در‬ ‫ه‬ ‫گذشته‬ ‫باشید‬ ‫نمایی‬ ‫بزرگ‬ ‫و‬ ‫اغراق‬ ‫مواظب‬! ‫در‬‫طراحی‬ ‫فاز‬:‫معمارانه‬ ‫ریسک‬ ‫تحلیل‬ ‫آنها‬ ‫تجاری‬ ‫تاثیرات‬ ‫به‬ ‫فنی‬ ‫امنیتی‬ ‫تهدیدات‬ ‫نگاشت‬ ‫درباره‬ ‫فناورانه‬ ‫دانش‬ ‫پوشش‬ ‫برای‬ ‫امنیتی‬ ‫کارشناس‬ ‫به‬ ‫مبرم‬ ‫نیاز‬‫برنامه‬ ‫کاربردی‬,‫چارچوب‬ ، ‫بستر‬,‫زبانها‬,‫توابع‬,‫و‬ ‫ها‬ ‫کتابخانه‬... ‫کنون‬ ‫تا‬ ‫جزء‬ ‫این‬ ‫آیا‬ ‫اما‬ ‫بگیرد‬ ‫قرار‬ ‫حمله‬ ‫مورد‬ ‫تواند‬ ‫می‬ ‫افزار‬ ‫نرم‬ ‫همه‬‫در‬ ‫است‬ ‫گرفته‬ ‫قرار‬ ‫هدف‬ ‫ای‬ ‫حمله‬‫؟‬!
  61. 61. ‫تست‬ ‫طراحی‬ ‫فاز‬:‫امنیتی‬ ‫تست‬ ‫هس‬ ‫ارزشمندی‬ ‫منابع‬ ‫ها‬ ‫اطالعاتی‬ ‫امنیت‬ ‫پس‬ ‫داریم‬ ‫سیاه‬ ‫کاله‬ ‫به‬ ‫نیاز‬‫تند‬. ‫سازی‬‫پیاده‬ ‫فاز‬:‫کد‬ ‫مرور‬ ‫چن‬ ‫امنیتی‬ ‫فرد‬ ‫یک‬ ‫که‬ ‫است‬ ‫کد‬ ‫درباره‬ ‫دانش‬ ‫به‬ ‫نیاز‬ ‫کد‬ ‫مرور‬ ‫ذات‬ ‫در‬‫دان‬ ‫ندارد‬ ‫را‬ ‫آن‬ ‫است‬ ‫بخش‬ ‫این‬ ‫در‬ ‫اطالعاتی‬ ‫امنیت‬ ‫افراد‬ ‫مشارکت‬ ‫کمترین‬ ‫بنابراین‬ ‫تست‬ ‫فاز‬:‫نفوذ‬ ‫تست‬ ‫ها‬ ‫امنیتی‬ ‫به‬ ‫قطعی‬ ‫نیاز‬ ‫کاربردی‬ ‫برنامه‬ ‫نفوذ‬ ‫تست‬ ‫با‬ ‫شبکه‬ ‫نفوذ‬ ‫تست‬ ‫داشت‬ ‫توجه‬ ‫باید‬‫متفاوت‬ ‫است‬ ‫نیاز‬ ‫شدت‬ ‫به‬‫وجو‬ ‫ها‬ ‫افزاری‬ ‫نرم‬ ‫خود‬ ‫بیرون‬ ‫به‬ ‫درون‬ ‫دیدگاه‬ ‫کاربرد‬ ‫به‬‫د‬ ‫دارد‬. ‫امنیتی‬ ‫اپراتوری‬ ‫فاز‬ ‫نهایت‬ ‫در‬ ‫و‬ ‫کاربردی‬ ‫خاص‬ ‫محیط‬ ‫برای‬ ‫برنامه‬ ‫سازی‬ ‫بومی‬ ‫و‬ ‫درست‬ ‫پیکربندی‬ ‫و‬ ‫عامل‬ ‫سیستم‬ ‫تا‬ ‫شبکه‬ ‫سطح‬ ‫در‬ ‫مناسب‬ ‫محیطی‬ ‫آوری‬‫فراهم‬ ‫به‬ ‫نیاز‬‫البته‬ ‫کاربردی‬ ‫برنامه‬ ‫خود‬ ‫امنیتی‬ ‫درست‬ ‫تنظیمات‬
  62. 62. ‫توسعه‬ ‫تیم‬ ‫قوت‬ ‫نقطه‬:‫ش‬ ‫نویسان‬‫برنامه‬‫جاع‬
  63. 63. Q & AMohammad Hamidi Esfahani m.hamidi.es@gmail.com Twitter: @haj_mamed

×