Xcheck之Java安全检查引擎
2020-10-30 19:31:48 Author: mp.weixin.qq.com(查看原文) 阅读量:1 收藏

Java安全检查引擎

Xcheck的java安全检查引擎支持Spring RequestMappingJAX-RSWebServiceJava Servlet几种常用web接口的代码安全检查,目前内部误报率数据统计低于10%,扫描速度1w+行每秒。

覆盖漏洞类别包括但不限于以下:

  • 系统命令注入
  • 模板注入
  • 反序列化
  • 路径穿越漏洞
  • SQL注入
  • XML实体注入
  • XPATH注入

OWASP Benchemark评测结果

OWASP benchmark是OWASP组织下的一个开源项目,又叫作OWASP基准测试项目,它是免费且开放的测试套件。可用来评估那些自动化安全扫描工具的速度、覆盖范围和准确性

xcheck-java benchmark评测结果

从上图结果可以看出,对注入类漏洞(LDAPI、PATH Traversal、SQLI、XPATHI、CMDI)Xcheck的召回率均达到了100%

某商业化产品benchmark评测结果

从上图可以看出,对于基于benchmark评测,Xcheck的测试结果是与现有的某些商业化的代码检查工具的测试结果是不相上下的。

Apache Ambari任意代码执行漏洞:CVE-2014-3582 检测

在对内部项目的代码检查中,发现一个项目存在命令注入漏洞,经过查找,确认是已经披露出来的Apache Ambari任意代码执行漏洞——CVE-2014-3582。

发现漏洞
CVE-2014-3582

漏洞分析如下:

  1. 污点引入,java/org/apache/ambari/server/security/unsecured/rest/CertificateSign.java,63行
污点引入
  1. 跟进signAgentCrt函数,java/org/apache/ambari/server/security/CertificateManager.java,187行。在192行将污点传递给agentHostname,在239行agentHostname传递给agentCrtName,然后又到scriptArgs当中。
signAgentCrt函数
污点传递
  1. java/org/apache/ambari/server/security/CertificateManager.java,271行。调用runCommand函数,然后触发漏洞。
调用runCommand函数
runCommand执行命令触发漏洞

整理数据流分析图如下:

数据流分析

最后

Xcheck的Java引擎还在不断优化提升过程中,期间也发现不少开源项目的0day漏洞,待修复之后会分享出来,敬请期待。


想了解Xcheck更多信息或者代码安全审计相关技术欢迎关注xcheck公众号~


文章来源: https://mp.weixin.qq.com/s?__biz=Mzg2ODQ3ODE1NA==&mid=2247484036&idx=1&sn=af79ed3ac8b28c621703eaf23d5fef8d&chksm=ceaaff21f9dd7637e7cfd1cc79fb2ec44d49b4e750f514e5fe790dad8697905a605cbc2916d8&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh