مهندسی نرم افزار امن (چرخه حيات امن) فاطمه احمدی...

35
ن م ار ا ز ف رم ا ن ی س د ن ه م) ن م ا ات ن ح ه خ ر چ( اری ن ک" ب$ مدی ا ح مه ا ط ا فSoftware Security & Secure Software Engineering 1

description

Software Security & Secure Software Engineering. مهندسی نرم افزار امن (چرخه حيات امن) فاطمه احمدی آبکناری. فهرست مطالب. چرخه حيات نرم افزار. 1. متودولوژی تصحيح به همراه ساخت. امنيت محصولات نرم افزاری. 9. 2. TSP-Secure. آسيب پذيری ها. 8. 3. چرخه حيات SDL. - PowerPoint PPT Presentation

Transcript of مهندسی نرم افزار امن (چرخه حيات امن) فاطمه احمدی...

Page 1: مهندسی نرم افزار امن  (چرخه حيات امن) فاطمه احمدی آبکناری

1

مهندسی نرم افزار امن )چرخه حيات امن(

فاطمه احمدی آبکناری

Software Security & Secure Software Engineering

Page 2: مهندسی نرم افزار امن  (چرخه حيات امن) فاطمه احمدی آبکناری

2

امنيت محصوالت نرم افزاری

آسيب پذيری ها

چرخه حيات نرم افزار

2

3

4

56

7

8

استانداردها و چارچوب های امنيت

متودولوژی تصحيح به

همراه ساخت

9

SDLچرخه حيات فرايند توليد محصول نرم افزاری امن

CMMمدل های

TSP-Secure

1

فهرست مطالب

Page 3: مهندسی نرم افزار امن  (چرخه حيات امن) فاطمه احمدی آبکناری

3

چرخه حيات نرم Requirementافزار

Engineering

Implementation

Analysis

Design

Postdelivery Maintenance

Development Maintenance

بررسی بازار هدف

بررسی سازمان مورد نظر به عنوان مشتری

تحليل امکان پذيری پياده سازی خواسته ها

طراحی نمای کلی برنامه، داده

ها و فرايندها

کدنويسی

:نگهداریاصالحیتکاملی

انطباقیبازدارنده

Page 4: مهندسی نرم افزار امن  (چرخه حيات امن) فاطمه احمدی آبکناری

4

Requirement

Analysis

Design

ImplementationTesting

Evolution

چرخه حيات نرم افزار

Page 5: مهندسی نرم افزار امن  (چرخه حيات امن) فاطمه احمدی آبکناری

5

چرخه حيات نرم افزار

Page 6: مهندسی نرم افزار امن  (چرخه حيات امن) فاطمه احمدی آبکناری

6

و چرخه حيات نرم افزارSDLCمحصول نرم افزاری

Software Development Life Cycle

Standards such as ISO/IEC 12207

Benefits of SDLC:

Cost-efficient

Effective

High Quality

Page 7: مهندسی نرم افزار امن  (چرخه حيات امن) فاطمه احمدی آبکناری

7

امنيت و چرخه حيات محصوالت نرم افزاری

پايبن�دی ن�رم افزاره�ا ب�ه ي�ک م�دل فراين�د و ي�ا ي�ک م�دل چرخ�ه حي�ات خ�اص، ام�نيت ن�رم- اف�زار را از نظ�ر مص�ون ب�ودن از آس�يب پ�ذيری

های امنيتی ناخواسته تضمين نمی کند.اگرچ�ه احتم�ال س�اخت ن�رم افزاره�ای امن ب�ا پ�يروی س�ازمانهای س�ازنده از قواع�د مهندس�ی ن�رم اف�زار ب�ا تاکي�د ب�ر ط�راحی خ�وب و کيفيت خ�وب ش�امل گذران�دن محص�ول از پروس�ه ه�ای بازرس�ی ، م�رور و اس�تفاده از مت�دهای تس�ت، اس�تفاده مناس�ب از مف�اهيم م�ديريت ريس�ک، م�ديريت پ�روژه و م�ديريت ن�يروی انس�انی بيش�تر

می شود.

Page 8: مهندسی نرم افزار امن  (چرخه حيات امن) فاطمه احمدی آبکناری

8

امنيت محصوالت نرم افزاری

(: اطمين�ان در Software Assurance: SwAاطمين�ان در ن�رم اف�زار )ن�رم اف�زار ب�ه معن�ای ع�اری ب�ودن محص�ول ن�رم اف�زاری از آس�يب پ�ذيری ه�ای تعم�دی و ي�ا اتف�اقی اس�ت ک�ه در ه�ر مرحل�ه از چرخ�ه

حيات يک محصول نرم افزاری به آن تزريق شده باشد. (: Security Assuranceاطمين�ان از ام�نيت محص�ول ن�رم اف�زاری )

فراين�دی )فع�اليت ه�ا، روش ه�ا، ي�ا روال ه�ا( ک�ه طی آن نيازه�ای امنيتی يک محصول نرم افزاری تضمين و برآورده شود.

ش��امل عموم��ا اف��زاری ن��رم محص��ول ام��نيت از اطمين��ان از اف�زار ن�رم فازه�ای چرخ�ه حي�ات از ب�رای هري�ک راهکاره�ايی

مهندسی نيازها تا نگهداری می شود.

Page 9: مهندسی نرم افزار امن  (چرخه حيات امن) فاطمه احمدی آبکناری

9

فرايند توسعه محصوالت نرم افزاری امن

Security Risk Identification and Management Activities

Security Organizational and Project Management Activities

Security Assurance Activitiesفعاليت های اطمينان از )

ارزيابی و اعتبار ) Verification and Validation (V& V)(امنيت(سنجی

Expert Review, Artifact Review, and Evaluations

تعيين نقش های سازمانی و پشتيبانی از امنيتفعاليت های مربوط به مديريت پروژه شامل

زمانبندی پروژه و تخصيص منابع

شناسايی و مديريت ريسک ها به منظور راهبری فعاليت های مهندسی امنيت

Page 10: مهندسی نرم افزار امن  (چرخه حيات امن) فاطمه احمدی آبکناری

10

آسيب پذيری ها (Vulnerabilities)

SQL Injection

Cross-Site Scripting (XSS)

Malicious Codes

CRLF Injection

Page 11: مهندسی نرم افزار امن  (چرخه حيات امن) فاطمه احمدی آبکناری

11

SQL Injection

نوعی از آس�يب پ�ذيری امني�تی ب�رای برنام�ه ه�ای ک�اربردی تحت وب ب�ه پايگ�اه داده می SQLاس�ت ک�ه مه�اجم اق�دام ب�ه ارس�ال ي�ک دس�تور

اطالع�ات و نم�وده اج�را را آن وب تحت ک�اربردی برنام�ه نماي�د. موج�ود در پايگ�اه داده ک�ه ک�اربر نباي�د ب�ه آنه�ا دسترس�ی داش�ته باش�د

در اختيار مهاجم قرار می گيرد. با اين روش، مه�اجم ق�ادر ب�ه ح�ذف، ايج�اد، ب�ه روزرس�انی و خوان�دن

داده ها در پايگاه می شود.

دسترسی به داده های حساس مانند اطالعات مربوط به کارت های اعتباری و ديگر اطالعات مالی

دسترسی به داده های حساس مانند اطالعات SSNمربوط به

As the 2nd most common software

vulnerabilities ~ 20% of all web

vulnerabilities

Page 12: مهندسی نرم افزار امن  (چرخه حيات امن) فاطمه احمدی آبکناری

12

SQL Injection

عموم�ا مهاجم�ان، زم�انی از اين روش اس�تفاده می کنن�د ک�ه برنام�ه ي�ا و ارزي�ابی ک�اربران ه�ای ورودی ب�ر روی م�ورد حمل�ه، ک�اربردی ک�دينگ انج�ام نمی دهن�د و ورودی ه�ا را ب�ه ص�ورت مس�تقيم ب�ه پايگ�اه

می فرستند.

Page 13: مهندسی نرم افزار امن  (چرخه حيات امن) فاطمه احمدی آبکناری

13

Cross-Site Scripting (XSS)

اس�کريپت ه�ای موج�ود در ص�فحات وب را XSSآس�يب پ�ذيری از ن�وع ک�ه در س�مت ک�اربر و در مرورگ�ر ک�اربر اج�را می ش�وند م�ورد حمل�ه

قرار می دهند.اين ن�وع آس�يب پ�ذيری ناش�ی از ض�عف ه�ای زبانه�ای برنام�ه نويس�ی

هستند.HTML و JavaScriptاسکريپت نويسی سمت کاربر مانند

مهاجم�ان در اين روش، اس�کريپت ه�ايی را در ص�فحات جاس�ازی می نماين�د ک�ه هرب�ار ب�ا بارش�دن ص�فحه و ي�ا ب�ا انج�ام روي�داد خاص�ی اج�را

می شوند.

As the most common software

vulnerabilities

قرب�انی ک�اربر اس�ت ن�ه برنام�ه ک�اربردی و محت�وای اش�تباه از XSSدر به کاربر داده می شود. JavaScriptطريق کد

Page 14: مهندسی نرم افزار امن  (چرخه حيات امن) فاطمه احمدی آبکناری

14

Reflective XSS ب�ه ک�اربر JavaScriptمه�اجم ي�ک ايمي�ل گم�راه کنن�ده ح�اوی اس�کريپت

ي�ک مزب�ور، لين�ک روی ب�ر ش�دن کلي�ک ص�ورت در فرس�تد. می پ�ذير HTTPدرخواس�ت ب�ه برنام�ه ک�اربردی آس�يب از مرورگ�ر ک�اربر

تحت وب ارس�ال می ش�ود. س�پس اس�کريپت مزب�ور ب�ه عن�وان بخش�ی از جلس�ه ک�اری ک�اربر اج�را ش�ده و ب�ه مرورگ�ر ک�اربر بازت�اب داده می

شود.

Page 15: مهندسی نرم افزار امن  (چرخه حيات امن) فاطمه احمدی آبکناری

15

Persistent XSSبه عن�وان مث�ال، ص�فحه وبی ک�ه ن�ام ک�اربران را دري�افت و در ص�فحه ب�ر روی کن�ترلی ک�اربردی برنام�ه اگ�ر ده�د. نش�ان می آنه�ا پروفاي�ل ب�ه وارد ن�ام ک�اربر نداش�ته باش�د مه�اجم می توان�د اق�دام جعب�ه ورود ک�ردن ک�دهای آل�وده اس�کريپت در اين فيل�د نماي�د. آنگ�اه ک�اربران ديگ�ری آدرس )ارس�ال کنن�د می بازدي�د را مه�اجم نظ�ر م�ورد پروفاي�ل ک�ه ص�فحه از طري�ق ايمي�ل( ک�د آل�وده را ب�ه عن�وان بخش�ی از جلس�ه ک�اری

خود دريافت می نمايند.

Page 16: مهندسی نرم افزار امن  (چرخه حيات امن) فاطمه احمدی آبکناری

16

however all XSS attacks follow this pattern, which is depicted in the diagram below.

                                                                                                                                                                                                                     

Persistent XSS

Page 17: مهندسی نرم افزار امن  (چرخه حيات امن) فاطمه احمدی آبکناری

17

Cross-Site Scripting (XSS) تاثيرات XSS

سرقت حساب کاربری

توزيع وب کرم ها

دسترسی به تاريخچه مرورگر

کنترل مرورگر از راه دور

Page 18: مهندسی نرم افزار امن  (چرخه حيات امن) فاطمه احمدی آبکناری

18

Malicious Codes

ابزاره�ای تحليلی ب�ه دنب�ال کش�ف ک�دها در ه�ر قس�مت از ي�ک سيس�تم ناخواس�ته، ت�اثيرات ب�ه اف�زاری هس�تند ک�ه ممکن اس�ت منج�ر ن�رم

شکاف های امنيتی و يا تحميل خرابی به سيستم شود.

از وس���يعی دامن���ه ک���دها اين اص�طالحات امني�تی سيس�تم را در ب�ر ه�ای اس�کريپت جمل�ه از گ�يرد می مه�اجم، وي�روس ه�ا، ک�رم ه�ا، اس�ب

تروژان و ... •Java Applets•ActiveX Controls•Scripting languages•Browser plug-ins

Page 19: مهندسی نرم افزار امن  (چرخه حيات امن) فاطمه احمدی آبکناری

19

CRLF Injection

ه�ای الم�ان اف�زودن ب�ه اش�اره ه�ا پ�ذيری آس�يب از دس�ته اين ک�اراکتری خ�اص در مک�ان ه�ای ناخواس�ته ب�ه منظ�ور دس�تکاری تواب�ع

برنامه های کاربردی وب است.

XSS or Cross Site Scripting vulnerabilities Proxy and web server cache poisoning Hijacking the client's session Client web browser poisoning

NNTP(، e-mail )ب�رای MIMEبس�ياری از پروتک�ل ه�ای اين�ترنت مانن�د ب�رای ج�داکردن جري�ان ه�ای CRLF از HTTP( و newsgroup)ب�رای

متن به المان های گسسته استفاده می کنند.

تاثيرات

Page 20: مهندسی نرم افزار امن  (چرخه حيات امن) فاطمه احمدی آبکناری

20

CRLF Injection

Hello, World<CR><LF>DATABASE ERROR: TABLE CORRUPTION

اگ�ر ي�ک برنام�ه ک�اربردی آس�يب پ�ذير ورودی زي�ر را ب�دون چ�ک ک�ردن بنويسد:Log Fileاز کاربر دريافت کرده و در

درگ�ير گ�زارش ي�ک خط�ای تقل�بی Log در هنگ�ام تحلي�ل Adminکاربر ب�ه تخ�ريب در اق�دام اين فرص�ت توان�د در می ش�ود و مه�اجم می

قسمت ديگری از پايگاه نمايد.

http://www.yoursite.com/somepage.php?page=%0d%0aContent-Type: text/html%0d%0aHTTP/1.1 200 OK%0d%0aContent-Type: text/html%0d%0a%0d%0a%3Chtml%3EHacker Content%3C/html%3E

ارسال لينکی به صورت زير توسط مهاجم:

در صورت کليک کردن بر لينک مزبور:<html>Hacker Content</html>

1

2

~ %0d%0a : HTTP Equivalent

Page 22: مهندسی نرم افزار امن  (چرخه حيات امن) فاطمه احمدی آبکناری

22

قابQل محاسQباتی امQنيت توسQعه حيQات چرخQه اطمينان مايکروسافت

(SDL)Microsoft’s Trustworthy Computing Security Development Lifecycle رم�ن توس�عه ب�رای مايکروس�افت ش�رکت ک�ه اس�ت فراين�دی

افزاره�ايی ک�ه ني�از ب�ه پاي�داری در براب�ر حمالت امني�تی دارن�د م�ورد پذيرش قرار داده است.

امني�تی و راه از فع�اليت ه�ا در س�طوح اين فراين�د مجموع�ه ای اف�زاری ن�رم توس�عه فراين�د فازه�ای از هري�ک ب�رای را ه�ا ح�ل

مايکروسافت اضافه نموده است. ( ب�ه Threat Modelingاين فع�اليت ه�ا ش�امل م�دل س�ازی تهدي�دها )

ط�راحی ف�از خالل در امني�تی ه�ای ريس�ک ش�ناخت منظ�ور (Design رور�د و م�کن ک�رای اس�ای تحليلی ب�تفاده از ابزاره�اس ،)

( پي�اده س�ازی ف�از در ه�ای تس�ت Implementationک�د تکني�ک و )محصول در فاز تست و کنترل می باشد.

Page 23: مهندسی نرم افزار امن  (چرخه حيات امن) فاطمه احمدی آبکناری

23

امQQQنيت حيQQQات چرخQQQه Requirement(SDLمايکروسافت)

Engineering

Implementation

Analysis

Design

Postdelivery Maintenance

Code Scan and Code Review

Product TestTechnique

Threat Modeling

Page 24: مهندسی نرم افزار امن  (چرخه حيات امن) فاطمه احمدی آبکناری

24

Implementation Phase

Design Phase

فازهایSDL

مطالعات اوليه

آغاز پروژه

تعريف و بکارگيری روش های برتر طراحی

ارزيابی ريسک های مرتبط با محصول

تحليل ريسک

ايجاد ابزارها و مستندات امنيت

بکارگيری سياست های کدنويسی امن

بکارگيری سياست های تست امن

Security Push

مرور نهايی امنيت

طرح ريزی پاسخ های امنيتی

تحويل محصول

اجرای پاسخ های امنيتی

Page 25: مهندسی نرم افزار امن  (چرخه حيات امن) فاطمه احمدی آبکناری

25

TSP-Secure

TSP کل�ش ب�ه را چ�ارچوبی اف�زار( ن�رم تولي�د تيمی )فراين�د مجموع�ه ای از فراين�دها و مت�دها ب�رای فراين�د مهندس�ی ن�رم اف�زار در س�طح گ�روهی و ف�ردی ب�ه منط�ور دس�تيابی ب�ه ن�رم افزاره�ايی

( تعري�ف می KLOCب�ا تع�داد خطاه�ای کم�تری در ک�د )ب�ر حس�ب کند.

TSP extension

TSP - Secure

Goal: توليد نرم افزارهای

امن

Software Engineering Institute’s (SEI)

Page 26: مهندسی نرم افزار امن  (چرخه حيات امن) فاطمه احمدی آبکناری

26

TSP-Secure

TSP - Secure

با توجه به اينکه نرم افزار امن به صورت تصادفی توليد نمی- شود طرح های امنيتی

. در اين مرحله برنامه ريزی می شودبا توجه به اينکه امنيت و کيفيت ارتباط

نزديکی با يکديگر دارند به مقوله کيفيت در هريک از فازهای چرخه حيات توجه ويژه می

.شودبا توجه به اينکه افراد درگير در فرايند توليد

نرم افزار بايد با مقوله امنيت نرم افزار آشنا باشند آموزش کارکنان در راستای آشنا .کردن آنها با مفاهيم امنيت مورد توجه است

Page 27: مهندسی نرم افزار امن  (چرخه حيات امن) فاطمه احمدی آبکناری

27

TSP-Secure

TSP - Secure

که عموما توسط Project Launch در جلساتکارشناسان و مربيان واجد شرايط برگزار می شود تيم به يک توافق کلی بر موارد امنيتی کار نائل می شود، طرح های جزيی تر نيز

آماده شده و پشتيبانی مديريت اخذ می شود.

:طرح های جزيي تر شامل موارد زير استشناسايي ريسک های امنيتی، تعريف و مشخص سازی نيازمندی های امنيتی،

طراحی امن، پياده سازی امن، استفاده از ابزارهای تحليل و تست و تست فازی

Page 28: مهندسی نرم افزار امن  (چرخه حيات امن) فاطمه احمدی آبکناری

28

استانداردها و چارچوب های Systems Security Engineering Capability Maturity Modelامنيت نرم افزار

(SSE-CMM)

Trusted CMM/Trusted Software Methodology (T-CMM/TSM)

Capability Maturity Model(CMM)

Team Software Process (TSP)

Software Assurance Maturity Model (SAMM)

Software Security Framework (SSF)

Page 29: مهندسی نرم افزار امن  (چرخه حيات امن) فاطمه احمدی آبکناری

29

مدل های صالحيت کمال (CMMسيستم)

Capability Maturity Models CMM اندن�ال رس�ه کم�رای ب�ای الزم ب�ع از تالش ه�دل مرج�ک م�يي�ک محص�ول در ح�وزه مهندس�ی ن�رم اف�زار، مهندس�ی سيس�تم و کنن�ده تولي�د س�ازمانهای ک�ه ده�د می ارائ�ه ام�نيت مهندس�ی محص�ول می توانن�د از اين م�دل مرج�ع ب�ه عن�وان ي�ک معي�ار ب�رای مقايس�ه روش ه�ای ب�ه ک�ار گرفت�ه ش�ده خ�ود را ب�ا روش ه�ای ذک�ر

شده در اين مدل استفاده کنند. اين م�دل ب�ه ش�رح چگ�ونگی انج�ام فراين�دها ب�ه ص�ورت عملی و ک�اربردی نمی پ�ردازد بلک�ه ب�ر ش�رح وي�ژگی ه�ای فراين�دها تمرک�ز

دارد. ب�ه CMMتمرک�ز دس�تيابی منظ�ور ب�ه سيس�تم کم�ال ش�رح ب�ر

م�ديريت زمانبن�دی به�تر، م�ديريت کيفيت به�تر و ک�اهش ن�رخ خط�ا (defect .در نرم افزار است )

Page 30: مهندسی نرم افزار امن  (چرخه حيات امن) فاطمه احمدی آبکناری

30

مدل های صالحيت کمال سيستم (CMM)

CMM includes;

Capability Maturity Model Integration (CMMI)

Federal Aviation Administration integrated Capability Maturity Model

(FAA-iCMM)

Systems Security Engineering Capability Maturity Model

(SSE-CMM)

Security Addressing

×

×

Page 31: مهندسی نرم افزار امن  (چرخه حيات امن) فاطمه احمدی آبکناری

31

( خطا Defectمديريت Management(

تيم بايد پاسخ مديريت خطابرای سواالت زير را بيابد:

چه نوعی از خطاها منجر به آسيب پذيری های امنيتی می شوند؟

خطاها در کدام قسمت از چرخه حيات توسعه نرم افزار قابل اندازه گيری هستند؟

از چه روش ها و ابزارهايی برای اندازه گيری خطاها می توان استفاده نمود؟

چه ميزان خطا در هر مرحله قابل حذف کردن است؟

تعداد خطاهای باقيمانده پس از فرايند حذف خطاها چه ميزان برآورد می شود؟

Page 32: مهندسی نرم افزار امن  (چرخه حيات امن) فاطمه احمدی آبکناری

32

( ساخت همراه به Correctness byتصحيح Construction(

افزاره�ايی ن�رم توس�عه منظ�ور ب�ه فراين�دی متودول�وژی اين يکپارچ�ه و ب�ا ح�داقل نقص اس�ت ک�ه ب�ه ص�ورت وي�ژه ب�ه برط�رف س�اختن عي�وب کش�ف ش�ده در نزدي�ک ت�رين زم�ان ممکن ب�ه نقط�ه

زمانی کشف اهتمام می ورزد.

CorrectnessBy

Construction

Formal Specification languages like Z

SPARK (Extension of Ada)

Page 33: مهندسی نرم افزار امن  (چرخه حيات امن) فاطمه احمدی آبکناری

33

( ساخت همراه به Correctness byتصحيح Construction(

آگاهی از علل تست

تست به منظور ساختن نرم افزار صحيح

تست به منظور اثبات صحت )اشکال زدايي(نرم افزار)ارزيابی(

تست به عنوان دومين روش پر هزينه يافتن خطاهاستپرهزينه ترين راه آن است

که مشتريان خطاها را کشف کنند

برطرف ساختن خطاها قبل از

رسيدن به مرحله تست

نوشتن نرم افزارها به

منظور سهولت ارزيابی

اعمال تغييرات به صورت پله ای و مرحله به مرحله

کد نويسی به قسمی که ارزيابی آسان باشد )آماده

سازی مستندات(

Page 34: مهندسی نرم افزار امن  (چرخه حيات امن) فاطمه احمدی آبکناری

34

منا :Noopur Davis.“Secure Software Development Life Cycle Processes” .Retrieved from [1]بع

https://buildsecurityin.us-cert.gov/bsi/articles/knowledge/sdlc/326-BSI.html. Software  Engineering Institute. 2006-07-05; Updated (2012).

[2] The SANS Institute. “The Twenty most Critical Internet Security Vulnerabilities-The Expert Consensus” (2005).

[3] Mills, E. “Secure Software? Experts Say it’s no longer a Pipe Dream” CNET News, April 20, (2009).

[4] Redwine, S. T. & Davis, N. “Processes to Produce Secure Software. Improving Security Across the Software Development Lifecycle” (National Cyber security Partnership Taskforce Report), Appendix B. http://www.cyberpartnership.org/init-soft.html (2004).

[5] Paulk, M., Curtis, B., Chrissis, M. B. & Weber, C. “Capability Maturity Model for Software (Version 1.1)” (CMU/SEI-93-TR-024, ADA263403). Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, (1993).

[6] Fergal Glynn. “Software Development Life Cycle (SDLC)”. VERACODE official Web site. http://www.veracode.com/security/ software- development-lifecycle.

[7] “The Software Development Life Cycle (SDLC)”. Retrieved from: http://www.stylusinc .com/BI/ thought- leadership/it-outsourcing/the-software-development-life-cycle-sdlc/.

Page 35: مهندسی نرم افزار امن  (چرخه حيات امن) فاطمه احمدی آبکناری

35

Q & A