亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種Webshell的檢測(cè)方法及裝置與流程

文檔序號(hào):11215689閱讀:1428來(lái)源:國(guó)知局
一種Webshell的檢測(cè)方法及裝置與流程

本申請(qǐng)涉及計(jì)算機(jī)領(lǐng)域,特別涉及一種webshell的檢測(cè)方法及裝置。



背景技術(shù):

webshell俗稱網(wǎng)頁(yè)后門,就是以動(dòng)態(tài)服務(wù)器頁(yè)面(activeserverpage,asp)、超文本預(yù)處理器(hypertextpreprocessor,php)、java服務(wù)器頁(yè)面(javaserverpages,jsp)或者通用網(wǎng)關(guān)接口(commongatewayinterface,cgi)等網(wǎng)頁(yè)文件形式存在的一種命令執(zhí)行環(huán)境。

黑客在入侵了一個(gè)網(wǎng)站后,通過(guò)上傳一個(gè)對(duì)服務(wù)器具有某種操作權(quán)限的webshell程序,比如:執(zhí)行系統(tǒng)命令、刪除web頁(yè)面、修改主頁(yè)等操作。而這個(gè)webshell程序一般是和asp、php、jsp等正常的頁(yè)面程序混在一起的,網(wǎng)站管理人員一般很難發(fā)現(xiàn),黑客從而利用這一特性進(jìn)行長(zhǎng)期操控網(wǎng)站及服務(wù)器。

目前,對(duì)webshell的檢測(cè)通常采用靜態(tài)webshell檢測(cè)和動(dòng)態(tài)webshell檢測(cè)兩種方法:

1、所謂靜態(tài)webshell檢測(cè),主要是對(duì)文件內(nèi)容進(jìn)行檢測(cè),檢測(cè)是否包含webshell特征,如,匹配webshell常用函數(shù)等等。

然而,針對(duì)靜態(tài)檢測(cè)手段,黑客很容易采用以下方法繞過(guò):如代碼加密、代碼混淆等等,因而靜態(tài)代碼檢測(cè)規(guī)則很難發(fā)現(xiàn)各種千奇百怪的webshell代碼,并且靜態(tài)代碼檢測(cè)手段完全依賴于人工規(guī)則、沒(méi)有主動(dòng)識(shí)別、自主學(xué)習(xí)性。因此靜態(tài)檢測(cè)手段會(huì)帶造成大量的漏報(bào)和誤報(bào)。

2、所謂動(dòng)態(tài)webshell檢測(cè),即是利用沙箱技術(shù),將可疑文件放在沙箱中執(zhí)行,根據(jù)可疑文件在沙箱中的運(yùn)行特征來(lái)檢測(cè)。此方案相對(duì)于靜態(tài)代碼檢測(cè)手段可以繞過(guò)代碼加密,但是,大多數(shù)webshell操作都是通過(guò)傳遞參數(shù)來(lái)觸發(fā)的, 因而,如果可疑文件在沙箱中沒(méi)有傳遞正常的參數(shù),是不能觸發(fā)相應(yīng)的webshell操作,因此沙箱也無(wú)法捕獲相應(yīng)特征,從而導(dǎo)致大量漏報(bào)。



技術(shù)實(shí)現(xiàn)要素:

本申請(qǐng)實(shí)施例提供一種webshell的檢測(cè)方法及裝置。用以提高webshell檢測(cè)方案的檢測(cè)精確度。

本申請(qǐng)實(shí)施例提供的具體技術(shù)方案如下:

一種webshell的檢測(cè)方法,包括:

基于系統(tǒng)訪問(wèn)日志,提取出每一個(gè)頁(yè)面的訪問(wèn)路徑和referer(即來(lái)源頁(yè)面信息),以及提取出所有源ip,其中,一個(gè)頁(yè)面的referer表征訪問(wèn)所述一個(gè)頁(yè)面之前訪問(wèn)的上一個(gè)頁(yè)面的訪問(wèn)路徑;

基于各個(gè)頁(yè)面的訪問(wèn)路徑以及referer,篩選出與其他頁(yè)面之間不存在訪問(wèn)鏈接的第一類可疑頁(yè)面,獲得第一類可疑頁(yè)面集合;

基于各個(gè)頁(yè)面的訪問(wèn)路徑以及所有源ip,篩選出被源ip訪問(wèn)的狀態(tài)不符合預(yù)設(shè)的訪問(wèn)條件的第二類可疑頁(yè)面,獲得第二類可疑頁(yè)面集合;

將第一類可疑頁(yè)面集合和第二類可疑頁(yè)面集合的交集中包含的所有頁(yè)面,確定為包含webshell的頁(yè)面。

可選的,基于系統(tǒng)訪問(wèn)日志,提取出每一個(gè)頁(yè)面的訪問(wèn)路徑和referer,包括:

獲得系統(tǒng)訪問(wèn)日志中記錄的各個(gè)頁(yè)面;

從獲得的各個(gè)頁(yè)面中去除靜態(tài)頁(yè)面;

