本發(fā)明是關(guān)于web服務(wù)器主機或云環(huán)境中虛擬web服務(wù)器主機安全防護管理技術(shù)領(lǐng)域,特別涉及一種基于webshell攻擊的檢測和防護方法及系統(tǒng)。
背景技術(shù):
隨著網(wǎng)絡(luò)的迅速發(fā)展,企業(yè)內(nèi)部網(wǎng)絡(luò)面臨著巨大的挑戰(zhàn),內(nèi)部信息泄露問題也日益嚴(yán)重。大多數(shù)的計算機安全統(tǒng)計數(shù)字表明,大部分發(fā)起的攻擊都來自于網(wǎng)絡(luò)內(nèi)部,因此保證內(nèi)網(wǎng)的主機安全對防止攻擊具有十分重要的意義。
主機目前所面臨的安全問題大致可以分為:主機未限制使用外設(shè)接入端口、用戶訪問權(quán)限未按相應(yīng)級別定義、非法用戶進入主機系統(tǒng)、主機用戶訪問惡意鏈接、非法停止重要或關(guān)鍵主機進程、非法啟動惡意性進程等。
針對web服務(wù)器主機,入侵者通常會采用webshell來控制服務(wù)器,非法停止重要或關(guān)鍵主機進程、非法啟動惡意性進程,達到控制網(wǎng)站服務(wù)器的目的。webshell工作原理:“web”的含義是顯然需要服務(wù)器開放web服務(wù),“shell”的含義是取得對服務(wù)器某種程度上操作權(quán)限。由于web服務(wù)器主機開放web服務(wù),入侵者通常會將asp、php、jsp或者cgi等網(wǎng)頁后門文件與正常的網(wǎng)頁文件混在web服務(wù)器主機的web服務(wù)目錄下,然后就可以使用瀏覽器來訪問這些后門文件,得到一個命令執(zhí)行環(huán)境,從而非法停止重要或關(guān)鍵主機進程、非法啟動惡意性進程,達到控制網(wǎng)站服務(wù)器的目的。
目前,解決webshell的技術(shù)防范方法大致如下:1、給主機服務(wù)器配置最小的權(quán)限。比如,可寫目錄不給執(zhí)行權(quán)限,有執(zhí)行權(quán)限的目錄不給寫權(quán)限等;2、對文件內(nèi)容進行檢測;3、對https協(xié)議內(nèi)容進行特征匹配。方法1可能會與網(wǎng)頁業(yè)務(wù)實現(xiàn)產(chǎn)生沖突;方法2、方法3的缺點是會給主機的運行效率造成一定的影響,且存在誤告警或漏報的情況。
技術(shù)實現(xiàn)要素:
本發(fā)明的主要目的在于克服現(xiàn)有技術(shù)中的不足,提供一種智能高效、低誤報率的基于webshell攻擊的檢測和防護方法及系統(tǒng)。為解決上述技術(shù)問題,本發(fā)明的解決方案是:
提供一種基于webshell攻擊的檢測和防護方法,用于利用檢測防護系統(tǒng)防范針對web服務(wù)器主機的webshell攻擊,所述基于webshell攻擊的檢測和防護方法包括主機行為學(xué)習(xí)過程、主機行為判斷過程;
所述主機行為學(xué)習(xí)過程包括下述步驟:
(1)web服務(wù)器主機處理web請求:web服務(wù)器主機接收來自各個客戶端的web請求,web服務(wù)器主機的內(nèi)核(這里的內(nèi)核是web服務(wù)器主機的操作系統(tǒng)內(nèi)核)啟動進程處理web請求信息,并分析處理web請求的進程行為;
(2)收集web服務(wù)器主機行為:檢測防護系統(tǒng)的內(nèi)核對步驟(1)傳輸過來的web請求的進程行為信息進行收集,并將收集到的信息發(fā)送給檢測防護系統(tǒng)的應(yīng)用層;
(3)接收web服務(wù)器主機行為:檢測防護系統(tǒng)的應(yīng)用層接收步驟(2)傳輸過來的信息并進行提取,總結(jié)出web服務(wù)器主機行為:父進程名稱、子進程名稱;
(4)學(xué)習(xí)web服務(wù)器主機行為:檢測防護系統(tǒng)的應(yīng)用層在一個學(xué)習(xí)周期內(nèi)學(xué)習(xí)web服務(wù)器主機的行為,即記錄步驟(3)總結(jié)的web服務(wù)器主機行為并保存至檢測防護系統(tǒng)的數(shù)據(jù)庫中;
(5)確認(rèn)web服務(wù)器主機行為基線:步驟(4)結(jié)束后,檢測防護系統(tǒng)的數(shù)據(jù)庫中形成web服務(wù)器主機行為列表,且檢測防護系統(tǒng)的應(yīng)用層管理者(檢測防護系統(tǒng)的應(yīng)用層是b/s結(jié)構(gòu),因此可以配置管理員)能對web服務(wù)器主機行為列表進行人工校對、調(diào)整(人工校對、調(diào)整是指核對主機行為白名單中是否存在異常行為,并將異常行為從主機行為白名單中刪除,對于未列入行為基線白名單的正常行為,即誤報或誤阻斷的主機行為,人工加入主機行為白名單中),最后形成web服務(wù)器主機的行為基線;
所述行為基線是主機行為白名單,包括父進程名稱、子進程名稱;
(6)發(fā)送web服務(wù)器主機行為基線:步驟(5)結(jié)束后,將檢測防護系統(tǒng)的應(yīng)用層形成的行為基線文件,發(fā)回給檢測防護系統(tǒng)的內(nèi)核;
所述主機行為判斷過程包括下述步驟:
(7)檢測可疑訪問行為:檢測防護系統(tǒng)的內(nèi)核接收行為基線,與web服務(wù)器主機處理客戶端web請求的進程行為進行比對,如果該客戶端web請求的進程行為,與行為基線中的進程不匹配,即判斷該主機行為可能是webshell攻擊,進行告警或阻斷。
在本發(fā)明中,所述步驟(4)中,檢測防護系統(tǒng)的應(yīng)用層學(xué)習(xí)到的web服務(wù)器主機的行為,是web服務(wù)的調(diào)用關(guān)系。
在本發(fā)明中,當(dāng)web服務(wù)器主機的主機系統(tǒng)業(yè)務(wù)發(fā)生變更時,能夠重新進行主機行為學(xué)習(xí)過程,形成適用的行為基線。
在本發(fā)明中,所述行為基線,即主機行為白名單,能夠進行人工調(diào)整。
提供用于所述基于webshell攻擊的檢測和防護方法的檢測防護系統(tǒng),包括內(nèi)核(內(nèi)核驅(qū)動模塊)、應(yīng)用層(界面應(yīng)用系統(tǒng))、數(shù)據(jù)庫;
所述內(nèi)核是對操作系統(tǒng)內(nèi)核進行二次開發(fā)的驅(qū)動程序,用于搜集主機行為、匹配行為基線、阻斷主機行為;
所述應(yīng)用層用于接收、展示、學(xué)習(xí)內(nèi)核收集到的主機行為,總結(jié)主機行為形成行為基線,調(diào)整行為基線;且應(yīng)用層是b/s結(jié)構(gòu),能夠配置管理員;
所述數(shù)據(jù)庫用于組織、存儲、管理數(shù)據(jù)。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:
本發(fā)明通過web主機服務(wù)器的自主學(xué)習(xí)形成全面且適宜的行為基線后,采用將web請求行為與行為基線比對的webshell檢測方式,進一步提高了webshell檢測的準(zhǔn)確率,提高了檢出率和檢測效率,降低了誤報率和漏報率。且如果web服務(wù)器主機的業(yè)務(wù)變動,重新學(xué)習(xí),即可重新形成適宜的行為基線。
附圖說明
圖1為本發(fā)明中檢測防護系統(tǒng)的主要模塊圖。
圖2為本發(fā)明的流程圖。
圖3為行為基線示意圖。
圖4為實施例中的行為基線示例圖。
圖5為構(gòu)造webshell之后形成的行為示例圖。
具體實施方式
首先需要說明的是,本發(fā)明是計算機技術(shù)在信息安全技術(shù)領(lǐng)域的一種應(yīng)用。在本發(fā)明的實現(xiàn)過程中,會涉及到多個軟件功能模塊的應(yīng)用。申請人認(rèn)為,如在仔細閱讀申請文件、準(zhǔn)確理解本發(fā)明的實現(xiàn)原理和發(fā)明目的以后,在結(jié)合現(xiàn)有公知技術(shù)的情況下,本領(lǐng)域技術(shù)人員完全可以運用其掌握的軟件編程技能實現(xiàn)本發(fā)明。
下面結(jié)合附圖與具體實施方式對本發(fā)明作進一步詳細描述:
如圖1所示的檢測防護系統(tǒng)包括內(nèi)核(內(nèi)核驅(qū)動模塊)、應(yīng)用層(界面應(yīng)用系統(tǒng))、數(shù)據(jù)庫。內(nèi)核(內(nèi)核驅(qū)動模塊)是對操作系統(tǒng)內(nèi)核進行二次開發(fā)的驅(qū)動程序,用于搜集主機行為、匹配行為基線、阻斷主機行為。應(yīng)用層用于接收、展示、學(xué)習(xí)內(nèi)核收集到的主機行為,總結(jié)主機行為形成行為基線,調(diào)整行為基線;且應(yīng)用層是b/s結(jié)構(gòu),能夠配置管理員。數(shù)據(jù)庫用于組織、存儲、管理數(shù)據(jù);本實施例采用的是mysql,用于保存搜集到主機行為白名單。
如圖2所示的一種基于webshell攻擊的檢測和防護方法包括主機行為學(xué)習(xí)過程、主機行為判斷過程,用于利用檢測防護系統(tǒng)防范針對web服務(wù)器主機的webshell攻擊。
主機行為學(xué)習(xí)過程包括下述步驟:
(1)web服務(wù)器主機處理web請求:web服務(wù)器主機接收來自各個客戶端的web請求,web服務(wù)器主機的內(nèi)核啟動進程處理web請求信息,并分析處理web請求的進程行為。
(2)收集web服務(wù)器主機行為:檢測防護系統(tǒng)內(nèi)核的驅(qū)動模塊對步驟(1)傳輸過來的web請求進程行為信息進行收集,并將收集到的信息發(fā)送給檢測防護系統(tǒng)的應(yīng)用層。
(3)接收web服務(wù)器主機行為:檢測防護系統(tǒng)的應(yīng)用層接收步驟(2)傳輸過來的信息進行提取,總結(jié)出web服務(wù)器主機行為:父進程名稱、子進程名稱。
(4)學(xué)習(xí)web服務(wù)器主機行為:檢測防護系統(tǒng)的應(yīng)用層在一個學(xué)習(xí)周期內(nèi)學(xué)習(xí)web服務(wù)器主機的行為,即記錄步驟(3)接收的web服務(wù)器主機行為:父進程名稱、子進程名稱,并保存至檢測防護系統(tǒng)的數(shù)據(jù)庫中。
(5)確認(rèn)web服務(wù)器主機行為基線:步驟(4)結(jié)束后,檢測防護系統(tǒng)的數(shù)據(jù)庫中,會形成web服務(wù)器主機行為列表;檢測防護系統(tǒng)的應(yīng)用層管理者可以對web服務(wù)器主機行為列表進行人工校對、調(diào)整,最后,形成web服務(wù)器主機行為基線。
所述行為基線是主機行為白名單,包括父進程名稱、子進程名稱,可參考圖3。
應(yīng)用層管理員可以對學(xué)習(xí)到的web服務(wù)器主機行為基線進行人工核對、調(diào)整。
人工校對、調(diào)整具體是指將核對行為基線中是否存在異常行為,并將異常行為從主機行為白名單中刪除;對于即未列入行為基線白名單的正常行為即誤報或誤阻斷的主機行為,也可以人工加入主機行為白名單中。
(6)發(fā)送web服務(wù)器主機行為基線:步驟(5)結(jié)束后,檢測防護系統(tǒng)的應(yīng)用層會形成一份web服務(wù)器主機行為基線文件,并發(fā)回給檢測防護系統(tǒng)的內(nèi)核。
所述主機行為判斷過程包括下述步驟:
(7)檢測可疑訪問行為:內(nèi)核接收web服務(wù)器主機行為基線,與web服務(wù)器主機處理客戶端web請求的進程行為進行比對,如果該客戶端web請求的進程行為,與行為基線中的進程不匹配,即判斷該主機行為可能是webshell攻擊,進行告警或阻斷。
下面的實施例可以使本專業(yè)的專業(yè)技術(shù)人員更全面地理解本發(fā)明,但不以任何方式限制本發(fā)明。
假設(shè)在主機行為學(xué)習(xí)期內(nèi),web服務(wù)器主機接收到一個遠程執(zhí)行bash命令的請求,web服務(wù)器將啟動進程/bin/bash。web服務(wù)器內(nèi)核學(xué)習(xí)父進程/bin/bash,子進程比如/data/bin/mysqld。內(nèi)核則將該行為信息發(fā)送給應(yīng)用層管理者確認(rèn),是否加該對父子進程到行為基線中。經(jīng)過一段時間的行為規(guī)則學(xué)習(xí)之后,行為基線即行為規(guī)則白名單便形成。如果業(yè)務(wù)變動,重新學(xué)習(xí)即可。圖4示例自學(xué)習(xí)結(jié)束后,形成的行為基線圖,圖中展現(xiàn)進程的調(diào)用關(guān)系。
圖5示例webshell構(gòu)造攻擊后形成的行為圖,圖中展現(xiàn)ls和pwd是禁止放行的進程。當(dāng)webshell發(fā)生,ls和pwd是搭建webshell環(huán)境構(gòu)造的攻擊,則立即進行告警或阻斷。
最后,需要注意的是,以上列舉的僅是本發(fā)明的具體實施例。顯然,本發(fā)明不限于以上實施例,還可以有很多變形。本領(lǐng)域的普通技術(shù)人員能從本發(fā)明公開的內(nèi)容中直接導(dǎo)出或聯(lián)想到的所有變形,均應(yīng)認(rèn)為是本發(fā)明的保護范圍。