تارا فایل

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


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

فهرست مطالب
تعریف معماری نرم افزار
جایگاه امنیت در معماری نرم افزار
مراحل مدل سازی تهدید ها
الگوهای امن در معماری نرم افزار
2

معماری نرم افزار
ساختاری از سیستم که شامل
مولفه های سیستم ،
ویژگی های قابل مشاهده آنها در سطح سیستم و
روابط بین آنها می باشد
به معماری نرم افزار طراحی سطح بالا
(top-level design) نیز می گویند
3
معماری نرم افزار
Architecture

relations
component
component
component

ذینفعان (stakeholders)
افراد و گروه هایی که در ساخته شدن یک نرم افزار سهم دارند
هر کدام از ذینفعان مایلند که معماری نرم افزار نگرانی ها و دغدغه های آنها را بیشتر پوشش دهد
معماری نرم افزار ابزاری برای ارتباط بین ذینفعان است
4
معماری نرم افزار

5
تیم توسعه دهنده نرم افزار
بازاریابی
کاربر
تیم پشتیبانی
خریدار
هزینه کم ، استفاده از برنامه نویسان موجود
هزینه کم ، رقابت با نمونه های موجود
کارایی ، امنیت
تغییرپذیری
تحویل به موقع، عدم تغییر پذیری
معمار

Architecture Business Cycle
معماری نرم افزار نتیجه یک سری تاثیرات فنی ، اقتصادی و محیطی بر برنامه است
معماری نرم افزار خود بر روی تمامی این موارد تاثیر می گذارد
در آینده این تاثیرات خود به معماری های آتی منتقل می شود
6
معماری نرم افزار

محیط فنی
شامل تکنیک های مهندسی نرم افزار شایع و فراگیر در محیط فعلی که معمار در آن حضور دارد

تجربه معمار
تجربیات موفق آمیز در آینده تکرار می شود
تجربیات ناموفق با احتمال کمتری در آینده تکرار خواهد شد
7
معماری نرم افزار

8
Architecture Business Cycle
ذینفعان
تجربه معمار
محیط فنی
تیم توسعه دهنده
معماری سیستم
معمار

Pipe & Filter
دریافت ورودی در نقاط پردازشی(filters) از خروجی قسمت قبل
ارسال داده های بین نقاط پردازشی توسط کانال ها (pipes)
نقاط پردازشی مستقل
نگهداری و استفاده مجدد
9
معماری نرم افزار
Pipe & Filter
Source Date
Filter
Filter
Data Sink
pipe
pipe
pipe

مثال – خط لوله در Unix
cat A.txt B.txt | sort | gzip | mail
10
معماری نرم افزار
Pipe & Filter
Inputs

A.txt
B.txt
Processes

cat
sort
gzip
mail

جایگاه امنیت در معماری نرم افزار
11
امنیت در معماری نرم افزار

Security

Architecture

component
component
component
relations

مدل سازی تهدید
فرآیندی برای کمک به مدل کردن امنیت برنامه
استخراج نقص ها و آسیب های بالقوه موجود در برنامه قبل از سرمایه گذاری بر روی آنها
12
امنیت در معماری نرم افزار

چرخه فرآیند مدل سازی تهدید
اضافه کردن جزئیات بیشتر با پیش رفتن در حلقه ساخت برنامه
تشخیص منابع کلیدی
بررسی و تصحیح مجدد
13
مراحل مدل سازی تهدید ها
1. تعیین اهداف امنیتی

مرحله اول
تعیین کردن اهداف امنیتی

مشخص کردن زمینه ها و باید ها و نبایدهای وابسته به :
Confidentiality : جلوگیری از دسترسی های غیر مجاز
Integrity : جلوگیری از تغییر غیر مجاز داده ها
Availability : فراهم کردن سرویس ها حتی در حضور حمله

14
مراحل مدل سازی تهدید ها

15
مرحله دوم
ساخت نمایی اولیه از برنامه
مشخص کردن کارکردها و ویژگی های برنامه به صورت کلی

توجه به تکراری بودن فرآیند مدل سازی تهدیدها
عدم توقف در انجام هر مرحله
تعیین هر چه بیشتر جزئیات در صورت ممکن و در سریعترین زمان
مراحل مدل سازی تهدید ها

مرحله سوم
تجزیه قسمت های برنامه
مشخص کردن موارد زیر برای تشخیص بیشتر نقاط آسیب پذیر :
تعیین مرزهای تغییر سطح اطمینان
تعیین جریان های داده
تعیین نقاط ورود و خروج داده
16
مراحل مدل سازی تهدید ها

17
User
Web server
Login process
Database
User / Web server
boundry
Login response
AuthenticateUser()
Authentication
result
Login request
SQL query
&
results
Web server / Database
boundry

