欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

webshell變形的靜態(tài)檢測(cè)方法和裝置的制造方法_3

文檔序號(hào):9350282閱讀:來(lái)源:國(guó)知局
區(qū)域。
[0052] 上面的例子中經(jīng)語(yǔ)法分析以及解析后,可以得到表2所示的語(yǔ)法樹(shù)。
[0053] 表2 :語(yǔ)法解析后的語(yǔ)法樹(shù)列表
[0056] 經(jīng)過(guò)以上步驟,整個(gè)腳本進(jìn)行大量語(yǔ)義簡(jiǎn)化,只包含函數(shù)定義、函數(shù)調(diào)用、基礎(chǔ)運(yùn) 算符操作。對(duì)語(yǔ)法樹(shù)進(jìn)行掃描生成中間代碼,區(qū)分代碼區(qū)、數(shù)據(jù)區(qū)(為節(jié)約空間,可建立標(biāo) 識(shí)符表、字串表)。生成的中間代碼格式可根據(jù)虛擬機(jī)的需要定義,或轉(zhuǎn)換成等價(jià)的后綴表 達(dá)式,只要能被虛擬機(jī)執(zhí)行即可。
[0057] 步驟S104 :在預(yù)設(shè)的虛擬機(jī)上解釋執(zhí)行所述中間代碼,并在執(zhí)行過(guò)程中利用上述 內(nèi)置函數(shù)庫(kù)和異常行為規(guī)則庫(kù)對(duì)中間代碼的行為進(jìn)行分析,判斷相應(yīng)的代碼是否為惡意代 碼。
[0058] 本優(yōu)選實(shí)施例中,所述預(yù)設(shè)的虛擬機(jī)設(shè)置有全局變量區(qū)和局部變量區(qū),并基于堆 棧的方式運(yùn)行。
[0059] 其中,對(duì)中間代碼從頭到尾順序執(zhí)行,遇到運(yùn)算符或內(nèi)置函數(shù)庫(kù)里面函數(shù)就模擬 執(zhí)行;在執(zhí)行過(guò)程中遇到函數(shù)調(diào)用還需要做一個(gè)記錄(針對(duì)大馬);若有自定義函數(shù)在整執(zhí) 行過(guò)程中并沒(méi)有代碼調(diào)用,則由虛擬機(jī)模擬參數(shù)進(jìn)行測(cè)試調(diào)用;若函數(shù)既不是內(nèi)置函數(shù)庫(kù) 中的函數(shù),也不是自定義函數(shù),則與異常行為規(guī)則庫(kù)結(jié)合進(jìn)行規(guī)則命中測(cè)試;若單個(gè)函數(shù)未 命中則檢查函數(shù)調(diào)用記錄與大馬規(guī)則進(jìn)行比較(測(cè)試內(nèi)容包含函數(shù)名稱和參數(shù)值),若命 中規(guī)則即中止整個(gè)過(guò)程,繼續(xù)下一個(gè)文件的檢測(cè)。
[0060] 關(guān)于上述規(guī)則檢測(cè),包括:
[0061] (1)對(duì)于敏感函數(shù)調(diào)用,判斷其是否為惡意代碼的方法是:測(cè)試函數(shù)名稱與實(shí)際 參數(shù)是否匹配;
[0062] (2)對(duì)于對(duì)象,判斷其是否為惡意代碼的方法是:測(cè)試對(duì)象類名、方法名以及實(shí)際 參數(shù)是否匹配;
[0063] (3)對(duì)于大馬,判斷方法為:測(cè)試在整個(gè)執(zhí)行過(guò)程中是否存在大馬規(guī)則中包括的 指定函數(shù)集合。
[0064] 由于是靜態(tài)掃描,所以需要正確模擬某些函數(shù)運(yùn)行時(shí)的參數(shù),所述模擬參數(shù)至少 包括:瀏覽器以GET方式獲得的參數(shù)、瀏覽器以POST方式獲得的參數(shù)、腳本讀取本地文件的 內(nèi)容、腳本讀取遠(yuǎn)程文件的內(nèi)容、COOKIES內(nèi)容、SESSION內(nèi)容。
[0065] 在本申請(qǐng)方案中,優(yōu)選用一種抽象的方式來(lái)定義規(guī)則,例如:
[0066]定義規(guī)則:phpIevalI11 #client_submit#;
[0067] 表示php腳本中有eval函數(shù),并且第1個(gè)參數(shù)是$_GET[xx]或$_P0ST[xx]或$_ REQUEST[xx]。由于在語(yǔ)法分析過(guò)程中已對(duì)這些瀏覽器獲得的數(shù)據(jù)進(jìn)行了識(shí)別,所以可以正 確表示(參見(jiàn)第3頁(yè))。
[0068] 本優(yōu)選實(shí)施例與現(xiàn)有技術(shù)相比,具有如下優(yōu)點(diǎn):
[0069] (1)無(wú)需龐大的特征庫(kù);
[0070] (2)能夠自動(dòng)模擬各種運(yùn)算符的操作,能夠方便的識(shí)別變形腳本;
[0071] (3)能夠模擬調(diào)用自定義函數(shù)的參數(shù),數(shù)據(jù)庫(kù)內(nèi)容,遠(yuǎn)程文件內(nèi)容,能夠更智能的 識(shí)別惡意腳本;
[0072] (4)與動(dòng)態(tài)hook相比,本申請(qǐng)方案屬于靜態(tài)掃描引擎,不會(huì)影響正常業(yè)務(wù)的處理;
[0073] (5)采用抽象的方式定義規(guī)則,一條規(guī)則對(duì)應(yīng)的是一類行為而非一個(gè)獨(dú)立的行 為;
[0074] 另外,本申請(qǐng)方案還可用作代碼安全審計(jì),查殺力度更強(qiáng)、更徹底。
[0075] 對(duì)于前述的各方法實(shí)施例,為了描述簡(jiǎn)單,故將其都表述為一系列的動(dòng)作組合,但 是本領(lǐng)域的技術(shù)人員應(yīng)該知悉,本申請(qǐng)并不受所描述的動(dòng)作順序的限制,因?yàn)楦鶕?jù)本申請(qǐng), 某些步驟可以采用其他順序或同時(shí)執(zhí)行;其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,上述方法實(shí)施 例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作和模塊并不一定是本申請(qǐng)所必須的。
[0076] 參照?qǐng)D2,示出了本申請(qǐng)webshell變形的靜態(tài)檢測(cè)裝置一實(shí)施例的結(jié)構(gòu)框圖,包 括語(yǔ)言類別識(shí)別模塊21、中間代碼生成模塊22、虛擬機(jī)模塊23和惡意代碼判斷模塊24,其 中:
[0077] 語(yǔ)言類別識(shí)別模塊21,用于根據(jù)待檢測(cè)webshell文件內(nèi)容中包括的語(yǔ)言特征判 斷該文件的文件類型。
[0078] 例如,假如待檢測(cè)webshell文件中包括有"〈?php"和"?〉"等信息,則可以認(rèn)定 該webshell文件的類型為php文件;如果待檢測(cè)webshell文件中包括有"C#"和"System. " 等信息,則可以認(rèn)定該webshell文件的類型為用C#編寫(xiě)的aspx文件。
[0079] 中間代碼生成模塊22,用于根據(jù)待檢測(cè)webshell文件的類型,確定要使用的詞法 語(yǔ)法分析器、內(nèi)置函數(shù)庫(kù)和異常行為規(guī)則庫(kù);利用所述詞法語(yǔ)法分析器對(duì)待檢測(cè)webshell 文件進(jìn)行詞法和語(yǔ)法分析生成中間代碼;
[0080] 在本優(yōu)選實(shí)施例中,所述中間代碼包括代碼區(qū)和數(shù)據(jù)區(qū),代碼區(qū)的代碼包括函數(shù) 定義、函數(shù)調(diào)用和基礎(chǔ)運(yùn)算操作符等;該中間代碼生成模塊32具體包括:
[0081] 腳本過(guò)濾子模塊221,用于對(duì)待檢測(cè)webshell文件中的腳本進(jìn)行掃描,去除標(biāo)記 和注釋信息(如口11?文件中的"〈吐1111>"、"〈/吐1111>"、"〈13 〇(^>"、"〈/13〇(^>"、"〈??11?"、"? >"等標(biāo)記信息,"http://單行注釋"、"/*多行注釋塊*/"等注釋信息),得到過(guò)濾后的腳本;
[0082] 詞法分析子模塊222,用于對(duì)所述腳本過(guò)濾子模塊221獲得的過(guò)濾后的腳本內(nèi)容 進(jìn)行詞法分析,拆分生成由一系列記號(hào)組成的列表;其中所述記號(hào)的類型包括對(duì)象類聲明、 函數(shù)聲明、數(shù)字常量、字符串常量、變量、函數(shù)調(diào)用和運(yùn)算符;
[0083] 語(yǔ)法分析子模塊223,用于對(duì)所述詞法分析子模塊222拆分生成的列表進(jìn)行語(yǔ)法 分析,將復(fù)雜的表達(dá)式簡(jiǎn)化,生成所述虛擬機(jī)能夠解釋執(zhí)行的中間代碼。
[0084] 虛擬機(jī)模塊23,用于解釋執(zhí)行所述中間代碼;本優(yōu)選實(shí)施例中,虛擬機(jī)模塊23設(shè) 置有全局變量區(qū)和局部變量區(qū),基于堆棧的方式運(yùn)行;
[0085] 惡意代碼判斷模塊24,用于根據(jù)所述內(nèi)置函數(shù)庫(kù)和異常行為規(guī)則庫(kù)對(duì)虛擬機(jī)模塊 執(zhí)行中間代碼的過(guò)程中的行為進(jìn)行分析,判斷相應(yīng)的代碼是否為惡意代碼。該惡意代碼判 斷模塊24根據(jù)所述內(nèi)置函數(shù)庫(kù)和異常行為規(guī)則庫(kù)虛擬機(jī)模塊執(zhí)行中間代碼的過(guò)程中的行 為進(jìn)行分析,判斷相應(yīng)的代碼是否為惡意代碼的方法,具體包括:
[0086] 判斷所述中間代碼中包括的每個(gè)語(yǔ)句的類型,并根據(jù)所述語(yǔ)句的類型執(zhí)行后續(xù)相 應(yīng)的操作;對(duì)于運(yùn)算符或內(nèi)置函數(shù)庫(kù)中包括的函數(shù),直接模擬執(zhí)行;對(duì)于函數(shù)調(diào)用,根據(jù)異 常行為規(guī)則庫(kù)判斷其行為是否異常;對(duì)于在執(zhí)行過(guò)程中并沒(méi)有代碼調(diào)用的自定義函數(shù),利 用模擬參數(shù)進(jìn)行測(cè)試調(diào)用;對(duì)于既不是內(nèi)置函數(shù)庫(kù)中的函數(shù),也不是自定義函數(shù),根據(jù)異常 行為規(guī)則庫(kù)判斷其行為是否異常。
[0087] 其中,上述模擬參數(shù)具體可以為:瀏覽器以GET方式提供的參數(shù)、瀏覽器以POST方 式提供的參數(shù)、腳本讀取本地文件的內(nèi)容、腳本讀取遠(yuǎn)程文件的內(nèi)容、COOKIES內(nèi)容和/或SESSION內(nèi)容。
[0088] 上述異常行為規(guī)則庫(kù)具體可以包括敏感函數(shù)調(diào)用規(guī)則和大馬規(guī)則(即包括有多 個(gè)指定函數(shù)集合的規(guī)則);其中,對(duì)于敏感函數(shù)調(diào)用,判斷其行為是否異常的方法是:測(cè)試 函數(shù)名稱與實(shí)際參數(shù)是否匹配;對(duì)于對(duì)象,判斷其行為是否異常的方法是:測(cè)試對(duì)象類名、 方法名以及實(shí)際參數(shù)是否匹配;對(duì)于大馬,判斷方法為:測(cè)試在
當(dāng)前第3頁(yè)1 2 3 4 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
炎陵县| 祁门县| 民乐县| 甘泉县| 静海县| 鄂温| 清原| 额敏县| 年辖:市辖区| 安岳县| 丁青县| 铜梁县| 衡东县| 临江市| 四平市| 博兴县| 台东县| 蒙自县| 饶河县| 杭锦旗| 花莲县| 宁阳县| 镇巴县| 肃宁县| 安宁市| 邻水| 广宗县| 荔波县| 平湖市| 民权县| 花莲县| 娱乐| 米泉市| 固阳县| 巢湖市| 乌兰察布市| 安陆市| 香港 | 昆明市| 镇原县| 翁牛特旗|