邢福康,張錚,隋然,曲晟,季新生
面向進程多變體軟件系統的攻擊面定性建模分析
邢福康1,張錚1,隋然2,曲晟1,季新生1
(1. 信息工程大學,河南 鄭州 450001;2. 中央軍委后勤保障部信息中心,北京 100089)
攻擊面是衡量軟件系統安全性的一個重要指標,采用攻擊面描述可以通過集合的方式描述軟件系統的安全性并對其進行度量。一般的攻擊面模型基于I/O自動機模型對軟件系統進行建模,其一般采用非冗余的架構,難以應用于類似多變體系統這類異構冗余的系統架構。Manadhatad等提出了一種在非相似余度系統中進行攻擊面度量的方式,但其采用的系統架構表決粒度和表決方式與多變體系統不同,無法準確度量多變體系統的攻擊面。因此,在傳統攻擊面模型基礎上,結合多變體系統異構冗余架構的特點,對傳統攻擊面模型進行擴展,并構建多變體系統的攻擊面模型;使用形式化方式表示多變體系統的攻擊面,根據多變體系統在系統出口點處的表決機制對傳統攻擊面模型進行改進,以使其能解釋多變體系統攻擊面縮小的現象,通過該建模方式,能夠說明采用多變體架構的多變體系統在運行過程中攻擊面的變化。采用了兩組多變體執行架構的軟件系統進行實例分析,分別通過與未采用多變體架構的功能相同的軟件系統在未受攻擊和遭受攻擊兩種情境下進行攻擊面的對比分析,體現多變體系統在攻擊面上的變化。結合攻擊面理論與多變體執行系統的特點提出了一種面向多變體執行系統的攻擊面建模方法,目前可以定性分析多變體執行系統攻擊面的變化,未來將在定量分析多變體執行系統攻擊面的方向繼續進行深入研究。
多變體;攻擊面;攻擊面度量;網絡安全
隨著信息技術的高速發展,越來越多的軟件系統出現,軟件系統服務于社會的各個層面,為人們的日常生活工作提供了極大的便利。然而,隨著軟件系統深入人們的生活,軟件系統的功能和保存的數據信息越來越重要,針對軟件系統進行的攻擊日益增多,保護軟件安全已成為保護網絡空間安全[1]的重要一環。1988年,Morries利用軟件系統的緩沖區溢出漏洞破壞了大量的計算機[2]。近年來,隨著軟件系統的發展,軟件漏洞層出不窮,如Bletsch等[3]提出了面向跳轉的攻擊,Levy[4]提出了代碼注入攻擊,而目前常見的攻擊方式為面向返回的攻擊,由Shacham于2007年提出[5]。
為了應對這些層出不窮的攻擊行為,很多相應的防御措施被提出。這些防御措施依據引入時間的不同被分為運行前的靜態防御以及運行時的動態防御[6]。靜態防御方式,如StackGuard[7]在gcc編譯時增加canary機制防止攻擊。Cowan等[8]通過在編譯時替換易受攻擊的庫進行軟件的靜態防護。但是,由于Bittau等提出的無源碼的面向返回攻擊[9]可以在不依賴源碼的情況下獲得軟件的敏感信息,從而進行控制流劫持,靜態防御措施的作用越來越小。在動態防御的措施中,控制流完整性技術[10]通過檢測程序的執行流程是否被篡改來防御攻擊,然而由于其性能較差,目前階段較難應用于實際生產中的軟件系統。馬博林等[11]提出了基于指令集隨機化的抗代碼注入攻擊方法,該方法基于指令集隨機化防御未知代碼注入攻擊。多變體執行技術由Cox[12]提出,其根據兩個功能相同的進程在內存分布上的隨機化以及監控器保證軟件運行的安全性。在此基礎上,Salamat[13]提出了監控器獨立運行的多變體架構,而Koning等[14]提出了MvArmor多變體系統架構,該架構基于對系統調用進行表決,采用該架構的用戶可以在安全性和性能兩個維度上進行選擇,以在保護軟件安全性的前提下保證其性能。
攻擊面是衡量軟件系統安全性的一個重要指標,攻擊面描述可以通過集合的方式來描述軟件系統的安全性并對其進行度量。傳統的攻擊面模型基于I/O自動機模型對軟件系統進行建模,其一般采用非冗余的架構,難以應用于類似多變體系統這類異構冗余的系統架構。文獻[15]提出了一種在非相似余度系統中進行攻擊面度量的方式,但其進行攻擊面建模的系統架構在異構冗余粒度、表決粒度等方面與多變體系統不同。該方式針對的系統為異構冗余架構的Web應用系統,一般通過服務器軟件、應用層腳本等Web應用的組件的異構冗余提升系統的安全性,并針對異構組件產生的輸出進行表決。進程多變體軟件系統主要針對進程的內存空間進行異構冗余,同時對進程運行中產生的系統調用進行表決,其異構冗余粒度和表決粒度要遠小于異構冗余架構的Web應用系統,并且其表決方式與異構冗余架構的Web應用系統有較大差異,因此文獻[15]提出的方式無法準確度量多變體系統的攻擊面。本文在傳統攻擊面模型的基礎上,提出一種能夠描述多變體系統攻擊面的攻擊面建模方式,從而說明采用多變體架構的多變體系統在運行過程中攻擊面的變化,并通過實際的攻擊展示多變體系統攻擊面的變化。
與傳統的軟件系統相比,多變體系統的設計引入了異構冗余的思想,其利用多個功能等價但存在異構性的變體進程對使用者透明地提供與傳統的軟件系統相同的服務。由于變體之間存在內存空間的異構性,當攻擊者進行攻擊時,很難對全部變體攻擊成功,對變體執行流程中的系統調用進行監控,能夠對系統中各個變體執行流程中表現出的不一致進行表決,從而阻止攻擊者的攻擊行為。而傳統的軟件系統由于沒有異構冗余,無法進行執行流程的表決,更易被攻擊者攻擊成功。圖1為典型的多變體系統架構模型。
多變體系統的核心模塊主要包括輸入模塊、多變體模塊和監控表決模塊。各模塊的作用如下。
輸入模塊:將系統輸入進行分發,交給各個多變體進程進行執行。
多變體模塊:含有多個功能等價的進程,進程均采取地址空間配置隨機加載(ASLR)、地址無關可執行文件(PIE)等地址隨機化技術,使得各個進程的內存分布不相同。

