一種基于Android的隱蔽通道攻擊審計(jì)與偵測(cè)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計(jì)算機(jī)系統(tǒng)安全技術(shù)領(lǐng)域,更具體地,涉及一種基于Android的隱蔽通道攻擊審計(jì)與偵測(cè)方法。
【背景技術(shù)】
[0002]隨著智能手機(jī)的普及與功能的完善,智能手機(jī)內(nèi)部存儲(chǔ)了越來越多的敏感數(shù)據(jù)信息,例如賬戶信息、聯(lián)系人信息等。面對(duì)針對(duì)智能手機(jī)頻發(fā)的敏感數(shù)據(jù)竊取手段,這些數(shù)據(jù)的安全顯得愈發(fā)重要,需要不斷的研宄具有針對(duì)性的應(yīng)對(duì)措施。
[0003]在各類隱私數(shù)據(jù)竊取的手段當(dāng)中,隱蔽通道攻擊具有極強(qiáng)的隱蔽性。其通過高權(quán)限與低權(quán)限應(yīng)用程序的共謀,借助系統(tǒng)共享資源的可被觀察與改變的狀態(tài),繞過操作系統(tǒng)基于權(quán)限的安全機(jī)制,使未申請(qǐng)相關(guān)權(quán)限的應(yīng)用程序可以非法獲取被權(quán)限保護(hù)的敏感數(shù)據(jù)。傳統(tǒng)的惡意應(yīng)用程序查殺工具,只針對(duì)每個(gè)惡意程序進(jìn)行單獨(dú)掃描,缺乏對(duì)隱蔽通道攻擊特性的審查,無法識(shí)別該類攻擊的特征。
[0004]針對(duì)上述問題,曾有方案依靠于強(qiáng)制訪問控制框架,通過靜態(tài)制定策略對(duì)承載隱蔽通道攻擊數(shù)據(jù)媒介的共享資源進(jìn)行嚴(yán)格的訪問控制,以避免隱蔽通道攻擊的產(chǎn)生。但該類方案限制了系統(tǒng)共享資源的使用,損壞了共享資源的可用性,對(duì)應(yīng)用程序的正常運(yùn)行會(huì)造成不必要的負(fù)面影響。
【發(fā)明內(nèi)容】
[0005]針對(duì)現(xiàn)有技術(shù)的以上缺陷或改進(jìn)需求,本發(fā)明提供一種基于Android的隱蔽通道攻擊審計(jì)與偵測(cè)方法,用于在系統(tǒng)運(yùn)行時(shí)動(dòng)態(tài)審計(jì)隱蔽通道攻擊的存在,并采取對(duì)相關(guān)系統(tǒng)共享資源進(jìn)行有針對(duì)性的狀態(tài)改變,從而擾亂隱蔽通道傳輸?shù)臄?shù)據(jù)內(nèi)容,防止敏感數(shù)據(jù)的泄露。
[0006]本發(fā)明提供一種基于Android的隱蔽通道攻擊審計(jì)與偵測(cè)方法,包括以下步驟:
[0007]步驟I注冊(cè)用戶描述的所要審計(jì)的目標(biāo)隱蔽通道,其中,對(duì)所述目標(biāo)隱蔽通道的描述包括系統(tǒng)共享資源路徑和對(duì)共享資源狀態(tài)的改變操作原語與讀取操作原語;
[0008]步驟2讀取所述目標(biāo)隱蔽通道的描述,并生成對(duì)應(yīng)的審計(jì)規(guī)則和hook函數(shù);
[0009]步驟3監(jiān)聽?wèi)?yīng)用程序?qū)Υ娣琶舾袛?shù)據(jù)的數(shù)據(jù)存放組件的訪問行為,并為被應(yīng)用程序訪問過的敏感數(shù)據(jù)建立檔案,所述檔案包含被訪問敏感數(shù)據(jù)的數(shù)據(jù)類型以及訪問該敏感數(shù)據(jù)的應(yīng)用程序UID;
[0010]步驟4監(jiān)控應(yīng)用程序?qū)σ炎?cè)的目標(biāo)隱蔽通道對(duì)應(yīng)的系統(tǒng)共享資源的訪問,并將訪問者的UID與所述檔案進(jìn)行匹配,若一個(gè)應(yīng)用程序訪問了所述目標(biāo)隱蔽通道對(duì)應(yīng)的系統(tǒng)共享資源,且其UID在所述檔案中有記錄,則為該應(yīng)用程序本次以及后續(xù)的系統(tǒng)共享資源訪問操作生成記錄,然后執(zhí)行步驟5,否則不記錄此次應(yīng)用程序?qū)ο到y(tǒng)共享資源的訪問操作,并重復(fù)該步驟;
[0011 ] 步驟5當(dāng)有另一應(yīng)用程序訪問了所述步驟4中的應(yīng)用程序訪問過的目標(biāo)隱蔽通道對(duì)應(yīng)的系統(tǒng)共享資源,且其權(quán)限低于步所述驟4中先訪問同一項(xiàng)系統(tǒng)共享資源的應(yīng)用程序的權(quán)限,則針對(duì)這個(gè)低權(quán)限應(yīng)用程序,生成并維護(hù)所述低權(quán)限應(yīng)用程序?qū)ο嚓P(guān)系統(tǒng)共享資源的訪問記錄;
[0012]步驟6根據(jù)所述步驟4與所述步驟5生成的各個(gè)系統(tǒng)共享資源訪問記錄審計(jì)具有較高權(quán)限應(yīng)用程序與所述低權(quán)限應(yīng)用程序?qū)ο嗤到y(tǒng)共享資源的訪問,并估算在每一對(duì)高權(quán)限與低權(quán)限應(yīng)用程序之間,通過所述目標(biāo)隱蔽通道對(duì)應(yīng)的系統(tǒng)共享資源所隱蔽傳輸?shù)臄?shù)據(jù)量,當(dāng)估算的隱蔽傳輸數(shù)據(jù)量超出設(shè)定的閾值時(shí),執(zhí)行步驟7,否則重復(fù)本步驟;
[0013]步驟7對(duì)在所述步驟6中承載了超標(biāo)隱蔽數(shù)據(jù)傳輸?shù)哪繕?biāo)隱蔽通道對(duì)應(yīng)的系統(tǒng)共享資源的狀態(tài)進(jìn)行干擾。
[0014]總體而言,通過本發(fā)明所構(gòu)思的以上技術(shù)方案與現(xiàn)有技術(shù)相比,具有以下有益效果:
[0015](I)對(duì)基于各類共享資源的存儲(chǔ)隱蔽通道具有良好的泛用性。相比于一些僅審查固定系統(tǒng)資源的方案,本發(fā)明通過審計(jì)規(guī)則與hook函數(shù)的動(dòng)態(tài)生成,支持了對(duì)隱蔽通道攻擊審計(jì)的可定制性;
[0016](2)審計(jì)標(biāo)準(zhǔn)擁有良好的可擴(kuò)展性。本發(fā)明采用了模塊化架構(gòu),對(duì)于審計(jì)標(biāo)準(zhǔn)采用了模塊化封裝。只要實(shí)現(xiàn)接口中的指定方法,用戶便可以根據(jù)自己的需求對(duì)各類型隱蔽通道開發(fā)特定的審計(jì)標(biāo)準(zhǔn),從而提高審計(jì)準(zhǔn)確率;
[0017](3)對(duì)假陽性審計(jì)結(jié)果的高容忍性。由于本發(fā)明采用了針對(duì)隱蔽通道的狀態(tài)干擾而非嚴(yán)格訪問控制,使得應(yīng)用程序?qū)ο嚓P(guān)共享資源的正常訪問不受限制,同時(shí)可以有效遏制通過編制共享資源狀態(tài)而進(jìn)行的隱蔽數(shù)據(jù)傳輸。
【附圖說明】
[0018]圖1為本發(fā)明基于Android的隱蔽通道攻擊審計(jì)與偵測(cè)方法的應(yīng)用環(huán)境示意圖;
[0019]圖2為本發(fā)明基于Android的隱蔽通道攻擊審計(jì)與偵測(cè)方法的流程圖;
[0020]圖3為本發(fā)明決策模塊的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0021]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。此外,下面所描述的本發(fā)明各個(gè)實(shí)施方式中所涉及到的技術(shù)特征只要彼此之間未構(gòu)成沖突就可以相互組合。
[0022]圖1所示為本發(fā)明基于Android的隱蔽通道攻擊審計(jì)與偵測(cè)方法的應(yīng)用環(huán)境示意圖。用戶先對(duì)需要審計(jì)的隱蔽通道進(jìn)行定義,在本發(fā)明實(shí)施例中,隱蔽通道被定義為系統(tǒng)共享資源與對(duì)應(yīng)的修改操作、讀取操作所組成的元組。隱蔽通道定義將被發(fā)往決策模塊和內(nèi)核審計(jì)模塊(auditd模塊),并由這兩個(gè)模塊解析為與系統(tǒng)調(diào)用相關(guān)的內(nèi)核審計(jì)規(guī)則與java層hook函數(shù)。在機(jī)器運(yùn)行過程中,決策模塊從應(yīng)用層hook函數(shù)、數(shù)據(jù)存儲(chǔ)組件(Content Provider)監(jiān)控模塊與內(nèi)核審計(jì)模塊收集應(yīng)用程序的敏感數(shù)據(jù)訪問與共享資源使用信息,并審計(jì)系統(tǒng)內(nèi)敏感數(shù)據(jù)及與目標(biāo)隱蔽通道相關(guān)系統(tǒng)共享資源的訪問情況。當(dāng)內(nèi)核審計(jì)模塊在審計(jì)過程中估算的經(jīng)由目標(biāo)隱蔽通道相關(guān)共享資源所傳輸?shù)臄?shù)據(jù)量(簡(jiǎn)稱隱蔽傳輸數(shù)據(jù)量)突破閾值,即認(rèn)為有隱蔽通道攻擊發(fā)生,于是決策模塊調(diào)用位于內(nèi)核的干擾模塊或相關(guān)java層hook函數(shù)對(duì)涉事隱蔽通道相關(guān)的共享資源進(jìn)行狀態(tài)改變操作(例如改變共享資源值、改變資源描述屬性等),以干擾隱蔽通道上的信息傳輸。當(dāng)之后的某一個(gè)時(shí)間窗口內(nèi)估算的隱蔽傳輸數(shù)據(jù)量恢復(fù)正常時(shí),則撤銷干擾。
[0023]圖2為本發(fā)明基于Android的隱蔽通道攻擊審計(jì)與偵測(cè)方法的流程圖,具體包括以下步驟:
[0024]步驟I根據(jù)隱蔽通道的定義,用戶對(duì)所要審計(jì)的目標(biāo)隱蔽通道進(jìn)行描述,并注冊(cè)該目標(biāo)隱蔽通道,注冊(cè)后,目標(biāo)隱蔽通道所對(duì)應(yīng)的每一個(gè)系統(tǒng)共享資源會(huì)被標(biāo)注一個(gè)唯一的識(shí)別號(hào)。對(duì)目標(biāo)隱蔽通道的描述包括如下部分:
[0025]1、系統(tǒng)共享資源路徑,該系統(tǒng)共享資源可以是系統(tǒng)層的一個(gè)共享文件,或者是socket,因?yàn)樵贏ndroid這樣基于Linux內(nèi)核的系統(tǒng)中,一切數(shù)據(jù)客體都被視為文件,有自身的路徑。另外,該共享資源路徑項(xiàng)可以為空,因?yàn)橐恍┕蚕碣Y源可以由相關(guān)的操作原語與其參數(shù)共同指明,例如系統(tǒng)音量這一共享資源,可由Aud1Manager.setStreamVolume方法與參數(shù) Aud1Manager.STREAM_MUSIC 共同表示;
[0026]2、對(duì)共享資源狀態(tài)的改變操作與讀取操作原語,即改變或讀取該資源狀態(tài)的操作原語,可以是應(yīng)用層的java api方法或內(nèi)核層的系統(tǒng)調(diào)用號(hào)。
[0027]步驟2隱蔽通道攻擊偵測(cè)框架(下文簡(jiǎn)稱框架)讀取用戶的目標(biāo)隱蔽通道描述,針對(duì)位于系統(tǒng)層的目標(biāo)隱蔽通道相關(guān)的系統(tǒng)共享資源,框架通過調(diào)用內(nèi)核審計(jì)規(guī)則定義工具auditctl在內(nèi)核審計(jì)模塊(auditd)中生成審計(jì)規(guī)則。針對(duì)位于應(yīng)用層的目標(biāo)隱蔽通道對(duì)應(yīng)的系統(tǒng)共享資源,對(duì)改變與讀取對(duì)應(yīng)共享資源狀態(tài)的API函數(shù)進(jìn)行hook。
[0028]步驟3重啟系統(tǒng)后,上述審計(jì)規(guī)則與hook函數(shù)生效,同時(shí)框架開始監(jiān)聽?wèi)?yīng)用程序?qū)Υ娣琶舾袛?shù)據(jù)的數(shù)據(jù)存放組件(Content Provider)的訪問行為,并為被應(yīng)用程序訪問過的敏感數(shù)據(jù)建立檔案,此檔案中包含了被訪問數(shù)據(jù)的數(shù)據(jù)類型以及訪問該數(shù)據(jù)的應(yīng)用程序UID0
[0029]步驟4框架監(jiān)控應(yīng)用程序?qū)Σ襟EI中注冊(cè)的目標(biāo)隱蔽通道對(duì)應(yīng)的系統(tǒng)共享資源的訪問,并將訪問者的UID與上述步驟3建立的檔案進(jìn)行匹配,若當(dāng)前一個(gè)應(yīng)用程序訪問了步驟I中用戶定義目標(biāo)隱蔽通道對(duì)應(yīng)的系統(tǒng)共享資源,且其UID在步驟3建立的檔案中有記錄,則說明此次訪問系統(tǒng)共享資源的應(yīng)用程序具備敏感數(shù)據(jù)訪問權(quán)限,且已訪問了相關(guān)敏感數(shù)據(jù),則為該應(yīng)用程序本次以及后續(xù)的系統(tǒng)共享資源訪問操作生成記錄,然后執(zhí)行步驟5;否則不記錄此次應(yīng)用程序?qū)ο到y(tǒng)共享資源的訪問操作,并重復(fù)該步驟。
[0030]步驟5當(dāng)有應(yīng)用程序訪問了步驟4中具備敏感數(shù)據(jù)訪問權(quán)限的應(yīng)用程序訪問過的目標(biāo)隱蔽通道對(duì)應(yīng)的系統(tǒng)共享資源,且此次訪問系統(tǒng)共享資源的應(yīng)用程序的權(quán)限低于步驟4中先訪問同一項(xiàng)系統(tǒng)共享資源的應(yīng)用程序的權(quán)限,則針對(duì)這個(gè)低權(quán)限應(yīng)用程序,生成并維護(hù)該低權(quán)限應(yīng)用程序?qū)ο嚓P(guān)系統(tǒng)共享資源的訪問記錄作為審計(jì)記錄,該訪問記錄在一個(gè)滑動(dòng)時(shí)間窗口內(nèi)保存這個(gè)低權(quán)限應(yīng)用程序?qū)ζ湓谒L問的系統(tǒng)共享資源的此次與后續(xù)訪問記錄。
[0031]步驟6決策模塊在由步驟4與步驟5生成的各個(gè)系統(tǒng)共享資源訪問記錄中審計(jì)步驟4中的高權(quán)限應(yīng)用程序與步驟5中的低權(quán)限應(yīng)用程序?qū)ο嗤蚕碣Y源的訪問,并計(jì)算訪問頻度、突發(fā)性、交替性等指標(biāo),從而估算在每一對(duì)高權(quán)限與低權(quán)限應(yīng)用程序之間,通過目標(biāo)隱蔽通道對(duì)應(yīng)的共享資源所傳輸?shù)臄?shù)據(jù)量。當(dāng)估算的隱蔽傳輸數(shù)據(jù)量超出用戶設(shè)定的閾值時(shí),執(zhí)行步驟7,否則重復(fù)本步驟。步驟6具體包括以下子步驟:
[0032](6-1)決策模塊內(nèi)部維護(hù)一個(gè)審計(jì)消息隊(duì)列,同時(shí)對(duì)每一個(gè)目標(biāo)隱蔽通道對(duì)應(yīng)的系統(tǒng)共享資源維護(hù)一個(gè)共享資源審計(jì)子節(jié)點(diǎn)(下文簡(jiǎn)稱審計(jì)子節(jié)點(diǎn)),一個(gè)審計(jì)子節(jié)點(diǎn)負(fù)責(zé)審計(jì)各應(yīng)用程序?qū)σ豁?xiàng)目標(biāo)隱蔽通道對(duì)應(yīng)系統(tǒng)共享資源的訪問操作。決策模塊接收從底層審計(jì)模塊(auditd)以及應(yīng)用層hook函數(shù)提交的審計(jì)