專利名稱:一種識別山寨應(yīng)用程序的方法和裝置的制作方法
一種識別山寨應(yīng)用程序的方法和裝置
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機(jī)應(yīng)用的安全技術(shù)領(lǐng)域,特別涉及一種識別山寨應(yīng)用程序的方法和裝置。
背景技術(shù):
近年來安卓因其開放性的特點(diǎn)得到了廣泛的應(yīng)用,其應(yīng)用數(shù)量乘爆炸式增長,但也因安卓的開放性導(dǎo)致安卓應(yīng)用易于被篡改或偽造,通常將篡改或偽造已有應(yīng)用程序而產(chǎn)生的應(yīng)用程序稱為山寨應(yīng)用程序。一方面基于知識產(chǎn)權(quán)保護(hù)方面的考慮,另一方面基于安全性方面考慮(山寨應(yīng)用程序通常包含木馬、病毒、廣告、泄露隱私等危害用戶的惡意代碼),需要對山寨應(yīng)用程序進(jìn)行識別,從而為用戶下載安裝安卓應(yīng)用提供一個更加良好的環(huán)境,并為安卓應(yīng)用的搜索提升權(quán)威性?,F(xiàn)有識別山寨應(yīng)用程序的方式主要通過人工測試的方式或基于用戶反饋的方式:其中,人工測試的方式是指安排專人通過實(shí)際使用應(yīng)用來鑒別是否為山寨應(yīng)用,顯然這種識別方式耗時較長,不可能在短時間內(nèi)測試大量應(yīng)用,且成本高?;谟脩舴答伒姆绞绞侵父鶕?jù)用戶投訴、評論等渠道收集信息,確定應(yīng)用是否為山寨應(yīng)用,但用戶反饋具有滯后性,發(fā)現(xiàn)問題時已經(jīng)對大量用戶造成了傷害,另外同樣耗時較長,需要等待較長一段時間的用戶反饋。
發(fā)明內(nèi)容有鑒于此,本發(fā)明提供了一種識別山寨應(yīng)用程序的方法和裝置,以便于提高山寨應(yīng)用程序識別的時效性,降低成本。具體技術(shù)方案如下:一種識別山寨應(yīng)用程序的方法,該方法包括:S1、獲取同一應(yīng)用的程序安裝包,并從程序安裝包中分別提取開發(fā)者簽名和應(yīng)用權(quán)限信息;S2、在同一應(yīng)用的各程序安裝包中,依據(jù)程序安裝包的開發(fā)者簽名偏離其他程序安裝包的開發(fā)者簽名的狀況以及程序安裝包的應(yīng)用權(quán)限偏離其他程序安裝包的應(yīng)用權(quán)限的狀況,判斷程序安裝包是否為山寨應(yīng)用程序。根據(jù)本發(fā)明一優(yōu)選實(shí)施方式,在所述步驟SI中,從程序安裝包的META-1NF目錄下提取開發(fā)者簽名,從程序安裝包的manifast.xml中的permission組件解析得到應(yīng)用權(quán)限信息。根據(jù)本發(fā)明一優(yōu)選實(shí)施方式,在所述步驟S2中,依據(jù)程序安裝包的開發(fā)者簽名偏離其他程序安裝包的開發(fā)者簽名的狀況,確定該程序安裝包的第一權(quán)重,依據(jù)程序安裝包的應(yīng)用權(quán)限偏離其他程序安裝包的應(yīng)用權(quán)限的狀況,確定該程序安裝包的第二權(quán)重,根據(jù)第一權(quán)重和第二權(quán)重得到該程序安裝包的總 權(quán)重,將總權(quán)重值大于或等于預(yù)設(shè)的權(quán)重閾值的程序安裝包識別為山寨應(yīng)用程序;
其中,程序安裝包的開發(fā)者簽名偏離其他程序安裝包的開發(fā)者簽名的狀況越嚴(yán)重,第一權(quán)重值越大,程序安裝包的應(yīng)用權(quán)限偏離其他程序安裝包的應(yīng)用權(quán)限的狀況越嚴(yán)重,第二權(quán)重值越大。根據(jù)本發(fā)明一優(yōu)選實(shí)施方式,所述程序安裝包的開發(fā)者簽名偏離其他程序安裝包的開發(fā)者簽名的狀況體現(xiàn)為:程序安裝包的開發(fā)者簽名占同一應(yīng)用中各程序安裝包的開發(fā)者簽名的比重,其中所述比重越低,偏離其他程序安裝包的開發(fā)者簽名的狀況越嚴(yán)重;所述第一權(quán)重進(jìn)一步取決于:程序安裝包的開發(fā)者簽名與該應(yīng)用的低版本程序安裝包的開發(fā)者簽名的重合狀況,所述重合狀況越低,該程序安裝包的第一權(quán)重值越大。根據(jù)本發(fā)明一優(yōu)選實(shí)施方式,所述程序安裝包的應(yīng)用權(quán)限偏離其他程序安裝包的應(yīng)用權(quán)限的狀況體現(xiàn)為:程序安裝包的應(yīng)用權(quán)限與該應(yīng)用的基礎(chǔ)應(yīng)用權(quán)限的差異,差異越大,偏離其他程序安裝包的應(yīng)用權(quán)限的狀況越嚴(yán)重,其中若同一應(yīng)用的程序安裝包中具有某應(yīng)用權(quán)限的程序安裝包數(shù)量最多,則確定所述某應(yīng)用權(quán)限為該應(yīng)用的基礎(chǔ)應(yīng)用權(quán)限;所述第二權(quán)重進(jìn)一步取決于:程序安裝包的應(yīng)用權(quán)限在包含風(fēng)險權(quán)限名單中的數(shù)量,數(shù)量越大,該程序安裝包的第二權(quán)重值越大。一種識別山寨應(yīng)用程序的裝置,該裝置包括:安裝包獲取單元,用于獲取同一應(yīng)用的程序安裝包;安裝包解析單元,用于從各程序安裝包中分別提取開發(fā)者簽名和應(yīng)用權(quán)限信息;程序識別單元,用于在同一應(yīng)用的各程序安裝包中,依據(jù)程序安裝包的開發(fā)者簽名偏離其他程序安裝包的開發(fā)者簽名的狀況以及程序安裝包的應(yīng)用權(quán)限偏離其他程序安裝包的應(yīng)用權(quán)限的狀況,判斷程序安裝包是否為山寨應(yīng)用程序。根據(jù)本發(fā)明一優(yōu)選實(shí)施方式,所述安裝包解析單元從程序安裝包的META-1NF目錄下提取開發(fā)者簽名,從程序安裝包的manifast.xml中的permission組件解析得到應(yīng)用權(quán)限信息。根據(jù)本發(fā)明一優(yōu)選實(shí)施方式,所述程序識別單元具體包括:第一確定子單元,用于依據(jù)程序安裝包的開發(fā)者簽名偏離其他程序安裝包的開發(fā)者簽名的狀況,確定該程序安裝包的第一權(quán)重,其中程序安裝包的開發(fā)者簽名偏離其他程序安裝包的開發(fā)者簽名的狀況越嚴(yán)重,第一權(quán)重值越大;第二確定子單元,用于依據(jù)程序安裝包的應(yīng)用權(quán)限偏離其他程序安裝包的應(yīng)用權(quán)限的狀況,確定該程序安裝包的第二權(quán)重,其中程序安裝包的應(yīng)用權(quán)限偏離其他程序安裝包的應(yīng)用權(quán)限的狀況越嚴(yán)重,第二權(quán)重值越大;識別子單元,用于根據(jù)第一權(quán)重和第二權(quán)重得到該程序安裝包的總權(quán)重,將總權(quán)重值大于或等于預(yù)設(shè)的權(quán)重閾值的程序安裝包識別為山寨應(yīng)用程序。根據(jù)本發(fā)明一優(yōu)選實(shí)施方式,所述程序安裝包的開發(fā)者簽名偏離其他程序安裝包的開發(fā)者簽名的狀況體現(xiàn)為:程序安裝包的開發(fā)者簽名占同一應(yīng)用中各程序安裝包的開發(fā)者簽名的比重,其中所述比重越低,偏離其他程序安裝包的開發(fā)者簽名的狀況越嚴(yán)重;所述第一確定子單元進(jìn)一步結(jié)合程序安裝包的開發(fā)者簽名與該應(yīng)用的低版本程序安裝包的開發(fā)者簽名的重合狀況確定所述第一權(quán)重,所述重合狀況越低,該程序安裝包的第一權(quán)重值越大。根據(jù)本發(fā)明一優(yōu)選實(shí)施方式,所述程序安裝包的應(yīng)用權(quán)限偏離其他程序安裝包的應(yīng)用權(quán)限的狀況體現(xiàn)為:程序安裝包的應(yīng)用權(quán)限與該應(yīng)用的基礎(chǔ)應(yīng)用權(quán)限的差異,差異越大,偏離其他程序安裝包的應(yīng)用權(quán)限的狀況越嚴(yán)重,其中若同一應(yīng)用的程序安裝包中具有某應(yīng)用權(quán)限的程序安裝包數(shù)量最多,則確定所述某應(yīng)用權(quán)限為該應(yīng)用的基礎(chǔ)應(yīng)用權(quán)限;所述第二確定子單元進(jìn)一步結(jié)合程序安裝包的應(yīng)用權(quán)限在包含風(fēng)險權(quán)限名單中的數(shù)量確定所述第二權(quán)重,數(shù)量越大,該程序安裝包的第二權(quán)重值越大。由以上技術(shù)方案可以看出,本發(fā)明提供的方法和裝置利用同一應(yīng)用的程序安裝包中提取出的開發(fā)者簽名和應(yīng)用權(quán)限信息即可實(shí)現(xiàn)山寨應(yīng)用程序的識別,無需依靠人工測試,也無需依賴用戶反饋,能夠即時地實(shí)現(xiàn)山寨應(yīng)用程序的識別,提高了時效性,降低了成本。
圖1為本發(fā)明實(shí)施例一提供的識別山寨應(yīng)用程序的方法流程圖;圖2為本發(fā)明實(shí)施例二提供的識別山寨應(yīng)用程序的裝置結(jié)構(gòu)圖。
具體實(shí)施方式為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖和具體實(shí)施例對本發(fā)明進(jìn)行詳細(xì)描述。實(shí)施例一、圖1為本發(fā)明實(shí)施例一提供的識別山寨應(yīng)用程序的方法流程圖,在本發(fā)明中轉(zhuǎn)換了一種思路,從應(yīng)用程序的本身的特征出發(fā),通過山寨應(yīng)用程序與正常應(yīng)用程序在該特征上的不同體現(xiàn)來進(jìn)行識別,如圖1所示,該方法主要包括以下步驟:步驟101:獲取同一應(yīng)用的程序安裝包,并從程序安裝包中分別提取開發(fā)者簽名和應(yīng)用權(quán)限信息。此處同一應(yīng)用的程序安裝包通常會包含不同版本的程序安裝包,以及不同來源的程序安裝包。在提取開發(fā)者簽名時,對于安卓應(yīng)用而言,可以從程序安裝包的元信息(META-1NF)目錄下提取,META-1NF目錄用于存儲包和擴(kuò)展的配置數(shù)據(jù),例如安全性信息和版本信息,其中開發(fā)者簽名就存儲于此。在提取應(yīng)用權(quán)限信息時,對于安卓應(yīng)用而言,可以從程序安裝包的項目自描述文件(manifast.xml)中解析得到,manifast.xml是每個android程序中必須的文件,位于整個項目的根目錄中,描述了包中暴露的組件,除了能聲明程序中的活動(Activities)、內(nèi)容管理器(ContentProviders)、服務(wù)(Services)和意圖接收器(Intent Receivers)等組件之外,還能指定許可(permissions)和檢測(instrumentation),應(yīng)用權(quán)限信息就包含在permissions 中。步驟102:依據(jù)程序安裝包的開發(fā)者簽名偏離其他程序安裝包的開發(fā)者簽名的狀況,確定程序安裝包的第一權(quán)重。由于正版應(yīng)用程序的傳播能力強(qiáng)且會持續(xù)發(fā)版,因此對應(yīng)的開發(fā)者簽名分布較廣,數(shù)量通常也較多,而山寨應(yīng)用程序則反之,鑒于這種狀況,如果某程序安裝包的開發(fā)者簽名偏離其他程序安裝包的開發(fā)者簽名的狀況越嚴(yán)重,則該程序安裝包是山寨應(yīng)用程序的可能性越高,就可以將該程序安裝包的第一權(quán)重值設(shè)置的越大。具體可以統(tǒng)計某程序安裝包的開發(fā)者簽名占同一應(yīng)用中各程序安裝包的開發(fā)者簽名的比重,如果比重越低,則說明偏離其他程序安裝包的開發(fā)者簽名的狀況越嚴(yán)重,可以將第一權(quán)重值設(shè)置的越大。舉個例子,假設(shè)“瘋狂的小鳥”對應(yīng)的程序安裝包有20個,這些程序安裝包的簽名狀況可以為:開發(fā)者簽名I存在I個(假設(shè)是程序安裝包I ),開發(fā)者簽名2存在2個(假設(shè)是程序安裝包2和3),開發(fā)者簽名3存在17個(假設(shè)是程序安裝包4至20),可以看出,程序安裝包1、2和3偏離其他程序安裝包的開發(fā)者簽名的狀況都比較嚴(yán)重,在設(shè)置第一權(quán)重值時,可以設(shè)置程序安裝包I的第一權(quán)重為1-1/20=0.95,程序安裝包2和3的第一權(quán)重為1-2/20=0.9,程序安裝包4至20的第一權(quán)重為1-17/20=0.15。除此之外,如果從另外一個維度考慮還存在一種因素,即對于不同版本的程序安裝包而言,通常第一版本的程序安裝包由于普及程度還不那么高,是山寨應(yīng)用程序的可能性較小,其對應(yīng)的開發(fā)者簽名更加權(quán)威,后續(xù)版本的程序安裝包就可以第一版本的程序安裝包的開發(fā)者簽名作為參考,正版應(yīng)用程序變更開發(fā)者簽名的可能性較小,因此可以進(jìn)一步考慮程序安裝包的開發(fā)者簽名與該應(yīng)用的低版本程序安裝包的開發(fā)者簽名的重合狀況,例如如果某個程序安裝包與第一版本的程序安裝包的開發(fā)者簽名重合度很低,那么其是山寨應(yīng)用程序的可能性就越高,因此在確定第一權(quán)重時,也可以將該因素考慮進(jìn)去。如果將該因素同時考慮進(jìn)去,則可以分別依據(jù)程序安裝包的開發(fā)者簽名偏離其他程序安裝包的開發(fā)者簽名的狀況以及程序安裝包的開發(fā)者簽名與該應(yīng)用的低版本程序安裝包的開發(fā)者簽名的重合狀況分別確定權(quán)重,再進(jìn)行加權(quán)后確定該程序安裝包的第一權(quán)重?;蛘?,程序安裝包的開發(fā)者簽名與該應(yīng)用的低版本程序安裝包的開發(fā)者簽名的重合狀況用于對依據(jù)程序安裝包的開發(fā)者簽名偏離其他程序安裝包的開發(fā)者簽名的狀況確定的第一權(quán)重進(jìn)行調(diào)權(quán)處理。步驟103:依據(jù)程序安裝包的應(yīng)用權(quán)限偏離其他程序安裝包的應(yīng)用權(quán)限的狀況,確定程序安裝包的第二權(quán)重。通常對于正版應(yīng)用程序而言,應(yīng)用權(quán)限的要求通常是相同的,如果應(yīng)用權(quán)限發(fā)生了變化的程序安裝包,則很可能是山寨應(yīng)用程序。鑒于這種狀況,如果某程序安裝包的應(yīng)用權(quán)限偏離其他程序安裝包的應(yīng)用權(quán)限的狀況越嚴(yán)重,則說明該程序安裝包是山寨應(yīng)用程序的可能性越大,將該程序安裝包的第二權(quán)重設(shè)置的越大。通??梢酝ㄟ^以下方式確定:首先確定同一應(yīng)用程序的所有程序安裝包中具有某應(yīng)用權(quán)限的程序安裝包數(shù)量最多,則可以認(rèn)為這些程序安裝包為正版應(yīng)用程序,將對應(yīng)的所述某應(yīng)用權(quán)限作為基礎(chǔ)應(yīng)用權(quán)限,對于某程序安裝包而言,其應(yīng)用權(quán)限與基礎(chǔ)應(yīng)用權(quán)限的差異越大,則可以認(rèn)為程序安裝包的應(yīng)用權(quán)限偏離其他程序安裝包的應(yīng)用權(quán)限的狀況越嚴(yán)重。舉個例子,假設(shè)對于“瘋狂的小鳥”對應(yīng)的程序安裝包有20個,其中有16個程序安裝包(假設(shè)是程序安裝包5至20)的應(yīng)用權(quán)限都是相同的,而4個程序安裝包的應(yīng)用權(quán)限與上述的應(yīng)用權(quán)限不同,則可以將上述16個具有相同應(yīng)用權(quán)限的程序安裝包的應(yīng)用權(quán)限作為基礎(chǔ)應(yīng)用權(quán)限,假設(shè)程序安裝包I的應(yīng)用權(quán)限相比較基礎(chǔ)應(yīng)用權(quán)限而言多了撥打電話,程序安裝包的應(yīng)用程序相比較基礎(chǔ)應(yīng)用權(quán)限而言多了撥打電話、連接網(wǎng)絡(luò)和收發(fā)短信。如果基礎(chǔ)應(yīng)用權(quán)限中的權(quán)限個數(shù)為3,那么程序安裝包I的第二權(quán)重可以設(shè)置為1/(3+1)=0.25,程序安裝包2至4的第二權(quán)重均可以設(shè)置為3/(3+1)=0.75,程序安裝包5至20的第二權(quán)重為O。
除此之外,還可以從另外一個方面考慮,對于某些應(yīng)用權(quán)限而言,是程序安裝包正常運(yùn)行所不需要的并且是涉及到用戶隱私或影響用戶安全的,這些應(yīng)用權(quán)限可以設(shè)置在高風(fēng)險權(quán)限名單中,例如撥打電話的應(yīng)用權(quán)限、收發(fā)短信的應(yīng)用權(quán)限等。因此,可以進(jìn)一步考慮程序安裝包的應(yīng)用權(quán)限包含在高風(fēng)險權(quán)限名單中的數(shù)量,數(shù)量越大,該程序安裝包是山寨應(yīng)用程序的可能性越大,可以設(shè)置該程序安裝包的第二權(quán)重值越大。如果將該因素考慮進(jìn)去,則可以分別依據(jù)程序安裝包的應(yīng)用權(quán)限偏離其他程序安裝包的應(yīng)用權(quán)限的狀況以及程序安裝包的應(yīng)用權(quán)限包含在高風(fēng)險權(quán)限名單中的數(shù)量分別確定權(quán)重,再進(jìn)行加權(quán)后確定該程序安裝包的第二權(quán)重。或者,程序安裝包的應(yīng)用權(quán)限包含在高風(fēng)險權(quán)限名單中的數(shù)量分別確定權(quán)重用于對依據(jù)程序安裝包的應(yīng)用權(quán)限偏離其他程序安裝包的應(yīng)用權(quán)限的狀況確定的第二權(quán)重進(jìn)行調(diào)權(quán)處理。仍以上例來說明,程序安裝包I中撥打電話這個應(yīng)用權(quán)限包含在高風(fēng)險權(quán)限名單中,程序安裝包2中2個應(yīng)用權(quán)限包含在高風(fēng)險權(quán)限名單中,則可以將程序安裝包I的第二權(quán)重向上調(diào)整一個步長,假設(shè)步長是0.05,則程序安裝包I的第二權(quán)重變?yōu)?.3,程序安裝包2至4的第二權(quán)重向上調(diào)整兩個步長,變?yōu)?.85。步驟104:根據(jù)第一權(quán)重和第二權(quán)重得到程序安裝包的總權(quán)重,將總權(quán)重之大于或等于預(yù)設(shè)的權(quán)重閾值的程序安裝包識別為山寨應(yīng)用程序。上述的權(quán)重閾值可以根據(jù)實(shí)際需求進(jìn)行調(diào)整,選取經(jīng)驗值或者實(shí)驗值。在根據(jù)第一權(quán)重和第二權(quán)重得到程序安裝包的總權(quán)重時,可以采用加權(quán)的方式,例如加權(quán)求和或者加權(quán)求平均等。假設(shè)第一權(quán)重和第二權(quán)重的加權(quán)系統(tǒng)分別是0.5和0.5,那么接續(xù)上例,程序安裝包I的總權(quán)重為:0.95*0.5+0.25*0.5=0.6,程序安裝包2和3的總權(quán)重均為:
0.9*0.5+0.75*0.5=0.825,程序安裝包 4 的總權(quán)重為:0.15*0.5+0.75*0.5=0.45,程序安裝包5至20的總權(quán)重均為:0.15*0.5+0=0.075。如果權(quán)重閾值設(shè)置為0.6,那么可以識別出程序安裝包1、2和3均為山寨應(yīng)用程序。上述實(shí)例中的第一權(quán)重和第二權(quán)重的計算方法均為所舉的例子,也可以分別依據(jù)上述的因素采用其他計算方法,在此不再一一舉例。需要說明的是,在本發(fā)明中采用依據(jù)程序安裝包的開發(fā)者簽名偏離其他程序安裝包的開發(fā)者簽名的狀況以及程序安裝包的應(yīng)用權(quán)限偏離其他程序安裝包的應(yīng)用權(quán)限的狀況分別計算權(quán)重再將權(quán)重進(jìn)行融合的方式來綜合兩方面狀況。但本發(fā)明并不限于這種方式,也可以采用除了計算權(quán)重之外的其他方式來體現(xiàn)和綜合兩方面狀況,從而完成山寨應(yīng)用程序的識別。除了上述根據(jù)程序安裝包的開發(fā)者簽名和應(yīng)用權(quán)限兩個因素作為基礎(chǔ)之外,還可以進(jìn)一步結(jié)合其他因素進(jìn)行山寨應(yīng)用程序的識別,例如如果對時效性要求不那么高,則可以進(jìn)一步結(jié)合用戶行為來進(jìn)行識別。可以根據(jù)用戶對程序安裝包的使用次數(shù)、卸載次數(shù)等確定程序安裝包的第三權(quán)重,然后在確定總權(quán)重時,除了第一權(quán)重和第二權(quán)重之外,進(jìn)一步結(jié)合該第三權(quán)重進(jìn)行確定;或者在利用第一權(quán)重和第二權(quán)重確定出程序安裝包的總權(quán)重之后,可以進(jìn)一步根據(jù)用戶對程序安裝包的使用次數(shù)、卸載次數(shù)等對程序安裝包的總權(quán)重進(jìn)行調(diào)權(quán)。在通過上述實(shí)施例中的步驟識別出山寨應(yīng)用程序后,可以將識別出的山寨應(yīng)用程序提交后臺服務(wù)進(jìn)行下線處理,或者提交給測試人員進(jìn)行進(jìn)一步的驗證。以上是對本發(fā)明提供的方法進(jìn)行的詳細(xì)描述,下面結(jié)合實(shí)施例二對本發(fā)明提供的裝置進(jìn)行詳細(xì)描述。實(shí)施例二、圖2為本發(fā)明實(shí)施例二提供的識別山寨應(yīng)用程序的裝置結(jié)構(gòu)圖,如圖2所示,該裝置主要包括:安裝包獲取單元00、安裝包解析單元10和程序識別單元20。首先安裝包獲取單元00獲取同一應(yīng)用的程序安裝包。該獲取的操作可以通過應(yīng)用搜索引擎從網(wǎng)絡(luò)中或者安卓應(yīng)用庫中進(jìn)行獲取。安裝包解析單元10從各程序安裝包中分別提取開發(fā)者簽名和應(yīng)用權(quán)限信息。具體可以從程序安裝包的META-1NF目錄下提取開發(fā)者簽名,從程序安裝包的manifast.xml中的permission組件解析得到應(yīng)用權(quán)限信息。程序識別單元20的功能在于依據(jù)程序安裝包的開發(fā)者簽名和應(yīng)用權(quán)限信息這兩個因素實(shí)現(xiàn)山寨應(yīng)用程序的識別,具體為:在同一應(yīng)用的各程序安裝包中,依據(jù)程序安裝包的開發(fā)者簽名偏離其他程序安裝包的開發(fā)者簽名的狀況以及程序安裝包的應(yīng)用權(quán)限偏離其他程序安裝包的應(yīng)用權(quán)限的狀況,判斷程序安裝包是否為山寨應(yīng)用程序。在本發(fā)明實(shí)施例中提供了一種優(yōu)選的判斷方法,此時的程序識別單元20具體包括:第一確定子單元21、第二確定子單元22和識別子單元23。其中第一確定子單元21依據(jù)程序安裝包的開發(fā)者簽名偏離其他程序安裝包的開發(fā)者簽名的狀況,確定該程序安裝包的第一權(quán)重,其中程序安裝包的開發(fā)者簽名偏離其他程序安裝包的開發(fā)者簽名的狀況越嚴(yán)重,第一權(quán)重值越大。程序安裝包的開發(fā)者簽名偏離其他程序安裝包的開發(fā)者簽名的狀況可以體現(xiàn)為:程序安裝包的開發(fā)者簽名占同一應(yīng)用中各程序安裝包的開發(fā)者簽名的比重,其中比重越低,偏離其他程序安裝包的開發(fā)者簽名的狀況越嚴(yán)重。除此之外,第一確定子單元21可以進(jìn)一步結(jié)合程序安裝包的開發(fā)者簽名與該應(yīng)用的低版本程序安裝包的開發(fā)者簽名的重合狀況確定第一權(quán)重,重合狀況越低,該程序安裝包的第一權(quán)重值越大。如果將程序安裝包的開發(fā)者簽名與該應(yīng)用的低版本程序安裝包的開發(fā)者簽名的重合狀況同時考慮進(jìn)去,則可以分別依據(jù)程序安裝包的開發(fā)者簽名偏離其他程序安裝包的開發(fā)者簽名的狀況以及程序安裝包的開發(fā)者簽名與該應(yīng)用的低版本程序安裝包的開發(fā)者簽名的重合狀況分別確定權(quán)重,再進(jìn)行加權(quán)后確定該程序安裝包的第一權(quán)重。或者,程序安裝包的開發(fā)者簽名與該應(yīng)用的低版本程序安裝包的開發(fā)者簽名的重合狀況用于對依據(jù)程序安裝包的開發(fā)者簽名偏離其他程序安裝包的開發(fā)者簽名的狀況確定的第一權(quán)重進(jìn)行調(diào)權(quán)處理。第二確定子單元22依據(jù)程序安裝包的應(yīng)用權(quán)限偏離其他程序安裝包的應(yīng)用權(quán)限的狀況,確定該程序安裝包的第二權(quán)重,其中程序安裝包的應(yīng)用權(quán)限偏離其他程序安裝包的應(yīng)用權(quán)限的狀況越嚴(yán)重,第二權(quán)重值越大。其中程序安裝包的應(yīng)用權(quán)限偏離其他程序安裝包的應(yīng)用權(quán)限的狀況體現(xiàn)為:程序安裝包的應(yīng)用權(quán)限與該應(yīng)用的基礎(chǔ)應(yīng)用權(quán)限的差異,差異越大,偏離其他程序安裝包的應(yīng)用權(quán)限的狀況越嚴(yán)重,其中若同一應(yīng)用的程序安裝包中具有某應(yīng)用權(quán)限的程序安裝包數(shù)量最多,則確定某應(yīng)用權(quán)限為該應(yīng)用的基礎(chǔ)應(yīng)用權(quán)限。除此之外第二確定子單元22可以進(jìn)一步結(jié)合程序安裝包的應(yīng)用權(quán)限在包含風(fēng)險權(quán)限名單中的數(shù)量確定第二權(quán)重,數(shù)量越大,該程序安裝包的第二權(quán)重值越大。
如果將程序安裝包的應(yīng)用權(quán)限在包含風(fēng)險權(quán)限名單中的數(shù)量同時考慮進(jìn)去,則可以分別依據(jù)程序安裝包的應(yīng)用權(quán)限偏離其他程序安裝包的應(yīng)用權(quán)限的狀況以及程序安裝包的應(yīng)用權(quán)限包含在高風(fēng)險權(quán)限名單中的數(shù)量分別確定權(quán)重,再進(jìn)行加權(quán)后確定該程序安裝包的第二權(quán)重?;蛘?,程序安裝包的應(yīng)用權(quán)限包含在高風(fēng)險權(quán)限名單中的數(shù)量分別確定權(quán)重用于對依據(jù)程序安裝包的應(yīng)用權(quán)限偏離其他程序安裝包的應(yīng)用權(quán)限的狀況確定的第二權(quán)重進(jìn)行調(diào)權(quán)處理。最后識別子單元23根據(jù)第一權(quán)重和第二權(quán)重得到該程序安裝包的總權(quán)重,將總權(quán)重值大于或等于預(yù)設(shè)的權(quán)重閾值的程序安裝包識別為山寨應(yīng)用程序。在根據(jù)第一權(quán)重和第二權(quán)重得到程序安裝包的總權(quán)重時,可以采用加權(quán)的方式,例如加權(quán)求和或者加權(quán)求平均等。上述的權(quán)重閾值可以根據(jù)實(shí)際需求進(jìn)行調(diào)整,選取經(jīng)驗值或者實(shí)驗值。通過上述實(shí)施例提供的方法和裝置可以有效的識別山寨應(yīng)用程序,經(jīng)過測試,對于熱門應(yīng)用,其識別準(zhǔn)確率可以達(dá)到99%。本發(fā)明的上述實(shí)施例以安卓應(yīng)用為例,對于其他開源系統(tǒng)的應(yīng)用本發(fā)明均適用。在本發(fā)明所提供的幾個實(shí)施例中,應(yīng)該理解到,所揭露的裝置和方法,可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時可以有另外的劃分方式。另外,在本發(fā)明各個實(shí)施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨(dú)物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用硬件加軟件功能單元的形式實(shí)現(xiàn)。上述以軟件功能單元的形式實(shí)現(xiàn)的集成的單元,可以存儲在一個計算機(jī)可讀取存儲介質(zhì)中。上述軟件功能單元存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)或處理器(processor)執(zhí)行本發(fā)明各個實(shí)施例所述方法的部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(Read-Only Memory, ROM)、隨機(jī)存取存儲器(Random Access Memory, RAM)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
權(quán)利要求
1.一種識別山寨應(yīng)用程序的方法,其特征在于,該方法包括: 51、獲取同一應(yīng)用的程序安裝包,并從程序安裝包中分別提取開發(fā)者簽名和應(yīng)用權(quán)限信息; 52、在同一應(yīng)用的各程序安裝包中,依據(jù)程序安裝包的開發(fā)者簽名偏離其他程序安裝包的開發(fā)者簽名的狀況以及程序安裝包的應(yīng)用權(quán)限偏離其他程序安裝包的應(yīng)用權(quán)限的狀況,判斷程序安裝包是否為山寨應(yīng)用程序。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述步驟SI中,從程序安裝包的元信息META-1NF目錄下提取開發(fā)者簽名,從程序安裝包的項目自描述文件manifast.xml中的許可permission組件解析得到應(yīng)用權(quán)限信息。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述步驟S2中,依據(jù)程序安裝包的開發(fā)者簽名偏離其他程序安裝包的開發(fā)者簽名的狀況,確定該程序安裝包的第一權(quán)重,依據(jù)程序安裝包的應(yīng)用權(quán)限偏離其他程序安裝包的應(yīng)用權(quán)限的狀況,確定該程序安裝包的第二權(quán)重,根據(jù)第一權(quán)重和第二權(quán)重得到該程序安裝包的總權(quán)重,將總權(quán)重值大于或等于預(yù)設(shè)的權(quán)重閾值的程序安裝包識別為山寨應(yīng)用程序; 其中,程序安裝包的開發(fā)者簽名偏離其他程序安裝包的開發(fā)者簽名的狀況越嚴(yán)重,第一權(quán)重值越大,程序安裝包的應(yīng)用權(quán)限偏離其他程序安裝包的應(yīng)用權(quán)限的狀況越嚴(yán)重,第二權(quán)重值越大。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述程序安裝包的開發(fā)者簽名偏離其他程序安裝包的開發(fā)者簽名的狀況體現(xiàn)為:程序安裝包的開發(fā)者簽名占同一應(yīng)用中各程序安裝包的開發(fā)者簽名的比重,其中所述比重越低,偏離其他程序安裝包的開發(fā)者簽名的狀況越嚴(yán)重; 所述第一權(quán)重進(jìn)一步取決于:程序安裝包的開發(fā)者簽名與該應(yīng)用的低版本程序安裝包的開發(fā)者簽名的重合狀況,所述重合狀況越低,該程序安裝包的第一權(quán)重值越大。
5.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述程序安裝包的應(yīng)用權(quán)限偏離其他程序安裝包的應(yīng)用權(quán)限的狀況體現(xiàn)為:程序安裝包的應(yīng)用權(quán)限與該應(yīng)用的基礎(chǔ)應(yīng)用權(quán)限的差異,差異越大,偏離其他程序安裝包的應(yīng)用權(quán)限的狀況越嚴(yán)重,其中若同一應(yīng)用的程序安裝包中具有某應(yīng)用權(quán)限的程序安裝包數(shù)量最多,則確定所述某應(yīng)用權(quán)限為該應(yīng)用的基礎(chǔ)應(yīng)用權(quán)限; 所述第二權(quán)重進(jìn)一步取決于:程序安裝包的應(yīng)用權(quán)限在包含風(fēng)險權(quán)限名單中的數(shù)量,數(shù)量越大,該程序安裝包的第二權(quán)重值越大。
6.一種識別山寨應(yīng)用程序的裝置,其特征在于,該裝置包括: 安裝包獲取單元,用于獲取同一應(yīng)用的程序安裝包; 安裝包解析單元,用于從各程序安裝包中分別提取開發(fā)者簽名和應(yīng)用權(quán)限信息; 程序識別單元,用于在同一應(yīng)用的各程序安裝包中,依據(jù)程序安裝包的開發(fā)者簽名偏離其他程序安裝包的開發(fā)者簽名的狀況以及程序安裝包的應(yīng)用權(quán)限偏離其他程序安裝包的應(yīng)用權(quán)限的狀況,判斷程序安裝包是否為山寨應(yīng)用程序。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述安裝包解析單元從程序安裝包的META-1NF目錄下提取開發(fā)者簽名,從程序安裝包的manifast.xml中的permission組件解析得到應(yīng)用權(quán)限信息。
8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述程序識別單元具體包括: 第一確定子單元,用于依據(jù)程序安裝包的開發(fā)者簽名偏離其他程序安裝包的開發(fā)者簽名的狀況,確定該程序安裝包的第一權(quán)重,其中程序安裝包的開發(fā)者簽名偏離其他程序安裝包的開發(fā)者簽名的狀況越嚴(yán)重,第一權(quán)重值越大; 第二確定子單元,用于依據(jù)程序安裝包的應(yīng)用權(quán)限偏離其他程序安裝包的應(yīng)用權(quán)限的狀況,確定該程序安裝包的第二權(quán)重,其中程序安裝包的應(yīng)用權(quán)限偏離其他程序安裝包的應(yīng)用權(quán)限的狀況越嚴(yán)重,第二權(quán)重值越大; 識別子單元,用于根據(jù)第一權(quán)重和第二權(quán)重得到該程序安裝包的總權(quán)重,將總權(quán)重值大于或等于預(yù)設(shè)的權(quán)重閾值的程序安裝包識別為山寨應(yīng)用程序。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述程序安裝包的開發(fā)者簽名偏離其他程序安裝包的開發(fā)者簽名的狀況體現(xiàn)為:程序安裝包的開發(fā)者簽名占同一應(yīng)用中各程序安裝包的開發(fā)者簽名的比重,其中所述比重越低,偏離其他程序安裝包的開發(fā)者簽名的狀況越嚴(yán)重; 所述第一確定子單元進(jìn)一步結(jié)合程序安裝包的開發(fā)者簽名與該應(yīng)用的低版本程序安裝包的開發(fā)者簽名的重合狀況確定所述第一權(quán)重,所述重合狀況越低,該程序安裝包的第一權(quán)重值越大。
10.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述程序安裝包的應(yīng)用權(quán)限偏離其他程序安裝包的應(yīng)用權(quán)限的狀況體現(xiàn)為:程序安裝包的應(yīng)用權(quán)限與該應(yīng)用的基礎(chǔ)應(yīng)用權(quán)限的差異,差異越大,偏離其他程序安裝包的應(yīng)用權(quán)限的狀況越嚴(yán)重,其中若同一應(yīng)用的程序安裝包中具有某應(yīng)用權(quán)限的程序安裝包數(shù)量最多,則確定所述某應(yīng)用權(quán)限為該應(yīng)用的基礎(chǔ)應(yīng)用權(quán)限; 所述第二確定子單元進(jìn)一步結(jié)合程序安裝包的應(yīng)用權(quán)限在包含風(fēng)險權(quán)限名單中的數(shù)量確定所述第二權(quán)重,數(shù)量越大,該程序安裝包的第二權(quán)重值越大。
全文摘要
本發(fā)明提供了一種識別山寨應(yīng)用程序的方法和裝置,其中方法包括獲取同一應(yīng)用的程序安裝包,并從程序安裝包中分別提取開發(fā)者簽名和應(yīng)用權(quán)限信息;在同一應(yīng)用的各程序安裝包中,依據(jù)程序安裝包的開發(fā)者簽名偏離其他程序安裝包的開發(fā)者簽名的狀況以及程序安裝包的應(yīng)用權(quán)限偏離其他程序安裝包的應(yīng)用權(quán)限的狀況,判斷程序安裝包是否為山寨應(yīng)用程序。本發(fā)明無需依靠人工測試,也無需依賴用戶反饋,能夠即時地實(shí)現(xiàn)山寨應(yīng)用程序的識別,提高了時效性,降低了成本。
文檔編號G06F21/50GK103198243SQ20131007747
公開日2013年7月10日 申請日期2013年3月12日 優(yōu)先權(quán)日2013年3月12日
發(fā)明者江軍, 楊鍇, 李翔, 郭遠(yuǎn)麗, 翟健成 申請人:百度在線網(wǎng)絡(luò)技術(shù)(北京)有限公司