GosecGolang 安全检查器
Gosec 是一个 Golang 安全检查器,通过扫描 Go AST 来检查源代码的安全问题。
Gosec 可以被配置为只运行一个规则子集,排除某些文件路径,并产生不同格式的报告。默认情况下,所有的规则都是针对所提供的输入文件运行的。要从当前目录进行递归扫描,你可以提供./...作为输入参数。
Available rules
- G101:查找硬编码凭据
- G102:绑定到所有接口
- G103:审计不安全块的使用
- G104:未检查审计错误
- G106:审计 ssh.InsecureIgnoreHostKey 的使用
- G107:作为污点输入提供给 HTTP 请求的 URL
- G108:分析端点自动暴露在 /debug/pprof
- G109:strconv.Atoi 结果转换为 int16/32 造成的潜在整数溢出
- G110:通过解压炸弹的潜在 DoS 漏洞
- G201:使用格式字符串构建 SQL 查询
- G202:使用字符串连接的 SQL 查询构造
- G203:在 HTML 模板中使用未转义数据
- G204:审计命令执行的使用
- G301:创建目录时使用的文件权限较差
- G302:与 chmod 一起使用的文件权限较差
- G303:使用可预测的路径创建临时文件
- G304:作为污点输入提供的文件路径
- G305:解压 zip/tar 存档时的文件遍历
- G306:写入新文件时使用的文件权限较差
- G307:推迟返回错误的方法
- G401:检测DES、RC4、MD5或SHA1的使用
- G402:查找错误的 TLS 连接设置
- G403:确保最小 RSA 密钥长度为 2048 位
- G404:不安全的随机数源(rand)
- G501:导入阻止列表:crypto/md5
- G502:导入阻止列表:crypto/des
- G503:导入阻止列表:crypto/rc4
- G504:导入阻止列表:net/http/cgi
- G505:导入阻止列表:crypto/sha1
- G601:范围语句中项目的隐式内存别名
Retired rules
- G105:审计 math/big.Int.Exp 的使用 - CVE 已修复
评论