مرحله چهارم
تعیین تهدیدها
مشخص کردن تهدیدها و حمله های محتمل در برنامه
استفاده از افراد متخصص در زمینه امنیت برای لیست کردن تهدیدها

شروع با تهدیدها و حمله های شناخته شده
تعیین مواردی که قابل اعمال در برنامه هستند
18
مراحل مدل سازی تهدید ها

مرحله چهارم
تعیین تهدیدها

Misuse / Abuse Case
Use case در UML برای مدل کردن کارکردهای برنامه و آنچه که برنامه بایستی انجام دهد استفاده می شود
Misuse / Abuse Case برای مدل کردن مواردی که نمی خواهیم در برنامه اتفاق بیفتد استفاده می شود
19
مراحل مدل سازی تهدید ها

مرحله چهارم
تعیین تهدیدها

Misuse / Abuse Case
Use case شامل مواردی که کاربر و برنامه انجام می دهند
Misuse / Abuse Case شامل اموری است که حمله کننده (attacker) مایل به انجام آن است
ارتباط بین دو دسته از امور بالا نشان دهنده تاثیرات ناشی از عمل حمله کننده با کارکردهای برنامه است
20
مراحل مدل سازی تهدید ها

21
Username &
password
Brute force
attack
Harwest
user accounts
Dictionary
attack
User
authentication
Show error
massages
Lock after N
failed attempts
Password
complexity
Threatens
Mitigates
Mitigates
Mitigates
Mitigates
|
|
|
|
|
|

مرحله چهارم
تعیین تهدیدها

Threat / Attack Tree
تشخیص موارد بیشتری از تهدیدهای قابل اعمال به برنامه
تعیین موارد ترکیبی از تهدیدها که خطر جدیدی را ممکن است به برنامه تحمیل کنند
22
مراحل مدل سازی تهدید ها

مرحله چهارم
تعیین تهدیدها

ساخت Threat / Attack Tree
قرار دادن خود به جای حمله کننده
تعیین موارد مورد نیاز برای انجام یک حمله
ساخت ریشه درخت مبتنی بر حمله مورد نظر و راهها و مراحل انجام حلمه در زیر گره ها
23
مراحل مدل سازی تهدید ها

24
مراحل مدل سازی تهدید ها
Threat #1
Obtaining authentication credentials over network
1.1
Clear text credentials sent over the network
1.2
Attacker uses network monitoring tools
1.2.1
Attacker recognize credential data
And

مرحله پنجم
تعیین آسیب های برنامه

مرور برنامه برای تعیین صریح آسیب پذیری ها
استفاده از تهدیدهای لیست شده در مراحل قبلی برای شناخت هر چه بیشتر آسیب پذیری های برنامه
25
مراحل مدل سازی تهدید ها

26
Authentication
Threats
Solutions
to
vulnerabi-
lities
Brute force attack
Network monitoring tools
Dictionary attack
Use encrypted network links
Use password complexity rules
Delaying login process after every N try
مراحل مدل سازی تهدید ها

الگوهای طراحی امن
الگوهای طراحی راه حل هایی برای مسائل پرتکرار در مهندسی نرم افزار هستند
الگوهای طراحی امن قالب هایی برای توصیف راه حل های عمومی در مسائل امنیتی هستند
تجزیه مولفه ها با رعایت ویژگی اعتماد (distrustful decomposition)
جدا کردن مولفه ها با توجه به حق دسترسی (privilege separation)
27
الگوهای امن در معماری نرم افزار

الگوهای امن در سطح معماری
تجزیه اجزای بی اعتماد از یکدیگر (distrustful decomposition)
قرار دادن اعمال مجزا در برنامه هایی با عدم رابطه اعتماد با یکدیگر
کم کردن زمینه های حمله در برنامه های منفرد
کم کردن داده های در معرض حمله در صورت رخداد مخاطره در یکی از برنامه های مجزا شده از لحاظ اعتماد
28
الگوهای امن در معماری نرم افزار

29
الگوهای امن در معماری نرم افزار
Qmial
Server

Functional
area
( Pipe &
Filter)

Remote mail server
Remote mail server
From local
To local
Process A
Process B
Process A
Process B

الگوهای امن در سطح معماری
جدا کردن مولفه ها با توجه به حق دسترسی (privilege separation)
تلاش برای کم کردن قسمتی از کد که با حق دسترسی سطح بالا اجرا می شود
قابلیت استفاده از این الگو در صورتی که برنامه شامل عملکردهای متفاوتی باشد که بدون حق دسترسی سطح بالا اجرا شوند
30
الگوهای امن در معماری نرم افزار

31
الگوهای امن در معماری نرم افزار
Process A
Process B
Process C
Privileged Process
System service
Attack surface
Kernel

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
32
منابع


تعداد صفحات : 32 | فرمت فایل : .ppt

بلافاصله بعد از پرداخت لینک دانلود فعال می شود