对 SolarWinds 事件更深的思考:如何防御供应链攻击

简介: 消灭企业安全体系中“隐秘的角落”

头图(1)-02.jpg

 

————
APT攻击愈演愈烈,与SolarWinds相关的安全反思已持续半月,阿里云安全带来了面向供应链攻击特征属性的全面攻防观察,以飨从业者。
————

后期精彩的APT内网对抗往往依赖于「先从外部撕开」一道口子,对于黑客而言,脆弱的供应链无异于一块「新大陆」,成为击穿「关键基础设施」的最佳切入点。

应用开发方式变革引入供应链风险

随着企业上云,传统的网络边界正在逐渐消失,尤其是突如其来的疫情,更是让几乎所有企业都不得不进行远程办公,员工开始从家庭网络、咖啡厅与企业网络建立连接,企业的IT架构正在从「有边界」向「无限边界」发生转变。

受益于开源软件与成熟的三方产品和服务(COTS)的优势,国内互联网、金融行业快速发展。在COTS模式下,企业可以快速采购到能够满足当前业务需要的生产工具、软件或硬件产品,从而节省成本和时间。

开源软件的蓬勃发展改变了应用开发形态,现代应用的开发人员不再首选自研,而是会看当前业界是否已有成熟的框架或解决方案。

Synopsys公司发布的《2020年开源安全和风险分析OSSRA报告》中指出,当前超过90%的现代应用融入了开源组件,平均每个应用包含超过124个开源组件,其中49%的开源组件存在高危漏洞。

4A1861E5-D077-42A3-B991-004EB9AE303B.png

从政府服务到金融机构每个组织都依靠软件来为客户提供服务。嵌入式软件不再仅仅局限于计算机,现在可以控制复杂的电网、交通、医疗硬件、汽车以及卫星,软件正在吞噬整个世界。

在传统边界安全的防护理念下,安全是一个整体,保证安全不在于强大的地方有多强大,而在于真正薄弱的地方在哪里。企业边界无限扩大后,面临的风险会随之增加,边界上任一节点的「安全性」被打破后,黑客就能通过这层信任链路,利用多种APT手段渗透到企业内部,窃取核心数据。

以往企业防护的策略,可以从梳理企业最有价值资产开始,再看资产潜在面临的最大威胁是什么,基于威胁分级、资产分级的方式来循序渐进做治理。

在今天这种企业架构与软件开发形态下,越来越多的商业软件、硬件设备、开源项目被集成到企业的IT基础设施中,从而扩大了潜在的攻击面,让安全防御变得越来越复杂,以及充满着大量「不确定性」。黑客发起攻击不再关注你是谁,只要你与被攻击目标的网络或业务存在关联,就会成为重点攻击对象。

并不是所有的软硬件供应商都自建完善的安全团队,对产品开展软件安全生命周期管理(SDLC)来确保其安全性。三方软件供应商对安全的「漠视态度」,是导致黑客频频入侵「轻易得手」的关键原因。

对于黑客而言,脆弱的供应链无异于一块「新大陆」,成为黑客击穿「关键基础设施」资源投入的最佳「切入点」。

供应链攻击_with logo.jpg

知己知彼,供应链攻击手段有哪些?

如果你不了解黑客是如何对供应链发起攻击的,那么就无法保证其安全。

阿里云安全通过分析历史曾经发生过的126起供应链攻击事件,将相关攻击手段总结为以下15种:

1. 社工开发者账号替换正规应用

对安卓、苹果、三方移动应用商店内提供的应用,浏览器的插件,通过盗取应用开发者账号替换正规应用,以及发布相似名称「仿冒知名应用」,或通过重打包的技术,使用合法的应用程序添加自己的恶意代码,从而散布存在恶意代码的应用。

2. 黑灰产模式推广恶意软件

通过向第三方下载站点、共享资源社区、破解软件联盟等组织投放含有恶意代码的应用,通过SEO优化方式劫持搜索引擎结果,引导大众下载恶意软件。

3. 向开源软件仓库投毒

