欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于APK字符串特征的變種惡意軟件檢測方法與流程

文檔序號:11775149閱讀:379來源:國知局

本發(fā)明涉及android平臺上惡意代碼檢測研究領(lǐng)域,具體涉及一種基于apk字符串特征的變種惡意軟件檢測方法。



背景技術(shù):

惡意代碼已經(jīng)成為當(dāng)今計(jì)算機(jī)體系中最嚴(yán)重的安全威脅之一。在android移動(dòng)平臺中,惡意軟件的數(shù)目與日劇增。

據(jù)2016年第二季度maafeelabs統(tǒng)計(jì)數(shù)據(jù)表明,新增移動(dòng)端惡意軟件數(shù)量近200萬,相比于第一季度增長了14%,而總數(shù)量則高達(dá)1100萬[internetsecuritythreatreport[eb/ol]http://www.mcafee.com/uk/resources/reports/rp-quarterly-threats-sep-2016.pdf]。

面對著如此龐大的數(shù)字,需要有一個(gè)高效快速的方法,實(shí)現(xiàn)自動(dòng)化對大量的應(yīng)用軟件進(jìn)行掃描并檢測。對于傳統(tǒng)的商業(yè)安全軟件,為了能夠具備更高的實(shí)時(shí)檢測速度,大都是通過提取字符串作為特征碼。在檢測過程中,安全軟件只需直接判斷其是否擁有與已知特征碼相同的字符串[yey,lit,jiangq,etal.cimds:adaptingpostprocessingtechniquesofassociativeclassificationformalwaredetection[j].ieeetransactionsonsystemsman&cyberneticspartcapplications&reviews,2010,40(3):298-307.]。

然而,這種基于字符串的特征碼提取方法有很大的缺陷,就是難以檢測到多態(tài)變形的惡意軟件[hosmerandpolymorphic

malware[eb/ol]https://www.blackhat.com/presentations/bh-usa-08/hosmer/bh_us_08_hosmer_polymorphic_malware.pdf]。

因此,需要能夠擁有一種即快速又準(zhǔn)確的方法來對惡意代碼進(jìn)行檢測。

當(dāng)前,大部分的檢測方法都是通過判斷待檢測樣本數(shù)據(jù)與已知樣本之間特征碼是否具有高度的相似性來識別,這種方法并無法有效地對未知的惡意代碼進(jìn)行預(yù)測。部分學(xué)者提出了對應(yīng)用軟件進(jìn)行語義分析,以圖表的形式來表示整個(gè)應(yīng)用軟件中代碼間的調(diào)用情況。文獻(xiàn)[m.fredrikson,s.jha,m.christodorescu,r.sailer,andx.yan.synthesizingnear-optimalmalwarespecificationsfromsuspiciousbehaviors.inproceedingsofthe2010ieeesymposiumonsecurityandprivacy(oakland’10),may2010.;c.kolbitsch,p.m.comparetti,c.kruegel,e.kirda,x.zhou,andx.wang.effectiveandefficientmalwaredetectionattheendhost.inproceedingsofthe18thconferenceonusenixsecuritysymposium,august2009.;k.z.chen,n.johnson,v.d’silva,s.dai,k.macnamara,t.magrino,e.x.wu,m.rinard,andd.song.contextualpolicyenforcementinandroidapplicationswithpermissioneventgraphs.inproceedingsofthe20thannualnetworkanddistributedsystemsecuritysymposium(ndss’13),february2013.],是直接將已知待檢測應(yīng)用軟件調(diào)用圖與惡意代碼庫中調(diào)用圖進(jìn)行匹配,當(dāng)一致時(shí)則表明為惡意軟件。

然而,直接利用這種精確匹配的方法難以抵抗代碼混淆攻擊[12],并且無法檢測出未知惡意軟件。隨后很多學(xué)者在此基礎(chǔ)上對該方法進(jìn)行了改進(jìn),其中,文獻(xiàn)[13]提出一種度量各api調(diào)用圖間相似度的方法,能夠有效地檢測出各類多態(tài)變形軟件。文獻(xiàn)[m.christodorescu,s.jha,s.a.seshia,d.song,andr.e.bryant.semantics-awaremalwaredetection.inproceedingsofthe2005ieeesymposiumonsecurityandprivacy(oakland’05),may2005;arzts,rasthofers,fritzc,etal.flowdroid:precisecontext,flow,field,object-sensitiveandlifecycle-awaretaintanalysisforandroidapps[j].acmsigplannotices,2014,49(6):259-269.]利用消息標(biāo)記的方法來跟蹤應(yīng)用程序代碼中敏感信息的流向。文獻(xiàn)[yangw,xiaox,andowb,etal.appcontext:differentiatingmaliciousandbenignmobileappbehaviorsusingcontext[c]//2015ieee/acm37thieeeinternationalconferenceonsoftwareengineering.ieee,2015,1:303-313.]則利用調(diào)用圖來反向跟蹤敏感行為觸發(fā)的上下文環(huán)境。

然而,直接利用這種利用調(diào)用圖的分析方法,在檢測的時(shí)候,需要對整個(gè)文件邏輯進(jìn)行分析,極大地降低了檢測效率,特別面對復(fù)雜調(diào)用圖匹時(shí),其計(jì)算復(fù)雜度急劇增長。因此該類方法并不適用于當(dāng)今巨大的病毒樣本。

文獻(xiàn)[allixk,bissyandétf,jéromeq,etal.empiricalassessmentofmachinelearning-basedmalwaredetectorsforandroid[j].empiricalsoftwareengineering,2016,21(1):183-211.]中利用機(jī)器學(xué)習(xí)的方法來提取android應(yīng)用程序中所使用權(quán)限的特征,并用于惡意代碼檢測。在文獻(xiàn)[zhangy,pangj,yuef,etal.fuzzyneuralnetworkformalwaredetect[c]//intelligentsystemdesignandengineeringapplication(isdea),2010internationalconferenceon.ieee,2010,1:780-783.]中則是利用數(shù)據(jù)挖掘中神經(jīng)網(wǎng)絡(luò)算法來對惡意代碼行為進(jìn)行分析。文獻(xiàn)[wudj,maoch,weite,etal.droidmat:androidmalwaredetectionthroughmanifestandapicallstracing[c]//informationsecurity(asiajcis),2012seventhasiajointconferenceon.ieee,2012:62-69.]以大量的樣本數(shù)據(jù)為基礎(chǔ),從中提取與已知惡意軟件的特征,并利用這些特征來用于對新樣本的檢測。而文獻(xiàn)[arpd,spreitzenbarthm,hubnerm,etal.drebin:effectiveandexplainabledetectionofandroidmalwareinyourpocket[c]//ndss.2014.]則是根據(jù)每個(gè)應(yīng)用程序的執(zhí)行權(quán)限、api調(diào)用流程等特征,利用knn算法來對不同種類的應(yīng)用程序進(jìn)行分類。隨后的文獻(xiàn)[sundarkumargg,raviv,nwogui,etal.malwaredetectionviaapicalls,topicmodelsandmachinelearning[c]//2015ieeeinternationalconferenceonautomationscienceandengineering(case).ieee,2015:1212-1217.;huangcy,tsaiyt,hsuch.performanceevaluationonpermission-baseddetectionforandroidmalware[m]//advancesinintelligentsystemsandapplications-volume2.springerberlinheidelberg,2013:111-120.]相繼使用svm算法來實(shí)現(xiàn)惡意軟件的分類。

然而,這種基于機(jī)器學(xué)習(xí)的方法是從統(tǒng)計(jì)學(xué)的角度去提取特征,很容易出現(xiàn)誤檢現(xiàn)象。為了能夠高效快速地檢測出惡意軟件smith等人[michaelsmith.identifyingmalwarewithbytefrequencydistributionandcontexttriggeredpiecewisehashing.jamesmadisonuniversityinfosectechreport,2008.4]利用模糊哈希算法來識別檢測相同類別的惡意軟件。肖梓航等[肖梓航,李柏松,肖新光.基于模糊哈希算法的惡意代碼檢測系統(tǒng)及方法:,cn102811213a[p].2012.]人則利用模糊哈希中的ssdeep算法設(shè)計(jì)出一套完整的云端惡意軟件檢測系統(tǒng)。

然而該方法只能對相似文件進(jìn)行檢測,一旦文件結(jié)構(gòu)出現(xiàn)變化,將無法檢測。有鑒于此,本發(fā)明提出通過從惡意軟件的變種出發(fā),本發(fā)明針對android移動(dòng)平臺,利用apk中所包含的字符串信息來產(chǎn)生模糊哈希值,并通過計(jì)算模糊哈希值彼此的距離來檢測變種惡意軟件。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,為了能夠更好地保護(hù)android平臺用戶信息的安全性,提出一種基于字符串特征的android變種惡意軟件檢測方法,該方法能夠?qū)崿F(xiàn)對大量的未知樣本進(jìn)行快速掃描,并有效地檢測出變種樣本。

本發(fā)明是利用apk中的字符串信息來生成模糊哈希值,并用于對變種惡意軟件的檢測。在apk應(yīng)用程序中,每一種類別apk都會(huì)有自己特有的字符串信息,在此通過解析dex文件可以提取其所使用的字符串。不同應(yīng)用程序所使用的字符串都不一樣,然而對于同一種類的變種apk中只是對少部分字符串做修改,它們彼此含有大量相同的字符串。因此,本發(fā)明可以將字符串的相似程度來作為特征來實(shí)現(xiàn)對變種應(yīng)用程序的識別。

本發(fā)明中利用快速計(jì)算字符串哈希值的算法djb2[mckenzieetal.selectingahashingalgorithm,sp&e20(2):209-224,feb1990]。由于該哈希算法是運(yùn)用位運(yùn)算來實(shí)現(xiàn)的,包括位移以及異或的運(yùn)算符,使它在將字符串映射為具體關(guān)鍵字的過程中擁有著優(yōu)越的性能。并結(jié)合布爾過濾器的原理將每個(gè)字符串隨機(jī)地映射到一個(gè)向量中,向量的坐標(biāo)就是對應(yīng)的字符串通過上面djb2哈希算法的計(jì)算而得到的鍵值。向量中每一個(gè)坐標(biāo)的值代表映射到該處的字符串?dāng)?shù)量。通過上面方法即可將應(yīng)用程序映射為一個(gè)特征向量,即其模糊哈希值。使得兩個(gè)相似的應(yīng)用程序的模糊哈希值之間的距離較小,不同種類應(yīng)用程序之間模糊哈希值距離較大。

在對變種惡意軟件的檢測時(shí),先利用一種變種的k-means算法對已知的病毒庫中所有模糊哈希值進(jìn)行聚類,并以整個(gè)類別的中心點(diǎn)來代表該類別。該方法極大的縮減了病毒庫的容量,從而提高了檢測速度。同時(shí),在本發(fā)明中以哈密頓距離做為度量兩個(gè)模糊哈希值之間的距離。

具體的,本發(fā)明提供一種基于apk字符串特征的變種惡意軟件檢測方法,包括以下步驟:

步驟1、對apk中所使用的字符串進(jìn)行提??;

步驟2、將所述提取到的字符串轉(zhuǎn)化為特征向量,從而生成模糊哈希值;

步驟3、利用k-means算法對所述模糊哈希值進(jìn)行聚類,并以哈密頓距離作為度量彼此之間的相似度,對病毒庫中樣本進(jìn)行簡化,實(shí)現(xiàn)對變種惡意軟件的檢測。

具體的,在所述步驟2中,將提取出的字符串,利用哈希函數(shù)djb2()來計(jì)算各個(gè)字符串的哈希值,再將特征向量中該哈希值所對應(yīng)的位置數(shù)值加1,從而得到該apk的字符串特征向量。

具體的,在所述步驟3中,首先計(jì)算病毒庫中樣本的模糊哈希值fh,利用k-means算法對模糊哈希值進(jìn)行聚類,并將聚類后各類別的質(zhì)點(diǎn)來代表該類別中其他所有點(diǎn);當(dāng)需要對未知的惡意軟件進(jìn)行檢測時(shí),只需計(jì)算該惡意軟件的模糊哈希值跟各類別的質(zhì)點(diǎn)之間的距離,當(dāng)距離小于某一閾值時(shí),則說明該惡意軟件屬于某一列別病毒的變種;

利用模糊哈希值以及k-means算法來生成能用于檢測變種的病毒特征庫,算法如下:

輸入:變種家族數(shù)k,模糊哈希值集合{fh1,fh2,…,fhn},n為樣本數(shù)量;

輸出:病毒樣本特征庫v;

1)隨機(jī)選取k個(gè)聚類質(zhì)點(diǎn)為μ1,μ2,…,μk;

