本發(fā)明涉及信息安全技術(shù)領(lǐng)域,尤其涉及一種網(wǎng)站后門(mén)檢測(cè)方法、裝置和計(jì)算設(shè)備。
背景技術(shù):
webshell是以asp、php、jsp、cgi等網(wǎng)頁(yè)文件形式存在的一種命令執(zhí)行環(huán)境,也可以稱為一種網(wǎng)頁(yè)后門(mén)。入侵者在入侵網(wǎng)站后,經(jīng)常在web服務(wù)器的web目錄中放置webshell后門(mén)文件,且與web服務(wù)器web目錄下正常的文件混在一起,不易被發(fā)現(xiàn)。入侵者可以用web方式訪問(wèn)webshell得到命令執(zhí)行環(huán)境以達(dá)到控制網(wǎng)站或web服務(wù)器的目的,可進(jìn)行的操作包括上傳下載文件、查看數(shù)據(jù)庫(kù)、執(zhí)行任意程序命令等。由于webshell其大多是以動(dòng)態(tài)腳本的形式出現(xiàn),也有人稱之為網(wǎng)站的后門(mén)工具。
有些惡意網(wǎng)頁(yè)腳本可以嵌套在正常網(wǎng)頁(yè)中運(yùn)行,且不容易被查殺。webshell可以穿越服務(wù)器防火墻,由于webshell與被控制的web服務(wù)器或遠(yuǎn)程主機(jī)交換的數(shù)據(jù)都是通過(guò)80端口傳遞的,因此不會(huì)被防火墻攔截。而且使用webshell一般不會(huì)在系統(tǒng)日志中留下記錄,只會(huì)在web服務(wù)器的日志中留下一些數(shù)據(jù)提交記錄,沒(méi)有經(jīng)驗(yàn)的管理員是很難看出入侵痕跡的。
現(xiàn)有的webshell檢測(cè)方法通常是通過(guò)收集網(wǎng)絡(luò)上公開(kāi)的webshell并分析其特征,或者添加一些敏感函數(shù)建立webshell特征庫(kù),然后在網(wǎng)站的訪問(wèn)日志中匹配這些特征或敏感函數(shù),如果匹配上,則進(jìn)行人工確認(rèn)其是否為webshell。但基于特征匹配容易出現(xiàn)大量誤報(bào),且webshell特征隨時(shí)變換,特征庫(kù)不能完全包含所有的特征,容易出現(xiàn)遺漏。
因此,需要一種更準(zhǔn)確且適用性更廣的webshell檢測(cè)方法。
技術(shù)實(shí)現(xiàn)要素:
為此,本發(fā)明提供一種網(wǎng)站后門(mén)檢測(cè)方法、裝置和計(jì)算設(shè)備,以解決或至少緩解上面存在的問(wèn)題。
根據(jù)本發(fā)明的一個(gè)方面,提供一種網(wǎng)站后門(mén)檢測(cè)方法,適于在計(jì)算設(shè)備中執(zhí)行,其中網(wǎng)絡(luò)用戶經(jīng)由網(wǎng)絡(luò)防火墻來(lái)訪問(wèn)所述網(wǎng)站,該方法包括:獲取網(wǎng)絡(luò)防火墻所產(chǎn)生的、與針對(duì)該網(wǎng)站的訪問(wèn)相應(yīng)的日志文件,并從中篩選出針對(duì)該網(wǎng)站的動(dòng)態(tài)頁(yè)面的訪問(wèn)記錄;從所篩選出的訪問(wèn)記錄中進(jìn)一步篩選出訪問(wèn)次數(shù)小于第一閾值的ip地址,以及該ip地址所請(qǐng)求過(guò)的動(dòng)態(tài)頁(yè)面的頁(yè)面地址集合;獲取針對(duì)該網(wǎng)站的頁(yè)面請(qǐng)求錯(cuò)誤時(shí)所返回的通用頁(yè)面內(nèi)容,并逐個(gè)對(duì)所述頁(yè)面地址集合中的每個(gè)頁(yè)面地址進(jìn)行訪問(wèn),以得到每個(gè)頁(yè)面地址的實(shí)際頁(yè)面內(nèi)容;以及計(jì)算每個(gè)頁(yè)面地址所對(duì)應(yīng)的實(shí)際頁(yè)面內(nèi)容與所述通用頁(yè)面內(nèi)容的萊文斯坦比,并選擇萊文斯坦比不小于第二閾值的頁(yè)面內(nèi)容對(duì)應(yīng)的頁(yè)面地址作為候選的網(wǎng)站后門(mén)地址。
可選地,在根據(jù)本發(fā)明的方法中,還包括:獲取對(duì)候選的網(wǎng)站后門(mén)地址進(jìn)行請(qǐng)求后所返回的頁(yè)面內(nèi)容,并根據(jù)所返回的頁(yè)面內(nèi)容確定該候選的網(wǎng)站后門(mén)地址中是否包括網(wǎng)站后門(mén)。
可選地,在根據(jù)本發(fā)明的方法中,日志文件為被防火墻攔截的用戶請(qǐng)求而產(chǎn)生的訪問(wèn)日志集合。
可選地,在根據(jù)本發(fā)明的方法中,在從所篩選出的訪問(wèn)記錄中進(jìn)一步篩選出訪問(wèn)次數(shù)小于第一閾值的ip地址之前,還包括步驟:將訪問(wèn)記錄中的ip地址按照訪問(wèn)次數(shù)進(jìn)行排序。
可選地,在根據(jù)本發(fā)明的方法中,實(shí)際頁(yè)面內(nèi)容包括該實(shí)際頁(yè)面內(nèi)容的第一頁(yè)面代碼;獲取針對(duì)該網(wǎng)站的頁(yè)面請(qǐng)求錯(cuò)誤時(shí)所返回的通用頁(yè)面內(nèi)容的步驟包括:隨機(jī)生成一個(gè)不存在的錯(cuò)誤頁(yè)面地址,并獲取該錯(cuò)誤頁(yè)面地址所對(duì)應(yīng)頁(yè)面內(nèi)容的第二頁(yè)面代碼;計(jì)算每個(gè)頁(yè)面地址所對(duì)應(yīng)頁(yè)面的實(shí)際頁(yè)面內(nèi)容與所述通用頁(yè)面內(nèi)容的萊文斯坦比的步驟包括:計(jì)算第一頁(yè)面代碼與所述第二頁(yè)面代碼的萊文斯坦比。
可選地,在根據(jù)本發(fā)明的方法中,選擇萊文斯坦比不小于第二閾值的頁(yè)面內(nèi)容所對(duì)應(yīng)的頁(yè)面地址作為候選的網(wǎng)站后門(mén)地址的過(guò)程包括:選擇萊文斯坦比不小于第二閾值、且返回狀態(tài)碼為200的頁(yè)面內(nèi)容所對(duì)應(yīng)的頁(yè)面地址作為候選的網(wǎng)站后門(mén)地址。
可選地,在根據(jù)本發(fā)明的方法中,第一閾值為8-11,第二閾值為75%-90%。
可選地,在根據(jù)本發(fā)明的方法中,第一閾值為預(yù)設(shè)時(shí)段內(nèi)ip地址的平均訪問(wèn)次數(shù)。
根據(jù)本發(fā)明的一個(gè)方面,提供一種網(wǎng)站后門(mén)檢測(cè)裝置,適于駐留在計(jì)算設(shè)備中,其中網(wǎng)絡(luò)用戶經(jīng)由網(wǎng)絡(luò)防火墻來(lái)訪問(wèn)所述網(wǎng)站,該裝置包括:記錄獲取模塊,適于獲取網(wǎng)絡(luò)防火墻所產(chǎn)生的、與針對(duì)該網(wǎng)站的訪問(wèn)相應(yīng)的日志文件,并從中篩選出針對(duì)該網(wǎng)站的動(dòng)態(tài)頁(yè)面的訪問(wèn)記錄;地址獲取模塊,適于從所篩選出的訪問(wèn)記錄中進(jìn)一步篩選出訪問(wèn)次數(shù)小于第一閾值的ip地址,以及該ip地址所請(qǐng)求過(guò)的動(dòng)態(tài)頁(yè)面的頁(yè)面地址集合;內(nèi)容獲取模塊,適于獲取針對(duì)該網(wǎng)站的頁(yè)面請(qǐng)求錯(cuò)誤時(shí)所返回的通用頁(yè)面內(nèi)容,并逐個(gè)對(duì)所述頁(yè)面地址集合中的每個(gè)頁(yè)面地址進(jìn)行訪問(wèn),以得到每個(gè)頁(yè)面地址的實(shí)際頁(yè)面內(nèi)容;以及后門(mén)確定模塊,適于計(jì)算每個(gè)頁(yè)面地址所對(duì)應(yīng)的實(shí)際頁(yè)面內(nèi)容與所述通用頁(yè)面內(nèi)容的萊文斯坦比,并選擇萊文斯坦比不小于第二閾值的頁(yè)面內(nèi)容所對(duì)應(yīng)的頁(yè)面地址作為候選的網(wǎng)站后門(mén)頁(yè)面地址。
根據(jù)本發(fā)明的一個(gè)方面,提供一種計(jì)算設(shè)備,包括一個(gè)或多個(gè)處理器;存儲(chǔ)器;以及一個(gè)或多個(gè)程序,其中所述一個(gè)或多個(gè)程序存儲(chǔ)在所述存儲(chǔ)器中并被配置為由一個(gè)或多個(gè)處理器執(zhí)行,所述一個(gè)或多個(gè)程序包括用于執(zhí)行根據(jù)如上所述的任一方法的指令。
根據(jù)本發(fā)明的一個(gè)方面,提供一種存儲(chǔ)一個(gè)或多個(gè)程序的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中一個(gè)或多個(gè)程序包括指令,該指令當(dāng)由計(jì)算設(shè)備執(zhí)行時(shí),使得所述計(jì)算設(shè)備執(zhí)行根據(jù)如上所述的任一方法。
根據(jù)本發(fā)明的技術(shù)方案,使用基于ip訪問(wèn)頻率的方法來(lái)篩選出疑似webshell的訪問(wèn)記錄,然后再通過(guò)自動(dòng)化腳本模擬請(qǐng)求并過(guò)濾掉自定義404頁(yè)面,進(jìn)一步縮小嫌疑范圍,從而實(shí)現(xiàn)了從海量攻擊日志中分析出真實(shí)的webshell,并降低人工分析的成本。
附圖說(shuō)明
為了實(shí)現(xiàn)上述以及相關(guān)目的,本文結(jié)合下面的描述和附圖來(lái)描述某些說(shuō)明性方面,這些方面指示了可以實(shí)踐本文所公開(kāi)的原理的各種方式,并且所有方面及其等效方面旨在落入所要求保護(hù)的主題的范圍內(nèi)。通過(guò)結(jié)合附圖閱讀下面的詳細(xì)描述,本公開(kāi)的上述以及其它目的、特征和優(yōu)勢(shì)將變得更加明顯。遍及本公開(kāi),相同的附圖標(biāo)記通常指代相同的部件或元素。
圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的網(wǎng)絡(luò)服務(wù)系統(tǒng)100的示意圖;
圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的計(jì)算設(shè)備200的結(jié)構(gòu)圖;
圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的網(wǎng)站后門(mén)檢測(cè)方法300的流程圖;以及
圖4示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的網(wǎng)站后門(mén)檢測(cè)裝置400的結(jié)構(gòu)圖。
具體實(shí)施方式
下面將參照附圖更詳細(xì)地描述本公開(kāi)的示例性實(shí)施例。雖然附圖中顯示了本公開(kāi)的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開(kāi)而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開(kāi),并且能夠?qū)⒈竟_(kāi)的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的網(wǎng)絡(luò)服務(wù)系統(tǒng)100的示意圖。圖1所示的網(wǎng)絡(luò)服務(wù)系統(tǒng)100包括客戶端110(如圖中所示的4個(gè)客戶端111-114)、防火墻120和網(wǎng)絡(luò)服務(wù)器130。網(wǎng)絡(luò)服務(wù)器130具有不同網(wǎng)站地址所對(duì)應(yīng)的內(nèi)容,并可以向用戶提供網(wǎng)絡(luò)內(nèi)容。網(wǎng)絡(luò)用戶可以通過(guò)客戶端110向網(wǎng)絡(luò)服務(wù)器130發(fā)送訪問(wèn)請(qǐng)求,并經(jīng)由網(wǎng)絡(luò)防火墻來(lái)訪問(wèn)網(wǎng)站,請(qǐng)求訪問(wèn)網(wǎng)絡(luò)服務(wù)器130上的網(wǎng)絡(luò)內(nèi)容。其中,防火墻120會(huì)對(duì)用戶向網(wǎng)絡(luò)服務(wù)器130發(fā)送的訪問(wèn)請(qǐng)求進(jìn)行過(guò)濾,攔截掉可疑的惡意訪問(wèn)請(qǐng)求,并記錄下攔截日志。
計(jì)算設(shè)備200可以通過(guò)網(wǎng)絡(luò)與防火墻120和網(wǎng)絡(luò)服務(wù)器130連接,獲取網(wǎng)絡(luò)防火墻所產(chǎn)生的、與針對(duì)目標(biāo)網(wǎng)站的訪問(wèn)相應(yīng)的日志文件,并檢測(cè)出來(lái)惡意的網(wǎng)站后門(mén)地址。計(jì)算設(shè)備200具體可以實(shí)現(xiàn)為服務(wù)器,例如文件服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器、應(yīng)用程序服務(wù)器和web服務(wù)器等,也可以實(shí)現(xiàn)為包括桌面計(jì)算機(jī)和筆記本計(jì)算機(jī)配置的個(gè)人計(jì)算機(jī)。當(dāng)然,計(jì)算設(shè)備也可以設(shè)置為網(wǎng)絡(luò)服務(wù)器130本身。此外,計(jì)算設(shè)備200還可以實(shí)現(xiàn)為小尺寸便攜(或者移動(dòng))電子設(shè)備的一部分,這些電子設(shè)備可以是諸如蜂窩電話、個(gè)人數(shù)字助理(pda)、個(gè)人媒體播放器設(shè)備、無(wú)線網(wǎng)絡(luò)瀏覽設(shè)備、個(gè)人頭戴設(shè)備、應(yīng)用專(zhuān)用設(shè)備、或者可以包括上面任何功能的混合設(shè)備。
客戶端110可以是諸如pc、筆記本電腦、手機(jī)、平板電腦、筆記本電腦、電視盒子、可穿戴設(shè)備等可以接入互聯(lián)網(wǎng)的設(shè)備。客戶端110可以通過(guò)有線的方式接入互聯(lián)網(wǎng),也可以通過(guò)3g、4g、wifi、個(gè)人熱點(diǎn)、ieee802.11x、藍(lán)牙等無(wú)線的方式接入互聯(lián)網(wǎng)。
應(yīng)當(dāng)指出,圖1中的網(wǎng)絡(luò)服務(wù)系統(tǒng)100僅是示例性的,在具體的實(shí)踐情況中,網(wǎng)絡(luò)服務(wù)系統(tǒng)100中可以有不同數(shù)量的客戶端110和網(wǎng)絡(luò)服務(wù)器130,本發(fā)明對(duì)網(wǎng)絡(luò)系統(tǒng)中所包括的客戶端110和網(wǎng)絡(luò)服務(wù)器130的數(shù)量不做限制。
圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的計(jì)算設(shè)備200的結(jié)構(gòu)圖。在基本配置202中,計(jì)算設(shè)備200典型地包括系統(tǒng)存儲(chǔ)器206和一個(gè)或者多個(gè)處理器204。存儲(chǔ)器總線208可以用于在處理器204和系統(tǒng)存儲(chǔ)器206之間的通信。
取決于期望的配置,處理器204可以是任何類(lèi)型的處理,包括但不限于:微處理器(μp)、微控制器(μc)、數(shù)字信息處理器(dsp)或者它們的任何組合。處理器204可以包括諸如一級(jí)高速緩存210和二級(jí)高速緩存212之類(lèi)的一個(gè)或者多個(gè)級(jí)別的高速緩存、處理器核心214和寄存器216。示例的處理器核心214可以包括運(yùn)算邏輯單元(alu)、浮點(diǎn)數(shù)單元(fpu)、數(shù)字信號(hào)處理核心(dsp核心)或者它們的任何組合。示例的存儲(chǔ)器控制器218可以與處理器204一起使用,或者在一些實(shí)現(xiàn)中,存儲(chǔ)器控制器218可以是處理器204的一個(gè)內(nèi)部部分。
取決于期望的配置,系統(tǒng)存儲(chǔ)器206可以是任意類(lèi)型的存儲(chǔ)器,包括但不限于:易失性存儲(chǔ)器(諸如ram)、非易失性存儲(chǔ)器(諸如rom、閃存等)或者它們的任何組合。系統(tǒng)存儲(chǔ)器206可以包括操作系統(tǒng)220、一個(gè)或者多個(gè)應(yīng)用222以及程序數(shù)據(jù)224。在一些實(shí)施方式中,應(yīng)用222可以布置為在操作系統(tǒng)上利用程序數(shù)據(jù)224進(jìn)行操作。
計(jì)算設(shè)備200還可以包括有助于從各種接口設(shè)備(例如,輸出設(shè)備242、外設(shè)接口244和通信設(shè)備246)到基本配置102經(jīng)由總線/接口控制器230的通信的接口總線240。示例的輸出設(shè)備242包括圖形處理單元248和音頻處理單元250。它們可以被配置為有助于經(jīng)由一個(gè)或者多個(gè)a/v端口252與諸如顯示器或者揚(yáng)聲器之類(lèi)的各種外部設(shè)備進(jìn)行通信。示例外設(shè)接口244可以包括串行接口控制器254和并行接口控制器256,它們可以被配置為有助于經(jīng)由一個(gè)或者多個(gè)i/o端口258和諸如輸入設(shè)備(例如,鍵盤(pán)、鼠標(biāo)、筆、語(yǔ)音輸入設(shè)備、觸摸輸入設(shè)備)或者其他外設(shè)(例如打印機(jī)、掃描儀等)之類(lèi)的外部設(shè)備進(jìn)行通信。示例的通信設(shè)備246可以包括網(wǎng)絡(luò)控制器260,其可以被布置為便于經(jīng)由一個(gè)或者多個(gè)通信端口264與一個(gè)或者多個(gè)其他計(jì)算設(shè)備262通過(guò)網(wǎng)絡(luò)通信鏈路的通信。
網(wǎng)絡(luò)通信鏈路可以是通信介質(zhì)的一個(gè)示例。通信介質(zhì)通常可以體現(xiàn)為在諸如載波或者其他傳輸機(jī)制之類(lèi)的調(diào)制數(shù)據(jù)信號(hào)中的計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊,并且可以包括任何信息遞送介質(zhì)。“調(diào)制數(shù)據(jù)信號(hào)”可以這樣的信號(hào),它的數(shù)據(jù)集中的一個(gè)或者多個(gè)或者它的改變可以在信號(hào)中編碼信息的方式進(jìn)行。作為非限制性的示例,通信介質(zhì)可以包括諸如有線網(wǎng)絡(luò)或者專(zhuān)線網(wǎng)絡(luò)之類(lèi)的有線介質(zhì),以及諸如聲音、射頻(rf)、微波、紅外(ir)或者其它無(wú)線介質(zhì)在內(nèi)的各種無(wú)線介質(zhì)。這里使用的術(shù)語(yǔ)計(jì)算機(jī)可讀介質(zhì)可以包括存儲(chǔ)介質(zhì)和通信介質(zhì)二者。
在一些實(shí)施例中,計(jì)算設(shè)備200被配置為執(zhí)行根據(jù)本發(fā)明的網(wǎng)站后門(mén)檢測(cè)方法300,應(yīng)用222中包括根據(jù)本發(fā)明的網(wǎng)站后門(mén)檢測(cè)裝置400。裝置400可以作為搜索引擎的一個(gè)插件駐留于計(jì)算設(shè)備200的瀏覽器中,或作為一個(gè)獨(dú)立的軟件安裝于計(jì)算設(shè)備200中,本發(fā)明對(duì)裝置400在計(jì)算設(shè)備200中的存在形式不做限制。
圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的網(wǎng)站后門(mén)檢測(cè)方法300的流程圖,該方法適于在計(jì)算設(shè)備200中執(zhí)行,其中,網(wǎng)絡(luò)用戶經(jīng)由網(wǎng)絡(luò)防火墻來(lái)訪問(wèn)所述網(wǎng)站。如圖3所示,該方法始于步驟s320。
在步驟s320中,獲取網(wǎng)絡(luò)防火墻所產(chǎn)生的、與針對(duì)該網(wǎng)站的訪問(wèn)相應(yīng)的日志文件,并從中篩選出針對(duì)該網(wǎng)站的動(dòng)態(tài)頁(yè)面的訪問(wèn)記錄。其中,日志文件可以為被防火墻攔截的用戶請(qǐng)求而產(chǎn)生的訪問(wèn)日志集合,動(dòng)態(tài)頁(yè)面是一種可以動(dòng)態(tài)生成網(wǎng)頁(yè)文件的技術(shù),其通常以.php/.jsp/.asp等后綴結(jié)尾,如:
http://www.example.com/index.php
http://www.example.net/index.asp
http://www.example.cn/index.jsp
隨后,在步驟s340中,從所篩選出的訪問(wèn)記錄中進(jìn)一步篩選出訪問(wèn)次數(shù)小于第一閾值的ip地址,以及該ip地址所請(qǐng)求過(guò)的動(dòng)態(tài)頁(yè)面的頁(yè)面地址集合。其中,第一閾值可以為8-11,進(jìn)一步可以設(shè)定為10。
根據(jù)一個(gè)實(shí)施例,也可以將第一閾值設(shè)置為預(yù)設(shè)時(shí)段內(nèi)ip地址的平均訪問(wèn)次數(shù)。其中,預(yù)設(shè)時(shí)段可以是該ip地址發(fā)送訪問(wèn)請(qǐng)求的訪問(wèn)時(shí)段,平均訪問(wèn)次數(shù)可以是該訪問(wèn)時(shí)段內(nèi)的大多數(shù)正常ip地址的平均訪問(wèn)次數(shù)。比如,對(duì)于初步確定比較可疑的ip地址,其主要訪問(wèn)時(shí)段為18:00-22:00,則可以統(tǒng)計(jì)多個(gè)正常ip地址在該時(shí)段的訪問(wèn)次數(shù)取平均,作為預(yù)設(shè)時(shí)段內(nèi)ip地址的平均訪問(wèn)次數(shù)。當(dāng)然,也可以對(duì)多個(gè)正常ip地址的訪問(wèn)次數(shù)進(jìn)行加權(quán)后再取平均,或者采用其他取平均算法,本發(fā)明對(duì)平均訪問(wèn)次數(shù)的計(jì)算方法不作限定。
根據(jù)一個(gè)實(shí)施例,在步驟s340之前,還可以包括步驟:將訪問(wèn)記錄中的ip地址按照訪問(wèn)次數(shù)進(jìn)行排序。
在步驟s340中篩選出了一些可疑的ip地址的訪問(wèn)記錄,但這些訪問(wèn)記錄中有些頁(yè)面地址對(duì)應(yīng)的可能是自定義的404頁(yè)面,因此還需剔除掉這些404頁(yè)面地址。按照http協(xié)議規(guī)范,當(dāng)訪問(wèn)一個(gè)存在的頁(yè)面時(shí),服務(wù)器返回200狀態(tài)碼;當(dāng)訪問(wèn)一個(gè)不存在的頁(yè)面時(shí),服務(wù)器會(huì)返回404狀態(tài)碼。但是有些網(wǎng)站處于安全性考慮,有時(shí)候即使訪問(wèn)的是一個(gè)不存在的網(wǎng)頁(yè),也會(huì)返回一個(gè)200狀態(tài)碼(即訪問(wèn)成功),這樣做主要是出于安全性的考慮,目的是可以防止某些惡意爬蟲(chóng)爬取網(wǎng)站數(shù)據(jù),或者防止黑客猜測(cè)網(wǎng)站目錄和文件。既然訪問(wèn)一個(gè)不存在的頁(yè)面服務(wù)器不再返回404狀態(tài)碼,那么就不能再用返回狀態(tài)碼的方法來(lái)判斷該頁(yè)面是否存在。
因此,可以在步驟s360中,獲取針對(duì)該網(wǎng)站的頁(yè)面請(qǐng)求錯(cuò)誤時(shí)所返回的通用頁(yè)面內(nèi)容,并逐個(gè)對(duì)所述頁(yè)面地址集合中的每個(gè)頁(yè)面地址進(jìn)行訪問(wèn),以得到每個(gè)頁(yè)面地址的實(shí)際頁(yè)面內(nèi)容。其中,實(shí)際頁(yè)面內(nèi)容可以包括該實(shí)際頁(yè)面內(nèi)容的第一頁(yè)面代碼。
根據(jù)一個(gè)實(shí)施例,獲取針對(duì)該網(wǎng)站的頁(yè)面請(qǐng)求錯(cuò)誤時(shí)所返回的通用頁(yè)面內(nèi)容的步驟包括:隨機(jī)生成一個(gè)不存在的錯(cuò)誤頁(yè)面地址,并獲取該錯(cuò)誤頁(yè)面地址所對(duì)應(yīng)頁(yè)面內(nèi)容的第二頁(yè)面代碼。這里的主要思想是:由于網(wǎng)站的404頁(yè)面內(nèi)容基本都是一致的,那么可以隨機(jī)生成一個(gè)肯定不存在的頁(yè)面,比如:www.domain.com/aaa/bbb/ccc/dddd/eee.php,并記錄下該頁(yè)面的html代碼作為通用頁(yè)面代碼。對(duì)于之后的url訪問(wèn)請(qǐng)求,如果發(fā)現(xiàn)某個(gè)訪問(wèn)請(qǐng)求頁(yè)面的html代碼和這個(gè)通用頁(yè)面代碼相似度很高,那么就可以判斷該請(qǐng)求所訪問(wèn)的是一個(gè)不存在的頁(yè)面。
另外,基于網(wǎng)站每天的訪問(wèn)量比較大,因此篩選自定義404頁(yè)面的過(guò)程可以通過(guò)自動(dòng)化腳本實(shí)現(xiàn)。具體地,可以通過(guò)自動(dòng)化腳本獲取針對(duì)該網(wǎng)站的頁(yè)面請(qǐng)求錯(cuò)誤時(shí)所返回的通用頁(yè)面內(nèi)容(如通過(guò)自動(dòng)化腳本隨機(jī)生成一個(gè)不存在的頁(yè)面地址),并繼續(xù)使用自動(dòng)化腳本逐個(gè)對(duì)所述頁(yè)面地址集合中的每個(gè)頁(yè)面地址進(jìn)行訪問(wèn),以得到每個(gè)頁(yè)面地址的實(shí)際頁(yè)面內(nèi)容。
其具體實(shí)現(xiàn)代碼如下:
隨后,在步驟s380中,計(jì)算每個(gè)頁(yè)面地址所對(duì)應(yīng)的實(shí)際頁(yè)面內(nèi)容與通用頁(yè)面內(nèi)容的萊文斯坦比,并選擇萊文斯坦比不小于第二閾值的頁(yè)面內(nèi)容對(duì)應(yīng)的頁(yè)面地址作為候選的網(wǎng)站后門(mén)地址。其中,第二閾值可以設(shè)定為75%-90%,進(jìn)一步可以設(shè)定為80%。
這里的萊文斯坦比是一種用于衡量?jī)蓚€(gè)字符串之間相似度的算法,只需要提供兩個(gè)字符串即可得到結(jié)果。頁(yè)面里的文字、字符、標(biāo)點(diǎn)都可以認(rèn)為是字符串的組成部分,而對(duì)于圖片等富媒體內(nèi)容可以不作處理。在步驟s360中得到了每個(gè)頁(yè)面地址的實(shí)際頁(yè)面內(nèi)容和訪問(wèn)錯(cuò)誤時(shí)的異常頁(yè)面內(nèi)容,將這些內(nèi)容認(rèn)為是包含文字、字符和標(biāo)點(diǎn)的一系列字符串,就可以計(jì)算得到這兩個(gè)頁(yè)面內(nèi)容的萊文斯坦比。
根據(jù)一個(gè)實(shí)施例,計(jì)算每個(gè)頁(yè)面地址所對(duì)應(yīng)頁(yè)面的實(shí)際頁(yè)面內(nèi)容與通用頁(yè)面內(nèi)容的萊文斯坦比可以是計(jì)算第一頁(yè)面代碼(代表實(shí)際頁(yè)面內(nèi)容)與第二頁(yè)面代碼(代表通用頁(yè)面內(nèi)容)的萊文斯坦比。
根據(jù)另一個(gè)實(shí)施例,還可以進(jìn)一步選擇萊文斯坦比不小于第二閾值、且返回狀態(tài)碼為200的頁(yè)面內(nèi)容所對(duì)應(yīng)的頁(yè)面地址作為候選的網(wǎng)站后門(mén)地址。
圖4示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的網(wǎng)站后門(mén)檢測(cè)裝置400的結(jié)構(gòu)圖。如圖4所示,裝置400包括記錄獲取模塊420,地址獲取模塊440、內(nèi)容獲取模塊460和后門(mén)確定模塊480。
記錄獲取模塊420適于獲取網(wǎng)絡(luò)防火墻所產(chǎn)生的、與針對(duì)該網(wǎng)站的訪問(wèn)相應(yīng)的日志文件,并從中篩選出針對(duì)該網(wǎng)站的動(dòng)態(tài)頁(yè)面的訪問(wèn)記錄。根據(jù)一個(gè)實(shí)施例,日志文件為被防火墻攔截的用戶請(qǐng)求而產(chǎn)生的訪問(wèn)日志集合。
地址獲取模塊440適于從所篩選出的訪問(wèn)記錄中進(jìn)一步篩選出訪問(wèn)次數(shù)小于第一閾值的ip地址,以及該ip地址所請(qǐng)求過(guò)的動(dòng)態(tài)頁(yè)面的頁(yè)面地址集合。其中,地址獲取模塊440在這步操作之前,還適于將訪問(wèn)記錄中的ip地址按照訪問(wèn)次數(shù)進(jìn)行排序。第一閾值可以為8-11,或者為預(yù)設(shè)時(shí)段內(nèi)ip地址的平均訪問(wèn)次數(shù)
內(nèi)容獲取模塊460適于獲取針對(duì)該網(wǎng)站的頁(yè)面請(qǐng)求錯(cuò)誤時(shí)所返回的通用頁(yè)面內(nèi)容,并逐個(gè)對(duì)頁(yè)面地址集合中的每個(gè)頁(yè)面地址進(jìn)行訪問(wèn),以得到每個(gè)頁(yè)面地址的實(shí)際頁(yè)面內(nèi)容。
根據(jù)一個(gè)實(shí)施例,實(shí)際頁(yè)面內(nèi)容包括該實(shí)際頁(yè)面內(nèi)容的第一頁(yè)面代碼。內(nèi)容獲取模塊460適于隨機(jī)生成一個(gè)不存在的錯(cuò)誤頁(yè)面地址,并獲取該錯(cuò)誤頁(yè)面地址所對(duì)應(yīng)頁(yè)面內(nèi)容的第二頁(yè)面代碼。
后門(mén)確定模塊480適于計(jì)算每個(gè)頁(yè)面地址所對(duì)應(yīng)的實(shí)際頁(yè)面內(nèi)容與通用頁(yè)面內(nèi)容的萊文斯坦比,并選擇萊文斯坦比不小于第二閾值的頁(yè)面內(nèi)容所對(duì)應(yīng)的頁(yè)面地址作為候選的網(wǎng)站后門(mén)頁(yè)面地址。其中,第二閾值為75%-90%;后門(mén)確定模塊480可以計(jì)算實(shí)際頁(yè)面內(nèi)容所對(duì)應(yīng)的第一頁(yè)面代碼與通用頁(yè)面內(nèi)容所對(duì)應(yīng)的第二頁(yè)面代碼之間的萊文斯坦比。
根據(jù)一個(gè)實(shí)施例,后門(mén)確定模塊480還可以獲取對(duì)候選的網(wǎng)站后門(mén)地址進(jìn)行請(qǐng)求后所返回的頁(yè)面內(nèi)容,并根據(jù)所返回的頁(yè)面內(nèi)容確定該候選的網(wǎng)站后門(mén)地址中是否包括網(wǎng)站后門(mén)。
根據(jù)本發(fā)明的技術(shù)方案,在海量攻擊日志中,通過(guò)分析黑客的行為特征,使用了基于ip訪問(wèn)頻率的方法再配合自動(dòng)化識(shí)別404頁(yè)面的方法,實(shí)現(xiàn)了webshell頁(yè)面的快速準(zhǔn)確分析,從而既降低人力審查的成本,又提高了webshell檢測(cè)分析的效率。
a8、如a1所述的方法,其中所述第一閾值為預(yù)設(shè)時(shí)段內(nèi)ip地址的平均訪問(wèn)次數(shù)。
b10、如b9所述的裝置,所述后門(mén)確定模塊還適于:
獲取對(duì)所述候選的網(wǎng)站后門(mén)地址進(jìn)行請(qǐng)求后所返回的頁(yè)面內(nèi)容,并根據(jù)所返回的頁(yè)面內(nèi)容確定該候選的網(wǎng)站后門(mén)地址中是否包括網(wǎng)站后門(mén)。
b11、如b9所述的裝置,其中,所述日志文件為被所述防火墻攔截的日志文件。
b12、如b9所述的裝置,其中,所述地址獲取模塊適于在從所篩選出的訪問(wèn)記錄中進(jìn)一步篩選出訪問(wèn)次數(shù)小于第一閾值的ip地址之前,將所述訪問(wèn)記錄中的ip地址按照訪問(wèn)次數(shù)進(jìn)行排序。
b13、如b9所述的裝置,其中,所述實(shí)際頁(yè)面內(nèi)容包括該實(shí)際頁(yè)面內(nèi)容的第一頁(yè)面代碼;所述內(nèi)容獲取模塊適于隨機(jī)生成一個(gè)不存在的錯(cuò)誤頁(yè)面地址,并獲取該錯(cuò)誤頁(yè)面地址所對(duì)應(yīng)頁(yè)面內(nèi)容的第二頁(yè)面代碼;所述后門(mén)確定模塊適于計(jì)算所述第一頁(yè)面代碼與所述第二頁(yè)面代碼的萊文斯坦比。
b14、如b9-b13中任一項(xiàng)所述的裝置,其中所述后門(mén)確定模塊還適于選擇萊文斯坦比不小于第二閾值、且返回狀態(tài)碼為200的頁(yè)面內(nèi)容所對(duì)應(yīng)的頁(yè)面地址作為候選的網(wǎng)站后門(mén)地址。
b15、如b9所述的裝置,其中所述第一閾值為8-11,所述第二閾值為75%-90%。
b16、如b9所述的裝置,其中所述第一閾值為預(yù)設(shè)時(shí)段內(nèi)ip地址的平均訪問(wèn)次數(shù)。
在此處所提供的說(shuō)明書(shū)中,算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與本發(fā)明的示例一起使用。根據(jù)上面的描述,構(gòu)造這類(lèi)系統(tǒng)所要求的結(jié)構(gòu)是顯而易見(jiàn)的。此外,本發(fā)明也不針對(duì)任何特定編程語(yǔ)言。應(yīng)當(dāng)明白,可以利用各種編程語(yǔ)言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語(yǔ)言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。
在此處所提供的說(shuō)明書(shū)中,說(shuō)明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒(méi)有這些具體細(xì)節(jié)的情況下被實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說(shuō)明書(shū)的理解。
類(lèi)似地,應(yīng)當(dāng)理解,為了精簡(jiǎn)本公開(kāi)并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開(kāi)的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多特征。更確切地說(shuō),如下面的權(quán)利要求書(shū)所反映的那樣,發(fā)明方面在于少于前面公開(kāi)的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式的權(quán)利要求書(shū)由此明確地并入該具體實(shí)施方式,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
本領(lǐng)域那些技術(shù)人員應(yīng)當(dāng)理解在本文所公開(kāi)的示例中的設(shè)備的模塊或單元或組件可以布置在如該實(shí)施例中所描述的設(shè)備中,或者可替換地可以定位在與該示例中的設(shè)備不同的一個(gè)或多個(gè)設(shè)備中。前述示例中的模塊可以組合為一個(gè)模塊或者此外可以分成多個(gè)子模塊。
本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過(guò)程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說(shuō)明書(shū)(包括伴隨的權(quán)利要求、摘要和附圖)中公開(kāi)的所有特征以及如此公開(kāi)的任何方法或者設(shè)備的所有過(guò)程或單元進(jìn)行組合。除非另外明確陳述,本說(shuō)明書(shū)(包括伴隨的權(quán)利要求、摘要和附圖)中公開(kāi)的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來(lái)代替。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書(shū)中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來(lái)使用。
此外,所述實(shí)施例中的一些在此被描述成可以由計(jì)算機(jī)系統(tǒng)的處理器或者由執(zhí)行所述功能的其它裝置實(shí)施的方法或方法元素的組合。因此,具有用于實(shí)施所述方法或方法元素的必要指令的處理器形成用于實(shí)施該方法或方法元素的裝置。此外,裝置實(shí)施例的在此所述的元素是如下裝置的例子:該裝置用于實(shí)施由為了實(shí)施該發(fā)明的目的的元素所執(zhí)行的功能。
如在此所使用的那樣,除非另行規(guī)定,使用序數(shù)詞“第一”、“第二”、“第三”等等來(lái)描述普通對(duì)象僅僅表示涉及類(lèi)似對(duì)象的不同實(shí)例,并且并不意圖暗示這樣被描述的對(duì)象必須具有時(shí)間上、空間上、排序方面或者以任意其它方式的給定順序。
盡管根據(jù)有限數(shù)量的實(shí)施例描述了本發(fā)明,但是受益于上面的描述,本技術(shù)領(lǐng)域內(nèi)的技術(shù)人員明白,在由此描述的本發(fā)明的范圍內(nèi),可以設(shè)想其它實(shí)施例。此外,應(yīng)當(dāng)注意,本說(shuō)明書(shū)中使用的語(yǔ)言主要是為了可讀性和教導(dǎo)的目的而選擇的,而不是為了解釋或者限定本發(fā)明的主題而選擇的。因此,在不偏離所附權(quán)利要求書(shū)的范圍和精神的情況下,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō)許多修改和變更都是顯而易見(jiàn)的。對(duì)于本發(fā)明的范圍,對(duì)本發(fā)明所做的公開(kāi)是說(shuō)明性的,而非限制性的,本發(fā)明的范圍由所附權(quán)利要求書(shū)限定。