基于模式匹配的web應(yīng)用防火墻的設(shè)計與實現(xiàn)_第1頁
基于模式匹配的web應(yīng)用防火墻的設(shè)計與實現(xiàn)_第2頁
基于模式匹配的web應(yīng)用防火墻的設(shè)計與實現(xiàn)_第3頁
基于模式匹配的web應(yīng)用防火墻的設(shè)計與實現(xiàn)_第4頁
基于模式匹配的web應(yīng)用防火墻的設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩36頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

-1-目錄TOC\o"1-3"\h\u14021原創(chuàng)性聲明 I9129摘要 II27332Abstract III71161緒論 198841.1論文的組織結(jié)構(gòu) 1229431.2課題背景和研究的目的和意義 2324291.3國內(nèi)外研究現(xiàn)狀 3276351.4本文主要研究內(nèi)容 427582Web漏洞分析與相關(guān)技術(shù)概述 5180602.1Web漏洞的分析 597062.1.1OWASPTOP10漏洞簡介 5321122.1.2SQL注入 6196932.1.3XSS漏洞 6305892.2相關(guān)技術(shù) 769462.2.1Java 7150752.2.2Netty 775542.2.3SpringBoot和Vue.js 7189942.2.4模式匹配技術(shù)介紹 8143133需求分析與WAF的結(jié)構(gòu)設(shè)計 9325433.1需求分析和系統(tǒng)目標 9300473.2業(yè)務(wù)邏輯和用例分析 9307653.3Web應(yīng)用防火墻設(shè)計概要 1190953.3.1系統(tǒng)架構(gòu)設(shè)計 1163633.3.2系統(tǒng)模塊設(shè)計 11232103.3.3網(wǎng)絡(luò)部署位置 12225373.3.4數(shù)據(jù)庫設(shè)計 13243144Web應(yīng)用防火墻具體實現(xiàn) 15139954.1WAF核心功能實現(xiàn) 15279004.1.1數(shù)通引擎 15187014.1.2規(guī)則引擎 17210544.1.3響應(yīng)模塊 19202714.2WAF管理界面實現(xiàn) 20319384.2.1SpringBoot后端實現(xiàn) 20320014.2.2Vue.js前端實現(xiàn) 21160755系統(tǒng)測試與評估 25229225.1測試拓撲 25127725.2測試環(huán)境 2651845.2.1硬件環(huán)境 26152005.2.2軟件環(huán)境 26271585.3攻擊測試 2614455.3.1手工測試 26163995.3.2工具測試 2974235.3.3測試結(jié)果 3118795.4管理后臺功能測試 3150676總結(jié)與展望 32243656.1總結(jié) 32289846.2展望 3219245參考文獻 341791致謝 36緒論論文的組織結(jié)構(gòu)本文總共分為七部分,基本組織結(jié)構(gòu)如下:第一章緒論。本章首先客觀分析了當前Web防護系統(tǒng)的發(fā)展現(xiàn)狀及趨勢,指出了主流Web應(yīng)用防火墻存在的不足之處,并梳理了個人用戶在網(wǎng)站安全防護方面的實際需求。接著闡明了設(shè)計基于模式匹配技術(shù)的輕量級Web應(yīng)用防火墻的重要意義。隨后,介紹了論文的主要研究內(nèi)容和采用的研究方法,最后對全文的章節(jié)結(jié)構(gòu)安排進行了概述。第二章Web漏洞分析與相關(guān)技術(shù)概述。本章首先系統(tǒng)介紹了OWASP發(fā)布的Top10高危Web漏洞,并深入分析了其中SQL注入、跨站腳本等核心漏洞的形成原理及危害。接著對論文所采用的模式匹配、Java語言、Netty網(wǎng)絡(luò)框架、SpringBoot、Vue等相關(guān)技術(shù)進行了必要的概念說明,為后續(xù)具體實現(xiàn)做理論準備。第三章模式匹配技術(shù)介紹。本章首先闡述了模式匹配技術(shù)在網(wǎng)絡(luò)安全領(lǐng)域的廣泛應(yīng)用,如病毒查殺、入侵檢測等。然后對單模式匹配和多模式匹配進行了比較和區(qū)分,并解釋了本文采用單模式正則匹配方法的合理性。第四章需求分析與WAF結(jié)構(gòu)設(shè)計。本章首先從Web安全防護的角度全面分析個人網(wǎng)站搭建者的實際需求,以明確系統(tǒng)設(shè)計目標。隨后對業(yè)務(wù)流程進行了梳理,并進行了用例分析。根據(jù)需求和用例,提出了WAF系統(tǒng)的總體架構(gòu)設(shè)計、關(guān)鍵模塊設(shè)計、數(shù)據(jù)庫設(shè)計方案,并確定了系統(tǒng)的網(wǎng)絡(luò)部署位置。第五章Web應(yīng)用防火墻具體實現(xiàn)。本章詳細闡述了基于Netty框架和Java語言,實現(xiàn)WAF的數(shù)據(jù)處理引擎、規(guī)則匹配引擎、響應(yīng)處理模塊等核心功能模塊的設(shè)計思路和具體實現(xiàn)代碼。此外,還介紹了如何使用SpringBoot和Vue3框架開發(fā)WAF的Web管理后臺界面。第六章系統(tǒng)測試與評估。本章將開發(fā)的WAF系統(tǒng)在虛擬機環(huán)境中進行模擬部署,并采用手工滲透測試和自動化工具兩種方式,模擬實際網(wǎng)絡(luò)攻擊場景,全面評估WAF檢測各類Web攻擊威脅的能力和防護效果,驗證其關(guān)鍵阻斷功能的有效性。最后登錄管理后臺界面,檢查攻擊事件日志記錄、IP黑白名單管理等功能的可用性以及數(shù)據(jù)展現(xiàn)的準確性。第七章總結(jié)與展望。本章首先系統(tǒng)總結(jié)了基于模式匹配方法設(shè)計Web應(yīng)用防火墻的研究成果,并客觀分析了目前系統(tǒng)存在的不足之處。最后,根據(jù)網(wǎng)絡(luò)安全形勢的發(fā)展趨勢,對WAF系統(tǒng)未來的優(yōu)化方向和拓展計劃進行了展望和討論。課題背景和研究的目的和意義早在2016年4月19日,國家網(wǎng)絡(luò)安全和信息化工作座談會指出要樹立正確的網(wǎng)絡(luò)安全觀加快構(gòu)建關(guān)鍵信息基礎(chǔ)設(shè)施安全保障體系,全天候全方位感知網(wǎng)絡(luò)安全態(tài)勢,增強網(wǎng)絡(luò)安全防御能力和震懾能力。2018年4月20日,國家網(wǎng)絡(luò)安全和信息化工作會議上強調(diào),就沒有網(wǎng)絡(luò)安全就沒有國家安全,就沒有經(jīng)濟社會穩(wěn)定運行,廣大人民群眾利益也難以得到保障。世界經(jīng)濟論壇《2018年全球風險報告》中首次將網(wǎng)絡(luò)攻擊納入全球風險前五名,成為2018年全球第三大風險因素。在海量網(wǎng)絡(luò)攻擊中網(wǎng)站入侵的占比極高,利用Web漏洞進行入侵的成本較低,但卻可以造成極大危害。2022年4月,紐約82萬名學(xué)生的個人數(shù)據(jù)被曝光。在線評分和考勤系統(tǒng)IlluminateEducation遭攻擊,黑客獲得了約82萬名紐約市公立學(xué)校學(xué)生個人數(shù)據(jù)庫的訪問權(quán)限。2022年9月國家計算機病毒應(yīng)急處理中心和360公司分別發(fā)布了關(guān)于西北工業(yè)大學(xué)遭受境外網(wǎng)絡(luò)攻擊的調(diào)查報告。2022年10月,香格里拉酒店遭黑客入侵,29萬港人個人信息受影響,客戶的個人資料包括姓名、電話、通訊地址等外洩。這些數(shù)字時刻提醒著人們,當前網(wǎng)絡(luò)攻擊無時無刻不在發(fā)生,網(wǎng)絡(luò)安全所面臨的威脅非常嚴峻,同時網(wǎng)絡(luò)安全還影響者社會的穩(wěn)定和發(fā)展,保護網(wǎng)絡(luò)安全,提高網(wǎng)站防入侵水平刻不容緩。隨著云技術(shù)的普及,各類云主機云服務(wù)器個人用戶量逐漸增多,互聯(lián)網(wǎng)Web資產(chǎn)呈井噴式增長,對于大多數(shù)服務(wù)器而言,Web資產(chǎn)作為服務(wù)器對外開放的唯一入口,便成為了黑客攻擊的主要攻擊目標,時刻面臨著大量網(wǎng)絡(luò)攻擊的威脅。Web應(yīng)用程序作為互聯(lián)網(wǎng)服務(wù)的核心,其安全性一直收到了高度關(guān)注。傳統(tǒng)的網(wǎng)絡(luò)防火墻主要針對網(wǎng)絡(luò)層和傳輸層,由于沒有對應(yīng)用層進行有效防御,導(dǎo)致難以防護針對Web的網(wǎng)絡(luò)攻擊。Web應(yīng)用防火墻(WebApplicationFirewall,WAF)作為專門保護Web應(yīng)用程序的安全防護系統(tǒng),能夠有效阻擋各種Web攻擊,成為保障Web應(yīng)用安全的重要手段。目前市場上陸續(xù)出現(xiàn)的大量的WAF產(chǎn)品,主要針對的是企業(yè)級用戶且以硬件WAF為主。而大量的個人網(wǎng)站用戶或小型企業(yè)無法承受這類WAF高額售價和維護成本,導(dǎo)致大量Web資產(chǎn)仍然面臨著較高的網(wǎng)絡(luò)攻擊威脅?;谀壳暗默F(xiàn)狀,本文希望設(shè)計實現(xiàn)一種軟件Web防火墻應(yīng)用網(wǎng)關(guān),采用Java語言優(yōu)秀跨的平臺性,在多平臺服務(wù)器的簡易部署;采用串聯(lián)部署方式成為訪問網(wǎng)站的唯一入口,針對訪問網(wǎng)站的所有業(yè)務(wù)流量都進入規(guī)則引擎進行流量安全檢測,實現(xiàn)入侵檢測和攻擊阻斷功能保護網(wǎng)站安全性;同時提供web管理界面以方便用戶的操作使用。本文設(shè)計的Web防火墻應(yīng)用網(wǎng)關(guān)以極低的使用門檻和維護成本,為用戶網(wǎng)站提供了網(wǎng)絡(luò)防入侵保障。國內(nèi)外研究現(xiàn)狀國外對Web攻擊的防御技術(shù)的研究一直在不斷推進,Web攻擊識別實際上就是對網(wǎng)絡(luò)傳輸過程中的信息進行過濾,研究的核心就是判定訪問Web的流量是否為惡意攻擊流量。PonemonInstitute做了一項關(guān)于WFA的最新調(diào)查,根據(jù)PonemonInstitute對595名IT和IT安全從業(yè)人員的調(diào)查結(jié)果顯示REF_Ref5752\r\h[1],大部分受訪者對其所部署的Web應(yīng)用程序防火墻(WAF)的防御能力持不滿意態(tài)度。在這些被調(diào)查者中,53%負責應(yīng)用程序安全性或作為應(yīng)用程序所有者,他們?nèi)粘9ぷ魃婕癢AF的部署和管理。調(diào)查發(fā)現(xiàn),65%的受訪者經(jīng)常遭遇針對WAF的應(yīng)用層繞過攻擊。這一數(shù)據(jù)說明,大多數(shù)被調(diào)查者認為其所部署的WAF無法有效防御基于Web的應(yīng)用程序攻擊。他們對WAF的不滿態(tài)度主要體現(xiàn)在以下三個方面:保護Web、移動和API應(yīng)用程序面臨較大困難;WAF的部署和后續(xù)維護管理過程較為復(fù)雜;如何提高WAF的防御有效性依然是一個有待解決的問題。該調(diào)查結(jié)果反映出,雖然WAF被廣泛部署,但其在實際應(yīng)用中仍存在不足,未能完全滿足用戶的安全防護需求,提高WAF的防御能力仍是重要的研究方向。當前,國內(nèi)外存在多種著名的基于網(wǎng)絡(luò)的入侵檢測系統(tǒng),如EMERALD、Snort、Suricata和層次入侵檢測環(huán)境(HIDE)等,它們在設(shè)計理念和技術(shù)實現(xiàn)上各有特色,且都存在一定的優(yōu)缺點。其中,Suricata作為一種定位于輕量級、基于誤用檢測技術(shù)的開源入侵檢測系統(tǒng),備受關(guān)注。作為目前該領(lǐng)域最著名的代表之一,Suricata以其開源、高性能和可擴展性等優(yōu)勢獲得了廣泛應(yīng)用REF_Ref29183\r\h[2]。,Suricata采用了多模式匹配的誤用檢測技術(shù),基本原理為對請求流量進行抓包攔截,對獲取到的報文作為數(shù)據(jù)源REF_Ref29379\r\h\#"0"[3,REF_Ref29408\r\h#"0]"4],再使用Suricata中的規(guī)則庫進行模式匹配,從而實現(xiàn)對入侵行為的檢測。由此可知,模式匹配是Suricata工作的核心內(nèi)容。微軟也推出過一款名為AzureApplicationGateway的安全產(chǎn)品,該產(chǎn)品同時具備Web路由、負載均衡、WAF(Web應(yīng)用防火墻)等功能REF_Ref1127\r\h[5]。但這些產(chǎn)品對個人用戶使用門檻較高,無法用于私有化部署,在谷歌和微軟以外的業(yè)務(wù)均無法提供服務(wù)。所以,想要使用這些產(chǎn)品必須使用他們的云服務(wù)。國內(nèi)提供WAF技術(shù)的廠商也比較多,做硬件WAF的廠商有長亭、綠盟、安恒等,做云WAF和軟件WAF有云鎖、安全狗等REF_Ref1434\r\h[6]。這類安全產(chǎn)品發(fā)展至今拓展了多種新型檢測手段,但是底層的檢測邏輯依舊繞不開模式匹配。在一項調(diào)查中,幾乎所有的用戶需要的是一款與其他重要的安全功能集成、WAF系統(tǒng)架構(gòu)較小的復(fù)雜性、更多智能處理的輕量化WAF。目前WAF最重要的功能就是對Web常見漏洞能夠精準的檢測以及有效的阻斷,以避免網(wǎng)站被黑客攻破。本文主要研究內(nèi)容 鑒于傳統(tǒng)應(yīng)用防火墻在面臨當前網(wǎng)絡(luò)攻擊形勢時存在諸多不足,本研究擬設(shè)計并實現(xiàn)一種輕量化的Web應(yīng)用防火墻網(wǎng)關(guān)系統(tǒng),專門為個人建站用戶提供針對性的Web防護服務(wù),全方位滿足其網(wǎng)站安全防護需求。該系統(tǒng)將作為網(wǎng)站服務(wù)器的唯一入口點,對所有進入的HTTP流量實施細致的惡意檢測,有效防范當前主流的Web漏洞攻擊,具體實施內(nèi)容包括: (1)深入分析OWASPTop10等權(quán)威機構(gòu)公布的高危Web漏洞的形成原理,剖析這些漏洞產(chǎn)生的根源所在,為WAF規(guī)則庫的編寫奠定扎實的理論基礎(chǔ),提高檢測引擎對各類Web攻擊威脅的識別精度和檢出效率。 (2)自主開發(fā)高效的WAF檢測內(nèi)核,基于Netty高性能網(wǎng)絡(luò)框架和Java編程語言,集成數(shù)據(jù)引擎、規(guī)則匹配引擎、響應(yīng)處理模塊等核心模塊,實現(xiàn)對所有進入WAF的HTTP報文流量的實時分析和惡意檢測。 (3)采用主流的SpringBoot和Vue3前后端開發(fā)框架,開發(fā)出圖形化的WAF管理界面,提供攻擊事件日志查看、IP黑白名單管理、WAF在線狀態(tài)監(jiān)控等功能,方便管理員掌控系統(tǒng)運行狀況。(4)在虛擬機環(huán)境中對開發(fā)的WAF系統(tǒng)進行模擬部署,綜合手工測試和自動化工具兩種方式,全面評估其處理實際Web攻擊場景的檢測能力和防護效果,驗證關(guān)鍵阻斷功能的有效性;同時登錄管理界面,檢查各項操作功能的可用性以及數(shù)據(jù)展現(xiàn)的準確性,確保管理模塊符合實際使用需求。Web漏洞分析與相關(guān)技術(shù)概述Web漏洞的分析OWASPTOP10漏洞簡介為了幫助開發(fā)人員、安全專家和相關(guān)組織更好地了解和應(yīng)對Web應(yīng)用程序所面臨的各種各樣的安全威脅和漏洞。開放Web應(yīng)用程序安全項目(OWASP)發(fā)布了Top10Web應(yīng)用程序安全風險列表REF_Ref1865\r\h[7],旨在提高對主要Web應(yīng)用程序安全風險的認識,并理清需要采取有限防護措施的領(lǐng)域。開放Web應(yīng)用程序安全項目(OWASP)組織根據(jù)大量數(shù)據(jù)和社區(qū)反饋,對Web應(yīng)用程序最常見和最嚴重的安全風險進行分析和排名,并每幾年更新一次。該列表旨在確定需要優(yōu)先關(guān)注的領(lǐng)域,并為開發(fā)人員、測試人員提供專業(yè)指導(dǎo),幫助他們了解、檢測和避免這些關(guān)鍵風險。表2-1就對比2013年、2017年和2021年OWASPTOP10,根據(jù)表中數(shù)據(jù)可以分析得到,注入攻擊、跨站腳本(XSS)等依舊是黑客濫用的攻擊手段。因此,本文將參考最新的OWASPTOP10進行規(guī)則庫的編制。表STYLEREF1\s2-SEQ表\*ARABIC\s11對比2013年2017年和2021年的OWASPTOP10序號2013年2017年2021年A1注入注入權(quán)限控制失效A2失效的身份認證和會話管理失效的身份認證和會話管理加密機制失效A3跨站XSS敏感信息泄露注入式攻擊A4不安全的對象直接引用XML外部實(XXE)不安全設(shè)計A5安全錯誤配置失效的訪問控制安全設(shè)定缺陷A6敏感信息泄露安全錯誤配置危險或過久的組件A7功能級訪問控制缺失跨站XSS認證及驗證機制失效A8跨站請求偽造(CSRF)不安全的序列化軟件及資料完整性失效A9使用含已知漏洞組件使用含有已知漏洞組件安全記錄及監(jiān)控失效A10未驗證的重定向和轉(zhuǎn)發(fā)日志記錄和監(jiān)控不足風險服務(wù)端請求偽造SQL注入在OWASPTOP10在2013年版、2017年版和2021年版中,將SQL注入攻擊分別排為第1、1、3位。在眾多安全威脅中,SQL注入被公認為最危險的漏洞之一REF_Ref2051\r\h[8]。據(jù)Edgescan的一項研究顯示,在2021年掃描的40000多個互聯(lián)網(wǎng)系統(tǒng)中,SQL注入漏洞占比高達8.7%REF_Ref2123\r\h[9]。這凸顯了SQL注入漏洞的普遍存在,以及對Web應(yīng)用程序安全的巨大威脅。SQL注入攻擊REF_Ref2593\r\h[10]的原理就是攻擊者向Web服務(wù)器提交而已構(gòu)造的SQL查詢參數(shù),服務(wù)器在接收參數(shù)后未對參數(shù)做安全性校驗,導(dǎo)致惡意SQL語句與系統(tǒng)本身的查詢語句做了拼接,最后在進入數(shù)據(jù)庫查詢步驟時觸發(fā)攻擊這的惡意SQL語句導(dǎo)致SQL注入攻擊。例如常見的服務(wù)端登陸查詢功能中,原始數(shù)據(jù)庫查詢語句為:StringSQL="SELECT*FROMusersWHEREusername='"+username+"'ANDpassword='"+password+"'"。正常用戶輸入用戶名和密碼時,生成的SQL語句為:SELECT*FROMusersWHEREusername='admin'ANDpassword='123456'。這個語句會正常執(zhí)行,從users表中查詢用戶名為admin,密碼為123456的記錄。但是,攻擊作者將用戶名參數(shù)(username)輸入為:'OR'1'='1,那么此時生成的數(shù)據(jù)庫語句就變成:SELECT*FROMusersWHEREusername=''OR'1'='1'ANDpassword='123456'。此時'OR'1'='1'這部分條件是一個永遠為真的邏輯語句,所以上述查詢會導(dǎo)致返回users表中所有記錄,從而繞過認證機制。當攻擊者構(gòu)造其他危害性更大的語句時,就有可能盜取數(shù)據(jù)庫的全部數(shù)據(jù)、在服務(wù)器上執(zhí)行命令等惡意操作。雖然SQL注入攻擊方式非常多樣,但所有攻擊想要造成更大的危害時,無可避免的就需要使用到SQL語言中的保留字、符號、內(nèi)置函數(shù)等。所以,在檢測SQL攻擊時便可以通過模式匹配檢測這些關(guān)鍵字REF_Ref5565\r\h[11]。表2-2以MySQL數(shù)據(jù)庫為例展示了常用的關(guān)鍵字與函數(shù)。STYLEREF1\s2-SEQ表\*ARABIC\s12常見的MySQL注入關(guān)鍵詞類別關(guān)鍵詞基礎(chǔ)語法SELECT,INSERT,UPDATE,DELETE,UNION,INTO,VALUES系統(tǒng)函數(shù)CONCAT,SUBSTRING,LENGTH,REPLACE,TRIM,UPPER,LOWER字符′,",;,(,),=,<,>,+,-,*,/,%,!,XSS漏洞跨站腳本攻擊(Cross-SiteScripting,XSS)是另一種嚴重的Web應(yīng)用程序安全漏洞,它允許攻擊者將惡意腳本代碼注入到受信任的網(wǎng)站中REF_Ref6159\r\h[12]。這種代碼會在用戶的瀏覽器中執(zhí)行,從而可能盜取用戶的會話令牌、敏感數(shù)據(jù),或者在受害者的瀏覽器上進行其他惡意操作。XSS漏洞的攻擊原理主要有下面兩種類型:反射型(反射文本型)XSS。反射型XSS是由于應(yīng)用程序直接將來自HTTP請求的用戶輸入數(shù)據(jù),如查詢字符串或表單數(shù)據(jù),嵌入到響應(yīng)頁面中所導(dǎo)致的。攻擊者通常會誘使用戶點擊一個特制的惡意鏈接,將載有XSS代碼的數(shù)據(jù)傳遞給應(yīng)用程序存儲型(持久型)XSS。存儲型XSS則是由于應(yīng)用程序?qū)⑽唇?jīng)驗證的用戶輸入數(shù)據(jù)存儲在服務(wù)器端(如數(shù)據(jù)庫、文件系統(tǒng)等),之后在響應(yīng)中將其讀取并輸出到頁面所導(dǎo)致的。常見于留言板、用戶個人資料編輯等功能。相關(guān)技術(shù)JavaJava是一種廣泛使用的面向?qū)ο蟮木幊陶Z言,由SunMicrosystems公司在1995年發(fā)布。語言自誕生以來,已經(jīng)成為當今最流行和應(yīng)用最廣泛的編程語言之一。它的跨平臺性、面向?qū)ο筇匦浴⒔研?、安全性以及強大的開發(fā)工具支持REF_Ref6460\r\h[13],使Java在各個領(lǐng)域都占據(jù)著重要地位?;谏鲜鰞?yōu)勢,本文采用Java語言進行WAF的開發(fā)。NettyNetty是一個用于構(gòu)建高性能網(wǎng)絡(luò)應(yīng)用程序的異步事件驅(qū)動網(wǎng)絡(luò)應(yīng)用框架REF_Ref6783\r\h[14]。它在Java網(wǎng)絡(luò)編程領(lǐng)域具有重要影響,展現(xiàn)了出色的設(shè)計理念和技術(shù)優(yōu)勢。Netty最顯著的優(yōu)點在于其精心設(shè)計的高效率、靈活性和可擴展性。它基于高度優(yōu)化的I/O模型,可實現(xiàn)高吞吐量和低延遲的網(wǎng)絡(luò)通信。Netty采用了模塊化和可擴展的設(shè)計,支持多種協(xié)議和編解碼器,便于用戶根據(jù)具體需求進行定制。同時,Netty還提供了豐富的內(nèi)置功能,如容量自動調(diào)節(jié)、連接池等,大大簡化了網(wǎng)絡(luò)應(yīng)用程序的開發(fā)過程。SpringBoot和Vue.js本文采用SpringBoot和Vue.js設(shè)計實現(xiàn)WAF的后臺管理界面。SpringBoot和Vue.js是當下最熱門的Java全棧Web開發(fā)技術(shù)棧。Vue.js作為響應(yīng)式編程范式的代表,憑借其高效性、易用性和可維護性,成為構(gòu)建現(xiàn)代Web用戶界面的優(yōu)秀選擇。同時,Vue.js與SpringBoot框架協(xié)同配合,實現(xiàn)了前后端分離的開發(fā)模式,有利于提高開發(fā)效率和代碼復(fù)用性。SpringBoot以“約定優(yōu)于配置的理念”,簡化了Spring應(yīng)用的開發(fā)過程,提高了開發(fā)的效率。通過自動配置和嵌入式服務(wù)器支持,SpringBoot可以快速構(gòu)建出產(chǎn)品級的應(yīng)用程序,可以與Vue.js無縫整合,打造了高效、可拓展的全棧應(yīng)用架構(gòu)。模式匹配技術(shù)介紹模式匹配是計算機科學(xué)中一個基礎(chǔ)且廣泛應(yīng)用的概念。它指的是在給定的文本或數(shù)據(jù)流中查找和識別特定模式或規(guī)則的過程REF_Ref7237\r\h[15]。根據(jù)匹配對象的復(fù)雜程度,模式匹配可分為多種類型,其中最常見的有如下三種:單模式匹配。單模式匹配是指在目標文本中查找單個確定的模式串,通常采用高效的字符串匹配算法,如Knuth-Morris-Pratt算法。多模式匹配。多模式匹配則是同時在目標文本中查找多個模式串,需要更復(fù)雜的數(shù)據(jù)結(jié)構(gòu)和算法,如Aho-Corasick自動機或位并行技術(shù)等。正則表達式匹配。正則表達式匹配是一種更為通用和靈活的模式匹配方式。正則表達式使用特殊語法來描述復(fù)雜的模式規(guī)則,可以表示字符集合、重復(fù)出現(xiàn)、替代等豐富的模式特征。WAF也通常使用規(guī)則模式匹配的方法保護Web應(yīng)用程序免受已知的惡意攻擊REF_Ref7498\r\h[16]?;谀J狡ヅ涞腤AF是一種典型的應(yīng)用系統(tǒng)防護產(chǎn)品,其本質(zhì)是通過檢測訪問服務(wù)器的數(shù)據(jù)流量來保護應(yīng)用系統(tǒng)的安全REF_Ref7544\r\h[17]。本文的檢測引擎采用了正則表達式匹配技術(shù)。理由如下,與單模式匹配和多模式匹配相比,正則表達式匹配展現(xiàn)出了更強大的模式描述能力和靈活性。同時,提供了豐富的元字符語法和邏輯結(jié)構(gòu),可以精確描述復(fù)雜的字符串模式,包括字符集合、數(shù)量限定、位置約束等高級特性,大大超越了單模式和多模式匹配的表達能力。需求分析與WAF的結(jié)構(gòu)設(shè)計需求分析和系統(tǒng)目標本文設(shè)計的軟件Web應(yīng)用防火墻網(wǎng)關(guān)旨在滿足用戶對網(wǎng)絡(luò)安全的需求,特別是針對常見的OWASPTOP10漏洞。為此對用戶需求進行了全面的分析。用戶期望系統(tǒng)能夠全面檢測常見的OWASPTOP10漏洞,如SQL注入、XSS、命令執(zhí)行漏洞等,并實時攔截并防御這些漏洞攻擊,以保護Web應(yīng)用的安全性。此外,用戶需要系統(tǒng)能夠?qū)崟r記錄每次攻擊的詳細信息,并將其存儲在數(shù)據(jù)庫中,以便在需要時分析攻擊日志,進行安全事件的跟蹤和分析。用戶還需要一個直觀易用的Web管理界面,用于配置和管理WAF系統(tǒng),提供攻擊數(shù)據(jù)的可視化展示,并能夠通過界面配置黑白名單,靈活控制特定IP地址的訪問權(quán)限,并同時提供WAF系統(tǒng)狀態(tài)的展示功能。對系統(tǒng)的安全性有較高要求,希望系統(tǒng)能夠提供身份認證和授權(quán)機制,以確保只有授權(quán)用戶可以訪問系統(tǒng)。用戶需要系統(tǒng)支持管理用戶密碼修改等基本功能,以便管理員對系統(tǒng)進行管理和維護。本文設(shè)計的軟件Web應(yīng)用防火墻網(wǎng)關(guān)系統(tǒng)系統(tǒng)目標,能夠?qū)崿F(xiàn)檢測并攔截常見的OWASPTOP10漏洞,例如SQLInject、跨站腳本(XSS)、服務(wù)端請求偽造(CSRF)、命令執(zhí)行漏洞等;對攻擊阻斷后能夠?qū)崟r在數(shù)據(jù)庫中存儲詳細攻擊日志信息;WAF還需要實現(xiàn)Web管理界面,用于將攻擊數(shù)據(jù)可視化,同時還要有黑白名單配置、WAF狀態(tài)查詢、管理用戶密碼修改等功能。業(yè)務(wù)邏輯和用例分析通過上文對用戶需求的綜合分析,結(jié)合WAF的整體架構(gòu)設(shè)計,根據(jù)不同用戶對WAF業(yè)務(wù)功能的要求,進行了建模。圖STYLEREF1\s3-SEQ圖\*ARABIC\s11功能需求分析圖如圖3-1展示了WAF的問題域用例。WAF的主要用戶需求如下:安全模塊:WAF應(yīng)用網(wǎng)關(guān)制定者要求WAF需要具備異常訪問檢測和阻斷、存儲攻擊日志功能。管理模塊:Web管理界面需要支持攻擊日志可視化,對單個攻擊事件查看詳細HTTP流量,以方便管理用戶對攻擊事件真實性進行研判。在管理界面中需要實現(xiàn)對黑白名單的增刪操作,實現(xiàn)管理用戶對特定IP的針對性操作。在管理界面可以查看WAF系統(tǒng)狀態(tài),對用戶密碼進行修改功能。 對問題域中的需求進行了描述,得到問題域用例詳細描述如表3-1所示。表STYLEREF1\s3-SEQ表\*ARABIC\s11問題域用例詳細描述用例編號用例名稱用例詳細描述自定義檢測規(guī)則Web應(yīng)用防火墻需要具備豐富的針對OWASPTOP10漏洞的匹配規(guī)則庫,同時WAF應(yīng)用網(wǎng)關(guān)制定者可通過連接數(shù)據(jù)庫添加刪除規(guī)則。以便能夠更有效的檢測攻擊行為。流量阻斷/自定義告警界面當WAF檢測引擎匹配到規(guī)則庫中的規(guī)則時,WAF應(yīng)當立即對該網(wǎng)站請求進行阻斷,同時返回告警頁面給客戶端,以保護用戶網(wǎng)站安全。表STYLEREF1\s3-SEQ表\*ARABIC\s11(續(xù)表)問題域用例詳細描述攻擊日志存儲WAF阻斷請求邏輯發(fā)生后,需要對檢測到的攻擊報文進行日志信息存儲,記錄攻擊事件的詳情(如時間、攻擊IP、攻擊事件類型等),以便WAF管理者可以進行日志分析,判定訪問是否為真實攻擊或者對攻擊者進行溯源。Web日志可視化WAF管理員進入Web管理界面可以看到實時日志信息的變化,以及每條日志的詳細請求報文信息。黑白名單管理通過添加黑名單和白名單,實現(xiàn)對特定IP的訪問控制。WAF系統(tǒng)狀態(tài)顯示當WAF在服務(wù)器中運行時,可以實時顯示當前WAF系統(tǒng)的CPU使用率、內(nèi)存使用率。方便用戶觀察WAF系統(tǒng)狀態(tài)。用戶密碼修改當輸入當前賬戶的密碼后,即可輸入新密碼,對賬戶進行密碼修改。Web應(yīng)用防火墻設(shè)計概要系統(tǒng)架構(gòu)設(shè)計圖STYLEREF1\s3-SEQ圖\*ARABIC\s12系統(tǒng)架構(gòu)設(shè)計圖 通過圖3-2所展示的系統(tǒng)架構(gòu)圖,可以對本文設(shè)計的WAF系統(tǒng)有一個整體的了解。從上圖可知,本文設(shè)計的WAF需要包含數(shù)通引擎、檢測引擎、響應(yīng)模塊、日志存儲模塊、由SpringBoot與Vue.js開發(fā)的控制模塊。系統(tǒng)模塊設(shè)計本文針對現(xiàn)有Web應(yīng)用程序防火墻(WAF)在部署和防御能力方面的不足,設(shè)計并實現(xiàn)了一種輕量級的WAF系統(tǒng)。該系統(tǒng)的核心部件主要包括以下兩個模塊:(1)基于規(guī)則的攻擊檢測與防護模塊:該模塊承擔了WAF的核心防御職能,通過數(shù)據(jù)通信引擎接收Nginx反向代理轉(zhuǎn)發(fā)的HTTP請求數(shù)據(jù)流,經(jīng)過初步檢測和攔截后,將待檢查流量導(dǎo)入檢測引擎進行深度檢測。若發(fā)現(xiàn)匹配預(yù)置的攻擊模式特征,檢測引擎將終止該請求并向客戶端發(fā)送警示信息;反之,系統(tǒng)將放行該HTTP請求,允許其到達目標Web服務(wù)器。(2)基于Web的管理控制模塊:為提高系統(tǒng)的易用性和管理便利性,專門設(shè)計了基于Web的圖形化管理界面。合法用戶需憑證登錄后,即可在頁面中查看WAF的運行狀態(tài)、檢測日志等信息,并根據(jù)需求調(diào)整相關(guān)安全策略規(guī)則或系統(tǒng)配置參數(shù)??紤]到該WAF系統(tǒng)的應(yīng)用場景為個人用戶,因此管理模塊僅設(shè)置了單一的"admin"超級管理員賬號。網(wǎng)絡(luò)部署位置圖STYLEREF1\s3-SEQ圖\*ARABIC\s13網(wǎng)路部署位置圖 根據(jù)在網(wǎng)絡(luò)中的位置和使用場景的不同,WAF通常有五種部署模式:串聯(lián)部署、牽引部署、反向代理部署、單臂部署、監(jiān)聽部署REF_Ref8906\r\h[19]。如圖3-3所示,本文設(shè)計的輕量級Web應(yīng)用防火墻系統(tǒng)采用了前置透明代理的部署模式。WAF通過將自身與Web服務(wù)器串聯(lián)部署,對外界攻擊者而言,整個防護系統(tǒng)的存在是透明無感知的。 通過采取此種部署方式,攻擊者在發(fā)起攻擊時,無法直接探測到WAF防火墻與Web服務(wù)器的存在,因而難以針對性進行攻擊圍繞或繞過。同時,該部署拓撲的配。也相對簡單直觀,只需在Web服務(wù)器與Nginx之間安裝WAF模塊,無需復(fù)雜的網(wǎng)絡(luò)環(huán)境改造,便可對現(xiàn)有Web應(yīng)用服務(wù)實現(xiàn)有效防護。 該透明部署方案不僅提高了WAF防火墻系統(tǒng)的隱蔽性和安全可靠性,而且降低了部署和維護的復(fù)雜度,使其更加適用于對部署環(huán)境要求苛刻的中小型Web應(yīng)用場景。同時,WAF系統(tǒng)本身的輕量級設(shè)計也有助于該部署模式的高效實施。數(shù)據(jù)庫設(shè)計系統(tǒng)設(shè)計的核心工作一直與DatabaseSystemDesign(數(shù)據(jù)庫設(shè)計,DSD)緊密相關(guān)。一個良好的DSD不僅能夠節(jié)省存儲的空間和保證數(shù)據(jù)的完整性,而且還應(yīng)具備良好的維護性、可讀性和擴展性REF_Ref7766\r\h[18]。本文根據(jù)系統(tǒng)運行的環(huán)境采用MYSQL數(shù)據(jù)庫實現(xiàn)數(shù)據(jù)庫設(shè)計。根據(jù)WAF實現(xiàn)過程中需要用到的實體,設(shè)計出5張數(shù)據(jù)庫表。表STYLEREF1\s3-2attack_logs表實體字段名字段類型說明IDidint(autoincrement)自增主鍵攻擊者IPipvarchar(255)攻擊者IP攻擊時間attack_timetimestamp攻擊產(chǎn)生時間攻擊事件名attack_namevarchar(255)攻擊事件名稱攻擊報文http_requesttext完整的攻擊請求報文表3-2attack_logs負責持久化記錄檢測到的攻擊事件信息。該表的設(shè)計遵循關(guān)系模型的規(guī)范化理論,科學(xué)劃分并組織攻擊事件的多維度描述屬性。通過將攻擊事件的來源、時間、類型和payload數(shù)據(jù)拆分存儲于不同字段,不僅能有效避免數(shù)據(jù)冗余和插入異常,更為攻擊日志的后續(xù)分析和審計提供了多維度的數(shù)據(jù)支持。表STYLEREF1\s3-3attack_patterns表實體字段名字段類型說明IDidint(autoincrement)自增主鍵攻擊事件名稱event_namevarchar(255)表達式匹配到的攻擊事件正則表達式patterntext用于匹配攻擊行為事件描述descriptiontext對攻擊事件的描述表3-3attack_patterns是WAF系統(tǒng)規(guī)則引擎的核心數(shù)據(jù)源,用于存儲各種已知攻擊事件的模式特征規(guī)則。該表的設(shè)計秉承了數(shù)據(jù)規(guī)范化的理念,對攻擊規(guī)則的不同屬性進行了恰當拆分。表STYLEREF1\s3-4users表實體字段名字段類型說明IDidint(autoincrement)自增主鍵用戶名usernamevarchar(50)存儲用戶名密碼passwordvarchar(100)存儲用戶密碼 表3-4users用來簡單存儲用戶的用戶名以及加密后的用戶密碼,作為Web管理界面的登錄功能和密碼修改功能的數(shù)據(jù)源。表STYLEREF1\s3-5blacklist實體字段名字段類型說明IDidint(autoincrement)自增主鍵黑名單IPipvarchar(255)用于存儲用戶設(shè)置的黑名單表STYLEREF1\s3-6whitelist實體字段名字段類型說明IDidint(autoincrement)自增主鍵白名單IPipvarchar(255)用于存儲用戶設(shè)置的白名單表3-5和表3-6采用了相同的表結(jié)構(gòu)設(shè)計,為Web管理界面的黑白名單功能提供數(shù)據(jù)源。Web應(yīng)用防火墻具體實現(xiàn)WAF核心功能實現(xiàn)數(shù)通引擎 數(shù)通引擎作為WAF系統(tǒng)的關(guān)鍵組成部分,承擔著接收并轉(zhuǎn)發(fā)網(wǎng)絡(luò)流量的重要職責。其代碼實現(xiàn)基于Netty這一高性能的異步事件驅(qū)動網(wǎng)絡(luò)應(yīng)用框架,主要包括以下三個核心模塊: (1)WafServer.java:該模塊的職責是啟動并初始化WAF的Netty服務(wù)端,用于監(jiān)聽和接收來自互聯(lián)網(wǎng)的HTTP訪問流量。如圖4-1所示,它通過創(chuàng)建ServerBootstrap實例,配置事件處理器,設(shè)置工作線程組等方式啟動Netty服務(wù)端,為WAF系統(tǒng)提供了穩(wěn)定高效的流量接入通道。圖STYLEREF1\s4-SEQ圖\*ARABIC\s11WafServer主要代碼HttpRequestForwarder.java:一旦WafServer接收到HTTP請求數(shù)據(jù)流,便會將其傳遞給HttpRequestForwarder模塊進行后續(xù)處理。如圖4-2所示,該模塊通過與后端Web服務(wù)器建立新的TCP連接通道,并將原始HTTP請求內(nèi)容轉(zhuǎn)發(fā)至服務(wù)器,從而實現(xiàn)了WAF系統(tǒng)對入站流量的無縫轉(zhuǎn)發(fā)功能。圖STYLEREF1\s4-SEQ圖\*ARABIC\s12HttpRequestForwarder主要代碼 (3)HttpResponseHandler.java:該模塊則負責處理從后端Web服務(wù)器傳回的HTTP響應(yīng)數(shù)據(jù)流。如圖4-3所示,HttpResponseHandler在接收到后端服務(wù)器的響應(yīng)后,會立即將響應(yīng)內(nèi)容原封不動地轉(zhuǎn)發(fā)回發(fā)起該請求的客戶端,確保WAF系統(tǒng)的透明無感知性。 圖STYLEREF1\s4-SEQ圖\*ARABIC\s13HttpResponseHandler主要代碼 上述三個模塊的職責相互銜接,共同構(gòu)成了WAF系統(tǒng)高效穩(wěn)定的數(shù)據(jù)流轉(zhuǎn)發(fā)引擎。WafServer模塊擔任流量接入的前置角色,HttpRequestForwarder和HttpResponseHandler則分別負責請求和響應(yīng)的雙向轉(zhuǎn)發(fā)任務(wù),形成一個完整的數(shù)據(jù)通信通路。規(guī)則引擎規(guī)則引擎作為WAF系統(tǒng)的核心防御模塊,負責對接收到的HTTP請求進行安全檢測和處置決策。其工作原理是基于預(yù)置的一系列安全規(guī)則對請求內(nèi)容進行模式匹配,從而識別和阻止?jié)撛诘墓粜袨?。?guī)則引擎的執(zhí)行邏輯主要分為以下兩個層面:第一層為IP黑白名單檢查。如圖4-4所示,規(guī)則引擎會先從數(shù)據(jù)庫查詢當前請求來源IP是否存在于預(yù)數(shù)據(jù)庫的IP黑白名單中。如果命中白名單,則該請求將被直接放行,不再進行后續(xù)檢查;如果命中黑名單,則該請求將被直接攔截并返回拒絕響應(yīng)。該環(huán)節(jié)的白名單規(guī)則優(yōu)先級高于黑名單,體現(xiàn)了“失信允許”的preventient安全策略。只有未列入任何名單的IP,才會進入下一層檢查流程。圖STYLEREF1\s4-SEQ圖\*ARABIC\s14黑白名單實現(xiàn)代碼第二層為攻擊載荷特征匹配。如圖4-5所示,規(guī)則引擎會從attack_patterns表中調(diào)取所有預(yù)置的正則表達式模式,并逐一對請求的HTTP頭部和Body內(nèi)容執(zhí)行檢查。一旦發(fā)現(xiàn)與已知攻擊類型相匹配,即可判定該請求為惡意攻擊行為,隨即將其攔截并中止會話。反之,如果所有模式檢查均未命中,則該請求將被評估為安全請求并放行至后端Web服務(wù)器。圖STYLEREF1\s4-SEQ圖\*ARABIC\s15攻擊特征檢測實現(xiàn)代碼該規(guī)則引擎的設(shè)計思路是先利用IP名單規(guī)則快速過濾掉顯著異常流量,再通過模式匹配實現(xiàn)深度防護。建模分層、逐級縮減的檢查機制,一方面提升了防御的精準性和效率,避免了不必要的檢查開銷。響應(yīng)模塊 響應(yīng)模塊是WAF系統(tǒng)攻擊處理和反饋的關(guān)鍵組件,負責在規(guī)則引擎檢測到威脅時執(zhí)行相應(yīng)的防御策略并進行事件記錄。 一旦規(guī)則引擎確認當前HTTP請求的發(fā)起IP存在于黑名單或請求內(nèi)容命中已知攻擊模式特征,響應(yīng)模塊將立即對該請求發(fā)起攔截并中止會話。如圖4-6所示,它將向發(fā)起攻擊的客戶端返回拒絕訪問的HTML頁面,明確告知攻擊已被檢測并阻止。圖STYLEREF1\s4-SEQ圖\*ARABIC\s16客戶端告警界面 除了攔截響應(yīng)外,響應(yīng)模塊還負責將檢測到的攻擊事件持久化至數(shù)據(jù)庫中,為后續(xù)的審計分析和取證工作保留完整記錄。如圖4-7所示,該功能是通過AttackDetector類實現(xiàn)的。AttackDetector封裝了攻擊事件的上報接口,在接收到規(guī)則引擎的威脅通知后,將從中提取出攻擊者IP、攻擊時間戳、攻擊事件名稱和完整攻擊載荷數(shù)據(jù),并將其插入到attack_logs表中。圖STYLEREF1\s4-SEQ圖\*ARABIC\s17攻擊日志記錄代碼WAF管理界面實現(xiàn)SpringBoot后端實現(xiàn)本文設(shè)計的Web應(yīng)用防火墻系統(tǒng)的后端服務(wù)采用了SpringBoot框架進行開發(fā)和部署。SpringBoot作為流行的JavaEE開發(fā)框架,它提供了自動裝配、嵌入式容器、產(chǎn)品級別監(jiān)控等一系列特性,大幅提升了開發(fā)效率和應(yīng)用的可移植性?;赟pringBoot框架,WAF后端實現(xiàn)了一套RESTful風格的API接口,為前端Web管理界面提供數(shù)據(jù)支持和功能服務(wù)。表4-1列出了設(shè)計的全部API,這些API接口主要包括:(1)IP名單管理接口。提供新增、刪除IP黑白名單條目的服務(wù),支持對whitelist和blacklist表的操作,方便管理允許和拒絕訪問的IP地址。(2)運行狀態(tài)監(jiān)控接口。提供實時查詢WAF系統(tǒng)當前的運行狀態(tài)數(shù)據(jù),包括內(nèi)存占用、CPU占用、攻擊事件數(shù)等核心指標,為系統(tǒng)健康狀況評估提供數(shù)據(jù)支撐。(3)攻擊事件日志查詢接口。為事件審計和取證分析提供靈活的日志訪問能力。表STYLEREF1\s4-SEQ表\*ARABIC\s11接口列表接口名接口地址請求方法接口參數(shù)登錄接口/loginPOSTusername、password查詢?nèi)咳罩?LogsGETpage、size攻擊事件總量/Logs/countGET無WAF服務(wù)器狀態(tài)/server/infoGET無添加白名單/whitelistPOSTip添加黑名單/blacklistPOSTip獲取白名單列表/whitelistGETpage、size獲取黑名單列表/blacklistGETpage、size白名單刪除/whitelistDELETEip黑名單刪除/blacklistDELETEip修改密碼/updatePasswordPUToldPassword、newPasswordVue.js前端實現(xiàn)基于Vue,WAF前端實現(xiàn)了一套完整的圖形化管理界面,為系統(tǒng)管理員提供直觀且操作便捷的控制和監(jiān)控視圖,主要包括以下6個核心模塊:BlacklistView.vue。如圖4-8所示,視圖模塊實現(xiàn)了IP黑名單的創(chuàng)建、查詢、刪除管理功能。用戶可在界面上進行黑名單IP的增減操作,并列表展示當前已有的黑名單條目。圖STYLEREF1\s4-SEQ圖\*ARABIC\s18黑名單管理界面WhitelistView.vue。如圖4-9所示,與黑名單視圖功能對應(yīng),該模塊面向IP白名單進行管理。用戶可自主調(diào)整允許訪問的IP名單,實現(xiàn)精細化的訪問控制策略配置。圖STYLEREF1\s4-SEQ圖\*ARABIC\s19白名單管理界面DashboardView.vue。如圖4-10所示,作為系統(tǒng)的監(jiān)控中心,該模塊以信息卡片的形式實時展示W(wǎng)AF的實時日志、攻擊總數(shù)。圖STYLEREF1\s4-SEQ圖\*ARABIC\s110攻擊日志展示界面HomeView.vue。如圖4-11所示,該視圖模塊作為整個管理系統(tǒng)的登陸入口。只有經(jīng)身份驗證的合法用戶才能訪問后續(xù)的系統(tǒng)管理功能,從而保證了管理界面的安全性。圖STYLEREF1\s4-SEQ圖\*ARABIC\s111登錄界面SettingView.vue。如圖4-12所示,該模塊為系統(tǒng)管理員提供了修改WAF管理用戶密碼和查看系統(tǒng)資源使用情況功能。圖STYLEREF1\s4-SEQ圖\*ARABIC\s112系統(tǒng)設(shè)置界面LogDetailView.vue。如圖4-13所示,通過該日志詳情視圖,用戶可深入查看某一特定攻擊事件的具體信息,包括攻擊IP、事件類型、攻擊載荷數(shù)據(jù)等,為事件審計和溯源提供數(shù)據(jù)支撐。圖STYLEREF1\s4-SEQ圖\*ARABIC\s113攻擊日志詳情界面上述6個視圖模塊共同構(gòu)成了WAF前端管理系統(tǒng)的主要功能模塊,覆蓋了系統(tǒng)的配置管理、運維監(jiān)控和安全審計等核心需求。Vue.js的聲明式渲染、組件化設(shè)計等特性使得前端界面具備了出色的用戶體驗和可維護性。系統(tǒng)測試與評估本章對本文設(shè)計的Web應(yīng)用防火墻在實際環(huán)境中進行測試,本章首先對測試環(huán)境的網(wǎng)絡(luò)拓撲和需要用到的資源進行了介紹。然后使用pikachu靶機作為受保護網(wǎng)站,通過手工滲透測試的方式驗證防護性,再使用工具進行掃描攻擊測試驗證防護性。測試拓撲圖STYLEREF1\s5-SEQ圖\*ARABIC\s11測試環(huán)境網(wǎng)絡(luò)拓撲為了模擬真實的網(wǎng)絡(luò)環(huán)境并驗證WAF系統(tǒng)的防御效果,測試環(huán)境構(gòu)建了兩個邏輯隔離的網(wǎng)段。一個作為內(nèi)網(wǎng)環(huán)境,另一個模擬公網(wǎng)的外部網(wǎng)絡(luò)。在內(nèi)網(wǎng)環(huán)境中,Web應(yīng)用服務(wù)器(IP30)、Nginx反向代理服務(wù)器(IP28)和WAF防火墻系統(tǒng)(IP29)按串聯(lián)方式部署,形成了服務(wù)請求的轉(zhuǎn)發(fā)鏈路。具體的流量轉(zhuǎn)發(fā)路徑為:所有來自公網(wǎng)的HTTP訪問請求首先由Nginx反向代理服務(wù)器(34)接收,Nginx將這些原始請求數(shù)據(jù)通過內(nèi)網(wǎng)IP(28)轉(zhuǎn)發(fā)給位于內(nèi)網(wǎng)的WAF防火墻系統(tǒng)。WAF對接收到的請求數(shù)據(jù)執(zhí)行深度檢測,過濾掉攻擊載荷并放行正常請求至Web服務(wù)器(30)響應(yīng)。為方便模擬攻擊行為,測試環(huán)境中還部署了一臺位于公網(wǎng)網(wǎng)段的Kali攻擊機(IP28)。該攻擊機可以直接通過Nginx反向代理的公網(wǎng)IP(34)對Web服務(wù)器發(fā)起各種類型的攻擊請求,從而檢驗WAF防火墻的防御能力。該測試環(huán)境拓撲保持了真實網(wǎng)絡(luò)場景下的服務(wù)器分布和防火墻串聯(lián)部署方式,外網(wǎng)環(huán)境對內(nèi)網(wǎng)系統(tǒng)是完全隔離的,只能通過反向代理的公網(wǎng)IP訪問服務(wù)。在這種實際生產(chǎn)環(huán)境的模擬下,可最大程度地還原并測試WAF防火墻系統(tǒng)在面對真實攻擊時的防御表現(xiàn)和性能指標。測試環(huán)境在進行系統(tǒng)測試之前,我們需要確保測試環(huán)境已經(jīng)搭建完畢,包括相關(guān)應(yīng)用程序的部署以及軟件和硬件環(huán)境的設(shè)置。接下來,我們將詳細介紹本系統(tǒng)所采用的軟硬件環(huán)境配置。硬件環(huán)境本文測試環(huán)境所需的硬件如表5-1所示。表STYLEREF1\s5-SEQ表\*ARABIC\s11硬件列表硬件名稱數(shù)量WAF安全網(wǎng)關(guān)1Nginx服務(wù)器1網(wǎng)站應(yīng)用服務(wù)器1攻擊測試終端1軟件環(huán)境本文測試環(huán)境所需的安裝的軟件如表5-1所示。表STYLEREF1\s5-SEQ表\*ARABIC\s12軟件環(huán)境列表硬件名稱操作系統(tǒng)軟件WAF安全網(wǎng)關(guān)Centos9.0軟件WAF、MySQL、Nginx1.22.1、JDK17Nginx服務(wù)器Centos9.0Nginx1.22.1網(wǎng)站應(yīng)用服務(wù)器Centos9.0Nginx1.22.1、pikachu攻擊測試終端KaliBurpsuite、sqlmap、Firefox攻擊測試手工測試本文首先通過Kali內(nèi)置工具Burpsuite、Firefox進行手工測試,主要以測試漏洞為SQL注入、XSS為主,在無WAF防護模式下測試如下語句:無WAF防護XSS測試:如圖5-2所示,當用戶在輸入框中輸入<script>alert(“xss”)</script>后,用戶的瀏覽器在頁面中存儲了此HTML代碼,并將用戶的輸入作為HTML代碼輸出至瀏覽器。導(dǎo)致“alert”函數(shù)在頁面中成功執(zhí)行,跳出彈窗,展示了無防護狀態(tài)下攻擊的成功效果。攻擊者甚至可利用此漏洞盜取用戶的登錄憑證。圖STYLEREF1\s5-SEQ圖\*ARABIC\s12XSS攻擊成功界面無WAF防護SQL注入測試:如圖5-3、圖5-4所示,在輸入框g%'unionselectdatabase(),version(),3#,此時該數(shù)據(jù)進入數(shù)據(jù)查詢語句由于“'”將原始查詢語句閉合,導(dǎo)致database()、version()函數(shù)成功執(zhí)行,于是在頁面中顯示了pikachu數(shù)據(jù)庫名和8.0.36數(shù)據(jù)庫版本,充分驗證此次攻擊測試成功。圖STYLEREF1\s5-SEQ圖\*ARABIC\s13SQL注入攻擊成功界面圖STYLEREF1\s5-SEQ圖\*ARABIC\s14SQL注入攻擊成功界面在未部署WAF防護的情況下,通過手工滲透測試發(fā)現(xiàn),pikachu靶機網(wǎng)站存在SQL注入和反射型XSS等多種安全漏洞,攻擊載荷能夠順利執(zhí)行并造成數(shù)據(jù)泄露或網(wǎng)頁掛馬等危害。在為靶機網(wǎng)站啟用本文設(shè)計的WAF防護系統(tǒng)后,重復(fù)執(zhí)行上述SQL注入和XSS攻擊測試,由于WAF規(guī)則庫中已經(jīng)編寫了SQL注入、XSS等攻擊關(guān)鍵詞,規(guī)則引擎通過模式匹配的方式對HTTP流量數(shù)據(jù)進行了基于模式匹配的規(guī)則匹配,對存在攻擊特征的請求成功攔截。測試結(jié)果顯示所有攻擊行為都被WAF有效攔截,均返回了如圖5-5所示的防護告警頁面。圖STYLEREF1\s5-SEQ圖\*ARABIC\s15WAF攔截頁面工具測試首先將發(fā)起攻擊的IP地址加入WAF的白名單中,模擬在未啟用WAF防護的狀態(tài)下,使用sqlmap的-r參數(shù)對目標網(wǎng)站發(fā)起直接的SQL盲注攻擊測試。如圖5-6所示,sqlmap成功探測到注入點并利用獲取到了全部數(shù)據(jù)庫的名稱,說明在無防護情況下網(wǎng)站確實存在嚴重的SQL注入漏洞。然后,將該攻擊IP從WAF白名單中移除,重新執(zhí)行相同的sqlmap攻擊測試。此時如圖5-7、圖5-8所示,sqlmap無法再獲取任何數(shù)據(jù)庫信息,攻擊失敗。印證了本文設(shè)計的WAF系統(tǒng)具備有效的SQL注入防護能力,能夠準確檢測并阻止sqlmap等專業(yè)攻擊工具的注入行為。該測試驗證了本文WAF系統(tǒng)的防注入能力,更體現(xiàn)了WAF在應(yīng)對自動化、大規(guī)模攻擊時的高效處置能力。sqlmap代表了當前最先進的SQL注入攻擊技術(shù)手段,其被成功阻擋,從側(cè)面證明了本W(wǎng)AF系統(tǒng)在面對未來復(fù)雜攻擊環(huán)境時的防御可靠性。圖STYLEREF1\s5-SEQ圖\*ARABIC\s16攻擊成功界面圖STYLEREF1\s5-SEQ圖\*ARABIC\s17攻擊被攔截界面圖STYLEREF1\s5-SEQ圖\*ARABIC\s18攻擊被攔截界面測試結(jié)果表STYLEREF1\s5-SEQ表\*ARABIC\s13測試結(jié)果測試方法需求測試效果測試結(jié)果手工測試攔截請求、記錄日志成功攔截并記錄日志測試通過工具測試攔截請求、記錄日志成功攔截并記錄日志測試通過管理后臺功能測試通過Web瀏覽器訪問并登錄WAF系統(tǒng)的圖形化管理控制臺,手動操作和驗證了各項管理功能模塊,全面評估了管理界面的可用性和實用性。主要測試內(nèi)容和結(jié)果如圖5-4所示。表STYLEREF1\s5-SEQ表\*ARABIC\s14管理后臺功能測試結(jié)果測試功能需求測試結(jié)果日志展示日志信息列表展示測試通過日志詳情展示可展示日志詳細信息測試通過黑名單添加IP在數(shù)據(jù)庫中添加黑名單IP測試通過白名單添加IP在數(shù)據(jù)庫中添加白名單IP測試通過WAF狀態(tài)展示可展示W(wǎng)AF當前CPU、內(nèi)存狀態(tài)測試通過密碼修改可修改WAF管理系統(tǒng)登錄密碼測試通過總結(jié)與展望總結(jié)本文探討了基于模式匹配的Web應(yīng)用防火墻(WAF)的理論基礎(chǔ),并通過實現(xiàn)相關(guān)模塊來實現(xiàn)網(wǎng)站的保護效果。以下是本文的具體工作總結(jié):(1)本文完成了WAF應(yīng)用網(wǎng)關(guān)的需求分析與概要設(shè)計。首先介紹了國內(nèi)外WAF研究現(xiàn)狀,根據(jù)這一現(xiàn)狀充分分析了用戶需求。接著設(shè)計了WAF的系統(tǒng)架構(gòu)、系統(tǒng)模塊、數(shù)據(jù)庫以及網(wǎng)絡(luò)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論