前言:想要寫出一篇引人入勝的文章?我們特意為您整理了中小型網站的網頁防篡改系統研究范文,希望能給你帶來靈感和參考,敬請閱讀。
摘要:企事業單位網站一般搭建在獨立的Linux或Windows服務器上,為了保護網站文件不被篡改,需要購買和安裝昂貴的商業軟件甚至WAF,使得網站安全運維成本很高。該文提出的防篡改系統首先基于事件觸發技術和合法性檢查,實現了網站文件的被動防護,其次運用蜜罐原理和入侵檢索實現了主動防護,具有成本低廉、實時性好和防護能力強的特點,適合于具有一定開發能力的中小型網站管理員使用。
關鍵詞:木馬文件;事件觸發;網頁防篡改;IP屏蔽;蜜罐頁面
1網頁防篡改的意義和應對措施
目前,企事業單位網站一般搭建在Windows或Linux服務器上,對web服務器來說,包含的風險不僅是服務器宕機或者網站癱瘓,更嚴重的是被黑客入侵后上傳了木馬文件,由于木馬文件是可執行文件或具有可執行腳本,能夠篡改網站文件使其鏈接到廣告、游戲甚至國外政治敏感站點,所以危害極大。對網站管理者來說,防止木馬文件上傳和網頁被篡改非常重要!網頁防篡改的基本要求是:及時發現和處理上傳的木馬和被篡改的正常文件。常見的防護措施包括:(1)加固服務器安全設置,包括禁止遠程操作注冊表、禁用CMD命令、開啟防火墻等。(2)安裝安全狗、云盾、防篡改等商業軟件或者購買硬件防護設備(WAF)。兩類措施各有不足,第一類措施強化了服務器的安全,但是對HTTP的80端口攻擊無能為力,例如SQL注入、XSS攻擊等。第二類措施需要購買昂貴的商業產品,不適于資金緊張的中小型網站。
2本文的防篡改系統設計思路
中小網站管理者缺少足夠的資金,無法將安全工作外包或購買安全設備,卻往往具有一定的編程能力或者豐富的網站安全經驗,本文根據這一情況設計了適合于中小型網站的防篡改系統,根據此設計開發的軟件可以24小時運行在Windows或Linux服務器上,以后臺服務方式保護網站,設計思路包含兩類防護措施。(1)文件監聽和合法性檢查Windows和Linux系統都提供了文件系統的事件觸發機制,當操作系統監聽到文件被創建、修改和重命名時,會觸發相應事件并調用對應的方法,在方法中執行文件合法性檢查,就能實時監測網站文件的變化,實現被動防護[1][2]。(2)設計蜜罐頁面和入侵痕跡檢索為了進一步提高防護能力,增加了主動防護措施,在網站目錄中設計蜜罐頁面,“引誘”入侵者訪問此頁面,從而在日志文件中留下痕跡,通過分析日志檢索并屏蔽非法IP。
3文件監聽和合法性檢查
3.1業務邏輯
(1)對網站文件進行監聽Windows平臺可以使用FileSystemWatcher類對指定的文件夾進行監聽,也可以使用JNotify包進行監聽,由于后者兼容Linux平臺,所以建議使用后者,兩種監聽技術都對文件的內容修改、創建、重命名、刪除等事件提供了觸發機制,重點監聽創建、修改和重命名事件的發生,以下是事件的觸發條件、參數和處理方法。(2)文件合法性檢查以Create事件為例,檢查參數文件是否為木馬依賴于網站的配置、運行特征和管理員的安全經驗,不同的網站需要設置不同的檢查規則,以某中學網站為例,總結并形成如表2所示的幾條規則。規則等級的數值越大表示檢驗優先級越高,最先檢查的是文件上傳(創建)時間,因為網站編輯一般在每天6:30~23:00內工作,所以此時間段之外上傳的文件違規;其次檢查上傳文件是否位于UploadFile目錄下,位于此目錄之外違規;接下來檢查上傳文件類型是否為動態腳本或可執行文件,若是則違規;最后以文本形式打開文件,檢查內容是否含有暗鏈或非法關鍵詞,若存在則違規。所有規則檢查結果為真表示上傳文件合法,可以保留在網站上,違反任意一條就視為非法文件進行處理。(3)非法文件處理由于非法文件可能是入侵者上傳的,這說明此時的網站很可能已經被黑客攻破,服務器肯定存在漏洞,需要執行以下操作:1)加密非法文件并備份到某個隱藏位置后刪除此文件。2)根據非法文件名稱和上傳時間,在網站日志中查找來源IP,發現后屏蔽。3)發送手機短信給管理員。4)將非法文件信息寫入自定義日志,以備日后分析服務器漏洞。
3.2開發實現
上述設計思路已經使用Java語言實現,主要包含以下幾個技術要點。(1)讀取XML配置文件由于不同網站的配置、運行情況很不相同,所以監聽網站前先要讀取XML文件初始化參數,包括監聽的網站目錄、禁止上傳的文件類型、日志位置、上傳文件所在目錄、發送短信參數等。(2)監聽工具服務程序使用Java的JNotify組件進行監控,程序運行后調用監控類,監控類繼承于JNotifyListener接口,需要開發者重寫fileRenamed、fileModified、fileCreated等方法,發生了某個事件就執行對應方法。(3)使用Drools引擎實現業務邏輯規則化文件合法性檢查歸結為一組業務規則的執行,建議使用Drools引擎來實現業務邏輯的規則化[3][4],開發者可以針對各類觸發事件,分別編寫出每組業務規則并形成DRL文件,Drools引擎解析、執行文件包含的所有規則,這大大簡化了傳統的高級語言編程,以表2的時間限制規則為例,只要將它的Salience屬性定義為四個規則中的最大值,就可以最先執行,參數6:30和23:00可以在規則中直接修改且不需要重新編譯,此規則調用外部java類靜態方法檢測時間的合法性,這樣就將業務邏輯和類庫代碼分離開了。(4)IP屏蔽技術若發現網站被上傳了非法文件,可以根據文件上傳時間或者事件觸發時間在網站日志中查找入侵IP,重點查找POST操作,發現后使用Java語句調用IPTABLES命令實現IP屏蔽。在Windows系統中可以調用IPSEC安全策略中的netsh命令實現IP屏蔽。(5)手機短信通知使用訂購的中國移動云MAS服務,可以使用MAS服務提供的接口編寫Java短信類,將非法文件的文件名、處理方式和違反的規則名稱等參數寫入預定義模板發送給網站管理員,實現24小時短信通知。
4設計蜜罐頁面和入侵痕跡檢索
4.1設計蜜罐頁面
入侵者為了找到網站漏洞,總是先用工具軟件掃描網站,尤其是最常見的登錄和管理頁面,例如login.asp、index.asp等,這為網站防御提供了一個蜜罐“誘騙”思路[5][6]:將正常使用的后臺登錄和管理頁面重命名隱藏起來,然后在網站根目錄下添加login或index等蜜罐頁面,這些頁面不提供任何服務功能,正常用戶應該訪問不到,只是是為了引誘入侵者訪問。服務程序定時讀取日志文件,每次讀取從上次日志結尾開始,利用正則表達式檢索訪問了蜜罐頁面的IP,這些IP一定是嘗試入侵者,由于入侵者找到漏洞并成功入侵總是需要時間的,在不嚴重增加服務器負擔的情況下,采用較小時間間隔定時檢索日志,可以及時發現大多數入侵企圖。
4.2入侵痕跡的擴展檢索
除了發現蜜罐頁面的來訪IP之外,還可以同時檢索SQL注入和XSS入侵痕跡,它們的表現是在GET或POST請求的URL字符串中含有非法字符和單詞,包括:(1)西文的單引號、雙引號、中括號和星號等,重點檢查單引號。[7]來訪的URL字符串都記錄在網站日志文件中,為了盡可能發現攻擊性URL,建議管理員將待檢索的非法字符和單詞寫成正則表達式去匹配URL,若匹配則說明此URL含有攻擊,例如“.*select.*or”表示在URL查找select和or,匹配成功表明此URL存在SQL攻擊。由于SQL的攻擊URL復雜多變,管理員需要不斷更新,而Drools規則的修改不需要重新編譯程序源代碼,所以建議將待檢索的正則表達式串編入Drools規則,在規則中調用外部類靜態方法驗證來訪URL是否與之匹配。
5運維和管理建議以命令行方式
在服務器上安裝程序和所需的Drools開發包,以后臺服務形式24小時伴隨網站運行,為了保證服務在線運行,將程序設置為開機啟動并定時檢查進程是否存在,在WindowServer中使用計劃任務和PowerShell實現,在Linux系統中使用Crond和Shell實現。為了有效管理服務器的防篡改系統運行,開發Android手機端App,APP能夠基于SSH協議向服務器發送指令,實現以下功能。(1)請求并接收服務器端認定的非法文件信息,以供管理員瀏覽、分析。(2)發送文件恢復指令,將誤刪除的文件恢復到原位置。(3)發送IP操作指令,解除誤屏蔽的IP。(4)定時發送HTTP請求,檢查網站是否可以正常訪問。(5)發送重啟網站、重啟和關閉服務器的指令。
參考文獻:
[1]呂美敬,周濤,等.高校網站的網頁防篡改問題研究與分析[J].網絡空間安全,2018,09:35-38.
[2]冶忠林,王相龍,等.網頁防篡改和自動恢復系統[J].計算機系統應用,2012,21(2):225-228.
[3]余軍陽,曹世華,朱駿,等.基于權重優先的業務規則引擎應用[J].計算機應用,2015(Z1):174-177.
[4]曾新勵.關于Drools規則引擎在業務邏輯處理中的研究[J].工業與信息化,2018(35):99-100.
[5]楊軼,劉恒馳,等.基于蜜罐的網絡防御技術研究[J].網絡安全技術與應用,2019,07:20-22.
[6]楊德全,劉衛民,等.基于蜜罐的主動防御應用研究[J].網絡與信息安全學報,2018,04:57-62.
[7]張勇,安敬鑫,等.基于日志分析和netsh命令的非法IP屏蔽策略[J].網絡安全技術與應用,2018,04:16-17.
作者:段尊敬 單位:山東輕工職業學院