你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

DevOps 资源的安全建议

本文列出了使用“环境设置”页连接 Azure DevOpsGitHubGitLab 环境时,可能会在 Microsoft Defender for Cloud 中看到的建议。 环境中显示的建议基于要保护的资源和自定义配置。

若要了解可以针对这些建议采取的操作,请参阅 Defender for Cloud 修正建议

详细了解 DevOps 安全性的优点和功能。

DevOps 建议不会影响 安全评分。 要确定要首先解决的建议,请查看每条建议的严重级别及其对安全评分的潜在影响。

DevOps 建议

Azure DevOps 建议

Azure DevOps 存储库应为 Azure DevOps (GHAzDO) 启用 GitHub Advanced Security

说明:Defender for Cloud 中的 DevOps 安全性使用中央控制台,使安全团队能够在 Azure DevOps 中将应用程序和资源从代码保护到云。 为 Azure DevOps (GHAzDO) 存储库启用 GitHub Advanced Security 后,包括 Azure DevOps 的 GitHub Advanced Security,可获取有关 Azure DevOps 存储库中机密、依赖项和代码漏洞的发现结果,这些发现结果显示在 Microsoft Defender for Cloud 中。

严重性:高

Azure DevOps 存储库应处理机密扫描结果

说明:在代码存储库中找到机密。 立即修正以防止安全漏洞。 在存储库中发现的机密可能会被泄露或被攻击者发现,导致应用程序或服务遭到入侵。 注意:Microsoft Security DevOps 凭证扫描工具仅扫描它配置为运行的生成。 因此,结果可能无法反映存储库中机密的完整状态。

严重性:高

Azure DevOps 存储库应处理代码扫描结果

说明:代码存储库中发现了漏洞。 若要改善存储库的安全状况,强烈建议修复这些漏洞。

严重性:中等

Azure DevOps 存储库应处理依赖项漏洞扫描结果

说明:在代码存储库中找到依赖项漏洞。 若要改善存储库的安全状况,强烈建议修复这些漏洞。

严重性:中等

Azure DevOps 存储库应处理基础结构即代码扫描结果

说明:存储库中发现了基础结构即代码安全配置问题。 在模板文件中已检测到以下问题。 若要改善相关云资源的安全状况,强烈建议修复这些问题。

严重性:中等

Azure DevOps 生成管道不应该有可用于生成分支的机密

说明:在公共存储库中,组织外部的人员有可能在分叉存储库中创建分支并运行生成。 在这种情况下,如果启用此设置,外部人员可以访问内部的生成管道机密。

严重性:高

Azure DevOps 服务连接不应该授予对所有管道的访问权限

说明:服务连接用于创建从 Azure Pipelines 到外部和远程服务的连接,以便在作业中执行任务。 管道权限控制哪些管道有权使用服务连接。 为了支持管道操作的安全性,不应该向服务连接授予对所有 YAML 管道的访问权限。 这有助于维护最低特权原则,因为攻击者可以利用一个管道使用的组件中的漏洞攻击有权访问关键资源的其他管道。

严重性:高

Azure DevOps 安全文件不应该授予对所有管道的访问权限

说明:安全文件为开发人员提供了一种存储可在管道之间共享的文件的方法。 这些文件通常用于存储机密,例如签名证书和 SSH 密钥。 如果向安全文件授予对所有 YAML 管道的访问权限,则未经授权的用户可以通过生成 YAML 管道并访问安全文件来窃取安全文件中的信息。

严重性:高

具有机密变量的 Azure DevOps 变量组不应该授予对所有管道的访问权限

说明:变量组存储可能需要传递到 YAML 管道中的值和机密,或跨多个管道提供这些值和机密。 可以在同一项目中的多个管道中共享和使用变量组。 如果包含机密的变量组被标记为可供所有 YAML 管道访问,则攻击者可以通过创建新管道来利用涉及机密变量的资产。

严重性:高

Azure DevOps 经典 Azure 服务连接不应该用于访问订阅

说明:使用 Azure 资源管理器 (ARM) 类型的服务连接而不是 Azure 经典服务连接连接到 Azure 订阅。 ARM 提供多种安全增强功能,例如更强的访问控制、改进的审核、基于 ARM 的部署/治理、托管标识访问权限和用于提供机密的密钥保管库的访问权限、基于 Entra 权限的身份验证以及可简化管理的标记和资源组支持。