針對(duì)去除靜態(tài)頁(yè)面后的每一個(gè)頁(yè)面的統(tǒng)一資源定位url地址,進(jìn)行參數(shù)去除,提取出每一個(gè)頁(yè)面的訪問(wèn)路徑;

基于系統(tǒng)訪問(wèn)日志中記錄的各個(gè)頁(yè)面的訪問(wèn)鏈接順序,分別確定每一個(gè)頁(yè)面的referer。

可選的,基于各個(gè)頁(yè)面的訪問(wèn)路徑以及referer,篩選出與其他頁(yè)面不存在 訪問(wèn)鏈接的第一類可疑頁(yè)面,包括:

基于各個(gè)頁(yè)面的訪問(wèn)路徑以及referer,繪制表征各個(gè)頁(yè)面之間訪問(wèn)鏈接關(guān)系的有向圖,基于所述有向圖篩選出與其他頁(yè)面之間不存在訪問(wèn)鏈接的孤立頁(yè)面,將所有孤立頁(yè)面作為所述第一類可疑頁(yè)面;

可選的,基于各個(gè)頁(yè)面的訪問(wèn)路徑以及所有源ip,篩選出被源ip訪問(wèn)的狀態(tài)不符合預(yù)設(shè)的訪問(wèn)條件的第二類可疑頁(yè)面,包括:

基于各個(gè)頁(yè)面的訪問(wèn)路徑以及所有源ip,繪制表征各個(gè)源ip和各個(gè)頁(yè)面之間訪問(wèn)關(guān)系的二部圖,基于所述二部圖,篩選出被源ip訪問(wèn)的狀態(tài)不符合預(yù)設(shè)條件的異常頁(yè)面,將所有異常頁(yè)面作為所述第二類可疑頁(yè)面。

可選的,基于所述有向圖篩選出與其他頁(yè)面之間不存在訪問(wèn)鏈接的孤立頁(yè)面,包括:

基于所述有向圖,確定任意一頁(yè)面對(duì)應(yīng)的referer為空時(shí),判定所述任意一頁(yè)面為孤立頁(yè)面;以及,

基于所述有向圖,確定任意一頁(yè)面對(duì)應(yīng)的referer所指向的訪問(wèn)路徑,在訪問(wèn)所述任意一頁(yè)面之前未曾訪問(wèn)時(shí),判定所述任意一頁(yè)面為孤立頁(yè)面。

可選的,基于所述二部圖,篩選出被源ip訪問(wèn)的狀態(tài)不符合預(yù)設(shè)條件的異常頁(yè)面,包括:

基于所述二部圖,確定任意一頁(yè)面關(guān)聯(lián)的源ip的總數(shù)目小于第一預(yù)設(shè)門限,且關(guān)聯(lián)的源ip歸屬的網(wǎng)段的總數(shù)目小于第二預(yù)設(shè)門限時(shí),確定所述任意一頁(yè)面為異常頁(yè)面。

可選的,將第一類可疑頁(yè)面集合和第二類可疑頁(yè)面集合的交集中包含的所有頁(yè)面,確定為包含webshell的頁(yè)面,包括:

將第一類可疑頁(yè)面集合和第二類可疑頁(yè)面集合的交集中包含的所有頁(yè)面,直接確定為包含webshell的頁(yè)面;或者,

依次計(jì)算第一類可疑頁(yè)面集合和第二類可疑頁(yè)面集合的交集中包含的每一個(gè)頁(yè)面,與預(yù)設(shè)的webshell樣本集合的相似度,并將相似度達(dá)到設(shè)定閾值的 頁(yè)面確定為包含webshell的頁(yè)面。

一種webshell的檢測(cè)裝置,包括:

提取單元,用于基于系統(tǒng)訪問(wèn)日志,提取出每一個(gè)頁(yè)面的訪問(wèn)路徑和來(lái)源頁(yè)面信息referer,以及提取出所有源ip,其中,一個(gè)頁(yè)面的referer表征訪問(wèn)所述一個(gè)頁(yè)面之前訪問(wèn)的上一個(gè)頁(yè)面的訪問(wèn)路徑;

第一篩選單元,用于基于各個(gè)頁(yè)面的訪問(wèn)路徑以及referer,篩選出與其他頁(yè)面之間不存在訪問(wèn)鏈接的第一類可疑頁(yè)面,獲得第一類可疑頁(yè)面集合;

第二篩選單元,用于基于各個(gè)頁(yè)面的訪問(wèn)路徑以及所有源ip,篩選出被源ip訪問(wèn)的狀態(tài)不符合預(yù)設(shè)的訪問(wèn)條件的第二類可疑頁(yè)面,獲得第二類可疑頁(yè)面集合;

處理單元,用于將第一類可疑頁(yè)面集合和第二類可疑頁(yè)面集合的交集中包含的所有頁(yè)面,確定為包含webshell的頁(yè)面。

