让企业数字化砸锅和IT主管背锅的软件供应链安全风险指北

某天,某银行被盗取大量数据、遭受巨大经济损失,并遭到消费者集体诉讼和监管天量罚单。原因是技术系统用了某个开源代码包,该开源代码包原来是一个遭黑客污染过植入了后门的有毒组件。不小心误用这个代码包的,是IT部门某基层小弟所为。新闻爆出,CIO一脸蒙圈,卒。

上述情形目前…暂时是,虚构的。会不会发生呢率不小。罪魁祸首,叫软件供应链攻击。这个问题的潜在风险,大到什么程度呢据Gartner,至2025年全球有接近一半的企业会会遭遇到。后果于企业数字化是巨大的爆雷,对于企业的技术高管,参照上述“CIO”。

今年初白宫都不得不召集会议讨论Log4J,拜登都得知道Java,是不是莫名魔幻对于码农来说是不是略感自豪 – 相当于所在银行行长、公司CEO深入IT基层,亲自了解一个用Java写的、通常埋在十八层代码之下的日志工具,“并作出重要指示”的既视感…

learn-packages-by-ecosystem

上图为每年各语言新增软件包数量,其中npm生态2019年新增超过30万个。上图缺乏新兴语言如Golang、Rust等的数据,但这些语言生态中的“零配件”数量的快速增长,对于开发工程师来说,都是可直接感知的。相比之下,Java、Ruby的组件生态增长率较低,但很大程度因为它们已经增长了近二十年,基数已经极其庞大。

根源:全球化的开源大生产

开源软件运动如火如荼的进行了二十四五年(如果从1998年2月3日在硅谷的一次会议中首次提出“open source”一说开始算 – 当时互联网先驱Netscape刚刚宣布开放他们的浏览器源码),极大程度的改变了软件业的面貌。当前全球企业超过90%直接或者间接甚至在无意识中使用了开源技术。

可以说,今天我们开发的几乎每一套软件,都是全球化生产协作的结果。例如无数Java工程项目几乎必然依赖的基本日志工具Log4J,最早在二十一年前由瑞士程序员Ceki Gülcü个人独立开发提供;多少互联网公司牛哄哄声称自主研发的浏览器,内核来自谷歌的Chromium;再有技术能耐的银行证券金融巨头的网站和用户端,也离不开React、Vue、Electron、Qt等前端基础框架;马斯克的SpaceX火箭和Tesla汽车,操作系统和软件工具也离不开Linux和GCC编译器。

计算机领域有一句格言,““All problems in computer science can be solved by another level of indirection”,被称之为“软件工程基本定理”(“fundamental theorem of software engineering”),分层(layering)- 这就是计算机领域解决问题的一个典型的、最根本的思维方法。这很好的解释了软件供应链的需要 – 从硬件、网络层、操作系统、虚拟化管理软件、中间件、开发工具、开发框架、前端组件、辅助代码库,到编译器、解析器、运行时,层层叠叠,每一层面对自己的领域、解决好自己的问题,最终到达面向终极用户的应用软件,再大的公司、再牛的工程师,都难以自己包打天下。全球化和开源运动相辅相成,而软件技术人则在这个开源世界的“乌托邦”相互成就。

但问题也就来了:在你的供应链上的各种“零部件”,不仅面临“依赖地狱”的挑战,你甚至还无法知道这些零部件的依赖传递关系、不了解它们的作者和来源。

虚拟世界的供应链远比物理世界的无序凌乱

一套软件的供应链,如果把它画出来,很有可能是这样的:

让企业数字化砸锅和IT主管背锅的软件供应链安全风险指北

Supply Chain Attack – 软件供应链攻击

在复杂混乱的软件供应链之下,黑客利用其中的漏洞进行安全攻击,从中渔利,是显而易见的。当程序员在开发软件的过程中无知觉的使用了被恶意篡改的零部件,所开发出来的系统可以说天生就埋入了危险种子。以前段时间闹的非常严重的Log4J远程代码执行漏洞问题为例,一个存在了近二十年、极其大量的为开发者采用从而在无数的互联网网站、企业软件、Web工具中运行的日志记录组件,让使用它的工程师做梦也想不到。这类攻击,隐蔽性极高 – 你的代码不用Log4J不等于你所依赖使用的第三方代码或者它们所依赖的上游代码不用。

