国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      應(yīng)用程序的安全性檢測(cè)方法和裝置制造方法

      文檔序號(hào):6622173閱讀:181來(lái)源:國(guó)知局
      應(yīng)用程序的安全性檢測(cè)方法和裝置制造方法
      【專利摘要】本發(fā)明實(shí)施例提供一種應(yīng)用程序的安全性檢測(cè)方法和裝置。該方法包括:從待檢測(cè)的應(yīng)用程序中獲取程序特征,程序特征至少包括:代碼結(jié)構(gòu)特征和/或文件結(jié)構(gòu)特征;將程序特征與標(biāo)準(zhǔn)程序特征進(jìn)行匹配,根據(jù)匹配結(jié)果確定應(yīng)用程序的安全性。本方案通過(guò)從待檢測(cè)應(yīng)用程序中獲取程序特征,能夠得到包括代碼結(jié)構(gòu)特征和/或文件結(jié)構(gòu)特征在內(nèi)的重要特征,并通過(guò)將程序特征與標(biāo)準(zhǔn)程序特征進(jìn)行匹配,能夠根據(jù)匹配成功、匹配失敗、或特征重合度等匹配結(jié)果確定待檢測(cè)的應(yīng)用程序的安全性,通過(guò)匹配程序特征,能夠檢測(cè)代碼是否被更改,或是否增加惡意代碼,以及文件是否被替換等,因此通過(guò)代碼結(jié)構(gòu)特征和/或文件結(jié)構(gòu)特征能夠從根本上檢測(cè)待檢測(cè)應(yīng)用程序是否為盜版。
      【專利說(shuō)明】應(yīng)用程序的安全性檢測(cè)方法和裝置

      【技術(shù)領(lǐng)域】
      [0001] 本發(fā)明實(shí)施例涉及軟件安全技術(shù),尤其涉及一種應(yīng)用程序的安全性檢測(cè)方法和裝 置。

      【背景技術(shù)】
      [0002] 以安卓(Andorid)應(yīng)用程序?yàn)槔珹ndorid平臺(tái)是目前世界上較流行的一種以 Linux為基礎(chǔ)的開放源碼操作系統(tǒng),主要應(yīng)用于手機(jī)、平板電腦等移動(dòng)終端。Android平臺(tái) 由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,Android應(yīng)用程序即指Android平臺(tái)下的 應(yīng)用軟件。Android應(yīng)用程序的開放性使應(yīng)用程序本身獲得了快速的發(fā)展,但由于Android 操作系統(tǒng)本身缺乏嚴(yán)格的審核機(jī)制和有效的應(yīng)用認(rèn)證機(jī)制,帶來(lái)了各種隱患,其中一大隱 患就是盜版應(yīng)用程序的泛濫。
      [0003] 盜版應(yīng)用程序會(huì)帶來(lái)各種各樣的問(wèn)題:大量的"去廣告"版使得開發(fā)者蒙受經(jīng)濟(jì)損 失,讓正版應(yīng)用程序開發(fā)者無(wú)法從開發(fā)應(yīng)用中獲利;更為嚴(yán)重的是,大量的惡意程序偽裝成 正版應(yīng)用誘騙用戶下載,并在其中植入了惡意代碼,可以盜取用戶的隱私信息或感染其手 機(jī),使用戶遭受巨大經(jīng)濟(jì)損失。因此,對(duì)應(yīng)用程序進(jìn)行安全檢測(cè)的技術(shù)應(yīng)運(yùn)而生。
      [0004] 現(xiàn)有的應(yīng)用程序的安全性檢測(cè)技術(shù),一般是根據(jù)應(yīng)用程序的包名或者應(yīng)用名稱的 完全匹配來(lái)進(jìn)行檢測(cè)。
      [0005] 上述應(yīng)用程序的安全性檢測(cè)技術(shù)存在以下缺陷:由于盜版應(yīng)用程序通過(guò)修改原始 應(yīng)用程序的包名,或者取一些近似的應(yīng)用名稱,導(dǎo)致盜版應(yīng)用程序的檢測(cè)率低。


      【發(fā)明內(nèi)容】

      [0006] 本發(fā)明實(shí)施例提供一種應(yīng)用程序的安全性檢測(cè)方法和裝置,以檢測(cè)應(yīng)用程序的安 全性,提高了盜版應(yīng)用程序的檢測(cè)率。
      [0007] 第一方面,本發(fā)明實(shí)施例提供了一種應(yīng)用程序的安全性檢測(cè)方法,包括:
      [0008] 從待檢測(cè)的應(yīng)用程序中獲取程序特征,所述程序特征至少包括:代碼結(jié)構(gòu)特征和 /或文件結(jié)構(gòu)特征;
      [0009] 將所述程序特征與標(biāo)準(zhǔn)程序特征進(jìn)行匹配,根據(jù)匹配結(jié)果確定所述待檢測(cè)的應(yīng)用 程序的安全性。
      [0010] 第二方面,本發(fā)明實(shí)施例還提供了一種應(yīng)用程序的安全性檢測(cè)裝置,包括:
      [0011] 程序特征獲取模塊,用于從待檢測(cè)的應(yīng)用程序中獲取程序特征,所述程序特征至 少包括:代碼結(jié)構(gòu)特征和/或文件結(jié)構(gòu)特征;
      [0012] 程序安全性確定模塊,用于將所述程序特征與標(biāo)準(zhǔn)程序特征進(jìn)行匹配,根據(jù)匹配 結(jié)果確定所述待檢測(cè)的應(yīng)用程序的安全性。
      [0013] 本發(fā)明實(shí)施例提供的應(yīng)用程序的安全性檢測(cè)方法和裝置,通過(guò)從待檢測(cè)的應(yīng)用程 序中獲取程序特征,能夠得到包括代碼結(jié)構(gòu)特征和/或文件結(jié)構(gòu)特征在內(nèi)的重要特征,并 通過(guò)將程序特征與標(biāo)準(zhǔn)程序特征進(jìn)行匹配,能夠根據(jù)匹配成功、匹配失敗、或特征重合度等 匹配結(jié)果確定待檢測(cè)的應(yīng)用程序的安全性。本方案通過(guò)匹配程序特征,能夠檢測(cè)代碼是否 被更改,或是否增加惡意代碼,以及文件是否被替換等,因此通過(guò)代碼結(jié)構(gòu)特征和/或文件 結(jié)構(gòu)特征能夠從根本上檢測(cè)待檢測(cè)應(yīng)用程序是否為盜版。

      【專利附圖】

      【附圖說(shuō)明】
      [0014] 為了更清楚地說(shuō)明本發(fā)明,下面將對(duì)本發(fā)明中所需要使用的附圖做一簡(jiǎn)單地介 紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái) 講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
      [0015] 圖la為本發(fā)明實(shí)施例一提供的一種應(yīng)用程序的安全性檢測(cè)方法的流程圖;
      [0016] 圖lb為本發(fā)明實(shí)施例一的方法適用的客戶端和服務(wù)器協(xié)同工作的示意圖;
      [0017] 圖2a為本發(fā)明實(shí)施例二提供的一種應(yīng)用程序的安全性檢測(cè)方法的流程圖;
      [0018] 圖2b為本發(fā)明實(shí)施例二提供的另一種應(yīng)用程序的安全性檢測(cè)方法的流程圖;
      [0019] 圖3為本發(fā)明實(shí)施例三提供的一種應(yīng)用程序的安全性檢測(cè)方法的流程圖;
      [0020] 圖4為本發(fā)明實(shí)施例四提供的一種應(yīng)用程序的安全性檢測(cè)裝置的結(jié)構(gòu)示意圖。

      【具體實(shí)施方式】
      [0021] 為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施例 中的技術(shù)方案作進(jìn)一步詳細(xì)描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全 部的實(shí)施例??梢岳斫獾氖?,此處所描述的具體實(shí)施例僅用于解釋本發(fā)明,而非對(duì)本發(fā)明的 限定,基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得 的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。另外還需要說(shuō)明的是,為了便于描述,附圖 中僅示出了與本發(fā)明相關(guān)的部分而非全部?jī)?nèi)容。
      [0022] 實(shí)施例一
      [0023] 請(qǐng)參閱圖la,為本發(fā)明實(shí)施例一提供的一種應(yīng)用程序的安全性檢測(cè)方法的流程 圖。本發(fā)明實(shí)施例的方法可以由硬件和/或軟件實(shí)現(xiàn)的應(yīng)用程序的安全檢測(cè)裝置來(lái)執(zhí)行, 該實(shí)現(xiàn)裝置典型的是配置于能夠提供應(yīng)用程序的安全檢測(cè)服務(wù)的服務(wù)器中。
      [0024] 如圖la所示,該方法包括:
      [0025] 110、從待檢測(cè)的應(yīng)用程序中獲取程序特征,所述程序特征至少包括:代碼結(jié)構(gòu)特 征和/或文件結(jié)構(gòu)特征;
      [0026] 本操作具體是獲取待檢測(cè)的應(yīng)用程序的程序特征。具體地,可以只獲取待檢測(cè)的 應(yīng)用程序的代碼結(jié)構(gòu)特征,也可以只獲取待檢測(cè)的應(yīng)用程序的文件結(jié)構(gòu)特征,還可以獲取 待檢測(cè)的應(yīng)用程序的代碼結(jié)構(gòu)特征以及文件結(jié)構(gòu)特征。
      [0027] 以Andorid應(yīng)用程序?yàn)槔M(jìn)行說(shuō)明。在Android系統(tǒng)中,一個(gè)可以安裝、運(yùn)行的 應(yīng)用,需要打包成Android系統(tǒng)的APK(Android application package file)文件格式,即 Android安裝包。Android系統(tǒng)中檢測(cè)一個(gè)應(yīng)用的安全性是通過(guò)APK文件的特征進(jìn)行檢測(cè) 的。
      [0028] 120、將所述程序特征與標(biāo)準(zhǔn)程序特征進(jìn)行匹配,根據(jù)匹配結(jié)果確定所述待檢測(cè)的 應(yīng)用程序的安全性。
      [0029] 本操作具體是將待檢測(cè)的應(yīng)用程序的程序特征與正版應(yīng)用的標(biāo)準(zhǔn)程序特征進(jìn)行 匹配,并基于匹配結(jié)果確定待檢測(cè)的應(yīng)用程序的安全性。
      [0030] 下面對(duì)代碼結(jié)構(gòu)特征和文件結(jié)構(gòu)特征進(jìn)行解釋。代碼結(jié)構(gòu)特征和文件結(jié)構(gòu)特征, 即不僅體現(xiàn)代碼和文件本身的特征,還體現(xiàn)代碼和文件集合的結(jié)構(gòu)屬性,則在進(jìn)行應(yīng)用程 序安全性檢測(cè)時(shí),能夠綜合考慮程序的整體屬性特點(diǎn)。
      [0031] 優(yōu)選地,所述代碼結(jié)構(gòu)特征包括程序的單元屬性集合。
      [0032] 進(jìn)一步地,所述單元為代碼類;所述單元屬性集合為所述應(yīng)用程序中全部單元的 屬性集合或全部單元屬性集合的設(shè)定子集合;所述單元屬性為唯一標(biāo)識(shí)所述單元的屬性。
      [0033] 具體地,所述單元為代碼類時(shí),所述代碼類屬性包括類名稱、類代碼和類代碼哈希 值的至少一項(xiàng)。其中,哈希算法將任意長(zhǎng)度的二進(jìn)制值映射為固定長(zhǎng)度的較小二進(jìn)制值,該 較小的二進(jìn)制值稱為哈希值。
      [0034] Android應(yīng)用通常是用Java語(yǔ)言開發(fā)的,用Android開發(fā)工具編譯之后形成二進(jìn) 制的字節(jié)碼,這些字節(jié)碼被打包成classes, dex文件,換言之,Android應(yīng)用的代碼主體為 classes, dex文件所包含的Java類。通過(guò)解析classes, dex文件,反編譯其字節(jié)碼,就可以 得到應(yīng)用程序所要執(zhí)行的代碼。
      [0035] 具體地,可以從待檢測(cè)的應(yīng)用程序中獲取包含有代碼主體的classes, dex文件; 統(tǒng)計(jì)classes, dex文件中所包含的所有Java類,并確定Java類對(duì)應(yīng)的屬性,所述Java類 對(duì)應(yīng)的屬性可以包括Java類的名稱、Java類所包含的代碼和/或Java類代碼的哈希值; 而后將至少一個(gè)Java類對(duì)應(yīng)的屬性作為待檢測(cè)的應(yīng)用程序的代碼結(jié)構(gòu)特征,通常是多個(gè) Java類的屬性構(gòu)成一個(gè)屬性集合。
      [0036] 當(dāng)全部代碼類的屬性構(gòu)成集合時(shí),可能檢測(cè)的數(shù)據(jù)量過(guò)大,則可以通過(guò)檢測(cè)設(shè)定 子集合的方式來(lái)實(shí)現(xiàn)。設(shè)定子集合,即按照設(shè)定的相同規(guī)則對(duì)待檢測(cè)的應(yīng)用程序和標(biāo)準(zhǔn)應(yīng) 用程序的單元屬性集合進(jìn)行提煉,得到子集合。例如,設(shè)定提取規(guī)則可以為在單元屬性排序 后,提取單數(shù)個(gè)單元屬性;還可以為,將所有單元屬性按照設(shè)定函數(shù)進(jìn)行處理,得到子集合 等。這樣可以將單元屬性集合的部分屬性進(jìn)行重合度比對(duì),減少了比對(duì)的數(shù)據(jù)量,當(dāng)代碼類 的量較大時(shí),也能一定程度上保證比對(duì)的準(zhǔn)確性。
      [0037] 優(yōu)選地,所述文件結(jié)構(gòu)特征包括程序的單元屬性集合。
      [0038] 進(jìn)一步地,所述單元為文件;所述單元屬性集合為所述應(yīng)用程序中全部單元的屬 性集合或全部單元屬性集合的設(shè)定子集合;所述單元屬性為唯一標(biāo)識(shí)所述單元的屬性。設(shè) 定子集合的處理方式參見前述解釋。
      [0039] 具體地,所述單元為文件時(shí),所述文件屬性包括文件名稱和/或文件名稱哈希值。
      [0040] Android應(yīng)用程序的APK文件實(shí)際上為一個(gè)符合固定格式規(guī)范的zip文件。通過(guò) Unzip等工具解壓可以看到其內(nèi)部的文件結(jié)構(gòu)。APK文件包括:classes, dex文件、assets 目錄、res目錄、libs目錄以及AndroidManifest. xml文件等文件或目錄。
      [0041] 所述單元為文件時(shí),既可以包括APK文件中的廣義的文件,也可以包括APK文件中 狹義的目錄。
      [0042] 其中,res目錄包括Android應(yīng)用程序所使用的圖片以及文件等資源文件; assets目錄包括Android應(yīng)用程序所使用的其他資源文件;libs目錄包括運(yùn)行Android 應(yīng)用程序所需的庫(kù)文件;AndroidManifest. xml是每個(gè)APK文件所必需的全局描述文件, 其中列出了 Android安裝包中應(yīng)用的每個(gè)模塊的入口信息,在Android系統(tǒng)中,只有在 AndroidManifest. xml文件中列出了的模塊,才能夠被系統(tǒng)調(diào)用。
      [0043] 具體地,可以從待檢測(cè)的應(yīng)用程序中獲取待檢測(cè)的應(yīng)用程序所包含的文件,并確 定文件對(duì)應(yīng)的屬性,所述屬性包括:文件的文件名稱和/或文件名稱的哈希值;而后將至少 一個(gè)文件對(duì)應(yīng)的屬性確定為待檢測(cè)的應(yīng)用程序的文件結(jié)構(gòu)特征,構(gòu)成屬性集合,通常由多 個(gè)文件的屬性構(gòu)成此屬性集合。
      [0044] 在所述代碼結(jié)構(gòu)特征或文件結(jié)構(gòu)特征包括程序的單元屬性集合時(shí),操作120具體 是將所述單元屬性集合與標(biāo)準(zhǔn)程序中對(duì)應(yīng)的單元屬性集合進(jìn)行匹配,將集合中單元的重合 度作為匹配結(jié)果,并根據(jù)匹配結(jié)果確定所述待檢測(cè)的應(yīng)用程序的安全性。
      [0045] 目前盜版應(yīng)用通常的制作手段是在正版應(yīng)用的基礎(chǔ)上做篡改(例如,修改 classes, dex文件中的某些代碼或增加惡意代碼,或者替換某些資源文件),因此代碼結(jié)構(gòu) 特征和文件結(jié)構(gòu)特征通常在正版應(yīng)用和盜版應(yīng)用中保持相似性,因此通過(guò)將待檢測(cè)應(yīng)用程 序的程序特征與正版應(yīng)用的標(biāo)準(zhǔn)程序特征進(jìn)行匹配,根據(jù)特征的相似度或單元的重合度, 能夠檢測(cè)待檢測(cè)的應(yīng)用程序是否安全。另外,可以根據(jù)程序特征與正版應(yīng)用的標(biāo)準(zhǔn)程序特 征為完全匹配還是不完全匹配,檢測(cè)待檢測(cè)的應(yīng)用程序的安全性。
      [0046] 示例性地,待檢測(cè)的應(yīng)用程序中的classes, dex文件包括m個(gè)Java類,分別為札, Μ2,Μ3, --?,Μυ,并且采用各Java類的代碼作為屬性,正版應(yīng)用程序中的classes, dex文件包 括η個(gè)Java類,分別為即N2, N3,…,Nn,并且采用各Java類的代碼作為標(biāo)準(zhǔn)屬性,并根據(jù) 預(yù)設(shè)策略,選取待檢測(cè)的應(yīng)用程序的classes, dex文件中的全部Java類的代碼集合與正版 應(yīng)用中對(duì)應(yīng)的Java類的代碼集合進(jìn)行匹配。
      [0047] 當(dāng)m等于n,m個(gè)Java類中的代碼與η個(gè)Java類中的代碼完全一致時(shí),檢測(cè)結(jié)果 為待檢測(cè)的應(yīng)用程序安全,之后,可以在客戶端提示用戶"安全"或"可以安裝"等。
      [0048] 當(dāng)m大于n,以m等于6, η等于4為例,Mp M2和M3的代碼與Np N2和N3的代碼相 同,但M4的代碼與N4的代碼不完全相同,且檢測(cè)到M 5和M6為新增代碼,則可以確定集合中 Java類的代碼的重合度,如果該重合度高于預(yù)設(shè)第一門限值(例如,80% ),則檢測(cè)結(jié)果為 待檢測(cè)的應(yīng)用程序?yàn)楸I版,之后,可以在客戶端提示用戶"當(dāng)前應(yīng)用為盜版"等;如果該重合 度低于預(yù)設(shè)第二門限值(例如,15% ),則檢測(cè)結(jié)果為待檢測(cè)的應(yīng)用程序的安全性未知,相 應(yīng)地,可以在客戶端提示用戶"當(dāng)前應(yīng)用的安全性未知"或"當(dāng)前應(yīng)用的安全性未知,請(qǐng)謹(jǐn)慎 安裝"等。
      [0049] 需要說(shuō)明的是,檢測(cè)的特征越多(例如既檢測(cè)代碼結(jié)構(gòu)特征,又檢測(cè)文件結(jié)構(gòu)特 征,又如,檢測(cè)應(yīng)用程序中全部單元的屬性集合,再如,檢測(cè)多個(gè)屬性),檢測(cè)到的安全性 結(jié)果越準(zhǔn)確,但檢測(cè)耗時(shí)較長(zhǎng);檢測(cè)的特征越少(例如,只檢測(cè)代碼結(jié)構(gòu)特征,或只檢測(cè)文 件結(jié)構(gòu)特征,又如,檢測(cè)應(yīng)用程序的全部單元屬性集合的設(shè)定子集合,再如,只檢測(cè)一個(gè)屬 性),檢測(cè)耗時(shí)較短,但檢測(cè)到的安全性結(jié)果的準(zhǔn)確度較低。
      [0050] 本實(shí)施例的技術(shù)方案,通過(guò)從待檢測(cè)的應(yīng)用程序中獲取程序特征,能夠得到包括 代碼結(jié)構(gòu)特征和/或文件結(jié)構(gòu)特征在內(nèi)的重要特征,并通過(guò)將程序特征與標(biāo)準(zhǔn)程序特征進(jìn) 行匹配,能夠根據(jù)匹配成功、匹配失敗、或特征相似度等匹配結(jié)果確定待檢測(cè)的應(yīng)用程序的 安全性。
      [0051] 需要說(shuō)明的是,除了獲取代碼結(jié)構(gòu)特征和/或文件結(jié)構(gòu)特征之外,還可以獲取應(yīng) 用程序的包名、應(yīng)用程序的名稱、應(yīng)用程序的圖標(biāo)或應(yīng)用程序的版本號(hào),作為程序特征。
      [0052] 其中,Android操作系統(tǒng)通過(guò)APK的包名(package name)對(duì)各個(gè)安裝的APK文件 進(jìn)行管理。例如某個(gè)Android安裝包的包名是com. qihoo360. mobilesafe。Android系統(tǒng) 要求每個(gè)應(yīng)用都聲明一個(gè)唯一的包名。Android平臺(tái)下的盜版應(yīng)用也需要聲明一個(gè)包名,因 此,包名就可以作為識(shí)別盜版軟件的一個(gè)重要特征。
      [0053] 現(xiàn)有的應(yīng)用程序的安全性檢測(cè)技術(shù),一般是根據(jù)應(yīng)用程序的包名或者應(yīng)用名稱的 完全匹配來(lái)進(jìn)行檢測(cè)。但由于應(yīng)用的包名可以隨意指定或者修改,因此現(xiàn)在越來(lái)越多的盜 版應(yīng)用程序都修改了原始應(yīng)用程序的包名以逃避檢查。另外,采用應(yīng)用程序的名稱的完全 匹配作為特征也存在不足,因?yàn)楸I版程序可以取一些與正版應(yīng)用近似的名字來(lái)誤導(dǎo)用戶。 例如根據(jù)正版應(yīng)用"憤怒的小鳥"取名為"憤怒的小鳥升級(jí)版",或者根據(jù)正版應(yīng)用"招商銀 行"取名"招行網(wǎng)銀"等等。
      [0054] 因此,通過(guò)匹配代碼結(jié)構(gòu)特征和/或文件結(jié)構(gòu)特征,能夠檢測(cè)代碼是否被更改,或 是否增加惡意代碼,以及文件是否被替換等,因此通過(guò)代碼結(jié)構(gòu)特征和/或文件結(jié)構(gòu)特征 能夠從根本上檢測(cè)待檢測(cè)應(yīng)用程序是否為盜版,也即能夠從根本上提高待檢測(cè)的應(yīng)用程序 的安全性的識(shí)別率,此外,通過(guò)應(yīng)用程序的包名、應(yīng)用程序的名稱、應(yīng)用程序的圖標(biāo)或應(yīng)用 程序的版本號(hào)作為輔助識(shí)別特征,能夠進(jìn)一步提高待檢測(cè)的應(yīng)用程序的安全性的識(shí)別率。
      [0055] 針對(duì)大量用現(xiàn)有檢測(cè)手段無(wú)法查出的盜版應(yīng)用,比如某個(gè)應(yīng)用的名稱為"阿貍", 包名和圖標(biāo)也無(wú)法匹配到任何已知的正版應(yīng)用,但是通過(guò)本方案可以檢測(cè)該應(yīng)用實(shí)際上就 是"百度貼吧"的一個(gè)盜版。
      [0056] 需要說(shuō)明的是,所述"和/或"是指從Android安裝包中可以單獨(dú)提取出其中任意 一項(xiàng)特征信息用作安全檢測(cè),也可以提取出多項(xiàng)特征信息的組合用作安全檢測(cè)。其中,同時(shí) 提取多項(xiàng)特征進(jìn)行檢測(cè)的效果要優(yōu)于單項(xiàng)特征,提取多項(xiàng)特征進(jìn)行檢測(cè),可以提高待檢測(cè) 的應(yīng)用程序的安全性的識(shí)別率。
      [0057] 上述輔助識(shí)別特征數(shù)量的選取,對(duì)安全性檢測(cè)結(jié)果準(zhǔn)確度和檢測(cè)耗時(shí)的影響,與 代碼結(jié)構(gòu)特征和/或文件結(jié)構(gòu)特征,以及全部屬性集合或全部單元屬性集合的設(shè)定子集 合,以及屬性數(shù)量對(duì)安全性檢測(cè)結(jié)果準(zhǔn)確度和檢測(cè)耗時(shí)的影響類似,此處不再贅述。
      [0058] 此外,還需要說(shuō)明的是,雖然以Andorid應(yīng)用程序?yàn)槔龑?duì)本實(shí)施例的技術(shù)方案進(jìn) 行說(shuō)明,但本實(shí)施例提供的應(yīng)用程序的安全性檢測(cè)方法并不以此為限,本實(shí)施例的技術(shù)方 案同樣適用于現(xiàn)有的其他操作平臺(tái)。
      [0059] 上述方法,可以由服務(wù)器來(lái)執(zhí)行,從客戶端接收待檢測(cè)應(yīng)用程序的程序特征,執(zhí)行 匹配和安全性檢測(cè)操作后,再將安全性檢測(cè)結(jié)果推送給客戶端?;蛘?,可以由客戶端執(zhí)行匹 配和安全性檢測(cè)操作?;蛘?,也可以由客戶端與服務(wù)器配合,由客戶端獲取待檢測(cè)應(yīng)用程序 的程序特征,由服務(wù)器獲取標(biāo)準(zhǔn)應(yīng)用的程序特征,并執(zhí)行匹配和安全性檢測(cè)操作。
      [0060] 下面結(jié)合圖lb說(shuō)明客戶端和服務(wù)器協(xié)同工作的過(guò)程。
      [0061] 由于Android客戶端的資源有限,為了能夠容納多達(dá)上百萬(wàn)款的正版應(yīng)用的程序 特征,服務(wù)器需要維護(hù)一個(gè)定期更新的正版應(yīng)用程序的特征庫(kù),進(jìn)行安全性檢測(cè)時(shí),客戶端 只負(fù)責(zé)從待檢測(cè)的應(yīng)用程序中提取程序特征并將所述程序特征發(fā)往服務(wù)器,服務(wù)器基于所 述特征庫(kù)執(zhí)行匹配和安全性檢測(cè)操作,服務(wù)器再將安全性檢測(cè)結(jié)果推送給客戶端。該協(xié)同 工作模式避免了客戶端因?yàn)橘Y源有限無(wú)法保存大量特征的問(wèn)題,同時(shí)也使得正版應(yīng)用的特 征庫(kù)的更新更加及時(shí)和靈活。
      [0062] 本發(fā)明實(shí)施例以Android操作系統(tǒng)下的應(yīng)用程序?yàn)槔M(jìn)行說(shuō)明,但本領(lǐng)域技術(shù)人 員可以理解,只要應(yīng)用程序具有諸如類、文件等多個(gè)單元個(gè)體,能夠以單元集合形式來(lái)比對(duì) 其結(jié)構(gòu)特征,均可采用本發(fā)明實(shí)施例的技術(shù)方案進(jìn)行安全性檢測(cè)。
      [0063] 實(shí)施例二
      [0064] 請(qǐng)參閱圖2a,為本發(fā)明實(shí)施例二提供的一種應(yīng)用程序的安全性檢測(cè)方法的流程 圖。
      [0065] 如圖2a所示,該方法包括:
      [0066] 210、從客戶端接收從待檢測(cè)的應(yīng)用程序中獲取程序特征,其中,所述程序特征為 所述客戶端基于設(shè)定摘要算法計(jì)算的摘要數(shù)據(jù);
      [0067] 在本操作中,所述程序特征至少包括:代碼結(jié)構(gòu)特征和/或文件結(jié)構(gòu)特征。
      [0068] 本操作具體是獲取待檢測(cè)的應(yīng)用程序的代碼結(jié)構(gòu)特征的摘要數(shù)據(jù)和/或文件結(jié) 構(gòu)特征的摘要數(shù)據(jù)。
      [0069] 其中,摘要算法是根據(jù)任意長(zhǎng)度的二進(jìn)制輸入產(chǎn)生固定長(zhǎng)度的較小二進(jìn)制輸出的 算法。例如,待檢測(cè)的應(yīng)用程序的程序特征為S,基于設(shè)定摘要算法計(jì)算的程序特征的摘要 數(shù)據(jù)D可以采用下式表示:
      [0070] D = Digest (S)
      [0071] 式中,Digest為設(shè)定摘要算法,如Simhash算法。
      [0072] 需要說(shuō)明的是,程序特征的摘要數(shù)據(jù)保留了原始數(shù)據(jù)的相似度特性,也即保留了 原始程序特征的相似度特性。程序特征與程序特征的摘要數(shù)據(jù)的區(qū)別在于:程序特征的數(shù) 據(jù)量遠(yuǎn)遠(yuǎn)大于程序特征的摘要數(shù)據(jù)的數(shù)據(jù)量,對(duì)于很大的程序特征,該特征的摘要數(shù)據(jù)只 需要很少字節(jié)就可以表示的該特征的特性。
      [0073] 代碼結(jié)構(gòu)特征的摘要數(shù)據(jù)可以包括應(yīng)用程序中全部代碼類名稱的摘要數(shù)據(jù)的集 合,或全部代碼類名稱的摘要數(shù)據(jù)的集合中的設(shè)定子集合,也可以包括應(yīng)用程序中全部代 碼類的代碼的摘要數(shù)據(jù)的集合,或全部代碼類的代碼的摘要數(shù)據(jù)的集合中的設(shè)定子集合, 還可以包括應(yīng)用程序中全部代碼類的代碼哈希值的摘要數(shù)據(jù)的集合,或全部代碼類的代碼 哈希值的摘要數(shù)據(jù)的集合中的設(shè)定子集合。
      [0074] 文件結(jié)構(gòu)特征的摘要數(shù)據(jù)可以包括應(yīng)用程序中全部文件名稱的摘要數(shù)據(jù)的集合, 或全部文件名稱的摘要數(shù)據(jù)的集合中的設(shè)定子集合,也可以包括應(yīng)用程序中全部文件的文 件名稱哈希值的摘要數(shù)據(jù)的集合,或全部文件的文件名稱哈希值的摘要數(shù)據(jù)的集合中的設(shè) 定子集合。
      [0075] 220、基于所述設(shè)定摘要算法將所述程序特征進(jìn)行還原,與標(biāo)準(zhǔn)程序特征進(jìn)行匹 配,并根據(jù)匹配結(jié)果確定所述待檢測(cè)的應(yīng)用程序的安全性。
      [0076] 本操作具體是利用設(shè)定摘要算法將程序特征的摘要數(shù)據(jù)還原為程序特征本身,而 后將還原得到的程序特征與正版應(yīng)用的標(biāo)準(zhǔn)程序特征進(jìn)行匹配,然后根據(jù)匹配結(jié)果確定待 檢測(cè)的應(yīng)用程序的安全性,檢測(cè)結(jié)果可以包括待檢測(cè)的應(yīng)用程序?yàn)檎鎽?yīng)用、為盜版應(yīng)用 或安全性未知。
      [0077] 需要說(shuō)明的是,進(jìn)行還原操作所采用的設(shè)定摘要算法與客戶端根據(jù)程序特征得到 程序特征的摘要數(shù)據(jù)所采用的設(shè)定摘要算法的相關(guān)聯(lián)。換言之,待檢測(cè)的應(yīng)用程序的程序 特征為S,與客戶端基于設(shè)定摘要算法計(jì)算的程序特征的摘要數(shù)據(jù)D之間的關(guān)系如下式所 示:
      [0078] D = Digest (S)
      [0079] 而操作220中根據(jù)程序特征的摘要數(shù)據(jù)D獲得原始程序特征S的還原操作所采用 的設(shè)定摘要算法為摘要算法Digest的逆算法。
      [0080] 本實(shí)施例的技術(shù)方案,通過(guò)從客戶端接收待檢測(cè)應(yīng)用程序的程序特征的摘要數(shù) 據(jù),并將所述摘要數(shù)據(jù)進(jìn)行還原,能夠得到待檢測(cè)的應(yīng)用程序的程序特征,通過(guò)將還原得到 的程序特征與正版應(yīng)用的標(biāo)準(zhǔn)程序特征進(jìn)行匹配,基于匹配結(jié)果能夠確定待檢測(cè)的應(yīng)用程 序的安全性。
      [0081] 本方案通過(guò)匹配程序特征,能夠檢測(cè)代碼是否被更改,或是否增加惡意代碼,以及 文件是否被替換等,因此通過(guò)代碼結(jié)構(gòu)特征和/或文件結(jié)構(gòu)特征能夠從根本上檢測(cè)待檢測(cè) 應(yīng)用程序是否為盜版。
      [0082] 請(qǐng)參閱圖2b,作為本實(shí)施例的一種優(yōu)選的實(shí)施方式,該優(yōu)選方法包括:
      [0083] 210、從客戶端接收從待檢測(cè)的應(yīng)用程序中獲取程序特征,其中,所述程序特征為 所述客戶端基于設(shè)定摘要算法計(jì)算的摘要數(shù)據(jù);
      [0084] 在本操作中,所述程序特征至少包括:代碼結(jié)構(gòu)特征和/或文件結(jié)構(gòu)特征。
      [0085] 230、將所述程序特征與標(biāo)準(zhǔn)程序特征進(jìn)行匹配,根據(jù)匹配結(jié)果確定所述待檢測(cè)的 應(yīng)用程序的安全性,其中,所述標(biāo)準(zhǔn)程序特征為基于設(shè)定摘要算法計(jì)算的摘要數(shù)據(jù)。
      [0086] 本操作具體是將待檢測(cè)應(yīng)用程序的程序特征的摘要數(shù)據(jù)與正版應(yīng)用的標(biāo)準(zhǔn)程序 特征的摘要數(shù)據(jù)進(jìn)行匹配,并基于匹配結(jié)果確定待檢測(cè)的應(yīng)用程序的安全性。
      [0087] 其中,根據(jù)待檢測(cè)應(yīng)用程序的程序特征得到對(duì)應(yīng)的摘要數(shù)據(jù)所采用的摘要算法, 與根據(jù)標(biāo)準(zhǔn)程序特征得到對(duì)應(yīng)的摘要數(shù)據(jù)所采用的摘要算法相同。
      [0088] 需要說(shuō)明的是,無(wú)論是代碼結(jié)構(gòu)特征還是文件結(jié)構(gòu)特征都將是一個(gè)非常大的集 合,集合中的元素少則幾十,多則幾千甚至幾萬(wàn)。一方面,如果將這些元素都保存下來(lái),會(huì) 產(chǎn)生很多問(wèn)題:如果針對(duì)每一個(gè)標(biāo)準(zhǔn)應(yīng)用都要維護(hù)這樣的集合,服務(wù)器需要保存大量的數(shù) 據(jù);而且需要獲取待檢測(cè)應(yīng)用程序的相應(yīng)數(shù)據(jù)在服務(wù)器中進(jìn)行匹配,會(huì)消耗非常大的網(wǎng)絡(luò) 流量;此外由于需要匹配的特征所包含的數(shù)據(jù)量很大,導(dǎo)致匹配過(guò)程耗時(shí)長(zhǎng),從而導(dǎo)致安全 性的檢測(cè)效率降低。
      [0089] 本優(yōu)選的實(shí)施方式利用摘要算法分別將原本很復(fù)雜的待檢測(cè)應(yīng)用程序和標(biāo)準(zhǔn)應(yīng) 用的代碼結(jié)構(gòu)特征和/或文件結(jié)構(gòu)特征所包含的數(shù)據(jù)轉(zhuǎn)化為用很少字節(jié)就可以表示的摘 要數(shù)據(jù),該摘要數(shù)據(jù)保留了原始特征的相似度特性,因此將待檢測(cè)應(yīng)用程序的程序特征的 摘要數(shù)據(jù)D與標(biāo)準(zhǔn)應(yīng)用的程序特征的摘要數(shù)據(jù)D'進(jìn)行匹配,等價(jià)于將待檢測(cè)應(yīng)用程序的程 序特征S與標(biāo)準(zhǔn)應(yīng)用的程序特征S'進(jìn)行匹配。因此,只需要將待檢測(cè)應(yīng)用程序的程序特征 的摘要數(shù)據(jù)D而不是程序特征S發(fā)往服務(wù)器進(jìn)行匹配,服務(wù)器也只需為每個(gè)標(biāo)準(zhǔn)應(yīng)用保存 特征程序特征的摘要數(shù)據(jù)D'而不是標(biāo)準(zhǔn)應(yīng)用程序特征S',基于此能夠大大增加匹配的效 率,并減少所需要的網(wǎng)絡(luò)和存儲(chǔ)資源。
      [0090] 上述方法,可以由服務(wù)器來(lái)執(zhí)行,從客戶端接收待檢測(cè)應(yīng)用程序的程序特征的摘 要數(shù)據(jù),執(zhí)行匹配和安全性檢測(cè)操作后,再將安全性檢測(cè)結(jié)果推送給客戶端。或者,可以由 客戶端執(zhí)行匹配和安全性檢測(cè)操作?;蛘?,也可以由客戶端與服務(wù)器配合,由客戶端獲取待 檢測(cè)應(yīng)用程序的程序特征的摘要數(shù)據(jù),由服務(wù)器獲取標(biāo)準(zhǔn)應(yīng)用的程序特征的摘要數(shù)據(jù),并 完成執(zhí)行匹配和安全性檢測(cè)操作。
      [0091] 實(shí)施例三
      [0092] 請(qǐng)參閱圖3,為本發(fā)明實(shí)施例三提供的一種應(yīng)用程序的安全性檢測(cè)方法的流程圖。 該方法包括:
      [0093] 310、將所述待檢測(cè)的應(yīng)用程序的安全證書在預(yù)設(shè)正版安裝證書列表中進(jìn)行匹配, 如果匹配到所述安全證書,則執(zhí)行操作311,如果沒有匹配到所述安全證書,則執(zhí)行操作 320 ;
      [0094] 本操作具體是判斷預(yù)設(shè)正版安裝證書列表中是否存在待檢測(cè)的應(yīng)用程序的安全 證書。
      [0095] 由于安裝證書的公鑰特性,使得盜版應(yīng)用程序的安裝證書和正版應(yīng)用程序的安裝 證書不同,因此通過(guò)檢測(cè)安全證書,能夠檢測(cè)待檢測(cè)應(yīng)用程序是否為正版應(yīng)用。如果安裝證 書不在正版證書列表中,則可能表示這不是一個(gè)已知的正版程序。既可能是一個(gè)與所有正 版應(yīng)用程序完全不同的、新開發(fā)的程序,也可能是某個(gè)已知應(yīng)用程序的盜版。所以需通過(guò)特 征檢測(cè)進(jìn)一步識(shí)別其是否為盜版程序。
      [0096] 由于一個(gè)應(yīng)用程序可能會(huì)有一個(gè)或多個(gè)合法的證書,因此預(yù)設(shè)正版安裝證書列表 中包括現(xiàn)有正版應(yīng)用的全部證書。
      [0097] 311、將待檢測(cè)的應(yīng)用程序?yàn)檎鎽?yīng)用的結(jié)果作為檢測(cè)結(jié)果,流程結(jié)束;
      [0098] 本操作具體是根據(jù)操作310的匹配結(jié)果,并且當(dāng)匹配到所述安裝證書時(shí),確定檢 測(cè)結(jié)果。
      [0099] 320、從待檢測(cè)的應(yīng)用程序中獲取程序特征,所述程序特征至少包括:代碼結(jié)構(gòu)特 征和/或文件結(jié)構(gòu)特征,而后執(zhí)行操作330 ;
      [0100] 本操作具體是根據(jù)操作310的匹配結(jié)果,并且當(dāng)沒有匹配到所述安裝證書時(shí),觸 發(fā)執(zhí)行從待檢測(cè)的應(yīng)用程序中獲取程序特征的操作。
      [0101] 330、將所述程序特征與標(biāo)準(zhǔn)程序特征進(jìn)行匹配,根據(jù)匹配結(jié)果確定所述待檢測(cè)的 應(yīng)用程序的安全性,流程結(jié)束。
      [0102] 本操作具體是在預(yù)設(shè)正版安裝證書列表中沒有匹配到待檢測(cè)的應(yīng)用程序的安裝 證書時(shí),通過(guò)匹配程序特征,從而確定檢測(cè)結(jié)果。
      [0103] 示例性地,當(dāng)待檢測(cè)的應(yīng)用程序的安裝證書不符合正版應(yīng)用的合法證書,但待檢 測(cè)的應(yīng)用程序的程序特征與一個(gè)已知的正版應(yīng)用的程序特征的相似度高于第一設(shè)定門限 值時(shí),則可以確定該待檢測(cè)的應(yīng)用程序?yàn)楸I版應(yīng)用。
      [0104] 示例性地,當(dāng)待檢測(cè)的應(yīng)用程序的安裝證書不符合正版應(yīng)用的合法證書,但待檢 測(cè)的應(yīng)用程序的程序特征與已知的正版應(yīng)用的程序特征的相似度低于第二設(shè)定門限值時(shí), 則可以確定該待檢測(cè)的應(yīng)用程序的安全性為未知。
      [0105] 需要說(shuō)明的是,服務(wù)器中維護(hù)一個(gè)定期更新的正版應(yīng)用程序特征庫(kù),可能由于更 新不及時(shí),導(dǎo)致待檢測(cè)的應(yīng)用程序的程序特征與已知的正版應(yīng)用的程序特征的相似度低于 第二設(shè)定門限值。
      [0106] 本實(shí)施例的技術(shù)方案,通過(guò)將待檢測(cè)的應(yīng)用程序的安全證書在預(yù)設(shè)正版安裝證書 列表中進(jìn)行匹配,且如果匹配到所述安全證書,則確定待檢測(cè)的應(yīng)用程序?yàn)檎鎽?yīng)用;如果 沒有匹配到所述安裝證書,則將待檢測(cè)應(yīng)用程序的程序特征與標(biāo)準(zhǔn)程序特征進(jìn)行匹配,并 根據(jù)匹配結(jié)果確定待檢測(cè)的應(yīng)用程序的安全性。
      [0107] 本方案通過(guò)安裝證書的匹配結(jié)果能夠檢測(cè)應(yīng)用為正版應(yīng)用,避免了直接通過(guò)程序 特征的完全匹配而檢測(cè)應(yīng)用為正版應(yīng)用,提升了檢測(cè)效率;在安裝證書匹配失敗之后,通過(guò) 匹配程序特征,能夠檢測(cè)代碼是否被更改,或是否增加惡意代碼,以及文件是否被替換等, 因此通過(guò)代碼結(jié)構(gòu)特征和/或文件結(jié)構(gòu)特征能夠從根本上檢測(cè)待檢測(cè)應(yīng)用程序是否為盜 版。
      [0108] 實(shí)施例四
      [0109] 請(qǐng)參閱圖4,為本發(fā)明實(shí)施例四提供的一種應(yīng)用程序的安全性檢測(cè)裝置的結(jié)構(gòu)示 意圖。該裝置包括:程序特征獲取模塊410和程序安全性確定模塊420。
      [0110] 其中,程序特征獲取模塊410用于從待檢測(cè)的應(yīng)用程序中獲取程序特征,所述程 序特征至少包括:代碼結(jié)構(gòu)特征和/或文件結(jié)構(gòu)特征;程序安全性確定模塊420用于將所 述程序特征與標(biāo)準(zhǔn)程序特征進(jìn)行匹配,根據(jù)匹配結(jié)果確定所述待檢測(cè)的應(yīng)用程序的安全 性。
      [0111] 本實(shí)施例的技術(shù)方案,通過(guò)從待檢測(cè)的應(yīng)用程序中獲取程序特征,能夠得到包括 代碼結(jié)構(gòu)特征和/或文件結(jié)構(gòu)特征在內(nèi)的重要特征,并通過(guò)將程序特征與標(biāo)準(zhǔn)程序特征進(jìn) 行匹配,能夠根據(jù)匹配成功、匹配失敗、或特征相似度等匹配結(jié)果確定待檢測(cè)的應(yīng)用程序的 安全性。
      [0112] 本方案通過(guò)匹配程序特征,能夠檢測(cè)代碼是否被更改,或是否增加惡意代碼,以及 文件是否被替換等,因此通過(guò)代碼結(jié)構(gòu)特征和/或文件結(jié)構(gòu)特征能夠從根本上檢測(cè)待檢測(cè) 應(yīng)用程序是否為盜版。
      [0113] 在上述方案中,所述代碼結(jié)構(gòu)特征或文件結(jié)構(gòu)特征包括程序的單元屬性集合,則 程序安全性確定模塊420具體用于:將所述單元屬性集合與標(biāo)準(zhǔn)程序中對(duì)應(yīng)的單元屬性集 合進(jìn)行匹配,將集合中單元的重合度作為匹配結(jié)果;或,將所述程序特征與標(biāo)準(zhǔn)程序特征進(jìn) 行匹配,其中,所述標(biāo)準(zhǔn)程序特征為基于設(shè)定摘要算法計(jì)算的摘要數(shù)據(jù)。
      [0114] 在上述方案中,所述單元為代碼類或文件;
      [0115] 所述單元屬性集合為所述應(yīng)用程序中全部單元的屬性集合或全部單元屬性集合 的設(shè)定子集合;
      [0116] 所述單元屬性為唯一標(biāo)識(shí)所述單元的屬性。
      [0117] 進(jìn)一步地,所述單元為代碼類時(shí),所述代碼類屬性包括類名稱、類代碼和類代碼哈 希值的至少一項(xiàng);所述單元為文件時(shí),所述文件屬性包括文件名稱和/或文件名稱哈希值。
      [0118] 作為本實(shí)施例的一種實(shí)施方式,程序特征獲取模塊410具體用于:從客戶端接收 從待檢測(cè)的應(yīng)用程序中獲取程序特征,其中,所述程序特征為所述客戶端基于設(shè)定摘要算 法計(jì)算的摘要數(shù)據(jù);則程序安全性確定模塊420具體用于:基于所述設(shè)定摘要算法將所述 程序特征進(jìn)行還原,并與標(biāo)準(zhǔn)程序特征進(jìn)行匹配。
      [0119] 作為本實(shí)施例的另一種實(shí)施方式,該裝置還可以包括:安全證書匹配模塊和觸發(fā) 模塊。
      [0120] 其中,安全證書匹配模塊用于在從待檢測(cè)的應(yīng)用程序中獲取程序特征之前,將所 述待檢測(cè)的應(yīng)用程序的安全證書在預(yù)設(shè)正版安裝證書列表中進(jìn)行匹配;觸發(fā)模塊用于如果 沒有匹配到所述安全證書,則觸發(fā)執(zhí)行從待檢測(cè)的應(yīng)用程序中獲取程序特征的操作。
      [0121] 本發(fā)明實(shí)施例提供的應(yīng)用程序的安全性檢測(cè)裝置可執(zhí)行本發(fā)明任意實(shí)施例所提 供的應(yīng)用程序的安全性檢測(cè)方法,具備執(zhí)行方法相應(yīng)的功能模塊和有益效果。
      [0122] 最后應(yīng)說(shuō)明的是:以上各實(shí)施例僅用于說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其進(jìn)行限 制;實(shí)施例中優(yōu)選的實(shí)施方式,并非對(duì)其進(jìn)行限制,對(duì)于本領(lǐng)域技術(shù)人員而言,本發(fā)明可以 有各種改動(dòng)和變化。凡在本發(fā)明的精神和原理之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均 應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
      【權(quán)利要求】
      1. 一種應(yīng)用程序的安全性檢測(cè)方法,其特征在于,包括: 從待檢測(cè)的應(yīng)用程序中獲取程序特征,所述程序特征至少包括:代碼結(jié)構(gòu)特征和/或 文件結(jié)構(gòu)特征; 將所述程序特征與標(biāo)準(zhǔn)程序特征進(jìn)行匹配,根據(jù)匹配結(jié)果確定所述待檢測(cè)的應(yīng)用程序 的安全性。
      2. 根據(jù)權(quán)利要求1所述的方法,其特征在于:所述代碼結(jié)構(gòu)特征或文件結(jié)構(gòu)特征包括 程序的單元屬性集合,則將所述程序特征與標(biāo)準(zhǔn)程序特征進(jìn)行匹配,包括: 將所述單元屬性集合與標(biāo)準(zhǔn)程序中對(duì)應(yīng)的單元屬性集合進(jìn)行匹配,將集合中單元的重 合度作為匹配結(jié)果。
      3. 根據(jù)權(quán)利要求2所述的方法,其特征在于: 所述單元為代碼類或文件; 所述單元屬性集合為所述應(yīng)用程序中全部單元的屬性集合或全部單元屬性集合的設(shè) 定子集合; 所述單元屬性為唯一標(biāo)識(shí)所述單元的屬性。
      4. 根據(jù)權(quán)利要求3所述的方法,其特征在于: 所述單元為代碼類時(shí),所述代碼類屬性包括類名稱、類代碼和類代碼哈希值的至少一 項(xiàng); 所述單元為文件時(shí),所述文件屬性包括文件名稱和/或文件名稱哈希值。
      5. 根據(jù)權(quán)利要求1所述的方法,其特征在于,從待檢測(cè)的應(yīng)用程序中獲取程序特征,包 括: 從客戶端接收從待檢測(cè)的應(yīng)用程序中獲取程序特征,其中,所述程序特征為所述客戶 端基于設(shè)定摘要算法計(jì)算的摘要數(shù)據(jù); 則將所述程序特征與標(biāo)準(zhǔn)程序特征進(jìn)行匹配包括: 基于所述設(shè)定摘要算法將所述程序特征進(jìn)行還原,并與標(biāo)準(zhǔn)程序特征進(jìn)行匹配;或 將所述程序特征與標(biāo)準(zhǔn)程序特征進(jìn)行匹配,其中,所述標(biāo)準(zhǔn)程序特征為基于設(shè)定摘要 算法計(jì)算的摘要數(shù)據(jù)。
      6. 根據(jù)權(quán)利要求1-5任一所述的方法,其特征在于,在從待檢測(cè)的應(yīng)用程序中獲取程 序特征之前,還包括: 將所述待檢測(cè)的應(yīng)用程序的安全證書在預(yù)設(shè)正版安裝證書列表中進(jìn)行匹配; 如果沒有匹配到所述安全證書,則觸發(fā)執(zhí)行從待檢測(cè)的應(yīng)用程序中獲取程序特征的操 作。
      7. -種應(yīng)用程序的安全性檢測(cè)裝置,其特征在于,包括: 程序特征獲取模塊,用于從待檢測(cè)的應(yīng)用程序中獲取程序特征,所述程序特征至少包 括:代碼結(jié)構(gòu)特征和/或文件結(jié)構(gòu)特征; 程序安全性確定模塊,用于將所述程序特征與標(biāo)準(zhǔn)程序特征進(jìn)行匹配,根據(jù)匹配結(jié)果 確定所述待檢測(cè)的應(yīng)用程序的安全性。
      8. 根據(jù)權(quán)利要求7所述的裝置,其特征在于:所述代碼結(jié)構(gòu)特征或文件結(jié)構(gòu)特征包括 程序的單元屬性集合,則程序安全性確定模塊具體用于: 將所述單元屬性集合與標(biāo)準(zhǔn)程序中對(duì)應(yīng)的單元屬性集合進(jìn)行匹配,將集合中單元的重 合度作為匹配結(jié)果。
      9. 根據(jù)權(quán)利要求8所述的裝置,其特征在于: 所述單元為代碼類或文件; 所述單元屬性集合為所述應(yīng)用程序中全部單元的屬性集合或全部單元屬性集合的設(shè) 定子集合; 所述單元屬性為唯一標(biāo)識(shí)所述單元的屬性。
      10. 根據(jù)權(quán)利要求9所述的裝置,其特征在于: 所述單元為代碼類時(shí),所述代碼類屬性包括類名稱、類代碼和類代碼哈希值的至少一 項(xiàng); 所述單元為文件時(shí),所述文件屬性包括文件名稱和/或文件名稱哈希值。
      11. 根據(jù)權(quán)利要求7所述的裝置,其特征在于,程序特征獲取模塊具體用于:從客戶端 接收從待檢測(cè)的應(yīng)用程序中獲取程序特征,其中,所述程序特征為所述客戶端基于設(shè)定摘 要算法計(jì)算的摘要數(shù)據(jù); 則程序安全性確定模塊具體用于:基于所述設(shè)定摘要算法將所述程序特征進(jìn)行還原, 并與標(biāo)準(zhǔn)程序特征進(jìn)行匹配;或,將所述程序特征與標(biāo)準(zhǔn)程序特征進(jìn)行匹配,其中,所述標(biāo) 準(zhǔn)程序特征為基于設(shè)定摘要算法計(jì)算的摘要數(shù)據(jù)。
      12. 根據(jù)權(quán)利要求7-11任一所述的裝置,其特征在于,該裝置還包括: 安全證書匹配模塊,用于在從待檢測(cè)的應(yīng)用程序中獲取程序特征之前,將所述待檢測(cè) 的應(yīng)用程序的安全證書在預(yù)設(shè)正版安裝證書列表中進(jìn)行匹配; 觸發(fā)模塊,用于如果沒有匹配到所述安全證書,則觸發(fā)執(zhí)行從待檢測(cè)的應(yīng)用程序中獲 取程序特征的操作。
      【文檔編號(hào)】G06F21/12GK104123493SQ201410375006
      【公開日】2014年10月29日 申請(qǐng)日期:2014年7月31日 優(yōu)先權(quán)日:2014年7月31日
      【發(fā)明者】包沉浮, 夏良釗 申請(qǐng)人:百度在線網(wǎng)絡(luò)技術(shù)(北京)有限公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1