可選的,基于系統(tǒng)訪問(wèn)日志,提取出每一個(gè)頁(yè)面的訪問(wèn)路徑和referer時(shí),所述提取單元用于:

獲得系統(tǒng)訪問(wèn)日志中記錄的各個(gè)頁(yè)面;

從獲得的各個(gè)頁(yè)面中去除靜態(tài)頁(yè)面;

針對(duì)去除靜態(tài)頁(yè)面后的每一個(gè)頁(yè)面的統(tǒng)一資源定位url地址,進(jìn)行參數(shù)去除,提取出每一個(gè)頁(yè)面的訪問(wèn)路徑;

基于系統(tǒng)訪問(wèn)日志中記錄的各個(gè)頁(yè)面的訪問(wèn)鏈接順序,分別確定每一個(gè)頁(yè)面的referer。

可選的,基于各個(gè)頁(yè)面的訪問(wèn)路徑以及referer,篩選出與其他頁(yè)面不存在訪問(wèn)鏈接的第一類可疑頁(yè)面時(shí),所述第一篩選單元用于:

基于各個(gè)頁(yè)面的訪問(wèn)路徑以及referer,繪制表征各個(gè)頁(yè)面之間訪問(wèn)鏈接關(guān)系的有向圖,基于所述有向圖篩選出與其他頁(yè)面之間不存在訪問(wèn)鏈接的孤立頁(yè)面,將所有孤立頁(yè)面作為所述第一類可疑頁(yè)面;

可選的,基于各個(gè)頁(yè)面的訪問(wèn)路徑以及所有源ip,篩選出被源ip訪問(wèn)的 狀態(tài)不符合預(yù)設(shè)的訪問(wèn)條件的第二類可疑頁(yè)面時(shí),所述第二篩選單元用于:

基于各個(gè)頁(yè)面的訪問(wèn)路徑以及所有源ip,繪制表征各個(gè)源ip和各個(gè)頁(yè)面之間訪問(wèn)關(guān)系的二部圖,基于所述二部圖,篩選出被源ip訪問(wèn)的狀態(tài)不符合預(yù)設(shè)條件的異常頁(yè)面,將所有異常頁(yè)面作為所述第二類可疑頁(yè)面。

可選的,基于所述有向圖篩選出與其他頁(yè)面之間不存在訪問(wèn)鏈接的孤立頁(yè)面時(shí),所述第一篩選單元用于,包括:

基于所述有向圖,確定任意一頁(yè)面對(duì)應(yīng)的referer為空時(shí),判定所述任意一頁(yè)面為孤立頁(yè)面;以及,

基于所述有向圖,確定任意一頁(yè)面對(duì)應(yīng)的referer所指向的訪問(wèn)路徑,在訪問(wèn)所述任意一頁(yè)面之前未曾訪問(wèn)時(shí),判定所述任意一頁(yè)面為孤立頁(yè)面。

可選的,基于所述二部圖,篩選出被源ip訪問(wèn)的狀態(tài)不符合預(yù)設(shè)條件的異常頁(yè)面時(shí),所述第二篩選單元用于,包括:

基于所述二部圖,確定任意一頁(yè)面關(guān)聯(lián)的源ip的總數(shù)目小于第一預(yù)設(shè)門限,且關(guān)聯(lián)的源ip歸屬的網(wǎng)段的總數(shù)目小于第二預(yù)設(shè)門限時(shí),確定所述任意一頁(yè)面為異常頁(yè)面。

可選的,將第一類可疑頁(yè)面集合和第二類可疑頁(yè)面集合的交集中包含的所有頁(yè)面,確定為包含webshell的頁(yè)面時(shí),所述處理單元用于:

將第一類可疑頁(yè)面集合和第二類可疑頁(yè)面集合的交集中包含的所有頁(yè)面,直接確定為包含webshell的頁(yè)面;或者,

依次計(jì)算第一類可疑頁(yè)面集合和第二類可疑頁(yè)面集合的交集中包含的每一個(gè)頁(yè)面,與預(yù)設(shè)的webshell樣本集合的相似度,并將相似度達(dá)到設(shè)定閾值的頁(yè)面確定為包含webshell的頁(yè)面。

本申請(qǐng)實(shí)施例中,基于系統(tǒng)訪問(wèn)日志表征的各個(gè)頁(yè)面的訪問(wèn)關(guān)系建立圖模型,篩選出與其他頁(yè)面之間不存在訪問(wèn)鏈接的第一類可疑頁(yè)面集合,以及篩選出被源ip訪問(wèn)的狀態(tài)不符合預(yù)設(shè)的訪問(wèn)條件的第二類可疑頁(yè)面,再基于第一類可疑頁(yè)面集合和第二類可疑頁(yè)面集合的交集中包含的所有頁(yè)面,進(jìn)行 webshell告警。這樣,可以將各個(gè)頁(yè)面的訪問(wèn)狀態(tài)通過(guò)圖模型進(jìn)行精準(zhǔn)繪制,令可疑頁(yè)面的特征在圖模型中被更為直觀地展現(xiàn)出來(lái),從而能夠精準(zhǔn)地篩選出webshell所在的頁(yè)面,這不但提高了webshell的檢測(cè)精確度,降低了漏報(bào)率和誤報(bào)率,同時(shí),也降低算法復(fù)雜度,提高了檢測(cè)效率。

