国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

隨機(jī)化技術(shù)綜述

2017-03-09 09:26何紹勇尚苗星蔄羽佳
網(wǎng)絡(luò)安全技術(shù)與應(yīng)用 2017年4期

◆何紹勇 李 偉 尚苗星 蔄羽佳

隨機(jī)化技術(shù)綜述

◆何紹勇 李 偉 尚苗星 蔄羽佳

隨著計算機(jī)技術(shù)的飛速發(fā)展,系統(tǒng)安全問題日益嚴(yán)峻。隨機(jī)化技術(shù)是應(yīng)對安全威脅的一種主動防御手段,能夠有效地保護(hù)系統(tǒng)和程序。隨機(jī)化技術(shù)通過將系統(tǒng)或程序進(jìn)行隨機(jī)化轉(zhuǎn)換,能夠隨機(jī)地增加系統(tǒng)異構(gòu)特征,進(jìn)而增加攻擊的代價。本文根據(jù)隨機(jī)化技術(shù)的實現(xiàn)原理,將目前主流的隨機(jī)化技術(shù)進(jìn)行分類,并對各類方法的思路和局限做出分析,最后總結(jié)隨機(jī)化技術(shù)存在的問題,并對未來可能的發(fā)展方向給出思考。

信息系統(tǒng)安全;隨機(jī)化技術(shù)

0 引言

由于計算機(jī)技術(shù)的不斷發(fā)展以及互聯(lián)網(wǎng)的廣泛應(yīng)用,計算機(jī)系統(tǒng)越來越復(fù)雜,面臨的安全威脅層出不窮。惡意的攻擊者能夠利用系統(tǒng)的同構(gòu)性,在本地搭建模擬環(huán)境探測目標(biāo)對象可能存在的安全隱患,針對測試的結(jié)果在真實的目標(biāo)環(huán)境中實施惡意的行為。

安全人員為了增強(qiáng)系統(tǒng)的安全性,提出了多種對抗惡意攻擊的手段,可以分為主動和被動兩種類型。目前大多數(shù)安全工具如殺毒軟件等通常根據(jù)檢測目標(biāo)是否存在惡意特征來判斷系統(tǒng)的安全性,需要安全人員根據(jù)上報與檢測情況不斷更新這些惡意特征,因此惡意特征的檢測始終滯后于惡意行為。還有一種主動防御安全保護(hù)思路,即通過增強(qiáng)系統(tǒng)或程序自身的防御能力,主動防御惡意行為,并且對未知的安全威脅有潛在的防御能力。主動防御的方法重點在于增加系統(tǒng)的多樣性,使得對外提供相同功能的系統(tǒng)具有不同的內(nèi)部表現(xiàn),導(dǎo)致攻擊者無法模擬目標(biāo)機(jī)器實際的系統(tǒng)環(huán)境,從而極大地增加了攻擊者的時間和精力成本。此外,由于系統(tǒng)的多樣性,在一臺機(jī)器上攻擊成功未必能夠在另一目標(biāo)上同樣成功,因此能夠有效地控制攻擊所能影響的范圍。

隨機(jī)化技術(shù)[1,2]是一種增加系統(tǒng)多樣性的主動防御方法。通過將目標(biāo)進(jìn)行隨機(jī)化的等價轉(zhuǎn)化,使系統(tǒng)的某些特征發(fā)生隨機(jī)的改變,但是原有功能保持不變,從而增加系統(tǒng)的特征,增加攻擊者分析與測試的難度,達(dá)到保護(hù)的效果。

根據(jù)隨機(jī)化的對象不同,可以分為指令隨機(jī)化、地址空間隨機(jī)化、數(shù)據(jù)隨機(jī)化、系統(tǒng)調(diào)用隨機(jī)化[3-6]等。目前的隨機(jī)化技術(shù)大多采用了其中一種或幾種方式,在一個或多個轉(zhuǎn)化階段對系統(tǒng)進(jìn)行隨機(jī)化。下面介紹這幾種隨機(jī)化技術(shù)的原理與研究現(xiàn)狀。

1 指令隨機(jī)化