2)重復(fù)以下過程直到收斂;

對每個(gè)樣本i,計(jì)算其所屬家族類;

ci:=argminjd(fhi-μj)

對每一個(gè)家族類j,重新計(jì)算質(zhì)心;

3)將所有質(zhì)點(diǎn)μ添加到特征庫v中。

具體的,對于每一個(gè)新樣本進(jìn)行檢測時(shí),只需計(jì)算其模糊哈希值與各變種家族的質(zhì)心之間的距離,當(dāng)距離小于該變種家族中的最大距離時(shí),則表示其該新樣本屬于該家族;在添加新樣本后再重新計(jì)算該變種家族的質(zhì)心μ;其算法實(shí)現(xiàn)如下:

輸入:病毒特征庫v,新樣本fh;

輸出:更新病毒特征庫;

與現(xiàn)有技術(shù)相比,本發(fā)明具有如下優(yōu)點(diǎn):

本方法利用模糊哈希值的思想,根據(jù)apk的字符串信息來將其映射為特征向量的形式。再通過特征向量之間距離的計(jì)算來實(shí)現(xiàn)對變種惡意軟件的檢測。這種實(shí)現(xiàn)方式與使用ssdeep來計(jì)算模糊哈希值相比,具有運(yùn)算速度快,抗干擾程度強(qiáng)的特點(diǎn)。

