王玉良,陳曉東,吳吞
(中國電信股份有限公司上海研究院,上海 200122)
基于iOS系統(tǒng)的惡意行為檢測研究
王玉良,陳曉東,吳吞
(中國電信股份有限公司上海研究院,上海 200122)
首先列舉了多個iOS平臺的惡意應(yīng)用的案例,通過剖析作案手法以及造成的惡劣影響,分析了iOS平臺下移動應(yīng)用的主要惡意行為特征,研究了惡意行為檢測過程中的各項關(guān)鍵技術(shù),提出了iOS應(yīng)用惡意行為檢測的模型。最后,給出了iOS應(yīng)用惡意行為檢測的解決方案。
iOS;惡意行為;iOS應(yīng)用安全
iOS操作系統(tǒng)在設(shè)計之初就擁有諸多優(yōu)良的安全保護機制,并且歷經(jīng)蘋果公司多年的不斷升級以及改進,現(xiàn)在已經(jīng)發(fā)展成為一款安全性能非常良好的移動操作系統(tǒng)。除了系統(tǒng)本身的安全機制外,蘋果還引入了App Store(應(yīng)用商店)保護系統(tǒng)不受惡意軟件入侵。但是盡管如此,iOS各種漏洞和惡意應(yīng)用還是頻頻出現(xiàn)。
本文以iOS應(yīng)用的惡意行為為基點,首先從已經(jīng)爆發(fā)的應(yīng)用惡意行為開始,管中窺豹,對現(xiàn)在iOS應(yīng)用安全的嚴峻形勢做一個描述,然后對各種惡意行為做分析和歸類,最后給出一套解決方案。
從歷年的案例著手,分析那些曾經(jīng)猖獗目前已然銷聲匿跡的應(yīng)用或者依然猖獗在一線的應(yīng)用。
2.1 海馬蘋果助手
海馬蘋果助手作為第三方應(yīng)用商店,之所以受到用戶的喜愛,是因為一些在蘋果應(yīng)用商店收費的軟件通過它卻可以免費獲取,而且,海馬蘋果助手使用起來非常簡單,可以讓用戶更容易安裝應(yīng)用程序和管理用戶設(shè)備。
不幸的是,這個特別的輔助應(yīng)用程序有著用戶未知的惡意行為。首先它會收集用戶的Apple ID和密碼,具體如圖1所示。
圖1 收集手機用戶名和密碼界面
而且,默認情況下iOS設(shè)備上的照片不會自動同步到電腦,但是海馬蘋果助手會自動同步用戶的照片到用戶的計算機。更為過分的是,海馬蘋果助手會調(diào)用很多竊取用戶信息的函數(shù)(如圖2所示),而這些函數(shù)是既非功能需要也非必須調(diào)用。
圖2 收集用戶信息界面
海馬蘋果助手作為第三方應(yīng)用商店,方便了用戶的使用,但是也引入了嚴重的安全風險,竊取用戶的Apple ID本身是一個嚴重的風險,明顯的惡意代碼也令人擔憂。目前,海馬蘋果助手依然有大批用戶使用。
2.2 XcodeGhost安全事件
這是惡意軟件首次成批量繞開蘋果嚴格的應(yīng)用審批流程,進入蘋果應(yīng)用商店。根據(jù)信息安全公司Palo Alto Networks的數(shù)據(jù),在此次攻擊發(fā)生之前,應(yīng)用商店總共只發(fā)現(xiàn)過5款惡意應(yīng)用。
XcodeGhost本身是一段惡意代碼,其通過篡改蘋果官方的Xcode安裝包,加入了原本不存在的CoreService庫文件。使用此版本Xcode編譯出的App由于加載了此庫,導致惡意代碼被執(zhí)行。
惡意代碼包括兩部分:UIWindow(didFinishLaunching WithOptions)和UIDevice(AppleIncReservedDevice)。
筆者偷偷加載了有問題的library到分組中,并巧妙利用了Objective C的運行特性,使用Category污染App。通過重寫原有的UIWindow的makeKeyAndVisible(開發(fā)者在App啟動時通常會調(diào)用此函數(shù))方法,其添加了一個定時任務(wù)和4個通知處理函數(shù)。
定時任務(wù):每15 s執(zhí)行一次,其作用在于當App在前臺運行時,獲取用戶的隱私信息(具體看后文),并對其進行DES加密(密鑰為@“stringWithFormat”,其可在服務(wù)端對其對稱解密,對于捕捉到異常流量而又不知道加密算法的人來說只是一堆亂碼),然后將數(shù)據(jù)通過HTTP請求發(fā)送到其設(shè)定的服務(wù)器。
4個通知函數(shù)如下所示。
·監(jiān)聽 App進入 active狀態(tài)(到前臺)的通知,以@“l(fā)aunch”為參數(shù)(此參數(shù)將同個人隱私數(shù)據(jù)一同被打包),發(fā)送網(wǎng)絡(luò)請求給上述后臺服務(wù)器。
·監(jiān)聽App退出active狀態(tài)(App切換)的通知,以@“resignActive”為參數(shù)發(fā)送網(wǎng)絡(luò)請求。
·監(jiān)聽 App將要 terminate(殺掉)的通知,以@“terminate”為參數(shù)發(fā)送網(wǎng)絡(luò)請求。
·監(jiān)聽 App進入后臺(退到后臺)的通知,以@“suspend”為參數(shù)發(fā)送網(wǎng)絡(luò)請求。監(jiān)聽究竟哪些信息被偷偷發(fā)上去。
·Timestamp:時間戳。
·App:被攻擊的App顯示名,如微信。
·bundle:App的唯一標記。
·DoS系統(tǒng)版本號:如iOS 8/iOS 9等。
·type:當前內(nèi)核名(如iPhone 6等設(shè)備模型,具體區(qū)分了iPhone4S/iPhone5/iPhone5S/iPhone6/iPhone6S等)。
·status:當前App的狀態(tài)(前臺/后臺等)。
·version:App版本(如微信6.2.5)。
·language:當前語言(中英文)。
·country:當前國家。
·Idfv:唯一區(qū)分某union(設(shè)備和App)的標記符。
此次受到影響的App程序眾多,據(jù)稱受感染的App多達76個,而記載著App名單的截圖應(yīng)該來自“360安全播報平臺”,其在2016年9月19日更新的消息中將受XcodeGhost感染的App數(shù)量上調(diào)為344款;而截至9月20日下午的通報,受感染的App數(shù)量為1 078款。
知名度較高的部分App為微信、網(wǎng)易云音樂、滴滴打車、高德地圖、12306、同花順、中信銀行動卡空間、簡書等,涉及即時通信軟件、地圖應(yīng)用甚至金融服務(wù)產(chǎn)品。
對于用戶來說,這是自從 iOS誕生以來最大的一次威脅;對于蘋果公司來說,這是自成立以來最大的一次安全挑戰(zhàn)。
2.3 愛思助手
該木馬通過PC感染未越獄的iOS設(shè)備,而無需利用企業(yè)證書。“愛思助手”利用了蘋果數(shù)字版權(quán)管理(digital right management,DRM)上的FairPlay漏洞來感染iOS設(shè)備。蘋果允許用戶通過計算機上的iTunes客戶端里的應(yīng)用商店購買和下載iOS應(yīng)用,然后將之安裝到自己的iOS設(shè)備上。
每款安裝到iOS設(shè)備上的應(yīng)用都需要提供一個切實購買的授權(quán)碼,而在FairPlay中間人攻擊中,攻擊者在應(yīng)用商店上購買了一款應(yīng)用,然后攔截并保存了該授權(quán)碼。之后,他們用開發(fā)出來的PC軟件來模擬iTunes客戶端的行為,欺騙iOS設(shè)備相信應(yīng)用是由受害人購買的。
用戶因而可以安裝他們實際未支付過的應(yīng)用,但軟件開發(fā)者也能夠借此向不知情用戶的設(shè)備偷偷安裝惡意軟件。
2.4 其他應(yīng)用
YiSpecter可以下載、安裝和啟動應(yīng)用,替換已安裝應(yīng)用,顯示非法應(yīng)用的廣告以及改變 Safari默認搜索引擎,將用戶信息上傳至遠程服務(wù)器。
InstaAgent是一款可以與Instagram賬戶連接,并用來追蹤來訪用戶的應(yīng)用,但該應(yīng)用擅自存儲用戶賬戶和密碼,并以明文上傳至instagram.zunamedia.com遠程服務(wù)器。不僅如此,InstaAgent在與用戶的 Instagram賬戶連接后,還會在未經(jīng)用戶允許的情況下擅自發(fā)布垃圾信息和圖片。Instagram本身尚未允許通過第三方應(yīng)用發(fā)布狀態(tài),所以InstaAgent直接以用戶的身份發(fā)布這些垃圾圖片,對用戶和用戶的好友都會造成困擾。
由此可見,iOS系統(tǒng)絕不是一個絕對安全的環(huán)境,對手機的依賴加深時,越來越多的信息會被存儲在手機上,破解手機的價值會越來越大,應(yīng)用的惡意行為造成的傷害也會越大。從現(xiàn)在的趨勢看,更多的不法分子看到了這一點,并打算從中牟利,所以,現(xiàn)在以及將來iOS應(yīng)用安全的形勢都是嚴峻的,應(yīng)當積極與之對抗。
通過以上案例,發(fā)現(xiàn)應(yīng)用的惡意行為分為以下方面:
· 下載、安裝、啟動應(yīng)用;
· 竊取用戶信息;
· 操作用戶文件;
· 顯示非法廣告;
· 惡意傳播信息。
這些惡意行為有一個共同點:完成這些惡意行為需要調(diào)用相應(yīng)的API(application programming interface,應(yīng)用程序接口),如果能得到該應(yīng)用調(diào)用的所有敏感API,獲取該行為的信息,就能判斷該行為是否為惡意行為。
結(jié)合以上構(gòu)思和反復(fù)的實踐,提出以下解決方案。
3.1 方案技術(shù)原理
本方案的主要原理為:對應(yīng)用的API進行Hook并記錄,以一定時間為周期,將應(yīng)用行為梳理為行為序列,以行為序列為單位,對比惡意行為序列庫,判斷該行為序列是否為惡意行為序列。
該系統(tǒng)分為兩部分:行為追蹤器和行為分析器。其中,行為追蹤器安裝在iOS終端中,通過Hook關(guān)鍵行為的API來獲取指定軟件的關(guān)鍵行為,這些 API包括:文件系統(tǒng)、用戶偏好設(shè)置、密鑰鏈、通用加密、安全框架、HTTP、粘貼板、URL方案、XML等。最后記錄這些函數(shù)調(diào)用的信息并永久保存在數(shù)據(jù)庫中。行為分析器安裝在PC設(shè)備中,將行為追蹤器生成的數(shù)據(jù)庫文件作為輸入,進行分析處理后,在本地生成行為序列的結(jié)果報表,通過與惡意行為序列庫進行對比,識別是否是惡意行為。
惡意行為序列庫以行為序列為單位進行存儲,記錄非法的惡意行為,該庫會在實踐中不斷完善,也會在其他合作機構(gòu)中進行補充。
3.2 方案架構(gòu)
該系統(tǒng)架構(gòu)如圖 3所示,其主要由 iOS終端層和PC設(shè)備層兩部分組成:iOS終端層用于監(jiān)測和記錄應(yīng)用行為,PC設(shè)備層用于提取和解析來自 iOS終端層的數(shù)據(jù)。
Theos框架是一套越獄開發(fā)環(huán)境,由iOS越獄界知名人士DustinHowett開發(fā)并分享到GitHub上。Theos與其他越獄開發(fā)工具相比,最大的特點就是簡單,可以讓使用者把精力都放在開發(fā)工作上。本方案就是基于Theos框架進行開發(fā)的。
圖3 方案架構(gòu)
用戶配置模塊使用Setting.bundle在設(shè)置中添加配置項,配置項包括兩部分:一部分對檢測的應(yīng)用開啟檢測,支持各個應(yīng)用同時檢測,該操作會將用戶的配置存儲到一個plist文件中,另一部分是應(yīng)用行為的各個API檢測的開啟或關(guān)閉,列表中所有的檢測默認都是開啟的。
行為追蹤模塊、數(shù)據(jù)轉(zhuǎn)存模塊:如圖4所示,行為追蹤模塊使用圖3羅列的各種敏感API進行Hook,將應(yīng)用的行為存儲在本地。但是Hook API對所有調(diào)用者都是有效的,記錄的結(jié)果有些并不需要。需要對這些調(diào)用加以甄別,精確地找到需要檢測應(yīng)用的行為,所以在開始追蹤應(yīng)用行為之前,該模塊會讀取用戶配置信息,從用戶配置信息中獲取需要檢測的應(yīng)用ID,然后在Hook之前使用%ctor函數(shù)對其進行選擇性%init,由于iOS設(shè)備中程序文檔目錄在var/mobile/Containers/Data/Applocation中,所以很容易找到對應(yīng)程序的目錄文件,并在該應(yīng)用的文檔里創(chuàng)建數(shù)據(jù)庫,對該應(yīng)用的行為進行保存。
在PC層布置服務(wù)器,首先將計算機與iOS設(shè)備置于同一網(wǎng)段下,服務(wù)器通過SSH使用戶登錄移動設(shè)備,服務(wù)器會通過用戶配置模塊獲取應(yīng)用的ID,并得到應(yīng)用的文檔目錄,將沙盒中的數(shù)據(jù)庫文件分別提取到PC端,如圖5所示。
從數(shù)據(jù)庫中提取出來的是一條條的API和參數(shù),會記錄一個額外的參數(shù):調(diào)用API的系統(tǒng)時間。數(shù)據(jù)庫數(shù)據(jù)按照系統(tǒng)時間通過數(shù)組保存,即梳理成一個行為序列。
惡意行為序列庫是一個特征庫,里面會留存已知的惡意行為,特征庫在運作的時候會不斷完善,也會從合作的機構(gòu)中獲取新特征。當?shù)玫叫袨樾蛄袝r,立刻與特征庫進行比對,比對成功即可認為該行為序列為惡意行為序列。
在擁有大量數(shù)據(jù)時,人工的效率會變得很低,所以進行惡意行為序列匹配時,使用一個通用算法進行匹配——KMP(Knuth-Morris-Pratt,字符串查找)算法,常用于在一個文本串S內(nèi)查找一個模式串P的出現(xiàn)位置,這個算法由Knuth D、Pratt V、Morris J H三人于1977年聯(lián)合發(fā)表,故取這3人的姓氏命名此算法。
當本方案運行在iOS設(shè)備中時,會一直記錄應(yīng)用的行為(除非在用戶設(shè)置模塊中去掉該應(yīng)用),因此鼓勵使用周期性的檢測方法,惡意行為會存在潛伏期,會使用一個星期甚至一個月作為一個周期去檢測該應(yīng)用。
圖4 用戶配置
圖5 數(shù)據(jù)庫提取的行為
最后的報告中會顯示該周期的具體時間,并判斷該周期內(nèi)的行為是否存在惡意行為,還會列出一些敏感性的行為以供人工二次審查。
3.3 系統(tǒng)實現(xiàn)流程
系統(tǒng)實現(xiàn)流程如圖6所示。
該系統(tǒng)的實現(xiàn)流程分為兩部分。
(1)iOS設(shè)備上的流程
iOS設(shè)備上的流程具體如下:
· 通過用戶接口配置監(jiān)測應(yīng)用;
· 行為追蹤模塊基于Theos框架,對應(yīng)用行為的API進行Hook,截獲應(yīng)用行為API的系統(tǒng)時間、參數(shù)、返回值;
·將API、參數(shù)、返回值、系統(tǒng)時間存儲到本地。
(2)PC端數(shù)據(jù)的提取和解析流程
PC端數(shù)據(jù)的提取和解析流程具體如下:
·登錄用戶接口,使用數(shù)據(jù)提取模塊提取數(shù)據(jù)到PC端;
·數(shù)據(jù)處理模塊將數(shù)據(jù)梳理成行為序列,使用KMP算法將之與惡意行為序列庫進行對比,然后對該行為序列進行評分;
·根據(jù)行為序列分析模塊產(chǎn)生的分析結(jié)果,匯總并輸出檢測報告。
圖6 系統(tǒng)實現(xiàn)流程
4.1 現(xiàn)有方案架構(gòu)
如圖7所示,現(xiàn)有方案架構(gòu)是一種基于Hook的iOS關(guān)鍵行為檢測裝置和方法,該檢測裝置通過Hook關(guān)鍵行為的API,實時捕獲iOS系統(tǒng)的關(guān)鍵行為,用于監(jiān)控iOS系統(tǒng)的關(guān)鍵行為,獲取與該關(guān)鍵行為相關(guān)的信息,并在服務(wù)端實時展示給用戶,或者保存為結(jié)果報表,以供用戶進行審核與評估。該裝置由分別設(shè)置在iOS終端層的行為追蹤模塊以及位于PC設(shè)備層、順序連接的用戶接口模塊、安全風險報告模塊和行為分析模塊共4個部件組成。
4.2 方案對比
本文所提方案與現(xiàn)有方案對比有諸多優(yōu)點,具體如下。
·現(xiàn)有的方案主要針對私有API進行檢測,不能完成對應(yīng)用惡意行為的檢測,本文所提方案針對的是對移動應(yīng)用惡意行為的檢測。
·現(xiàn)有方案的通信單元是即時通信,針對單個API即單個行為進行檢測,本文所提方案采用本地存儲策略,針對的不是單個行為而是行為序列,以一定周期(可能是一周或者更長,這是即時通信無法完成的)的行為序列判斷該行為是不是惡意行為,對于惡意行為的檢測更具有針對性、可行性。
·現(xiàn)有方案由于采用即時通信策略,只能短時對單個應(yīng)用進行檢測,本文所提方案采用本地存儲策略,可以長期對多個應(yīng)用進行檢測。
隨著移動互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,人們可以通過移動設(shè)備拍照、錄制視頻、玩游戲、炒股或者辦公,以手機為代表的智能終端逐漸成為人們?nèi)粘I钪斜夭豢缮俚墓ぞ?。但值得注意的是,移動設(shè)備里存儲了大量的用戶數(shù)據(jù)及隱私信息。手機一旦出現(xiàn)安全問題,就會嚴重威脅到用戶的數(shù)據(jù)和隱私安全?,F(xiàn)在,手機功能越來越強大,上網(wǎng)越來越便利,人們在手機上安裝的應(yīng)用也越來越多,隨之而來的安全問題也越來越突出。iOS作為目前最流行的移動智能應(yīng)用平臺,同時也是市場占有率極高的移動操作系統(tǒng),吸引了大量的惡意攻擊者通過應(yīng)用商店發(fā)布帶有惡意行為的應(yīng)用軟件。對用戶的信息和財產(chǎn)安全構(gòu)成了嚴重的威脅,這種現(xiàn)象亟待解決。
惡意代碼的檢測技術(shù)能夠促進移動互聯(lián)網(wǎng)產(chǎn)業(yè)健康和穩(wěn)定的發(fā)展。建立移動應(yīng)用軟件的安全監(jiān)測技術(shù)體系,建設(shè)權(quán)威的第三方檢測平臺,有利于移動應(yīng)用軟件產(chǎn)業(yè)鏈的形成和發(fā)展。與此同時,應(yīng)用軟件的安全性與用戶利益緊密相關(guān),只有科學的、權(quán)威的惡意代碼檢測系統(tǒng),才能構(gòu)建一個用戶可信賴的移動互聯(lián)網(wǎng)應(yīng)用使用環(huán)境,安全要求高、經(jīng)濟附加值高的移動應(yīng)用才值得推廣和應(yīng)用,才能使移動互聯(lián)網(wǎng)真正地繁榮發(fā)展。
圖7 現(xiàn)有方案架構(gòu)
參考文獻:
[1] 徐磊.iOS應(yīng)用安全無法銷毀的文件 [J].計算機與網(wǎng)絡(luò), 2015,41(20):46-47. XU L.iOS application security files cannot be destroyed[J]. Computer&Network,2015,41(20):46-47.
[2]劉朋飛.iOS應(yīng)用程序的攻擊手段分析及防護 [D].成都:電子科技大學,2014. LIU P F.Analysis and protection of attack means of iOS App[D]. Chengdu:University of Electronic Science and Technology of China,2014.
[3]羅喧,梁柏青,潘軍彪,等.智能手機應(yīng)用安全關(guān)鍵技術(shù)探討[J].電信科學,2013,29(5):19-27. LUO X,LIANG B Q,PAN J B,et al.Study on the key technologies of smartphone application security[J].Telecommunications Science, 2013,29(5):19-27.
[4]李柏嵐,谷大武.iOS平臺的軟件安全性分析[D].上海:上海交通大學,2011. LI B L,GU D W.Software security analysis of iOS platform[D]. Shanghai:Shanghai Jiao Tong University,2011.
[5] 黃斐一,武靜雅,孔繁盛.移動互聯(lián)網(wǎng)手機應(yīng)用安全研討[J].移動通信,2014(17):60-63. HUANG F Y,WU J Y,KONG F S.Research on application security of mobile internet[J].Mobile Communications,2014(17):60-63.
Research on malicious behavior detection based on iOS system
WANG Yuliang,CHEN Xiaodong,WU Tun
Shanghai Branch of China Telecom Co.,Ltd.,Shanghai 200122,China
Firstly,the cases of malicious application of multiple iOS platforms were enumerated.The main malicious behavior of mobile application under iOS platform was analyzed by dissecting the misuse of crime and the bad influence.The key technologies of malicious behavior detection process were studied.The iOS application malicious behavior detection model was put forward.Finally,iOS application malicious behavior detection solution was given.
iOS,malicious behavior,iOS application safety
TP309
A
10.11959/j.issn.1000-0801.2017047
王玉良(1992-),男,中國電信股份有限公司上海研究院研究員,主要研究方向為移動互聯(lián)網(wǎng)安全、應(yīng)用仿真測評等。
陳曉東(1984-),男,中國電信股份有限公司上海研究院研究員,主要研究方向為移動應(yīng)用安全、漏洞挖掘技術(shù)等。
吳吞(1993-),男,中國電信股份有限公司上海研究院研究員,主要研究方向為移動互聯(lián)網(wǎng)安全、應(yīng)用仿真測評等。
2017-01-22;
2017-02-14