开源静态代码分析引擎,基于 Semgrep 分叉,用语义 grep 规则查找代码中的安全问题和模式。
securego/gosec
一款静态分析工具,扫描 Go 源代码中的常见安全漏洞和不安全写法。
- Star
- 9,000
- Fork
- 731
- 未关闭 Issue
- 5
- 最近提交
- 4天前
这是什么?
gosec 通过分析 Go 代码的 AST 和 SSA 表示来检查源码中的安全问题。内置的规则覆盖硬编码凭据、不安全的 API 用法、薄弱的加密与 TLS 配置、文件权限与路径处理以及黑名单导入等,每条规则都对应一个 CWE 编号。
其污点分析规则会追踪用户输入流向敏感函数的路径,覆盖 SQL、命令、模板、SMTP 等注入类问题,以及 SSRF、路径遍历、XSS、开放重定向和不安全的反序列化。发现的问题可以通过 #nosec 或 //gosec:disable 注释在代码中就地忽略,也可以按规则、路径、严重程度和置信度进行过滤。
扫描结果可导出为 text、JSON、YAML、CSV、JUnit XML、HTML、SonarQube、golint 或 SARIF 格式。工具既可以作为 GitHub Action 运行,也可以通过 go install 安装到本地。
核心功能
- 01基于模式的规则,检测硬编码凭据、弱加密等常见 Go 安全问题
- 02污点分析追踪用户输入流入 SQL、命令、路径、SSRF、XSS 等敏感函数的情况
- 03支持用 #nosec 或 //gosec:disable 就地忽略误报,并可要求填写理由
- 04支持按路径排除规则,并按严重程度和置信度过滤结果
- 05提供 SARIF 等多种报告格式,便于接入 GitHub 代码扫描
适用场景
- 在 CI 流水线中通过 GitHub Action 对 Go 代码执行安全检查
- 将 SARIF 结果上传到 GitHub 代码扫描,辅助 Pull Request 审查
- 发布前审计 Go 代码库中的注入、弱加密或不安全 TLS 配置
快速上手
- 1
使用 go install 安装 gosec(需要 Go 1.25 或更高版本)
go install github.com/securego/gosec/v2/cmd/gosec@latest - 2
扫描当前模块中的所有包
gosec ./...
使用前须知
- 安装和构建需要 Go 1.25 或更高版本。
收录于专题
标签
常见问题
- gosec 是什么?
- 一款静态分析工具,扫描 Go 源代码中的常见安全漏洞和不安全写法。 gosec 通过分析 Go 代码的 AST 和 SSA 表示来检查源码中的安全问题。内置的规则覆盖硬编码凭据、不安全的 API 用法、薄弱的加密与 TLS 配置、文件权限与路径处理以及黑名单导入等,每条规则都对应一个 CWE 编号。
- gosec 可以免费使用吗?用的什么许可证?
- gosec 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
- gosec 还在维护吗?
- 活跃维护中。gosec 最近一次提交是在 2026年11月3日。
- gosec 适合用来做什么?
- 在 CI 流水线中通过 GitHub Action 对 Go 代码执行安全检查 将 SARIF 结果上传到 GitHub 代码扫描,辅助 Pull Request 审查 发布前审计 Go 代码库中的注入、弱加密或不安全 TLS 配置
- gosec 怎么安装和运行?
- 使用 go install 安装 gosec(需要 Go 1.25 或更高版本): go install github.com/securego/gosec/v2/cmd/gosec@latest 扫描当前模块中的所有包: gosec ./...
- 在哪里获取 gosec?
- 源代码和安装说明在 GitHub 上:https://github.com/securego/gosec
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
一款基于 Rust 的密钥扫描工具,可检测泄露的凭证、验证是否有效、梳理其访问范围并支持吊销。
面向代码与 AI 智能体配置的安全扫描器,内置 LLM 应用、MCP 服务与泄露密钥等检测规则。
面向 GitHub Actions、Dependabot 和 pre-commit 等 CI/CD 配置的静态分析工具,用于查找并修复安全问题。
开源静态分析工具,用接近源码的模式查找代码缺陷并执行编码规范,支持 30 多种语言。
开源 AI 代码审查工具,在推送前用独立审查器检查编码代理写的改动,支持 Claude Code、Codex、Cursor 和 Cline。