我已經安裝了我的虛擬機Ubuntu 20.04。在其中,我使用Apache2 web server as a WAF了使用 OWASP 規則的 ModSecurity 2.9.3 模塊,它正在偵聽埠 80 和 443。
然后我安裝XAMPP了在其中使用的DVWA application. 由于 XAMPP 中的 Apache Web 服務器無法監聽 Apache2 的相同埠(會有沖突),因此 Apache Web 服務器監聽 HTTP 的 8012 和 HTTPS 的 4431。
我完成了使 DVWA 請求通過 WAF 并使用VirtualHosts. 目前一切都很好。該專案涉及WAF對惡意攻擊的測驗,它可以很好地應對大多數攻擊,ModSecurity檢測并阻止SQL注入、XSS、FLI、RFI等,但是當我測驗DDoS攻擊時,它檢測到了作為掃描儀攻擊,我不知道為什么(然后它阻止了攻擊)。
我用 WFuzz 和 Hydra 測驗了 DDoS 攻擊,試圖在 DVWA 的特定頁面中猜測管理員的密碼。對于 WFuzz,我使用了這個命令:
wfuzz -c -w ~/SecLists/Passwords/probable-v2-top207.txt -b 'security=low;
PHPSESSID=cookieSession' 'http://localhost/dvwa/vulnerabilities/brute/
?username=admin&password=FUZZ&Login=Login'
Wfuzz 開始發送立即被阻止的請求(錯誤 443),并且在 Apache2 的日志錯誤檔案中,我收到一些關于這種型別攻擊的訊息( 與 ModSec 所做的相關的其他訊息):
[Thu Apr 07 09:50:33.960952 2022] [:error] [pid 3803:tid 140532596565760]
[client 127.0.0.1:47826] [client 127.0.0.1] ModSecurity: Warning. Match of "rx
^(?:urlgrabber/[0-9\\\\.] yum/[0-9\\\\.] |mozilla/[0-9\\\\.] ecairn-grabber/[0-9\\\\.]
\\\\(\\\\ http://ecairn.com/grabber\\\\))$" against "REQUEST_HEADERS:User-Agent"
required. [file "/usr/share/modsecurity-crs/rules/REQUEST-913-SCANNER-DETECTION.conf"]
[line "55"] [id "913100"] [msg "Found User-Agent associated with security scanner"]
[data "Matched Data: Wfuzz found within REQUEST_HEADERS:User-Agent: Wfuzz/2.4.5"]
[severity "CRITICAL"] [ver "OWASP_CRS/3.4.0-dev"] [tag "application-multi"] [tag
"language-multi"] [tag "platform-multi"] [tag "attack-reputation-scanner"] [tag
"paranoia-level/1"] [tag "OWASP_CRS"] [tag "capec/1000/118/224/541/310"] [tag
"PCI/6.5.10"] [hostname "localhost"] [uri "/dvwa/vulnerabilities/brute/"] [unique_id
"Yk6XyWgIm0NzeaCPwEBVrAAAAE0"]
起初我不知道為什么檢測與 SCANNER 攻擊有關。從
[msg“找到與安全掃描器關聯的用戶代理”][資料“匹配資料:在 REQUEST_HEADERS 中找到 Wfuzz:用戶代理:Wfuzz/2.4.5”]
我認為問題與用戶代理有關:Wfuzz/2.4.5。所以我嘗試了一個自定義用戶代理:
wfuzz -c -w ~/SecLists/Passwords/probable-v2-top207.txt -b 'security=low;
PHPSESSID=cookieSession' -H 'User-Agent:Mozilla/5.0 (X11; Ubuntu; Linux
x86_64; rv:98.0) Gecko/20100101 Firefox/98.0' 'http://localhost/dvwa/vulnerabilities
/brute/?username=admin&password=FUZZ&Login=Login'
然而這一次,DVWA 收到了請求(錯誤 200),但即使在大約 100 個請求之后,ModSecurity 也沒有檢測到 DDoS 攻擊(我沒有收到 443 錯誤),即使“我”在應用。使用 Hydra 我得到了基本相同的結果。非常感謝任何建議/幫助,這不是生活問題,因為我可以從專案中洗掉這部分,但我想知道什么不起作用。我一直在嘗試查看 OWASP 規則檔案,但我對它們一無所獲,基本上網路上的每個人都說沒有人應該弄亂/編輯這些規則。
我的目標是:
ModSecurity 檢測到 20 次嘗試后,它會阻止即將到來的請求,將 443 錯誤發送回攻擊者。
uj5u.com熱心網友回復:
OWASP ModSecurity 核心規則集開發人員在此值班。首先要注意的是,ModSecurity 2.9.3 版本已經相當老了(2018 年!)。當前的v2版本是 2.9.5 版,其中包含重要的安全性和錯誤修復。您應該認真考慮將最新版本用于私有沙箱以外的任何內容。
第二件事要注意,OWASP 核心規則集 (CRS) 3.4 版是我們的開發分支。它正在大力發展,現在正在徹底改變(甚至本周)。您可能想要使用我們最新的官方版本,即 3.3.2 版(請參閱https://github.com/coreruleset/coreruleset/releases/tag/v3.3.2)。
Wfuzz 確實被列為掃描儀(您可以在檔案中找到它rules/scanners-user-agents.data)。CRS 規則 913100 檢查請求的 User-Agent 標頭,并將它們與scanners-user-agents.data. 這就是為什么您會看到包含“找到與安全掃描器關聯的用戶代理”的日志行:“Wfuzz”的存在導致該規則匹配。rules/REQUEST-913-SCANNER-DETECTION.conf如果您有興趣,可以在檔案中找到規則。
ModSecurity并非旨在防止 (D)DoS 攻擊。它可以這樣做,但它并不擅長。事實上,就在幾天前,我們從 CRS v3.4/dev 分支中洗掉了 DoS 功能(就像我說的,我們所說的 dev 分支正在發生根本性的變化!)。有關此主題的說明,請參閱https://github.com/coreruleset/dos-protection-plugin-modsecurity-v2#plugin-expectations-suitability-and-scale。
如果您真的想測驗 DoS 規則,請查看 CRS 3.3.2 版本,它仍然包含我們的 DoS 規則作為標準(在檔案中rules/REQUEST-912-DOS-PROTECTION.conf)。在主組態檔中找到“Anti-Automation / DoS Protection”部分crs-setup.conf,配置使用的DoS規則。網上也有博客文章和教程介紹如何為 ModSecurity 撰寫自己的 DoS 保護規則,類似于您所描述的(例如“檢測 20 個請求,然后阻止進一步的請求”)。它只需要利用 ModSecurity 的持久收集機制,來存盤請求之間的狀態資訊(例如“這個 IP 地址發送了多少請求?”的運行計數)。
但是,重申一點:默認情況下,ModSecurity 或 OWASP CRS 都不會阻止 DoS 攻擊。
祝你的專案好運!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/464506.html