圖1 典型的多變體系統架構模型
Figure 1 Architecture model of typical multi-variant execution software system
監控表決模塊:監控每個進程的執行,在進程需要調用系統時進行攔截,比較各個多變體進程的內存內容和系統是否一致,若一致則繼續執行,否則視為監測到攻擊,結束多變體系統的執行。
文獻[16]結合動態、異構、冗余的擬態防御思想,提出能夠防御進程控制流劫持攻擊的多變體系統MimicBox,文獻[17]通過在傳統數據庫系統中引入多變體架構和數據庫代理表決,實現了數據庫系統對于SQL注入攻擊的運行時防御。



文獻[19]根據采用特殊架構時系統攻擊面會產生轉移的特點提出了攻擊面轉移。文獻[15]提出攻擊面模型的構建是攻擊面理論研究的重點,是準確評估系統安全性的關鍵,同時提出了一種對非相似余度信息系統進行建模的方法。非相似余度信息系統架構如圖2所示。

圖2 非相似余度信息系統架構
Figure 2 Architecture of dissimilar redundant information system



可以看出,改進后的模型在進行攻擊面表決后,系統攻擊面顯著減小,與實際情況相符。然而,采用多變體進程架構的軟件系統與傳統的非相似余度架構Web應用系統相比,異構冗余粒度和表決粒度較小,并且采用多變體進程架構的軟件系統主要針對系統出口點即系統調用進行表決,在多變體進程系統正常運行時,其攻擊面并不會改變,但當遭受攻擊時,觸發表決會導致系統攻擊面的動態變化。此過程無法通過簡單取交集的方式進行抽象,因此采用多變體進程架構的系統不能使用文獻[15]中提出的非相似余度信息系統架構的建模方式。
對軟件系統進行攻擊面建模是度量軟件系統安全性的重要步驟,文獻[18]給出的傳統攻擊面的建模方式如下。

其中,為攻擊者集合,為不含的系統集合,為數據集集合,如圖3所示。
Figure 3 System environment

