涉及到的源码及jar github

Code Audit For Java Enterprise

一个代码审计的工具,计划包含以下分析引擎:

  1. 语义分析:分析程序中不安全的函数,方法的使用的安全问题

  2. 配置分析:分析项目配置文件中的敏感信息和配置缺失的安全问题

  3. 数据流分析:跟踪,记录并分析程序中的数据传递过程的安全问题

  4. 控制流分析:分析程序特定时间,状态下执行操作指令的安全问题

  5. 结构分析:分析程序上下文环境,结构中的安全问题

目前完成:

正则匹配…..=-=,即引擎2(部分),规则还需优化

用法

目录结构

config.properties配置说明

projectRoot:项目文件的根目录,使用/作为目录分隔符(Windows直接从资源管理器复制路径需要手动修改),扫描结果会保存在该目录下,不能包含中文

rulesPath:规则文件路径,默认在CAFJE目录下的rules目录

suffix:需要匹配文件的后缀,可以配置多种后缀(以,隔开),为空,则匹配所有文件,

示例如下:

config.properties

rules配置说明

编码:UTF-8格式编码

以xml文件作为配置为例

完整配置如下:

DemoRule.xml

需要注意的正则:

结果

结果保存在项目根目录resultCAFJE.txt文件中

使用注意事项

  1. 由于mybatis未预编译方式与中取变量方式{parameter}一样,如果项目使用的是mybatis,建议SQL检测与其他分开。

  2. 可以在使用过程中,逐步排除误报的规则,减少人工审核

  3. 使用过程中,正则可以动态修改添加,即增加优化正则,减少误报

演示

使用VulnWeb作为例子:

结果如下:

结果接不分析了,误报肯定是有的,关键是简化定位到可能存在缺陷位置的过程,如何确定缺陷风险,还是要看个人。

发表评论

电子邮件地址不会被公开。 必填项已用*标注