陳 璐,劉 行,陳 牧,李尼格,戴造建
(1.全球能源互聯網研究院有限公司 信息網絡安全國網重點實驗室,南京 210003; 2.南京南瑞信息通信科技有限公司,南京 210003)
移動通信和移動互聯網技術的飛速發展使移動智能設備在社會各領域被廣泛應用。GSMA報告顯示2014年底全球共有36億移動用戶,其中智能手機用戶達到了26億,我國的智能手機用戶則在2014年6月底超過了5.27億[1],智能手機已超越個人電腦成為主流網絡工具。而根據中國互聯網協會、國家互聯網應急中心聯合發布的《中國移動互聯網發展狀況及其安全報告(2016)》資料顯示,2015年中國境內活躍的手機網民數量達7.8億人,活躍的智能手機聯網終端達11.3億部[2]。與此同時,移動智能設備所具有的功能擴展性和平臺開放性帶來了數以百萬計的移動應用程序,這些移動應用給人們提供了諸如MP4、網絡相機、電子書等多樣化的服務。
然而,上述移動應用在給人們帶來便利的同時,也帶來了各種安全問題,病毒、木馬與惡意軟件等攻擊技術和威脅方式給移動智能設備應用程序與用戶信息安全造成重大威脅[3]。由于移動應用開放的應用市場中存在層次不齊的應用商店以及相對寬松的應用審核機制,導致惡意軟件泛濫,安全威脅與日俱增。同時,通過正規渠道下載的移動應用也存在二次打包、漏洞利用、惡意行為等不安全因素,這些不安全的移動應用會對移動終端用戶造成巨大的安全風險和資產損失[4-6]。根據安天發布的《2016移動安全年報》顯示,移動互聯網在2016年仍面臨惡意應用的持續威脅,新增威脅繼續涌現,威脅手段持續進化,攻擊者加強仿冒、社工欺詐、勒索手段、權限冒用、開源組件惡意利用等攻擊手段的使用。同時存量威脅依然泛濫,電信詐騙攔截馬、扣費、流氓、色情等威脅仍在持續演化和進化,整個移動威脅面臨全面遷徙和規?;鲩L以及爆發。因此,針對移動應用進行分析和安全保護具有重要意義[7]。
目前,研究人員提出了一些面向移動應用的安全評估方法[8-9],但其中多數集中在對漏洞收集、惡意樣本行為等的關聯挖掘研究,面對快速增大的移動應用規模安全評估能力較差[10]。針對該問題,本文構建一種基于圖的可擴展移動應用安全評估模型,以期提高評估準確性。
文獻[11]針對移動應用的安全評估模型構建問題,分析了風險評估的3個要素:威脅行為,資產,脆弱性,同時建立一種新的智能終端系統安全風險評估模型。該模型基于AHP算法和安全評估的各要素,將整個移動應用系統分為不同的風險等級。
文獻[12]針對智能終端的風險評估提出了一種需要裁剪的方法。該方法步驟如下:1)明確終端資產和威脅;2)通過分析危害程度確定威脅值;3)采用具體算法計算出風險評估值。
文獻[13]通過對計算機網絡攻擊效果指標體系的研究,將其應用到移動終端評估中,建立層次化的移動終端攻擊效果評估的指標體系,采用模糊層次分析法和多專家決策得出惡意軟件的整體攻擊效果評價。
文獻[14]提出了一種基于圖的移動終端系統安全評估方法。該方法借鑒攻擊圖方法,通過威脅圖節點來構建安全威脅模型,其中節點分為威脅節點和缺陷或漏洞節點兩類。該方法通過量化節點來對待測終端進行評估。
上述模型和方法在進行移動應用的安全評估時,只是針對特定的或者較小規模的移動應用進行安全威脅建?;蛟u估[15]。然而,現有的移動應用通常是大規模存在的,針對移動應用的安全模型應該具有很好的擴展性[16]。同時移動智能系統存在的一些漏洞、安全機制具有一定的關聯性,只有考慮到這些關聯性,移動應用的安全評估才能更準確。
本文在借鑒上述研究成果的基礎上,構建一種安全評估模型。該模型以安全漏洞和攻擊威脅為節點,并以各個節點間的關聯性相互連接,同時也考慮對漏洞風險值的量化和它們之間的關聯性。
當前針對移動應用的攻擊主要利用系統存在的安全漏洞獲取用戶權限。在該過程中,攻擊者通過系統存在的漏洞,不斷地利用惡意代碼、病毒等實現權限的提升,獲取用戶的特定資源。
造成移動應用安全威脅的要素包括系統遭受的惡意代碼、病毒等網絡攻擊,以及移動應用和系統固有的安全機制脆弱性、安全漏洞、策略漏洞等,本文稱這兩種要素為攻擊威脅和安全漏洞。攻擊者利用安全漏洞或者發動網絡攻擊獲取用戶權限。
攻擊手段的發展,使得現有的攻擊方法已經不局限于單一的攻擊手段,而是采用多種攻擊手段的組合攻擊。因此,不同的網絡攻擊和安全漏洞之間存在一定的關聯性。
根據上述分析,移動應用安全評估模型應是一個以安全漏洞和攻擊威脅為節點的模型,其中各個節點之間存在特定的關聯性,且模型各個節點通過這種關聯性相互連接,具有可擴展性。
根據2.1節的分析構建移動應用安全評估模型。該模型定義如下:
定義1模型G=(V,E,P,β,R)為具有一個或者多個AND-OR節點的有向無圈圖。
V={Vi|i=1,2,…,Ni}為威脅節點集合,包括攻擊威脅和安全漏洞2種要素,它是一個非空有限的AND-OR節點集合。
E={Ei∪Ej}為關聯各類節點的有向邊集合。以eij=
P={P1∪P2}。P1為安全漏洞的先驗概率,即節點之間實現單步攻擊的概率;P2為節點Vi在其父節點滿足條件下的條件概率。由于只有Vi的父節點Pre(Vi)滿足條件時Vj才能發生,因此P2=(Vi|Pre(Vi))滿足條件:
{P2:Pre(Vi),Vi}→[0,1]
(1)
β為模型各節點的聯合概率分布集合,表示攻擊者成功利用該漏洞的難易程度。對任意節點變量Vi:
β(Vi)≥0
(2)
R={AND,OR}為節點之間關聯關系的集合。AND節點指的是節點Vi的所有父節點Pre(Vi)之間是AND關系,即Pre(Vi)集合中的所有節點同時滿足條件時,才能引發節點Vi。圖1是父節點Pre(Vi)之間是AND關系的示意圖,只有Vj和Vk同時滿足條件時才能引發節點Vi。OR節點指的是節點Vi的所有父節點Pre(Vi)是OR關系,即Pre(Vi)集合中的任一節點滿足條件時,就能引發節點Vi。圖2是父節點Pre(Vi)之間是OR關系的示意圖,只要Vj或者Vk任一節點滿足條件就能引發節點Vi。

