2024年RSA大会上,来自泰雷兹(THALES)的软件安全技术总监VISWANATH S CHIRRAVURI分享了关于供应链安全和AI安全的议题。泰雷兹是一家业务遍及全球的国际企业,所服务的五大业务市场对各国社会至关重要,包括航空、航天、地面交通、防务与安全以及数字身份与安全。网络攻击更迭变化,已经从攻击计算机的硬件、网络、软件,转变成成攻击供应商所提供的任何内容,包括数据、服务、代码、组件、配置、二进制、进程、人等。自2022年底大模型技术发展迅速,如何理解AI与安全的关系成为了另一个重要的课题,本文将从供应链和AI安全两个方面分别进行解读。
一
供应链攻击与分类法
供应链攻击(Supply chain attacks)多年来一直是一个安全问题,自2020年以来全球频繁受到供应链攻击事件的影响。2020年12月,SolarWinds公司的NMS产品因受第三方应用漏洞的影响而被盗,进而导致泄露的软件被客户直接下载。2020年7月,攻击者通过有效凭证访问到Ledger公司的电子商务数据库,攻击者利用盗用的数据进行网络钓鱼和勒索活动。2021年7月,攻击者利用远程监控公司Kaseya的系统漏洞,向所有VSA设备发送远程更新并执行攻击者代码,最终对VSA系统管理的客户发起勒索。
随着安全意识提升,企业和组织实施了更强大的安全保护策略,使得攻击者将目标转向了对供应商的攻击,并设法在系统停机、金钱损失和声誉损害等方面造成重大影响。供应链攻击利用了全球市场间相互连接的关系,当多个客户依赖于同一供应商时,针对该供应商的网络攻击风险就会被放大,甚至有可能导致全国性甚至全球性的大规模影响。
从攻击特点上看,供应链攻击至少包含两步骤,一次针对供应商,另一次针对攻击目标,攻击目标可以是最终客户或其他供应商。因此,要将攻击归类为供应链攻击,供应商和客户都必须是目标,通过前后攻击两个目标来达到访问资产的目的。
报告提出了一种分类法[1]来描述供应链攻击,这个分类法考虑了供应链的四个关键元素,包括:i.对供应商使用的攻击技术 ii.供应商被攻击的资产 iii.对客户使用的攻击技术 iv.客户被攻击的资产。这种分类可以帮助组织理解供应链攻击的各个部分,并将它们与其他类似的网络攻击进行比较,更重要的是将这些事件识别为供应链攻击。
每种技术用于识别攻击是如何发生的,而不是攻击的目标是什么,任何供应链攻击中都可能使用了不止一种技术。具体而言,常用的供应商攻击技术包括恶意软件、社工、暴力破解、软解\配置漏洞、物理攻击、开源情报、伪造等。
用户攻击技术包括信任关系攻击、路过式攻击、钓鱼、恶意软件、物理攻击、伪造等。
下图示例说明如何将分类法应用于真实情况,以用于识别和理解攻击的特定特征。Codecov是一家提供代码覆盖和测试工具的软件的公司,该公司向IBM和惠普企业等其他公司提供工具。2021年4月,Codecov报告说,攻击者利用了一个在Docker图像创建方式的bug,从Docker图像中获得了一些有效的凭证。通过这些凭证,他们破坏了Codecov客户使用的“上传bash脚本”。一旦客户下载并执行了这个脚本,攻击者就能够从Codecov的客户手中窃取数据,包括允许攻击者访问客户资源的敏感信息。
利用这些信息,可以识别出分类法中的四个元素。对供应商而言,本案例的攻击者通过“利用配置漏洞”来访问供应商,并在攻击中瞄准了供应商中的“代码”资产。对客户而言,攻击者利用了客户与供应商之间的“信任关系”,最终攻击了客户的源代码,因此目标是“软件”。
二
软件供应链与标准
对于使用软件和可执行代码的用户,直接或间接地依赖于供应商提供的软件(包、库和模块)为他们带来极高的开发效率,但不透明的供应链和复杂的软件依赖关系也使用户的网络受到供应链攻击的安全威胁。报告列举了软件受供应链攻击的攻击面,共包含以下几个方面:
(1)应用程序源代码
被盗的代码签名证书或已签名的恶意应用程序、恶意软件插入/代码篡改。
(2)构建CICS系统
滥用CI/CD系统的默认行为、滥用网络挂钩来危害CI/CD系统、窃取凭据以在工件中注入恶意代码。
(3)源代码控制系统
滥用Git服务器配置错误、git存储库中不受信任的代码、向主分支中注入恶意代码。
(4)包管理器
前端组件(客户端)、后端组件(服务器端)、依赖性混淆。
(5)容器供应链
恶意的图像和脆弱的图像、不安全的容器注册表。
(6)云供应链
错误配置(公开的秘密、元数据服务等)。
(7)供应商的供应链
软件分发给用户前的供应链劫持。
为管理软件供应链中的风险,VISWANATH 在会上提到了多种软件供应链的关键框架和标准,包括OpenSSF sigstore、SLSA、OWASP Software Component Verification Standard (SCVS)、Google’s software delivery shield (trusted OSS)等,完整标准和链接参见文本参考文献处[2]。
OSS相关标准用于建立一个识别活动、控制和最佳实践的框架,以帮助识别和降低软件供应链中的风险。通过OSS标准可以减少易被利用的系统漏洞,并对衡量和改进软件供应链安全性非常重要。以OWASP提出的软件组件验证标准(SCVS)为例子,标准定义了三个验证级别,其中高级别包括低级别的控制范围。具体而言,SCVS L1适用于最低标准,仅基本的分析形式就满足L1级别的软件。SCVS L2 需要额外的分析或详尽调查的中等敏感度的软件。SCVS L3 由于数据的敏感性或软件的使用,需要最高标准的要求。
然而,现有的OSS框架及标准更多关注漏洞(可以被利用的弱点)而不是恶意点(故意设计的伤害)。漏洞库是指已知安全漏洞的库,这些漏洞可能被攻击者利用,其脆弱性由于编码错误、设计缺陷或其他问题造成。而恶意库是故意设计的,并通过恶意软件的分发来对用户造成伤害。对于漏洞库可使用CVSS评分来进行评价,而对于恶意库则缺少一套标准来进行规范。例如对一个npm恶意包,四个供应商使用了4个不同的符号进行标识。同时,大部分开源的SCA工具都不会报告恶意组件,这是一个需要关注的问题。
三
AI与网络安全
VISWANATH还介绍了人工智能(Artificial Intelligence AI)与网络安全之间双向的互利关系。一方面,AI能够极大地辅助网络安全领域开展入侵防御、威胁检测、漏洞识别、安全运营、取证等工作,这一部分很多的网络安全公司都在做,绿盟科技也发布了网络安全大模型——风云卫。另一方面,随着大模型(Large Language Models LLM)技术的快速发展,针对AI领域的新型攻击也层出不穷,如对抗性攻击防护、数据保护和隐私、供应链安全、模型安全等方面,都需要网络安全措施的引入和保护。
从AI自身安全的角度上讲有两种攻击目标,一种使用恶意的AI或机器学习(Machine Learning ML)数据、模型攻击下游的公司、系统、数据和用户,另一种使用对抗性的方法攻击AI\ML自身数据、模型和系统,在两方面交界处,也有使用恶意数据、模型作为渠道攻击其他AI\ML数据、模型的情况。
结合AI自身安全和供应链安全而言,也有针对与AI\ML的供应链安全风险。现有做AI\ML相关研究所使用的数据、框架、预训练模型都上游的供应方提供,如常用的开源框架Tensorflow、pytorch、keras、scikit-learn等,数据集如图像、NLP、语音等领域数据,公开可用的预训练模型可以从Tensorflow Hub、Huggingface、OpenAI GPT、Torch Hub、Github等社区获取。上述所提到的每一个节点都可能因受恶意代码的感染而将安全风险传递到下游模型,进而传递给万千大模型的使用者,最终造成不可估量的危害。
绿盟开源软件供应链平台展示的著名tensorflow-gpu组件2.11.0rc0版本受到10余+漏洞影响
根据2023年OWASP提出的机器学习安全和大模型安全领域的TOP10的攻击方式中,供应链攻击均榜上有名。
参考文献
[1] https://www.enisa.europa.eu/publications/threat-landscape-for-supply-chain-attacks
[2] 软件供应链关键框架、标准和参考资料
OpenSSF sigstore
https://openssf.org/community/sigstore/
SLSA
https://slsa.dev/
Microsoft S2C2F
https://www.microsoft.com/en-us/securityengineering/opensource
NIST C-SCRM / SP 800-161
https://csrc.nist.gov/projects/cyber-supply-chain-risk-management
NSA ESF (Enduring Security Framework)
https://www.nsa.gov/About/Cybersecurity-Collaboration-[7] Center/Enduring-Security-Framework/
UK Supplier Assurance Framework
https://www.gov.uk/government/publications/government-supplier-assurance-framework
MITRE System of Trust (SoT) Framework
https://sot.mitre.org/framework/system_of_trust.html
ISO/IEC 20243-1:2023 and ISO/IEC 27036
https://www.iso.org/standard/82905.html
SCS 9001 Supply Chain Security Standard
https://tiaonline.org/what-we-do/scs-9001-supply-chain-security-standard/
OWASP Software Component Verification Standard (SCVS)
https://owasp.org/www-project-software-component-verification-standard/
Google’s software delivery shield (trusted OSS)
https://cloud.google.com/security/solutions/software-supply-chain-security?hl=zh-cn
IETF SCITT
https://datatracker.ietf.org/wg/scitt/about/