指令集隨機(jī)化[7]技術(shù)通過將程序中的指令按照一定的隨機(jī)規(guī)則隨機(jī)地變換,外部的惡意代碼解密后得到錯誤或無效的機(jī)器指令,無法按照變換后的指令集被機(jī)器識別,從而實現(xiàn)系統(tǒng)安全防御。該隨機(jī)化方法主要針對代碼注入類型的攻擊,注入型攻擊向系統(tǒng)或程序中注入外部的惡意代碼,這些代碼根據(jù)攻擊目標(biāo)的機(jī)器所使用的指令集編寫。在未經(jīng)保護(hù)的情況下,一旦控制流指向這些惡意代碼,系統(tǒng)則將執(zhí)行惡意行為。如果系統(tǒng)經(jīng)過指令集隨機(jī)化變換,攻擊者無法獲知該目標(biāo)的指令集,注入的惡意代碼無法按照該機(jī)器的指令集正確解碼,從而無法執(zhí)行惡意行為導(dǎo)致攻擊失敗。

文獻(xiàn)[8]提出一種軟件動態(tài)翻譯技術(shù)對指令表示進(jìn)行隨機(jī)的加密變換。程序在輕量級虛擬機(jī)中執(zhí)行,執(zhí)行前將程序按照一定的大小分塊加密,并為指令分配標(biāo)簽。加密的密鑰在每次加載時隨機(jī)生成并由虛擬機(jī)保管,被加密的程序無法訪問該密鑰。執(zhí)行時,根據(jù)執(zhí)行流程,虛擬機(jī)解密需要執(zhí)行的下一條指令所在的加密塊,保證程序正常執(zhí)行。被解密的代碼塊暫時以緩存的方式保存,減少大量的重復(fù)解密工作,提高執(zhí)行效率。如果發(fā)現(xiàn)指令的標(biāo)簽不匹配,可以判定其發(fā)生了指令注入。文獻(xiàn)[9]提出了隨機(jī)指令集仿真技術(shù)通過二進(jìn)制翻譯器實現(xiàn)指令集轉(zhuǎn)化。程序加載時,使用隨機(jī)的密鑰對可執(zhí)行代碼進(jìn)行加密,在執(zhí)行時,通過二進(jìn)制翻譯器完成解密工作。注入的代碼經(jīng)過隨機(jī)密鑰解密后轉(zhuǎn)化為不可預(yù)知的指令序列,無法執(zhí)行原有的惡意行為。

指令集隨機(jī)化技術(shù)雖然能夠有效阻止代碼注入型攻擊,但是存在一定的問題。例如,對于外部注入的指令能夠有效防御,但是對如 return-to-lib類型的攻擊沒有效果。此外,指令集的隨機(jī)化與恢復(fù)需要系統(tǒng)的支持,程序的運(yùn)行需要借助動態(tài)的二進(jìn)制翻譯環(huán)境或者虛擬機(jī),執(zhí)行性能受到較大影響。

2 系統(tǒng)調(diào)用隨機(jī)化

指令集隨機(jī)化技術(shù)通過對程序的指令進(jìn)行隨機(jī)化轉(zhuǎn)化,外部注入的惡意代碼經(jīng)過解密轉(zhuǎn)化為未知的錯誤指令會導(dǎo)致攻擊失敗。然而如果攻擊者的跳轉(zhuǎn)目標(biāo)并非外部注入的代碼,而是系統(tǒng)自帶的庫函數(shù),該方法無法產(chǎn)生防御效果。系統(tǒng)調(diào)用隨機(jī)化[10,11]則是將隨機(jī)化的變化范圍擴(kuò)展至系統(tǒng)調(diào)用相關(guān)的庫函數(shù),對系統(tǒng)調(diào)用接口、庫函數(shù)入口地址進(jìn)行隨機(jī)化,增加系統(tǒng)自身的異構(gòu)性,從而增加了攻擊的難度。

系統(tǒng)調(diào)用隨機(jī)化能夠防御跳轉(zhuǎn)至庫函數(shù)或系統(tǒng)調(diào)用的代碼的攻擊,也存在一些不足。對系統(tǒng)調(diào)用進(jìn)行隨機(jī)化需要系統(tǒng)的支持,實現(xiàn)較為復(fù)雜;且隨機(jī)化的范圍有限,容易通過暴力猜測得到真正的地址。

3 數(shù)據(jù)隨機(jī)化

