公務(wù)員期刊網(wǎng) 論文中心 正文

中小型網(wǎng)站的網(wǎng)頁(yè)防篡改系統(tǒng)研究

前言:想要寫(xiě)出一篇引人入勝的文章?我們特意為您整理了中小型網(wǎng)站的網(wǎng)頁(yè)防篡改系統(tǒng)研究范文,希望能給你帶來(lái)靈感和參考,敬請(qǐng)閱讀。

中小型網(wǎng)站的網(wǎng)頁(yè)防篡改系統(tǒng)研究

摘要:企事業(yè)單位網(wǎng)站一般搭建在獨(dú)立的Linux或Windows服務(wù)器上,為了保護(hù)網(wǎng)站文件不被篡改,需要購(gòu)買(mǎi)和安裝昂貴的商業(yè)軟件甚至WAF,使得網(wǎng)站安全運(yùn)維成本很高。該文提出的防篡改系統(tǒng)首先基于事件觸發(fā)技術(shù)和合法性檢查,實(shí)現(xiàn)了網(wǎng)站文件的被動(dòng)防護(hù),其次運(yùn)用蜜罐原理和入侵檢索實(shí)現(xiàn)了主動(dòng)防護(hù),具有成本低廉、實(shí)時(shí)性好和防護(hù)能力強(qiáng)的特點(diǎn),適合于具有一定開(kāi)發(fā)能力的中小型網(wǎng)站管理員使用。

關(guān)鍵詞:木馬文件;事件觸發(fā);網(wǎng)頁(yè)防篡改;IP屏蔽;蜜罐頁(yè)面

1網(wǎng)頁(yè)防篡改的意義和應(yīng)對(duì)措施

目前,企事業(yè)單位網(wǎng)站一般搭建在Windows或Linux服務(wù)器上,對(duì)web服務(wù)器來(lái)說(shuō),包含的風(fēng)險(xiǎn)不僅是服務(wù)器宕機(jī)或者網(wǎng)站癱瘓,更嚴(yán)重的是被黑客入侵后上傳了木馬文件,由于木馬文件是可執(zhí)行文件或具有可執(zhí)行腳本,能夠篡改網(wǎng)站文件使其鏈接到廣告、游戲甚至國(guó)外政治敏感站點(diǎn),所以危害極大。對(duì)網(wǎng)站管理者來(lái)說(shuō),防止木馬文件上傳和網(wǎng)頁(yè)被篡改非常重要!網(wǎng)頁(yè)防篡改的基本要求是:及時(shí)發(fā)現(xiàn)和處理上傳的木馬和被篡改的正常文件。常見(jiàn)的防護(hù)措施包括:(1)加固服務(wù)器安全設(shè)置,包括禁止遠(yuǎn)程操作注冊(cè)表、禁用CMD命令、開(kāi)啟防火墻等。(2)安裝安全狗、云盾、防篡改等商業(yè)軟件或者購(gòu)買(mǎi)硬件防護(hù)設(shè)備(WAF)。兩類(lèi)措施各有不足,第一類(lèi)措施強(qiáng)化了服務(wù)器的安全,但是對(duì)HTTP的80端口攻擊無(wú)能為力,例如SQL注入、XSS攻擊等。第二類(lèi)措施需要購(gòu)買(mǎi)昂貴的商業(yè)產(chǎn)品,不適于資金緊張的中小型網(wǎng)站。

2本文的防篡改系統(tǒng)設(shè)計(jì)思路

中小網(wǎng)站管理者缺少足夠的資金,無(wú)法將安全工作外包或購(gòu)買(mǎi)安全設(shè)備,卻往往具有一定的編程能力或者豐富的網(wǎng)站安全經(jīng)驗(yàn),本文根據(jù)這一情況設(shè)計(jì)了適合于中小型網(wǎng)站的防篡改系統(tǒng),根據(jù)此設(shè)計(jì)開(kāi)發(fā)的軟件可以24小時(shí)運(yùn)行在Windows或Linux服務(wù)器上,以后臺(tái)服務(wù)方式保護(hù)網(wǎng)站,設(shè)計(jì)思路包含兩類(lèi)防護(hù)措施。(1)文件監(jiān)聽(tīng)和合法性檢查Windows和Linux系統(tǒng)都提供了文件系統(tǒng)的事件觸發(fā)機(jī)制,當(dāng)操作系統(tǒng)監(jiān)聽(tīng)到文件被創(chuàng)建、修改和重命名時(shí),會(huì)觸發(fā)相應(yīng)事件并調(diào)用對(duì)應(yīng)的方法,在方法中執(zhí)行文件合法性檢查,就能實(shí)時(shí)監(jiān)測(cè)網(wǎng)站文件的變化,實(shí)現(xiàn)被動(dòng)防護(hù)[1][2]。(2)設(shè)計(jì)蜜罐頁(yè)面和入侵痕跡檢索為了進(jìn)一步提高防護(hù)能力,增加了主動(dòng)防護(hù)措施,在網(wǎng)站目錄中設(shè)計(jì)蜜罐頁(yè)面,“引誘”入侵者訪問(wèn)此頁(yè)面,從而在日志文件中留下痕跡,通過(guò)分析日志檢索并屏蔽非法IP。

3文件監(jiān)聽(tīng)和合法性檢查

3.1業(yè)務(wù)邏輯

(1)對(duì)網(wǎng)站文件進(jìn)行監(jiān)聽(tīng)Windows平臺(tái)可以使用FileSystemWatcher類(lèi)對(duì)指定的文件夾進(jìn)行監(jiān)聽(tīng),也可以使用JNotify包進(jìn)行監(jiān)聽(tīng),由于后者兼容Linux平臺(tái),所以建議使用后者,兩種監(jiān)聽(tīng)技術(shù)都對(duì)文件的內(nèi)容修改、創(chuàng)建、重命名、刪除等事件提供了觸發(fā)機(jī)制,重點(diǎn)監(jiān)聽(tīng)創(chuàng)建、修改和重命名事件的發(fā)生,以下是事件的觸發(fā)條件、參數(shù)和處理方法。(2)文件合法性檢查以Create事件為例,檢查參數(shù)文件是否為木馬依賴于網(wǎng)站的配置、運(yùn)行特征和管理員的安全經(jīng)驗(yàn),不同的網(wǎng)站需要設(shè)置不同的檢查規(guī)則,以某中學(xué)網(wǎng)站為例,總結(jié)并形成如表2所示的幾條規(guī)則。規(guī)則等級(jí)的數(shù)值越大表示檢驗(yàn)優(yōu)先級(jí)越高,最先檢查的是文件上傳(創(chuàng)建)時(shí)間,因?yàn)榫W(wǎng)站編輯一般在每天6:30~23:00內(nèi)工作,所以此時(shí)間段之外上傳的文件違規(guī);其次檢查上傳文件是否位于UploadFile目錄下,位于此目錄之外違規(guī);接下來(lái)檢查上傳文件類(lèi)型是否為動(dòng)態(tài)腳本或可執(zhí)行文件,若是則違規(guī);最后以文本形式打開(kāi)文件,檢查內(nèi)容是否含有暗鏈或非法關(guān)鍵詞,若存在則違規(guī)。所有規(guī)則檢查結(jié)果為真表示上傳文件合法,可以保留在網(wǎng)站上,違反任意一條就視為非法文件進(jìn)行處理。(3)非法文件處理由于非法文件可能是入侵者上傳的,這說(shuō)明此時(shí)的網(wǎng)站很可能已經(jīng)被黑客攻破,服務(wù)器肯定存在漏洞,需要執(zhí)行以下操作:1)加密非法文件并備份到某個(gè)隱藏位置后刪除此文件。2)根據(jù)非法文件名稱和上傳時(shí)間,在網(wǎng)站日志中查找來(lái)源IP,發(fā)現(xiàn)后屏蔽。3)發(fā)送手機(jī)短信給管理員。4)將非法文件信息寫(xiě)入自定義日志,以備日后分析服務(wù)器漏洞。

3.2開(kāi)發(fā)實(shí)現(xiàn)

上述設(shè)計(jì)思路已經(jīng)使用Java語(yǔ)言實(shí)現(xiàn),主要包含以下幾個(gè)技術(shù)要點(diǎn)。(1)讀取XML配置文件由于不同網(wǎng)站的配置、運(yùn)行情況很不相同,所以監(jiān)聽(tīng)網(wǎng)站前先要讀取XML文件初始化參數(shù),包括監(jiān)聽(tīng)的網(wǎng)站目錄、禁止上傳的文件類(lèi)型、日志位置、上傳文件所在目錄、發(fā)送短信參數(shù)等。(2)監(jiān)聽(tīng)工具服務(wù)程序使用Java的JNotify組件進(jìn)行監(jiān)控,程序運(yùn)行后調(diào)用監(jiān)控類(lèi),監(jiān)控類(lèi)繼承于JNotifyListener接口,需要開(kāi)發(fā)者重寫(xiě)fileRenamed、fileModified、fileCreated等方法,發(fā)生了某個(gè)事件就執(zhí)行對(duì)應(yīng)方法。(3)使用Drools引擎實(shí)現(xiàn)業(yè)務(wù)邏輯規(guī)則化文件合法性檢查歸結(jié)為一組業(yè)務(wù)規(guī)則的執(zhí)行,建議使用Drools引擎來(lái)實(shí)現(xiàn)業(yè)務(wù)邏輯的規(guī)則化[3][4],開(kāi)發(fā)者可以針對(duì)各類(lèi)觸發(fā)事件,分別編寫(xiě)出每組業(yè)務(wù)規(guī)則并形成DRL文件,Drools引擎解析、執(zhí)行文件包含的所有規(guī)則,這大大簡(jiǎn)化了傳統(tǒng)的高級(jí)語(yǔ)言編程,以表2的時(shí)間限制規(guī)則為例,只要將它的Salience屬性定義為四個(gè)規(guī)則中的最大值,就可以最先執(zhí)行,參數(shù)6:30和23:00可以在規(guī)則中直接修改且不需要重新編譯,此規(guī)則調(diào)用外部java類(lèi)靜態(tài)方法檢測(cè)時(shí)間的合法性,這樣就將業(yè)務(wù)邏輯和類(lèi)庫(kù)代碼分離開(kāi)了。(4)IP屏蔽技術(shù)若發(fā)現(xiàn)網(wǎng)站被上傳了非法文件,可以根據(jù)文件上傳時(shí)間或者事件觸發(fā)時(shí)間在網(wǎng)站日志中查找入侵IP,重點(diǎn)查找POST操作,發(fā)現(xiàn)后使用Java語(yǔ)句調(diào)用IPTABLES命令實(shí)現(xiàn)IP屏蔽。在Windows系統(tǒng)中可以調(diào)用IPSEC安全策略中的netsh命令實(shí)現(xiàn)IP屏蔽。(5)手機(jī)短信通知使用訂購(gòu)的中國(guó)移動(dòng)云MAS服務(wù),可以使用MAS服務(wù)提供的接口編寫(xiě)Java短信類(lèi),將非法文件的文件名、處理方式和違反的規(guī)則名稱等參數(shù)寫(xiě)入預(yù)定義模板發(fā)送給網(wǎng)站管理員,實(shí)現(xiàn)24小時(shí)短信通知。

4設(shè)計(jì)蜜罐頁(yè)面和入侵痕跡檢索

4.1設(shè)計(jì)蜜罐頁(yè)面

入侵者為了找到網(wǎng)站漏洞,總是先用工具軟件掃描網(wǎng)站,尤其是最常見(jiàn)的登錄和管理頁(yè)面,例如login.asp、index.asp等,這為網(wǎng)站防御提供了一個(gè)蜜罐“誘騙”思路[5][6]:將正常使用的后臺(tái)登錄和管理頁(yè)面重命名隱藏起來(lái),然后在網(wǎng)站根目錄下添加login或index等蜜罐頁(yè)面,這些頁(yè)面不提供任何服務(wù)功能,正常用戶應(yīng)該訪問(wèn)不到,只是是為了引誘入侵者訪問(wèn)。服務(wù)程序定時(shí)讀取日志文件,每次讀取從上次日志結(jié)尾開(kāi)始,利用正則表達(dá)式檢索訪問(wèn)了蜜罐頁(yè)面的IP,這些IP一定是嘗試入侵者,由于入侵者找到漏洞并成功入侵總是需要時(shí)間的,在不嚴(yán)重增加服務(wù)器負(fù)擔(dān)的情況下,采用較小時(shí)間間隔定時(shí)檢索日志,可以及時(shí)發(fā)現(xiàn)大多數(shù)入侵企圖。

