本發明涉及通信領域,更具體的說,涉及一種檢測方法和裝置。
背景技術:
隨著計算機技術的快速發展和互聯網的應用范圍的不斷擴大,多媒體信息的傳播成為了文化傳播的重要形式,大量視頻、音頻、動畫等多媒體文件的編碼和播放成為了技術人員研究的熱點。由于固態存儲器與動畫編輯器flash動畫能夠實現較好的動畫效果,且其文件占用空間較小,經常使用互聯網傳播flash文件。
當flash文件通過互聯網傳播時,黑客常常將惡意代碼嵌入到flash文件中,然后通過互聯網傳播該惡意代碼,此種方法攻擊性強,已經對我國的金融行業、能源行業、政府、電力行業等造成了一定的惡劣影響,所以檢測flash文件中是否攜帶有惡意代碼就變得至關重要。
現有技術中,采用特征碼和人工規則的識別方法來檢測flash文件中是否攜帶有惡意代碼,特征碼和人工規則的識別方法是指人工規定一些特定的惡意的字節,然后在flash文件中的特定位置,查看是否包含有人工規定的那些惡意的字節,如果包含有人工規定的那些惡意的字節,就證明包含有惡意代碼,即該flash文件是惡意文件。
在計算機中存儲代碼時,存儲的是其二進制的形式,即惡意的字節是惡意代碼的二進制的形式。黑客常常在保證該惡意的字節對應的具有字符串形式的代碼不變的前提下,通過修改惡意的字節的形式,如采用加一減一法修改惡意的字節的形式,來使形式改變后的惡意的字節不被檢測到。此時,由于惡意的字節的形式已經被改變,采用特征碼和人工規則的識別方法,來檢測人工規定的那些惡意的字節時,就不會檢測到形式改變后的惡意的字節,進而就不能判斷flash文件是否是惡意文件。
因此,亟需一種能夠在惡意的字節的形式改變后,仍能夠判斷flash文件是否是惡意文件的方法。
技術實現要素:
有鑒于此,本發明提供一種檢測方法和裝置,以解決采用特征碼和人工規則的識別方法來檢測flash文件中是否攜帶有惡意代碼時,在惡意的字節的形式改變時,不能判斷flash文件是否是惡意文件的問題。
為解決上述技術問題,本發明采用了如下技術方案:
一種檢測方法,包括:
判斷獲取的目標文件是否是固態存儲器與動畫編輯器flash文件;
當判斷出所述獲取的目標文件是flash文件,將所述目標文件中包含的具有二進制形式的代碼的格式進行轉換,轉換成具有字符串形式的代碼;
將位于所述具有字符串形式的代碼中的預設位置的代碼提取出來,得到待解析代碼;
判斷所述待解析代碼中是否包含有預設的惡意特征中的至少一個惡意特征;
當判斷出所述待解析代碼中包含有預設的惡意特征中的至少一個惡意特征,根據所述待解析代碼中包含的每一個惡意特征中的待解析字符串,得到與所述每一個惡意特征對應的、能夠表示該惡意特征的惡意程度的數值;
根據與所述每一個惡意特征對應的、能夠表示該惡意特征的惡意程度的數值,采用機器學習算法,判斷所述目標文件是否是惡意文件。
優選地,所述判斷獲取的目標文件是否是固態存儲器與動畫編輯器flash文件,包括:
采用文件格式識別方法識別所述目標文件的文件類型,判斷所述文件類型是否是flash文件的文件類型。
優選地,所述將位于所述具有字符串形式的代碼中的預設位置的代碼提取出來,得到待解析代碼,包括:
查找位于所述具有字符串形式的代碼中的預設位置中的每個位置的代碼;
將所述每個位置的代碼提取出來,得到待解析代碼。
優選地,
所述預設的惡意特征包括名稱特征、惡意行為特征或數據拼接特征;
相應的,所述根據所述待解析代碼中包含的每一個惡意特征中的待解析字符串,得到與所述每一個惡意特征對應的、能夠表示該惡意特征的惡意程度的數值,包括:
當所述待解析代碼中包含所述名稱特征時,根據與所述待解析代碼中包含的所述名稱特征相匹配的字符串為正常字符串的概率,得到與所述名稱特征對應的、能夠表示所述名稱特征的惡意程度的數值;
當所述待解析代碼中包含所述惡意行為特征時,根據所述待解析代碼中包含的所述惡意行為特征中的每個特征出現的次數,得到與所述惡意行為特征對應的、能夠表示所述惡意行為特征的惡意程度的數值;
當所述待解析代碼中包含所述數據拼接特征時,根據所述待解析代碼中包含的所述數據拼接特征出現的次數,得到與所述數據拼接特征對應的、能夠表示所述數據拼接特征的惡意程度的數值。
優選地,所述根據與所述每一個惡意特征對應的、能夠表示該惡意特征的惡意程度的數值,采用機器學習算法,判斷所述目標文件是否是惡意文件,包括:
根據與所述每一個惡意特征對應的、能夠表示該惡意特征的惡意程度的數值,采用機器學習算法,計算得到所述目標文件為惡意文件的概率;
根據所述概率,判斷所述目標文件是否是惡意文件。
一種檢測裝置,包括:
第一判斷單元,用于判斷獲取的目標文件是否是固態存儲器與動畫編輯器flash文件;
轉換單元,用于當所述第一判斷單元判斷出所述獲取的目標文件是flash文件,將所述目標文件中包含的具有二進制形式的代碼的格式進行轉換,轉換成具有字符串形式的代碼;
提取單元,用于將位于所述具有字符串形式的代碼中的預設位置的代碼提取出來,得到待解析代碼;
第二判斷單元,用于判斷所述待解析代碼中是否包含有預設的惡意特征中的至少一個惡意特征;
特征提取單元,用于當所述第二判斷單元判斷出所述待解析代碼中包含有預設的惡意特征中的至少一個惡意特征,根據所述待解析代碼中包含的每一個惡意特征中的待解析字符串,得到與所述每一個惡意特征對應的、能夠表示該惡意特征的惡意程度的數值;
第三判斷單元,用于根據與所述每一個惡意特征對應的、能夠表示該惡意特征的惡意程度的數值,采用機器學習算法,判斷所述目標文件是否是惡意文件。
優選地,所述第一判斷單元,包括:
第一判斷子單元,用于采用文件格式識別方法識別所述目標文件的文件類型,判斷所述文件類型是否是flash文件的文件類型。
優選地,所述提取單元包括:
查找單元,用于查找位于所述具有字符串形式的代碼中的預設位置中的每個位置的代碼;
提取子單元,用于將所述每個位置的代碼提取出來,得到待解析代碼。
優選地,
當所述預設的惡意特征包括名稱特征、惡意行為特征或數據拼接特征時,
所述特征提取單元包括:
第一特征提取單元,用于當所述第二判斷單元判斷出所述待解析代碼中包含所述名稱特征時,根據與所述待解析代碼中包含的所述名稱特征相匹配的字符串為正常字符串的概率,得到與所述名稱特征對應的、能夠表示所述名稱特征的惡意程度的數值;
第二特征提取單元,用于當所述第二判斷單元判斷出所述待解析代碼中包含所述惡意行為特征時,根據所述待解析代碼中包含的所述惡意行為特征中的每個特征出現的次數,得到與所述惡意行為特征對應的、能夠表示所述惡意行為特征的惡意程度的數值;
第三特征提取單元,用于當所述第二判斷單元判斷出所述待解析代碼中包含所述數據拼接特征時,根據所述待解析代碼中包含的所述數據拼接特征出現的次數,得到與所述數據拼接特征對應的、能夠表示所述數據拼接特征的惡意程度的數值。
優選地,所述第三判斷單元包括:
計算單元,用于根據與所述每一個惡意特征對應的、能夠表示該惡意特征的惡意程度的數值,采用機器學習算法,計算得到所述目標文件為惡意文件的概率;
第四判斷單元,用于根據所述概率,判斷所述目標文件是否是惡意文件。
相較于現有技術,本發明具有以下有益效果:
本發明提供了一種檢測方法和裝置,本發明中沒有像現有技術中一樣,直接查找是否具有惡意的字節,即沒有直接對二進制形式的代碼進行分析,而是將具有二進制形式的代碼的格式轉換成具有字符串形式的代碼,進而對具有字符串形式的代碼進行特征分析,由于現有技術中形式改變后的惡意的字節對應的具有字符串形式的代碼是不變的,采用本發明中的方案就能夠避免惡意的字節的形式改變后,采用特征碼和人工規則的識別方法來檢測flash文件中是否攜帶有惡意代碼時,不能判斷flash文件是否是惡意文件的問題。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據提供的附圖獲得其他的附圖。
圖1為本發明提供的一種檢測方法的方法流程圖;
圖2為本發明提供的另一種檢測方法的方法流程圖;
圖3為本發明提供的一種檢測裝置的結構示意圖;
圖4為本發明提供的另一種檢測裝置的結構示意圖。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
本發明實施例提供了一種檢測方法,參照圖1,包括:
S101、判斷獲取的目標文件是否是固態存儲器與動畫編輯器flash文件;
具體的,判斷獲取的目標文件是否是固態存儲器與動畫編輯器flash文件,包括:
采用文件格式識別方法識別目標文件的文件類型,判斷文件類型是否是flash文件的文件類型。
需要說明的是,每一種文件都具有其特定的文件類型。flash文件包括兩類,一類是已壓縮文件,一類是未壓縮文件,其中,已壓縮文件的文件類型的開頭三位為CWS,未壓縮文件的文件類型的開頭三位為FWS。
S102、將目標文件中包含的具有二進制形式的代碼的格式進行轉換,轉換成具有字符串形式的代碼;
需要說明的是,當判斷出獲取的目標文件是flash文件,將目標文件中包含的具有二進制形式的代碼的格式進行轉換,轉換成具有字符串形式的代碼。當判斷出獲取的目標文件不是flash文件時,流程結束。
具體的,根據flash文件對應的技術文檔,將目標文件中包含的具有二進制形式的代碼的格式進行轉換,轉換成具有字符串形式的代碼。
S103、將位于具有字符串形式的代碼中的預設位置的代碼提取出來,得到待解析代碼;
需要說明的是,惡意代碼只會出現在具有字符串形式的代碼中的預設位置,其中預設位置包括DoInitAction段、DoAction段和DoABC段。
具體的,將位于具有字符串形式的代碼中的預設位置的代碼提取出來,得到待解析代碼,包括:
查找位于具有字符串形式的代碼中的預設位置中的每個位置的代碼;
將每個位置的代碼提取出來,得到待解析代碼。
即將位于DoInitAction段、DoAction段和DoABC段的代碼都提取出來,得到待解析代碼。
S104、判斷待解析代碼中是否包含有預設的惡意特征中的至少一個惡意特征;
其中,預設的惡意特征包括名稱特征、惡意行為特征或數據拼接特征。
S105、根據待解析代碼中包含的每一個惡意特征中的待解析字符串,得到與每一個惡意特征對應的、能夠表示該惡意特征的惡意程度的數值;
具體的,當判斷出待解析代碼中包含有預設的惡意特征中的至少一個惡意特征,根據待解析代碼中包含的每一個惡意特征中的待解析字符串,得到與每一個惡意特征對應的、能夠表示該惡意特征的惡意程度的數值。需要說明的是,當判斷出待解析代碼中未包含有預設的惡意特征中的任何一個惡意特征,說明目標文件不是惡意文件,此時流程結束。
其中,當預設的惡意特征包括名稱特征、惡意行為特征或數據拼接特征時,根據待解析代碼中包含的每一個惡意特征中的待解析字符串,得到與每一個惡意特征對應的、能夠表示該惡意特征的惡意程度的數值,包括:
當待解析代碼中包含名稱特征時,根據與待解析代碼中包含的名稱特征相匹配的字符串為正常字符串的概率,得到與名稱特征對應的、能夠表示名稱特征的惡意程度的數值;
具體的,名稱特征為類名,在待解析代碼中查找與類名相匹配的字符串,根據馬爾科夫鏈算法分析該字符串是否是正常的字符串,當分析出該字符串為正常字符串的概率大于預設值時,證明該字符串為正常字符串。根據這種方法來得到與類名相匹配的字符串中正常字符串所占的比例。
假設查找出兩個與類名相匹配的字符串,此時分析這兩個字符串是否是正常的字符串,假設這兩個字符串中的一個為正常的字符串、另一個為不正常的字符串,則類名中正常字符串的占比為0.5。即名稱特征對應的、能夠表示名稱特征的惡意程度的數值為0.5。需要說明的是,該數值為小數。
當待解析代碼中包含惡意行為特征時,根據待解析代碼中包含的惡意行為特征中的每個特征出現的次數,得到與惡意行為特征對應的、能夠表示惡意行為特征的惡意程度的數值;
具體的,惡意行為特征包括獲取內存信息和修改系統文件行為這兩個小特征。
其中,獲取內存信息和修改系統文件行為這兩個小特征都對應有相應的字符串,如獲取內存信息的字符串為getallocsize。
在待解析代碼中,查找是否包含有上述每一個小特征對應的字符串,當查找出有其中的一個小特征對應的字符串時,將該字符串出現的次數乘以該字符串對應的分值,即得到該特征對應的一個分值。根據這種方法,能夠得到每一個小特征對應的分值,將每個小特征對應的分值相加,即能得到惡意行為特征對應的、能夠表示惡意行為特征的惡意程度的數值。其中,該數值為整數。
舉例來說,當想要知道獲取內存信息這個特征對應的數值,在待解析代碼中查找getallocsize出現的次數,假設getallocsize出現一次對應的分值為五分,在查找的過程中,發現getallocsize出現了四次,那么獲取內存信息這個特征對應的分值就是二十。
當待解析代碼中包含數據拼接特征時,根據待解析代碼中包含的數據拼接特征出現的次數,得到與數據拼接特征對應的、能夠表示數據拼接特征的惡意程度的數值。
其中,數據拼接是指在某塊具有二進制形式的代碼段中有規律并且頻繁的使用加add指令,對字符串進行拼接。
在待解析代碼中,查找是否包含有數據拼接特征對應的字符串,當查找出有數據拼接特征對應的字符串時,將該字符串出現的次數乘以該字符串對應的分值,即得到該特征對應的一個分值。該分值即為與數據拼接特征對應的、能夠表示數據拼接特征的惡意程度的數值。其中,該數值為整數。
需要說明的是,拼接后的字符串對應的分值的大小,與字符串的長短有關,若字符串的長度越長,則其對應的分值越高,若字符串的長度越短,則其對應的分值越小。
S106、根據與每一個惡意特征對應的、能夠表示該惡意特征的惡意程度的數值,采用機器學習算法,判斷目標文件是否是惡意文件。
本實施例提供了一種檢測方法,本實施例中沒有像現有技術中一樣,直接查找是否具有惡意的字節,即沒有直接對二進制形式的代碼進行分析,而是將具有二進制形式的代碼的格式轉換成具有字符串形式的代碼,進而對具有字符串形式的代碼進行特征分析,由于現有技術中形式改變后的惡意的字節對應的具有字符串形式的代碼是不變的,采用本發明中的方案就能夠避免惡意的字節的形式改變后,采用特征碼和人工規則的識別方法來檢測flash文件中是否攜帶有惡意代碼時,不能判斷flash文件是否是惡意文件的問題。
可選的,本發明的另一實施例中,參照圖2,根據與每一個惡意特征對應的、能夠表示該惡意特征的惡意程度的數值,采用機器學習算法,判斷目標文件是否是惡意文件,包括:
S206、根據與每一個惡意特征對應的、能夠表示該惡意特征的惡意程度的數值,采用機器學習算法,計算得到目標文件為惡意文件的概率;
需要說明的是,計算得到目標文件為惡意文件的概率采用的方法是機器學習算法中的支持向量機算法。
其中,支持向量機算法中賦予了每個惡意特征對應的分量,將每一個惡意特征對應的、能夠表示該惡意特征的惡意程度的數值與該惡意特征對應的分量根據預設的規則進行計算,就能夠得到目標文件為惡意文件的概率。
S207、根據概率,判斷目標文件是否是惡意文件。
當計算出的概率大于50%時,就證明該目標文件為惡意文件。
當計算出的概率大于50%且小于70%時,目標文件的危險等級為低,當計算出的概率大于70%且小于90%,目標文件的危險等級為中,當計算出的概率大于90%時,目標文件的危險等級為高。
此外,當判斷出目標文件為惡意文件時,在顯示界面上顯示全部的具有字符串形式的代碼以及惡意代碼。其中,名稱特征中非正常的字符串、在待解析代碼中出現的惡意行為特征中的每個小特征對應的字符串以及在待解析代碼中出現的數據拼接特征對應的字符串為惡意代碼。在顯示惡意代碼時,將包含有惡意代碼的那行均標黃,或者以其他方式顯示。
本實施例中,采用機器學習算法,計算得到目標文件為惡意文件的概率,進而根據該概率,判斷目標文件是否是惡意文件。
可選的,本發明的另一實施例中提供了一種檢測裝置,參照圖3,包括:
第一判斷單元101,用于判斷獲取的目標文件是否是固態存儲器與動畫編輯器flash文件;
轉換單元102,用于當第一判斷單元101判斷出獲取的目標文件是flash文件,將目標文件中包含的具有二進制形式的代碼的格式進行轉換,轉換成具有字符串形式的代碼;
提取單元103,用于將位于具有字符串形式的代碼中的預設位置的代碼提取出來,得到待解析代碼;
第二判斷單元104,用于判斷待解析代碼中是否包含有預設的惡意特征中的至少一個惡意特征;
特征提取單元105,用于當第二判斷單元104判斷出待解析代碼中包含有預設的惡意特征中的至少一個惡意特征,根據待解析代碼中包含的每一個惡意特征中的待解析字符串,得到與每一個惡意特征對應的、能夠表示該惡意特征的惡意程度的數值;
第三判斷單元106,用于根據與每一個惡意特征對應的、能夠表示該惡意特征的惡意程度的數值,采用機器學習算法,判斷目標文件是否是惡意文件。
其中,第一判斷單元101,包括:
第一判斷子單元,用于采用文件格式識別方法識別目標文件的文件類型,判斷文件類型是否是flash文件的文件類型。
提取單元包括:
查找單元,用于查找位于具有字符串形式的代碼中的預設位置中的每個位置的代碼;
提取子單元,用于將每個位置的代碼提取出來,得到待解析代碼。
此外,當預設的惡意特征包括名稱特征、惡意行為特征或數據拼接特征時,
特征提取單元105包括:
第一特征提取單元,用于當第二判斷單元判斷出待解析代碼中包含名稱特征時,根據與待解析代碼中包含的名稱特征相匹配的字符串為正常字符串的概率,得到與名稱特征對應的、能夠表示名稱特征的惡意程度的數值;
第二特征提取單元,用于當第二判斷單元判斷出待解析代碼中包含惡意行為特征時,根據待解析代碼中包含的惡意行為特征中的每個特征出現的次數,得到與惡意行為特征對應的、能夠表示惡意行為特征的惡意程度的數值;
第三特征提取單元,用于當第二判斷單元判斷出待解析代碼中包含數據拼接特征時,根據待解析代碼中包含的數據拼接特征出現的次數,得到與數據拼接特征對應的、能夠表示數據拼接特征的惡意程度的數值。
本實施例提供了一種檢測裝置,本實施例中沒有像現有技術中一樣,直接查找是否具有惡意的字節,即沒有直接對二進制形式的代碼進行分析,而是將具有二進制形式的代碼的格式轉換成具有字符串形式的代碼,進而對具有字符串形式的代碼進行特征分析,由于現有技術中形式改變后的惡意的字節對應的具有字符串形式的代碼是不變的,采用本發明中的方案就能夠避免惡意的字節的形式改變后,采用特征碼和人工規則的識別方法來檢測flash文件中是否攜帶有惡意代碼時,不能判斷flash文件是否是惡意文件的問題。
需要說明的是,本實施例中的各個單元的工作過程請參照圖1對應的實施例中的內容,在此不再贅述。
可選的,本發明的另一實施例中,參照圖4,第三判斷單元106包括:
計算單元1061,用于根據與每一個惡意特征對應的、能夠表示該惡意特征的惡意程度的數值,采用機器學習算法,計算得到目標文件為惡意文件的概率;
第四判斷單元1062,用于根據概率,判斷目標文件是否是惡意文件。
本實施例中,采用機器學習算法,計算得到目標文件為惡意文件的概率,進而根據該概率,判斷目標文件是否是惡意文件。
需要說明的是,本實施例中的各個單元的工作過程請參照圖2對應的實施例中的內容,在此不再贅述。
對所公開的實施例的上述說明,使本領域專業技術人員能夠實現或使用本發明。對這些實施例的多種修改對本領域的專業技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發明的精神或范圍的情況下,在其它實施例中實現。因此,本發明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。