附圖說明

圖1是本發(fā)明apk文件字符串提取流程圖。

具體實(shí)施方式

為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚、明確,以下參照附圖并舉例實(shí)施例對本發(fā)明作進(jìn)一步說明。

本發(fā)明公開了一種基于apk字符串特征的變種惡意軟件檢測方法,參照附圖1具體包括以下步驟:

步驟1、需要對apk中所使用的字符串進(jìn)行提取。

首先通過解壓縮獲取其中dex文件,并對其進(jìn)行解析,其中dex文件實(shí)際上是由多個(gè)不同結(jié)構(gòu)的數(shù)據(jù)體以首尾相接的方式拼接而成。

具體如下:

dexheader:文件頭部,記錄整個(gè)dex文件的相關(guān)屬性。

string_ids:字符串?dāng)?shù)據(jù)索引,記錄了每個(gè)字符串在數(shù)據(jù)區(qū)的偏移量。

type_ids:類似數(shù)據(jù)索引,記錄了每個(gè)類型的字符串索引。

proto_ids:原型數(shù)據(jù)索引,記錄了方法聲明的字符串,返回類型字符串,參數(shù)列表。

field_ids:字段數(shù)據(jù)索引,記錄了所屬類,類型以及方法名。

method_ids:類方法索引,記錄方法所屬類名,方法聲明以及方法名等信息。

