84206129-Hossein-Keramti.ppt

‫به نام خدا‬
‫گزارش پيشرفت پروژهی کارشناسی ارشد‬
‫فرآيندی برای توليد نرمافزارهای حساس به امنيت‬
‫حسين کرامتي‬
‫استاد راهنما‪ :‬دکتر ميريان‬
‫استاد مشاور‪ :‬دکتر حبيبی‬
‫دانشگاه صنعتي شريف‬
‫دانشکده مهندسي کامپيوتر‬
‫پائيز ‪÷1385‬‬
‫مقدمه‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫افزايش روز افزون آسيب پذيريهای امنيتی‬
‫توسعه استفاده از سيستمهای نرم افزاری‬
‫امنيت‪ :‬از اساسی ترين نيازهای بسياری از نرم افزارها‬
‫توسعه دهندگان‪ :‬نقش اصلی در توليد نرم افزار‬
‫عدم آشنايی توسعه دهندگان با امنيت ‪ ‬نرم افزارهای‬
‫آسيب پذير‬
‫‪ ‬راه حل‪ :‬فرآيندی برای توليد و توسعه امن نرم افزارها‬
‫کارهای مرتبط‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫روشهای توصيف و مدل سازی فرآيند‬
‫فرآيندهايی برای توليد امن نرم افزار‬
‫منابع و راهنماهايی برای توسعه امن‬
‫زبانهای مدل سازی با پشتيبانی از نيازمنديهای امنيتی‬
‫توصيف فرآيند‬
‫‪ ‬توصيف فرآيند‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫محصوالت کاری‬
‫نقشهای و توسعه دهندگان‬
‫فعاليتها‬
‫مراحل‬
‫توصيف فرآيند (ادامه)‬
‫‪ ‬چند نمونه‪:‬‬
‫‪PASTA ‬‬
‫• ‪Process and Artifact State Transition Abstraction‬‬
‫• ارائه شده در سال ‪1997‬‬
‫• مبتنی بر ماشين حالت‬
‫‪OPF ‬‬
‫• ‪OPEN Process Framework‬‬
‫• عدم پشتيبانی کافی‪ ،‬عدم وجود ابزار‪ ،‬دارای محدوديتهايی در توصيف و ‪...‬‬
‫‪RMC ‬‬
‫•‬
‫•‬
‫•‬
‫•‬
‫‪Rational Method Composer‬‬
‫شی گرا و دارای کتابخانه ای قوی‬
‫منعطف‪ ،‬سازگار‪ ،‬يکپارچه‬
‫مبتنی بر ابزار و ‪...‬‬
‫توصيف فرآيند (ادامه)‬
‫‪RMC ‬‬
‫‪ ‬محتوای روش (‪)Method Content‬‬
‫• فعاليت ها‬
‫• محصوالت کاری‬
‫• توليد کنندگان‬
‫‪ ‬فرآيند (‪)Process‬‬
‫اجزای محتوای روش در ‪RMC‬‬
‫• استفاده از محتوای روش‬
‫• تعريف مراحل و نحوه به کارگيری محتوای روش انتخاب شده‬
‫توصيف فرآيند (ادامه)‬
‫‪ ‬مثال‪ :‬فرآيند ‪RUP‬‬
‫‪ ‬محتوای روش‪:‬‬
‫• مدلسازی تجارت‪ ،‬نيازمندیها‪ ،‬آناليز و طراحی‪ ،‬پيادهسازی‪ ،‬تست‪،‬‬
‫استقرار‪ ،‬مديريت تغييرات‪ ،‬مديريت پروژه و محيط‬
‫‪ ‬فرآيند‪:‬‬
‫• چهار فاز آغاز ‪ ،‬جزئيات ‪ ،‬ايجاد و انتقال‬
‫• ميزان پرداختن به اجزای محتوای در هر مرحله از انجام پروژه‬
‫توصيف فرآيند (ادامه)‬
‫‪ ‬ويژگيهای ‪:RMC‬‬
‫‪ ‬منبعی غنی از محتوای روش‬
‫‪ ‬دارای ابزار‬
‫•‬
‫•‬
‫•‬
‫•‬
‫سادگی و انعطاف توصيف و اعمال تغييرات و نگهداری فرآيند‬
‫حفظ سازگاری اجزای مختلف فرآيند‬
‫توليد مستندات يکپارچه و استاندارد برای فرآيند تعريف شده‬
‫پشتيبانی از زبان ‪UML‬‬
‫‪ ‬قابليت تعريف فرآيندهای پيچيده‬
‫فرآيندهای توسعه امن‬
AEGIS
CLASP
BSI
Microsoft SDL




