کامپیوتر و IT و اینترنتعلوم مهندسی

امنیت در معماری نرم افزار

صفحه 1:
0 0 0 OM me ۷ 5898 5210107 ‎TN a Ion‏ افزار ‎ ‎ ‎ ‎۳ Sr Peer Oe rT ‏لسري‎ ‎ ‎

صفحه 2:
* تعریف معماری نرم افزار ۰ جایگاه امنیت در معماری نرم افزار * مراحل مدل سازی تهدید ها ۰ الگوهای امن در معماری نرم افزار

صفحه 3:
معماری نرم افزار 7 معماری نرم افزار #سباختازی آزاشیستم ]که شامل ‎Architecture‏ وی هیقب يدا ویژگی های قلبل مشاهده آنها در ج سیستم و ‎relatio‏ ‏روابط بين انها مى باشد ‎bt‏ 7 به معماری نرم افزار طراحی سطح بالا ‎(top-level design)‏ نیز می

صفحه 4:
معماری نرم افزار ‎(stakeholders) .,4i.3 ~‏ ‎slo og f gal I‏ اكه در ‎BL‏ شد(ا بگهرنرم افزار مهم دازند **هر کدام از ذینفعان مایلند كه معماری نرم افزار نگرلنی ها و دغدغه های آنها را بیشتر پوشش دهد ‏** معماری نرم افزار ابزاری برای ارتباط بین ذینفعان است ‎ ‏کارگاه آموزشی «امنیت نرم افزار و مهندسی نرم اذزار امن» - آذر ۱۳۹۱ دانش

صفحه 5:
دهنده نرم افزار کارگاه آموزشی «امنیت نرم افزار و مهندسی نرم افزار امن» - آذر ‎۱۳٩۱‏ دانشگاه گیلان

صفحه 6:
معماری نرم افزار ‎Architecture Business Cycle ~‏ **معماری نرم افزار نتیجه یک سری تاثیرات برنامه است ** معماری نرم افزار خود بر روی تمامی این موارد تاثیر می گذارد ‎oF‏ آینده این تاثیرات‌شود بة كعمارى هاى آتى أمنتقال مى شود ‎ ‏کارگاه آموزشی «امنیت نرم افزار و مهندسی نرم افزار امن» - آذر ۱۳۹۱ دانشگاه گیلان ‎

صفحه 7:
معماری نرم افزار 7 محیط فنی 7شامل تکنیک های مهندسی نرم افزار شایع و فراگیر در محیط فعلی که معمار در آن حضور دارد 7 تجربه معمار > تجربیات موفق آمیز در آینده تکرار می شود #تجربيات ناموفق با احتمال كمترى در آيتده تكرار خواهد شد کارگاه آموزشی «امنیت نرم افزار و مهندسی نرم اذزار امن» - آذر ۱۳۹۱ دانش

صفحه 8:
Architecture Business Cycle کارگاه آموزشی «امنیت نوم افزار و مهندسی نرم افزار امن» - آذر ‎۱۳٩۱‏ دانشگاه گیلان

صفحه 9:
معماری نرم افزار ‎Pipe & Filter‏ ‎Pipe & Filter ~‏ ** دریافت ورودی در نقاط پردازشی(116615؟) از خروجی قسمت قبل #*ارسال داده های بین نقاط پردازشی توسط کانال ها (01065) ‏"نقاط پردازشی مستقل "نگهداری و استفاده مجدد ‏تلن ‎1 7 ‎ ‏کارگاه آموزشی «امنیت نرم افزار و مهندسی نرم افزار امن» - آذر ‎۱۳٩۱‏ دانشگاه گیلان

صفحه 10:
معماری نرم افزار ‎Pipe & Filter‏ Unix jo Jo) bs - Jie 7 cat A.txt B.txt | sort | gzip | mail ا 5-5-5 کارگاه آموزشی «امنیت نرم افزار و مهندسی نرم افزار امن» - آذر ‎۱۳٩۱‏ دانشگاه گیلان

صفحه 11:
2 جایگاه امنیت در معماری نرم افزار ‎Security Architecture‏ Poetry Peso ent co م افزار و مهندسی نرم افزار امن» - آذر ۱۳۹۱ دانشگاه گیلان