4.2入侵痕跡的擴(kuò)展檢索

除了發(fā)現(xiàn)蜜罐頁(yè)面的來(lái)訪IP之外,還可以同時(shí)檢索SQL注入和XSS入侵痕跡,它們的表現(xiàn)是在GET或POST請(qǐng)求的URL字符串中含有非法字符和單詞,包括:(1)西文的單引號(hào)、雙引號(hào)、中括號(hào)和星號(hào)等,重點(diǎn)檢查單引號(hào)。[7]來(lái)訪的URL字符串都記錄在網(wǎng)站日志文件中,為了盡可能發(fā)現(xiàn)攻擊性URL,建議管理員將待檢索的非法字符和單詞寫(xiě)成正則表達(dá)式去匹配URL,若匹配則說(shuō)明此URL含有攻擊,例如“.*select.*or”表示在URL查找select和or,匹配成功表明此URL存在SQL攻擊。由于SQL的攻擊URL復(fù)雜多變,管理員需要不斷更新,而Drools規(guī)則的修改不需要重新編譯程序源代碼,所以建議將待檢索的正則表達(dá)式串編入Drools規(guī)則,在規(guī)則中調(diào)用外部類(lèi)靜態(tài)方法驗(yàn)證來(lái)訪URL是否與之匹配。

5運(yùn)維和管理建議以命令行方式

在服務(wù)器上安裝程序和所需的Drools開(kāi)發(fā)包,以后臺(tái)服務(wù)形式24小時(shí)伴隨網(wǎng)站運(yùn)行,為了保證服務(wù)在線運(yùn)行,將程序設(shè)置為開(kāi)機(jī)啟動(dòng)并定時(shí)檢查進(jìn)程是否存在,在WindowServer中使用計(jì)劃任務(wù)和PowerShell實(shí)現(xiàn),在Linux系統(tǒng)中使用Crond和Shell實(shí)現(xiàn)。為了有效管理服務(wù)器的防篡改系統(tǒng)運(yùn)行,開(kāi)發(fā)Android手機(jī)端App,APP能夠基于SSH協(xié)議向服務(wù)器發(fā)送指令,實(shí)現(xiàn)以下功能。(1)請(qǐng)求并接收服務(wù)器端認(rèn)定的非法文件信息,以供管理員瀏覽、分析。(2)發(fā)送文件恢復(fù)指令,將誤刪除的文件恢復(fù)到原位置。(3)發(fā)送IP操作指令,解除誤屏蔽的IP。(4)定時(shí)發(fā)送HTTP請(qǐng)求,檢查網(wǎng)站是否可以正常訪問(wèn)。(5)發(fā)送重啟網(wǎng)站、重啟和關(guān)閉服務(wù)器的指令。

參考文獻(xiàn):

[1]呂美敬,周濤,等.高校網(wǎng)站的網(wǎng)頁(yè)篡改問(wèn)題研究與分析[J].網(wǎng)絡(luò)空間安全,2018,09:35-38.

[2]冶忠林,王相龍,等.網(wǎng)頁(yè)防篡改和自動(dòng)恢復(fù)系統(tǒng)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2012,21(2):225-228.

[3]余軍陽(yáng),曹世華,朱駿,等.基于權(quán)重優(yōu)先的業(yè)務(wù)規(guī)則引擎應(yīng)用[J].計(jì)算機(jī)應(yīng)用,2015(Z1):174-177.

[4]曾新勵(lì).關(guān)于Drools規(guī)則引擎在業(yè)務(wù)邏輯處理中的研究[J].工業(yè)與信息化,2018(35):99-100.

[5]楊軼,劉恒馳,等.基于蜜罐的網(wǎng)絡(luò)防御技術(shù)研究[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2019,07:20-22.

[6]楊德全,劉衛(wèi)民,等.基于蜜罐的主動(dòng)防御應(yīng)用研究[J].網(wǎng)絡(luò)與信息安全學(xué)報(bào),2018,04:57-62.

[7]張勇,安敬鑫,等.基于日志分析和netsh命令的非法IP屏蔽策略[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2018,04:16-17.

作者:段尊敬 單位:山東輕工職業(yè)學(xué)院