class_defs:類定義數(shù)據(jù)索引,記錄指定類各類信息,包括接口,超類,類數(shù)據(jù)偏移量。

data:數(shù)據(jù)區(qū),保存了各個(gè)類的真實(shí)數(shù)據(jù)。

link_data:連接數(shù)據(jù)區(qū)。

在dexheader中的string_ids_size、string_ids_off兩個(gè)字段分別記錄這字符串列表的個(gè)數(shù),以及字符串列表的基址,即string_ids的所在地址。然而,在string_ids中每一項(xiàng)均保存著每個(gè)字符串的實(shí)際偏移地址。因此通過遍歷string_ids中所有項(xiàng),即可得到當(dāng)前apk中所有字符串。

具體實(shí)施例中,根據(jù)header里面的字符串信息索引字符串,以前面所述的classes.dex文件為例來分析:

1)根據(jù)string_ids_size找到有多少個(gè)字符串項(xiàng)在string_ids中。如其值為0x14時(shí),則說明有20個(gè)字符串。

2)根據(jù)string_ids_off查看string_ids的偏移量,一般該值為0x70,說明dexstringid的開始位置在0x70。

3)讀取string_ids中4個(gè)字節(jié),并將其轉(zhuǎn)化為16進(jìn)制。如該值為6c010000,則轉(zhuǎn)成地址為0x16c,這就是第一個(gè)字符串的位置。

4)通過值索引值來讀取字符串,其中字符串以‘\0’結(jié)尾。如0b48656c6c6f20576f726c64:值為helloworld\0,0b表示有11個(gè)字符。

步驟2、將所有字符串轉(zhuǎn)化為特征向量,從而來生成模糊哈希值。

在此,本發(fā)明使用哈希算法djb2,將apk中所有字符串映射成一個(gè)特征向量。使得當(dāng)兩個(gè)apk含有相同字符串越多,其對應(yīng)的特征向量間距離越小。

記apk中字符串集合為:

s={s1,s2,s3,…,sn}

哈希函數(shù)為h(x),使其滿足:

1≤djb2(si)≤m

其中,m為字符串特征向量的維度。

將提取出的字符串,利用哈希函數(shù)djb2()來計(jì)算各個(gè)字符串的哈希值,再將特征向量中該哈希值所對應(yīng)的位置數(shù)值加1,從而得到該apk的字符串特征向量。具體實(shí)現(xiàn)如下:

