供应链攻击是一种以软件开发人员和供应商为目标的新出现的威胁。 目标是通过感染合法应用来分发恶意软件来访问源代码、构建过程或更新机制。
供应链攻击如何工作
攻击者搜寻不安全的网络协议、未受保护的服务器基础结构和不安全的编码实践。 它们在生成和更新过程中会中断、更改源代码并隐藏恶意软件。
由于软件由受信任的供应商生成和发布,因此这些应用和更新已经过签名和认证。 在软件供应链攻击中,供应商可能不知道他们的应用或更新在公开发布时受到恶意代码的感染。 然后,恶意代码以与应用相同的信任和权限运行。
鉴于某些应用的热门程度,潜在隐患的数量很大。 发生了一种情况,其中免费文件压缩应用被病毒化,并部署到作为顶级实用工具应用的国家/地区的客户。
一般软件供应链分三个环节,每个环节都可能被攻击。
1、生产节点被攻击(开发软件)
软件开发涉及到的软硬件开发环境、开发工具、第三方库、软件开发实施等等,并且软件开发实施的具体过程还包括需求分析、设计、实现和测试等,软件产品在这一环节中形成最终用户可用的形态。
- 攻击案例:xCodeGhost, xshell攻击
2、交付节点被攻击(软件上线的平台、硬件)
用户通过软件官网、公共仓库、在线商店、免费网络下载、购买软件安装光盘等存储介质、资源共享等方式获取到所需软件产品的过程。受攻击对象比如著名的软件下载站、Python官方镜像源、Github等。
- 攻击案例:中文版Putty后门事件、思科后门事件
3、使用节点被攻击(软硬件使用者) 使用软硬件产品的整个生命周期,包括产品更新升级、维护等过程。
- 攻击案例:powercdn软件升级劫持攻击
根据赛门铁克2019 年《互联网安全威胁报告》,供应链攻击和离地攻击现已成为网络犯罪的主流:2018年供应链攻击增加了78%。特别在很多发布平台的安全能力较弱甚至没有的情况下,软件供应链攻击仅需要作者的一个上传、发布即可轻松完成钓鱼。
供应链攻击的类型
- 损坏的软件生成工具或更新的基础结构
- 被盗的代码签名证书或使用开发人员公司的标识签名的恶意应用
- 硬件或固件组件中附带的已泄露的专用代码
- 在相机、USB、手机 (设备上预安装的恶意软件)
如何防范供应链攻击
- 部署强代码完整性策略以仅允许运行授权的应用。
- 使用可以自动检测和修正可疑活动的终结点检测和响应解决方案。
适用于软件供应商和开发人员
- 维护高度安全的生成和更新基础结构。
- 立即为操作系统和软件应用安全修补程序。
- 实施强制完整性控制,以确保仅运行受信任的工具。
- 要求管理员进行多重身份验证。
- 构建安全的软件更新程序,作为软件开发生命周期的一部分。
- 更新通道和实现证书固定需要 SSL。
- 对一切内容进行签名,包括配置文件、脚本、XML 文件和程序包。
- 检查数字签名,不要让软件更新程序接受常规输入和命令。
- 制定针对供应链攻击的事件响应流程。
- 披露供应链事件,并及时准确地通知客户
附录:
[1] xCodeGhost:https://security.tencent.com/index.php/blog/msg/96
[2] xshell攻击:https://security.tencent.com/index.php/blog/msg/120
[3] 中文版Putty后门事件:https://www.cnbeta.com/articles/tech/171116.htm
[4] 思科后门事件: https://www.guancha.cn/TMT/2014_03_31_218296.shtml
[5] powercdn软件升级劫持攻击:https://www.freebuf.com/news/140079.html