صفحه 12:
امنیت در معماری فرم افزار 7 مدل سازی تهدید فرآیندی برای کمک به مدل کردن امنیت برنامه **استخراج نقص ها و آسیب های بالقوه موجود در برنامه قبل از سرمایه گذاری بر روی آنها کارگاه آموزشی «امنیت نرم افزار و مهندسی نرم افزار امن» - آذر ۱۳۹۱ دانشگاه گیلان

صفحه 13:
مراحل مدل سازی تهدید ها 7 چرخه فرآیند مدل سازی تهدید اضافه کردن جزئیات بیشتر با پیش رفتن در حلقه ساخت برنامه *# تشخیص ‎sally gilts‏ پررسی و تصحیح مجدد آذر ۱۳۹۱ دانشگاه گیلان

صفحه 14:
مراحل مدل سازی تهدید ها 7 مرحله اول ** تعیین کردن اهداف امنیتی 7 مشخص کردن زمینه ها و باید ها و نبایدهای وابسته به : 0۳86000 : جلوگیرعاز دسترسی‌های‌غیر مجاز *** 116 : جلوكيرواز تغيير غير مجاز داهم ها **:112111113هنتق : فرلهم كرمزسرويسرها حتىدر حضور حمله لور

صفحه 15:
مراحل مدل سازی تهدید ها 7 مرحله دوم **ساخت نمایی اولیه از برنامه *#*مشخص کردن کارکردها و ویژگی های برنامه به صورت کلی 7 توجه به تکراری بودن فر آیند مدل سازی تهدیدها **عدم توقف در انجام هر مرحله تعیین هر چه بیشتر جزئیات در صورت ممکن و در سریعترین زمان کارگاه آموزشی «امنیت نرم افزار و مهندسی نرم افزار امن» - آذر ۱۳۹۱ دانشگاه گیلان

صفحه 16:
مراحل مدل سازی تهدید ها 7 مرحله سوم ** تجزیه قسمت های برنامه مشخص کردن موارد زیر برای تشخیص بیشتر نقاط آسیب پذیر : "تعیین مرزهای تغییر سطح اطمینان ۷تعیین جریان های داده ”تعيين نقاط ورود و خروج داده کارگاه آموزشی «امنیت نرم افزار و مهندسی نرم افزار امن» - آذر ۱۳۹۱ دانشگاه گیلان

صفحه 17:
ser / ‏ع5 1ط‎ boundry 1 Login!request AuthenticateUser() I i i i Web server / Database | ‏اناا‎ aS 7 or ren a

صفحه 18:
مراحل مدل سازی تهدید ها 7 مرحله چهارم ‎sof‏ ین تهدیدها **مشخص كردن تهديدها و حمله هاى محتمل در برنامه *# استفاده از افراد. لخصصر ‎Chul cols canal Bree phot‏ كردن تهديدها 7 شروع با تهدیدها و حمله های شناخته شده تعیین مواردی که قابل اعمال در برنامه هستند کارگاه آموزشی «امنیت نرم افزار و مهندسی نرم افزار امن» - آذر ۱۳۹۱ دانشگاه گیلان

صفحه 19:
مراحل مدل سازی تهدید ها ‎Misuse / Abuse Case ~‏ ‎Use case*‏ », 11141 برلىمدلكرمنكركردهائيرنامه و لنجه كه برنامه بايستىإنجام دهد لستفاده می‌شود *** 0356 ۸۱۹6 / 1۷]151156 ب رلی‌مد لک ردن‌مواردی‌که نمي‌خولهيم در برنامه لتفاق یفد اسکتفاده ملی‌شن ود ‎ ‏کارگاه آموزشی «امنیت نرم افزار و مهندسی نرم اذزار امن» - آذر ۱۳۹۱ دانش

صفحه 20:
مراحل مدل سازی تهدید ها Misuse / Abuse Case ~ ‏ایبر و برنامه لنجام می‌دهد‎ 54 Scales Use case* لموار #وع عوبطم / 1۷2151156 شامل‌لموبی‌لست‌که حمله کننده ‎cols] lila bb (attacker)‏ *#ارتباط بین دو دسته از آمور,.بالاانشان دهندة تاثیرات ناشی از عمل حمله کننده با کارکردهای برنامه است کارگاه آموزشی «امنیت نرم افزار و مهندسی نرم افزار امن» - آذر ۱۳۹۱ دانشگاه گیلان

