聪明的攻击者永远在寻找攻防不对称
2023-7-24 15:12:5 Author: mp.weixin.qq.com(查看原文) 阅读量:2 收藏

聪明的攻击者永远都在寻找防守方最薄弱的环节,这个薄弱环节不是侥幸于防守方的疏忽,而是防守方的防守成本远远大于攻击成本的地方,而当前现状就是绝大部分的企业对于软件供应链的防守成本就是远大于攻击成本的地方。

这一篇文章为什么聊这个话题,因为又到了一年一度的大型攻防演练的季节,最近和朋友们聊的最多的话题当然也就是关于攻防演练的相关内容,可能因为我现在做软件供应链安全方向的原因,来自红队和防守方的朋友们都在不约而同的跟我聊软件供应链的话题,似乎大家有一个共识,那就是攻防演练搞了这么多年,现在大概率只能靠搞软件供应链才能拿下目标,而聪明的防守方们也开始把目光重点投在防软件供应链攻击。

1

为什么攻击方会盯上软件供应链?

前面其实已经说了结论了,聪明的攻击者永远都在寻找防守方最薄弱的环节,这个薄弱环节不是侥幸于防守方的疏忽,而是防守方的防守成本远远大于攻击成本的地方,而对于软件供应链的防守成本就是远大于攻击成本的地方。

为什么会得出这个结论?以下三个原因显而易见:

  • 目标企业对于软件供应链的防御难度远大于企业自身系统

  • 目标企业的软件供应链供应商的安全防护能力及重视度明显低于目标企业自身

  • 往往越大型的目标企业软件供应链复杂度越高,自然易攻难守

综上三点,聪明的红队只要投入足够的资源对目标企业的软件供应链发起攻击,那么对于防守方来说是十分被动的。

目标企业对于软件供应链的防御难度远大于企业自身系统

首先,软件供应链的维护主体不是企业自身,比如开源软件的维护主体是开源社区组织甚至个人开发者,而商业软件供应链的维护主体是软件供应商,这些都是外部企业主体,企业对于软件供应链的供应商的管理难度是远远大于企业自己的开发者的;其次,大多数企业的软件供应链并没有像自研软件一样有成熟的开发流程管理来对软件的全生命周期进行安全管理,那么这必然导致软件供应链的抗攻击风险的能力要远远弱于自研软件系统。

目标企业的软件供应链供应商的安全防护能力及重视度普遍低于目标企业自身

这似乎是一个显而易见的问题,开源的软件供应链就不用说了,大多数开源软件的开发者都是个人或者松散的开发者团体,就算是顶级的开源社区Apache托管的开源项目依然经常曝出大量安全漏洞,并且没有成熟的体系帮助受影响的企业快速响应。

而商业软件供应链厂商今天在安全防护上的投入度够吗?然是不够的。过去我们看到非常多起关于软件供应商被攻击导致目标业数据泄露的事件,包括最著名的美国大型网络管理厂商Solarwinds被攻击事件,这里面究其原因主要有几个:一方面行业缺乏对软件厂商的强安全监管;另外一方面国内大部分的软件厂商普遍的利润都很低,基本不太可能投入太多资源去做安全;大多数时候甲方在购买软件厂商的软件时要求提供安全检测报告,他们也是找一款免费的安全检测工具出一份报告应付了事,而甲方很多时候也是为了规避责任,并不会严格的审查安全报告的有效性和质量。这就必然导致目标企业的软件供应链供应商的安全防护能力其实是非常弱的。跟重兵把守的目标企业相比,必然会变成木桶中最短的那块板子。

往往越大型的目标企业软件供应链复杂度越高,自然易攻难守

在这些“重点攻击目标”企业中,你会发现基本上自研的系统的非常少,大部分的软件系统都是来自外部软件供应链厂商,而越大型的目标企业,数字化程度越高的目标企业,往往它们的软件供应链就越多样化,攻击面当然也就越广。而它们的核心业务及数据基本上都被这些软件供应链的系统所承载。

所有的防守方可以试着思考一个问题:我们企业使用了多少供应链软件?它们都是什么?每一个软件都承接了什么业务和敏感数据?它们的安全性都怎么样?

聪明的攻击者都知道,防守者们回答不清楚这个问题,那么意味着这就是攻击的绝佳机会。攻击者只需要提前掌握目标企业使用的1/100~1/10的供应链软件的漏洞即可轻松得手。

2

攻击方视角的优势?

对于攻击者来说,只需要投入资源做几件事:

  • 收集目标企业正在使用的足够多软件供应链信息:开源组件、开源软件、商业软件、办公软件

  • 准备好跟这些软件供应链相关的0day/Nday漏洞

  • 针对性的对这些软件供应链供应商进行渗透,通过投毒、网络互通等打入目标企业

投入足够多的资源做好以上三件事情就可以,而且甚至你会发现这些资源是可以复用的,因为大部分的目标企业所使用的软件供应链供应商可能是相同的一批的,当然,考虑到应有广泛的软件供应链对安全的防护投入相对较大,可以选择每个行业一些有行业特色的软件供应链作为攻击目标,似乎性价比更高。

3

防守方视角的优势?

客观的说,当前作为防守方似乎没有太多优势可言,因为现状就是大多数企业对软件供应链的管理的投入是不够的,同时没有形成成熟的体系。这是非常致命的,因为攻击者要攻破你只需要一个点打透就行,而防守方必须要体系化的建设,才能整体提升防守水位。

当然所有的问题都有它的解法,如果需要投入资源去提升软件供应链的抗攻击能力,防守方的优势就是自己的软件供应链始终是对自己最透明的(前提是所有的软件供应链需要纳入管理范围),所以我认为有几件事是非常关键的:

  • 建立对所有软件供应链资产台账的透明管理

  • 根据涉及业务、数据的重要性对软件供应链进行分级管理

  • 建立软件供应链的全生命周期变化的动态追踪(准入准出管理)

  • 建立完备的软件供应链的应急响应机制

4

持续的攻防对抗必然同时提升攻击者和防御者的水平,而战场也会随之演变

随着攻防演练的持续和技术不断发展,过去被认为攻击和防御成本更高的一些场景会逐步成为主流的战场,而软件供应链的攻击对于攻击者来说也许攻击成本是更高,但是对于防守者来说同样如此,甚至防守者的成本要成倍高于攻击者,所以随着攻防演练的持续推进,聪明的防守者会更早布局于此,而往往被攻破的就是落后的那一方。

我创建了一个面向企业的软件供应链安全建设的交流群,感兴趣的可以加我一起探讨前沿的攻防之道

关于我对软件供应链安全、职场的更多思考,点击关注【航行笔记】查看


文章来源: https://mp.weixin.qq.com/s?__biz=MzIyOTAxOTYwMw==&mid=2650236433&idx=1&sn=65ab2c5846ad608b8d7077a894056304&chksm=f04adcadc73d55bb0ebde7f3e8bf6c630896619d84f284e7c2d8f403005b5c8cb5ba0f864fc9&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh