
作者 | 莱因
APT攻击愈演愈烈,与SolarWinds相关的安全反思已持续半月,阿里云安全带来了面向供应链攻击特征属性的全面攻防观察,以飨从业者。
后期精彩的APT内网对抗往往依赖于「先从外部撕开」一道口子,对于黑客而言,脆弱的供应链无异于一块「新大陆」,成为击穿「关键基础设施」的最佳切入点。
应用开发方式变革引入供应链风险
随着企业上云,传统的网络边界正在逐渐消失,尤其是突如其来的疫情,更是让几乎所有企业都不得不进行远程办公,员工开始从家庭网络、咖啡厅与企业网络建立连接,企业的IT架构正在从「有边界」向「无限边界」发生转变。
受益于开源软件与成熟的三方产品和服务(COTS)的优势,国内互联网、金融行业快速发展。在COTS模式下,企业可以快速采购到能够满足当前业务需要的生产工具、软件或硬件产品,从而节省成本和时间。
开源软件的蓬勃发展改变了应用开发形态,现代应用的开发人员不再首选自研,而是会看当前业界是否已有成熟的框架或解决方案。
Synopsys公司发布的《2020年开源安全和风险分析OSSRA报告》中指出,当前超过90%的现代应用融入了开源组件,平均每个应用包含超过124个开源组件,其中49%的开源组件存在高危漏洞。

从政府服务到金融机构每个组织都依靠软件来为客户提供服务。嵌入式软件不再仅仅局限于计算机,现在可以控制复杂的电网、交通、医疗硬件、汽车以及卫星,软件正在吞噬整个世界。
在传统边界安全的防护理念下,安全是一个整体,保证安全不在于强大的地方有多强大,而在于真正薄弱的地方在哪里。企业边界无限扩大后,面临的风险会随之增加,边界上任一节点的「安全性」被打破后,黑客就能通过这层信任链路,利用多种APT手段渗透到企业内部,窃取核心数据。
以往企业防护的策略,可以从梳理企业最有价值资产开始,再看资产潜在面临的最大威胁是什么,基于威胁分级、资产分级的方式来循序渐进做治理。
在今天这种企业架构与软件开发形态下,越来越多的商业软件、硬件设备、开源项目被集成到企业的IT基础设施中,从而扩大了潜在的攻击面,让安全防御变得越来越复杂,以及充满着大量「不确定性」。黑客发起攻击不再关注你是谁,只要你与被攻击目标的网络或业务存在关联,就会成为重点攻击对象。
并不是所有的软硬件供应商都自建完善的安全团队,对产品开展软件安全生命周期管理(SDLC)来确保其安全性。三方软件供应商对安全的「漠视态度」,是导致黑客频频入侵「轻易得手」的关键原因。
对于黑客而言,脆弱的供应链无异于一块「新大陆」,成为黑客击穿「关键基础设施」资源投入的最佳「切入点」。

供应链攻击分类
知己知彼,供应链攻击手段有哪些?
如果你不了解黑客是如何对供应链发起攻击的,那么就无法保证其安全。
阿里云安全通过分析历史曾经发生过的126起供应链攻击事件,将相关攻击手段总结为以下15种:
社工开发者账号替换正规应用
对安卓、苹果、三方移动应用商店内提供的应用,浏览器的插件,通过盗取应用开发者账号替换正规应用,以及发布相似名称「仿冒知名应用」,或通过重打包的技术,使用合法的应用程序添加自己的恶意代码,从而散布存在恶意代码的应用。
黑灰产模式推广恶意软件
通过向第三方下载站点、共享资源社区、破解软件联盟等组织投放含有恶意代码的应用,通过SEO优化方式劫持搜索引擎结果,引导大众下载恶意软件。
向开源软件仓库投毒
攻击者通过向主流的软件包管理源(PyPI、Node.js npm、Maven、RubyGems、Docker Hub)投放大量「相似拼写名称」谐音的软件包或镜像,仿冒正规项目,从而让有恶意代码的代码包被安装到开发或生产环境。
以假乱真
攻击者通过分析特定行业内的知名软件、项目名称,抢注对应的域名,模仿官网,所提供的软件下载链接,早已植入了恶意代码。针对国外知名的软件进行汉化,并提供「汉化版」下载链接,也属于该范畴。
入侵官方网站替换下载链接
企业官网通常由WEB应用构成,应用程序相对于其他业务形态更加脆弱,黑客通过应用漏洞控制软件官网后,篡改官方下载链接地址为植入了恶意后门的软件,从而间接控制目标计算机。
劫持正式更新下载地址的域名
黑客通过域名服务商的漏洞,控制域名解析系统,将软件、OT设备用于下发更新通知的域名劫持到了黑客的服务器,通过更新通道将恶意代码植入目标计算器。
污染网络基础设施的DNS解析记录
利用企业级路由器的已知漏洞或弱口令批量入侵网络设备,修改路由器上的NS解析服务器为黑客所控制的服务器,通过劫持软件用于更新的域名解析记录,从而利用更新通道将恶意代码植入目标计算器。
下载节点缓存、CDN缓存、P2P缓存、城域网缓存、被投毒污染
当前互联网体系下,硬件、软件、物联网OT设备的更新和数据分发,均依赖网络基础设施来承载,当终端客户进行更新、下载时通过网络链路拉取,网络基础设施为了提升效率节省成文,会对一些资源进行缓存。攻击者可通过定向污染缓存来实现投毒,最终攻击终端用户。
入侵官方更新升级系统
软件、硬件产品在发展的过程中,为了提升产品体验、升级能力、修复BUG等,需要进行更新升级,供应商因此建设有配套的更新升级系统。黑客通过自身的攻击能力与掌握的漏洞,对供应商发起攻击与横向渗透,最中取得升级系统的控制权。利用窃取或伪造证书签名的软件更新,将恶意软件带进攻击目标。
入侵软、硬件开发公司,向目标项目的源码植入恶意代码
软件、硬件产品从无到有,需要经历漫长的开发生命周期流程,包括:产品设计、物料采购、开发硬件电路板、代码实现、测试、发布流转等过程。直到产品最终流转到真正要供应链下游终端客户的生产环境。
黑客通过自身的攻击能力与掌握的漏洞,入侵软件、硬件供应商的办公与开发环境,直接向产品代码内植入后门,在设备上预安装的恶意软件 (相机、USB、电话等),实现恶意代码与后门的分发,最终进入被攻击目标的网络。
仓储、物流链路劫持
第三方供应商在针对网络设备、安全设备、智能硬件等物理设备的仓储和交付过程中,为了节约成本,均会采用三方的仓储与物流服务。攻击者通过买通或偷盗的形式,取得于存储在仓库或物流环节中的设备接触机会,通过拆机或替换的方式向芯片或设备固件中写入后门。
供应商预留的远程管控能力和超级权限账号
供应商为了降低售后服务和维护成本,在交付的产品中,偷偷预留了远程管控的功能,供应商可实现对部署在客户环境中的产品,进行远程管理控制。为了维护方便,供应商同时也会预留一些超级管理员、运维、测试等账号。
编译环境,开发工具污染篡改源码,植入后门
攻击者通过对开发者常用的代码开发编辑器发起攻击,通过对开发工具的篡改,以及附加一些恶意的模块插件。当开发者进行代码开发的时候,恶意模块悄悄的再开发者写的代码中植入后门。经过被污染过的开发工具编译出来的程序,或部署到生产业务的源码,都将被植入恶意代码。
应用运行环境、应用组件环境被植入后门
应用软件存在编译型与解释型两种语言形态,解释型的软件代码在运行时,需要依赖运行环境将源码翻译成中间代码,再由解释器对中间代码进行解释运行。攻击者通过入侵常见的JAVA、PHP、Python、Ruby等运行环境的安装包,或向XAMPP、PHP Study成熟的环境软件等,植入后门后直接影响业务。
SaaS化上游服务污染
为了收集统计数据,网站管理员通常会在每个网页中添加一个基于JavaScript代码的网站跟踪脚本,来跟踪访问次数和查看流量历史记录。在前端开发体系,有大量优秀的框架供开发者快速实现各类功能,比如:Jquery、Bootstrap、Vue等,开发者为了省事,会直接引用官方提供的CDN地址。当上游的JS代码源被入侵,引用这些三方JS代码的业务,将演变为发起更大规模代理人攻击的跳板。
供应链攻击的应对建议
一、从最关键的供应商开始,将供应商的数字资产纳入全面的、基于真实风险的安全评估体系中:采用攻防实战的方式来验证产品能力,而不仅仅是合规检查。引入更加具有代表性的反向验证体系,以消除供应商网络上,可直接对组织造成业务中断或破坏的安全盲点。
-
对所在组织网络具有重要访问权限的供应商;
-
拥有所在组织「敏感数据」的供应商;
-
制造特殊零件或开发特殊系统的供应商。
四大触点,教你从“用户视角”构建数据分析体系