UMLSec 
‫فرآيندهای توسعه امن (ادامه)‬
‫‪AEGIS ‬‬
‫‪ ‬پاياننامهی دکتری‬
‫‪ ‬بر مبنای‬
‫•‬
‫•‬
‫•‬
‫•‬
‫مدلسازی دارايی‬
‫شناسايی نيازمندیهای امنيتی‬
‫تحليل مخاطرات‬
‫زمينه مورد استفاده‬
‫فرآيندهای توسعه امن (ادامه)‬
‫‪( AEGIS ‬ادامه)‬
‫فرآيندهای توسعه امن (ادامه)‬
‫‪( AEGIS ‬ادامه)‬
‫• تحليل مخاطرات‬
‫◦ شناسايی‬
‫» آسيب پذيريها‬
‫» تهديدها‬
‫» مخاطرات‬
‫◦ ارزيابی مخاطرات‬
‫» احتمال وقوع‬
‫» خسارت وارده‬
‫» انواع روشهای قابل استفاده برای تحليل‬
‫فرآيندهای توسعه امن (ادامه)‬
‫‪( AEGIS ‬ادامه)‬
‫• طراحی اقدامات متقابل‬
‫• ارزيابی هزينه‪-‬منفعت‬
‫• انتخاب‬
‫◦ پذيرفتن طراحی و هزينه‪-‬منفعت‬
‫◦ قابل قبول بودن مخاطرات کاهش يافته‬
‫◦ طراحی مجدد اقدامات متقابل‬
‫فرآيندهای توسعه امن (ادامه)‬
‫‪CLASP ‬‬
‫‪Comprehensive Lightweight Application Security ‬‬
‫‪Process‬‬
‫‪ ‬نگارش دوم‬
‫‪ ‬شامل‪:‬‬
‫• ‪ 7‬تجربه موفق‬
‫◦ روند کلی فرآيند‬
‫• ‪ 24‬فعاليتها‬
‫◦ تشکيل دهنده تجربه های موفق‬
‫• ‪ 7‬نقش‬
‫◦ انجام دهنده فعاليتها‬
‫• ‪ 104‬آسيب پذيری‬
‫فرآيندهای توسعه امن (ادامه)‬
‫‪( CLASP ‬ادامه)‬
‫مثال‪:‬‬
‫‪ ‬تجربه موفق بدست آوردن نيازمندیهای امنيتی‬
‫• فعاليتهای تشکيل دهنده‪:‬‬
‫◦‬
‫◦‬
‫◦‬
‫◦‬
‫◦‬
‫◦‬
‫◦‬
‫◦‬
‫شناسايی خطمشی امنيتی‬
‫شناسايی منابع و مرزهای اطمينان‬
‫شناسايی نقش کاربران‬
‫شناسايی قابليتهای منابع‬
‫تعيين محيط عملياتی‬
‫شرح کامل موارد استفاده نادرست‬
‫شناسايی خط حمله‬
‫مستندسازی نيازمندیهای امنيتی‬
‫فرآيندهای توسعه امن (ادامه)‬
‫‪( CLASP ‬ادامه)‬
‫‪ ‬آسيب پذيريها‬
‫• ليستی ‪ 104‬تايی‬
‫◦‬
‫◦‬
‫◦‬
‫◦‬
‫◦‬
‫◦‬
‫◦‬
‫◦‬
‫معرفی‬
‫نتيجه آسيبپذيری و تاثير آن بر جنبههای مختلف امنيت سيستم‬
‫مرحله وقوع در دوره حيات و توسعه نرمافزار‬
‫نقش آن در بسترهای مختلف توليد‬
‫منابع حمله‬
‫ارزيابی خطر‬
‫راههای جلوگيری از آن در مراحل مختلف توليد نرمافزار‬
‫ساير اطالعات و مثال‬
‫فرآيندهای توسعه امن (ادامه)‬
‫‪BSI ‬‬
‫‪Build Security In ‬‬
‫‪ ‬پروژه ‪US-CERT‬‬
‫‪ ‬مجموعهای از‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫تجربيات موفق‬
‫ابزار‬
‫رهنمودها‬
‫قواعد‬
‫اصول‬
‫ساير اطالعات‬
‫الزم برای تامين امنيت در مراحل مختلف توسعه نرمافزار را فراهم کرده‬
‫است‪.‬‬
‫فرآيندهای توسعه امن (ادامه)‬
‫‪Microsoft SDL ‬‬
‫‪Microsoft Security Development Lifecycle ‬‬
‫‪ 13 ‬مرحله‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫آموزش و آگاهی بخشی به پرسنل‬
‫فاز آغازين‬
‫تعيين يک مشاور امنيتی برای پروژه‬
‫تيم راهبری امنيتی‬
‫اصولی مشترک در طراحی امن نرمافزار‬
‫ارزيابی مخاطرات امنيتی‬
‫راهکارهايی برای برنامهنويسی امن‬
‫تست امنيتی نرمافزار‬
‫ايمنتر کردن نرمافزار توليدی‬
‫آخرين بازبينی امنيتی‬
‫طرحريزی سيستم پاسخگويی به مشکالت امنيتی‬
‫عرضه محصول‬
‫پاسخگويی به مشکالت امنيتی‬
‫زبان مدل سازی‬
‫‪UMLSec ‬‬
‫‪ ‬توسعه ای برای زبان مدلسازی ‪UML‬‬
‫‪ ‬پشتيبانی از نيازمندی های امنيتی‬
‫‪ ‬نمودارهای‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫نمونه کارکرد‪ :‬نيازمندیهای امنيتی‬
‫نمودار فعاليت‪ :‬فرآيند تجاری امن‬
‫نمودار کالس‪ :‬تعيين جنبه های امنيتی اشياء‬
‫نمودار ترتيب‪ :‬تبادل پيغامهای امنيتی‬
‫نمودار حالت سيستم‪ :‬رفتار امنيتی سيستم‬
‫نمودار بسته‪ :‬دسته بندی اجزاء‬
‫نمودار استقرار‪ :‬ارتباطات فيزيکی و امنيتی‬
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
‫مراجع‬
Howard, M., Lipner, S., The Security Development Lifecycle: SDL: A Process for Developing Demonstrably More Secure
Software, Microsoft Press, 2006.
McGraw, G., Software Security: Building Security In, Pearson Education Inc., Addison Wesley Professional, 2006.
Weiss, D. M., Lai, C. T. R., Software Product-Line Engineering: A Family-Based Software Development Process,
Addison-Wesley, 1999.
Flechais, I., Designing Secure and Usable Systems, Ph.D. Thesis, University of London, London, UK, 2005.
Boström, G., etc, "Extending XP practices to support security requirements engineering", In Proceedings of the 2006
international workshop on Software engineering for secure systems, 2006.
Ardi, S., Byers, D., Shahmehri, N., "Towards a structured unified process for software security", In Proceedings of the
2006 international workshop on Software engineering for secure systems, 2006.
Viega, J., "Building Security Requirements with CLASP", In Proceedings of the 2005 workshop on Software engineering
for secure systems-building trustworthy applications, 2005.
Haley, C. B., etc, "A framework for security requirements engineering", In Proceedings of the 2006 international
workshop on Software engineering for secure systems, 2006.
Firesmith, D., "Specifying Reusable Security Requirements". Journal of Object Technology, 2004.
Yang, K. J., Pooley, R., "Process Modelling to Support the Unified Modelling Language", In Proceedings of the 21st
International Computer Software and Applications Conference, 1997.
Flechais, I., Sasse, M. A., Hailes, S. M. V., “A process for developing secure and usable systems”, In Proceedings of the
2003 Workshop on New Security Paradigms, 2003.
Grance, T., Hash, J., Stevens, M., "Security Considerations in the Information System Development Life Cycle", NIST,
Computer Security Division, NIST Special Publication 800-64, REV. 1, 2004.
Swanson, M., etc, "Security Metrics Guide for Information Technology Systems", NIST, Computer Security Division,
NIST Special Publication 800-55, 2003.
Secure Software Inc., CLASP: Comprehensive Lightweight Application Security Process, Version 2.0, 2006,
http://www.securesoftware.com/process.
US-CERT, Software Engineering Institute, Build Security In, 2006, https://buildsecurityin.us-cert.gov.
McGraw, G., Howard, M., etc, Processes to Produce Secure Software, National Cyber Security Summit, 2004,
http://www.cigital.com/papers/download/secure_software_process.pdf.
Jürjens, J., "Developing Secure Systems with UMLsec From Business Processes to Implementation", UMLsec
homepage, 2002, http://www4.in.tum.de/~umlsec.
Haumer, P., "IBM Rational Method Composer: Part 1 & 2", IBM Developer Works website, 2005 & 2006, http://www128.ibm.com/developerworks/rational/library/dec05/haumer
&
http://www128.ibm.com/developerworks/rational/library/jan06/haumer.
IBM Rational Method Composer (RMC) official website, http://www-306.ibm.com/software/awdtools/rmc/index.html.
OPEN Process Framework (OPF) official website, http://www.opfro.org
‫با تشکر‬