صفحه 21:
Threatens 6 ما3۳ attack Mitigates cerca | Mitigates ‏یت‎ ‎۸0 Hacker / Mitigates Malicious User w Dictionary Mitigates Username & password | User authentication ١ | Show error massages Lock after N failed attempts | Password complexity User Application / Server

صفحه 22:
مراحل مدل سازی تهدید ها ‎Threat / Attack Tree ~‏ ** تشخیص موارد بیشتری از تهدیدهای قابل اعمال به برنامه ‏* تعیین موارد ترکیبی از تهدیدها که خطر جدیدی را ممکن است به برنامه تحمیل کنند ‎ ‏کارگاه آموزشی «امنیت نرم افزار و مهندسی نرم اذزار امن» - آذر ۱۳۹۱ دانش

صفحه 23:
مراحل مدل سازی تهدید ها ‎Threat / Attack Tree cst. ~‏ **قرار دادن خود به جای حمله کننده ** تعیین موارد مورد نیاز برای انجام یک حمله #* ساخت ريشه درخت مبتنی بر حمله مورد تظر و راهها و مراحل انجام حلمه در زیر ‏گره ها ‎ ‏کارگاه آموزشی «امنیت نرم افزار و مهندسی نرم افزار امن» - آذر ۱۳۹۱ دانشگاه گیلان

صفحه 24:
مراحل مدل سازی تهدید ها Obtaining authentication credentials over کارگاه آموزشی «امنیت نوم افزار و مهندسی نرم افزار امن» - آذر ‎۱۳٩۱‏ دانشگاه گیلان

صفحه 25:
مراحل مدل سازی تهدید ها 7 مرحله پنجم **تعیین آسیب های برنامه **مرور برنامه برای تعیین صریح آسیب پذیری ها #استفادة از تهديد هك للست شذه در مراجل قبلیبرای شناخت هر چه بیشتر آسیب پذیری های برنامه کارگاه آموزشی «امنیت نرم افزار و مهندسی نرم افزار امن» - آذر ۱۳۹۱ دانشگاه گیلان

صفحه 26:
مراحل مدل سازی تهدید ها rT eee eee Po ean

صفحه 27:
الگوهای امن در معماری فرم افزاز 7 الگوهای طراحی امن *#*الگوهای طراحی راه حل هایی برای مسائل پرتکرار در مهندسی نرم افزار ۳ ** الكوهاى طراحى امن قللب هلیی برای توصیف راه حل های عمومی در مسائل ‎ena al‏ "تجزبه مولفه ها با رعایت ویژگی اعتماد ‎distrustful)‏ ‎(decomposition‏ ‏"جدا كردن مولفه ها با توجه به حق دسترسی (۳۲۱۷11696 ‎(separation‏ کارگاه آموزشی «امنیت نرم افزار و مهندسی نرم اذزار امن» - آذر ۱۳۹۱ دانش