附圖說(shuō)明

圖1為本申請(qǐng)實(shí)施例中有向圖示意圖;

圖2為本申請(qǐng)實(shí)施例中二部分圖示意圖;

圖3為本申請(qǐng)實(shí)施例中webshell檢測(cè)流程圖;

圖4為本申請(qǐng)實(shí)施例中檢測(cè)裝置功能結(jié)構(gòu)示意圖。

具體實(shí)施方式

為了提高webshell檢測(cè)方案的檢測(cè)精確度,本申請(qǐng)實(shí)施例中,在系統(tǒng)訪問(wèn)日志的基礎(chǔ)上,基于各個(gè)頁(yè)面的訪問(wèn)關(guān)系建立圖模型,再基于圖模型,篩選出訪問(wèn)情況異常的可疑頁(yè)面,將這些可疑頁(yè)面作為webshell進(jìn)行告警,從而可以實(shí)現(xiàn)主動(dòng)學(xué)習(xí),無(wú)需人工干預(yù)。

下面結(jié)合附圖對(duì)本申請(qǐng)優(yōu)選的實(shí)施方式進(jìn)行詳細(xì)說(shuō)明。

首先,需要對(duì)本申請(qǐng)中涉及的一些基本概念進(jìn)行介紹。

本申請(qǐng)實(shí)施例中,需要基于各個(gè)頁(yè)面建立圖模型,所謂圖(graph)是一種較線性表和樹(shù)更為復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。在線性表中,數(shù)據(jù)元素之間僅有線性關(guān)系,即每個(gè)數(shù)據(jù)元素只有一個(gè)直接前驅(qū)和一個(gè)直接后繼;在樹(shù)形結(jié)構(gòu)中,數(shù)據(jù)元素之間有著明顯的層次關(guān)系,雖然每一層上的數(shù)據(jù)元素可能和下一層中多個(gè)元素相關(guān),但只能和上一層中一個(gè)元素相關(guān);而在圖形結(jié)構(gòu)中,結(jié)點(diǎn)之間的關(guān)系可以是任意的,任意兩個(gè)數(shù)據(jù)元素之間都可能相關(guān)。圖g由兩個(gè)集合v和e組成,記為:g=(v,e),其中,v是頂點(diǎn)的有窮非空集合,e是v中頂點(diǎn)偶對(duì)(稱為邊)的有窮集。通常,也將圖g的頂點(diǎn)集和邊集分別記為v(g)和e(g)。 e(g)可以是空集。若e(g)為空,則圖g只有頂點(diǎn)而沒(méi)有邊。

圖形結(jié)構(gòu)有許多種實(shí)現(xiàn)方式,本申請(qǐng)實(shí)施例中,主要使用到了有向圖和二部圖。

所謂有向圖,直觀來(lái)說(shuō),若圖中的每條邊都是有方向的,則稱為有向圖。有向圖中的邊是由兩個(gè)頂點(diǎn)組成的有序?qū)?,有序?qū)νǔS眉饫ㄌ?hào)表示,如<vi,vj>表示一條有向邊,其中vi是邊的始點(diǎn),vj是邊的終點(diǎn)。<vi,vj>和<vj,vi>代表兩條不同的有向邊。具體舉例如圖1所示。

所謂二部圖,二部圖又稱作二分圖,是圖論中的一種特殊模型。設(shè)g=(v,e)是一個(gè)無(wú)向圖,如果頂點(diǎn)v可分割為兩個(gè)互不相交的子集(a)和子集(b),并且圖中的每條邊(i,j)所關(guān)聯(lián)的兩個(gè)頂點(diǎn)i和j分別屬于這兩個(gè)不同的頂點(diǎn)集(iina,jinb),則稱圖g為一個(gè)二部圖。具體舉例如圖2所示。

根據(jù)安全經(jīng)驗(yàn),webshell在訪問(wèn)上有以下特征:1、頁(yè)面屬于孤立頁(yè)面,2、由少量的源ip發(fā)起訪問(wèn)。

基于特征1,可以將某個(gè)站點(diǎn)下的每個(gè)頁(yè)面都看作一個(gè)點(diǎn),包括webshell與正常頁(yè)面,所有點(diǎn)組成一張有向圖,如,頁(yè)面a連接到頁(yè)面b,也就表示在這個(gè)圖中存在一條邊是a->b,在整個(gè)站點(diǎn)下,一定不會(huì)存在某個(gè)頁(yè)面鏈接到webshell的。因?yàn)闉榱吮WCwebshell自身的隱藏性,黑客往往都是直接訪問(wèn)webshell,因此,webshell在有向圖中一定是一個(gè)孤立節(jié)點(diǎn),即一個(gè)孤立頁(yè)面。