攻击者通过向主流的软件包管理源(PyPI、Node.js npm、Maven、RubyGems、Docker Hub)投放大量「相似拼写名称」谐音的软件包或镜像,仿冒正规项目,从而让有恶意代码的代码包被安装到开发或生产环境。

4. 以假乱真

攻击者通过分析特定行业内的知名软件、项目名称,抢注对应的域名,模仿官网,所提供的软件下载链接,早已植入了恶意代码。针对国外知名的软件进行汉化,并提供「汉化版」下载链接,也属于该范畴。

5. 入侵官方网站替换下载链接

企业官网通常由WEB应用构成,应用程序相对于其他业务形态更加脆弱,黑客通过应用漏洞控制软件官网后,篡改官方下载链接地址为植入了恶意后门的软件,从而间接控制目标计算机。

6. 劫持正式更新下载地址的域名

黑客通过域名服务商的漏洞,控制域名解析系统,将软件、OT设备用于下发更新通知的域名劫持到了黑客的服务器,通过更新通道将恶意代码植入目标计算器。

7. 污染网络基础设施的DNS解析记录

利用企业级路由器的已知漏洞或弱口令批量入侵网络设备,修改路由器上的NS解析服务器为黑客所控制的服务器,通过劫持软件用于更新的域名解析记录,从而利用更新通道将恶意代码植入目标计算器。

8. 下载节点缓存、CDN缓存、P2P缓存、城域网缓存,被投毒污染

当前互联网体系下,硬件、软件、物联网OT设备的更新和数据分发,均依赖网络基础设施来承载,当终端客户进行更新、下载时通过网络链路拉取,网络基础设施为了提升效率节省成文,会对一些资源进行缓存。攻击者可通过定向污染缓存来实现投毒,最终攻击终端用户。

9. 入侵官方更新升级系统

软件、硬件产品在发展的过程中,为了提升产品体验、升级能力、修复BUG等,需要进行更新升级,供应商因此建设有配套的更新升级系统。黑客通过自身的攻击能力与掌握的漏洞,对供应商发起攻击与横向渗透,最中取得升级系统的控制权。利用窃取或伪造证书签名的软件更新,将恶意软件带进攻击目标。

10. 入侵软、硬件开发公司,向目标项目的源码植入恶意代码

软件、硬件产品从无到有,需要经历漫长的开发生命周期流程,包括:产品设计、物料采购、开发硬件电路板、代码实现、测试、发布流转等过程。直到产品最终流转到真正要供应链下游终端客户的生产环境。

黑客通过自身的攻击能力与掌握的漏洞,入侵软件、硬件供应商的办公与开发环境,直接向产品代码内植入后门,在设备上预安装的恶意软件 (相机、USB、电话等),实现恶意代码与后门的分发,最终进入被攻击目标的网络。

11. 仓储、物流链路劫持

第三方供应商在针对网络设备、安全设备、智能硬件等物理设备的仓储和交付过程中,为了节约成本,均会采用三方的仓储与物流服务。攻击者通过买通或偷盗的形式,取得于存储在仓库或物流环节中的设备接触机会,通过拆机或替换的方式向芯片或设备固件中写入后门。

12. 供应商预留的远程管控能力和超级权限账号

供应商为了降低售后服务和维护成本,在交付的产品中,偷偷预留了远程管控的功能,供应商可实现对部署在客户环境中的产品,进行远程管理控制。为了维护方便,供应商同时也会预留一些超级管理员、运维、测试等账号。

13. 编译环境,开发工具污染篡改源码,植入后门

攻击者通过对开发者常用的代码开发编辑器发起攻击,通过对开发工具的篡改,以及附加一些恶意的模块插件。当开发者进行代码开发的时候,恶意模块悄悄的再开发者写的代码中植入后门。经过被污染过的开发工具编译出来的程序,或部署到生产业务的源码,都将被植入恶意代码。

14. 应用运行环境、应用组件环境被植入后门

应用软件存在编译型与解释型两种语言形态,解释型的软件代码在运行时,需要依赖运行环境将源码翻译成中间代码,再由解释器对中间代码进行解释运行。攻击者通过入侵常见的JAVA、PHP、Python、Ruby等运行环境的安装包,或向XAMPP、PHP Study成熟的环境软件等,植入后门后直接影响业务。

15. SaaS化上游服务污染

为了收集统计数据,网站管理员通常会在每个网页中添加一个基于JavaScript代码的网站跟踪脚本,来跟踪访问次数和查看流量历史记录。在前端开发体系,有大量优秀的框架供开发者快速实现各类功能,比如:Jquery、Bootstrap、Vue等,开发者为了省事,会直接引用官方提供的CDN地址。当上游的JS代码源被入侵,引用这些三方JS代码的业务,将演变为发起更大规模代理人攻击的跳板。

供应链攻击的应对建议

一、从最关键的供应商开始,将供应商的数字资产纳入全面的、基于真实风险的安全评估体系中:采用攻防实战的方式来验证产品能力,而不仅仅是合规检查。引入更加具有代表性的反向验证体系,以消除供应商网络上,可直接对组织造成业务中断或破坏的安全盲点。

• 对所在组织网络具有重要访问权限的供应商;
• 拥有所在组织「敏感数据」的供应商;
• 制造特殊零件或开发特殊系统的供应商。

二、安全始于可见性,为每个硬件、应用程序持续构建详细的物料清单,从而全面洞察每个硬件、应用软件的组件情况:随着软件行业以「前所未有」的速度发展,开发人员承受着以「更快的效率」和「更低的成本」来交付产品的压力。因此开源软件、开源组件成为了软件生态系统中至关重要的一环,许多漏洞被一层又一层地隐藏在依赖之下,开源亟需更有效的保护策略。为所有应用程序创建SBOM(软件物料清单),可以帮助企业发现当前运行中的程序、源代码、构建依赖项、子组件所依赖的开源组件清单,以检测开源软件组件是否带有已知的安全漏洞或功能漏洞,漏洞披露时可通过清单列表迅速响应排查,最终确保软件供应链中使用的都是安全的组件。从风险管理的角度跟踪和检测开源软件、开源组件的安全态势。

三、尽可能地缩小攻击面、减少碎片化,降低对第三方组件、开源软件的依赖,选择可信度较高,对安全重视的供应商:以白名单形式限制硬件型号的准入和允许安装的软件,以及确保安装最新的安全补丁。通过正规渠道购买、下载的软硬件介质,使用经过验证可信的第三方开源/商业库、算法等,采购安全可信的软件外包服务。

四、慎用对安全态度消极的厂商所开发的软件或硬件产品:建立完整的供应链安全风险管理流程,企业高层为安全第一责任人,并由安全部门统一集中管理和运营。为了让供应商更加注重安全,在采购条款中明确要求,只有产品出具了足够说服力的安全控制证明,才能进入采购体系,并对供应商进行定期的安全抽查。

五、加强信任链路的自主可控能力,全链路加密和验签:要求供应商在提供更新、升级通道的同时,在网络链路中须加入自定义证书的能力(用户自定义密钥BYOK)。同时,代码签名是在软件供应链中建立信任的重要过程,签名和验证体系可以确保程序的执行都是可信、可靠的。

六、提升软件、硬件产品安全风险的发现能力:投入资源挖掘当前企业正在使用的商业软件、开源软件漏洞,将商业软件、开源软件和自研软件同等对待,实施安全开发流程(SDL)的安全审计。

七、减轻已知漏洞的影响:通过产品架构,或在产品设计中内置安全性,部署和启用恶意软件防护和检测能力。在使用了第三方组件的应用服务器侧部署运行时保护技术RASP,网络侧部署WAF,主机侧部署HIPS等防御系统,来缓解已知漏洞的影响。

八、网络和物理环境访问控制、运输安全:软件和硬件分发过程的安全性,物理和网络安全之间没有差距。有时,黑客会选择利用物理安全上的漏洞,从营业厅或车库发动网络攻击。同样,攻击者在寻找进入物理场所入口时,可能会利用网络漏洞来获取物理门禁的访问权限。黑客甚至会在物流运输阶段下手,供应商需找可靠、安全的运输物流公司,以最大程度地减少运输过程中被篡改的风险。

九、软件和硬件具有安全验签能力,物理磁盘默认加密:硬件系统在安全启动过程中会进行验签,如果无法识别签名,系统将不会启动,且磁盘也无法解密。防止黑客向固件或磁盘存储写入后门或恶意代码。

十、联防联控,建立供应链安全联盟以应对系统性威胁,提升企业在遭受供应链攻击时的响应与恢复能力:由单一组织构成的防守阵线显得势单力薄,在关键基础设施如此重要的今天,应对供应链攻击亟需上升至国家、社会层面,成立行业同盟,全面升级联防、联控的体系。

作者:云安全专家

原文链接

本文为阿里云原创内容,未经允许不得转载

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/514467.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DTCC 2020 | 阿里云李飞飞:云原生分布式数据库与数据仓库系统点亮数据上云之路

简介: 数据库将面临怎样的变革?云原生数据库与数据仓库有哪些独特优势?在日前的 DTCC 2020大会上,阿里巴巴集团副总裁、阿里云数据库产品事业部总裁、ACM杰出科学家李飞飞就《云原生分布式数据库与数据仓库系统点亮数据上云之路》…

Serverless 架构到底要不要服务器?

简介: Serverless 架构是不是就不要服务器了?回答这个问题,我们需要了解下 Serverless 是什么。 Serverless 是什么? Serverless 架构是不是就不要服务器了?回答这个问题,我们需要了解下 Serverless 是什…

腾讯开源之道:基于Apache之道的开源实践与探索

8月6日,腾讯开源联盟主席、腾讯云开源生态总经理单致豪在2021 ApacheCon Asia上分享了腾讯对Apache之道的思考、探索与实践的历程。 作为开源界备受关注的会议之一,今年的ApacheCon Asia将持续3天,开设14分论坛,内容覆盖从大数据…

Linux上的js解码,使用JavaScript实现Base64编码与解码