圖1 AND關系節點 圖2 OR關系節點
定義2對于一個模型G,如果到達某個威脅節點所經歷的所有節點和邊組成的一組有序節點序列l={V0,e01,V1,e12,…,Vi,eij,Vj,…,Vn},使得對節點序列中任意2個相鄰節點總有 移動應用面臨的攻擊方法和安全漏洞是多樣的,如何對這些攻擊方法和安全漏洞進行量化,是準確評估安全威脅的前提和保障。文獻[11-12]、移動終端信息安全技術要求(YD/T 1699-2007)等對移動應用的安全漏洞和攻擊威脅進行量化,具體見表1和表2。 表1 安全漏洞的量化 表2 攻擊威脅的量化 考慮到安全漏洞之間的關聯性,攻擊者通過安全漏洞獲取權限的可能性不僅和安全漏洞自身有關,也和攻擊者利用該漏洞時所擁有的權限有關。因此,表1中安全漏洞的概率僅作為威脅節點的先驗概率,即P1。 攻擊者通過安全漏洞獲取權限的可能性和安全漏洞自身以及攻擊者利用該漏洞時所擁有的權限有關。因此,威脅節點概率,即模型各節點的聯合概率分布β取決于先驗概率P1和條件概率P2。本文對其給出如下定義: 定義3對模型G中的任意節點Vi,其有s個父節點,即Pre(Vi)={V1,V2,…,Vs},則: β(Vi)=P(Vi,V1,V2,…,Vs)= P1(Vi)·P2(Vi|V1,V2,…,Vs) (3) 定義4在模型G中,對于任意節點Vi,其有s個父節點,即Pre(Vi)={V1,V2,…,Vs},則節點Vi發生的條件概率P2(Vi|V1,V2,…,Vs)為: 1)如果Vi為起始節點,定義為V0,則: P2(Vi|V1,V2,…,Vs)=1.0 (4) 2)如果Pre(Vi)中節點關系R=AND,則: (5) 3)如果Pre(Vi)中節點關系R=OR,則: P2(Vi|V1,V2,…,Vs)=max{β(Vj)|j=1,2,…,s} (6) 4)如果Pre(Vi)中節點關系既非R=OR,又非R=AND,則: P2(Vi|V1,V2,…,Vs)= P2(Vi|Pre(Vi))=β(Pre(Vi)) (7) 定義5分析考慮威脅節點關聯關系條件下威脅節點條件概率的數學模型。初始狀態下,攻擊者已經獲取了利用初始威脅節點的權限。因此,初始的威脅節點條件概率為1.0。對于初始威脅節點以外的節點,當節點Vi的父節點間關系為AND時,表示攻擊者必須成功地利用節點Vi得所有父節點漏洞才能獲取節點Vi的權限。因此,所有到達節點Vi的父節點的概率是相同的。當節點Vi的父節點間關系為OR時,表示攻擊者只需成功地利用節點Vi的具有最大威脅概率的父節點代表的漏洞,就能獲取節點Vi的權限。此時,父節點中威脅概率的最大節點就會是攻擊者所選擇的威脅節點。當節點vi的父節點間關系為非AND節點和非OR節點,實際上表示Vi的父節點只有一個,因此,父節點的威脅節點概率就是節點Vi的條件概率。 本文設計移動應用的安全威脅評估算法STNPA,依據移動應用安全評估模型G和各節點先驗概率P1計算安全威脅節點概率β。在任何一個時刻該評估算法都能評估那些未被利用的安全漏洞,并檢測該時刻最可能的攻擊路徑(攻擊者會選擇那些具有最大節點概率的威脅節點作為下一個攻擊目標),最后返回沿該路徑欲到達的下一個攻擊目標的威脅節點概率β,其對應的安全風險量化值就是當前時刻的安全風險級別。β計算方法見定義4。STNPA算法具體描述如下: 算法安全威脅節點概率算法STNPA 輸入模型G,節點先驗概率P1 輸出安全威脅節點概率β IF 節點v是初始節點 THEN {P2(v)=1.0} RETURN β(v)=P1(v)·P2(v)//初始節點安全//威脅節點概率 END IF IF 節點v的父節點Pre(v)中節點關系R=AND THEN END IF IF 節點v的父節點Pre(v)中節點關系為OR THEN v發生的條件概率為P2(Vi|V1,V2,…,Vs)=max{β(Vj)|j=1,2,…,s} RETURN β(v)=P1(v)·max{β(Vj)|j=1,2,…,s} END IF ELSE 節點v的父節點Pre(v)中節點關系既非R=OR,又非R=AND,THEN v發生的條件概率為P2(Vi|V1,V2,…,Vs)=β(Pre(Vi)) RETURN β(v)=P1(v)·β(Pre(vi)) 為驗證本文評估模型的有效性,實驗選取Android系統存在的9個相關安全機制和安全漏洞作為節點,具體信息如表3所示。根據對待測終端和這些節點的分析,建立的安全評估模型G,并為每個節點進行先驗概率賦值,如圖3所示。 表3 選取的安全威脅節點 圖3 安全威脅評估模型構建示意圖 依據表3、圖3以及STNPA算法所得到的各安全威脅節點評估值如圖4所示。其中,β1表示未考慮各節點間關聯關系情況下的安全威脅節點評估值,β2表示考慮各節點間關聯關系情況下的安全威脅節點評估值。 圖4 安全威脅節點評估值對比 對比β1和β2曲線可知,從節點V4開始,β2曲線上的各個節點的評估值均低于β1曲線各對應節點的值,其原因是攻擊者通過多種路徑獲取目標節點權限時,考慮到成本、獲取更多的節點權限等因素,其攻擊難度會增大。以節點V4和V5為例,攻擊者需要同時獲取這兩個節點的權限才能到達目標節點,從而降低了成功獲取節點權限的可能性。考慮到實際的攻擊,攻擊者往往通過多種攻擊途徑獲取目標權限,因此,本文構建的評估模型能夠更準確地評估移動應用的安全威脅。 此外,節點間關聯關系也影響移動應用安全威脅評估攻擊路徑的預判,具體分析如圖5所示。 圖5 攻擊路徑預判示意圖 攻擊路徑是移動應用安全威脅評估的一個重要組成部分。在選擇攻擊路徑時,攻擊者傾向于選擇最易獲取節點權限的路徑到達目標節點。攻擊路徑用l表示,其中Vi表示第i個節點,eij表示節點Vi到節點Vj的有向路徑。圖5中,在不考慮節點間關聯關系情況下,路徑l1={V1,e14,V4,e47,V7,e79,V9}為攻擊者最可能選擇的攻擊路徑。實際上,攻擊者除了傾向于選擇最易獲取節點權限的路徑,還會綜合考慮成本、到達目標可行性等多種因素。在實際攻擊中,由于攻擊者必須同時成功的利用節點V4和V5才能到達節點V7,因此在不考慮節點間管理關系時,l1將成為理論上可達而實際上不可能到達目標節點V9的路徑,降低了路徑預判的正確率。在圖5中,將AND和OR等節點間關聯關系作為影響因素評估移動應用安全時,由于攻擊者通過節點V7到達目標節點V9需要同時成功利用節點V4和V5,會降低成功的可能性,而且在對比V4和V6節點時,節點V4具有更高的成功可能性,因而最終會放棄路徑l2={V1,e16,V6,e68,V8,e89,V9}(圖5中虛線路徑),而選擇路徑l3={V1,e14,V4,e48,V8,e89,V9}(圖5中點線路徑)到達目標節點,從而達到消除類似于l1的路徑,提高預判準確性的目的。 在評估移動應用安全時,對現有移動應用安全漏洞風險值的量化限于衡量漏洞自身被利用的難易程度,不能用作評估移動應用安全威脅的唯一要素。同時,攻擊者利用安全漏洞發動攻擊時,不同安全漏洞存在一定的關聯性,這種關聯性影響著對移動應用安全的評估。因此,本文在構建移動應用安全評估模型時充分考慮了上述2個問題,從而提高了評估的準確性,而且模型基于節點間關系,能夠用于大規模移動應用模型的構建,具有良好的可擴展性。 雖然本文移動安全評估模型考慮了安全漏洞、攻擊威脅以及相互之間的關聯性,但仍存在一定程度誤報。因此,下一步將在攻擊路徑預判的基礎上進行有針對性的滲透測試,從而提高評估的準確性。 [1] 中國互聯網絡信息中心.第34次中國互聯網絡發展狀況統計報告[EB/OL].(2014-07-21)[2017-01-12].http://www.cnnic.net.cn/hlwfzyj/hlwxzbg/hlwtjbg/201407/P020140721507223212132.pdf. [2] 中國互聯網協會,國家互聯網應急中心.中國移動互聯網發展狀況及其安全報告(2016)[Z].2016. [3] 張玉清,王 凱,楊 歡,等.Android安全綜述[J].計算機研究與發展,2014,51(7):1385-1396. [4] CHAN P P F,HUI L C K,YIU S M.Droidchecker:analyzing Android applications for capability leak[C]//Proceedings of the 5th ACM Conference on Security and Privacy in Wireless and Mobile Networks.New York,USA:ACM Press,2012:125-136. [5] 王菲飛.基于Android平臺的手機惡意代碼檢測與防護技術研究[D].北京:北京交通大學,2012. [6] SHABTAI A,FLEDEL Y,ELOVICI Y.Securing Android-powered mobile devices using SELinux[J].IEEE Security and Privacy,2010,8(3):36-44. [7] 岳 倩.移動互聯網APP應用安全評估模型[J].沈陽航空航天大學學報,2016,33(5):68-73. [8] 陳建民.面向移動應用安全評估的多屬性專家決策模型及應用研究[D].北京:北京工業大學,2014. [9] 張 健,舒 心,杜振華,等.一種評估惡意代碼危害性方法的研究[J].信息網絡安全,2009,39(10):7-9. [10] 李向東,夏 冰,鄭秋生.Android應用軟件安全測評方法研究[J].信息安全與通信保密,2014(9):133-135. [11] 唐 杰,逯全芳,文 紅,等.基于AHP移動終端系統的安全風險評估[J].信息安全與技術,2013,4(3):13-16. [12] THEOHARIDOU M,MYLONAS A,GRITZALIS D.A risk assessment method for smartphones[J].IFIP Advances in Information and Communication Technology,2012,376:443-456. [13] 李 佳,鄭康鋒,崔 旭.一種基于模糊層次分析的智能手機攻擊效果評估方法[C]//第十三屆中國科學技術協會年會-中國智慧城市論壇論文集.北京:中國科學技術協會,2011:103-107. [14] 唐 杰,逯全芳,文 紅.基于圖的移動終端系統安全評估[J].信息安全與通信保密,2013(5):72-75. [15] CHIN E,FELT A P,GREENWOOD K,et al.Analyzing inter-application communication in Android[C]//Proceedings of the 9th International Conference on Mobile Systems,Applications,and Services.New York,USA:ACM Press,2011:239-250. [16] 李錚山,林 干,范文浩,等.Android的應用程序安全評估系統設計[J].軟件,2013,33(12):287-291.3 移動應用安全威脅評估
3.1 威脅節點評估標準的量化


3.2 威脅節點概率的計算
3.3 安全威脅評估算法
4 實驗與結果分析




5 結束語