定義系統s的攻擊面資源集合R由式(7)表示。

本文對傳統攻擊面模型進行擴展,并構建多變體系統的攻擊面模型;使用形式化方式表示多變體系統的攻擊面,根據多變體系統在系統出口點處的表決機制對傳統攻擊面模型進行改進,以使其能解釋多變體系統攻擊面縮小的現象。
在多變體系統中,多變體進程的異構性體現了異構冗余的思想,由于多個多變體進程之間采用了地址隨機化技術,攻擊者難以同時采用緩沖區溢出攻擊對所有多變體進程進行控制流劫持,因此當攻擊者通過控制流劫持某一進程多變體進行惡意系統調用時,其他未被攻擊成功的多變體進程仍維持正常的系統調用,表決模塊攔截到各個多變體進程的系統調用并進行對比,從而阻止攻擊。多變體系統中存在一致表決、近似表決等多種表決策略,本文的多變體系統表決策略采取一致表決,即所有多變體進程的系統調用一致時才表決通過,否則表決不通過。
傳統攻擊面理論中并未引入異構冗余的概念,而多變體系統安全性的提升主要是因為多變體系統采取了異構冗余的架構,該特性可以使多變體系統在系統出口點進行一致性表決。因此,本文在傳統攻擊面理論的基礎上引入系統出口表決機制,相關定義如下。



則系統S的攻擊面描述如式(11)所示。

可見經過系統出口點表決后多變體系統的攻擊面縮小。
本文采用兩組多變體執行架構的軟件系統進行實例分析,分別通過與未采用多變體架構的功能相同的軟件系統進行攻擊面的對比分析,體現多變體系統在攻擊面上的變化。
實例采用的兩種軟件系統均使用了危險函數gets(),攻擊者能夠通過緩沖區溢出漏洞對程序的控制流進行篡改,從而威脅系統的安全。
對正常運行時的多變體系統和普通系統進行建模比較,由于未受到攻擊,多變體系統的各個進程在表決時系統調用序列相同,故此時多變體系統和普通系統的攻擊面保持一致,如下所示:



在正常運行時,多變體系統和普通系統產生的系統調用如表1和表2所示。

表1 第一組軟件系統未受攻擊的系統調用
可以看出,當未受到攻擊時,多變體系統和普通軟件系統的系統調用一致,兩者在系統出口點的攻擊面相同,這與建模分析結果一致。
當軟件系統受到攻擊時,普通軟件系統會遭到控制流劫持,而多變體系統由于系統出口點表決的存在,會中斷軟件的運行,阻斷攻擊者的攻擊行為。在這種情況下,多變體系統會產生不同的系統調用,導致表決生效,使得采用多變體架構的軟件系統攻擊面變小,對多變體系統和普通系統進行建模分析對比如下所示:



當軟件系統受到攻擊時,兩者的系統調用如表3和表4所示。

表2 第二組軟件系統未受攻擊的系統調用

表3 第一組軟件系統受攻擊的系統調用
注:表中的空白表示該時間進程已結束,不再產生系統調用。