严重性:中等

(预览版)Azure DevOps 存储库应已解析 API 安全测试发现

说明:已在代码存储库中找到 API 安全漏洞。 若要改善存储库的安全状况,强烈建议修复这些漏洞。

严重性:中等

GitHub 建议

GitHub 存储库应启用机密扫描

说明:GitHub 扫描存储库中已知类型的机密,以防止对意外提交到存储库的机密的欺诈性使用。 机密扫描将扫描 GitHub 存储库中存在的所有分支上的整个 Git 历史记录,以查找任何机密。 机密的示例包括服务提供程序为进行身份验证而颁发的令牌和私钥。 如果将机密签入存储库,任何对存储库具有读取权限的人都可以使用该机密和这些权限访问外部服务。 机密应存储在项目存储库外部的专用、安全位置。

严重性:高

GitHub 存储库应启用代码扫描

说明:GitHub 使用代码扫描分析代码,以便查找代码中的安全漏洞和错误。 代码扫描可用于查找、会审和优先排列代码中现有问题的修复。 代码扫描还可防止开发人员引入新问题。 扫描可安排在特定的日期和时间,也可以在存储库中发生特定事件(例如推送)时触发。 如果代码扫描发现代码中的潜在漏洞或错误,GitHub 会在存储库中显示警报。 漏洞是项目代码中的问题,可能被人利用来损害项目的机密性、完整性或可用性。

严重性:中等

GitHub 存储库应启用 Dependabot 扫描

说明:GitHub 在检测到影响存储库的代码依赖项中的漏洞时发送 Dependabot 警报。 漏洞是项目代码中的问题,可能被利用来损害机密性、完整性或者该项目或其他使用其代码的项目的可用性。 漏洞的类型、严重性和攻击方法各不相同。 代码依赖于具有安全性漏洞的包时,这种易受攻击的依赖项会导致一系列问题。

严重性:中等

GitHub 存储库应处理机密扫描结果

说明:已在代码存储库中找到机密。 应立即修正此问题以防止安全漏洞。 在存储库中发现的机密可能会被泄露或被攻击者发现,导致应用程序或服务遭到入侵。

严重性:高

GitHub 存储库应处理代码扫描结果

说明:代码存储库中已发现漏洞。 若要改善存储库的安全状况,强烈建议修复这些漏洞。

严重性:中等

GitHub 存储库应处理依赖项漏洞扫描结果

说明:GitHub 存储库应已解决依赖项漏洞扫描发现。

严重性:中等

GitHub 存储库应处理基础结构即代码扫描结果

说明:存储库中发现了基础结构即代码安全配置问题。 在模板文件中已检测到以下问题。 若要改善相关云资源的安全状况,强烈建议修复这些问题。

严重性:中等

GitHub 存储库应该为默认分支启用保护策略

说明:应通过分支保护策略保护存储库的默认分支,以防止意外/恶意更改直接提交到存储库。

严重性:高

GitHub 存储库应该禁用强制推送到默认分支

说明:由于默认分支通常用于部署和其他特权活动,因此应谨慎处理对它所做的任何更改。 启用强制推送可能会对默认分支引入意外或恶意更改。

严重性:中等

GitHub 组织应该启用机密扫描推送保护

说明:推送保护将阻止包含机密的提交,从而防止意外泄露机密。 为了避免凭据泄露的风险,应该为每个已启用机密扫描的存储库自动启用推送保护。

严重性:高

GitHub 存储库不应该使用自承载运行程序

说明:GitHub 上的自承载运行程序缺乏在临时清理虚拟机中操作的保证,并且工作流中的不受信任的代码可能会持续受到威胁。 因此,不应将自承载运行程序用于操作工作流。

严重性:高

GitHub 组织应该将操作工作流权限设置为只读

说明:默认情况下,应向操作工作流授予只读权限,以防止恶意用户利用过度权限的工作流来访问和篡改资源。

严重性:高

GitHub 组织应该让不止一个人拥有管理员权限

说明:至少有两个管理员可降低失去管理员访问权限的风险。 在破窗帐户场景中,这非常有用。

严重性:高

GitHub 组织应将基本权限设置为无权限或读取