正因为其隐蔽性,大大增加黑客的兴趣,这一类攻击正在迅速增长,以至于拜登政府都不得不视之为严重危害。随之而来是科技企业共同推动下,拜登政府成立开源安全相关的基金,以长期资助促进对安全漏洞的监控和修复。

让企业数字化砸锅和IT主管背锅的软件供应链安全风险指北

FinClip的嵌入式安全沙箱,又被称之为小程序容器,它的本质其实是建立在Security Capability model基础上的浏览器内核的扩展,其沙箱的特点,体现在三个方面:

  • 沙箱内小程序之间的隔离
  • 沙箱对运行其中的小程序代码,隔离其对宿主环境的资源访问。以一家银行与它的合作生态为例,银行在自己的App上引入了衣食住行各类消费场景的小程序,这些小程序均非本行开发,也不能访问到当前宿主App的任何数据资源
  • 沙箱隔离了宿主对于沙箱中运行的小程序所产生的数据。以一家银行与一家券商的合作为例,券商把自己的业务小程序投放到银行的App中,银行App作为宿主,并不能访问沙箱内部该小程序的运行数据(当然,这是需要有一定的行业规范、监管政策去约束,但技术上首先是完全可能)

换句话说,FinClip试图构建一个Zero Trust(“零信任”)环境,不管小程序的“供应商”是谁,它们的代码都被隔离、同时也被保护在沙箱环境中。

FinClip安全沙箱还配备了云端的管控后台,让任何小程序可以被关联到指定的App宿主所嵌的沙箱实例中,从而能且仅能运行在某一款App或者某一个终端上。像互联网小程序一样,FinClip的小程序也可以被实时上下架,对于金融机构来说,起到“实时风控”的效果,因为上下架的管理工具和权限,都由企业私有化运行、自行负责。任何有潜在安全风险的前端代码,一经发现即可瞬间下架,用户端再也无法打开使用。

这些安全管控的能力,可以说是企业尤其是金融机构数字化转型所必须。对于企业而言,内部IT、外部合作伙伴,均可以作为“供应商”以小程序方式实现、提供数字化场景,从而形成数字生态。

Deno:云端安全沙箱技术

Deno是Node.js的发明者Ryan Dahl的重新发明。在推动服务器端JavaScript的应用生态获得巨大成功后,Ryan也看到Node.js的很多存在问题,在2018年的一次公开演讲中,提到了其为Node.js感到后悔的十件事。最终他另起炉灶,按自己的理想重新打造一个新的技术,也就是Deno,其中最重要的设计考虑就是安全优先、为deno技术设计的第一性、并采用V8引擎作为JavaScript运行的安全沙箱。

让企业数字化砸锅和IT主管背锅的软件供应链安全风险指北

企业数字化转型,改变了企业的数字边界,颠覆了传统内外网的简单分割;按凡泰极客(FinClip技术的研发团队)的观点,企业软件供应链也发生了外部动态化 – 诸如小程序、轻应用类型代码的供应与运行,谁都可以提供、也谁都可能运行,数字资源整合,就是代码级合作、基于Security Capability Model的能力交互、以及零信任的运行。

软件供应链安全的保障机制,需要企业在软件开发规范、流程、工具、技术架构方面采取综合策略,甚至需要行业云提供行业级的基础设施支撑和联合行业内经营机构、行业外技术提供商进行协作。

与此同时,建立zero trust的原则和架构理念,利用Capability-based的安全沙箱技术,去隔离运行企业内外来源于IT、开发商和商业合作伙伴的代码,是一个无需再等、值得马上开始的尝试。

来源:凡泰极客科技

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年6月13日
下一篇 2022年6月13日

相关推荐