freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

spotbugs静态代码扫描工具
2023-02-06 13:45:25
所属地 上海

目前在做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扫描效率还是不错的,在一定程度上可以帮助我们检测安全漏洞。大家有兴趣的可以去试用一下。

# web安全
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录