软件供应链安全检查清单 保护组件和管道免遭攻击的7条规则 易受软攻件击包的 恶意映像 机密暴露 映像感染 过访度问宽权松限的 > 代码 </> 构建 部署 运行 >... 不安全的模板 V不C安S全配的置 CI不/C安D全管的道 手动修改资源 图1:软件供应链漏洞 制造供应链需要严格的质量控制和安全性,以确保零件安全交付、准确组装,并为客户安全提供最终产品。同样,软件供应链对于从开发到生产过程中安全组装和交付应用而言至关重要。 随着技术的发展以及构成供应链的软件组件和交付管道变得越来越复杂,对其实施保护的要求也越来越高。解决软件供应链安全问题需要确保各个组件和基础交付管道的安全。 以下是7条战术规则(即软件供应链安全检查清单)可用于保护软件供应链,从而加快识别、排序和解决风险以阻止供应链安全攻击的速度。 1.扫描基础架构即代码(IaC)中的错误配置 Terraform®、CloudFormation®、Azure®资源管理器(ARM)和Kubernetes®清单等IaC模板简化了基础架构部署的供应和管理。但是,在默认情况下,这些清单可能并不安全。 为了确保IaC遵循基础架构安全最佳实践并为运行应用的基础架构设置基准状态,IaC安全性至关重要。在IaC中查找和修复错误配置会增加攻击应用的难度,并降低已得逞攻击的影响范围。此外,IaC模板中可能包含敏感数据,如私有或特权公司数据和信息以及云环境的访问权限。推荐使用的供应链安全措施: •通过现有开发者工具和工作流程(如集成开发环境(IDE))或作为预提交勾连点实施IaC扫描,以便与其他软件测试一起尽早提供反馈。 •将IaC策略实施嵌入到版本控制系统(VCS)和连续集成/连续部署(CI/CD)管道中,以确保代码在部署前的安全性。 •确保每个IaC部署都是通过具有受监控网络的已知机器上经过验证的用户而触发。 2.扫描开源软件包中的已知漏洞 现代应用包含高达98%的开源组件,其中大部分包含已知漏洞。为了跟踪这些漏洞,常见漏洞和暴露(CVE)等数据库提供已知漏洞的所有历史信息、元数据和背景。 发现代码库中的漏洞并进行定期升级或修补是保护应用的基础环节。推荐使用的供应链安全措施: •扫描您的本地和托管代码存储库以查找已知漏洞,并在发现漏洞时提交软件包。 •持续扫描存储库,及时获取最新发布的CVE。 •当无法彻底修补时,可以利用CVSS和业务关键性等风险评分来确定更新包的优先级。 3.在整个开发生命周期中扫描映像 容器中增加了另一个抽象层,有助于构建可在任意位置运行的软件。但是涉及到安全性时,容器中的抽象层可能包含错误配置和漏洞。 例如,应用可以搭配使用易受攻击的开源包与将端口22或root作为默认用户公开的配置。总之,这些问题导致过度授予访问权限,并让攻击者更易获得容器的完全控制权。 无独有偶,Dockerfile可以完全锁定,不过攻击者可利用在Web服务的RESTAPI中启用远程代码执行的漏洞来轻松注入恶意代码。 此外,图像通常存储在注册表中并从中集成,这一事实导致情况更加复杂,这些注册表也容易受到攻击。推荐使用的供应链安全措施: •应在每个阶段(本地流程、CI/CD管道的构建阶段、注册表以及运行时)连续扫描映像,以识别不断发展变化的漏洞、恶意软件和错误配置。 •如果映像来自未知来源,在映像沙箱扫描程序中测试该映像以找到恶意软件也至关重要。这些操作应该在本地完成,比如构建映像后在存储库和注册表中执行,或在运行时连续执行。 •仅允许可信来源的可信映像,借此检查映像的可信度,以免映像遭受攻击。 4.遵循VCS安全性最佳实践 您的供应链安全取决于存储和管理系统。对于大多数云原生应用而言,这意味着要使用VCS。然而,如果没有正确的访问控制和分支机构保护措施,错误配置的VCS可能会为供应链攻击提供最佳可乘之机。推荐使用的供应链安全措施: •配置VCS组织设置时,请确保启用双重身份验证(2FA)和SSO,并为git用户定义IP白名单,以阻止未经授权的访问。 •使用分支机构保护规则,验证提交是否来自可信来源,而不是来自模拟身份,因为这些信息很容易被伪造。 •确保存储库禁止在没有人工审查的情况下提交代码。 5.确保安全配置CI/CD管道 对于云原生企业而言,CI/CD管道在交付和部署代码方面起着至关重要的作用,因此也需要获得增强。如果恶意攻击者控制了泄露机密内容的管道更新,则对工作流程文件进行未经审查的更改可能会导致凭据暴露,还会造成代码篡改。推荐使用的供应链安全措施: •扫描CI/CD工作流程文件,阻止源自构建触发器的shell注入。 •防止在管道中执行废弃命令和不安全的命令。 •将机密内容映射到环境中,并限制对敏感环境中管道执行的访问。 •审查管道在其中运行的基础架构,确保只授予最低权限来运行测试和部署更新,并在这两项任务之间划分职责。 6.避免机密泄露和未经授权的访问 除了识别每一层的漏洞之外,避免意外暴露机密(如登录凭据、访问密钥和令牌)同样至关重要。机密可能会意外添加至IaC模板或CI/CD管道中,导致您的关键任务基础架构和服务中出现未经授权的访问。 推荐使用的供应链安全措施: •将所有凭据存储在专门构建的存储库中,如HashiCorp存储库、AWS参数库和AzureKey存储库,以防止代码、VCS或CI/CD配置文件泄露机密。 •定期轮换您的密钥,并始终制定禁用、撤销和创建新凭据的计划,以防这些机密内容泄露。在服务中启用日志记录和审核也是一种最佳实践,以便确定是否发生任何存在机密泄露的恶意活动。 •确定能否使用OpenIDconnect等身份验证解决方案来避免使用密钥,以便率先消除对密钥的需求。 7.利用端到端可视性了解风险 保护供应链中的各个组件与了解这些组件的连接和交互方式同样重要。针对攻击者通过供应链漏洞获得访问权限、转向和横向移动的方式进行威胁建模的能力,是供应链安全的重要组成部分。推荐使用的供应链安全措施: •使用SBOM映射您的所有供应链组件,并确保您拥有完整的从代码到云的可视性,让您可以根据安全问题引发的实际风险来确定这些问题的优先级并加以解决。 •必然会发生供应链攻击时,具备这种可视性也很重要,这样,您就可以快速修补相应漏洞,撤销相应访问令牌,并准确锁定虚拟机,以便最大程度缩小影响范围。 供应链安全平台 PrismaCloud的最新增强功能可助您全面了解软件供应链的状况。这与PrismaCloud的现有合规性和漏洞检查相结合,可保护应用组件以及组装这些组件的管道。 PrismaCloud Prisma®Cloud是一个全面的云原生安全平台,在整个开发生命周期以及跨多云和混合云部署期间,为应用、数据和整个云原生技术堆栈提供了业界最广泛的安全性和合规性覆盖。PrismaCloud集成方法使安全运营和DevOps团队保持敏捷性,有效协作,并安全加速云原生应用开发和部署。有关详细信息,请访问www.paloaltonetworks.com/prisma/cloud。 免费咨询热线:4009911194 网址:www.paloaltonetworks.cn 邮箱:contact_salesAPAC@paloaltonetworks.com ©2022PaloAltoNetworks,Inc.PaloAltoNetworks是PaloAltoNetworks的注册商标。本公司的商标列表可在以下网址找到:https://www.paloaltonetworks.com/company/trademarks.html。此文档中提及的所有其他商标可能是各相应公司的商标。prisma_ds_software-supply-chain-security-checklist_040422