本發(fā)明屬于信息安全領(lǐng)域,尤其涉及一種基于軟件簽名和安裝時間的Android系統(tǒng)應用檢測方法。
背景技術(shù):
Android系統(tǒng)是基于Linux的開放源碼操作系統(tǒng),主要應用于手機等移動終端。Android系統(tǒng)由操作系統(tǒng)、中間件、用戶界面和應用程序組成,而應用程序又分為系統(tǒng)應用和用戶應用,系統(tǒng)應用是在system/frameworks,system/app,vendor/app,system/priv-app目錄下的應用,用戶不能卸載,權(quán)限更高且數(shù)量龐大。一旦系統(tǒng)應用中被植入惡意應用,就可能對移動終端的用戶造成不必要的損失。
針對這些手機惡意系統(tǒng)應用,許多軟件公司相繼推出多種殺毒軟件。現(xiàn)有的Android系統(tǒng)應用安全檢查主要分成兩類:特征值匹配和啟發(fā)式掃描,其中特征值匹配依賴病毒庫,存在病毒庫滯后的問題;啟發(fā)式掃描不依賴病毒庫,但若安全系統(tǒng)應用中具有病毒能夠?qū)崿F(xiàn)的某功能,就會出現(xiàn)查毒程序誤報現(xiàn)象,且現(xiàn)在的Android系統(tǒng)中系統(tǒng)應用數(shù)量比較龐大,絕大多數(shù)的應用通常是安全的,如果采取殺毒引擎依次查殺,查找病毒的速度會非常慢,所以研究一種更加安全快捷的Android系統(tǒng)應用檢測方法是具有現(xiàn)實意義的。
本發(fā)明通過軟件簽名與安裝時間將Android系統(tǒng)應用做出安全分類,其假設(shè)依據(jù)為:Android系統(tǒng)中不會被大量植入具有相同簽名并攜帶病毒的系統(tǒng)應用,以及在相差較短時間內(nèi)Android系統(tǒng)中不會被大量植入帶有病毒的系統(tǒng)應用,因為如果在短時間內(nèi)大量植入病毒,病毒很容易被發(fā)現(xiàn)并清理,所以病毒的一般植入方式為,相隔較長時間的少量植入。本發(fā)明中所有閾值是通過對不同品牌的Android手機進行大量測試后計算得到,所有閾值的確定值根據(jù)具體手機品牌及Android系統(tǒng)版本取定。
技術(shù)實現(xiàn)要素:
針對以上技術(shù)問題,本發(fā)明提供了一種基于軟件簽名和安裝時間的Android系統(tǒng)應用檢測方法,本發(fā)明是在檢索軟件簽名和安裝時間下完成查毒,系統(tǒng)應用無須逐一與病毒庫進行對比,大大地提高了查毒速度。
本發(fā)明采用的技術(shù)方案如下:
一種基于軟件簽名和安裝時間的Android系統(tǒng)應用檢測方法,其具體步驟為:
(1)掃描所有Android系統(tǒng)應用,并從Android系統(tǒng)應用中提取簽名信息;
(2)記錄同一簽名信息對應的系統(tǒng)應用個數(shù),若某一簽名信息對應的系統(tǒng)應用個數(shù)在第一閾值N以上,則標記該簽名信息對應的系統(tǒng)應用為安全應用;
(3)記錄步驟(2)中所有安全應用的初始安裝時間,再掃描步驟(2)中未被標記為安全應用的所有系統(tǒng)應用,提取并記錄這些系統(tǒng)應用的初始安裝時間,利用安全應用的初始安裝時間確定未被標記的系統(tǒng)應用的安全性。
具體的遍歷所有Android系統(tǒng)應用,并提取這些系統(tǒng)應用中的簽名信息,簽名信息包括公鑰、有效期和開發(fā)者信息,一個應用程序只能對應一個簽名,且所有系統(tǒng)應用的簽名信息可能不全相同,所以能夠通過簽名是否相同判斷系統(tǒng)應用的開發(fā)者是否相同。
具體的記錄同一簽名信息所對應的系統(tǒng)應用個數(shù),如果某一簽名信息對應的系統(tǒng)應用個數(shù)在第一閾值N以上,則將該簽名信息對應的所有系統(tǒng)應用標記為安全應用。
具體的檢索并記錄所有安全應用的初始安裝時間,將所有初始安裝時間按照先后順序排序得到時間序列{Ti},其中i=1,2,…,k,k為常量,且T1≤T2≤…≤Tk,再利用時間序列{Ti}中的元素確定若干個安全時間STIMEn和安全范圍INTERVALn,其中安全范圍INTERVALn與安全時間STIMEn一一對應,具體確定方法為:
(a)記錄時間序列{Ti}中元素個數(shù),若時間序列{Ti}中元素個數(shù)在第二閾值L以上,其中L為正整數(shù),則轉(zhuǎn)入步驟(b),否則不再確定安全時間STIMEn和安全范圍INTERVALn,結(jié)束;
(b)以時間序列{Ti}中首元素Tf為基準時間,若時間序列{Ti}中存在時間點Tj,使Tj滿足Tj-Tf≤M且Tj+1-Tf>M,其中j=f+1,f+2,…,k且第三閾值M≥0,單位為分鐘,則將Tf、Tf+1、…、Tj歸為同一簇,轉(zhuǎn)入步驟(c),否則轉(zhuǎn)入步驟(e);
(c)若該簇中所有元素個數(shù)在第二閾值L以上,其中L為正整數(shù),則轉(zhuǎn)入步驟(d),否則轉(zhuǎn)入步驟(e);
(d)確定該簇的安全時間STIMEn和安全范圍INTERVALn,STIMEn為該簇中最早時間FTIMEn和最晚時間LTIMEn的中間時刻,安全范圍INTERVALn為:INTERVALn=(LTIMEn-FTIMEn)*APLA,其中APLA表示時間參數(shù),數(shù)值范圍為0~0.75,安全范圍INTERVALn與安全時間STIMEn一一對應,并將該簇中所有元素Tf,Tf+1,…,Tj從時間序列{Ti}中剔除,時間序列{Ti}中剩余元素編號保持不變,轉(zhuǎn)入步驟(a);
(e)將元素Tf從時間序列{Ti}中剔除,時間序列{Ti}中剩余元素編號保持不變,轉(zhuǎn)入步驟(a)。
具體的掃描未被標記為安全應用的所有系統(tǒng)應用,提取并記錄這些系統(tǒng)應用的初始安裝時間,若某一系統(tǒng)應用的初始安裝時間與某個安全時間STIMEn的時間差在該安全時間對應的安全范圍INTERVALn內(nèi),也就是某一未標記的系統(tǒng)應用的初始安裝時間與安全時間STIME1的時間差在安全范圍INTERVAL1內(nèi),或者與安全時間STIME2的時間差在安全范圍INTERVAL2內(nèi),以此類推,或者與安全時間STIMEn的時間差在安全范圍INTERVALn內(nèi),則將該系統(tǒng)應用標記為安全應用,否則將該系統(tǒng)應用標記為待檢測應用。
綜上所述,由于采用了上述技術(shù)方案,本發(fā)明的有益效果是:
(1)本發(fā)明適用于沒有病毒庫和網(wǎng)絡(luò)的情況下,與其他查毒軟件相比應用范圍更廣。
(2)Android系統(tǒng)中系統(tǒng)應用數(shù)量比較龐大,且大部分的系統(tǒng)應用是安全的,若采取殺毒引擎依次查殺,查找速度非常慢,本發(fā)明通過軟件簽名與安裝時間將系統(tǒng)應用做出分類,所要檢測的應用無須與病毒庫做對比,有效提高查毒速度和準確率。
附圖說明
圖1是本發(fā)明的流程圖;
圖2是計算安全時間的算法流程圖;
具體實施方式
為使本發(fā)明之目的、技術(shù)方案和優(yōu)點闡述更加清晰,下面將結(jié)合附圖與實際用例,對本發(fā)明做進一步的詳細描述。
圖1為本發(fā)明的具體流程圖,主要包括以下步驟:
(1)掃描所有Android系統(tǒng)應用,并從Android系統(tǒng)應用中提取簽名信息;
(2)記錄同一簽名信息對應的系統(tǒng)應用個數(shù),若某一簽名信息對應的系統(tǒng)應用個數(shù)在第一閾值N以上,則標記該簽名信息對應的系統(tǒng)應用為安全應用;
(3)檢索并記錄步驟(2)中所有安全應用的初始安裝時間,得到時間序列{Ti},其中i=1,2,…,k,k為常量,且T1≤T2≤…≤Tk,再利用時間序列{Ti}中的元素確定若干個安全時間STIMEn和安全范圍INTERVALn,其中安全范圍INTERVALn與安全時間STIMEn一一對應,具體確定方法為:
(a)記錄時間序列{Ti}中元素個數(shù),若時間序列{Ti}中元素個數(shù)在第二閾值L以上,其中L為正整數(shù),則轉(zhuǎn)入步驟(b),否則不再確定安全時間STIMEn和安全范圍INTERVALn,結(jié)束;
(b)以時間序列{Ti}中首元素Tf為基準時間,若時間序列{Ti}中存在時間點Tj,使Tj滿足Tj-Tf≤M且Tj+1-Tf>M,其中j=f+1,f+2,…,k且第三閾值M≥0,單位為分鐘,則Tf、Tf+1、…、Tj為同一簇,轉(zhuǎn)入步驟(c),否則轉(zhuǎn)入步驟(e);
(c)若該簇中所有元素個數(shù)在第二閾值L以上,其中L為正整數(shù),則轉(zhuǎn)入步驟(d),否則轉(zhuǎn)入步驟(e);
(d)確定該簇的安全時間STIMEn和安全范圍INTERVALn,STIMEn為該簇中最早時間FTIMEn和最晚時間LTIMEn的中間時刻,安全范圍INTERVALn為:INTERVALn=(LTIMEn-FTIMEn)*APLA,其中APLA表示時間參數(shù),數(shù)值范圍為0~0.75,安全范圍INTERVALn與安全時間STIMEn一一對應,并將該簇中所有元素Tf,Tf+1,…,Tj從時間序列{Ti}中剔除,時間序列{Ti}中剩余元素編號保持不變,轉(zhuǎn)入步驟(a);
(e)將元素Tf從時間序列{Ti}中剔除,時間序列{Ti}中剩余元素編號保持不變,轉(zhuǎn)入步驟(a)。
(4)掃描步驟(2)中未被標記為安全應用的所有系統(tǒng)應用,提取并記錄這些系統(tǒng)應用的初始安裝時間,若某個系統(tǒng)應用的初始安裝時間與某個安全時間STIMEn的時間差在該安全時間對應的安全范圍INTERVALn內(nèi),也就是某一未標記的系統(tǒng)應用的初始安裝時間與安全時間STIME1的時間差在安全范圍INTERVAL1內(nèi),或者與安全時間STIME2的時間差在安全范圍INTERVAL2內(nèi),以此類推,或者與安全時間STIMEn的時間差在安全范圍INTERVALn內(nèi),則將該系統(tǒng)應用標記為安全應用,否則將該系統(tǒng)應用標記為待檢測應用。
以下以上述過程確定參數(shù)為標準,對應用實例進行說明。
實施例1:
假設(shè)要檢索某款Android手機中所有系統(tǒng)應用中的安全應用與待檢測應用。
步驟1:掃描該款Android手機中所有系統(tǒng)應用,并從全部系統(tǒng)應用中提取簽名信息;
步驟2:從Android系統(tǒng)應用中提取的簽名信息不全相同,假設(shè)共出現(xiàn)三種不同的簽名信息,標記為A、B、C。記錄同一簽名信息所對應的系統(tǒng)應用個數(shù),其中A類簽名信息對應的系統(tǒng)應用有7個;B類簽名信息對應的系統(tǒng)應用有5個;C類簽名信息對應的系統(tǒng)應用有3個。假設(shè)第一閾值N=5,此時某一簽名信息對應的系統(tǒng)應用個數(shù)在5個以上,則標記該簽名信息對應的系統(tǒng)應用為安全應用,很明顯A類和B類中的系統(tǒng)應用個數(shù)在5個以上,則將A類和B類中所有的系統(tǒng)應用標記為安全應用;
步驟3:檢索并記錄所有被標記為安全應用的初始安裝時間,即就是檢索A、B兩類中所有系統(tǒng)應用的初始安裝時間,并按先后順序?qū)⑺袝r間排序得到:2016/8/20 13:00:00、2016/8/20 13:05:00、2016/8/20 13:11:00、2016/8/20 13:15:00、2016/8/20 13:20:00、2016/8/20 13:22:00、2016/9/20 13:10:00、2016/9/20 13:12:00、2016/9/20 13:20:00、2016/9/20 13:26:00、2016/9/20 14:00:00、2016/9/20 14:10:00,并依次編號為:T1、T2、…、T12,所有初始安裝時間組成時間序列{Ti},其中i=1,2,…,12且T1≤T2≤…≤T12。再利用時間序列{Ti}中的元素確定若干個安全時間STIMEn和安全范圍INTERVALn,具體如下,假設(shè)第二閾值L=4,第三閾值M=20,M的單位為分鐘:
(a)時間序列{Ti}中元素個數(shù)為12個,很明顯大于4,以時間序列{Ti}中首元素T1為基準時間,若時間序列{Ti}中存在時間點Tj,使Tj與基準時間T1滿足Tj-T1≤20且Tj+1-T1>20,則T1、T2、…、Tj為同一簇,其中j=2,3,…,k。很明顯當j=5時滿足T5-T1≤20且T6-T1>20,則T1、T2、…、T5為同一簇,該簇中共有5個元素,明顯5>L,則計算該簇的安全時間STIME1和安全范圍INTERVAL1,STIME1為該簇中最早時間FTIME1(T1)和最晚時間LTIME1(T5)的中間時刻,也就是2016/8/20 13:00:00和2016/8/20 13:20:00的中間時刻,即安全時間STIME1是2016/8/20 13:10:00,安全范圍INTERVAL1的計算公式為:INTERVAL1=(LTIME1-FTIME1)*APLA,APLA為時間參數(shù),數(shù)值范圍是0~0.75。那么INTERVAL1=20*(0~0.75),可確定安全范圍INTERVAL1為0~15分鐘,最后將該簇中所有元素T1、T2、…、T5從時間序列{Ti}中剔除,時間序列{Ti}中的剩余元素的編號保持不變;
(b)現(xiàn)在時間序列{Ti}中的元素有T6、T7、…、T12等7個元素,明顯7>L,則以時間序列{Ti}中首元素T6為基準時間,很明顯時間序列{Ti}中不存在Tj,使Tj滿足Tj-T6≤20且Tj+1-T6>20,則將元素T6從時間序列{Ti}中剔除,時間序列{Ti}中的剩余元素的編號保持不變;
(c)現(xiàn)在時間序列{Ti}中的元素有T7、T8、…、T12等6個元素,明顯6>L,則以時間序列{Ti}中首元素T7為基準時間,很明顯當j=10時滿足T10-T7≤20且T11-T7>20,則T7、T8、T9、T10為同一簇,該簇中共有4個元素,明顯4≥L,則計算該簇的安全時間STIME2和安全范圍INTERVAL2,STIME2為該簇中最早時間FTIME2(T7)和最晚時間LTIME2(T10)的中間時刻,也就是2016/9/20 13:10:00和2016/9/20 13:26:00的中間時刻,即安全時間STIME2是2016/9/20 13:18:00,安全范圍INTERVAL2=(LTIME2-FTIME2)*APLA,APLA為時間參數(shù),數(shù)值范圍是0~0.75。那么INTERVAL2=16*(0~0.75),可確定安全范圍INTERVAL2為0~12分鐘,最后將該簇中所有元素T7、T8、T9、T10從時間序列{Ti}中剔除,時間序列{Ti}中的剩余元素的編號保持不變;
(d)現(xiàn)在時間序列{Ti}中僅有2個元素T11和T12,明顯2<L,所有安全時間STIMEn和安全范圍INTERVALn已經(jīng)確定完畢。
步驟4:檢索C類中系統(tǒng)應用的初始安裝時間,將C類中系統(tǒng)應用依次編號為:c1、c2、c3,它們的初始安裝時間按編號分別為:2016/8/20 12:56:00、2016/9/20 13:28:00和2016/9/20 16:00:00。若C類中某個系統(tǒng)應用的初始安裝時間與安全時間STIME1(2016/8/20 13:10:00)的時間差在安全范圍INTERVAL1(0~15分鐘)內(nèi),或者與安全時間STIME2(2016/9/20 13:18:00)的時間差在安全范圍INTERVAL2(0~12分鐘)內(nèi),則將該系統(tǒng)應用標記為安全應用,否則為待檢測應用。
很明顯c1的初始安裝時間(2016/8/20 12:56:00)與安全時間STIME1(2016/8/20 13:10:00)的時間差為14分鐘,在安全范圍INTERVAL1(0~15分鐘)內(nèi),c2的初始安裝時間(2016/9/20 13:28:00)與安全時間STIME2(2016/9/20 13:18:00)的時間差為10分鐘,在安全范圍INTERVAL2(0~12分鐘)內(nèi),c3的初始安裝時間(2016/9/20 16:00:00)與安全時間STIME1(2016/8/20 13:10:00)的時間差超過24小時,不在安全范圍INTERVAL1(0~15分鐘)內(nèi),并且與安全時間STIME2(2016/9/20 13:18:00)的時間差超過2小時,不在安全范圍INTERVAL2(0~12分鐘)內(nèi),則可確定c1和c2為安全應用,c3為待檢測應用。
以上為本發(fā)明的具體實施例,但并不用以限制本發(fā)明,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,凡在不脫離本發(fā)明原理的前提下,所做的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護發(fā)明范圍之內(nèi)。
本發(fā)明的有益效果是在對Android系統(tǒng)應用進行反木馬檢測時,根據(jù)軟件簽名和系統(tǒng)應用安裝時間過濾出部分安全系統(tǒng)應用,而此類安全系統(tǒng)應用不再需要與病毒庫特征值一一作對比,有效提高手機木馬檢測效率,并且可以克服后續(xù)反木馬掃描中的木馬程序誤報問題。