基于特征2,通常情況下,webshell訪問(wèn)者單一,因此可以針對(duì)webshell的訪問(wèn)者,也就是源ip維度來(lái)分析,一般只有攻擊者自己才會(huì)訪問(wèn)webshell,而攻擊者在網(wǎng)絡(luò)上的源ip一般波動(dòng)不大,因此,將源ip與頁(yè)面的訪問(wèn)路徑的之間關(guān)系的可以看成一張二部圖,在二部圖中,webshell的入度數(shù)目一定比較小。

基于上述實(shí)現(xiàn)原理,參閱圖3所示,本申請(qǐng)實(shí)施例中,進(jìn)行webshell檢測(cè)的詳細(xì)流程如下:

步驟300:獲取系統(tǒng)訪問(wèn)日志,獲得系統(tǒng)訪問(wèn)日志中記錄的各個(gè)頁(yè)面。

具體的,可以從服務(wù)器側(cè)獲取某一網(wǎng)站全部的系統(tǒng)訪問(wèn)日志,系統(tǒng)訪問(wèn)日志中記錄了該網(wǎng)站中各個(gè)頁(yè)面的訪問(wèn)情況,如,訪問(wèn)時(shí)間,訪問(wèn)者,訪問(wèn)來(lái)源等等。

步驟301:從獲得的各個(gè)頁(yè)面中去除靜態(tài)頁(yè)面。

這是因?yàn)椋瑆ebshell通常為動(dòng)態(tài)頁(yè)面,因此,為了有效降低計(jì)算量,可以預(yù)先去除系統(tǒng)訪問(wèn)日志中記錄的靜態(tài)頁(yè)面。

當(dāng)然,若靜態(tài)頁(yè)面的數(shù)量較少,則也可以不去除靜態(tài)頁(yè)面,在此不再贅述。

步驟302:針對(duì)去除靜態(tài)頁(yè)面后的各個(gè)頁(yè)面的url地址,進(jìn)行參數(shù)去除,提取出各個(gè)頁(yè)面的訪問(wèn)路徑。

具體的,每個(gè)頁(yè)面的url地址中均會(huì)包含有多種參數(shù),這些參數(shù)對(duì)于繪制圖模型沒(méi)有用處,并且會(huì)降低圖模型的處理效率,因此,需要預(yù)先去除各個(gè)頁(yè)面url地址中的各類參數(shù),從而提取出各個(gè)頁(yè)面的訪問(wèn)路徑,記為path。

例如,存在url:http://www.example/list.php?type=news&limit=10,根據(jù)http協(xié)議規(guī)定,存在兩個(gè)參數(shù):type=news和limit=10,去掉參數(shù)后的訪問(wèn)路徑則為:http://www.example/list.php。

步驟303:基于系統(tǒng)訪問(wèn)日志中記錄的各個(gè)頁(yè)面的訪問(wèn)鏈接順序,分別確定每一個(gè)頁(yè)面的referer,以及確定所有的源ip。

所謂的referer,即是在訪問(wèn)一個(gè)頁(yè)面之前所訪問(wèn)的上一個(gè)頁(yè)面的訪問(wèn)路徑,大部分的頁(yè)面都有對(duì)應(yīng)的referer,根據(jù)系統(tǒng)訪問(wèn)日志中記錄的頁(yè)面訪問(wèn)順序,即可以獲知每一個(gè)頁(yè)面的referer。

例如,用戶先訪問(wèn)頁(yè)面1,再通過(guò)頁(yè)面1鏈接至頁(yè)面2,以及繼續(xù)通過(guò)頁(yè)面2鏈接至頁(yè)面3,頁(yè)面1的訪問(wèn)路徑為path1,頁(yè)面2的訪問(wèn)路徑為path2,那么,path1即是頁(yè)面2的referer,path2即是頁(yè)面3的referer。

而源ip,即是指訪問(wèn)發(fā)起者,根據(jù)系統(tǒng)訪問(wèn)日志的記錄,可以獲知源ip的數(shù)量,以及源ip歸屬的網(wǎng)段。

步驟304:劃分會(huì)話周期,即劃分session。

所謂session,即是所統(tǒng)計(jì)的時(shí)間范圍,因?yàn)橄到y(tǒng)訪問(wèn)日志中可能記錄了很長(zhǎng)一段時(shí)間內(nèi)的訪問(wèn)信息,因此,為了有針對(duì)性的繪制圖模型,需要確定會(huì)話周期。

例如,可以根據(jù)日志流量進(jìn)行會(huì)話周期的劃分,將每一個(gè)源ip在同一個(gè)網(wǎng)站下30分鐘的訪問(wèn)劃分為一個(gè)會(huì)話周期。

步驟305:基于各個(gè)頁(yè)面的訪問(wèn)路徑以及referer,繪制表征各個(gè)頁(yè)面之間訪問(wèn)鏈接關(guān)系的有向圖。

