Xcheck的java安全检查引擎支持Spring RequestMapping、JAX-RS、WebService和Java Servlet几种常用web接口的代码安全检查,目前内部误报率数据统计低于10%,扫描速度1w+行每秒。
覆盖漏洞类别包括但不限于以下:
系统命令注入
模板注入
反序列化
路径穿越漏洞
SQL注入
XML实体注入
XPATH注入
OWASP benchmark是OWASP组织下的一个开源项目,又叫作OWASP基准测试项目,它是免费且开放的测试套件。可用来评估那些自动化安全扫描工具的速度、覆盖范围和准确性。
xcheck-java benchmark评测结果
从上图结果可以看出,对注入类漏洞(LDAPI、PATH Traversal、SQLI、XPATHI、CMDI)Xcheck的召回率均达到了100%。
某商业化产品benchmark评测结果
从上图可以看出,对于基于benchmark评测,Xcheck的测试结果是与现有的某些商业化的代码检查工具的测试结果是不相上下的。
在对内部项目的代码检查中,发现一个项目存在命令注入漏洞,经过查找,确认是已经披露出来的Apache Ambari任意代码执行漏洞——CVE-2014-3582。
发现漏洞
CVE-2014-3582
漏洞分析如下:
java/org/apache/ambari/server/security/unsecured/rest/CertificateSign.java
,63行污点引入
java/org/apache/ambari/server/security/CertificateManager.java
,187行。在192行将污点传递给agentHostname
,在239行agentHostname
传递给agentCrtName
,然后又到scriptArgs
当中。signAgentCrt函数
污点传递
java/org/apache/ambari/server/security/CertificateManager.java
,271行。调用runCommand
函数,然后触发漏洞。调用runCommand函数
runCommand执行命令触发漏洞
整理数据流分析图如下:
数据流分析
Xcheck的Java引擎还在不断优化提升过程中,期间也发现不少开源项目的0day漏洞,待修复之后会分享出来,敬请期待。
想了解Xcheck更多信息或者代码安全审计相关技术欢迎关注xcheck公众号~