国产精品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>

      一種基于程序關(guān)鍵字調(diào)用序列的腳本病毒檢測(cè)方法及系統(tǒng)的制作方法

      文檔序號(hào):9727668閱讀:225來(lái)源:國(guó)知局
      一種基于程序關(guān)鍵字調(diào)用序列的腳本病毒檢測(cè)方法及系統(tǒng)的制作方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及網(wǎng)絡(luò)安全領(lǐng)域,特別涉及一種基于程序關(guān)鍵字調(diào)用序列的腳本病毒檢測(cè)方法及系統(tǒng)。
      【背景技術(shù)】
      [0002]腳本語(yǔ)言是為了縮短傳統(tǒng)的編寫-編譯-鏈接-運(yùn)行過(guò)程而創(chuàng)建的計(jì)算機(jī)編程語(yǔ)言,它由相應(yīng)的解釋器逐句解釋執(zhí)行,具有簡(jiǎn)單,易學(xué)易用等特點(diǎn),目前在互聯(lián)網(wǎng)的網(wǎng)頁(yè)開(kāi)發(fā)中大量使用,較為流行的腳本語(yǔ)言有javascript和vbscript等。惡意腳本程序是以損壞系統(tǒng)功能和惡意傳播為目的的腳本程序,這部分程序嵌入在正常的網(wǎng)頁(yè)程序中,不易被人發(fā)覺(jué),在用戶瀏覽被惡意腳本感染的網(wǎng)頁(yè)時(shí),自動(dòng)下載其他惡意代碼到用戶電腦中或感染用戶系統(tǒng)上的其他腳本代碼。
      [0003]目前對(duì)惡意腳本的檢測(cè)方式有很多種,有基于靜態(tài)代碼內(nèi)容進(jìn)行模式匹配檢測(cè)的,也有基于虛擬執(zhí)行后結(jié)果進(jìn)行模式再匹配的。而目前惡意腳本為了對(duì)抗殺毒軟件的查殺大都采用了復(fù)雜的多態(tài)變形技術(shù),如部分的腳本變形采用增加空格換行等無(wú)用字符,或者將腳本程序中使用的變量名稱采用隨機(jī)字符串定義,語(yǔ)句等價(jià)變換等,這給靜態(tài)代碼檢測(cè)的方法帶來(lái)了非常大的困難,導(dǎo)致檢測(cè)模塊的特征量急劇上升,和檢出率的不斷降低,這就催生了采用虛擬執(zhí)行后的檢測(cè)方法,這個(gè)方法的好處是通過(guò)虛擬執(zhí)行,解密了惡意代碼的變形代碼,得到真正的惡意功能部分,再采用靜態(tài)的模式匹配方法進(jìn)行匹配,這個(gè)方法的確提高了惡意腳本的檢出能力,但是由于該方法執(zhí)行效率非常低,很難找到一致的方法對(duì)所有惡意腳本進(jìn)行解密,通常是每種惡意變形技術(shù)都要實(shí)現(xiàn)一套腳本虛擬執(zhí)行解密模塊,開(kāi)發(fā)難度大,日常維護(hù)成本高導(dǎo)致該方法在目前的反病毒軟件中并沒(méi)有廣泛應(yīng)用。

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

      [0004]基于上述問(wèn)題,本發(fā)明提出了一種基于程序關(guān)鍵字調(diào)用序列的腳本病毒檢測(cè)方法及系統(tǒng),針對(duì)惡意腳本程序較多采用字符串替換,增加無(wú)意義空行等形式變形加密技術(shù),但是變形的代碼擁有相同的調(diào)用方式和指令執(zhí)行流的跳轉(zhuǎn)結(jié)構(gòu),而且主要功能代碼調(diào)用的API名稱是基本一致的特點(diǎn),通過(guò)對(duì)關(guān)鍵詞調(diào)用及語(yǔ)義中上下文調(diào)用及跳轉(zhuǎn)關(guān)系,可以基本判斷兩個(gè)腳本語(yǔ)言是否具有一致的代碼結(jié)構(gòu),具有同樣代碼結(jié)構(gòu)的腳本則可以認(rèn)為相同,以此來(lái)判斷腳本程序是否為惡意。
      [0005]一種基于程序關(guān)鍵字調(diào)用序列的腳本病毒檢測(cè)方法,包括:
      對(duì)待檢測(cè)程序的字符序列進(jìn)行詞法分析,生成一系列單詞,并將單詞分類,得到單詞序列;
      根據(jù)得到的單詞序列,進(jìn)行語(yǔ)法分析,記錄調(diào)用的腳本程序關(guān)鍵字信息;
      語(yǔ)義分析,根據(jù)每行程序語(yǔ)義,確定語(yǔ)義類型,并標(biāo)記助記符;
      創(chuàng)建待檢測(cè)數(shù)據(jù)流;
      逐行遍歷待檢測(cè)程序,判斷當(dāng)前行是否調(diào)用了腳本程序關(guān)鍵字信息,如果是,則將所述腳本程序關(guān)鍵字信息添加到待檢測(cè)數(shù)據(jù)流中;否則判斷當(dāng)前行是否標(biāo)記了助記符,如果是,則將所述助記符添加到待檢測(cè)數(shù)據(jù)流中,否則跳過(guò)當(dāng)前行;
      將所述待檢測(cè)數(shù)據(jù)流與特征庫(kù)中的關(guān)鍵字調(diào)用序列特征串匹配,如果匹配成功,則判定所述待檢測(cè)程序?yàn)閻阂?,否則所述待檢測(cè)程序非惡意。
      [0006]所述的方法中,所述記錄調(diào)用的腳本程序關(guān)鍵字信息具體為:記錄程序調(diào)用的API名稱作為腳本程序關(guān)鍵字信息。
      [0007]所述的方法中,所述的語(yǔ)義分析,根據(jù)每行程序語(yǔ)義,確定語(yǔ)義類型,并標(biāo)記助記符中,所述語(yǔ)義類型包括:賦值語(yǔ)句、跳轉(zhuǎn)語(yǔ)句、循環(huán)語(yǔ)句和返回語(yǔ)句。
      [0008]所述的方法中,在將所述待檢測(cè)數(shù)據(jù)流與特征庫(kù)中的特征串匹配成功后,還包括:將所述判定為惡意的待檢測(cè)程序與白名單匹配,如果不存在于白名單中,則確定所述待檢測(cè)程序?yàn)閻阂?,否則所述待檢測(cè)程序非惡意。
      [0009]所述的方法中,所述特征庫(kù)中的關(guān)鍵字調(diào)用序列特征串為從已知惡意腳本代碼中提取。
      [0010]一種基于程序關(guān)鍵字調(diào)用序列的腳本病毒檢測(cè)系統(tǒng),包括:
      詞法分析模塊,用于對(duì)待檢測(cè)程序的字符序列進(jìn)行詞法分析,生成一系列單詞,并將單詞分類,得到單詞序列;
      語(yǔ)法分析模塊,用于根據(jù)得到的單詞序列,進(jìn)行語(yǔ)法分析,記錄調(diào)用的腳本程序關(guān)鍵字信息;
      語(yǔ)義分析模塊,用于根據(jù)每行程序語(yǔ)義,確定語(yǔ)義類型,并標(biāo)記助記符;
      待檢測(cè)數(shù)據(jù)流創(chuàng)建模塊,用于創(chuàng)建待檢測(cè)數(shù)據(jù)流;
      遍歷檢測(cè)模塊,用于逐行遍歷待檢測(cè)程序,判斷當(dāng)前行是否調(diào)用了腳本程序關(guān)鍵字信息,如果是,則將所述腳本程序關(guān)鍵字信息添加到待檢測(cè)數(shù)據(jù)流中;否則判斷當(dāng)前行是否標(biāo)記了助記符,如果是,則將所述助記符添加到待檢測(cè)數(shù)據(jù)流中,否則跳過(guò)當(dāng)前行;
      匹配模塊,用于將所述待檢測(cè)數(shù)據(jù)流與特征庫(kù)中的關(guān)鍵字調(diào)用序列特征串匹配,如果匹配成功,則判定所述待檢測(cè)程序?yàn)閻阂猓駝t所述待檢測(cè)程序非惡意。
      [0011]所述的系統(tǒng)中,所述記錄調(diào)用的腳本程序關(guān)鍵字信息具體為:記錄程序調(diào)用的API名稱作為腳本程序關(guān)鍵字信息。
      [0012]所述的系統(tǒng)中,所述的語(yǔ)義分析,根據(jù)每行程序語(yǔ)義,確定語(yǔ)義類型,并標(biāo)記助記符中,所述語(yǔ)義類型包括:賦值語(yǔ)句、跳轉(zhuǎn)語(yǔ)句、循環(huán)語(yǔ)句和返回語(yǔ)句。
      [0013]所述的系統(tǒng)中,匹配模塊后,還包括:白名單模塊,用于將所述判定為惡意的待檢測(cè)程序與白名單匹配,如果不存在于白名單中,則確定所述待檢測(cè)程序?yàn)閻阂?,否則所述待檢測(cè)程序非惡意。
      [0014]所述的系統(tǒng)中,所述特征庫(kù)中的關(guān)鍵字調(diào)用序列特征串為從已知惡意腳本代碼中提取。
      [0015]本發(fā)明提供了一種基于程序關(guān)鍵字調(diào)用序列的腳本病毒檢測(cè)方法及系統(tǒng),通過(guò)將待檢測(cè)程序進(jìn)行詞法分析及語(yǔ)法語(yǔ)義分析,標(biāo)記調(diào)用的腳本程序關(guān)鍵字信息及語(yǔ)義類型的助記符,并將所述關(guān)鍵字信息及助記符保存到待檢測(cè)數(shù)據(jù)流中,將待檢測(cè)數(shù)據(jù)流與預(yù)先從惡意腳本中提取的特征串匹配,如果匹配成功,則判定所述待檢測(cè)程序?yàn)閻阂狻?br>[0016]本發(fā)明的優(yōu)勢(shì)在于,能夠針對(duì)惡意腳本存在變形難于檢測(cè)的特點(diǎn),跳出了程序的靜態(tài)代碼檢測(cè)思維,采用了不同的腳本程序結(jié)構(gòu)的模式匹配方法來(lái)檢測(cè)惡意代碼,采用該方法得到待檢測(cè)數(shù)據(jù)流相對(duì)源代碼而言保留了程序的執(zhí)行流程,調(diào)用方式等主要信息,拋棄了變量名稱,語(yǔ)句細(xì)節(jié)等次要信息,而這些次要信息中常常被惡意腳本所利用,通過(guò)多態(tài)變形的方法給靜態(tài)檢測(cè)帶來(lái)了很多障礙。本發(fā)明提出的腳本檢測(cè)方法可以有效對(duì)抗惡意腳本的多態(tài)變形特點(diǎn),相對(duì)傳統(tǒng)的惡意腳本檢測(cè)方法可以對(duì)經(jīng)常變化變量名稱,增加空行空格,等價(jià)語(yǔ)句替換等無(wú)用信息的惡意腳本有更高的檢出率,對(duì)采用相似多態(tài)變形技術(shù)的未知惡意腳本有較好的未知檢測(cè)能力。同時(shí),可以對(duì)使用相似惡意功能的腳本程序有非常好的歸一化能力,有效的減少了特征庫(kù)中的特征,減少了反病毒程序的磁盤占用,同時(shí)還減少匹配次數(shù),進(jìn)而提升了檢測(cè)效率。
      【附圖說(shuō)明】
      [0017]為了更清楚地說(shuō)明本發(fā)明或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明中記載的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
      [0018]圖1為本發(fā)明基于程序關(guān)鍵字調(diào)用序列的腳本病毒檢測(cè)方法流程圖;
      圖2為本發(fā)明基于程序關(guān)鍵字調(diào)用序列的腳本病毒檢測(cè)系統(tǒng)示意圖。
      【具體實(shí)施方式】
      [0019]為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明實(shí)施例中的技術(shù)方案,并使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖對(duì)本發(fā)明中技術(shù)方案作進(jìn)一步詳細(xì)的說(shuō)明。
      [0020]基于上述問(wèn)題,本發(fā)明提出了一種基于程序關(guān)鍵字調(diào)用序列的腳本病毒檢測(cè)方法及系統(tǒng),針對(duì)惡意腳本程序較多采用字符串替換,增加無(wú)意義空行等形式變形加密技術(shù),但是變形的代碼擁有相同的調(diào)用方式和指令執(zhí)行流的跳轉(zhuǎn)結(jié)構(gòu),而且主要功能代碼調(diào)用的API名稱是基本一致的特點(diǎn),通過(guò)對(duì)關(guān)鍵詞調(diào)用及語(yǔ)義中上下文調(diào)用及跳轉(zhuǎn)關(guān)系,可以基本判斷兩個(gè)腳本語(yǔ)言是否具有一致的代碼結(jié)構(gòu),具有同樣代碼結(jié)構(gòu)的腳本則可以認(rèn)為相同,以此來(lái)判斷腳本程序是否為惡意。
      [0021]—種基于程序關(guān)鍵字調(diào)用序列的腳本病毒檢測(cè)方法,如圖1所示,包括:
      5101:對(duì)待檢測(cè)程序的字符序列進(jìn)行詞法分析,生成一系列單詞,并將單詞分類,得到單詞序列;即從左到右逐個(gè)字符的讀入待檢測(cè)程序源代碼,對(duì)代碼進(jìn)掃描,然后根據(jù)腳本語(yǔ)言的構(gòu)詞規(guī)則,逐個(gè)識(shí)別單詞,組成單詞序列交給語(yǔ)法分析;
      5102:根據(jù)得到的單詞序列,進(jìn)行語(yǔ)法分析,記錄調(diào)用的腳本程序關(guān)鍵字信息;即將單詞序列組合成語(yǔ)法短句,記錄該語(yǔ)法短句中可能存在的腳本程序關(guān)鍵字信息,一般程序調(diào)用的API名稱可以作為關(guān)鍵字;
      5103:語(yǔ)義分析,根據(jù)每行程序語(yǔ)義,確定語(yǔ)義類型,并標(biāo)記助記符;
      5104:創(chuàng)建待檢測(cè)數(shù)據(jù)流;
      5105:逐行遍歷待檢測(cè)程序,判斷當(dāng)前行是否調(diào)用了腳本程序關(guān)鍵字信息,如果是,則將所述腳本程序關(guān)鍵字信息添加到待檢測(cè)數(shù)據(jù)流中;否則判斷當(dāng)前行是否標(biāo)記了助記符,如果是,則將所述助記符添加到待檢測(cè)數(shù)據(jù)流中,否則跳過(guò)當(dāng)前行;
      S106:將所述待檢測(cè)數(shù)據(jù)流與特征庫(kù)中的關(guān)鍵字調(diào)用序列特征串匹配,如果匹配成功,則判定所述待檢測(cè)程序?yàn)閻阂?,否則所述待檢測(cè)程序非惡意。
      [0022]預(yù)先在已知的惡意代碼庫(kù)中,選擇腳本病毒中復(fù)雜度較高惡意代碼片段使用如上的方法進(jìn)行信息提取,得到結(jié)果信息保存在特征庫(kù)中作為關(guān)鍵字調(diào)用序列特征串。在檢測(cè)的過(guò)程中,逐條使用每條惡意代碼特征庫(kù)中的關(guān)鍵字調(diào)用序列特征串與生成好的待檢測(cè)數(shù)據(jù)流中進(jìn)行匹配,如果待檢測(cè)數(shù)據(jù)流包含任意一條特征,即可認(rèn)為當(dāng)前檢測(cè)的腳本為惡意腳本病毒。
      [0023]所述的方法中,所述記錄調(diào)用的腳本程序關(guān)鍵字信息具體為:記錄程序調(diào)用的API名稱作為腳本程序關(guān)鍵字信息。
      [0024]所述的方法中,所述的語(yǔ)義分析,根據(jù)每行程序語(yǔ)義,確定語(yǔ)義類型,并標(biāo)記助記符中,所述語(yǔ)義類型包括:賦值語(yǔ)句、跳轉(zhuǎn)語(yǔ)句、循環(huán)語(yǔ)句和返回語(yǔ)句。所述標(biāo)記助記符方法如:
      賦值語(yǔ)句使用助記符“SET ; ” ;
      當(dāng)前第1頁(yè)1 2 
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1