例如,參閱圖1所示,可以整理同一個(gè)會(huì)話周期內(nèi)的各個(gè)網(wǎng)站的referer與path的對(duì)應(yīng)關(guān)系,將各個(gè)頁(yè)面繪制為節(jié)點(diǎn),將各個(gè)頁(yè)面之間的訪問(wèn)順序繪制為有向邊,從而形成如圖1所示的有向圖。

步驟306:基于上述有向圖篩選出與其他頁(yè)面之間不存在訪問(wèn)鏈接的孤立頁(yè)面,將所有孤立頁(yè)面作為第一類可疑頁(yè)面集合。

例如,參閱圖1所示,節(jié)點(diǎn)是否異常,由其所處的環(huán)境中的其他節(jié)點(diǎn)決定,如果大量節(jié)點(diǎn)指向某個(gè)節(jié)點(diǎn)x,也就是節(jié)點(diǎn)x的入度比較大,那么節(jié)點(diǎn)x對(duì)應(yīng)的頁(yè)面是webshell的概率就比較小,相反,如果節(jié)點(diǎn)x在圖1中是一個(gè)孤立節(jié)點(diǎn)(入度為0),那么,節(jié)點(diǎn)x就很可能是webshell。

具體的,仍以節(jié)點(diǎn)x為例,基于上述有向圖,在一個(gè)會(huì)話周期內(nèi),確定節(jié)點(diǎn)x對(duì)應(yīng)的referer為空時(shí),判定節(jié)點(diǎn)x對(duì)應(yīng)的頁(yè)面為孤立頁(yè)面;以及,基于上述有向圖,確定節(jié)點(diǎn)x對(duì)應(yīng)的referer所指向的訪問(wèn)路徑,在訪問(wèn)節(jié)點(diǎn)x之前未曾訪問(wèn)時(shí)(具體訪問(wèn)歷史記錄可依據(jù)系統(tǒng)訪問(wèn)日志查詢),確定referer是偽造的,并判定節(jié)點(diǎn)x對(duì)應(yīng)的頁(yè)面為孤立頁(yè)面。

實(shí)際應(yīng)用中,webshell一定為孤立頁(yè)面,但是孤立頁(yè)面卻并不一定都是webshell。這是因?yàn)椋簩?duì)于如robots.txt、corssdomain.xml、restapi等等鏈接而言,這些鏈接所指向的節(jié)點(diǎn)為正常頁(yè)面,但這些節(jié)點(diǎn)卻又無(wú)其他節(jié)點(diǎn)指向,因而也符合孤立頁(yè)面的特征,但卻不是webshell。因此,為了避免誤判,還需要繼續(xù)執(zhí)行后續(xù)操作。

步驟307:基于各個(gè)頁(yè)面的訪問(wèn)路徑以及所有源ip,繪制表征各個(gè)源ip和各個(gè)頁(yè)面之間訪問(wèn)關(guān)系的二部圖。

例如:參閱圖1所示,根據(jù)系統(tǒng)訪問(wèn)日志的記錄,可以獲知各個(gè)源ip最終指向了哪一個(gè)訪問(wèn)路徑,從而形成如圖1所示的二部圖。

當(dāng)然,繪制二部圖之前需要對(duì)源ip進(jìn)行去重處理,在此不再贅述。

步驟308:基于上述二部圖,篩選出被源ip訪問(wèn)的狀態(tài)不符合預(yù)設(shè)條件的異常頁(yè)面,將所有異常頁(yè)面作為第二類可疑頁(yè)面集合。

通常情況下,一個(gè)異常節(jié)點(diǎn),大多數(shù)正常用戶是不會(huì)去訪問(wèn)的,只有少量的攻擊者會(huì)去訪問(wèn),因此,基于源ip與頁(yè)面的path之間的訪問(wèn)關(guān)系繪制如圖2所示二部圖,可以挑選出入度較少的節(jié)點(diǎn),入度越少說(shuō)明頁(yè)面被訪問(wèn)的次數(shù)越少,那么頁(yè)面是webshell的概率就越高。

具體的,步驟308中所描述的被源ip訪問(wèn)的狀態(tài)不符合預(yù)設(shè)條件,即是指“節(jié)點(diǎn)入度較少”,而“節(jié)點(diǎn)入度較少”則可以從以下兩個(gè)角度描述(以節(jié)點(diǎn)x為例):

1)節(jié)點(diǎn)x關(guān)聯(lián)的源ip的總數(shù)目小于第一預(yù)設(shè)門限。

例如,與節(jié)點(diǎn)x關(guān)聯(lián)的源ip的總數(shù)目小于20個(gè)。

2)節(jié)點(diǎn)x關(guān)聯(lián)的源ip歸屬的網(wǎng)段的總數(shù)目小于第二預(yù)設(shè)門限。

例如,與節(jié)點(diǎn)x關(guān)聯(lián)的源ip歸屬的網(wǎng)段的總數(shù)目小于5個(gè)。

