專利名稱:一種程序惡意屬性判別方法和服務器的制作方法
技術領域:
本發(fā)明涉及互聯(lián)網通信領域,尤其涉及一種程序惡意屬性判別方法和服務器。
背景技術:
現有的查毒程序中,如電腦管家的木馬云查功能,只有20%左右的獨立上報文件(獨立上報文件是指客戶端上報的被查殺的互不相同的文件,)是可以確定黑白屬性的。剩下的80%的獨立上報文件中,有50%是灰的獨立上報文件,即查毒后臺中存儲有這些文件的相同樣本,但是沒有通過殺毒軟件集的掃描確定出屬性是黑還是白(即,文件是否有毒);剩下的30%的獨立上報文件是在查毒后臺根本沒有相同的樣本文件存在,也不能夠進行殺毒軟件集的掃描,進行屬性判斷。 從上述描述可以看出,當前的木馬云查技術,通過收集參與允差計劃的用戶上傳上來的可疑Pe文件,將這些可疑Pe文件通過殺毒軟件進行掃描,根據預先指定的掃描規(guī)則來得到待掃描Pe文件的黑白灰屬性。但是,這個方法的缺點在于若后臺不存在上報文件的對應樣本,當用戶來進行云查的時候,得不到黑白灰屬性;另外有一部分Pe文件,雖然后臺存在這些Pe文件,但是通過現有的掃描模型,不能夠得到它的黑白灰屬性。
發(fā)明內容
本發(fā)明實施例所要解決的技術問題在于,提供一種程序惡意屬性判別方法和服務器??梢詫笈_無相同樣本的上報文件判斷其惡意屬性。為了解決上述技術問題,本發(fā)明實施例提供了一種程序惡意屬性判別方法,包括獲取所述程序在客戶端的行為數據;根據所述程序的行為數據和本地存儲的樣本數據,獲得所述程序的惡意行為和惡意行為值,其中,所述樣本數據中包括惡意程序樣本集合和非惡意程序樣本集合,所述惡意行為值反映所述惡意行為的惡意程度;根據所述程序的惡意行為或/和惡意行為值判斷所述程序的惡意屬性。相應地,本發(fā)明實施例還提供了一種程序惡意屬性判別服務器,包括客戶數據獲取單元,用于獲取所述程序在客戶端的行為數據;行為數據獲取單元,用于根據所述程序的行為數據和本地存儲的樣本數據,獲得所述程序的惡意行為和惡意行為值,其中,所述樣本數據中包括惡意程序樣本集合和非惡意程序樣本集合,所述惡意行為值反映所述惡意行為的惡意程度;判定單元,用于根據所述程序的惡意行為或/和惡意行為值判斷所述程序的惡意屬性。在本發(fā)明實施例中,獲取程序的行為數據,在根據后臺的其他樣板數據判斷程序的這些行為中那些是惡意行為,進而可以判斷出程序的惡意屬性;因此,本發(fā)明實施例可以在后臺沒有相同樣本的情況下,判斷出程序的惡意屬性,提高系統(tǒng)的查毒效率。
為了更清楚地說明本發(fā)明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。圖I是本發(fā)明實施例中的程序惡意屬性判別方法的一個具體流程示意圖;圖2是本發(fā)明實施例中的判定程序惡意屬性的一個具體流程示意圖;圖3是本發(fā)明實施例中的程序惡意屬性判別服務器的一個具體組成示意圖;·
圖4是本發(fā)明實施例中的程序惡意屬性判別服務器的另一個具體組成示意圖。
具體實施例方式下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。在本發(fā)明實施例中,獲取程序在客戶端發(fā)生的行為數據,同時,在查毒后臺的已有程序樣本中,根據已有樣本定義出各種惡意行為和惡意行為值,在獲得客戶端發(fā)來的程序的行為數據后,就可以判斷程序中是否有惡意行為以及該惡意行為的惡意行為值,從而實現程序的惡意屬性的判斷。如圖I所示,為本發(fā)明實施例中的程序惡意屬性判別方法,該方法包括如下步驟。100、根據所述本地存儲的樣本數據獲得惡意行為集合,并獲得所述惡意行為集合中的惡意行為的惡意行為值。本步驟為可選,即系統(tǒng)可以預先根據樣本數據定義出哪些行為是惡意行為,及其惡意程度。本步驟為一樣本訓練過程,具體可以采用多種樣本訓練方式確定行為的惡意性,如加權法等等。在本發(fā)明實施例中還提供了一種具體的樣本訓練方式如下所描述。首先訓練過程中,確定每一個用戶行為的屬性是惡意還是正常。提取正反屬性行為的方法有很多基于頻率提取,卡方統(tǒng)計量,信息增益等。這些方法最早是用在文本過濾中,如在本發(fā)明的一些具體實施例中使用了這些特征提取算法的思想所有這些方法的共性都是提取出最能夠代表某一類別的用戶行為。基于共同的原理,本發(fā)明實施例采用了基于指定行為在惡意樣本集合和正常樣本集合中出現的次數差值這個簡單的方法,后續(xù)也可采用不同的特征提取方法來提取出不同屬性的行為。第二對于每一個惡意行為進行打分。打分方法采用的就是Actionevil = max (Actionpos-Actionneg)通過一個用戶行為在惡意pe文件和正常pe文件中出現的次數的差值,就初步得到該行為的分值。即,確定樣本數據中的惡意程序樣本集合(該集合中的程序已確定為惡意程序)和非惡意程序樣本集合(該集合中的程序已確定為非惡意程序)中的樣本數量相同,所述惡意行為根據上式選擇,其中,Actiorv/表示惡意程序樣本集合中發(fā)生行為i的頻數,Actionneg1表示在非惡意程序樣本集合中發(fā)生行為i的頻數,當Actionejvil1大于預定的閾值時,判定行為i為惡意行為。這樣,對樣本數據中的所有行為均進行判斷,獲得所有的惡意行為,形成一個惡意行為集合,并還可以對惡意行為進行賦值獲得惡意行為值,該行為值是根據惡意程度設定的值。上述方法的原理在于,發(fā)生某種客戶端行為的頻數,在兩個集合中發(fā)生的頻數的差值越大,那么這種客戶端行為發(fā)生在惡意程序樣本集合中的概率越高,證明該行為越危險,越具有聞危性。該惡意行為值還可以不斷更新,即在測試過程中,確定惡意樣本的過濾閾值。第一初始過濾閾值的確定,可采用本發(fā)明實施例中指定的方法對于所有的訓練 樣本進行打分,判斷所有的訓練樣本的惡意行為分值總和。依次指定一個初始的過濾閾值,測試的時候,當一個樣本的惡意行為的打分的和超過訓練樣本指定的閾值的時候,就認定為黑樣本第二 本發(fā)明實施例中的方法具有很好的擴展性,當確定有新的惡意行為的時候,就可以把該惡意行為加入到惡意行為庫中,并且指定一個初值。然后重新進行學習,確定該行為的分值。如,采用如下具體的學習過程。隨機抽取100個文件,這些文件都擁有待判定分值的用戶行為,某一個行為,新的分值等于是原先的分值乘以變化率。所謂的變化率,可以是正數也可以是負數。如果今天100個文件中掃出是黑的樣本比例大于昨天的,那么rate就是正數;反之,如果是掃黑率不斷的降低,那么就認為這個行為的惡意率逐漸降低,rate就是負數。通過長期的運營,我們會給每一個惡意行為制定出一定合適的分數,并最終趨向穩(wěn)定。第三為了達到最好的學習目的,可以采用不同的用戶行為分類方法和打分策略,來進行學習,看哪種方法的過濾效果好,就采用哪種方法。如,惡意行為值根據下式確定Scorenew1 = Scoreold1 X (1+rate1)rate1 = I sB I Bcktodayrate1-! sB I Bckyesterdayrate1score^/表示惡意行為i的新的惡意行為值,score。J表示惡意行為i的現有的惡意行為值,rate1表示惡意行為i變化率,IsBlackt()day—^te1表示當前記錄(如當天的記錄)的惡意行為i的惡意行為百分率,IsBlack—t/表示前一次記錄(如昨天的記錄)的惡意行為i的惡意行為百分率。一般來說,如果今天掃描出有惡意行為i的文件前10名中掃出是文件是惡意文件(黑文件)的樣本比例(可稱為掃黑率)大于昨天的,那么惡意行為i變化率rate就是正數;反之,如果是掃黑率不斷的降低,那么就認為這個行為的惡意率逐漸降低,rate就是負數。并且,在上述方法中,不僅可以提取出來惡意行為,也可以給白的行為進行打分,如果待判定文件的白屬性分值加起來超過某一個閾值,就認定是白的。并且可以在實際使用過程中,不斷更新惡意行為的判別策略和判別中的閾值。101、獲取所述程序在客戶端的行為數據。該行為數據中可以僅僅是系統(tǒng)已定義過的行為的標識,也可以包括對行為的各種描述。102、根據所述程序的行為數據和本地存儲的樣本數據,獲得所述程序的惡意行為和惡意行為值,其中,所述樣本數據中包括惡意程序樣本集合和非惡意程序樣本集合,所述惡意行為值反映所述惡意行為的惡意程度。103、根據所述程序的惡意行為或/和惡意行為值判斷所述程序的惡意屬性。當然,本步驟中在判斷程序的惡意屬性時僅根據程序是否包括惡意行為來進行判斷,只要有惡意行為或某種特定的惡意行為就判斷該程序為惡意程序,這樣,在前述步驟中也就只要獲得程序的惡意行為就可以了,只是這樣判斷比較粗放,也可以按下述方式判斷。當所述程序的任一惡意行為值大于高危閾值時,判定所述程序為惡意程序;如,允許遠程控制或者直接修改域名文件這類動作,可以直接把程序判定為惡意程序。當所述程序沒有任何一個惡意行為值大于高危閾值,但是所述程序的所有惡意行為的惡意行為值之和大于總惡意閾值時,判定所述程序為惡意程序。如圖2所示,為根據上述閾值判斷程序屬性的過程??梢岳斫獾氖?,上述的閾值都·可以根據實際情況進行調整。本實施例中的上述方法可以作為現有的云查殺的一種補充,S卩,對于后臺已有相同樣本的程序,根據該樣本的屬性直接判斷該程序的屬性,而對于后臺沒有相同樣本的程序,則可以根據上述方法判斷程序的屬性。則該方法可用于云引擎查毒系統(tǒng)中。相應的,本發(fā)明實施例還提供了一種程序惡意屬性判別服務器,如圖3所示,該服務器3包括客戶數據獲取單元30,用于獲取所述程序在客戶端的行為數據;行為數據獲取單元32,用于根據所述程序的行為數據和本地存儲的樣本數據,獲得所述程序的惡意行為和惡意行為值,其中,所述樣本數據中包括惡意程序樣本集合和非惡意程序樣本集合,所述惡意行為值反映所述惡意行為的惡意程度;判定單元34,用于根據所述程序的惡意行為或/和惡意行為值判斷所述程序的惡意屬性。其中,所述判定單元34,還用于當所述程序的任一惡意行為值大于高危閾值時,判定所述程序為惡意程序;當所述程序沒有任何一個惡意行為值大于高危閾值,但是所述程序的所有惡意行為的惡意行為值之和大于總惡意閾值時,判定所述程序為惡意程序。同時,該服務器3還可以進一步包括行為判斷單元36,用于根據樣本數據中的惡意程序樣本集合和非惡意程序樣本集合中的樣本判斷已有行為中哪些是惡意行為,或還包括惡意行為值。 若所述樣本數據中的惡意程序樣本集合和非惡意程序樣本集合中的樣本數量相同,則判斷單元36,還用于根據樣本數據中的惡意程序樣本集合和非惡意程序樣本集合中的樣本和下式獲得行為的惡意指數Actionevil1 = (Actionp0S1-Actionneg1)Action^;表示惡意程序樣本集合中發(fā)生行為i的頻數,Action^;表示在非惡意程序樣本集合中發(fā)生行為i的頻數,Actionevil1表示惡意指數;并當Actionejvil1大于預定的閾值時,判定行為i為惡意行為。該服務器3還可以進一步包括行為新惡意值獲取單元38,用于根據現有的惡意行為值獲取新的惡意行為值,所述惡意行為值根據下式確定Scorenew1 = Scoreold1 X (1+rate1)rate1 = I sB I Bcktodayrate1-! sB I Bckyesterdayrate1scores;表示惡意行為i的新的惡意行為值,score^表示惡意行為i的現有的惡意行為值,rate1表不惡意行為i變化率,IsBlacktoday rate1表不當如記錄的惡意行為i的惡意行為百分率,IsBlackyesterday—Mte1表不如一次記錄的惡意行為i的惡意行為百分率。如圖4所示,為上述單元都包括的情況。 在本發(fā)明實施例中,獲取程序的行為數據,在根據后臺的其他樣板數據判斷程序的這些行為中那些是惡意行為,進而可以判斷出程序的惡意屬性;因此,本發(fā)明實施例可以在后臺沒有相同樣本的情況下,判斷出程序的惡意屬性,提高系統(tǒng)的查毒效率。本領域普通技術人員可以理解實現上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory, ROM)或隨機存儲記憶體(Random AccessMemory, RAM)等。以上所揭露的僅為本發(fā)明一種較佳實施例而已,當然不能以此來限定本發(fā)明之權利范圍,因此依本發(fā)明權利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。
權利要求
1.一種程序惡意屬性判別方法,其特征在于,所述方法包括 獲取所述程序在客戶端的行為數據; 根據所述程序的行為數據和本地存儲的樣本數據,獲得所述程序的惡意行為和惡意行為值,其中,所述樣本數據中包括惡意程序樣本集合和非惡意程序樣本集合,所述惡意行為值反映所述惡意行為的惡意程度; 根據所述程序的惡意行為或/和惡意行為值判斷所述程序的惡意屬性。
2.如權利要求I所述的方法,其特征在于,所述方法還包括 根據所述本地存儲的樣本數據獲得惡意行為集合,并獲得所述惡意行為集合中的惡意行為的惡意行為值。
3.如權利要求2所述的方法,其特征在于,所述樣本數據中的惡意程序樣本集合和非惡意程序樣本集合中的樣本數量相同,所述惡意行為根據下式選擇 Actionevil1 = (Actionp0S1-Actionrieg1) Action^1表示惡意程序樣本集合中發(fā)生行為i的頻數,Actionne;表示在非惡意程序樣本集合中發(fā)生行為i的頻數,當Actionejvil1大于預定的閾值時,判定行為i為惡意行為。
4.如權利要求2所述的方法,其特征在于,所述惡意行為值根據下式確定 Scorenew1表不惡意行為i的新的惡意行為值,Scoreold1表不惡意行為i的現有的惡意行為值,rate1表不惡意行為i變化率,IsBlacktoday rate1表不當如記錄的惡意行為i的惡意行為百分率,IsBlackyesterday—r—1表不如一次記錄的惡意行為i的惡意行為百分率。
5.如權利要求I至4中任一項所述的方法,其特征在于,根據所述程序的惡意行為或/和惡意行為值判斷所述程序的惡意屬性包括 當所述程序的任一惡意行為值大于高危閾值時,判定所述程序為惡意程序; 當所述程序沒有任何一個惡意行為值大于高危閾值,但是所述程序的所有惡意行為的惡意行為值之和大于總惡意閾值時,判定所述程序為惡意程序。
6.如權利要求I至4中任一項所述的方法,其特征在于,所述方法用于云引擎查毒系統(tǒng)中。
7.一種程序惡意屬性判別服務器,其特征在于,所述服務器包括 客戶數據獲取單元,用于獲取所述程序在客戶端的行為數據; 行為數據獲取單元,用于根據所述程序的行為數據和本地存儲的樣本數據,獲得所述程序的惡意行為和惡意行為值,其中,所述樣本數據中包括惡意程序樣本集合和非惡意程序樣本集合,所述惡意行為值反映所述惡意行為的惡意程度; 判定單元,用于根據所述程序的惡意行為或/和惡意行為值判斷所述程序的惡意屬性。
8.如權利要求7所述的服務器,其特征在于,所述樣本數據中的惡意程序樣本集合和非惡意程序樣本集合中的樣本數量相同,所述服務器還包括行為判斷單元,用于根據樣本數據中的惡意程序樣本集合和非惡意程序樣本集合中的樣本和下式獲得行為的惡意指數 Actionevil1 = (Actionp0S1-Actionrieg1)Action^1表示惡意程序樣本集合中發(fā)生行為i的頻數,Actionne;表示在非惡意程序樣本集合中發(fā)生行為i的頻數,Actionevl1表示惡意指數; 所述行為判斷單元用于當Actior^^大于預定的閾值時,判定行為i為惡意行為。
9.如權利要求7所述的服務器,其特征在于,所述服務器還包括行為新惡意值獲取單元,用于根據現有的惡意行為值獲取新的惡意行為值,所述惡意行為值根據下式確定
10.如權利要求7至9中任一項所述的服務器,其特征在于,所述判定單元,還用于當所述程序的任一惡意行為值大于高危閾值時,判定所述程序為惡意程序;當所述程序沒有任何一個惡意行為值大于高危閾值,但是所述程序的所有惡意行為的惡意行為值之和大于總惡意閾值時,判定所述程序為惡意程序。
全文摘要
本發(fā)明實施例公開了一種程序惡意屬性判別方法和服務器,該方法包括獲取所述程序在客戶端的行為數據;根據所述程序的行為數據和本地存儲的樣本數據,獲得所述程序的惡意行為和惡意行為值,其中,所述樣本數據中包括惡意程序樣本集合和非惡意程序樣本集合,所述惡意行為值反映所述惡意行為的惡意程度;根據所述程序的惡意行為或/和惡意行為值判斷所述程序的惡意屬性。采用本發(fā)明,可以對后臺無相同樣本的上報文件判斷其惡意屬性。
文檔編號G06F21/56GK102955912SQ20111024312
公開日2013年3月6日 申請日期2011年8月23日 優(yōu)先權日2011年8月23日
發(fā)明者王洪彬 申請人:騰訊科技(深圳)有限公司