教你从零搭建 Web 漏洞靶场 OWASP Benchmark
摘要:Owasp benchmark 旨在评估安全测试工具的能力(准确率、覆盖度、扫描速度等等),量化安全测试工具的扫描能力,从而更好得比较各个安全工具优缺点。
本文分享自华为云社区《Web漏洞靶场搭建(OWASP Benchmark)》,作者:Xuuuu 。
Web 漏洞靶场搭建(OWASP Benchmark)
渗透测试切记纸上谈兵,学习渗透测试知识的过程中,我们通常需要一个包含漏洞的测试环境来进行训练。而在非授权情况下,对于网站进行渗透测试攻击,是触及法律法规的,所以我们常常需要自己搭建一个漏洞靶场,避免直接对公网非授权目标进行测试。
漏洞靶场,不仅可以帮助我们锻炼渗透测试能力、可以帮助我们分析漏洞形成机理、更可以学习如何修复提高代码能力,同时也可以帮助我们检测各种各样漏洞扫描器的效果。
本次靶场选择 OWASP Benchmark | OWASP Foundation 靶场。Owasp benchmark 旨在评估安全测试工具的能力(准确率、覆盖度、扫描速度等等),量化安全测试工具的扫描能力,从而更好得比较各个安全工具优缺点。
测试用例
目前 v1.2 版本包含了近 3000 个漏洞,覆盖常见的 SQL 注入、命令注入、路径遍历、XSS,以及众多安全编码类的问题
每个漏洞包含多种漏洞场景,对于命令注入来说,可以校验测试工具在:
多种注入位置:
param/data/form-data/json/mut/header/cookie/
多种调用场景:
ProcessBuilder/RuntimeExec
不同拼接方式:可控变量作为独立的命令拼接、仅作为
ls/echo
的参数复杂业务流程:
if/else/switch
导致无法进入漏洞位置(假漏洞场景)等等场景下的表现。
评分标准
Benchmark 可以根据测试工具的扫描报告为测试工具进行评分。Benchmark 靶场的所有漏洞信息储存在 BenchmarkJava/expectedresults-1.2.csv at master · OWASP-Benchmark/BenchmarkJava ,此文件用于标识每个场景下的漏洞信息。Benchmark 解析测试工具的扫描报告再与预期结果进行对比,从而为每个工具进行打分。
对于测试工具来说,我们期望他能够
发现所有的真正是问题的漏洞 即 True Positive,TP 指数,检出率尽可能高
能够忽略所有非问题的漏洞 即 False Positive,FP 指数,误报率尽可能低
Benchmark 将以 TP,FP 为坐标轴绘制一张图,当点越靠近左上方时,认为测试功能能力更优。
Benchmark 最后得分参考约登指数给出,用以下公式计算分值,得分越靠近 11 表明测试工具能力越强。
Sensitivity+Specificity-1=TP+(1-FP)-1=TP-FPSensitivity+Specificity−1=TP+(1−FP)−1=TP−FP
扫描报告解析
Benchmark 目前支持大部分主流测试工具,详见 OWASP Benchmark | OWASP Foundation 页面。当评估测试工具时,可以自行扩展 OWASP-Benchmark/BenchmarkUtils: OWASP Benchmark Project Utilities - Provides scorecard generation and crawling tools for Benchmark style test suites. 中的 org.owasp.benchmarkutils.score.parsers.Reader 类
重写 parse 方法:用于解析报告内容
重写 canRead 方法:用于判断解析哪种报告文件
解析报告中的 url/cwe 等关键信息,实现自动打分。
Demo
生成评分报告
部署运行
Refernece
OWASP Benchmark | OWASP Foundation
文末福利:华为云漏洞扫描服务 VSS 基础版限时免费体验>>>
版权声明: 本文为 InfoQ 作者【华为云开发者社区】的原创文章。
原文链接:【http://xie.infoq.cn/article/1bec6f2edfbf04b4043061d62】。文章转载请联系作者。
评论