上述兩個(gè)條件必須同時(shí)滿足,才能夠符合“節(jié)點(diǎn)入度較少”這一預(yù)設(shè)條件,只滿足其中之一的節(jié)點(diǎn)對(duì)應(yīng)的頁(yè)面并不被視為異常頁(yè)面。

步驟309:將基于第一類可疑頁(yè)面集合和第二類可疑頁(yè)面集合的交集中包含的所有頁(yè)面,確定為包含webshell的頁(yè)面。

具體的,步驟309可以采用但不限于以下兩種實(shí)現(xiàn)方式:

第一種方式為:將第一類可疑頁(yè)面集合和第二類可疑頁(yè)面集合的交集中包含的所有頁(yè)面,直接確定為包含webshell的頁(yè)面。。

通常情況下,在有向圖和二部圖中均可疑的節(jié)點(diǎn),在很大概率上會(huì)出現(xiàn)異 常,此時(shí),可以直接將有向圖和二部圖的交集中的所有節(jié)點(diǎn)對(duì)應(yīng)的頁(yè)面確定為包含webshell的頁(yè)面,進(jìn)一步地,可以進(jìn)行告警,這樣,可以在誤報(bào)率處于合理范圍內(nèi)時(shí),有效提高處理效率。

第二種方式為:依次計(jì)算第一類可疑頁(yè)面集合和第二類可疑頁(yè)面集合的交集中包含的每一個(gè)頁(yè)面,與預(yù)設(shè)的webshell樣本集合的相似度,并將相似度達(dá)到設(shè)定閾值的頁(yè)面確定為包含webshell的頁(yè)面。

采用第二種方式,主要是為了提高webshell檢測(cè)精準(zhǔn)度,因此,需要將有向圖和二部圖的交集中的所有節(jié)點(diǎn)對(duì)應(yīng)的頁(yè)面,依次與webshell樣本集合進(jìn)行相似度比較,任意一個(gè)頁(yè)面與任意一個(gè)webshell樣本的相似度達(dá)到設(shè)定閾值,即可以確定出現(xiàn)包含webshell的頁(yè)面,進(jìn)一步地,可以進(jìn)行告警。

基于上述實(shí)施例,參閱圖4所示,本申請(qǐng)實(shí)施例中,檢測(cè)裝置至少包括提取單元40、第一篩選單元41、第二篩選單元42和處理單元43,其中,

提取單元40,用于基于系統(tǒng)訪問(wèn)日志,提取出每一個(gè)頁(yè)面的訪問(wèn)路徑和來(lái)源頁(yè)面信息referer,以及提取出所有源ip,其中,一個(gè)頁(yè)面的referer表征訪問(wèn)所述一個(gè)頁(yè)面之前訪問(wèn)的上一個(gè)頁(yè)面的訪問(wèn)路徑;

第一篩選單元41,用于基于各個(gè)頁(yè)面的訪問(wèn)路徑以及referer,篩選出與其他頁(yè)面之間不存在訪問(wèn)鏈接的第一類可疑頁(yè)面,獲得第一類可疑頁(yè)面集合;

第二篩選單元42,用于基于各個(gè)頁(yè)面的訪問(wèn)路徑以及所有源ip,篩選出被源ip訪問(wèn)的狀態(tài)不符合預(yù)設(shè)的訪問(wèn)條件的第二類可疑頁(yè)面,獲得第二類可疑頁(yè)面集合;

處理單元43,用于將基于第一類可疑頁(yè)面集合和第二類可疑頁(yè)面集合的交集中包含的所有頁(yè)面,確定為包含webshell的頁(yè)面。

可選的,基于系統(tǒng)訪問(wèn)日志,提取出每一個(gè)頁(yè)面的訪問(wèn)路徑和referer時(shí),提取單元40用于:

獲得系統(tǒng)訪問(wèn)日志中記錄的各個(gè)頁(yè)面;

從獲得的各個(gè)頁(yè)面中去除靜態(tài)頁(yè)面;

針對(duì)去除靜態(tài)頁(yè)面后的每一個(gè)頁(yè)面的統(tǒng)一資源定位url地址,進(jìn)行參數(shù)去除,提取出每一個(gè)頁(yè)面的訪問(wèn)路徑;

基于系統(tǒng)訪問(wèn)日志中記錄的各個(gè)頁(yè)面的訪問(wèn)鏈接順序,分別確定每一個(gè)頁(yè)面的referer。

可選的,基于各個(gè)頁(yè)面的訪問(wèn)路徑以及referer,篩選出與其他頁(yè)面不存在訪問(wèn)鏈接的第一類可疑頁(yè)面時(shí),第一篩選單元41用于:

基于各個(gè)頁(yè)面的訪問(wèn)路徑以及referer,繪制表征各個(gè)頁(yè)面之間訪問(wèn)鏈接關(guān)系的有向圖,基于所述有向圖篩選出與其他頁(yè)面之間不存在訪問(wèn)鏈接的孤立頁(yè)面,將所有孤立頁(yè)面作為所述第一類可疑頁(yè)面;