说明:应将基本权限设置为“无”或“读取”,以便组织遵循最低特权原则并防止不必要的访问。

严重性:高

(预览版)GitHub 存储库应处理 API 安全测试结果

说明:已在代码存储库中找到 API 安全漏洞。 若要改善存储库的安全状况,强烈建议修复这些漏洞。

严重性:中等

GitLab 建议

GitLab 项目应处理机密扫描结果

说明:已在代码存储库中找到机密。 应立即修正此问题以防止安全漏洞。 在存储库中发现的机密可能会被泄露或被攻击者发现,导致应用程序或服务遭到入侵。

严重性:高

GitLab 项目应处理代码扫描结果

说明:代码存储库中已发现漏洞。 若要改善存储库的安全状况,强烈建议修复这些漏洞。

严重性:中等

GitLab 项目应处理依赖项漏洞扫描结果

说明:GitHub 存储库应已解决依赖项漏洞扫描发现。

严重性:中等

GitLab 项目应处理基础结构即代码扫描结果

说明:存储库中发现了基础结构即代码安全配置问题。 在模板文件中已检测到以下问题。 若要改善相关云资源的安全状况,强烈建议修复这些问题。

严重性:中等

弃用的 DevOps 安全建议

代码存储库应处理代码扫描结果

说明:Defender for Cloud 中的 DevOps 安全性在代码存储库中发现了漏洞。 若要改善存储库的安全状况,强烈建议修复这些漏洞。 (无相关策略)

严重性:中等

代码存储库应处理机密扫描结果

说明:Defender for Cloud 中的 DevOps 安全性在代码存储库中找到了机密。 应立即修正此问题以防止安全漏洞。 在存储库中发现的机密可能会被泄露或被攻击者发现,导致应用程序或服务遭到入侵。 对于 Azure DevOps,Microsoft Security DevOps CredScan 工具仅扫描它配置为运行的生成。 因此,结果可能无法反映存储库中机密的完整状态。 (无相关策略)

严重性:高

代码存储库应处理 Dependabot 扫描结果

说明:Defender for Cloud 中的 DevOps 安全性在代码存储库中发现了漏洞。 若要改善存储库的安全状况,强烈建议修复这些漏洞。 (无相关策略)

严重性:中等

与处理代码扫描结果一样,代码存储库应处理基础结构调查结果

说明:Defender for Cloud 中的 DevOps 安全性已发现基础结构作为存储库中的代码安全配置问题。 在模板文件中已检测到以下问题。 若要改善相关云资源的安全状况,强烈建议修复这些问题。 (无相关策略)

严重性:中等

GitHub 存储库应启用代码扫描

说明:GitHub 使用代码扫描分析代码,以便查找代码中的安全漏洞和错误。 代码扫描可用于查找、会审和优先排列代码中现有问题的修复。 代码扫描还可防止开发人员引入新问题。 扫描可安排在特定的日期和时间,也可以在存储库中发生特定事件(例如推送)时触发。 如果代码扫描发现代码中的潜在漏洞或错误,GitHub 会在存储库中显示警报。 漏洞是项目代码中的问题,可能被人利用来损害项目的机密性、完整性或可用性。 (无相关策略)

严重性:中等

GitHub 存储库应启用机密扫描

说明:GitHub 扫描存储库中已知类型的机密,以防止对意外提交到存储库的机密的欺诈性使用。 机密扫描将扫描 GitHub 存储库中存在的所有分支上的整个 Git 历史记录,以查找任何机密。 机密的示例包括服务提供程序为进行身份验证而颁发的令牌和私钥。 如果将机密签入存储库,任何对存储库具有读取权限的人都可以使用该机密和这些权限访问外部服务。 机密应存储在项目存储库外部的专用、安全位置。 (无相关策略)

严重性:高

GitHub 存储库应启用 Dependabot 扫描

说明:GitHub 在检测到影响存储库的代码依赖项中的漏洞时发送 Dependabot 警报。 漏洞是项目代码中的问题,可能被利用来损害机密性、完整性或者该项目或其他使用其代码的项目的可用性。 漏洞的类型、严重性和攻击方法各不相同。 代码依赖于具有安全性漏洞的包时,这种易受攻击的依赖项会导致一系列问题。 (无相关策略)

严重性:中等