王繼剛,李媛媛,高珍禎,王 偉
(1.中興通訊股份有限公司,成都 610041;2.北京交通大學 智能交通數(shù)據(jù)安全與隱私保護技術北京市重點實驗室,北京 100044)
近些年來,智能電視呈爆發(fā)式增長,進入了越來越多的家庭.操作系統(tǒng)作為智能電視的關鍵性基礎工作,與智能電視的安全保障密切相關.廣電總局帶頭研發(fā)了一套應用于網(wǎng)絡電視的操作系統(tǒng),NGB TVOS(TVOS)[1].TVOS基于Linux系統(tǒng),具有自主知識產(chǎn)權、可管可控、安全高效、開放兼容等特點.TVOS利用現(xiàn)有的應用資源為智能電視創(chuàng)建電視應用生態(tài)系統(tǒng),引入電視應用商店.目前,主流的第三方獨立智能電視應用市場主要有:歡視商店、奇珀市場、當貝市場等.其中歡視商店是我國廣電行業(yè)第一個正式商用的TVOS平臺應用商店.
目前,國內(nèi)相關研究人員針對TVOS系統(tǒng)做了諸多研究和努力.文獻[2]對TVOS的系統(tǒng)架構進行深入分析,并總結TVOS系統(tǒng)的主要技術亮點.文獻[3]介紹了TVOS應用對底層組件的調(diào)用,分析了應用框架層中API的封裝模型.文獻[4]分析了TVOS組件層的組件封裝模型,闡述了組件內(nèi)部的構成與組件內(nèi)外部間的通信機制.文獻[5]對TVOS智能電視操作系統(tǒng)的安全機制、安全體系架構加以分析論述,提出了廣電智能終端操作系統(tǒng)自身的安全模型及技術實現(xiàn)方案.除了對TVOS的系統(tǒng)架構進行分析,還有部分針對TVOS應用的研究.文獻[6]對TVOS應用的數(shù)字簽名進行了介紹.TVOS中的應用采用多種數(shù)字簽名方法確保自身的完整性、可用性與安全性,未經(jīng)認證和授權的TVOS應用能被有效的防止安裝.文獻[7]闡述了在TVOS上開展的終端應用管理的可行性及應用開發(fā)的一些探索.文獻[8]圍繞TVOS所支撐的各類服務和應用介紹了智能電視應用的分類情況,并重點探討了幾類典型智能電視應用的技術特點和主要功能.
智能電視領域剛剛興起,目前針對智能電視各方面的研究也相對較少.但TVOS系統(tǒng)與Android系統(tǒng)存在相似之處,且TVOS應用與Android移動終端應用也存在一定的聯(lián)系,因此,Android移動終端惡意應用檢測對TVOS惡意應用檢測具有一定的借鑒意義.文獻[9-10]提取Android應用的字符串類特征用于Android惡意應用檢測.文獻[11]采用多類字符串特征和應用的圖結構特征相結合的方法對Android惡意應用進行檢測.文獻[12-15]采用的Android惡意應用檢測的特征、特征篩選的方法等對于TVOS應用安全管理具有借鑒意義.
隨著智能電視領域的不斷發(fā)展,未來TVOS應用市場中必將會大量涌現(xiàn)各類TVOS應用,應用的功能也將日益復雜,這些變化會給TVOS的應用管理和系統(tǒng)安全帶來新的挑戰(zhàn).本文作者對TVOS應用的行為進行分析,對TVOS惡意應用的檢測方法展開研究.選取TVOS應用的函數(shù)調(diào)用圖作為分析對象,采用基于核函數(shù)計算算法和基于圖相似度算法的函數(shù)調(diào)用圖分析方法來提取特征,采用機器學習算法對TVOS應用進行檢測.
TVOS采用分層結構,其架構從上到下分別為應用程序?qū)?、應用框架層、?zhí)行環(huán)境層、功能組件層、硬件抽象層和內(nèi)核層.與Android類似,TVOS中Java應用的執(zhí)行環(huán)境是在Linux內(nèi)核上選用了開源的Dalvik虛擬機,并在Dalvik虛擬機上為Java應用搭建了應用框架層.其次,TVOS也提供了部分與Android相同的系統(tǒng)服務.
1.1.1 內(nèi)置數(shù)字電視業(yè)務模塊
TVOS是專業(yè)的智能電視操作系統(tǒng).其應用框架層、組件層和內(nèi)核層均內(nèi)置了數(shù)字電視業(yè)務功能的模塊.數(shù)字電視業(yè)務功能成為TVOS必不可少的一部分.組件層的DTV組件承擔大部分數(shù)字電視業(yè)務功能,由DTV服務端實現(xiàn)其核心能力,DTV客戶端提供接口,內(nèi)核層的Binder用來實現(xiàn)服務端和客戶端驅(qū)動通信.應用框架層實現(xiàn)了DTV Java A-PI以方便Java應用調(diào)用DTV組件.
1.1.2 資源管理框架
為了提高系統(tǒng)資源的管理效率,提升各類應用的服務質(zhì)量與速度,TVOS的應用框架層、組件層和內(nèi)核層中均內(nèi)置了資源管理模塊,構成了全局的資源管理框架.其能夠?qū)崿F(xiàn)的功能為:1)對系統(tǒng)資源開展實時監(jiān)控,根據(jù)需求與情況分配資源,及時更新資源信息,系統(tǒng)資源過載或資源分配后進行通告;2)獲取應用的狀態(tài)列表,負責應用調(diào)度模塊,若有應用加入時進行通告;3)策略庫更新;4)充當數(shù)據(jù)庫的接口等.
1.1.3 Java應用框架的“墊片”機制
墊片機制是指為了適應不同的智能操作系統(tǒng),在應用框架層對功能組件進行重新組合封裝.墊片機制在不改變底層功能組件的核心能力的基礎上,能夠兼容與支持其他操作系統(tǒng)的應用.
1.1.4 TVM環(huán)境實現(xiàn)對J2ME應用的支持
TVOS采用Dalvik虛擬機作為Java應用的執(zhí)行環(huán)境.Dalvik虛擬機的優(yōu)點是可讓每個應用在單獨的Dalvik虛擬機中運行,多個虛擬機同時運行.即使單個應用崩潰也不影響其他應用的正常運行,體現(xiàn)其良好的隔離性.然而,TVOS的部分功能依賴于Sun J2ME規(guī)范,廣電運營商前期也開發(fā)了很多基于Sun J2ME規(guī)范的Java應用.為了利用廣電運營商前期的開發(fā)成果同時吸納Dalvik虛擬機的優(yōu)點,TVOS引入了TVM(Television Virtual Machine),其原理是對Dalvik虛擬機進行如下改造:在Dalvik的核心Java庫中補充了J2ME的相關庫;添加可將J2ME應用的.jar包轉(zhuǎn)換為.apk包的轉(zhuǎn)換工具.
1.1.5 安全管理框架
TVOS引入安全管理框架,由每層的安全管理模塊共同組成.安全管理框架將TVOS系統(tǒng)分為傳統(tǒng)的軟件執(zhí)行環(huán)境(Rich Execution Environment,REE)和安全執(zhí)行環(huán)境(Trusted Execution Environment,TEE)兩部分.REE和TEE之間存在硬件隔離,只能通過系統(tǒng)提供的通信接口交換信息,同時規(guī)定在REE側(cè)無法訪問TEE側(cè)的數(shù)據(jù).TEE側(cè)有安全管理模塊,可為安全業(yè)務提供基礎軟件服務,每個安全業(yè)務在TEE側(cè)有一個對應的應用負責相關安全數(shù)據(jù)的處理.安全管理框架實現(xiàn)的主要功能有:存儲、處理、傳輸需要保護的敏感數(shù)據(jù);在底層硬件中添加安全芯片防止二次開發(fā)與刷機ROOT等操作;采取驗證字節(jié)碼、校驗底層軟件等方式實現(xiàn)系統(tǒng)的安全管理.
1.1.6 Java與Web并重
Java應用側(cè)重于邏輯運算,具有良好的跨平臺通用性.Web應用側(cè)重于信息呈現(xiàn).為了既能直接使用現(xiàn)有的Java應用,又能更好地兼容日益增長的Web應用,TVOS 選擇了“以 Web 應用為發(fā)展主線,發(fā)展初期同時支持 Java 和 Web 應用”的發(fā)展策略,提供了兩種執(zhí)行環(huán)境,分別用于運行Java應用與Web應用,且在系統(tǒng)架構中二者并重.
現(xiàn)有的TVOS應用包括Java應用和Web應用兩類,其中,Java應用與Android應用類似,應用安裝包的格式為.apk.
1.2.1 權限對比
權限限制了應用程序?qū)δ承┫到y(tǒng)資源訪問和對某些組件進行調(diào)用.通過應用申請權限的情況可以看出Android應用和TVOS應用在功能方面的側(cè)重點.表1為Android應用使用而TVOS應用不使用的部分權限及這些權限對應的功能.
表1 Android應用使用而TVOS應用不使用的部分權限
表1中主要有體感,實時定位,讀取或?qū)懭胪ㄔ捰涗?,短信通知與接收,顯示推送,指紋識別等.傳統(tǒng)電視體積較大,不易挪動,也不能隨身攜帶.上述功能的缺少與電視的常規(guī)特性相符.
表2為Android應用不使用而TVOS應用使用的部分權限.這些權限對應的功能主要與視頻播放、搜索電視信號、本地視頻上傳與播放,電視節(jié)目回看等功能相關.可以看出,智能電視保留并優(yōu)化了傳統(tǒng)電視的大部分功能,使用戶不但可以觀看電視直播,也可以不用外接設備而播放自己的本地視頻,為用戶帶來更良好的用戶體驗.
表2 TVOS應用使用而Android 應用不使用的部分權限Tab.2 Partial permissions Android applications apply but TVOS applications do not apply
1.2.2 硬件對比
硬件主要指應用程序申請的某種硬件功能,包括攝像頭、傳感器等,在一定程度上也可以反映出應用的主要功能.表3為TVOS應用申請的部分硬件功能.
表3 TVOS應用申請的部分硬件
可以看出TVOS應用申請的硬件主要實現(xiàn)以下功能:網(wǎng)絡連接、藍牙功能、USB功能、音頻輸出、攝影拍照、基本觸屏功能等.對于Android應用而言,android.hardware.gamepad硬件功能的重要性相對較低,但是對于TVOS應用是一項重要的硬件功能.電視機遙控器讓用戶無需觸碰電視機即可操控開關機及調(diào)頻道等功能,已成為電視機必不可少的一部分.
表4為Android應用使用而TVOS應用不使用的部分硬件功能.對應的主要功能有:指紋識別、溫度氣壓濕度計量、實時定位、重力感應、多點觸屏功能、相機高級功能、計步等.TVOS應用功能相對簡單主要歸因于如下幾特征:電視屏幕大,無需高級的多點觸屏功能;電視多數(shù)時間處于室內(nèi),獲取環(huán)境情況主要依賴于網(wǎng)絡信息;多數(shù)電視體積較大、不易移動,無法隨身攜帶,無需計步等功能,所以TVOS應用中不包含此類特征.
表4 Android應用使用而TVOS 應用不使用的部分硬件Tab.4 Partial hardware TVOS applications apply but Android applications do not apply
1.2節(jié)將TVOS應用與Android移動設備應用進行了對比分析.TVOS應用由于載體體積大、難移動、應用功能設計側(cè)重點不同等特性,目前TVOS應用的功能相對簡單.TVOS應用中很多權限和硬件調(diào)用均不涉及,因此采用傳統(tǒng)的用于Android惡意應用靜態(tài)檢測的特征如權限、硬件調(diào)用等對TVOS應用進行檢測可能無法準確的刻畫應用的行為.相比傳統(tǒng)的靜態(tài)特征,函數(shù)調(diào)用圖可以彌補權限、API調(diào)用頻率等特征在TVOS應用程序上表征能力不足的缺點,且它對混淆技術具有一定的抵抗能力.因此本文采用函數(shù)調(diào)用圖作為TVOS惡意應用檢測特征.系統(tǒng)流程如圖1所示.
圖1 系統(tǒng)流程圖Fig.1 Flow chart of system
1)樣本采集與處理:本文采用的應用樣本集由正常應用和惡意應用兩部分構成.正常TVOS應用收集自歡視市場、當貝市場和奇珀市場.惡意TVOS應用來源于多種渠道.標定應用的方法為:將TVOS應用樣本上傳至Virus Total網(wǎng)站進行掃描,當所有殺毒軟件均認為該應用為正常應用才視其為正常應用,超過三分之二的軟件均認為該應用為惡意應用,則視其為惡意應用,否則棄之不用.
2)函數(shù)調(diào)用圖的提取:采用靜態(tài)分析的方法,利用數(shù)據(jù)流分析工具Flowdroid提供的功能獲取函數(shù)調(diào)用圖.
3)函數(shù)調(diào)用圖的處理:本文采用兩種方式對函數(shù)調(diào)用圖進行處理,一種方式是圖核函數(shù)計算:通過解析函數(shù)節(jié)點及其鄰居節(jié)點的關系,對每個函數(shù)節(jié)點進行編碼及編碼壓縮操作,計算兩兩應用之間的核函數(shù),最終獲得核函數(shù)矩陣.另一種方式是計算圖相似度:通過圖相似度算法計算兩兩應用之間的函數(shù)調(diào)用圖的相似度,最終獲得相似度矩陣.
4)惡意應用檢測:將3)中得到的矩陣進行處理,得到特征矩陣,利用SVM、KNN、RF 3種算法進行模型訓練,使用訓練得到的模型對測試樣本進行檢測.
函數(shù)調(diào)用圖能夠準確地描述應用程序內(nèi)部的函數(shù)調(diào)用關系[16].由于TVOS系統(tǒng)的特點,TVOS應用對許多用于Android惡意應用檢測的特征均不涉及,但為實現(xiàn)程序的某些功能,TVOS應用會調(diào)用相應的API函數(shù),這類函數(shù)會在應用的函數(shù)調(diào)用圖中出現(xiàn),且根據(jù)TVOS應用調(diào)用敏感API類包中的函數(shù)情況反映出TVOS應用程序是否涉及惡意行為;其次,基于惡意的TVOS應用一般具有相似的行為,正常的TVOS應用行為多樣化的規(guī)律,將應用函數(shù)調(diào)用圖之間的相似性作為惡意應用檢測的特征,可達到對TVOS惡意應用進行檢測的目的.
函數(shù)調(diào)用圖一般由有向圖G=
圖2 函數(shù)調(diào)用圖Fig.2 Function call graph
2.3.1 函數(shù)調(diào)用圖處理算法
1)函數(shù)調(diào)用圖核函數(shù)計算.其主要思想是通過解析函數(shù)節(jié)點及其鄰居節(jié)點的關系,對每個函數(shù)節(jié)點進行編碼及編碼壓縮操作,計算兩兩應用之間的核函數(shù),最終獲得核函數(shù)矩陣.在生成函數(shù)調(diào)用圖之后,需要對函數(shù)調(diào)用圖中所有的函數(shù)節(jié)點進行編碼.為達到檢測TVOS惡意應用的目的,節(jié)點信息要能反映出該函數(shù)是否可能涉及惡意行為.為此,本文采取了敏感API作為生成節(jié)點編碼的要素.敏感API是指與權限相對應的API函數(shù),若應用程序申請的權限被授予,TVOS應用會通過權限調(diào)用相應的API函數(shù)以達到訪問敏感資源的目的.因此,利用敏感API為要素生成的節(jié)點編碼可以在一定程度上反映出應用的敏感行為.如表5所示,選取了19個敏感API的類包作為函數(shù)節(jié)點的編碼要素.若函數(shù)調(diào)用了指定敏感API類包中的函數(shù),則編碼對應位置1,否則置0,每個函數(shù)被編碼成19位的向量[18].
圖的節(jié)點編碼不僅要考慮圖中節(jié)點函數(shù)所包含的信息,而且需要考慮其拓撲結構.因此要將圖中結點信息與其鄰居節(jié)點的結構信息融合.文獻[19]在構造核函數(shù)時使用壓縮函數(shù)生成更新編碼.壓縮函數(shù)的主要思想為:先將一個節(jié)點的初始編碼左旋一位,然后與其所有的直接相連節(jié)點的初始編碼進行異或,獲得該節(jié)點的更新編碼.壓縮函數(shù)的公式如下
表5 包前綴對應的編碼位
f(v)=ROT1(l(v))⊕
(1)
式中:⊕為異或操作;ROT1表示了將該編碼左旋一位;vi節(jié)點表示v的鄰居節(jié)點.更新節(jié)點編碼反映了節(jié)點函數(shù)的子結構信息,將兩個應用包含的所有非全零節(jié)點的編碼兩兩比對,若兩個節(jié)點的編碼相同,則認為這兩個節(jié)點具有相似的子結構信息.核函數(shù)公式計算如下
(2)
式中:c為兩個應用包含的所有非全零的相同節(jié)點編碼的數(shù)目;na,nb分別為兩個應用的節(jié)點個數(shù);k值越大,兩個應用的行為越相似,相似度越高.計算所有應用之間的k值,即可得到核函數(shù)矩陣M,Mij表示第i個應用程序與第j個應用的核函數(shù).將核函數(shù)矩陣作為機器學習算法的輸入,生成訓練模型.
2)函數(shù)調(diào)用圖的相似度算法.其原理為通過判斷兩個函數(shù)調(diào)用圖是否同構,計算兩個圖的相似度,并形成相似度矩陣,用于預測應用程序是否為惡意應用.
由于命名習慣的不同,不同應用程序中功能大體一致的函數(shù)往往具有不同的函數(shù)名.將這樣的函數(shù)看作是不同的函數(shù)對于計算函數(shù)調(diào)用圖相似度是不利的.因而要將函數(shù)根據(jù)其功能進行重命名.函數(shù)調(diào)用圖的生成依靠應用程序的smali文件,每個smali文件都是一個類,每個類中的函數(shù)都包含一系列的操作碼,這些操作碼代表的功能和出現(xiàn)順序可以一定程度上反映函數(shù)的功能.因此,利用操作碼為函數(shù)重命名可實現(xiàn)函數(shù)的功能命名.具體的重命名過程如下:
1)編程遍歷smali文件夾下所有smali文件,根據(jù)smali文件中的method關鍵字獲取函數(shù)名,寫入指定文件中.如在應用的一個smali文件中包含一個constructor
2)遍歷函數(shù)中的操作碼,根據(jù)操作碼與命名形式之間的對應關系,得出函數(shù)的功能命名:在constructor
3)遍歷應用的函數(shù)調(diào)用圖,利用文件中舊函數(shù)名和新函數(shù)名的對應關系將函數(shù)調(diào)用圖中節(jié)點進行重命名.
表6 部分操作碼與命名形式的對應關系
在對節(jié)點進行重命名后,計算TVOS應用函數(shù)調(diào)用圖兩兩之間相似度.本文中采用的圖相似度算法名為DeltaCon算法[20],該算法主要通過比較兩個圖中相同節(jié)點的連通性來計算兩個圖之間的相似性.給定G1=
1)分別計算兩個圖中成對節(jié)點的影響度,并分別保存在n×n的矩陣S中,矩陣中的項sij表示節(jié)點i對節(jié)點j的影響度,當i到j中高權重短路徑越多,則i對j的影響度越大.影響度的計算采用了置信度傳播(Belief Propagetion,BP)算法.BP算法的兩個關鍵過程為:利用加權乘積計算出所有的局部消息;節(jié)點之間的概率消息在隨機場中的傳遞.函數(shù)調(diào)用圖影響度向量的計算方法如下
[I+ε2D-εA]si=ei
(3)
式中:I為單位矩陣;A為圖的鄰接矩陣,矩陣項為aij;D為對角矩陣,且dii=∑jaij;ei是第i個元素為1的列向量;ε代表捕獲相鄰節(jié)點之間影響的常量,計算公式如下
ε=1/(1+maxi(dii)
(4)
所求si=[si1,…,sin]T,是從第i個節(jié)點對其他節(jié)點影響度的列向量.上述公式可轉(zhuǎn)化為
S=[sij]=[I+ε2D-εA]-1
(5)
2)將兩個圖的影響度矩陣進行比較,計算兩個圖中相同節(jié)點影響度分數(shù)的差異,即計算兩個矩陣的根歐式距離(Root Euclidean Distance,ROOTED)計算公式如下
d=ROOTED(S1,S2)=
(6)
3)為了方便介紹,將結果整合為兩個圖的相似度分數(shù).即
(7)
之后,可生成M,將其作為機器學習算法的輸入,建立訓練模型.
2.3.2 機器學習算法
采用支持向量機、隨機森林和K最近鄰3種有監(jiān)督機器學習算法.
1)支持向量機(Support Vector Machine,SVM)算法基于統(tǒng)計學習理論,主要用途為回歸分析與分類,其核心思想為:給定訓練樣本集,在樣本空間中找到一個最佳劃分超平面,這個最佳劃分超平面不僅能將不同類別的樣本分開,而且產(chǎn)生的分類結果最魯棒,對未見樣本的泛化能力最強.
2)隨機森林(Random Forest,RF)算法利用bootstrap抽樣法有放回地選取一定數(shù)量的樣本,生成m個訓練樣本集,在生成基決策樹時,先從節(jié)點的屬性集合中隨機選擇若干個屬性作為屬性子集,再從這個子集中選擇最優(yōu)屬性進行劃分.當判斷未知樣本的類別時,讓森林中每棵決策樹分別預測該樣本的類別,最終的預測類別由所有基決策樹輸出類別的眾數(shù)決定.
3)K最近鄰算法(K-Nearest Neighborhood,KNN)算法是最簡單的機器學習算法之一,主要用于回歸和分類,主要思想是:基于某種距離度量方法找出訓練樣本集中距離測試樣本點最近的k個樣本,然后根據(jù)這k個鄰居的類別信息確定測試樣本的類別,通常采用“少數(shù)服從多數(shù)”的方法,也可以根據(jù)距離的遠近進行加權平均或加權投票,距離越近的樣本權重越大.
實驗中采用的樣本分為兩類:正常TVOS應用與惡意TVOS應用.在 2016年11月到2017年2月期間從歡視商店、奇珀市場和當貝市場中下載并標定TVOS應用,多種渠道搜集獲取TVOS惡意應用,最終獲得TVOS正常應用1 020個,TVOS惡意應用168個,具體情況如表7所示.
表7 實驗數(shù)據(jù)樣本
為使實驗結果更具普適性,采用了五折交叉驗證方法,數(shù)據(jù)集的80%用作訓練數(shù)據(jù),用來建立完整的分類模型,數(shù)據(jù)集的20%用作測試數(shù)據(jù),用于評估訓練模型的有效性以及測試分類器的效果.
當將函數(shù)調(diào)用圖轉(zhuǎn)化為核函數(shù)矩陣,并將其作為分類器的輸入時,惡意應用檢測的結果如表8所示.
表8 基于核函數(shù)計算的惡意應用檢測實驗結果Tab.8 Experimental results of malware detection based on kernel function %
可以看出,3種分類算法的準確率差異不大.RF算法的準確率最高,達到了95.48%,且RF算法的F-measure值最大,可見RF的整體結果最理想,這是由于RF算法的分類結果經(jīng)多棵決策樹投票而來,體現(xiàn)了集成學習的優(yōu)勢.SVM在惡意應用樣本的識別方面優(yōu)勢較大,真陽性率達到了93.6%,這是由于在訓練SVM分類模型時對于樣本的權重因子進行了調(diào)節(jié),對于數(shù)目少的惡意樣本賦予了較大的權重,從而使模型對于惡意應用的識別能力有所提高,但存在精度較低的缺陷.KNN對惡意樣本的識別能力雖然略遜色,但是誤報率較低,只有0.70%.
將函數(shù)調(diào)用圖轉(zhuǎn)化為圖相似度矩陣,并將其作為分類器的輸入,惡意應用檢測的結果如表9所示.可以看出,與核函數(shù)方法類似,RF取得了最理想的實驗結果,準確率高達98.38%,SVM在惡意應用樣本的識別方面優(yōu)勢明顯,KNN算法的假陽性率最低,僅有0.36%.
表9 基于圖相似度計算的惡意 應用檢測實驗結果Tab.9 Experimental results of malware detection based on similarity of graphs %
表10顯示了本文提出的基于函數(shù)調(diào)用圖分析的TVOS惡意應用檢測方法與基于函數(shù)調(diào)用圖分析的Android惡意應用檢測效果對比情況.從表10中可以看出,不同于Android應用,本文提出的兩種基于函數(shù)調(diào)用圖的惡意應用檢測方法對TVOS的惡意應用的檢測更為有效.
表10 檢測方法對比
兩種函數(shù)調(diào)用圖分析方法對比見表11.表11中,從整體上看,利用圖相似度矩陣訓練的模型效果要略優(yōu)于利用核函數(shù)矩陣的模型,這是由于在生成函數(shù)調(diào)用圖節(jié)點編碼的過程中僅考慮了利用敏感API生成編碼,因此可能會遺漏一些信息,使一部分惡意應用的行為刻畫的不完全.但圖相似度方法準確率的提升是用更多的時間損耗換取的.由于比較應用程序的函數(shù)調(diào)用圖時,需要保證兩個圖的節(jié)點集一致,即取兩個圖節(jié)點的并集.而應用程序的函數(shù)調(diào)用圖往往龐大而復雜,節(jié)點數(shù)目較多,兩個圖的節(jié)點的并集更使得節(jié)點數(shù)目成倍增長,生成維數(shù)巨大的矩陣,矩陣運算耗費了大量的時間.所以綜合考慮基于核函數(shù)的分析方法更適用于大量的TVOS應用檢測.
表11 兩種函數(shù)調(diào)用圖分析方法的結果比較
1)TVOS系統(tǒng)與Android系統(tǒng)存在相似之處,且TVOS應用與Android移動終端應用也存在一定的聯(lián)系,因此首先研究了TVOS與Android在系統(tǒng)結構方面不同;其次研究了TVOS應用與Android應用在權限和硬件方面的不同.通過初步分析發(fā)現(xiàn),TVOS應用的功能相對簡單,且TVOS應用中很多權限和硬件調(diào)用均不涉及,因此本文采用函數(shù)調(diào)用圖作為特征來彌補權限、API調(diào)用等特征在TVOS應用上表征能力不足的缺點.
2)提出基于函數(shù)調(diào)用圖分析的TVOS惡意應用檢測方法,采用基于核函數(shù)計算和基于圖相似度計算的函數(shù)調(diào)用圖分析方法提取TVOS應用函數(shù)調(diào)用圖中的結構信息,使用SVM、KNN和RF 3種機器學習算法進行訓練、分類.
3)實驗結果顯示,基于核函數(shù)計算方法的惡意應用檢測準確率最高可達95.48%;基于圖相似度計算方法的惡意應用檢測準確率最高可達98.38%.實驗結果證明了本文提出的基于函數(shù)調(diào)用圖分析的TVOS惡意應用檢測方法的有效性.
下一步工作將深入挖掘TVOS應用特有的其他特征來實現(xiàn)更快速有效地TVOS惡意應用檢測.