數(shù)據(jù)隨機(jī)化[12-14]技術(shù)對數(shù)據(jù)對象隨機(jī)化,通過對程序中的數(shù)據(jù)對象進(jìn)行隨機(jī)加密,運(yùn)行時對這些數(shù)據(jù)解密,達(dá)到保護(hù)的效果。數(shù)據(jù)隨機(jī)化主要針對那些利用函數(shù)指針或者返回地址的攻擊。當(dāng)程序使用到注入的數(shù)據(jù)時,使用密鑰對數(shù)據(jù)進(jìn)行解密。由于注入的數(shù)據(jù)沒有經(jīng)過隨機(jī)化加密,解密得到非預(yù)期的值,導(dǎo)致攻擊失效。

目前的數(shù)據(jù)隨機(jī)化工作主要有文獻(xiàn)[12-14]。PointGuard[12]是數(shù)據(jù)隨機(jī)化技術(shù)的初步實現(xiàn),首先識別程序中的指針對象,使用隨機(jī)密鑰將這些指針對象保護(hù)起來。當(dāng)使用指針變量時,再進(jìn)行解密。如果該指針是由外部注入的,解密后得到的并不是攻擊者預(yù)期的地址,從而不會按照攻擊者的意圖執(zhí)行。文獻(xiàn)[13,14]對PointGuard技術(shù)進(jìn)一步擴(kuò)展,隨機(jī)化的對象不僅僅局限于指針,程序中所有的數(shù)據(jù)都可以進(jìn)行隨機(jī)化,增加了保護(hù)的范圍。文獻(xiàn)[13]實現(xiàn)的是源--源的隨機(jī)化工具。利用異或操作將程序中的數(shù)據(jù)隨機(jī)化,生成經(jīng)過隨機(jī)化轉(zhuǎn)化的源碼。而文獻(xiàn)[14]則是在編譯的中間階段完成加密解密指令的插樁,生成經(jīng)過隨機(jī)化保護(hù)的可執(zhí)行程序。并對庫函數(shù)與系統(tǒng)調(diào)用進(jìn)行了隨機(jī)化封裝。

但是數(shù)據(jù)隨機(jī)化技術(shù)也存在問題。隨機(jī)化過程需要程序源碼,沒有源碼則無法實現(xiàn)數(shù)據(jù)隨機(jī)化的轉(zhuǎn)化。

4 地址隨機(jī)化

地址隨機(jī)化[15]通過隨機(jī)改變內(nèi)存中代碼、堆棧、系統(tǒng)函數(shù)等位置的布局,對抗借助控制流跳轉(zhuǎn)劫持控制流的攻擊方式,攻擊者無法定位實際的內(nèi)存地址,跳轉(zhuǎn)至未知區(qū)域,導(dǎo)致攻擊失敗。該技術(shù)目前已經(jīng)在主流的操作系統(tǒng)如Windows、Linux、Mac OS X、Android等實現(xiàn)。

Linux Pax項目團(tuán)隊于2001年發(fā)布的系統(tǒng)率先實現(xiàn)了地址空間隨機(jī)化技術(shù),通過在程序運(yùn)行過程中動態(tài)地將部分偏移地址隨機(jī)化,攻擊者難以定位函數(shù)、堆棧以及內(nèi)核空間的相關(guān)地址,具有較好的保護(hù)效果。

Kil等人提出地址空間布局仿真[16]。在用戶層對二進(jìn)制文件進(jìn)行處理,將代碼段和數(shù)據(jù)段的基址隨機(jī)化,并更細(xì)致地將代碼段和數(shù)據(jù)段內(nèi)部的函數(shù)和變量的地址進(jìn)行隨機(jī)化。在內(nèi)核層將堆、棧的起始位置隨機(jī)化,并隨機(jī)分配堆內(nèi)的獨立頁面。

地址隨機(jī)化技術(shù)也存在一定的局限性。由于系統(tǒng)的內(nèi)存布局本身的限制,以代碼塊、堆、棧等結(jié)構(gòu)為基本隨機(jī)化單元,可選的隨機(jī)化空間范圍有限,隨機(jī)的粒度較大。攻擊者通過增加猜測的范圍能夠得到真正的地址,容易通過暴力破解。此外,地址隨機(jī)化技術(shù)未對所有的段隨機(jī)化,能夠利用未隨機(jī)的段地址計算出目標(biāo)段的地址從而繞過該保護(hù)機(jī)制。