輸入:初始化apk字符串集合s

輸出:特征向量sv

步驟3、利用所述模糊哈希值實(shí)現(xiàn)對變種惡意軟件的檢測。

本發(fā)明首先計(jì)算病毒庫中樣本的模糊哈希值fh,利用k-means算法對模糊哈希值進(jìn)行聚類,并將聚類后各類別的質(zhì)點(diǎn)來代表該類中其他所有點(diǎn)。當(dāng)需要對未知的惡意軟件進(jìn)行檢測時(shí),只需計(jì)算該惡意軟件的模糊哈希值跟各類別的質(zhì)點(diǎn)之間的距離,當(dāng)距離小于某一閾值時(shí),則說明該惡意軟件屬于某一列別病毒的變種。這樣可以無需對病毒庫中所有模糊哈希值進(jìn)行距離的計(jì)算,極大地提高了檢測速度,且壓縮病毒庫的存儲(chǔ)空間。

利用模糊哈希值以及k-means算法來生成能用于檢測變種的病毒特征庫,算法如下:

輸入:變種家族數(shù)k,模糊哈希值集合{fh1,fh2,…,fhn},n為樣本數(shù)量;

輸出:病毒樣本特征庫v;

1)隨機(jī)選取k個(gè)聚類質(zhì)點(diǎn)為μ1,μ2,…,μk;

2)重復(fù)下面過程直到收斂;

對每個(gè)樣本i,計(jì)算其所屬家族類;

ci:=argminjd(fhi-μj);

對每一個(gè)家族類j,重新計(jì)算質(zhì)心;

3)將所有質(zhì)點(diǎn)μ添加到特征庫v中。

以質(zhì)心代表整個(gè)樣本族中所有樣本,極大地降低了特征庫的大小,從而提高檢測速度。

對于每一個(gè)新樣本的檢測,只需計(jì)算其模糊哈希值與各變種家族的質(zhì)心之間的距離,當(dāng)距離小于該變種家族中的最大距離時(shí),則表示其該新樣本屬于該家族。在添加新樣本后再重新計(jì)算該變種家族的質(zhì)心μ。其算法實(shí)現(xiàn)如下:

輸入:病毒特征庫v,新樣本fh;

輸出:更新病毒特征庫;

本發(fā)明所采用的技術(shù)方案通過解析提取apk中字符串信息,并利用djb2哈希算法將其映射為某一范圍數(shù)值。再結(jié)合布爾過濾器的思想,將所有字符串映射到一個(gè)特征向量中,并生成一個(gè)模糊哈希值,使得兩個(gè)相似的應(yīng)用程序的模糊哈希值之間的距離較小,不同種類應(yīng)用程序之間模糊哈希值距離較大。在變種惡意軟件檢測中,利用k-means方法對已知病毒庫所產(chǎn)生的模糊哈希值進(jìn)行聚類,并將聚類后各類別的質(zhì)點(diǎn)來代表該類中其他所有點(diǎn)。當(dāng)需要對未知的惡意軟件進(jìn)行檢測時(shí),只需計(jì)算該惡意軟件的模糊哈希值跟各類別的質(zhì)點(diǎn)之間的距離,當(dāng)距離小于某一閾值時(shí),則說明該惡意軟件屬于某一列別病毒的變種。該方法與傳統(tǒng)的模糊哈希算法相比具有較快的運(yùn)算速度,并且能極大提高變種樣本的檢測速度及準(zhǔn)確率,并提高了抗干擾性。

上述實(shí)施例為本發(fā)明的一種實(shí)施方式,但本發(fā)明的實(shí)施方式并不受上述實(shí)施例的限制,其他的任何未背離本發(fā)明的精神實(shí)質(zhì)與原理下所作的改變、修飾、替代、組合、簡化,均應(yīng)為等效的置換方式,都包含在本發(fā)明的保護(hù)范圍之內(nèi)。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
昭觉县| 北海市| 祁阳县| 兴国县| 平顺县| 阳城县| 交口县| 唐山市| 黎平县| 乐亭县| 靖远县| 太和县| 台江县| 兖州市| 房产| 安乡县| 淮安市| 平罗县| 玉门市| 马山县| 广南县| 宁海县| 皮山县| 河曲县| 廊坊市| 甘谷县| 屏南县| 昭通市| 贵定县| 荆州市| 永和县| 洛浦县| 通榆县| 两当县| 娱乐| 收藏| 禹城市| 宁晋县| 嘉义市| 大埔县| 芜湖县|