43
اسفند ماه1395 Control Flow Integrity (CFI) کنترل صحت جریان

Control Flow Integrity

Embed Size (px)

Citation preview

Page 1: Control Flow Integrity

1395ماه اسفند

Control Flow Integrity(CFI)

صحت جریان کنترل

Page 2: Control Flow Integrity

/Ahmadian.blog.ir|www.mmAhmadian.ir39|های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م

فهرست مطالب ارائه

مقدمهمعرفی صحت جریان کنترل

3

2

1

رویه اعمال

گیریجمع بندی و نتیجه8

عملیسازی پیاده 4

ارزیابی 5

مدل صوری6

ها و معرفی کارهای دیگرضعف7

Page 3: Control Flow Integrity

/Ahmadian.blog.ir|www.mmAhmadian.ir39|های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م

جایگاه مسئلهمقدمه

3

Page 4: Control Flow Integrity

/Ahmadian.blog.ir|www.mmAhmadian.ir39|های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م

های حافظهحمالت و آسیب پذیریمقدمه

های تخریب حافظهآسیب پذیری•

سرریز بافر در پشته •

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

مقدار عددیسرریز •

1بندیقالب های رشته•

2معلقاشاره گرهای •

1. Format String Vulnerabilities

2. Dangling Pointer Reference

3. Control-flow Hijack

4. Data-only Attack

حمالت تخریب حافظه•

تخریب کد•

3کنترلربایش جریان •

4ایدادهحمالت •

نشت اطالعات•

ممانعت از خدمات•

4

Page 5: Control Flow Integrity

/Ahmadian.blog.ir|www.mmAhmadian.ir39|های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م

طرح مسئلهمقدمه

قربانیسامانهگرفتناختیاردرامکان ربایش جریان کنترل:یکی از آثار حمالت تخریب حافظه•

قالب سازی:نمونه•

