• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于函數(shù)調(diào)用圖分析的NGB TVOS惡意應(yīng)用檢測方法

      2019-06-01 07:20:34王繼剛李媛媛高珍禎
      關(guān)鍵詞:函數(shù)調(diào)用應(yīng)用程序編碼

      王繼剛,李媛媛,高珍禎,王 偉

      (1.中興通訊股份有限公司,成都 610041;2.北京交通大學(xué) 智能交通數(shù)據(jù)安全與隱私保護(hù)技術(shù)北京市重點(diǎn)實(shí)驗(yàn)室,北京 100044)

      近些年來,智能電視呈爆發(fā)式增長,進(jìn)入了越來越多的家庭.操作系統(tǒng)作為智能電視的關(guān)鍵性基礎(chǔ)工作,與智能電視的安全保障密切相關(guān).廣電總局帶頭研發(fā)了一套應(yīng)用于網(wǎng)絡(luò)電視的操作系統(tǒng),NGB TVOS(TVOS)[1].TVOS基于Linux系統(tǒng),具有自主知識產(chǎn)權(quán)、可管可控、安全高效、開放兼容等特點(diǎn).TVOS利用現(xiàn)有的應(yīng)用資源為智能電視創(chuàng)建電視應(yīng)用生態(tài)系統(tǒng),引入電視應(yīng)用商店.目前,主流的第三方獨(dú)立智能電視應(yīng)用市場主要有:歡視商店、奇珀市場、當(dāng)貝市場等.其中歡視商店是我國廣電行業(yè)第一個正式商用的TVOS平臺應(yīng)用商店.

      目前,國內(nèi)相關(guān)研究人員針對TVOS系統(tǒng)做了諸多研究和努力.文獻(xiàn)[2]對TVOS的系統(tǒng)架構(gòu)進(jìn)行深入分析,并總結(jié)TVOS系統(tǒng)的主要技術(shù)亮點(diǎn).文獻(xiàn)[3]介紹了TVOS應(yīng)用對底層組件的調(diào)用,分析了應(yīng)用框架層中API的封裝模型.文獻(xiàn)[4]分析了TVOS組件層的組件封裝模型,闡述了組件內(nèi)部的構(gòu)成與組件內(nèi)外部間的通信機(jī)制.文獻(xiàn)[5]對TVOS智能電視操作系統(tǒng)的安全機(jī)制、安全體系架構(gòu)加以分析論述,提出了廣電智能終端操作系統(tǒng)自身的安全模型及技術(shù)實(shí)現(xiàn)方案.除了對TVOS的系統(tǒng)架構(gòu)進(jìn)行分析,還有部分針對TVOS應(yīng)用的研究.文獻(xiàn)[6]對TVOS應(yīng)用的數(shù)字簽名進(jìn)行了介紹.TVOS中的應(yīng)用采用多種數(shù)字簽名方法確保自身的完整性、可用性與安全性,未經(jīng)認(rèn)證和授權(quán)的TVOS應(yīng)用能被有效的防止安裝.文獻(xiàn)[7]闡述了在TVOS上開展的終端應(yīng)用管理的可行性及應(yīng)用開發(fā)的一些探索.文獻(xiàn)[8]圍繞TVOS所支撐的各類服務(wù)和應(yīng)用介紹了智能電視應(yīng)用的分類情況,并重點(diǎn)探討了幾類典型智能電視應(yīng)用的技術(shù)特點(diǎn)和主要功能.

      智能電視領(lǐng)域剛剛興起,目前針對智能電視各方面的研究也相對較少.但TVOS系統(tǒng)與Android系統(tǒng)存在相似之處,且TVOS應(yīng)用與Android移動終端應(yīng)用也存在一定的聯(lián)系,因此,Android移動終端惡意應(yīng)用檢測對TVOS惡意應(yīng)用檢測具有一定的借鑒意義.文獻(xiàn)[9-10]提取Android應(yīng)用的字符串類特征用于Android惡意應(yīng)用檢測.文獻(xiàn)[11]采用多類字符串特征和應(yīng)用的圖結(jié)構(gòu)特征相結(jié)合的方法對Android惡意應(yīng)用進(jìn)行檢測.文獻(xiàn)[12-15]采用的Android惡意應(yīng)用檢測的特征、特征篩選的方法等對于TVOS應(yīng)用安全管理具有借鑒意義.

      隨著智能電視領(lǐng)域的不斷發(fā)展,未來TVOS應(yīng)用市場中必將會大量涌現(xiàn)各類TVOS應(yīng)用,應(yīng)用的功能也將日益復(fù)雜,這些變化會給TVOS的應(yīng)用管理和系統(tǒng)安全帶來新的挑戰(zhàn).本文作者對TVOS應(yīng)用的行為進(jìn)行分析,對TVOS惡意應(yīng)用的檢測方法展開研究.選取TVOS應(yīng)用的函數(shù)調(diào)用圖作為分析對象,采用基于核函數(shù)計(jì)算算法和基于圖相似度算法的函數(shù)調(diào)用圖分析方法來提取特征,采用機(jī)器學(xué)習(xí)算法對TVOS應(yīng)用進(jìn)行檢測.

      1 TVOS與Android系統(tǒng)對比分析

      1.1 TVOS與Android系統(tǒng)架構(gòu)對比

      TVOS采用分層結(jié)構(gòu),其架構(gòu)從上到下分別為應(yīng)用程序?qū)?、?yīng)用框架層、執(zhí)行環(huán)境層、功能組件層、硬件抽象層和內(nèi)核層.與Android類似,TVOS中Java應(yīng)用的執(zhí)行環(huán)境是在Linux內(nèi)核上選用了開源的Dalvik虛擬機(jī),并在Dalvik虛擬機(jī)上為Java應(yīng)用搭建了應(yīng)用框架層.其次,TVOS也提供了部分與Android相同的系統(tǒng)服務(wù).

      1.1.1 內(nèi)置數(shù)字電視業(yè)務(wù)模塊

      TVOS是專業(yè)的智能電視操作系統(tǒng).其應(yīng)用框架層、組件層和內(nèi)核層均內(nèi)置了數(shù)字電視業(yè)務(wù)功能的模塊.數(shù)字電視業(yè)務(wù)功能成為TVOS必不可少的一部分.組件層的DTV組件承擔(dān)大部分?jǐn)?shù)字電視業(yè)務(wù)功能,由DTV服務(wù)端實(shí)現(xiàn)其核心能力,DTV客戶端提供接口,內(nèi)核層的Binder用來實(shí)現(xiàn)服務(wù)端和客戶端驅(qū)動通信.應(yīng)用框架層實(shí)現(xiàn)了DTV Java A-PI以方便Java應(yīng)用調(diào)用DTV組件.

      1.1.2 資源管理框架

      為了提高系統(tǒng)資源的管理效率,提升各類應(yīng)用的服務(wù)質(zhì)量與速度,TVOS的應(yīng)用框架層、組件層和內(nèi)核層中均內(nèi)置了資源管理模塊,構(gòu)成了全局的資源管理框架.其能夠?qū)崿F(xiàn)的功能為:1)對系統(tǒng)資源開展實(shí)時監(jiān)控,根據(jù)需求與情況分配資源,及時更新資源信息,系統(tǒng)資源過載或資源分配后進(jìn)行通告;2)獲取應(yīng)用的狀態(tài)列表,負(fù)責(zé)應(yīng)用調(diào)度模塊,若有應(yīng)用加入時進(jìn)行通告;3)策略庫更新;4)充當(dāng)數(shù)據(jù)庫的接口等.

      1.1.3 Java應(yīng)用框架的“墊片”機(jī)制

      墊片機(jī)制是指為了適應(yīng)不同的智能操作系統(tǒng),在應(yīng)用框架層對功能組件進(jìn)行重新組合封裝.墊片機(jī)制在不改變底層功能組件的核心能力的基礎(chǔ)上,能夠兼容與支持其他操作系統(tǒng)的應(yīng)用.

      1.1.4 TVM環(huán)境實(shí)現(xiàn)對J2ME應(yīng)用的支持

      TVOS采用Dalvik虛擬機(jī)作為Java應(yīng)用的執(zhí)行環(huán)境.Dalvik虛擬機(jī)的優(yōu)點(diǎn)是可讓每個應(yīng)用在單獨(dú)的Dalvik虛擬機(jī)中運(yùn)行,多個虛擬機(jī)同時運(yùn)行.即使單個應(yīng)用崩潰也不影響其他應(yīng)用的正常運(yùn)行,體現(xiàn)其良好的隔離性.然而,TVOS的部分功能依賴于Sun J2ME規(guī)范,廣電運(yùn)營商前期也開發(fā)了很多基于Sun J2ME規(guī)范的Java應(yīng)用.為了利用廣電運(yùn)營商前期的開發(fā)成果同時吸納Dalvik虛擬機(jī)的優(yōu)點(diǎn),TVOS引入了TVM(Television Virtual Machine),其原理是對Dalvik虛擬機(jī)進(jìn)行如下改造:在Dalvik的核心Java庫中補(bǔ)充了J2ME的相關(guān)庫;添加可將J2ME應(yīng)用的.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è)務(wù)提供基礎(chǔ)軟件服務(wù),每個安全業(yè)務(wù)在TEE側(cè)有一個對應(yīng)的應(yīng)用負(fù)責(zé)相關(guān)安全數(shù)據(jù)的處理.安全管理框架實(shí)現(xiàn)的主要功能有:存儲、處理、傳輸需要保護(hù)的敏感數(shù)據(jù);在底層硬件中添加安全芯片防止二次開發(fā)與刷機(jī)ROOT等操作;采取驗(yàn)證字節(jié)碼、校驗(yàn)底層軟件等方式實(shí)現(xiàn)系統(tǒng)的安全管理.

      1.1.6 Java與Web并重

      Java應(yīng)用側(cè)重于邏輯運(yùn)算,具有良好的跨平臺通用性.Web應(yīng)用側(cè)重于信息呈現(xiàn).為了既能直接使用現(xiàn)有的Java應(yīng)用,又能更好地兼容日益增長的Web應(yīng)用,TVOS 選擇了“以 Web 應(yīng)用為發(fā)展主線,發(fā)展初期同時支持 Java 和 Web 應(yīng)用”的發(fā)展策略,提供了兩種執(zhí)行環(huán)境,分別用于運(yùn)行Java應(yīng)用與Web應(yīng)用,且在系統(tǒng)架構(gòu)中二者并重.

      1.2 TVOS應(yīng)用與Android應(yīng)用的對比

      現(xiàn)有的TVOS應(yīng)用包括Java應(yīng)用和Web應(yīng)用兩類,其中,Java應(yīng)用與Android應(yīng)用類似,應(yīng)用安裝包的格式為.apk.

      1.2.1 權(quán)限對比

      權(quán)限限制了應(yīng)用程序?qū)δ承┫到y(tǒng)資源訪問和對某些組件進(jìn)行調(diào)用.通過應(yīng)用申請權(quán)限的情況可以看出Android應(yīng)用和TVOS應(yīng)用在功能方面的側(cè)重點(diǎn).表1為Android應(yīng)用使用而TVOS應(yīng)用不使用的部分權(quán)限及這些權(quán)限對應(yīng)的功能.

      表1 Android應(yīng)用使用而TVOS應(yīng)用不使用的部分權(quán)限

      表1中主要有體感,實(shí)時定位,讀取或?qū)懭胪ㄔ捰涗?,短信通知與接收,顯示推送,指紋識別等.傳統(tǒng)電視體積較大,不易挪動,也不能隨身攜帶.上述功能的缺少與電視的常規(guī)特性相符.

      表2為Android應(yīng)用不使用而TVOS應(yīng)用使用的部分權(quán)限.這些權(quán)限對應(yīng)的功能主要與視頻播放、搜索電視信號、本地視頻上傳與播放,電視節(jié)目回看等功能相關(guān).可以看出,智能電視保留并優(yōu)化了傳統(tǒng)電視的大部分功能,使用戶不但可以觀看電視直播,也可以不用外接設(shè)備而播放自己的本地視頻,為用戶帶來更良好的用戶體驗(yàn).

      表2 TVOS應(yīng)用使用而Android 應(yīng)用不使用的部分權(quán)限Tab.2 Partial permissions Android applications apply but TVOS applications do not apply

      1.2.2 硬件對比

      硬件主要指應(yīng)用程序申請的某種硬件功能,包括攝像頭、傳感器等,在一定程度上也可以反映出應(yīng)用的主要功能.表3為TVOS應(yīng)用申請的部分硬件功能.

      表3 TVOS應(yīng)用申請的部分硬件

      可以看出TVOS應(yīng)用申請的硬件主要實(shí)現(xiàn)以下功能:網(wǎng)絡(luò)連接、藍(lán)牙功能、USB功能、音頻輸出、攝影拍照、基本觸屏功能等.對于Android應(yīng)用而言,android.hardware.gamepad硬件功能的重要性相對較低,但是對于TVOS應(yīng)用是一項(xiàng)重要的硬件功能.電視機(jī)遙控器讓用戶無需觸碰電視機(jī)即可操控開關(guān)機(jī)及調(diào)頻道等功能,已成為電視機(jī)必不可少的一部分.

      表4為Android應(yīng)用使用而TVOS應(yīng)用不使用的部分硬件功能.對應(yīng)的主要功能有:指紋識別、溫度氣壓濕度計(jì)量、實(shí)時定位、重力感應(yīng)、多點(diǎn)觸屏功能、相機(jī)高級功能、計(jì)步等.TVOS應(yīng)用功能相對簡單主要?dú)w因于如下幾特征:電視屏幕大,無需高級的多點(diǎn)觸屏功能;電視多數(shù)時間處于室內(nèi),獲取環(huán)境情況主要依賴于網(wǎng)絡(luò)信息;多數(shù)電視體積較大、不易移動,無法隨身攜帶,無需計(jì)步等功能,所以TVOS應(yīng)用中不包含此類特征.

      表4 Android應(yīng)用使用而TVOS 應(yīng)用不使用的部分硬件Tab.4 Partial hardware TVOS applications apply but Android applications do not apply

      2 TVOS應(yīng)用的檢測框架及算法

      2.1 系統(tǒng)框架設(shè)計(jì)

      1.2節(jié)將TVOS應(yīng)用與Android移動設(shè)備應(yīng)用進(jìn)行了對比分析.TVOS應(yīng)用由于載體體積大、難移動、應(yīng)用功能設(shè)計(jì)側(cè)重點(diǎn)不同等特性,目前TVOS應(yīng)用的功能相對簡單.TVOS應(yīng)用中很多權(quán)限和硬件調(diào)用均不涉及,因此采用傳統(tǒng)的用于Android惡意應(yīng)用靜態(tài)檢測的特征如權(quán)限、硬件調(diào)用等對TVOS應(yīng)用進(jìn)行檢測可能無法準(zhǔn)確的刻畫應(yīng)用的行為.相比傳統(tǒng)的靜態(tài)特征,函數(shù)調(diào)用圖可以彌補(bǔ)權(quán)限、API調(diào)用頻率等特征在TVOS應(yīng)用程序上表征能力不足的缺點(diǎn),且它對混淆技術(shù)具有一定的抵抗能力.因此本文采用函數(shù)調(diào)用圖作為TVOS惡意應(yīng)用檢測特征.系統(tǒng)流程如圖1所示.

      圖1 系統(tǒng)流程圖Fig.1 Flow chart of system

      1)樣本采集與處理:本文采用的應(yīng)用樣本集由正常應(yīng)用和惡意應(yīng)用兩部分構(gòu)成.正常TVOS應(yīng)用收集自歡視市場、當(dāng)貝市場和奇珀市場.惡意TVOS應(yīng)用來源于多種渠道.標(biāo)定應(yīng)用的方法為:將TVOS應(yīng)用樣本上傳至Virus Total網(wǎng)站進(jìn)行掃描,當(dāng)所有殺毒軟件均認(rèn)為該應(yīng)用為正常應(yīng)用才視其為正常應(yīng)用,超過三分之二的軟件均認(rèn)為該應(yīng)用為惡意應(yīng)用,則視其為惡意應(yīng)用,否則棄之不用.

      2)函數(shù)調(diào)用圖的提?。翰捎渺o態(tài)分析的方法,利用數(shù)據(jù)流分析工具Flowdroid提供的功能獲取函數(shù)調(diào)用圖.

      3)函數(shù)調(diào)用圖的處理:本文采用兩種方式對函數(shù)調(diào)用圖進(jìn)行處理,一種方式是圖核函數(shù)計(jì)算:通過解析函數(shù)節(jié)點(diǎn)及其鄰居節(jié)點(diǎn)的關(guān)系,對每個函數(shù)節(jié)點(diǎn)進(jìn)行編碼及編碼壓縮操作,計(jì)算兩兩應(yīng)用之間的核函數(shù),最終獲得核函數(shù)矩陣.另一種方式是計(jì)算圖相似度:通過圖相似度算法計(jì)算兩兩應(yīng)用之間的函數(shù)調(diào)用圖的相似度,最終獲得相似度矩陣.

      4)惡意應(yīng)用檢測:將3)中得到的矩陣進(jìn)行處理,得到特征矩陣,利用SVM、KNN、RF 3種算法進(jìn)行模型訓(xùn)練,使用訓(xùn)練得到的模型對測試樣本進(jìn)行檢測.

      2.2 函數(shù)調(diào)用圖

      函數(shù)調(diào)用圖能夠準(zhǔn)確地描述應(yīng)用程序內(nèi)部的函數(shù)調(diào)用關(guān)系[16].由于TVOS系統(tǒng)的特點(diǎn),TVOS應(yīng)用對許多用于Android惡意應(yīng)用檢測的特征均不涉及,但為實(shí)現(xiàn)程序的某些功能,TVOS應(yīng)用會調(diào)用相應(yīng)的API函數(shù),這類函數(shù)會在應(yīng)用的函數(shù)調(diào)用圖中出現(xiàn),且根據(jù)TVOS應(yīng)用調(diào)用敏感API類包中的函數(shù)情況反映出TVOS應(yīng)用程序是否涉及惡意行為;其次,基于惡意的TVOS應(yīng)用一般具有相似的行為,正常的TVOS應(yīng)用行為多樣化的規(guī)律,將應(yīng)用函數(shù)調(diào)用圖之間的相似性作為惡意應(yīng)用檢測的特征,可達(dá)到對TVOS惡意應(yīng)用進(jìn)行檢測的目的.

      函數(shù)調(diào)用圖一般由有向圖G=表示,V代表圖的節(jié)點(diǎn)集,每個函數(shù)都用一個節(jié)點(diǎn)表示,包括TVOS系統(tǒng)的庫函數(shù)及開發(fā)人員自定義的函數(shù).E代表圖的有向邊集,包含了圖中的所有調(diào)用關(guān)系,即E?V×V,且對?(u,v)∈V,?(u,v)∈E.如果存在一條,由節(jié)點(diǎn)u指向節(jié)點(diǎn)v的有向邊,則為節(jié)點(diǎn)u表示的函數(shù)調(diào)用了節(jié)點(diǎn)v表示的函數(shù).Flowdroid是目前被廣泛使用的應(yīng)用程序數(shù)據(jù)流分析工具,它提供了利用組件生命周期生成精確的函數(shù)調(diào)用圖的功能[17],本文通過調(diào)用Flowdroid的相關(guān)函數(shù)生成應(yīng)用程序的函數(shù)調(diào)用圖,如圖2所示.

      圖2 函數(shù)調(diào)用圖Fig.2 Function call graph

      2.3 關(guān)鍵算法

      2.3.1 函數(shù)調(diào)用圖處理算法

      1)函數(shù)調(diào)用圖核函數(shù)計(jì)算.其主要思想是通過解析函數(shù)節(jié)點(diǎn)及其鄰居節(jié)點(diǎn)的關(guān)系,對每個函數(shù)節(jié)點(diǎn)進(jìn)行編碼及編碼壓縮操作,計(jì)算兩兩應(yīng)用之間的核函數(shù),最終獲得核函數(shù)矩陣.在生成函數(shù)調(diào)用圖之后,需要對函數(shù)調(diào)用圖中所有的函數(shù)節(jié)點(diǎn)進(jìn)行編碼.為達(dá)到檢測TVOS惡意應(yīng)用的目的,節(jié)點(diǎn)信息要能反映出該函數(shù)是否可能涉及惡意行為.為此,本文采取了敏感API作為生成節(jié)點(diǎn)編碼的要素.敏感API是指與權(quán)限相對應(yīng)的API函數(shù),若應(yīng)用程序申請的權(quán)限被授予,TVOS應(yīng)用會通過權(quán)限調(diào)用相應(yīng)的API函數(shù)以達(dá)到訪問敏感資源的目的.因此,利用敏感API為要素生成的節(jié)點(diǎn)編碼可以在一定程度上反映出應(yīng)用的敏感行為.如表5所示,選取了19個敏感API的類包作為函數(shù)節(jié)點(diǎn)的編碼要素.若函數(shù)調(diào)用了指定敏感API類包中的函數(shù),則編碼對應(yīng)位置1,否則置0,每個函數(shù)被編碼成19位的向量[18].

      圖的節(jié)點(diǎn)編碼不僅要考慮圖中節(jié)點(diǎn)函數(shù)所包含的信息,而且需要考慮其拓?fù)浣Y(jié)構(gòu).因此要將圖中結(jié)點(diǎn)信息與其鄰居節(jié)點(diǎn)的結(jié)構(gòu)信息融合.文獻(xiàn)[19]在構(gòu)造核函數(shù)時使用壓縮函數(shù)生成更新編碼.壓縮函數(shù)的主要思想為:先將一個節(jié)點(diǎn)的初始編碼左旋一位,然后與其所有的直接相連節(jié)點(diǎn)的初始編碼進(jìn)行異或,獲得該節(jié)點(diǎn)的更新編碼.壓縮函數(shù)的公式如下

      表5 包前綴對應(yīng)的編碼位

      f(v)=ROT1(l(v))⊕

      (1)

      式中:⊕為異或操作;ROT1表示了將該編碼左旋一位;vi節(jié)點(diǎn)表示v的鄰居節(jié)點(diǎn).更新節(jié)點(diǎn)編碼反映了節(jié)點(diǎn)函數(shù)的子結(jié)構(gòu)信息,將兩個應(yīng)用包含的所有非全零節(jié)點(diǎn)的編碼兩兩比對,若兩個節(jié)點(diǎn)的編碼相同,則認(rèn)為這兩個節(jié)點(diǎn)具有相似的子結(jié)構(gòu)信息.核函數(shù)公式計(jì)算如下

      (2)

      式中:c為兩個應(yīng)用包含的所有非全零的相同節(jié)點(diǎn)編碼的數(shù)目;na,nb分別為兩個應(yīng)用的節(jié)點(diǎn)個數(shù);k值越大,兩個應(yīng)用的行為越相似,相似度越高.計(jì)算所有應(yīng)用之間的k值,即可得到核函數(shù)矩陣M,Mij表示第i個應(yīng)用程序與第j個應(yīng)用的核函數(shù).將核函數(shù)矩陣作為機(jī)器學(xué)習(xí)算法的輸入,生成訓(xùn)練模型.

      2)函數(shù)調(diào)用圖的相似度算法.其原理為通過判斷兩個函數(shù)調(diào)用圖是否同構(gòu),計(jì)算兩個圖的相似度,并形成相似度矩陣,用于預(yù)測應(yīng)用程序是否為惡意應(yīng)用.

      由于命名習(xí)慣的不同,不同應(yīng)用程序中功能大體一致的函數(shù)往往具有不同的函數(shù)名.將這樣的函數(shù)看作是不同的函數(shù)對于計(jì)算函數(shù)調(diào)用圖相似度是不利的.因而要將函數(shù)根據(jù)其功能進(jìn)行重命名.函數(shù)調(diào)用圖的生成依靠應(yīng)用程序的smali文件,每個smali文件都是一個類,每個類中的函數(shù)都包含一系列的操作碼,這些操作碼代表的功能和出現(xiàn)順序可以一定程度上反映函數(shù)的功能.因此,利用操作碼為函數(shù)重命名可實(shí)現(xiàn)函數(shù)的功能命名.具體的重命名過程如下:

      1)編程遍歷smali文件夾下所有smali文件,根據(jù)smali文件中的method關(guān)鍵字獲取函數(shù)名,寫入指定文件中.如在應(yīng)用的一個smali文件中包含一個constructor()方法.

      2)遍歷函數(shù)中的操作碼,根據(jù)操作碼與命名形式之間的對應(yīng)關(guān)系,得出函數(shù)的功能命名:在constructor()方法中有4個操作碼,即new-instance、invoke-direct、sput-object、return-void;根據(jù)表6中操作碼與命名形式之間的對應(yīng)關(guān)系,生成節(jié)點(diǎn)的重命名為WISR,并寫至指定文件原函數(shù)名之后.

      3)遍歷應(yīng)用的函數(shù)調(diào)用圖,利用文件中舊函數(shù)名和新函數(shù)名的對應(yīng)關(guān)系將函數(shù)調(diào)用圖中節(jié)點(diǎn)進(jìn)行重命名.

      表6 部分操作碼與命名形式的對應(yīng)關(guān)系

      在對節(jié)點(diǎn)進(jìn)行重命名后,計(jì)算TVOS應(yīng)用函數(shù)調(diào)用圖兩兩之間相似度.本文中采用的圖相似度算法名為DeltaCon算法[20],該算法主要通過比較兩個圖中相同節(jié)點(diǎn)的連通性來計(jì)算兩個圖之間的相似性.給定G1=,G2=,為保證兩個圖具有相同的節(jié)點(diǎn)集,設(shè)V=V1∪V2,將圖G1和G2擴(kuò)展為G1=,G2=,節(jié)點(diǎn)集V中點(diǎn)的個數(shù)為n.

      1)分別計(jì)算兩個圖中成對節(jié)點(diǎn)的影響度,并分別保存在n×n的矩陣S中,矩陣中的項(xiàng)sij表示節(jié)點(diǎn)i對節(jié)點(diǎn)j的影響度,當(dāng)i到j(luò)中高權(quán)重短路徑越多,則i對j的影響度越大.影響度的計(jì)算采用了置信度傳播(Belief Propagetion,BP)算法.BP算法的兩個關(guān)鍵過程為:利用加權(quán)乘積計(jì)算出所有的局部消息;節(jié)點(diǎn)之間的概率消息在隨機(jī)場中的傳遞.函數(shù)調(diào)用圖影響度向量的計(jì)算方法如下

      [I+ε2D-εA]si=ei

      (3)

      式中:I為單位矩陣;A為圖的鄰接矩陣,矩陣項(xiàng)為aij;D為對角矩陣,且dii=∑jaij;ei是第i個元素為1的列向量;ε代表捕獲相鄰節(jié)點(diǎn)之間影響的常量,計(jì)算公式如下

      ε=1/(1+maxi(dii)

      (4)

      所求si=[si1,…,sin]T,是從第i個節(jié)點(diǎn)對其他節(jié)點(diǎn)影響度的列向量.上述公式可轉(zhuǎn)化為

      S=[sij]=[I+ε2D-εA]-1

      (5)

      2)將兩個圖的影響度矩陣進(jìn)行比較,計(jì)算兩個圖中相同節(jié)點(diǎn)影響度分?jǐn)?shù)的差異,即計(jì)算兩個矩陣的根歐式距離(Root Euclidean Distance,ROOTED)計(jì)算公式如下

      d=ROOTED(S1,S2)=

      (6)

      3)為了方便介紹,將結(jié)果整合為兩個圖的相似度分?jǐn)?shù).即

      (7)

      之后,可生成M,將其作為機(jī)器學(xué)習(xí)算法的輸入,建立訓(xùn)練模型.

      2.3.2 機(jī)器學(xué)習(xí)算法

      采用支持向量機(jī)、隨機(jī)森林和K最近鄰3種有監(jiān)督機(jī)器學(xué)習(xí)算法.

      1)支持向量機(jī)(Support Vector Machine,SVM)算法基于統(tǒng)計(jì)學(xué)習(xí)理論,主要用途為回歸分析與分類,其核心思想為:給定訓(xùn)練樣本集,在樣本空間中找到一個最佳劃分超平面,這個最佳劃分超平面不僅能將不同類別的樣本分開,而且產(chǎn)生的分類結(jié)果最魯棒,對未見樣本的泛化能力最強(qiáng).

      2)隨機(jī)森林(Random Forest,RF)算法利用bootstrap抽樣法有放回地選取一定數(shù)量的樣本,生成m個訓(xùn)練樣本集,在生成基決策樹時,先從節(jié)點(diǎn)的屬性集合中隨機(jī)選擇若干個屬性作為屬性子集,再從這個子集中選擇最優(yōu)屬性進(jìn)行劃分.當(dāng)判斷未知樣本的類別時,讓森林中每棵決策樹分別預(yù)測該樣本的類別,最終的預(yù)測類別由所有基決策樹輸出類別的眾數(shù)決定.

      3)K最近鄰算法(K-Nearest Neighborhood,KNN)算法是最簡單的機(jī)器學(xué)習(xí)算法之一,主要用于回歸和分類,主要思想是:基于某種距離度量方法找出訓(xùn)練樣本集中距離測試樣本點(diǎn)最近的k個樣本,然后根據(jù)這k個鄰居的類別信息確定測試樣本的類別,通常采用“少數(shù)服從多數(shù)”的方法,也可以根據(jù)距離的遠(yuǎn)近進(jìn)行加權(quán)平均或加權(quán)投票,距離越近的樣本權(quán)重越大.

      3 實(shí)驗(yàn)結(jié)果與分析

      3.1 數(shù)據(jù)集

      實(shí)驗(yàn)中采用的樣本分為兩類:正常TVOS應(yīng)用與惡意TVOS應(yīng)用.在 2016年11月到2017年2月期間從歡視商店、奇珀市場和當(dāng)貝市場中下載并標(biāo)定TVOS應(yīng)用,多種渠道搜集獲取TVOS惡意應(yīng)用,最終獲得TVOS正常應(yīng)用1 020個,TVOS惡意應(yīng)用168個,具體情況如表7所示.

      表7 實(shí)驗(yàn)數(shù)據(jù)樣本

      3.2 實(shí)驗(yàn)結(jié)果分析

      為使實(shí)驗(yàn)結(jié)果更具普適性,采用了五折交叉驗(yàn)證方法,數(shù)據(jù)集的80%用作訓(xùn)練數(shù)據(jù),用來建立完整的分類模型,數(shù)據(jù)集的20%用作測試數(shù)據(jù),用于評估訓(xùn)練模型的有效性以及測試分類器的效果.

      當(dāng)將函數(shù)調(diào)用圖轉(zhuǎn)化為核函數(shù)矩陣,并將其作為分類器的輸入時,惡意應(yīng)用檢測的結(jié)果如表8所示.

      表8 基于核函數(shù)計(jì)算的惡意應(yīng)用檢測實(shí)驗(yàn)結(jié)果Tab.8 Experimental results of malware detection based on kernel function %

      可以看出,3種分類算法的準(zhǔn)確率差異不大.RF算法的準(zhǔn)確率最高,達(dá)到了95.48%,且RF算法的F-measure值最大,可見RF的整體結(jié)果最理想,這是由于RF算法的分類結(jié)果經(jīng)多棵決策樹投票而來,體現(xiàn)了集成學(xué)習(xí)的優(yōu)勢.SVM在惡意應(yīng)用樣本的識別方面優(yōu)勢較大,真陽性率達(dá)到了93.6%,這是由于在訓(xùn)練SVM分類模型時對于樣本的權(quán)重因子進(jìn)行了調(diào)節(jié),對于數(shù)目少的惡意樣本賦予了較大的權(quán)重,從而使模型對于惡意應(yīng)用的識別能力有所提高,但存在精度較低的缺陷.KNN對惡意樣本的識別能力雖然略遜色,但是誤報(bào)率較低,只有0.70%.

      將函數(shù)調(diào)用圖轉(zhuǎn)化為圖相似度矩陣,并將其作為分類器的輸入,惡意應(yīng)用檢測的結(jié)果如表9所示.可以看出,與核函數(shù)方法類似,RF取得了最理想的實(shí)驗(yàn)結(jié)果,準(zhǔn)確率高達(dá)98.38%,SVM在惡意應(yīng)用樣本的識別方面優(yōu)勢明顯,KNN算法的假陽性率最低,僅有0.36%.

      表9 基于圖相似度計(jì)算的惡意 應(yīng)用檢測實(shí)驗(yàn)結(jié)果Tab.9 Experimental results of malware detection based on similarity of graphs %

      表10顯示了本文提出的基于函數(shù)調(diào)用圖分析的TVOS惡意應(yīng)用檢測方法與基于函數(shù)調(diào)用圖分析的Android惡意應(yīng)用檢測效果對比情況.從表10中可以看出,不同于Android應(yīng)用,本文提出的兩種基于函數(shù)調(diào)用圖的惡意應(yīng)用檢測方法對TVOS的惡意應(yīng)用的檢測更為有效.

      表10 檢測方法對比

      兩種函數(shù)調(diào)用圖分析方法對比見表11.表11中,從整體上看,利用圖相似度矩陣訓(xùn)練的模型效果要略優(yōu)于利用核函數(shù)矩陣的模型,這是由于在生成函數(shù)調(diào)用圖節(jié)點(diǎn)編碼的過程中僅考慮了利用敏感API生成編碼,因此可能會遺漏一些信息,使一部分惡意應(yīng)用的行為刻畫的不完全.但圖相似度方法準(zhǔn)確率的提升是用更多的時間損耗換取的.由于比較應(yīng)用程序的函數(shù)調(diào)用圖時,需要保證兩個圖的節(jié)點(diǎn)集一致,即取兩個圖節(jié)點(diǎn)的并集.而應(yīng)用程序的函數(shù)調(diào)用圖往往龐大而復(fù)雜,節(jié)點(diǎn)數(shù)目較多,兩個圖的節(jié)點(diǎn)的并集更使得節(jié)點(diǎn)數(shù)目成倍增長,生成維數(shù)巨大的矩陣,矩陣運(yùn)算耗費(fèi)了大量的時間.所以綜合考慮基于核函數(shù)的分析方法更適用于大量的TVOS應(yīng)用檢測.

      表11 兩種函數(shù)調(diào)用圖分析方法的結(jié)果比較

      4 結(jié)論

      1)TVOS系統(tǒng)與Android系統(tǒng)存在相似之處,且TVOS應(yīng)用與Android移動終端應(yīng)用也存在一定的聯(lián)系,因此首先研究了TVOS與Android在系統(tǒng)結(jié)構(gòu)方面不同;其次研究了TVOS應(yīng)用與Android應(yīng)用在權(quán)限和硬件方面的不同.通過初步分析發(fā)現(xiàn),TVOS應(yīng)用的功能相對簡單,且TVOS應(yīng)用中很多權(quán)限和硬件調(diào)用均不涉及,因此本文采用函數(shù)調(diào)用圖作為特征來彌補(bǔ)權(quán)限、API調(diào)用等特征在TVOS應(yīng)用上表征能力不足的缺點(diǎn).

      2)提出基于函數(shù)調(diào)用圖分析的TVOS惡意應(yīng)用檢測方法,采用基于核函數(shù)計(jì)算和基于圖相似度計(jì)算的函數(shù)調(diào)用圖分析方法提取TVOS應(yīng)用函數(shù)調(diào)用圖中的結(jié)構(gòu)信息,使用SVM、KNN和RF 3種機(jī)器學(xué)習(xí)算法進(jìn)行訓(xùn)練、分類.

      3)實(shí)驗(yàn)結(jié)果顯示,基于核函數(shù)計(jì)算方法的惡意應(yīng)用檢測準(zhǔn)確率最高可達(dá)95.48%;基于圖相似度計(jì)算方法的惡意應(yīng)用檢測準(zhǔn)確率最高可達(dá)98.38%.實(shí)驗(yàn)結(jié)果證明了本文提出的基于函數(shù)調(diào)用圖分析的TVOS惡意應(yīng)用檢測方法的有效性.

      下一步工作將深入挖掘TVOS應(yīng)用特有的其他特征來實(shí)現(xiàn)更快速有效地TVOS惡意應(yīng)用檢測.

      猜你喜歡
      函數(shù)調(diào)用應(yīng)用程序編碼
      基于C語言的數(shù)學(xué)菜單的設(shè)計(jì)與實(shí)現(xiàn)
      基于SAR-SIFT和快速稀疏編碼的合成孔徑雷達(dá)圖像配準(zhǔn)
      《全元詩》未編碼疑難字考辨十五則
      子帶編碼在圖像壓縮編碼中的應(yīng)用
      電子制作(2019年22期)2020-01-14 03:16:24
      刪除Win10中自帶的應(yīng)用程序
      Genome and healthcare
      基于函數(shù)調(diào)用序列模式和函數(shù)調(diào)用圖的程序缺陷檢測方法*
      探討C++編程中避免代碼冗余的技巧
      Unity3D項(xiàng)目腳本優(yōu)化分析與研究
      中國新通信(2017年1期)2017-03-08 03:12:21
      關(guān)閉應(yīng)用程序更新提醒
      電腦迷(2012年15期)2012-04-29 17:09:47
      滁州市| 班玛县| 山丹县| 桂阳县| 南陵县| 合阳县| 凤城市| 永修县| 旺苍县| 岳阳市| 沁源县| 叙永县| 乌鲁木齐县| 常宁市| 泗阳县| 搜索| 平乐县| 文昌市| 桐庐县| 通海县| 香格里拉县| 嘉峪关市| 中西区| 吉首市| 临沭县| 沭阳县| 澳门| 延安市| 石屏县| 四川省| 宜兴市| 达拉特旗| 石楼县| 吴桥县| 清苑县| 敦煌市| 天全县| 汉寿县| 长乐市| 阿坝县| 兰西县|