我们知道,浏览器的window对象提供有window.atob()和window.btoa()方法可以对字符串进行Base64编码和解码。console.log(window.btoa(window.atob(yanggb)));但是有些运行环境,比如nuxt的服务端环境没法使用window对象(window对象只有在浏览器的运行环境中…

​如何让技术想法更容易被理解?

简介: 沟通说起来简单,要做好却很难。如何把复杂的技术问题通俗易懂地表达出来,让别人听懂,是每个技术人都会面临的难题。本文作者以自身经历为背景,总结技术人员在日常技术交流过程中,遇到的一些低效的技术…

大数据,凉了?

大数据被誉为“新石油”,如何管理并洞悉数据的价值,是企业未来发展的核心竞争力。进入大数据时代,数据规模与日俱增。另一方面,数据仓库的市场份额被其他技术蚕食,比如大数据、机器学习和人工智能。这种趋势给我们造成…

2021 年前端趋势预测

简介: 2021 哪些前端技术值得关注?来听听狼叔的分享。 知乎上,有人提问《2021前端会有什么新的变化?》 狼叔的回答二天超过6.1万阅读量,目前444个赞同,2个专业徽章,整体上看,这篇回答…

详解 Flink 容器化环境下的 OOM Killed

简介: 本文将解析 JVM 和 Flink 的内存模型,并总结在工作中遇到和在社区交流中了解到的造成 Flink 内存使用超出容器限制的常见原因。由于 Flink 内存使用与用户代码、部署环境、各种依赖版本等因素都有紧密关系,本文主要讨论 on YARN 部署、…

哈哈!TCP泄露了操作系统信息···

作者:轩辕之风O来源: 编程技术宇宙前言大家好,我是轩辕。前几天,我在读者群里提了一个问题:这一下,大家总算停止了灌水(这群人都不用上班的,天天划水摸鱼),开…

android 自定义view控件,Android 自定义View——自定义View控件

Android给我们提供了大量的View控件,但这还是远远满足不了我们的要求,有时候开发所需要的控件形式是在Android提供的控件中是不存在,这就需要我们自己去定义一个。那么如何自定义控件?学习自定义控件,首先要先掌握Canv…

解读容器的 2020:寻找云原生的下一站

简介: “云原生”到底是什么?它就是容器和 Kubernetes 吗?虚拟机是云原生的吗?…… 2020 年注定是不凡的。它在阴霾中开始,在惊叹中结束,也让未来变得更加扑朔迷离。那么,容器与云原生的 2020 年…

如何用好云的弹性

简介: 如何用好云的弹性 1. 弹性为什么这么重要 做好弹性让IT能力轻松跟上用户的业务发展,做到多、快、好、省。 多:选择多,可以全球建站、机型选择也多、配套云服务也多。 快:部署快,自建IDC的建设时长以…

android笔试添加自定义服务,Android之Listview(item为单选题)自定义adapter,像考试时前面的10几道单选题的实现...

用于展现重复性的东西,Listview比较好用,看了别人的自定义Adapter(item是EditText,能够很好地获取到每一个item的EditText值)。又由于在做项目的需要,故特制了一个item包含RadioGroup的Listview的自定义Adapter。主要功能&#xf…

实现工具自由!开源的桌面工具箱

来源: HelloGitHubRubick,因为开源所有更自由在一切开始之前,首先要致敬 uTools!如果没有它就没有 Rubick。大家好,我是“拉比克”(Rubick)项目的作者木偶。我做的 Rubick 是一款基于 Electron 的开源桌面工具箱&#…

测试一年多,上线就崩溃!微服务到底应该怎么测试?

简介: 只有了解风险,才能及时应对,保障服务高可用。 不久前,也就是11月16日,澳大利亚交易所(Australian Securities Exchange, ASX)上线了一个新的交易系统,但因为出现故障而被迫关闭…

阿里云熊鹰:基于融合、协同系统的边缘云原生架构演进和实践

简介: 云原生和边缘计算是近两年都非常火的技术话题了,在第十届云计算标准和应用大会上,阿里云高级技术专家熊鹰分享了《基于融合、协同系统的边缘云原生架构演进和实践》,希望通过介绍现在阿里云在边缘计算和边缘云原生这些技术领…

漫画:什么是 “建造者模式” ?

作者&#xff1a;东风玖哥来源&#xff1a; 程序员小灰————— 第二天 —————————————————首先&#xff0c;我们来定义一个Product类&#xff1a;public class Product {ArrayList<String> parts new ArrayList<String>();public void add(S…

阿里云云效何勉:云原生是“精益实践”的最佳助力

简介&#xff1a; 1月15日&#xff0c;国内知名“精益产品开发”研究和实践者、阿里云云效资深技术专家何勉在阿里云《云计算情报局》线上直播栏目中&#xff0c;分享其对研发新模式的最新思考&#xff0c;提出“下一代精益开发方法”&#xff0c;助力企业在研发效能上提升10倍…

开发效率提升15倍!批流融合实时平台在好未来的应用实践

简介&#xff1a; 本文由好未来资深数据平台工程师毛祥溢分享&#xff0c;主要介绍批流融合在教育行业的实践。内容包括两部分&#xff0c;第一部分是好未来在做实时平台中的几点思考&#xff0c;第二部分主要分享教育行业中特有数据分析场景。 1.背景介绍 好未来介绍 好未来是…

那些公司都配不上我,所以我选择创业

【CSDN 编者按】她&#xff0c;一个89年的农村姑娘&#xff0c;从种蘑菇到卖煤球&#xff0c;再到敲代码做云原生&#xff0c;成为企业创始人&#xff0c;一路走来她都经历了哪些困难与挑战&#xff0c;对于新生代程序员又有哪些建议&#xff1f;让我们一起来看看她是怎么说的。…