技术速递|GitHub 初学者指南:GitHub 安全入门

作者:Kedasha Kerr

排版:Alan Wang

学习如何使用 GitHub Advanced Security 保护你的项目,并确保它们的安全性。

欢迎回到《GitHub 初学者指南》第三季!

到目前为止,今年我们已经介绍了 GitHub Issues 和 Projects,以及 GitHub Actions。这一次,我们将稍微讨论一下安全性,以及 GitHub 提供了哪些工具来帮助你确保代码的安全。在本文结束时,你将了解如何使用内置工具(例如密钥扫描、Dependabot、代码扫描和 Copilot Autofix)来修复你仓库中的漏洞。

为什么安全性很重要

漏洞是你代码或所使用库中的弱点,攻击者可以利用这些弱点。需要意识到,一旦你将某个库导入到项目中,你就继承了该库的所有风险,即使这些存在漏洞的代码并不是你自己编写的。这就是为什么即使是很小或全新的项目也可能存在漏洞------几乎所有软件都依赖第三方包。

GitHub 通过 GitHub Advanced Security(GHAS)让发现和修复这些问题变得前所未有的简单,这是一个帮助你提升并维护代码质量的产品套件。在公共仓库中,你可以使用 Dependabot、代码扫描、密钥扫描和 Copilot Autofix。如果你想了解更多不同功能,可以查看我们关于 GHAS 的文档。或者继续阅读,我们将带你逐步了解如何启用和使用其中的一些功能。

启用安全功能

第一步是确保 GHAS 已开启。

  1. 进入你的仓库。

  2. 点击页面顶部的 Settings 页签。

  3. 在左侧栏中 "Security" 下选择 Advanced Security

  4. 在 "Dependabot" 下,启用 "Dependabot alerts" 和 "Dependabot security updates"。

  5. 向下滚动到 "Code scanning" 部分。

  6. 对于 "CodeQL analysis",选择 Set up ,然后在上下文菜单中选择 Default

  7. 会出现一个新窗口。选择 Enable CodeQL,无需更改任何设置。

  8. 向下滚动到 "Secret Protection" 并启用它。

这些工具默认在公共仓库中可用。如果你有私有仓库,则需要 GHAS 许可证。在窗口顶部选择 Security 页签,进入该仓库的安全主页。在这里,你将看到你已启用的各种 GHAS 工具选项。你可以在这里查看暴露的密钥、存在漏洞的依赖项以及存在风险的代码路径的警报。现在让我们更详细地看看这些工具。如果你想查看各种警报的显示方式,请记住我们还提供了本文的在线视频版本

使用密钥扫描

GitHub 可以通过密钥扫描帮助你保护敏感信息。如果你不小心提交了 API key 或 token,密钥扫描会在左侧栏的 Security 标签下的 Secret scanning 中标记出来。当你看到警报时,点击具体警报的标题,可以查看检测到的密钥以及它出现的位置。

解决该暴露密钥的一种方法是将其撤销。撤销密钥意味着禁用旧的密钥,使其无法再被使用。通常你需要在该密钥所属的平台上生成一个新密钥,例如 Azure 或 Stripe。

GitHub 无法自动为你撤销密钥。这一步需要你自己完成。不过,密钥扫描会提供早期预警,避免泄露的密钥被真正利用。

在你撤销密钥后,可以通过以下步骤关闭该密钥扫描警报:

  1. 在窗口右上角选择 Close as

  2. 在上下文菜单中选择 Revoked

  3. 点击上下文菜单底部绿色的 Close alert 按钮。

什么是 Dependabot?

Dependabot 是一个代码扫描工具,帮助你保持依赖项为最新状态。还记得我们之前提到的,你会继承项目中引入的每个库的漏洞吗?Dependabot 通过在发现项目依赖库存在漏洞时发出警报来帮助解决这个问题。

要查看 Dependabot 警报,请返回到仓库中的 Security 页签。当你点击某个 Dependabot 警报时,它会带你进入对应的 pull request,以便你更新你的库。在 pull request 页面中,如果向下滚动,你可以通过选择 GitHub Advisory Database 中的 See advisory 查看触发警报的具体安全公告。

在 pull request 页面顶部,点击绿色的 Review security update 按钮来审查版本更新。在合并建议更改之前,你应该始终进行审查。如果一切看起来都没问题,就可以继续合并该 pull request。

Dependabot 会自动将 GitHub 安全公告转化为 pull request,这样你就不需要手动跟踪常见漏洞与暴露。

准备好进阶了吗?

前往 GitHub Skills,尝试一些挑战,了解更多关于 GitHub Advanced Security 的内容并提升你的技能。这些挑战是一种有趣且互动的学习安全知识的方式!

你还可以查看 vulnerable-node 仓库,以获得更多使用这些工具的实践经验。

响应 CodeQL 警报

CodeQL 是用于扫描代码并生成代码扫描警报的引擎(你可以在 Security 页签下找到这些警报)。CodeQL 并非代码扫描工具。它更强大,因为它能够理解数据流,展示输入从哪里开始以及最终流向哪里。

因此,代码扫描警报可以覆盖广泛的潜在场景。当你选择一个代码扫描警报时,它会解释问题,并在可能的情况下提供额外信息,例如修复建议以及示例,用来说明问题和可能的解决方案。

当你理解了警报之后,可以通过以下步骤使用 Copilot Autofix 来解决问题:

  1. 在警报顶部选择 Generate fix 按钮。

  2. Copilot 会建议一个补丁。审查更改并确认它满足你的需求。

  3. 点击底部绿色的 Commit to new branch 按钮。

  4. 在新的弹出窗口中,选择 Open a pull request 选项,然后点击 Commit change

  5. 像处理任何其他 pull request 一样处理这个自动生成的 pull request:进行审查并合并更改。请记住,虽然 Copilot 可以加速安全修复,但整个过程始终由你掌控。

接下来

恭喜!你现在已经学会如何使用 GitHub Advanced Security 来自信地检测并修复代码中的漏洞。公共仓库可以免费使用这些 GHAS 工具,因此你可以从一开始就保护你的项目安全。你可以随时通过 GitHub Skills 或 'vulnerable-node' 仓库来测试你的技能。

如果你想获取更多信息,我们还提供了大量文档。以下是一些可以帮助你入门的链接:

编码愉快!

相关推荐
qq_3810137411 小时前
IntelliJ IDEA中GitHub Copilot完整使用教程:从安装到实战技巧
其他·github·intellij-idea·copilot
上海云盾安全满满12 小时前
游戏业务使用什么防护最安全
安全·游戏
云栖梦泽14 小时前
AI安全合规与治理:行业发展趋势与职业展望
大数据·人工智能·安全
小陈工14 小时前
2026年4月2日技术资讯洞察:数据库融合革命、端侧AI突破与脑机接口产业化
开发语言·前端·数据库·人工智能·python·安全
happyprince15 小时前
2026年04月07日热门github项目
github
奔跑草-15 小时前
【AI日报】每日AI最新消息2026-04-07
人工智能·大模型·github·开源软件
小黄人软件15 小时前
【研究让AI做擅长的事】有哪些强大的研究方法 ,让研究自动发生
人工智能·安全
CoovallyAIHub15 小时前
Sensors 2026 | 从无人机拍摄到跑道缺陷地图,机场巡检全流程自动化——Zadar机场全跑道验证
数据库·架构·github
CoovallyAIHub16 小时前
15K Star中文首发!$5部署一个会自我进化的私人Agent——NousResearch开源Hermes Agent
git·架构·github