供应链攻击的防护

1. 历史上最大的勒索软件攻击

7月2日勒索组织REvil,攻击了一家来自瑞典的IT管理服务提供商(managed service providers(MSP)) – Kaseya。

Kaseya的VSA(虚拟系统管理)是一个基于云的管理服务提供商(MSP)平台,该平台为客户提供了一套基于Web的新一代自动化IT系统管理解决方案。MSP通过建立自己的 络运作中心(Network Operating Center(NOC))来为企业提供 24×7×365 的系统管理服务的业务。MSP可以实现对客户的IT系统的进行远程的管理、实时的监控、对企业系统运作情况进行统计,以及执行补丁管理等。

Kaseya在全球已经拥有了超过10000家客户,其中包括50%以上的全球100强IT管理服务提供商及各大龙头企业,分别来自银行业、金融业、零售业、贸易业、教育机构、政府机构、医疗机构和交通运输业等领域。全球有超过1300万台以上的终端和设备通过Kaseya的软件进行管理。

REvil利用零日漏洞(CVE-2021-30116)攻陷MSP平台之后,向VSA内部推送了恶意更新,在企业 上部署了勒索软件,导致Kaseya遭受工具链攻击。REvil宣称锁定了超过一百万个系统,并愿意就通用解密器进行谈判,起价为7000万美元,这是迄今为止开价最高的赎金。

  • 图中的相关定义

  • 术语 描述 举例
    中间件(Artifact) 是一个不可变的数据块,主要指软件的中间件,但可以用于任何类型的中间件. 文件、git提交、文件目录(以某种方式序列化)、容器映像、固件映像.
    源(Source) GitHub(平台)上的Git提交(源代码).
    构建(Build) 将一组输入的中间件转换为一组输出中间件的过程。输入可以是源、依赖项或短暂的构建输出. travis CI(平台)运行.travis.yml(进程).
    包(Package) 为他人使用而发布的中间件。在本模型中,它始终是构建过程的输出,尽管该构建过程可以是无操作的. 分发在DockerHub(平台)上的Docker映像(包).
    依赖(Dependency) 作为构建过程的输入但并不是源的中间件。在模型中,它始终是一个包. 分布在Alpine Linux(平台)上d的Alpine包(package).
    • 特例:

      • 包含源码的zip包是一个包,不是源。因为这个文件是由其他源码构建产生的。例如一个git提交的zip文件.
    • 开发过程供应链威胁描述

    威胁 案例 SLSA 的消减措施
    A 将恶意代码提交到代码仓 Linux 恶意提交: 研究人员通过邮件列表补丁的方式,故意将缺陷引入到Linux内核.
    B 源码管理平台泄漏 PHP: 攻击者攻破了PHP的git托管服务器,并注入了两个恶意提交. 一个更安全的保护源码平台将使攻击者更难攻击.
    C 篡改参与构建的源码 Webmin: 攻击者篡改了构建的基础源码. 一个符合SLSA的构建服务器会识别实际使用的源代码,从而允许使用者检测此类篡改.
    D 构建平台泄漏 SolarWinds: 攻击者攻破构建平台,安装了一个植入程序在每次构建过程中注入恶意行为. 更高的SLSA级别需要对构建平台进行更强大的安全控制,使得被攻陷和得到控制更加困难.
    E 使用错误的依赖关系(即会对A到H的依赖关系,进行递归查找) event-stream: 攻击者添加了一个无害的依赖项,然后更新该依赖项以添加恶意行为。更新与提交给GitHub的代码不匹配(即攻击F). SLSA会递归地应用到所有依赖项来阻止这个特定的问题,依赖的起源能够指示出问题的依赖不是由正确的生成器构建的,或者源代码不是来自GitHub.
    F 上传不是由CI/CD系统生成的中间件 CodeCov: 攻击者使用泄漏的凭据将恶意中间件上传到GCS存储桶,用户可以从中直接下载. GCS bucket中中间件的出处会显示中间件不是以预期的方式从预期的源repo构建的.
    G 篡改包托管到仓库 攻击包镜像: 研究人员为几个流行的包存储运行镜像,这些库被篡改后可能被用来提供恶意包服务. 与上面的(F)类似,恶意中间件的出处会显示它们不是按照预期构建的,或者不是从预期的源repo构建的.
    H 欺骗开发者使用恶意包 Browserify typosquatting: 攻击者上传了一个与原始文件同名的恶意软件包. SLSA不能直接解决这个威胁,但是源代码管理的源代码链接可以启用和增强其他解决方案.

    4.3. SLSA的安全级别

    中间件的SLSA级别描述了其直接供应链的完整性强度,主要有四个SLSA级别。SLSA 4是当前最高级别,代表理想的终极状态。SLSA 1–3提供较低的安全保证,但更容易满足要求。根据Google的经验,实现SLSA 4可能需要很多年和大量的努力,因此中间里程碑是重要的。

    • 级别定义
    级别 描述
    SLSA 1 要求构建过程完全脚本化/自动化,并且产生出处。 出处是关于如何构建工件的元数据,包括构建过程、顶级源代码和依赖项。知道出处允许软件消费者做出基于风险的安全决策。虽然 SLSA 1 的出处不能防止篡改,但它提供了一个代码源识别的基本级别,可能有助于漏洞管理.
    SLSA 2
    SLSA 3
    SLSA 4

    4.4. SLSA安全级别的要求

    SLSA给达到每个级别定义了实现要求,具体如下:

    5. 总结

    • 供应链攻击正成为危害最大的 络威胁之一,且发生的频率正在上升;
    • 供应链攻击由于拥有上游的正式发布渠道和有效的签名,作为下游的使用者防范困难;
    • 作为软件的开发者,在做好开源软件缺陷的管理之外,还要提高自身的风险管理能力,能够识别开发过程中恶意的变动,并触发追查和防范措施;
    • Google的SLSA供应链完整性框架,全面的考虑了供应链的各个环节可能引入的安全威胁,提供了防止供应链攻击的一种有效的方法;
    • Google的SLSA供应链完整性框架,可以成为我们开发过程中防范供应链攻击的一个很好的借鉴;

    6. 参考

    • 微软安全供应链攻击
    • Google:IntroducingSLSA,anEnd-to-EndFrameworkforSupplyChainIntegrity
    • 2021-07-05勒索组织REvil发起供应链攻击,索要7000万美元赎金
    • 2021-03-07大规模供应链攻击攻陷了数家航空公司
    • 2020-12-16SolarWinds旗下软件被用于供应链攻击事件分析
    • 洞见RSA2021|备受热捧的“供应链攻击”如何防御li>
    • 5-ways-your-software-supply-chain-is-out-to-get-you-part-5-hostile-takeover
    • rsa创新沙盒盘点-apiiro-代码风险平台
    • top-5-tips-to-prevent-the-solarwinds-solorigate-attack
    • 解读6种最常见的软件供应链攻击类型

    文章知识点与官方知识档案匹配,可进一步学习相关知识 络技能树首页概览22789 人正在系统学习中

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2021年6月6日
    下一篇 2021年6月6日

    相关推荐