你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本文列出了使用“环境设置”页连接Azure DevOps、GitHub或 GitLab 环境时,Microsoft Defender for Cloud中可能看到的建议。
环境中显示的建议基于要保护的资源和自定义配置。 可以在门户中 查看适用于资源的建议。
若要了解可针对这些建议执行的操作,请参阅 Defender for Cloud0>修正建议。
详细了解 DevOps 安全 优势和功能。
DevOps 建议不会影响 安全评分。 若要确定首先解决的建议,请查看每个建议的严重性及其对安全功能分数的潜在影响。
Azure DevOps建议
Azure DevOps存储库应已启用Azure DevOps的GitHub高级安全性(GHAzDO)
说明:Defender for Cloud中的 DevOps 安全性使用中央控制台,使安全团队能够跨Azure DevOps保护应用程序和资源,使其免受代码到云。 通过为 Azure DevOps (GHAzDO) 存储库启用GitHub高级安全性(包括用于Azure DevOps的 GitHub 高级安全性),可以发现Azure DevOps存储库中显示的机密、依赖项和代码漏洞Microsoft Defender for Cloud。
严重性:高
Azure DevOps存储库应已解析机密扫描发现
说明:在代码存储库中找到机密。 立即修正以防止安全漏洞。 在存储库中找到的机密可能会泄露,或被对手发现,从而导致应用程序或服务遭到入侵。 Microsoft 安全 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 安全漏洞。 若要改善存储库的安全状况,强烈建议修复这些漏洞。
严重性:中
(预览版)Azure DevOps存储库至少需要对代码推送进行两个审阅者批准
说明:若要防止直接提交意外或恶意更改,请务必为Azure DevOps存储库中的默认分支实施保护策略。 建议在代码与默认分支合并之前,至少要求两个代码审阅者批准拉取请求。 通过要求至少两名审阅者批准,可以降低未经授权的修改的风险,这可能导致系统不稳定或安全漏洞。
如果已将Azure DevOps连接到Defender for Cloud,则会在Defender for Cloud基本安全状况中提供此建议。
严重性:高
(预览版)Azure DevOps存储库不应允许请求者批准其自己的拉取请求
说明:若要防止直接提交意外或恶意更改,请务必为Azure DevOps存储库中的默认分支实施保护策略。 我们建议禁止拉取请求创建者批准自己的提交,以确保每个更改都由作者以外的其他人进行客观审查。 通过执行此操作,可以降低未经授权的修改的风险,这可能导致系统不稳定或安全漏洞。
如果已将Azure DevOps连接到Defender for Cloud,则会在Defender for Cloud基本安全状况中提供此建议。
严重性:高
(预览版)Azure DevOps项目应禁用经典管道的创建
说明:禁用经典生成和发布管道的创建可防止安全考虑源自 YAML 和经典管道共享同一资源,例如同一服务连接。 潜在攻击者可以利用经典管道来创建绕过新式 YAML 管道设置的典型防御机制的进程。
严重性:高
GitHub建议
GitHub组织不应使操作机密可供所有存储库访问
说明:对于存储在GitHub组织级别的GitHub操作工作流中使用的机密,可以使用访问策略来控制哪些存储库可以使用组织机密。 组织级机密允许在多个存储库之间共享机密。 这减少了创建重复机密的需求。 但是,在存储库可以访问机密后,对存储库具有写入访问权限的任何人都可以从工作流中的任何分支访问机密。 若要减少攻击面,请确保只能从所选存储库访问机密。
如果已将Azure DevOps连接到Defender for Cloud,则会在Defender for Cloud基本安全状况中提供此建议。
严重性:高
GitHub存储库应启用机密扫描
Description:GitHub扫描存储库中已知类型的机密,以防止对意外提交到存储库的机密的欺诈性使用。 机密扫描将扫描GitHub存储库中存在的所有分支上的整个 Git 历史记录,以获取任何机密。 机密的示例包括服务提供程序为进行身份验证而颁发的令牌和私钥。 如果将机密签入存储库,任何对存储库具有读取权限的人都可以使用该机密和这些权限访问外部服务。 机密应存储在项目存储库外部的专用、安全位置。
严重性:高
GitHub存储库应启用代码扫描
Description:GitHub使用代码扫描来分析代码,以便在代码中查找安全漏洞和错误。 代码扫描可用于查找、会审和优先排列代码中现有问题的修复。 代码扫描还可防止开发人员引入新问题。 扫描可安排在特定的日期和时间,也可以在存储库中发生特定事件(例如推送)时触发。 如果代码扫描在代码中发现潜在的漏洞或错误,GitHub在存储库中显示警报。 漏洞是项目代码中的问题,可能被人利用来损害项目的机密性、完整性或可用性。
严重性:中
GitHub存储库应启用 Dependabot 扫描
Description:GitHub检测到影响存储库的代码依赖项中的漏洞时发送 Dependabot 警报。 漏洞是项目代码中的问题,可能被利用来损害机密性、完整性或者该项目或其他使用其代码的项目的可用性。 漏洞的类型、严重性和攻击方法各不相同。 代码依赖于具有安全性漏洞的包时,这种易受攻击的依赖项会导致一系列问题。
严重性:中
GitHub存储库应已解决机密扫描发现
说明:在代码存储库中找到的机密。 应立即修正此问题以防止安全漏洞。 在存储库中发现的机密可能会被泄露或被攻击者发现,导致应用程序或服务遭到入侵。
严重性:高
GitHub 存储库应已解决代码扫描发现的问题
说明:在代码存储库中找到的漏洞。 若要改善存储库的安全状况,强烈建议修复这些漏洞。
严重性:中
GitHub存储库应已解决依赖项漏洞扫描发现
说明:GitHub存储库应已解决依赖项漏洞扫描发现。
严重性:中
GitHub 存储库中的基础设施即代码扫描发现的问题应已解决
说明:存储库中发现了基础结构即代码安全配置问题。 模板文件中检测到这些问题。 若要改善相关云资源的安全状况,强烈建议修复这些问题。
严重性:中
GitHub存储库应启用默认分支的保护策略
说明:应通过分支保护策略保护存储库的默认分支,以防止意外/恶意更改直接提交到存储库。
严重性:高
GitHub存储库应强制推送到默认分支已禁用
说明:由于默认分支通常用于部署和其他特权活动,因此应谨慎处理对它所做的任何更改。 启用强制推送可能会对默认分支引入意外或恶意更改。
严重性:中
GitHub组织应启用机密扫描推送保护
说明:推送保护将阻止包含机密的提交,从而防止意外泄露机密。 为了避免凭据泄露的风险,应为每个已启用机密扫描的存储库自动启用推送保护。
严重性:高
GitHub存储库不应使用自承载运行程序
说明:Self-Hosted 运行程序GitHub缺乏临时清理虚拟机中操作的保证,并且工作流中的不受信任的代码可能会持续受到威胁。 因此,不应将 Self-Hosted 运行程序用于操作工作流。
严重性:高
GitHub组织应将操作工作流权限设置为只读
说明:默认情况下,应向操作工作流授予只读权限,以防止恶意用户利用过度权限的工作流来访问和篡改资源。
严重性:高
GitHub组织应拥有多个具有管理员权限的人员
说明:至少有两个管理员可降低失去管理员访问权限的风险。 在破窗帐户方案中,这非常有用。
严重性:高
GitHub组织应将基本权限设置为“无权限”或“读取”
说明:应将基本权限设置为“无”或“读取”,以便组织遵循最低特权原则并防止不必要的访问。
严重性:高
(预览版)GitHub存储库应已解析 API 安全测试发现
说明:在代码存储库中找到 API 安全漏洞。 若要改善存储库的安全状况,强烈建议修复这些漏洞。
严重性:中
(预览版)GitHub组织不应使操作机密可供所有存储库访问
说明:对于存储在GitHub组织级别的GitHub操作工作流中使用的机密,可以使用访问策略来控制哪些存储库可以使用组织机密。 组织级机密允许在多个存储库之间共享机密,从而减少创建重复机密的需求。 但是,当存储库可以访问机密时,对存储库具有写入访问权限的任何人都可以从工作流中的任何分支访问机密。 若要减少攻击面,请确保只能从所选存储库访问机密。
严重性:高
(预览版)GitHub组织应阻止与公共代码匹配的Copilot 建议
说明:启用GitHub Copilot筛选器以阻止与公共代码匹配的代码建议,GitHub可增强安全性和法律合规性。 它防止无意中合并公共或开源代码,降低法律问题的风险,并确保遵守许可条款。 此外,它还有助于避免将公共代码的潜在漏洞引入组织的项目中,从而保持更高的代码质量和安全性。 启用筛选器后,GitHub Copilot根据GitHub上的公共代码检查代码建议,其周围代码约为 150 个字符。 如果有匹配项或接近匹配项,则不会显示建议。
严重性:高
(预览版)GitHub组织应为外部协作者强制实施多重身份验证
说明:为GitHub组织中的外部协作者强制实施多重身份验证是一项安全措施,它要求协作者除了使用密码之外的其他标识形式来访问组织的存储库和资源。 这通过防范未经授权的访问来增强安全性,即使密码遭到入侵,也有助于确保符合行业标准。 它涉及通知协作者有关转换的要求和提供支持,最终降低了数据泄露的风险。
严重性:高
(预览版)GitHub存储库应要求对代码推送进行至少两个审阅者批准
说明:若要防止直接提交意外或恶意更改,请务必为GitHub存储库中的默认分支实施保护策略。 建议在代码与默认分支合并之前,至少要求两个代码审阅者批准拉取请求。 通过要求至少两名审阅者批准,可以降低未经授权的修改的风险,这可能导致系统不稳定或安全漏洞。
严重性:高
GitLab 建议
GitLab 项目应已解析机密扫描发现
说明:在代码存储库中找到机密。 应立即修正此问题以防止安全漏洞。 在存储库中发现的机密可能会被泄露或被攻击者发现,导致应用程序或服务遭到入侵。
严重性:高
GitLab 项目的代码扫描发现的问题应已解决
说明:代码存储库中发现了漏洞。 若要改善存储库的安全状况,强烈建议修复这些漏洞。
严重性:中
GitLab 项目应已解决依赖项漏洞扫描发现
说明:GitHub存储库应已解决依赖项漏洞扫描发现。
严重性:中
GitLab 项目应确保基础设施即代码扫描发现的问题已得到解决
说明:存储库中发现了基础结构即代码安全配置问题。 模板文件中检测到显示的问题。 若要改善相关云资源的安全状况,强烈建议修复这些问题。
严重性:中
弃用的 DevOps 安全建议
代码存储库应处理代码扫描结果
说明:Defender for Cloud中的 DevOps 安全性在代码存储库中发现了漏洞。 若要改善存储库的安全状况,强烈建议修复这些漏洞。 (无相关策略)
严重性:中
代码存储库应处理机密扫描结果
说明:Defender for Cloud中的 DevOps 安全性在代码存储库中发现了机密。 应立即修正此问题以防止安全漏洞。 在存储库中发现的机密可能会被泄露或被攻击者发现,导致应用程序或服务遭到入侵。 对于Azure DevOps,Microsoft 安全 DevOps CredScan 工具仅扫描配置为运行它的生成。 因此,结果可能无法反映存储库中机密的完整状态。 (无相关策略)
严重性:高
代码存储库应处理 Dependabot 扫描结果
说明:Defender for Cloud中的 DevOps 安全性在代码存储库中发现了漏洞。 若要改善存储库的安全状况,强烈建议修复这些漏洞。 (无相关策略)
严重性:中
与处理代码扫描结果一样,代码存储库应处理基础结构调查结果
说明:Defender for Cloud中的 DevOps 安全性已发现基础结构作为存储库中的代码安全配置问题。 模板文件中检测到显示的问题。 若要改善相关云资源的安全状况,强烈建议修复这些问题。 (无相关策略)
严重性:中
GitHub存储库应启用代码扫描
Description:GitHub使用代码扫描来分析代码,以便在代码中查找安全漏洞和错误。 代码扫描可用于查找、会审和优先排列代码中现有问题的修复。 代码扫描还可防止开发人员引入新问题。 扫描可安排在特定的日期和时间,也可以在存储库中发生特定事件(例如推送)时触发。 如果代码扫描在代码中发现潜在的漏洞或错误,GitHub在存储库中显示警报。 漏洞是项目代码中的问题,可能被人利用来损害项目的机密性、完整性或可用性。 (无相关策略)
严重性:中
GitHub存储库应启用机密扫描
Description:GitHub扫描存储库中已知类型的机密,以防止对意外提交到存储库的机密的欺诈性使用。 机密扫描将扫描GitHub存储库中存在的所有分支上的整个 Git 历史记录,以获取任何机密。 机密的示例包括服务提供程序为进行身份验证而颁发的令牌和私钥。 如果将机密签入存储库,任何对存储库具有读取权限的人都可以使用该机密和这些权限访问外部服务。 机密应存储在项目存储库外部的专用、安全位置。 (无相关策略)
严重性:高
GitHub存储库应启用 Dependabot 扫描
Description:GitHub检测到影响存储库的代码依赖项中的漏洞时发送 Dependabot 警报。 漏洞是项目代码中的问题,可能被利用来损害机密性、完整性或者该项目或其他使用其代码的项目的可用性。 漏洞的类型、严重性和攻击方法各不相同。 代码依赖于具有安全性漏洞的包时,这种易受攻击的依赖项会导致一系列问题。 (无相关策略)
严重性:中