本發(fā)明涉及信息系統(tǒng)安全檢測領(lǐng)域,特別是涉及移動終端隱私泄露檢測。
背景技術(shù):
隨著國民經(jīng)濟水平的提高和互聯(lián)網(wǎng)技術(shù)的高速發(fā)展,我國傳統(tǒng)的PC互聯(lián)網(wǎng)已經(jīng)日趨飽和,移動互聯(lián)網(wǎng)卻發(fā)展迅速,移動智能終端正逐漸成為人們訪問互聯(lián)網(wǎng)最主要的工具。2016年1月22日,中國互聯(lián)網(wǎng)絡(luò)信息中心(CNNIC)發(fā)布了第37次《中國互聯(lián)網(wǎng)絡(luò)發(fā)展狀況統(tǒng)計報告》:截至2015年12月,我國手機網(wǎng)民規(guī)模達6.20億,與2014年底相比較,增加了6303萬人,網(wǎng)民使用手機上網(wǎng)的人群占比提升至90.1%,手機依然是拉動網(wǎng)民規(guī)模增長的首要設(shè)備。
移動互聯(lián)網(wǎng)技術(shù)和服務(wù)的蓬勃發(fā)展也推動了移動智能終端的迅速普及,美國市場研究公司IDC(International Data Corporation)于2016年1月發(fā)布報告稱,2015年全球智能手機出貨量為14.329億部,同比增長了10.1%。國內(nèi)智能手機市場也非常火熱,據(jù)中國信息通信研究院發(fā)布的《2016年1月國內(nèi)手機市場運行分析報告》:2015年,全國手機市場累積出貨量為5.18億部,其中智能手機出貨量為4.57億部,同比增長17.7%,占同期國內(nèi)手機出貨量的88.3%。
當然,智能手機的發(fā)展和普及與移動應(yīng)用程序數(shù)量的飛速增長也是相輔相成的。根據(jù)應(yīng)用分析和應(yīng)用市場數(shù)據(jù)的行業(yè)標準App Annie于2016年1月20號發(fā)布的分析報告,2015年Google Play商店的應(yīng)用程序下載量約為2億次,Apple公司的應(yīng)用商店上的應(yīng)用程序下載次數(shù)也達到了1億次。海量應(yīng)用程序的開發(fā)讓智能手機的功能越來越豐富多彩,辦公、社交、娛樂、購物等活動都可以在智能手機上完成,因此,智能手機已經(jīng)滲透到了人們生活、工作和娛樂的方方面面。但是方便快捷的同時,智能手機也帶來了巨大的隱私安全問題。應(yīng)用程序隱私泄露帶來的惡意扣費,信息竊取,誘騙欺詐等種種惡意行為會給用戶造成巨大的困擾和損失。
iOS操作系統(tǒng)雖然一直以安全著稱,但是仍然存在各種安全問題,其中2015年影響比較廣泛的就有6月份發(fā)生的蘋果公司歷史上最嚴重的用戶數(shù)據(jù)泄露事件之一,造成了22萬iCloud賬號密碼被泄露,以及同年9月爆出的黑客利用經(jīng)過篡改的開發(fā)工具Xcode向300多款熱門APP注入木馬病毒,導(dǎo)致上億用戶的手機配置信息被泄露的攻擊事件。
面對頻發(fā)的應(yīng)用程序安全問題,Apple公司部署了審查應(yīng)用程序安全性的相關(guān)策略,但是Apple公司的審核機制沒有對外公布,盡管只有App Store一個應(yīng)用程序商城,但是也有很多上線的應(yīng)用程序存在泄露用戶隱私的行為。由此說明,應(yīng)用程序安全審查機制并不能百分百保證用戶的隱私安全?;谶@個事實,市場也出現(xiàn)了很多手機應(yīng)用安全管理軟件和應(yīng)用程序檢測工具,但是現(xiàn)有的工具大部分都是針對Android平臺的,iOS平臺的相關(guān)工具非常少,現(xiàn)有的研究成果基本都是采用單一的靜態(tài)檢測或者動態(tài)檢測方法,無法避免單一檢測方法存在的固有缺陷,例如靜態(tài)分析常見的問題有:1、混淆加密過的應(yīng)用程序無法直接進行靜態(tài)分析,在反編譯應(yīng)用程序可執(zhí)行文件之前需要進行解密處理,但是解密成功率無法達到百分之百。2、iOS應(yīng)用程序的反編譯比較困難,無法得到Objective-C語言級的反編譯源碼,反編譯文件的最終形態(tài)為ARM匯編語言和部分偽代碼的結(jié)合。動態(tài)分析常見的問題有:1、動態(tài)分析需要在真機或者模擬器上運行應(yīng)用程序,并且遍歷所有功能按鈕,檢測速度相對較慢,并且容易出現(xiàn)測試不全面的現(xiàn)象。2、動態(tài)分析的基礎(chǔ)是修改操作系統(tǒng)函數(shù),實現(xiàn)對應(yīng)用程序的動態(tài)監(jiān)控,因此需要對操作系統(tǒng)有深入的了解,而且監(jiān)控函數(shù)的實現(xiàn)難度較大。
技術(shù)實現(xiàn)要素:
為了解決上述問題,本發(fā)明的目的是提出一種iOS平臺的應(yīng)用程序隱私泄露檢測方法及系統(tǒng),用于iOS平臺的應(yīng)用程序隱私泄露行為檢測和分析,保護用戶隱私安全。
為實現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案為:
一種針對iOS平臺的應(yīng)用程序多維度隱私泄露檢測方法,從靜態(tài)分析、動態(tài)分析和數(shù)據(jù)分析三個維度對iOS應(yīng)用程序進行隱私泄露檢測,其中:
靜態(tài)分析包括應(yīng)用程序解密,app存儲路徑定位,反匯編和反匯編源碼的敏感API分析的步驟;
動態(tài)分析包括Hook敏感API函數(shù),通過運行應(yīng)用程序獲得日志記錄,通過日志分析獲得敏感API調(diào)用序列的步驟;
數(shù)據(jù)分析包括應(yīng)用程序網(wǎng)絡(luò)數(shù)據(jù)包的抓取和數(shù)據(jù)包協(xié)議、地址、內(nèi)容的分析的步驟。
所述靜態(tài)分析的具體步驟為:通過導(dǎo)入IOS手機的app解密工具對應(yīng)用程序解密,并定位app存儲路徑,然后將解密的app導(dǎo)入計算機,再通過基于反匯編文件的敏感API調(diào)用序列分析,得到應(yīng)用程序隱私泄露靜態(tài)分析結(jié)果。
所述基于反匯編文件的敏感API調(diào)用序列分析的步驟為:首先根據(jù)iOS API函數(shù)的功能定義敏感API,然后通過反匯編獲得與應(yīng)用程序源碼對應(yīng)的匯編代碼和部分偽代碼,最后掃描反匯編代碼中出現(xiàn)的敏感API,得到應(yīng)用程序隱私泄露靜態(tài)分析結(jié)果。
所述動態(tài)分析的步驟中,通過Hook隱私相關(guān)系統(tǒng)API函數(shù),監(jiān)控應(yīng)用程序?qū)ζ涞恼{(diào)用行為,通過分析行為記錄日志獲得動態(tài)分析結(jié)果。
所述數(shù)據(jù)分析的步驟中,在應(yīng)用程序運行期間,對手機發(fā)送所有的數(shù)據(jù)包進行協(xié)議、目的IP、發(fā)送內(nèi)容進行分析,根據(jù)分析結(jié)果判斷應(yīng)用程序是否存在泄露用戶隱私數(shù)據(jù)的行為。
一種針對iOS平臺的應(yīng)用程序多維度隱私泄露檢測系統(tǒng),包括:
靜態(tài)分析模塊,用于對應(yīng)用程序解密,并基于反匯編文件的敏感API調(diào)用序列分析,得到應(yīng)用程序隱私泄露靜態(tài)分析結(jié)果;
動態(tài)分析模塊,用于通過Hook隱私相關(guān)系統(tǒng)API函數(shù),監(jiān)控應(yīng)用程序?qū)ζ涞恼{(diào)用行為,通過分析行為記錄日志獲得動態(tài)分析結(jié)果;
數(shù)據(jù)分析模塊,用于在應(yīng)用程序運行期間,對手機發(fā)送所有的數(shù)據(jù)包進行協(xié)議、目的IP、發(fā)送內(nèi)容進行分析,根據(jù)分析結(jié)果判斷應(yīng)用程序是否存在泄露用戶隱私數(shù)據(jù)的行為。
所述靜態(tài)分析模塊包括:
app解密工具,安裝于iOS手機,用于應(yīng)用程序解密,定位app存儲路徑;
app導(dǎo)入工具,安裝于計算機,用于將解密的app導(dǎo)入計算機;
反匯編模塊,用于獲得與應(yīng)用程序源碼對應(yīng)的匯編代碼和部分偽代碼;
敏感API掃描模塊,用于掃描反匯編代碼中出現(xiàn)的敏感API,得到應(yīng)用程序隱私泄露靜態(tài)分析結(jié)果。
所述動態(tài)分析模塊包括:
Tweak程序模塊,用于在越獄iOS系統(tǒng)中注入自定義代碼,對相關(guān)系統(tǒng)隱私API函數(shù)進行Hook和覆蓋;
日志分析模塊,用于分析iOS系統(tǒng)日志中應(yīng)用程序訪問隱私API的行為記錄,獲得動態(tài)分析特征向量,得到動態(tài)分析結(jié)果。
所述數(shù)據(jù)分析模塊包括:
網(wǎng)絡(luò)抓包模塊,用于在應(yīng)用程序運行期間,對手機發(fā)送所有的數(shù)據(jù)包進行協(xié)議、目的IP、發(fā)送內(nèi)容的數(shù)據(jù)包抓??;
數(shù)據(jù)包分析模塊,用于對抓取的應(yīng)用程序的數(shù)據(jù)進行分析。
有益效果:本發(fā)明提供的方法綜合了三種檢測維度,靜態(tài)分析速度快、效率高,可以有效地提高檢測率,但是誤報率較高;動態(tài)分析速度相對較慢,但是可以監(jiān)控應(yīng)用程序?qū)﹄[私數(shù)據(jù)的實際訪問行為,有效地解決了程序加殼、隱藏API調(diào)用等靜態(tài)分析無法解決的問題;而數(shù)據(jù)分析則解決了靜態(tài)分析和動態(tài)分析只能檢測應(yīng)用程序?qū)﹄[私數(shù)據(jù)的訪問,而不能確定應(yīng)用程序是否通過網(wǎng)絡(luò)等途徑泄露隱私數(shù)據(jù)的問題。三種分析方法相輔相成,有效地彌補了單一分析方法自身的局限性,提高了iOS應(yīng)用程序隱私泄露檢測的科學(xué)性和嚴謹性。
附圖說明
圖1為iOS應(yīng)用程序隱私泄露分析流程框圖;
圖2為iOS動態(tài)分析流程框圖;
圖3為數(shù)據(jù)分析流程框圖。
具體實施方式
下面結(jié)合附圖對本發(fā)明作更進一步的說明。
如圖1所示,一種針對iOS平臺的應(yīng)用程序多維度隱私泄露檢測方法,從靜態(tài)分析、動態(tài)分析和數(shù)據(jù)分析三個維度對iOS應(yīng)用程序進行隱私泄露檢測,其中:
靜態(tài)分析包括應(yīng)用程序解密,app存儲路徑定位,反匯編和反匯編源碼的敏感API分析的步驟;
動態(tài)分析包括Hook敏感API函數(shù),通過運行應(yīng)用程序獲得日志記錄,通過日志分析獲得敏感API調(diào)用序列的步驟;
數(shù)據(jù)分析包括應(yīng)用程序網(wǎng)絡(luò)數(shù)據(jù)包的抓取和數(shù)據(jù)包協(xié)議、地址、內(nèi)容的分析的步驟。
iOS應(yīng)用程序靜態(tài)分析主要是基于反匯編文件的敏感API調(diào)用序列分析。靜態(tài)分析的具體步驟為:通過導(dǎo)入IOS手機的app解密工具對應(yīng)用程序解密,并定位app存儲路徑,然后將解密的app導(dǎo)入計算機,再通過基于反匯編文件的敏感API調(diào)用序列分析,得到應(yīng)用程序隱私泄露靜態(tài)分析結(jié)果;基于反匯編文件的敏感API調(diào)用序列分析的步驟為:首先根據(jù)iOS API函數(shù)的功能定義敏感API,然后通過反匯編獲得與應(yīng)用程序源碼對應(yīng)的匯編代碼和部分偽代碼,最后掃描反匯編代碼中出現(xiàn)的敏感API,得到應(yīng)用程序隱私泄露靜態(tài)分析結(jié)果。
iOS應(yīng)用程序動態(tài)分析主要通過Hook隱私相關(guān)系統(tǒng)API函數(shù),監(jiān)控應(yīng)用程序?qū)ζ涞恼{(diào)用行為,通過分析行為記錄日志獲得動態(tài)分析結(jié)果。主要實現(xiàn)原理是編寫tweak程序,Hook隱私API函數(shù),通過監(jiān)控應(yīng)用程序的動態(tài)行為,分析應(yīng)用程序可能出現(xiàn)的隱私泄露行為。關(guān)鍵在于如何利用Hook技術(shù)抽取動態(tài)分析特征向量。動態(tài)分析特征向量的抽取主要是通過Hook技術(shù)對敏感API函數(shù)進行動態(tài)監(jiān)控。首先通過編寫Tweak程序在越獄iOS系統(tǒng)中注入自定義代碼,對相關(guān)系統(tǒng)隱私API函數(shù)進行Hook和覆蓋。API函數(shù)Hook完成后,當iOS系統(tǒng)中運行的應(yīng)用程序試圖通過調(diào)用被Hook的API函數(shù)訪問相關(guān)用戶隱私數(shù)據(jù)時,系統(tǒng)將先執(zhí)行自定義代碼,彈框提示用戶應(yīng)用程序的調(diào)用行為并將應(yīng)用程序名稱、調(diào)用的API函數(shù)名、函數(shù)功能和調(diào)用時間寫入到系統(tǒng)日志中,然后再執(zhí)行原API函數(shù)。最后通過分析iOS系統(tǒng)日志中應(yīng)用程序訪問隱私API的行為記錄,獲得動態(tài)分析特征向量。動態(tài)分析系統(tǒng)流程見圖2,包括以下幾個步驟:
(1)APP向OS發(fā)起讀取Private data的請求,安裝的tweak程序攔截請求信息;
(2)tweak程序分析請求內(nèi)容,將App請求訪問的函數(shù),函數(shù)功能,請求時間,以固定格式寫入系統(tǒng)日志;
(3)tweak程序在手機操作界面彈出消息盒,提示用戶當前應(yīng)用程序正在請求訪問某一函數(shù);
(4)用戶確認提示框內(nèi)容后,Tweak將程序執(zhí)行點轉(zhuǎn)到真實API函數(shù)的入口;執(zhí)行真實API函數(shù),完成APP的功能;
(5)真實API函數(shù)想APP返回請求的數(shù)據(jù);
(6)在OS系統(tǒng)界面處理程序中,調(diào)用系統(tǒng)日志獲取和分析模塊,跟據(jù)tweak記錄信息的固定格式篩選有用信息,并進行統(tǒng)計處理;
(7)根據(jù)日志分析結(jié)果生成動態(tài)分析報告。
iOS應(yīng)用程序數(shù)據(jù)分析主要是基于應(yīng)用程序的數(shù)據(jù)包抓取和分析。在應(yīng)用程序運行期間,對手機發(fā)送所有的數(shù)據(jù)包進行協(xié)議、目的IP、發(fā)送內(nèi)容進行分析,根據(jù)分析結(jié)果判斷應(yīng)用程序是否存在泄露用戶隱私數(shù)據(jù)的行為。數(shù)據(jù)分析的系統(tǒng)框圖如圖3,主要流程包括tshark抓包分析,和SSL數(shù)據(jù)捕獲兩部分。經(jīng)過數(shù)據(jù)分析后,在通過日志返回結(jié)果可以看到數(shù)據(jù)包加密前的明文數(shù)據(jù),但是也很可能出現(xiàn)SSL加密前的數(shù)據(jù)已經(jīng)經(jīng)過應(yīng)用程序私有加密了。再結(jié)合上文的網(wǎng)絡(luò)協(xié)議和地址分析可以檢測到四種可能的隱私泄露行為:
(1)應(yīng)用程序發(fā)送數(shù)據(jù)到非法地址,可以解析出發(fā)送數(shù)據(jù)為敏感信息。
(2)應(yīng)用程序發(fā)送數(shù)據(jù)到非法地址,但無法解析出數(shù)據(jù)是否為敏感信息。
(3)未經(jīng)用戶同意,應(yīng)用程序發(fā)送數(shù)據(jù)到應(yīng)用程序官方服務(wù)器,可以解析出發(fā)送數(shù)據(jù)為敏感信息。
(4)未經(jīng)用戶同意,應(yīng)用程序發(fā)送數(shù)據(jù)到應(yīng)用程序官方服務(wù)器,無法解析出數(shù)據(jù)是否為敏感信息。
另外,基于上述方法,本發(fā)明還提供了一種針對iOS平臺的應(yīng)用程序多維度隱私泄露檢測系統(tǒng),包括:
靜態(tài)分析模塊,用于對應(yīng)用程序解密,并基于反匯編文件的敏感API調(diào)用序列分析,得到應(yīng)用程序隱私泄露靜態(tài)分析結(jié)果;
動態(tài)分析模塊,用于通過Hook隱私相關(guān)系統(tǒng)API函數(shù),監(jiān)控應(yīng)用程序?qū)ζ涞恼{(diào)用行為,通過分析行為記錄日志獲得動態(tài)分析結(jié)果;
數(shù)據(jù)分析模塊,用于在應(yīng)用程序運行期間,對手機發(fā)送所有的數(shù)據(jù)包進行協(xié)議、目的IP、發(fā)送內(nèi)容進行分析,根據(jù)分析結(jié)果判斷應(yīng)用程序是否存在泄露用戶隱私數(shù)據(jù)的行為。
靜態(tài)分析模塊包括:
app解密工具,安裝于iOS手機,用于應(yīng)用程序解密,定位app存儲路徑;
app導(dǎo)入工具,安裝于計算機,用于將解密的app導(dǎo)入計算機;
反匯編模塊,用于獲得與應(yīng)用程序源碼對應(yīng)的匯編代碼和部分偽代碼;
敏感API掃描模塊,用于掃描反匯編代碼中出現(xiàn)的敏感API,得到應(yīng)用程序隱私泄露靜態(tài)分析結(jié)果。
動態(tài)分析模塊包括:
Tweak程序模塊,用于在越獄iOS系統(tǒng)中注入自定義代碼,對相關(guān)系統(tǒng)隱私API函數(shù)進行Hook和覆蓋;
日志分析模塊,用于分析iOS系統(tǒng)日志中應(yīng)用程序訪問隱私API的行為記錄,獲得動態(tài)分析特征向量,得到動態(tài)分析結(jié)果。
數(shù)據(jù)分析模塊包括:
網(wǎng)絡(luò)抓包模塊,用于在應(yīng)用程序運行期間,對手機發(fā)送所有的數(shù)據(jù)包進行協(xié)議、目的IP、發(fā)送內(nèi)容的數(shù)據(jù)包抓取;
數(shù)據(jù)包分析模塊,用于對抓取的應(yīng)用程序的數(shù)據(jù)進行分析。
以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當指出:對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應(yīng)視為本發(fā)明的保護范圍。