صفحه 28:
الگوهای امن در معماری فرم افزاز 7 الگوهای امن در سطح معماری یه اجزای بی اعتماد از یکدیگر ‎distrustful)‏ ‎(decomposition‏ ‏** قرار دادن اعمال مجزا در برنامه هایی با عدم رابطه اعتماد با یکدیگر **كم كردن زمينه های حمله در برنامه های منفرد کم کردن داده های در معرض حمله در صورت رخداد مخاطره در یکی از برنامه های مجزا شده از لحاظ اعتماد کارگاه آموزشی «امنیت نرم افزار و مهندسی نرم افزار امن» - آذر ‎۱۳٩۱‏ دانشگاه گیلان

صفحه 29:
كاركاه آموزشى ‎١‏ 10 21 server Qmial RTs asia Functiop>! area © (Pipe & Filter) To local PTT Cr an en

صفحه 30:
الگوهای امن در معماری فرم افزاز 2 الگوهای امن در سطح معماری * جدا کردن مولفه ها با توجه به حق دسترسی (۳11۷11606 ‎(separation‏ ‏** تلاش براى كم كردن قسمتى از كد كه با حق دسترسى سطح بالا اجرا مى شود **قابلیت استفاده از لين الگو در صورتی که برنامه شامل عملکردهای متفاوتی باشد که بدون حق دسترسی سطح بالا اچرا شوند کارگاه آموزشی «امنیت نرم افزار و مهندسی نرم افزار امن» - آذر ۱۳۹۱ دانشگاه گیلان

صفحه 31:
الگوهای امن در معماری فرم افزاز Proce : 55 ‏د‎ ‎System service Proce > Process TATTLE PC Pa TY PC AT AT Attack surface

صفحه 32:
1, Bass, P. Clements, R. Kazman, Software Architecture in Practic, Addsion-Weisly, 2nd edition, 2003 C. Dougherty, K. Sayer, R. Seacord, D. Svoboda, Secure Design Patterns, Software Engineering Institute, 2009 C. Goertzel, K. Mercedes, Software Security Assurance: A State-of-the-Art Report , Information Assurance Technology Analysis Center (IATAC) of the DTIC, 2011 M. Howard, Lessons Learned from Five Years of Building Secure Software, Microsoft Developer Network , 2011 J.D. Meier, A. Mackman, B. Wastell, How To Create a Threat Model for a Web Application at Design Time, Microsoft Developer Network (MSDN), 2010 کارگاه آموزشی «امنیت نوم افزار و مهندسی نرم افزار امن» -- ‎CT RE‏

صفحه 33:
| x 5 8 -

Software Security & Secure Software Engineering امنیت در معماری نرم افزار اصغر توکلی فهرست مطالب • تعریف معماری نرم افزار • جایگاه امنیت در معماری نرم افزار • مراحل مدل سازی تهدید ها • الگوهای امن در معماری نرم افزار 2 معماری نرم افزار معماری نرم افزار ‏ساختاری از سیستم که شامل مولفه های سیستم ، ویژگی های قابل مشاهده آنها در سطح سیستم و روابط بین آنها می باشد به معماری نرم افزار طراحی سطح باال ( )top-level designنیز می گویند ‏Architecture ‏compon ‏ent ‏compon ‏ent ‏relatio ‏ns ‏compon ‏ent 3 معماری نرم افزار ذینفعان ()stakeholders افراد و گروه هایی که در ساخته شدن یک نرم افزار سهم دارند ‏ه0ر کدام از ذینفعان مایلن0د ک0ه معماری نرم افزار نگران0ی ه0ا و دغدغه های آنها را بیشتر پوشش دهد معماری نرم افزار ابزاری برای ارتباط بین ذینفعان است 4 خریدار تیم پشتیبانی کاربر بازاریابی کارایی ، امنیت تحویل به موقع ،عدم تغییر پذیری هزینه کم ، رقابت با نمونه های موجود تغییرپذیری تیم توسعه دهنده نرم افزار هزینه کم ، استفاده از برنامه نویسان موجود معمار 5 معماری نرم افزار ‏Architecture Business Cycle  ‏معماری نرم افزار نتیج0ه ی0ک س0ری تاثیرات فن0ی ،اقتص0ادی و محیطی بر برنامه است معماری نرم افزار خود بر روی تمامی این موارد تاثیر می گذارد در آینده این تاثیرات خود به معماری های آتی منتقل می شود 6 معماری نرم افزار محیط فنی شام0ل تکنی0ک های مهندس0ی نرم افزار شای0ع و فراگی0ر در محی0ط فعل0ی که معمار در آن حضور دارد تجربه معمار تجربیات موفق آمیز در آینده تکرار می شود تجربیات ناموفق با احتمال کمتری در آینده تکرار خواهد شد 7 Architecture Business Cycle معماری سیستم تیم توسعه دهنده ذینفعان تجربه معمار محیط فنی معمار 8 معماری نرم افزار ‏Pipe & Filter ‏Pipe & Filter  ‏دریافت ورودی در نقاط پردازشی( )filtersاز خروجی قسمت قبل ‏ارسال داده های بین نقاط پردازشی توسط کانال ها ()pipes ‏نقاط پردازشی مستقل ‏نگهداری و استفاده مجدد ‏Data ‏Sink ‏pipe ‏Filte ‏Filte ‏pipe ‏r ‏r ‏pipe ‏Sourc ‏e ‏Date 9 Inpu ts معماری نرم افزار Pipe & Filter Unix خط لوله در- مثال cat A.txt B.txt | sort | gzip | mail A.t xt Processes ca t B.t xt 1 sor t gzi p ma il امنیت در معماری نرم افزار جایگاه امنیت در معماری نرم افزار Security Architecture compon ent compon ent relatio ns compon ent 1 امنیت در معماری نرم افزار مدل سازی تهدید ‏فرآیندی برای کمک به مدل کردن امنیت برنامه ‏اس0تخراج نق0ص ه0ا و آس0یب های بالقوه موجود در برنام0ه قب0ل از سرمایه گذاری بر روی آنها 1 مراحل مدل سازی تهدید ها چرخه فرآیند مدل سازی تهدید ‏اضاف0ه کردن جزئیات بیشت0ر ب0ا پیش رفتن در حلقه ساخت برنامه ‏تشخیص منابع کلیدی ‏بررسی و تصحیح مجدد ت عییناهداف1. ام نیتی 1 مراحل مدل سازی تهدید ها مرحله اول ‏تعیین کردن اهداف امنیتی مشخص کردن زمینه ها و باید ها و نبایدهای وابسته به : : Confidentialityج0لوگ0یریاز د0س0ترس0یهایغ0یر م0جاز : Integrityج0لوگ0یریاز ت00غییر غ0یر م0جاز داد0ه 0ها : Availabilityف00را0هم ک00رد0نس00رو0ی0سها ح0تیدر ح0ضور ح0مله 1 مراحل مدل سازی تهدید ها مرحله دوم ‏ساخت نمایی اولیه از برنامه مشخص کردن کارکردها و ویژگی های برنامه به صورت کلی توجه به تکراری بودن فرآیند مدل سازی تهدیدها عدم توقف در انجام هر مرحله تعیین هر چه بیشتر جزئیات در صورت ممکن و در سریعترین زمان 1 مراحل مدل سازی تهدید ها مرحله سوم ‏تجزیه قسمت های برنامه مشخص کردن موارد زیر برای تشخیص بیشتر نقاط آسیب پذیر : ‏تعیین مرزهای تغییر سطح اطمینان ‏تعیین جریان های داده ‏تعیین نقاط ورود و خروج داده 1 User / Web server boundry Login request User AuthenticateUser() Web server Login response Authentication result SQL query & results Web server / Database boundry 1 Login proce ss Databa se مراحل مدل سازی تهدید ها مرحله چهارم ‏تعیین تهدیدها ‏مشخص کردن تهدیدها و حمله های محتمل در برنامه استفاده از افراد متخصص در زمینه امنیت برای لیست کردن تهدیدها شروع با تهدیدها و حمله های شناخته شده تعیین مواردی که قابل اعمال در برنامه هستند 1 مراحل مدل سازی تهدید ها مرحله چهارم ‏تعیین تهدیدها ‏Misuse / Abuse Case  Use caseدر UMLب00را0یم0دلک00رد0نک00ار0کرد0هایب00رنام0ه و آ0ن0چ0ه ک00ه 0ستی0ن0جام د0هد ا0س0تفاد0ه 0م0یش00ود ب00رنام0ه ب00ای ا Misuse / Abuse Caseب00را0یم0دلک00رد0نم0وارد0یک00ه ن00م0یخ0وا0هیم در ب00رنام0ه ا0ت0فاقب00یفتد ا0س0تفاد0ه 0م0یش00ود 1 مراحل مدل سازی تهدید ها مرحله چهارم ‏تعیین تهدیدها ‏Misuse / Abuse Case  Use caseش00ام0لم0وارد0یک00ه ک00ار0بر و ب00رنام0ه ا0ن0جام م0ید0هند Misuse / Abuse Caseشام00لا0مور0یا0س00تک000ه ح مله ک ننده ( )attackerم0ای0لب00ه ا0ن0جام آ0نا0س0ت ‏ارتباط بی0ن دو دس0ته از امور باال نشان دهنده تاثیرات ناش0ی از عم0ل حمل0ه کننده با کارکردهای برنامه است 2 Username & password | User authentication | Show error massages | Lock after N failed attempts | Password complexity Threatens Mitigates Mitigates Mitigates Mitigates 21 Brute force attack | Harwest user accounts | Dictionary attack مراحل مدل سازی تهدید ها مرحله چهارم ‏تعیین تهدیدها ‏Threat / Attack Tree  تشخیص موارد بیشتری از تهدیدهای قابل اعمال به برنامه ‏تعیی0ن موارد ترکیب0ی از تهدیده0ا ک0ه خط0ر جدیدی را ممک0ن اس0ت ب0ه برنام0ه تحمیل کنند 2 مراحل مدل سازی تهدید ها مرحله چهارم ‏تعیین تهدیدها ساخت Threat / Attack Tree قرار دادن خود به جای حمله کننده تعیین موارد مورد نیاز برای انجام یک حمله ساخت ریشه درخت مبتنی بر حمله مورد نظر و راهها و مراحل انجام حلمه در زیر گره ها 2 مراحل مدل سازی تهدید ها Threat #1 Obtaining authentication credentials over network And 1.1 Clear text credentials sent over the network 1.2 Attacker uses network monitoring tools 1.2.1 Attacker recognize credential data 2 مراحل مدل سازی تهدید ها مرحله پنجم ‏تعیین آسیب های برنامه مرور برنامه برای تعیین صریح آسیب پذیری ها ‏اس0تفاده از تهدیدهای لیس0ت شده در مراح0ل قبل0ی برای شناخ0ت ه0ر چ0ه بیشتر آسیب پذیری های برنامه 2 مراحل مدل سازی تهدید ها Authentica tion Brute Threats force attack 2 Delaying Solutions login to process vulnerabi- after every N lities try Dictionar y attack Network monitorin g tools Use Use password encrypted complexit network y rules links الگوهای امن در معماری نرم افزار الگوهای طراحی امن ‏الگوهای طراحی راه ح0ل های0ی برای مس0ائل پرتکرار در مهندسی نرم افزار هستند ‏الگوهای طراحی امن قال0ب های0ی برای توص0یف راه ح0ل های عموم0ی در مسائل امنیتی هستند (distrustful ‏تجزی ه مولف ه ه ا ب ا رعای ت ویژگی اعتماد )decomposition ‏جدا کردن مولف ه ه ا ب ا توج ه ب ه ح ق دسترسی (privilege )separation 2 الگوهای امن در معماری نرم افزار الگوهای امن در سطح معماری (distrustful ‏تجزی ه اجزای ب ی اعتماد از یکدیگر )decomposition قرار دادن اعمال مجزا در برنامه هایی با عدم رابطه اعتماد با یکدیگر کم کردن زمینه های حمله در برنامه های منفرد ‏ک0م کردن داده های در معرض حمل0ه در ص0ورت رخداد مخاطره در یک0ی از برنامه های مجزا شده از لحاظ اعتماد 2 الگوهای امن در معماری نرم افزار Qmial Server Remote mail server Functional Process area A ( Pipe & Filter) Process B Remote mail server 2 From local Process A Process B To local الگوهای امن در معماری نرم افزار الگوهای امن در سطح معماری ‏جدا کردن مولف ه ه ا ب ا توج ه ب ه ح ق دسترسی (privilege )separation تالش برای کم کردن قسمتی از کد که با حق دسترسی سطح باال اجرا می شود ‏قابلی0ت اس0تفاده از ای0ن الگ0و در ص0ورتی ک0ه برنام0ه شام0ل عملکردهای متفاوت0ی باشد که بدون حق دسترسی سطح باال اجرا شوند 3 الگوهای امن در معماری نرم افزار System service Privileg ed Process Kernel 3 Attack surface Proce ss A Proce ss B Proce ss C منابع  L. Bass, P. Clements, R. Kazman, Software Architecture in Practic, Addsion-Weisly, 2nd edition, 2003  C. Dougherty, K. Sayer, R. Seacord, D. Svoboda, Secure Design Patterns, Software Engineering Institute, 2009  C. Goertzel, K. Mercedes, Software Security Assurance: A State-of-the-Art Report , Information Assurance Technology Analysis Center (IATAC) of the DTIC, 2011  M. Howard, Lessons Learned from Five Years of Building Secure Software, Microsoft Developer Network , 2011  J.D. Meier, A. Mackman, B. Wastell, How To Create a Threat Model for a Web Application at Design Time, Microsoft Developer Network (MSDN), 2010 3 Thanks And 

62,000 تومان