这两年各种各样的供应链攻击事件让业界都知道了供应链攻击的可怕,最近和一些朋友探讨问题的过程中,发现业界对于这类攻击的认知上存在偏差,这类问题笔者
在接触了这么多理论知识以后,觉得Google安全对其做的总结和梳理最为实用,所以觉得应该记录一下,推荐给大家学习参考。
这里放出笔者的一篇私房小笔记,是对Google这个
供应链威胁模型
进行的简单翻译解读,有兴趣的读者也可以自行深入研究下Google对于供应链安全问题的技术布局。
参考:
http
s://security.googleblog.com/2021/06/introducing-slsa-end-to-end-framework.html
Google这个威胁模型涉及了下面6个安全要素:
-
2类安全特性
-
1个人物角色
-
5个关键过程
-
3个系统平台
-
8类攻击方式
-
3类实体属性
安全特性
这个还是基于信息系统的安全等级三个性质之一的
Integrity(完整性)
,供应链攻击针对的是软件构建过程,即要保证
源代码完整性
和
构建完整性
。
源头角色
供应链的源头始终是
Developer(开发者)
,永远不要忽略人的安全
关键过程
源代码、编译、依赖、打包、使用,这是一个软件构建交付的正常过程
系统平台
SCM - 源代码管理平台
CI/CD - 集成、交付、构建一系列的DevOps平台
Distributon - 软件包存储分发平台
攻击方式
这个威胁模型最核心的重头戏,是
按字母排序分了8类攻击
,按软件构建的线性过程穿插在各个关键过程和系统平台之中。
(A) Submit bad code - 提交恶意代码
(B) Compromise source control - 攻陷控制源代码
(C) Modify code - 篡改源代码
(D) Compromise build platform - 攻陷控制编译系统
(E) Use bad dependency - 利用恶意依赖
(F) Bypass CI/CD - 绕过持续集成交付流程
(G)Compromise package repository - 攻陷控制软件包存储库
(H)Use bad package - 恶意软件包被使用
实体属性
实体分为构件、流程和平台三个属性。
构件的定义最容易理解,有源代码、依赖库/源代码和软件包三类。
其他,根据实体属性可以方便清晰的定义威胁是发生在从源代码到软件构建、集成、交付、分发等哪个环节。
题外
供应链攻击是个大安全问题,这类安全攻击动辄损失数十亿美元,安全布局下手后就影响IT生态数十年,是需要安全业界关注的大问题,这里笔者就不再过多解读了,仅分享这篇短文和同仁一起参考学习。