google/osv-scanner-action

GitHub: google/osv-scanner-action

Google 官方的 GitHub Action,利用 OSV.dev 数据库在 CI/CD 中自动扫描项目依赖的已知漏洞。

Stars: 89 | Forks: 36

# OSV-Scanner CI/CD Action [![Release v2.3.8](https://img.shields.io/badge/release-v2.3.8-blue?style=flat)](https://github.com/google/osv-scanner-action/releases) OSV-Scanner CI/CD action 利用 [OSV.dev](https://osv.dev/) 数据库和 [OSV-Scanner](https://google.github.io/osv-scanner/) CLI 工具来追踪并通知您在 11 种以上的[语言和生态系统](https://google.github.io/osv-scanner/supported-languages-and-lockfiles/)依赖项中存在的已知漏洞。 我们目前为 GitHub 提供两种不同的可重用工作流: 1. 一个会在每次 [pull request](https://google.github.io/osv-scanner/github-action/#scan-on-pull-request) 时触发扫描的工作流,并且仅报告通过该 pull request 引入的新漏洞。 2. 一个执行全面漏洞扫描的工作流,可以配置为在 push 或[定期计划](https://google.github.io/osv-scanner/github-action/#scheduled-scans)时扫描。全面漏洞扫描也可以配置为[在发布时](https://google.github.io/osv-scanner/github-action/#scan-on-release)运行,以防止在依赖项包含已知漏洞的情况下进行发布。 目前没有针对其他平台的预构建工作流,但我们欢迎任何相关贡献! ### 定期扫描 定期扫描您的项目是否存在漏洞,可以提醒您依赖树中出现的新漏洞。定期扫描将在设定的时间表或推送新 commit 时扫描您的项目,并报告所有已知漏洞。如果发现漏洞,结果将被报告到“Code scanning”页面。 | OSV-Scanner Code Scanning 结果 | Code Scanning 详细条目 | | :------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------: | | ![Code scanning 标签页中结果的图片](https://static.pigsec.cn/wp-content/uploads/repos/cas/7c/7c9e21746744e645cadbaadeeb043a961b202fc9b82633eb5dff7de5cb33a326.png) | ![Code scanning 条目中具体细节的图片](https://static.pigsec.cn/wp-content/uploads/repos/cas/31/3157f3cd9b135c20e3879a7ebba0502beb9657521b1b92b8b57819c4fba0cd17.png) | ### 在 pull request 时扫描 在每次 pull request 时扫描您的项目有助于防止漏洞进入您的项目。pull request 扫描会将目标分支的漏洞扫描结果与特性分支的漏洞扫描结果进行比较,如果通过特性分支引入了新漏洞,则检查将失败。如果引入了新漏洞,您可以选择[阻止合并](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches#require-status-checks-before-merging),但默认情况下该检查仅会向用户发出警告。 | OSV-Scanner PR 检查失败 | PR 扫描检查输出 | | :---------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------: | | ![引入易受攻击依赖的 PR 以及 osv-scanner 阻止检查的截图](https://static.pigsec.cn/wp-content/uploads/repos/cas/51/510f295ba98bf3fdc763f421dc021bfd2f082ffcc5e40f48fa4190d96b1b2e66.png) | ![osv-scanner 输出的截图](https://static.pigsec.cn/wp-content/uploads/repos/cas/4a/4a1bb6154feebd32da7795c1db6984309eaceaef88370b0c23efe89e15a21aa9.png) | ## 安装 OSV-Scanner GitHub Action 可以[自动](#automatic-installation)或[手动](#manual-installation)安装。 ### 自动安装 1. 从您的 GitHub 项目主页,点击导航栏中的“Actions”标签。 ![选择仓库导航栏上的 actions 标签。](https://static.pigsec.cn/wp-content/uploads/repos/cas/73/73e7a51e9aae2d80916e1f6c048a98f9fcd91b94c13a091071402eeb49aa6465.png) 2. (如果您已经有现有工作流)在左上角选择“New Workflow”。 3. 搜索“OSV”。 ![图片显示 GitHub Actions 搜索框。](https://static.pigsec.cn/wp-content/uploads/repos/cas/69/695579971cc9b4d355ea3f31aa4f624059f6da362c955cc4cb1a902cdfb8bb78.png) 4. 从工作流列表中选择“OSV Scanner”,然后点击“Configure”。 ![图片显示搜索后的 OSV Scanner 工作流](https://static.pigsec.cn/wp-content/uploads/repos/cas/5e/5e0a062fed2cbcbf0d03cb41b4a52e268aee14cd7cbd6a34e8d114a898f5625c.png) 5. 配置工作流 自动安装的 GitHub Action 包含[定期扫描](#scheduled-scan)和 [pull request 时扫描](#scan-on-pull-request)的功能。 如果您只想要定期扫描,可以注释掉“scan-pr”任务,并仅在“schedule”和“push”时运行该 action。 如果您只想在 pull request 时运行扫描,可以注释掉“scan-scheduled”任务,并仅在“pull request”和“merge group”时运行该 action。 如果您两者都需要,可以保持该 action 不变。如果您出于跟踪目的希望将这些功能分开,我们建议遵循[手动安装说明](#manual-installation)。 5. 提交更改。 ### 手动安装 要为 GitHub 手动安装 CI/CD Action,请遵循我们的[主文档页面](https://google.github.io/osv-scanner/github-action/)上的说明。 ## 自定义 要了解有关 GitHub Action 可选输入项的更多信息,请参阅我们的[主文档页面](https://google.github.io/osv-scanner/github-action/#customization)。 ## 查看结果 维护人员可以通过导航至项目的 `Security > Code Scanning` 标签页来查看定期扫描的结果。也可以通过点击失败 action 的详细信息来查看漏洞详情。 对于 pull request 扫描,可以通过点击失败 action 的详细信息查看结果,无论是在您项目的 actions 标签页还是直接在 PR 上。结果也会包含在 PR 的“Files changed”标签页下的 GitHub annotations 中。
标签:GitHub Action, 代码安全, 漏洞枚举