5 總結(jié)與展望

軟件隨機(jī)化技術(shù)可以對內(nèi)存破壞、注入攻擊等具有一定的防御效果,但是也無法保證絕對的安全性。目前的隨機(jī)化技術(shù)都存在一定的局限,整體來看,隨機(jī)化粒度不足,容易通過一些暴力手段繞過保護(hù)。而且各種方法的實現(xiàn)都較為復(fù)雜,大多需要詳細(xì)分析程序源碼或者二進(jìn)制程序。此外,為了保證隨機(jī)化后的正確性,需要保守地進(jìn)行變換,隨機(jī)化的實際效果不能達(dá)到設(shè)計者的理論預(yù)期。較為可行的保護(hù)方式是將多種隨機(jī)化方法與其他保護(hù)手段有效地結(jié)合起來,綜合地增強(qiáng)系統(tǒng)防御力。惡意攻擊者與安全人員持續(xù)對抗,此消彼長,軟件保護(hù)工作仍需要我們進(jìn)一步研究與探索。

[1]Okhravi H, Rabe M A, Mayberry T J, et al. Survey of Cyber Moving Targets[J]. Massachusetts Inst of Technology Lexington Lincoln Lab, No. MIT/LL-TR-1166, 2013.

[2]Jajodia S, Ghosh A K, Swarup V, et al. Moving target defense: creating asymmetric uncertainty for cyber threats [M]. Springer Science & Business Media, 2011.

[3]Davi, Lucas, et al. Isomeron: Code Randomization Resilient to (Just-In-Time) Return-Oriented Programming. NDSS,2015.

[4]Zhang, Chao, et al. Practical control flow integrity and randomization for binary executables. Security and Privacy (SP), 2013 IEEE Symposium on. IEEE, 2013.

[5]Crane, Stephen, et al. Readactor: Practical code randomization resilient to memory disclosure. Security and Privacy (SP), 2015 IEEE Symposium on. IEEE, 2015.

[6]Backes, Michael, and Stefan Nürnberger. Oxymoron: Making Fine-Grained Memory Randomization Practical by Allowing Code Sharing. USENIX Security. Vol. 14. 2014.

[7]Portokalidis G, Keromytis A D. Fast and practical instruction-set randomization for commodity systems[C]//Proceedings of the 26th Annual Computer Security Applications Conference. ACM,2010.

[8]Hu W, Hiser J, Williams D, et al. Secure and Practical Defense Against Code-Injection Attacks Using Software Dynamic Translation[C]//Proceedings of the 2nd International Conference on Virtual Execution Environments. ACM, 2006. [9]Barrantes E G, Ackley D H, Forrest S, et al. Randomized Instruction Set Emulation[J]. ACM Transactions on Information and System Security (TISSEC), 2005.

[10]Liang, Zhaohui, Bin Liang, and Lupin Li. A system call randomization based method for countering code -injection attacks.International Journal of Information Technology and Computer Science (IJITCS) 1.1,2009.

[11]Jiang X, Wang H J, Xu D, et al. Randsys: Thwarting Code Injection Attacks With System Service Interface Randomization[C]//Reliable Distributed Systems, 2007. SRDS 2007. 26th IEEE International Symposium on. IEEE, 2007.

[12]Bhatkar S, Sekar R. Data space randomization[M]//Detection of Intrusions and Malware, and Vulnerability Assessment. Berlin: Springer, 2008.

[13]Cadar C, Akritidis P, Costa M, et al. Data Randomization[R].Technical Report TR-2008-120, Microsoft Research, 2008. Cited on, 2008.

[14]Cowan, Crispin, et al. "Pointguard TM: protecting pointers from buffer overflow vulnerabilities." Proceedings of the 12th conference on USENIX Security Symposium. Vol. 12,2003.

[15]Snow, Kevin Z., et al. Just-in-time code reuse: On the effectiveness of fine-grained address space layout randomization. Security and Privacy (SP), 2013 IEEE Symposium on. IEEE, 2013.

[16]Kil, C., Jun, J., Bookholt, C., Xu, J., Ning, P, 2006. Address Space Layout Permutation (aslp): Towards Fine-Grained Randomization of Commodity Software,in:Computer Security Applications Conference, 2006. ACSAC'06. 22nd Annual, IEEE. pp. 339-348.