灰盒web安全检测
在传统的应用测试方法中, 灰盒测试是介于白盒测试与黑盒测试之间。灰盒web安全检测依然遵循灰盒测试概念, 但只关注代码实现的安全部分。web应用代码层面的安全问题或安全漏洞绝大部分来自外部输入, 在代码业务逻辑中关键函数的执行未做安全处理, 最终形成安全问题或安全漏洞。
黑盒及白盒安全测试局限性
黑盒局限性, 如:传统web安全扫描器。
漏洞漏报率极高----web2.0后时代, 应用业务逻辑功能实现的复杂性或有复杂权限的验证场景, 传统扫描器的爬虫引擎对业务逻辑是无法绝大部分覆盖的, 造成大量漏报。
性能及效率----对于同一个漏洞类型的不同漏洞场景, 可能就需要多一条验证策略, 长期积累后, 大量冗余, 测试时间也不断增加, 造成扫描器性能及效率低下。
漏洞误报率较高----网络环境、扫描器性能、策略缺陷等不可控因素影响, 造成大量误报。
白盒局限性, 如:常见代码审计工具。
检测效率低下----对于大型的web应用,已经不再是几千上万行代码, 可能是几十或上百万行的代码, 无论是审计工具的运行效率还是漏洞的验证效率都是低下的。
代码场景覆盖难----对于日益复杂的代码实现场景; 大量的开源项目; 特别是封装包代码, 如何用策略去预计一位程序员的实现代码? 策略是难以覆盖到大量漏洞场景。
漏洞准确性低----对于有安全处理的实现代码, 由于纯粹的白盒无法运行代码, 靠策略去确定一个漏洞是不准确的, 同样做了大量冗余的工作, 也降低效率。
以灰盒为主的web安全测试新趋势
目前国外, 如:惠普及IBM等公司已经开始实现灰盒安全测试,国内尚未出现此类产品或工具。它表现出, 高效率的测试吧; 业务逻辑覆盖率高; 漏洞准确性极高等。
灰盒安全测试是站在黑盒与白盒安全测试的平衡位置, 把测试放到应用功能的业务逻辑层面上,基本可以覆盖到应用的所有业务逻辑, 策略极少, 远远低于黑盒及白盒测试。检测结果准确性极高,至少可以从外部参数污染关键函数, 造成安全问题及安全漏洞。灰盒测试工具在实现上, 可以让测试效率更高, 符合复杂应用的安全测试需求。更重要的是, 它规范了代码安全, 从漏洞根源上纠正程序员的代码错误, 形成一条安全编码基线, 现在及未来选择灰盒为主的安全测试势在必行。
J2EE灰盒检测与版本控制平台内测版
安恒信息已经开始实现灰盒安全测试工具, 走在国内web灰盒安全测试的最前端。J2EE灰盒检测与版本控制平台演示版正在内测中, 检测常见代码层面漏洞类型: 反射型XSS、存储型XSS、SQL注入、文件包含、系统命令注入、安全目录绕过、OGNL表达式注入、URL跳转等。
创建测试项目:
创建版本:
选择主动模式或被动模式 :
被动模式 , 业务逻辑覆盖率更高 :
漏洞结果, 让测试人员及开发人员快速精准验证漏洞
从内测部分结果显示, 灰盒安全测试的综合效果已经远超传统黑盒及白盒代码审计工具, 特别在反射型XSS, 存储型XSS, 以及SQL注入等漏洞类型的检测表现更为优秀。同样对国内及国外的开源项目的检测中, 测试应用部署后, 几分钟内就能快速发现大量高危0day漏洞。灰盒安全检测将解决开发语言在代码层面上常见安全漏洞。