目前在做java的代码审计,找到一个插件用着感觉还可以,就是spotbugs这里记录一下使用方式
什么是SpotBugs
SpotBugs是Findbugs的继任者(Findbugs已经不再维护),用于对Java代码进行静态分析,查找相关的漏洞,SpotBugs比Findbugs拥有更多的校验规则。静态分析会检查Java字节码(.class文件)是否存在错误模式(错误模式是一种经常容易出错的代码表达式/习惯用法,其中主要包括:错误使用编程语言的某些特性、误用的API方法、在维护期间修改代码时误解变量、错别字,使用错误的运算符)注: SpotBugs 需要当前的JDK环境为 1.8以上,但可以对1.0~1.9的代码来进行检查。SpotBugs是对.class文件进行扫描的,所以工程必须成功完成编译并生成.class文件。可以通过如下方式使用Spotbugs:
• Ant
• Maven
• IDEA
• Eclipse
同时,SpotBugs是可扩展的,可以通过插件添加新的检测器
spotbug的漏洞分类
1.Bad practice(90余种)不良的实践,违反常识性的或者必要的代码惯例,比如重写了equals却没有重写hashcode。
2.Correctness (150余种) 此处的代码有可能在运行时导致错误,与预期不符,比如空指针错误。
3.Experimental(9种)spotbugs在此处不适用,大概是匹配模式不太适用于此处。
4.Internationalization(2种)原文是:code flaws having to do with internationalization and locale,没有遇到过类似的错误。
5.Malicious code vulnerability(17种)代码具有被恶意代码攻击的风险。比如返回一个可变类型引用并保存在对象字段中。
6.Multithreaded correctness(46种)线程安全,比如可能造成死锁的代码。
7.Bogus random noise(4种)并不是软件中的实际错误。
8.Performance(37种)性能不好的代码,比如在迭代中使用“+”连接字符串。
9.Security(11种)使用了不安全的外部输入,可能导致远程控制的漏洞。
10.Dodgy(87种)导致自身混乱的代码
IDEA的安装方式
可以直接都插件中搜索spotbugs,选择安装即可
spotbugs使用
1.添加安全插件
四个插件分别为添加findsBugs插件,添加寻找安全bugs插件,添加对于安卓的findbugs插件,添加插件本地安装包
2.扫描项目
总结
总体来说,spotbugs扫描效率还是不错的,在一定程度上可以帮助我们检测安全漏洞。大家有兴趣的可以去试用一下。