آن برنامه بدون تغییر و کامپایل مدلدد کلد من ل جریان اجرایی کنترل قالب سازی ، یک مفهوم برای به دست آوردن. ]12[است

14[می آیدآن به کد سفارشی شده ، به دست هدایت مددد و متوقف سازی فراخوانی تاب توسط[ .

تیدله پس ازآن ، قابلیت های اصلی تاب می توانلد اجراشلده و ن. با تزریق کد سفارشی ، هر عملیاتی را می توان اجرا نمود.]13[ شودمی تواند یا به سادگی برگشت داده شود و یا تغییر داده

5

Page 6: Control Flow Integrity

/Ahmadian.blog.ir|www.mmAhmadian.ir39|های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م

قالب سازی با دستور پرشطرح مسئلهمقدمه

ساده ترین روش قالب سازی•

نحوه تشخیص؟•

detour

trampoline

6

Page 7: Control Flow Integrity

/Ahmadian.blog.ir|www.mmAhmadian.ir39|های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م

Nopسازی با اضافه کردن قالب طرح مسئلهمقدمه

نحوه تشخیص؟•

7

Page 8: Control Flow Integrity

/Ahmadian.blog.ir|www.mmAhmadian.ir39|های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م

روش های قالب سازیطرح مسئلهمقدمه

قالب سازی با دستور پرش1

1Nopقالب سازی با اضافه کردن 2Push/Retnقالب سازی با 3قالب سازی با نقاط شناور4MMX/SSEقالب سازی با5قالب سازی با پرش غیر مستقیم6قالب سازی با دستور فراخوانی7

18آدرس خروجیجدول طریق وصله از 9ایکتابخانهاز طریق پروکسی توابع 10

ورودیوصله جدول آدرساز طریق

• [7] Berdajs, J., and Z. Bosnić. "Extending applications using an advanced

approach to dll injection and api hooking." Software: Practice and

Experience 40.7 (2010): 567-584.

• [12] w.fu,j.rang,r.zhao,y.zhang,and y.guo, “static detection of API-Calling

Behavior from malicious binary Executable ,”in computer and electrical

Engineering , ICCEE 2008 .International conference on ,pp.388-392, 2008.

• [13] Sikorski M, Honig A. Practical malware analysis: the hands-on guide

to dissecting malicious software. no starch press; 2012.

• [15] Wagner, M.E.: Behavior oriented detection of malicious code at run-time. Master’s thesis, Florida Institute of

Technology, 2004.

• [16] Willems, Carsten, Thorsten Holz, and Felix Freiling. "Toward automated dynamic malware analysis using cwsandbox."

IEEE Security and Privacy 5.2 (2007): 32-39.

8

Page 9: Control Flow Integrity

/Ahmadian.blog.ir|www.mmAhmadian.ir39|های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م

فهرست مطالب ارائه

مقدمهمعرفی صحت جریان کنترل

3

2

1

رویه اعمال

جمع بندی و نتیجه گیری8

پیاده سازی عملی 4

ارزیابی 5

مدل صوری6

ها و معرفی کارهای دیگرضعف7

Page 10: Control Flow Integrity

/Ahmadian.blog.ir|www.mmAhmadian.ir39|های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م

منابع مورد بررسیصحت جریان کنترل• [1] J. Criswell, et al. ,“KCoFI: Complete Control-Flow Integrity for Commodity Operating System Kernels,” in Proceedings of

the 35th IEEE Symposium on Security and Privacy (SP'14), May 2014.

• [2] E. Goktas , et al. “Out Of Control: Overcoming Control-Flow Integrity,” in Proceedings of the 35th IEEE Symposium on

Security and Privacy (SP'14), May 2014.

• [3] S. Vogl, , et al. “Dynamic Hooks: Hiding Control Flow Changes within Non-Control Data” in Proceedings of the 23rd

USENIX Security Symposium, Aug 2014.

• [4] C. Tice, , et al. “Enforcing Forward-Edge Control-Flow Integrity in GCC & LLVM,” in Proceedings of the 23rd USENIX

Security Symposium, Aug 2014.

• [5] L. Davi, , et al. “Stitching the Gadgets: On the Ineffectiveness of Coarse-Grained Control-Flow Integrity Protection,” in

Proceedings of the 23rd USENIX Security Symposium, Aug 2014.

• [6] C. Zhang, , et al. Practical Control Flow Integrity & Randomization for Binary Executables,” in Proceedings of the 34th

IEEE Symposium on Security and Privacy (SP'13), May 2013.

• [8] M. Abadi, , et al. “Control-Flow Integrity: Principles, Implementations, and Applications,” ACM Transactions on

Information and System Security, vol. 13, no. 1, pp. 4:1-4:40, Oct 2009

• [7] Berdajs, J., and Z. Bosnić. "Extending applications using an advanced approach to dll injection and api hooking."

Software: Practice and Experience 40.7 (2010): 567-584.

10

Page 11: Control Flow Integrity

/Ahmadian.blog.ir|www.mmAhmadian.ir39|های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م

منابع اصلیصحت جریان کنترل

• [9] M. Abadi, et al. “Control Flow Integrity: Principles, Implementations, and Applications,” in proceedings of

the 12th ACM conference on Computer and Communications Security (CCS'05), pp. 340-353, Nov 2005.

• [10] M. Abadi, et al. “A Theory of Secure Control Flow,” In Formal

Methods and Software Engineering, Springer Berlin Heidelberg, pp.

111- 124, 2005.

• [8] M. Abadi, et al. “Control-Flow Integrity: Principles,

Implementations, and Applications,” ACM Transactions on

Information and System Security, vol. 13, no. 1, pp. 4:1-4:40, Oct

2009

Dr. Martin AbadiProfessor of ComputerScience,University of California,Santa Cruz, Microsoft Research

And Google.

• [3] S. Vogl, , et al. “Dynamic Hooks: Hiding Control Flow Changes within Non-Control Data” in Proceedings of

the 23rd USENIX Security Symposium, Aug 2014.

• [7] Berdajs, J., and Z. Bosnić. "Extending applications using an advanced approach to dll injection and api

hooking." Software: Practice and Experience 40.7 (2010): 567-584.

11

Page 12: Control Flow Integrity

/Ahmadian.blog.ir|www.mmAhmadian.ir39|های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م

Abadi’s CFIوضعیت موجود

.در برابر حمالت تخریب حافظهمختلفیتا کنون راهکارهای حفاظتی 1997از سال•

:معایب•

حوزه محدودپوشش •

مدل حمله واق بینانهعدم تعریف •

توسط مهاجمین آنهم به سهولتدور زدن راهکارها •

مفروضات پنهانو استتنتاج غیرصوری تکیه بر •

:راهکار باید•

بدون ابهام، واضح و قاب فهم•

در برابر مهاجم قدرتمندضمانت قوی •

(کدهای موجود)کدها قدیمی و کدهای جدید قاب کاربرد برای •

قاب ق ولعملکرد و کارایی •

Abadiهدف

12

Page 13: Control Flow Integrity

/Ahmadian.blog.ir|www.mmAhmadian.ir39|های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م

Abadi’s CFI تعریفCFI

•CFI نترل گراف جریان ک( پیش از اجرا مشخص شده)صرفا یکی از مسیرها کند تا میبرنامه را ملزم اجرایخط مشی امنیتی است که.برنامه را دن ال کند

“ The CFI security policy dictates that software execution must follow a path of a Control-Flow Graph

(CFG) determined ahead of time. ”

•CFG آیدبدست می« تحلی ایستای کد باینری»در این کار به کمک.

13

Page 14: Control Flow Integrity

/Ahmadian.blog.ir|www.mmAhmadian.ir39|های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م

Abadi’s CFI تعریفCFG

:1پایهقطعه •

استمستقیم و بدون جهش طی این دن اله در کنترلجریان است که دن اله پیوسته از دستورالعم ها یک.

نداردهیچ پرشی مگر در انتهای دن الهکه هادستورالعم ای ازدن الهع ارت دیگر، به.

1. Basic Block (BB)

BB 1

BB 2

:ایستاگراف جریان کنترل •

بصورتبه گرافی جهتدارG(V,E) که است:

گرهvi ∈ V است، بطوریکهvi استاز کد برنامه قطعه پایه یک.

ال ی(vi , vj ) ∈ E قطعهامکان انتقال کنترل از ، اگر استvi قطعه بهvj باشدداشته وجود اجرا زمان در.

14

Page 15: Control Flow Integrity

/Ahmadian.blog.ir|www.mmAhmadian.ir39|های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م

Abadi’s CFIمدل حمله و مفروضات

:مهاجمهای قابلیت•(بخش داده، پشته و هیپ)هر زماندر در حافظه ای دادهمقادیر کلیه قادر به تغییر •

(و ث ات های برنامه ها دیگرIPبه جز . )هاتغییر مقادیر غالب ث اتقادر به •

:مفروضات•غیرقاب تغییرکد •

داده های غیرقاب اجرا•

شناسه های یکتا•

15

Page 16: Control Flow Integrity

/Ahmadian.blog.ir|www.mmAhmadian.ir39|های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م

فهرست مطالب ارائه

مقدمهمعرفی صحت جریان کنترل

3

2

1

رویه اعمال

جمع بندی و نتیجه گیری8

پیاده سازی عملی 4

ارزیابی 5

مدل صوری6

ها و معرفی کارهای دیگرضعف7

Page 17: Control Flow Integrity

/Ahmadian.blog.ir|www.mmAhmadian.ir39|های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م

Abadi’s CFIرویه اعمال

CFGبرمبنای انتقال کنترل مقصداعتبارسنجی: رویه •

میگیردصور تمقصد ثابت یا ایستا ، انتقال جریان کنترل به یک بسیاری از مواقعدر.

انجام گیردایستااعتبارسنجی مقصد می تواند بصورت.

فراخوانی ساده توابع تعریف شده در کد برنامه: مثال

می گرددو معلوم اجرا محاسبه زمان مقصد جریان کنترل در در برخی موارد .

پذیردانجام می بایست در زمان اجرا در این شرایط، اعتبارسنجی.

می شوندفراخوانی اشاره گر توابع، که در زمان اجرا مقداردهی : مثال.

جدیدسه دستور نیاز به

17

Page 18: Control Flow Integrity

/Ahmadian.blog.ir|www.mmAhmadian.ir39|های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م

Abadi’s CFIدستورهای جدیدرویه اعمال

•label ID:

•call ID, DstReg:

•ret ID:

.استتنها برای برچسب گزاری که (NOP)یک دستور بی اثر •

.می کنددرج بخش از حافظه کد در همان را IDمعادل مقداربیت یک رشته و •

منتقو DstRegثبوات محتووایکه کنترل را به کد موجود در آدرس فراخوانییک دستور .شودآغاز IDبرچسبشرطی که آن کد با می کند به

؛با دستور فراخوانی فوقبازگشت متناظردستور •

برچسوبشده توسط آدرس بازگشت بازمی گرداند که آن کود بوا اشاره کدبه به شر طی یعنی کنترل را •IDآغاز شود.

18

Page 19: Control Flow Integrity

/Ahmadian.blog.ir|www.mmAhmadian.ir39|های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م

Abadi’s CFIتوضیحات تکمیلیرویه اعمال

.آیدبدست میCFGبا تحلی ایستا کدباینری -1

.آیدممکن بدست میهای پویا فهرست همه مقاصد انتقالبرای •

Labelممکن، یک هر مقصد در ابتدای -2 ID گردددرج میمنحصر به فرد.

.شوددرج مییکسانیLabel IDهستند مبدا مشترک دارای CFGبرای مقصدهایی که طبق •

.گردددرج می( ret IDیاcall ID, DstReg)عملیات بررسی پویا ، یک هر مبداءدر -3

.دارندمطابقتو برچسب مقصد مبداء کند برچسب تضمین : هدف •

19

Page 20: Control Flow Integrity

/Ahmadian.blog.ir|www.mmAhmadian.ir39|های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م

Abadi’s CFIمثالرویه اعمال

20

Page 21: Control Flow Integrity

/Ahmadian.blog.ir|www.mmAhmadian.ir39|های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م

فهرست مطالب ارائه

مقدمهمعرفی صحت جریان کنترل

3

2

1

رویه اعمال

جمع بندی و نتیجه گیری8

پیاده سازی عملی 4

ارزیابی 5

مدل صوری6

ها و معرفی کارهای دیگرضعف7

Page 22: Control Flow Integrity

/Ahmadian.blog.ir|www.mmAhmadian.ir39|های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م

Abadi’s CFIپیاده سازی عملی

.استپذیر امکان 2کدروش تدهیز یا 1باینریبازنویسی کد با استفاده از CFIپیاده سازی •

1. binary rewriting

2. Code Instrumentation

استفاده ازVulcan]17-18[

عملیات تحلی و استخراجCFG

کد ماشینتجهیز

:روشاین سازی پیادهپیچیدگی اصلی •

CFGصحیح استخراج •

.استپویاانتقال جریان مبداها و مقصدهای همه شناسایی درست•

22

Page 23: Control Flow Integrity

/Ahmadian.blog.ir|www.mmAhmadian.ir39|های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م

Abadi’s CFI1مثال پیاده سازی عملی

تابعگر اشارهفراخوانی تجهیز کد از نمونه ای •

دستوراستفاده ازprefetchnta [ID] به عنوانlabel ID

23

Page 24: Control Flow Integrity

/Ahmadian.blog.ir|www.mmAhmadian.ir39|های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م

Abadi’s CFI2مثال پیاده سازی عملی

کد بازگشت از تابعتجهیز از از نمونه ای •

24

Page 25: Control Flow Integrity

/Ahmadian.blog.ir|www.mmAhmadian.ir39|های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م

فهرست مطالب ارائه

مقدمهمعرفی صحت جریان کنترل

3

2

1

رویه اعمال

جمع بندی و نتیجه گیری8

پیاده سازی عملی 4

ارزیابی 5

مدل صوری6

ها و معرفی کارهای دیگرضعف7

Page 26: Control Flow Integrity

/Ahmadian.blog.ir|www.mmAhmadian.ir39|های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م

Abadi’s CFIارزیابی هزینه سربار

:آزمایشمحیط •

• Windows XP SP2 (Safe Mode)

• Intel Pentium-4 (x86) 1.8 GHz

• 512 MB RAM

• Microsoft Visual C++ 7.1 (using full optimizations )

• SPEC1-2000 benchmarks

برای هر باینریثانیه10کمتر از : CFIتدهیزو CFGاستخراج زمان•

متوسطبطور حجمافزایش CFI :%8تدهیزباینری در اثر حدم افزایش •

1. Standard Performance Evaluation Corporation

26

Page 27: Control Flow Integrity

/Ahmadian.blog.ir|www.mmAhmadian.ir39|های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م

Abadi’s CFIسربار زمان اجراارزیابی هزینه سربار

16%: میانگین هزینه سربار تحمیلی

27

Page 28: Control Flow Integrity

/Ahmadian.blog.ir|www.mmAhmadian.ir39|های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م

Abadi’s CFIارزیابی امنیتی

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

آسیب پذیریJPEG کتابخانه به مربوطGDI+

زبان به آسیب پذیر برنامه ساده یکC میانه یک آرایهمحاسبه برای

از سرریز بافرهای پویاتایی 18مجموعه

28

Page 29: Control Flow Integrity

/Ahmadian.blog.ir|www.mmAhmadian.ir39|های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م

فهرست مطالب ارائه

مقدمهمعرفی صحت جریان کنترل

3

2

1

رویه اعمال

جمع بندی و نتیجه گیری8

پیاده سازی عملی 4

ارزیابی 5

مدل صوری6

ها و معرفی کارهای دیگرضعف7

Page 30: Control Flow Integrity

/Ahmadian.blog.ir|www.mmAhmadian.ir39|های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م

Abadi’s CFIمدل صوری

:شام 1اجرادر این مدل ماشین، یک حالت •

1. execution state

Mc :حافظه کد

Md :حافظه داده

R :مقادیر ثبات ها

pc :شمارنده برنامه.می گرددتوصیف ماشین دستورالعم 9معنای عملیاتی بر مبنای همین مدل، •

• If Mc(pc) contains the encoding of add rd,rs,rt , and the current state has code memory Mc,

data memory Md, program counter value pc, and register values R, and if pc + 1 is within

the domain of Mc, then in the next state the code memory and data memory are still Mc and

Md, respectively, pc is incremented, and R is updated so that it maps rd to R(rs) + R(rt)

add rd,rs,rtمعنای عملیاتی دستورالعم : مثال•

:استقالب انتقال حالت ماشین بدین صورت در این توضیح •

30

Page 31: Control Flow Integrity

/Ahmadian.blog.ir|www.mmAhmadian.ir39|های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م

Abadi’s CFIمدل صوری

:می گرددماشین انتقال حالت نیز قاعده ای تعریف می شود که متناسب با قابلیت های آن موجب مهاجمبرای •

1. attack execution

. را دستکاری کندو مقادیر ثباتها وضعیت حافظه که قادر است است 1اجرای حملهبه معنای ⟶aرابطه •

تضومین کوه اسوت برناموهدقیقی در کود های بررسیکه معنای آن وجود گردد میبیان I(Mc)بصورت تجهیزشده برنامه یک •. استشدهپیش تعریف از CFGجریان کنترل مطابق روند کنندمی

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

31

Page 32: Control Flow Integrity

/Ahmadian.blog.ir|www.mmAhmadian.ir39|های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م

Abadi’s CFIمدل پیشرفته ترمدل صوری

1. attack execution

32

Page 33: Control Flow Integrity

/Ahmadian.blog.ir|www.mmAhmadian.ir39|های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م

فهرست مطالب ارائه

مقدمهمعرفی صحت جریان کنترل

3

2

1

رویه اعمال

جمع بندی و نتیجه گیری8

پیاده سازی عملی 4

ارزیابی 5

مدل صوری6

ها و معرفی کارهای دیگرضعف7

Page 34: Control Flow Integrity

/Ahmadian.blog.ir|www.mmAhmadian.ir39|های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م

ها و معرفی کارهای دیگرضعف

•CFI (جریان کنترلربایش تنها)در برابر حمالت تخریب حافظه کام عدم حفاظت

راهکار :Software Fault Isolation(SFI)

، (مله حافظوهاز ج)منابع سیستم به افزار ها های نرمدسترسیکلیه کند میکه تضمین افزاری مکانیزم نرم.افزار باشدنرمدرون محدوده متعلق به آن

• [20] R. Wahbe, S. Lucco, T.E. Anderson, S.L. Graham, “Efficient Software-Based Fault Isolation,” ACM SIGOPS Operating

Systems Review, vol. 27, no. 5, pp. 203-216, ACM, 1993.

• [21] S. McCamant, G. Morrisett, “Evaluating SFI for a CISC Architecture,” in Proceedings of the 15th USENIX Security

Symposium, pp. 209-224, Aug 2006

• [22] M. Castro, M. Costa, J.P. Martin, M. Peinado, P. Akritidis, A. Donnelly, P. Barham, R. Black, “Fast Byte-Granularity

Software Fault Isolation,” in Proceedings of the 21st ACM Symposium on Operating Systems Principles (SOSP'09), pp. 115-

128, Oct 2009.

• [23] Y. Mao, H. Chen, D. Zhou, X. Wang, N. Zeldovich, M.F. Kaashoek, “Software Fault Isolation with API Integrity and Multi-

principal Modules,” in Proceedings of the 23rd ACM Symposium on Operating Systems Principles (SOSP'11), pp. 115-128, Oct

2011

34

Page 35: Control Flow Integrity

/Ahmadian.blog.ir|www.mmAhmadian.ir39|های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م

ها و معرفی کارهای دیگرضعف

•CFI (جریان کنترلربایش تنها)در برابر حمالت تخریب حافظه کام عدم حفاظت

راهکار :Software Memory Access Control(SMAC)]19[

بر دستورالعم هاریزدانگی بیشتر کنترل دسترسی با •

برای دستورالعم های مختلفانواع بررسی دسترسی هادرج امکان •

در حافظهبخش های تفکیک شده و حفاظت شده ایجاد •

NWCو NXDرفع نیازمندی به پیش فرض های امکان فراهم سازی •

راهکار :KCoFI: Complete Control-Flow Integrity for Commodity Operating System

Kernels-2014]1[

35

Page 36: Control Flow Integrity

/Ahmadian.blog.ir|www.mmAhmadian.ir39|های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م

ها و معرفی کارهای دیگرضعف

اجراغیرقاب داده :باشندفرضیات هر روش می توانند منشاء نقاط ضعف •

عدم کارایی درJIT compilation

:، منشاء اشکال استبا مبدأ مشترکهای قطعههمسان پنداری رویکرد •

ب مشابه ؟های دیگر با برچسگردد و نه به قطعهتوان تضمین کرد جریان کنترل به قطعه مورد نظر منتق میچطور می: مشک

عدم حساسیت به زمینهها به واسطه عدم تمایز قطعه: ریشه

راهکار :Context Sensitive CFG AnalysisوProtected Shadow Call Stack

راهکار :SMAC]19[

36

Page 37: Control Flow Integrity

/Ahmadian.blog.ir|www.mmAhmadian.ir39|های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م

ها و معرفی کارهای دیگرضعف

]2،3،4،5[هزینه سربار باال•

راهکار :Out Of Control: Overcoming Control-Flo Integrity-2014]2[

+ هزینه سربار بهتر با ضعیف کردنCFI

+ مقاومت در برابر حمالتreturn-to-libc

- ضعف در برابر حمالتROP

راهکار :Enforcing Forward-Edge Control-Flow Integrity in GCC & LLVM-2014]4[

+ هزینه سربار بهتر با ضعیف کردنCFI

راهکار در سطح کامپایلر

37

Page 38: Control Flow Integrity

/Ahmadian.blog.ir|www.mmAhmadian.ir39|های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م

EMETابزار

Microsoft's Enhanced Mitigation Experience Toolkit

Page 39: Control Flow Integrity

/Ahmadian.blog.ir|www.mmAhmadian.ir39|های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م

فهرست مطالب ارائه

مقدمهمعرفی صحت جریان کنترل

3

2

1

رویه اعمال

جمع بندی و نتیجه گیری8

پیاده سازی عملی 4

ارزیابی 5

مدل صوری6

ها و معرفی کارهای دیگرضعف7

Page 40: Control Flow Integrity

/Ahmadian.blog.ir|www.mmAhmadian.ir39|های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م

CFIهای ویژگی

برابر مهاجم قدرتمندحفاظت از جریان کنترل در •

(رنامهصرفا باینری ب)نویسیمستق از زبان برنامه قاب کاربرد گسترده•

توصیف صوری و در نتیده قاب اطمینان•توصیف صوری مفاهیم و مفروضات

از جریان کنترلتوصیف صوری حفاظت

هنوز باالاما بهتر از کارهای پیشین هزینه سربار به مراتب •

!در مرحله تحقیقاتیهنوز •

39

Page 41: Control Flow Integrity

/Ahmadian.blog.ir|www.mmAhmadian.ir39|های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م

منابع

1. J. Criswell, et al. ,“KCoFI: Complete Control-Flow Integrity for Commodity Operating System Kernels,” in Proceedings of the 35th IEEE Symposium on Security and Privacy (SP'14), May 2014.

2. E. Goktas , et al. “Out Of Control: Overcoming Control-Flow Integrity,” in Proceedings of the 35th IEEE Symposium on Security and Privacy (SP'14), May 2014.

3. S. Vogl, , et al. “Dynamic Hooks: Hiding Control Flow Changes within Non-Control Data” in Proceedings of the 23rd USENIX Security Symposium, Aug 2014.

4. C. Tice, , et al. “Enforcing Forward-Edge Control-Flow Integrity in GCC & LLVM,” in Proceedings of the 23rd USENIX Security Symposium, Aug 2014.5. L. Davi, , et al. “Stitching the Gadgets: On the Ineffectiveness of Coarse-Grained Control-Flow Integrity Protection,” in Proceedings of the 23rd

USENIX Security Symposium, Aug 2014.6. C. Zhang, , et al. Practical Control Flow Integrity & Randomization for Binary Executables,” in Proceedings of the 34th IEEE Symposium on Security

and Privacy (SP'13), May 2013.7. Berdajs, J., and Z. Bosnić. "Extending applications using an advanced approach to dll injection and api hooking." Software: Practice and Experience

40.7 (2010): 567-584.8. M. Abadi, , et al. “Control-Flow Integrity: Principles, Implementations, and Applications,” ACM Transactions on Information and System Security, vol.

13, no. 1, pp. 4:1-4:40, Oct 20099. M. Abadi, et al. “Control Flow Integrity: Principles, Implementations, and Applications,” in proceedings of the 12th ACM conference on Computer

and Communications Security (CCS'05), pp. 340-353, Nov 2005.10. M. Abadi, et al. “A Theory of Secure Control Flow,” In Formal Methods and Software Engineering, Springer Berlin Heidelberg, pp. 111- 124, 2005.11. Shostack, Adam. Threat modeling: Designing for security. John Wiley & Sons, 2014.12. w.fu,j.rang,r.zhao,y.zhang,and y.guo, “static detection of API-Calling Behavior from malicious binary Executable ,”in computer and electrical

Engineering , ICCEE 2008 .International conference on ,pp.388-392, 2008.13. Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software by Michael Sikorski and Andrew Honig -2012

1393یز جریان کنترل و انزوای خرابی نرم افزار ، سید محمد غفاریان،آزمایشگاه طراحی و تحلی سیستمهای امن،دانشگاه صنعتی امیرکبیر تهران،پایصحت *

Page 42: Control Flow Integrity

/Ahmadian.blog.ir|www.mmAhmadian.ir39|های نرم افزاریامنیت سیستم|صحت جریان کنترل|مهدی احمدیان . م

منابعکاظم. ملیکنفرانسشمینشآنها،پویایرفتاربرمبتنیبدافزارهامخربرفتارهایهوشمندتشخیصزارع،محمدابراهیموشیرازیحسینحسینی؛سیدمجتبیمیثم؛زاده،41

1391بهشتی،شهیددانشگاهکامپیوتروبرقدانشکدهایران،کنترلوفرماندهیعلمیانجمنتهران،ایران،کنترلوفرماندهیعلمیانجمن

15. Wagner, M.E.: Behavior oriented detection of malicious code at run-time. Master’s thesis, Florida Institute of Technology,2004.16. Willems, Carsten, Thorsten Holz, and Felix Freiling. "Toward automated dynamic malware analysis using cwsandbox." IEEE Security and

Privacy 5.2 (2007): 32-39.

17. Edwards, Andrew, Hoi Vo, and Amitabh Srivastava.“Vulcan: Binary Transformation in a Distributed Environment,” Technical Report, MSR-TR-2001-50, Microsoft Research, Apr. 20, 2001

18. Nethercote, N., 2004. Dynamic binary analysis and instrumentation (No. UCAM-CL-TR-606). University of Cambridge, ComputerLaboratory.

19. Microsoft Corporation, (2005). Software memory access control. US 7337291 B2

20. R. Wahbe, S. Lucco, T.E. Anderson, S.L. Graham, “Efficient Software-Based Fault Isolation,” ACM SIGOPS Operating Systems Review, vol.27, no. 5, pp. 203-216, ACM, 1993.

21. S. McCamant, G. Morrisett, “Evaluating SFI for a CISC Architecture,” in Proceedings of the 15th USENIX Security Symposium, pp. 209-224,Aug 2006

22. M. Castro, M. Costa, J.P. Martin, M. Peinado, P. Akritidis, A. Donnelly, P. Barham, R. Black, “Fast Byte-Granularity Software FaultIsolation,” in Proceedings of the 21st ACM Symposium on Operating Systems Principles (SOSP'09), pp. 115-128, Oct 2009.

23. Y. Mao, H. Chen, D. Zhou, X. Wang, N. Zeldovich, M.F. Kaashoek, “Software Fault Isolation with API Integrity and Multi-principalModules,” in Proceedings of the 23rd ACM Symposium on Operating Systems Principles (SOSP'11), pp. 115-128, Oct 2011

Page 43: Control Flow Integrity

The only truly secure system is one that is powered off, cast in a block of concrete and sealed in a lead-lined room with armed guards.

Gene Spafford

احمدیانمحمد مهدی www.mmAhmadian.ir ...شماتوجهحسنازتشکربا