表4 第二組軟件系統受攻擊的系統調用
分析兩組實例可知,攻擊者進行攻擊后,普通軟件系統由于沒有系統出口點的表決,在read系統調用處被攻擊,攻擊者之后可以進行控制流劫持操作。而多變體系統在read系統調用處的表決結果不一致,從而強制中斷程序的運行,避免了攻擊者的劫持。多變體系統由于受到攻擊,只執行了部分系統調用,系統的攻擊面在遭受攻擊時減小,這與前面的建模分析結果一致。
本文根據多變體系統的表決特點,在傳統攻擊面模型的基礎上提出了多變體進程系統的攻擊面模型,形式化地描述了多變體系統在遭受攻擊時攻擊面的動態變化過程。闡明了多變體系統在系統出口點的表決方式對攻擊面變化的影響,解釋了多變體系統受到攻擊時系統攻擊面動態變化的原理。通過兩組實例分析,對比未遭受攻擊時及遭受攻擊時普通系統與多變體系統的攻擊面,證明了對于多變體系統攻擊面建模的合理性。
本文對多變體系統的攻擊面建模進行了初步研究,理論部分仍不完善,未來的工作將集中于多變體系統攻擊面的量化分析以及對采用不同表決方式的多變體系統的攻擊面變化的分析。
[1] 方濱興. 定義網絡空間安全[J]. 網絡與信息安全學報, 2018, 4(1): 1-5.
FANG B X. Define cyberspace security[J]. Chinese Journal of Network and Information Security, 2018, 4(1): 1-5.
[2] 邵思豪, 高慶, 馬森, 等. 緩沖區溢出漏洞分析技術研究進展[J].軟件學報, 2018, 29(5): 1179-1198.
SHAO S H, GAO Q, MA S, et al. Progress in research on buffer overflow vulnerability analysis technologies[J]. Journal of Software, 2018, 29(5): 1179-1198.
[3] BLETSCH T, JIANG X X, FREEH V W, et al. Jump-oriented programming: a new class of code-reuse attack[C]//Proceedings of the 6th ACM Symposium on Information, Computer and Communications Security - ASIACCS '11. 2011: 30-40.
[4] LEVY E. Smashing the stack for fun and profit[J]. Phrack Maga-zine, 1996, 8(49): 1-25.
[5] SHACHAM H. The geometry of innocent flesh on the bone: return-into-libc without function calls (on the x86)[C]//Proceedings of the 14th ACM conference on Computer and communications security. 2007: 552-561.
[6] 王豐峰, 張濤, 徐偉光, 等. 進程控制流劫持攻擊與防御技術綜述[J]. 網絡與信息安全學報, 2019, 5(6): 10-20.
WANG F F, ZHANG T, XU W G, et al. Overview of control-flow hijacking attack and defense techniques for process[J]. Chinese Journal of Network and Information Security, 2019, 5(6): 10-20.
[7] COWAN C, PU C, MAIER D, et al. StackGuard: automatic adaptive detection and prevention of buffer-overflow attacks[C]//Proceedings of 7th USENIX Security Conference. 1998: 63-78.
[8] COWAN C, BARRINGER M, BEATTIE S, et al. FormatGuard: automatic protection from printf format string vulnerabilities[C]//Proceedings of 10th USENIX Security Symposium. 2001: 13-17.
[9] BITTAU A, BELAY A, MASHTIZADEH A, et al. Hacking blind[C]//Proceedings of 2014 IEEE Symposium on Security and Privacy. 2014: 227-242.
[10] WANG Z, JIANG X X. HyperSafe: a lightweight approach to provide lifetime hypervisor control-flow integrity[C]//Proceedings of 2010 IEEE Symposium on Security and Privacy. 2010: 380-395.
[11] 馬博林, 張錚, 陳源, 等. 基于指令集隨機化的抗代碼注入攻擊方法[J]. 信息安全學報, 2020, 5(4): 30-43.
MA B L, ZHANG Z, CHEN Y, et al. The defense method for code-injection attacks based on instruction set randomization[J]. Journal of Cyber Security, 2020, 5(4): 30-43.
[12] COX B, EVANS D, FILIPI A, et al. N-variant systems a secretless framework for security through diversity[J]. 15th USENIX Security Symposium, 2006: 105-120.
[13] SALAMAT B, JACKSON T, GAL A, et al. Orchestra: intrusion detection using parallel execution and monitoring of program variants in user-space[C]//Proceedings of the 4th ACM European conference on Computer systems. 2009: 33-46.
[14] KONING K, BOS H, GIUFFRIDA C. Secure and efficient multi-variant execution using hardware-assisted process virtualization[C]//Proceedings of 2016 46th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN). 2016: 431-442.
[15] 張錚, 王立群, 李衛超. 面向非相似余度信息系統的攻擊面模型[J]. 通信學報, 2018, 39(S2): 223-230.
ZHANG Z, WANG L Q, LI W C. Research on formal model for an information system's attack surface with dissimilar redundant architecture[J]. Journal on Communications, 2018, 39(S2): 223-230.
[16] 潘傳幸, 張錚, 馬博林, 等. 面向進程控制流劫持攻擊的擬態防御方法[J]. 通信學報, 2021, 42(1): 37-47.
PAN C X, ZHANG Z, MA B L, et al. Method against process control-flow hijacking based on mimic defense[J]. Journal on Communications, 2021, 42(1): 37-47.
[17] 馬博林, 張錚, 劉浩, 等. SQLMVED:基于多變體執行的SQL注入運行時防御系統[J]. 通信學報, 2021, 42(4): 127-138.
MA B L, ZHANG Z, LIU H, et al. SQLMVED: SQL injection runtime prevention system based on multi-variant execution[J]. Journal on Communications, 2021, 42(4): 127-138.
[18] MANADHATA P K, WING J M. A formal model for a system's attack surface[M]//Advances in Information Security. New York, NY: Springer New York, 2011: 1-28.
[19] MANADHATA P K. Game theoretic approaches to attack surface shifting[M]//Moving Target Defense II. New York, NY: Springer New York, 2012: 1-13.
Qualitative modeling and analysis of attack surface for process multi-variant execution software system
XING Fukang1, ZHANG Zheng1, SUI Ran2, QU Sheng1, JI Xinsheng1
1. Information Engineering University, Zhengzhou 450001, China 2. Information Center of Logistics Support Department of Central Military Commission, Beijing 100089, China
Attack surface is an important index to measure security of software system. The general attack surface model is based on the I/O automata model to model the software system, which generally uses a non-redundant architecture and it is difficult to apply to heterogeneous redundant system architectures such as multi variant systems. Manadhatad et al. proposed a method to measure the attack surface in a dissimilar redundancy system. However, the voting granularity and voting method of the system architecture adopted by Manadhatad are different from those of the multi-variant system, which cannot accurately measure the attack surface of the multi variant system. Therefore, based on the traditional attack surface model, combined with the characteristics of heterogeneous redundant architecture of multi variant systems, the traditional attack surface model was extended and the attack surface model of multivariant systems was constructed. The attack surface of the multi variant system was represented in a formal way, and the traditional attack surface model was improved according to the voting mechanism of the multi variant system at the exit point of the system, so that it can explain the phenomenon that the attack surface of the multi variant system shrinks. Through this modeling method, the change of the attack surface of the multi variant system adopting the multi variant architecture can be explained in the running process. Then, two groups of software systems with multi variant execution architecture were used as analyzing examples. The attack surface of the software systems with the same functions as those without multi variant architecture were compared and analyzed in two situations of being attacked and not being attacked, reflecting the changes of the multi variant system in the attack surface. Combining the attack surface theory and the characteristics of the multi variant execution system, an attack surface modeling method for the multi variant execution system was proposed. At present, the changes of the attack surface of the multi variant execution system can be qualitatively analyzed. In-depth research in the quantitative analysis of the attack surface of the multi variant execution system will be continually conducted.
multi-variant execution, attack surface, attack surface metric, network security
TP393
A
10.11959/j.issn.2096?109x.2022059
2022?01?18;
2022?04?25
張錚,ponyzhang@126.com
國家自然科學基金(61521003);國家重點研發計劃(2018YF0804003,2017YFB0803204)
The National Natural Science Foundation of China (61521003), The National Key R&D Program of China (2018YF0804003, 2017YFB0803204)
邢福康, 張錚, 隋然, 等. 面向進程多變體軟件系統的攻擊面定性建模分析[J]. 網絡與信息安全學報, 2022, 8(5): 121-128.
Format: XING F K, ZHANG Z, SUI R, et al. Qualitative modeling and analysis of attack surface for process multi-variant execution software system[J]. Chinese Journal of Network and Information Security, 2022, 8(5): 121-128.
邢福康(1997? ),男,山東聊城人,信息工程大學博士生,主要研究方向為網絡空間安全、Web應用安全。

張錚(1976? ),男,湖北黃岡人,博士,信息工程大學副教授,主要研究方向為網絡空間安全、主動防御技術。
隋然(1974? ),男,山東青島人,博士,中央軍委后勤保障部信息中心研究員,主要研究方向為網絡空間安全。

曲晟(1996? ),男,山西忻州人,信息工程大學博士生,主要研究方向為網絡空間安全、主動防御技術。
季新生(1968? ),男,河南駐馬店人,博士,信息工程大學教授、博士生導師,主要研究方向為網絡空間安全、無線通信。
