压在透明的玻璃上c-国产精品国产一级A片精品免费-国产精品视频网-成人黄网站18秘 免费看|www.tcsft.com

六款免費WAF防護能力測試報告

最近趕上國內某重大網安活動,要給幾個客戶推薦一些免費好用的安全產品,WAF 是其中之一。

攻擊防護是 WAF 最核心的能力,本文將介紹如何使用科學的方法測試 WAF 防護能力的有效性。

測試指標

測試結果以 4 個指標為主:

  • 檢出率:用來反應 WAF 檢測能力的全面性,沒有檢出即為 ”漏報“。
  • 誤報率:用來反應對正常流量的干擾,不靠譜的結果即為 ”誤報“。
  • 準確率:準確率是檢出率和誤報率的綜合指標,避免漏報和誤報顧此失彼。
  • 檢測耗時:用來反應 WAF 性能,耗時越大則性能越差。

檢測耗時用工具直接統計即可,其他這幾個指標如何計算,可以對應到統計學中的預測分類概念:

  • TP:將 攻擊樣本 攔截 的數量。
  • TN:將 正常樣本 放行 的數量。
  • FN:將 攻擊樣本 放行 的數量,即 ”漏報“ 數量。
  • FP:將 正常請求 攔截 的數量,即 ”誤報“ 數量。

這樣就可以給出上面 3 個指標的計算公式:

  • 檢出率 = TP / (TP + FN)
  • 誤報率 = FP / (TP + FP)
  • 準確率 = (TP + TN) / (TP + TN + FP + FN)

為了減小隨機性帶來的綜合影響,以減小誤差,對于 ”檢測耗時“ 我將會拆為 “90% 的平均耗時” 和 “99% 的平均耗時” 兩個指標。

測試樣本

1. 數據來源:所有測試數據均來自于我自己的瀏覽器。

2.抓包方式:用 Burp 做代理,瀏覽器全局指向 Burp,導出 XML 文件后使用Python 腳本處理成單個請求。

根據以往的經驗,在互聯網上暴露的服務,通常正常流量和攻擊流量的比例是 100:1 左右,我們按這個方式對樣本進行配比。

1. 白樣本:刷微博、刷知乎、刷B站、刷各種論壇,一共攢了 60707 個 HTTP 請求,總大小 2.7 GB(該過程浪費了我 5 個小時)。

2. 黑樣本:為了讓測試效果更充分,我使用四個不同的方法采集了黑樣本,一共 600 個 HTTP 請求(該過程浪費了我 5 個小時)。

  • 常見的攻擊流量:把 portswigger 官網提供的所有攻擊 Payload 都打一遍。
  • 常見的攻擊流量:把 portswigger 官網提供的所有攻擊 Payload 都打一遍。
  • 針對性漏洞流量:部署 VulHub 靶機,所有的經典漏洞使用默認 poc 挨個攻擊一遍。
  • 攻擊對抗流量:調高 DVWA 的對抗級別,在中級和高級防護的情況下把 DVWA 再攻擊一遍。

測試方法

測試指標和測試樣本明確之后,現在需要三個東西:WAF、接收流量的靶機,還有測試工具。

所有 WAF 均使用初始配置,不做任何調整。

靶機用 Nginx,無論收到什么請求,均直接返回 200,配置如下:

location / {return200"hello WAF!";default_type text/plain;}

測試工具的需求如下:

  • 解析 Burp 的導出結果
  • 按 HTTP 協議重新組包
  • 考慮到后續數據要開源,要刪除 Cookie Header
  • 修改 Host Header 字段,讓靶機能夠正常接收流量
  • 根據請求是不是返回 200 判斷是否被 WAF 攔截
  • 對黑白樣本混合后均勻發包
  • 自動計算上述 ”測試指標“

找了兩款開源 WAF 測試工具,看起來質量都不錯,基本符合要求,把兩款工具綜合一下,再略加其他細節就能用,地址如下:

  • gotestwaf:來自泰國的開源 WAF 測試工具
  • blazehttp:來自長亭的開源 WAF 測試工具

開始測試

雷池社區版

TP: 426 TN: 33056 FP: 38 FN: 149

總樣本數量: 33669 成功: 33669 錯誤: 0

檢出率: 74.09%

誤報率: 8.19%

準確率: 99.44%

90% 平均耗時: 0.73毫秒

99% 平均耗時: 0.89毫秒

Coraza

TP: 404 TN: 27912 FP: 5182 FN: 171

總樣本數量: 33669 成功: 33669 錯誤: 0

檢出率: 70.26%

誤報率: 92.77%

準確率: 84.10%

90% 平均耗時: 3.09毫秒

99% 平均耗時: 5.10毫秒

ModSecurity

TP: 400 TN: 25713 FP: 7381 FN: 175

總樣本數量: 33669 成功: 33669 錯誤: 0

檢出率: 69.57%

誤報率: 94.86%

準確率: 77.56%

90% 平均耗時: 1.36毫秒

99% 平均耗時: 1.71毫秒

寶塔 WAF

TP: 224 TN: 32998 FP: 96 FN: 351

總樣本數量: 33669 成功: 33669 錯誤: 0

檢出率: 38.96%

誤報率: 30.00%

準確率: 98.67%

90% 平均耗時: 0.53毫秒

99% 平均耗時: 0.66毫秒

nginx-lua-waf

TP: 213 TN: 32619 FP: 475 FN: 362

總樣本數量: 33669 成功: 33669 錯誤: 0

檢出率: 37.04%

誤報率: 69.04%

準確率: 97.51%

90% 平均耗時: 0.41毫秒

99% 平均耗時: 0.49毫秒

SuperWAF

TP: 138 TN: 33048 FP: 46 FN: 437

總樣本數量: 33669 成功: 33669 錯誤: 0

檢出率: 24.00%

誤報率: 25.00%

準確率: 98.57%

90% 平均耗時: 0.34毫秒

99% 平均耗時: 0.41毫秒

對比表格

漏報數量 誤報數量 準確率 平均
雷池社區版 149 條 38 條 99.44% 0.73 毫秒
Coraza 171 條 5182 條 84.10% 3.09 毫秒
ModSecurity 175 條 7381 條 77.56% 1.36 毫秒
寶塔 WAF 351 條 96 條 98.67% 0.53 毫秒
ngx-lua-waf 362 條 475 條 97.51% 0.41 毫秒
SuperWAF 437 條 46 條 98.57 0.34 毫秒

雷池社區版的綜合表現最好,誤報和漏報都是最少的。

Coraza 和 ModSecurity 作為國外的優秀 WAF 引擎項目,檢出率很高,但對于國內的場景適配并不會,誤報太高。

最后

為了保證公平公正,本文中所用到的測試工具和測試數據均已開源,可訪問以下地址獲取:

https://gitee.com/kxlxbb/testwaf

另外,不同的測試樣本和測試方法可能會導致測試結果有比較大的差異,需要根據實際情況選擇合適的測試樣本和測試方法來進行測試。

本次測試的結果僅供參考,不作為評價產品、工具、算法、模型的唯一標準。

來源:CT Stack 安全社區

上一篇:2022年中國網絡安全市場熱度省份&城市排行

下一篇:Fortinet Accelerate 2023·中國區巡展收官丨讓安全成就未來

站长统计