基于各個(gè)頁(yè)面的訪問(wèn)路徑以及所有源ip,篩選出被源ip訪問(wèn)的狀態(tài)不符合預(yù)設(shè)的訪問(wèn)條件的第二類可疑頁(yè)面時(shí),第二篩選單元42用于:

基于各個(gè)頁(yè)面的訪問(wèn)路徑以及所有源ip,繪制表征各個(gè)源ip和各個(gè)頁(yè)面之間訪問(wèn)關(guān)系的二部圖,基于所述二部圖,篩選出被源ip訪問(wèn)的狀態(tài)不符合預(yù)設(shè)條件的異常頁(yè)面,將所有異常頁(yè)面作為所述第二類可疑頁(yè)面。

可選的,基于所述有向圖篩選出與其他頁(yè)面之間不存在訪問(wèn)鏈接的孤立頁(yè)面時(shí),第一篩選單元41用于,包括:

基于所述有向圖,確定任意一頁(yè)面對(duì)應(yīng)的referer為空時(shí),判定所述任意一頁(yè)面為孤立頁(yè)面;以及,

基于所述有向圖,確定任意一頁(yè)面對(duì)應(yīng)的referer所指向的訪問(wèn)路徑,在訪問(wèn)所述任意一頁(yè)面之前未曾訪問(wèn)時(shí),判定所述任意一頁(yè)面為孤立頁(yè)面。

可選的,基于所述二部圖,篩選出被源ip訪問(wèn)的狀態(tài)不符合預(yù)設(shè)條件的異常頁(yè)面時(shí),第二篩選單元42用于,包括:

基于所述二部圖,確定任意一頁(yè)面關(guān)聯(lián)的源ip的總數(shù)目小于第一預(yù)設(shè)門限,且關(guān)聯(lián)的源ip歸屬的網(wǎng)段的總數(shù)目小于第二預(yù)設(shè)門限時(shí),確定所述任意一頁(yè)面為異常頁(yè)面。

可選的,將第一類可疑頁(yè)面集合和第二類可疑頁(yè)面集合的交集中包含的所 有頁(yè)面,確定為包含webshell的頁(yè)面時(shí),處理單元43用于:

將第一類可疑頁(yè)面集合和第二類可疑頁(yè)面集合的交集中包含的所有頁(yè)面,直接確定為包含webshell的頁(yè)面;或者,

依次計(jì)算第一類可疑頁(yè)面集合和第二類可疑頁(yè)面集合的交集中包含的每一個(gè)頁(yè)面,與預(yù)設(shè)的webshell樣本集合的相似度,并將相似度達(dá)到設(shè)定閾值的頁(yè)面確定為包含webshell的頁(yè)面。

綜上所述,本申請(qǐng)實(shí)施例中,基于系統(tǒng)訪問(wèn)日志表征的各個(gè)頁(yè)面的訪問(wèn)關(guān)系建立圖模型,篩選出與其他頁(yè)面之間不存在訪問(wèn)鏈接的第一類可疑頁(yè)面集合,以及篩選出被源ip訪問(wèn)的狀態(tài)不符合預(yù)設(shè)的訪問(wèn)條件的第二類可疑頁(yè)面,再將基于第一類可疑頁(yè)面集合和第二類可疑頁(yè)面集合的交集中包含的所有頁(yè)面,確定為包含webshell的頁(yè)面。這樣,可以將各個(gè)頁(yè)面的訪問(wèn)狀態(tài)通過(guò)圖模型進(jìn)行精準(zhǔn)繪制,令可疑頁(yè)面的特征在圖模型中被更為直觀地展現(xiàn)出來(lái),從而能夠精準(zhǔn)地篩選出webshell所在的頁(yè)面,這不但提高了webshell的檢測(cè)精確度,降低了漏報(bào)率和誤報(bào)率,同時(shí),也降低算法復(fù)雜度,提高了檢測(cè)效率。

進(jìn)一步地,本申請(qǐng)實(shí)施例提供的技術(shù)方案可以實(shí)現(xiàn)主動(dòng)學(xué)習(xí),無(wú)需人工干預(yù),大大降低了運(yùn)維成本。

本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請(qǐng)的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本申請(qǐng)可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請(qǐng)可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、cd-rom、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。

本申請(qǐng)是參照根據(jù)本申請(qǐng)實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來(lái)描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過(guò)計(jì)算 機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。

這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。

這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。

盡管已描述了本申請(qǐng)的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對(duì)這些實(shí)施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本申請(qǐng)范圍的所有變更和修改。

顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本申請(qǐng)實(shí)施例進(jìn)行各種改動(dòng)和變型而不脫離本申請(qǐng)實(shí)施例的精神和范圍。這樣,倘若本申請(qǐng)實(shí)施例的這些修改和變型屬于本申請(qǐng)權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本申請(qǐng)也意圖包含這些改動(dòng)和變型在內(nèi)。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1