随着开源、云原生等技术的应用,软件供应链开始向多元化发展。此举虽加速了技术的革新和升级,但也让供应链安全成为全球企业的“心腹大患”。
据2021年7月发布的《2020年中国网络安全报告》称,软件供应链攻击已成为2020年最具影响力的高级威胁之一。
2020年12月针对SolarWinds®的 "供应链攻击"被认为是网络安全界的一个里程碑事件。这次攻击是由SolarWinds的Orion软件中的安全漏洞导致的,使黑客能够入侵全球数百家公司的系统。
不难看出供应链的可怕之处,当前全球企业超过90%直接或者间接甚至在无意识中使用了开源技术,由此引发的连锁反应是全球性的、灾难性的。
为了保护自己免受此类攻击,企业必须超越传统的、有风险的 "信任但核实 "的网络安全方法。
什么是供应链攻击?
供应链是指,创建和交付最终解决方案或产品时所牵涉的流程、人员、组织机构和发行人。在网络安全领域,供应链涉及大量资源(硬件和软件)、存储(云或本地)、发行机制(web应用程序、在线商店)和管理软件。
供应链的公司被入侵更改了产品的源码,用户下载了供应链公司的产品而最终受到攻击。这种用户被攻击的方式称为供应链攻击。
具体来讲,大多数企业、组织都会采购大量的软件和硬件设备来辅助业务的正常运转,而许多商业软件、硬件设备的供应商团队对安全的忽视,很有可能招致黑客的觊觎,进而开展持续性的隐蔽攻击。
而由于供应链攻击涉及供应商和企业用户两大组织,因此直接加剧了处理事件、取证分析和事件整体管理的复杂性。
这意味着企业针对攻击的应急响应流程也将变的更加复杂,系统恢复的时间也会更长。正因为如此,供应链攻击往往能够造成难以想象的严重后果。
软件供应链的四大风险
对于企业来说,当前软件供应链起码面临四类风险。
1、软件质量风险。
企业软件表面上由IT或者外包商开发,可是实质上背后是成千上万的第三方开源代码,企业的QA工程质量管理方法和流程,对于第三方完全失控无效。
2、长期支持风险。
企业软件所间接依赖的一些第三方开源零部件,并没有商业体在背后提供质量承诺和长期支持。
开源项目因创始人退出或者社区活跃度低而不再维护、半途而废的,不在小数。
产生维护支持需求时,企业自己不得不安排人手去处理该部分代码,先不说有没有这个意愿,企业自己的IT工程师是否有这个能力也难说。
3、知识产权风险。
开源软件的知识产权机制,反映在著佐权(Copyleft)和许可证(Permissive)。
后者约束了你的软件的分发传播需要满足的条件,前者则往往更进一步要求你用开源组件开发的软件本身的源代码必须沿用同样的开源条款,导致你的软件知识产权不得不公开。
国内软件企业在使用开源、贡献开源的过程中规则意识普遍薄弱,存在错误混用不兼容的许可证,违反许可证规定二次发布等问题,带来更为复杂的知识产权问题和法律合规风险。
4、信息安全风险。
在开发人员写第一行代码前,一个系统可能就注定继承了一堆“安全债务” - 部分取决于这个系统的设计者、开发者选择采用什么第三方组件,部分取决于这些第三方组件的开发者又选择依赖于什么别的组件。
反正安全风险是传递的,只要有一个零部件有安全漏洞、甚至是在漫长复杂的互联网分发链路上被篡改过注入了恶意代码,你的系统就继承了所有这些风险。
在信息化程度比较高的金融业,软件作为金融信息基础设施的重要组成部分,安全问题将直接影响金融信息系统的安全稳定运行。
对于企业来说,如何把软件供应链里的“恶意”关在笼子里?或许安全沙箱一种可操作的手段。
前端安全沙箱技术
虚拟世界的“恶意”代码,也只能用虚拟的“牢笼”去“关住”它。安全沙箱就是虚拟世界里的“牢笼”。
安全沙箱不是浏览器独有的,它是指利用操作系统提供的技术,对外所建立的一道屏蔽『墙』,墙内屏蔽系统权限只做具体的处理,并通过IPC(进程间通讯协议)传递消息。
安全沙箱通过构建一个封闭的软件环境,隔离了它所在的“宿主”的资源包括内存、文件系统、网络等等的访问权限。
没有了安全沙箱的浏览器,就像没有了盔甲的战士,一旦被敌人发现弱点就会产生巨大的伤害。
FinClip:前端安全沙箱技术
FinClip是一种新型的轻应用技术,它有一个比较有趣的逻辑:企业的软件供应链在数字化时代可能是需要被重新定义的 - 有可能你的合作伙伴的代码运行在你这里、也有可能你的代码借道合作伙伴的平台去触达对方的客户。
FinClip的核心是一个可嵌入任何iOS/Android App、Windows/MacOS/Linux Desktop Software、Android/Linux操作系统、IoT/车载系统的多终端安全运行沙箱。
FinClip的嵌入式安全沙箱,又被称之为小程序容器,它的本质其实是建立在Security Capability model基础上的浏览器内核的扩展。
其沙箱的特点,体现在三个方面:
- 沙箱内小程序之间的隔离
- 沙箱对运行其中的小程序代码,隔离其对宿主环境的资源访问。以一家银行与它的合作生态为例,银行在自己的App上引入了衣食住行各类消费场景的小程序,这些小程序均非本行开发,也不能访问到当前宿主App的任何数据资源
- 沙箱隔离了宿主对于沙箱中运行的小程序所产生的数据。以一家银行与一家券商的合作为例,券商把自己的业务小程序投放到银行的App中,银行App作为宿主,并不能访问沙箱内部该小程序的运行数据(当然,这是需要有一定的行业规范、监管政策去约束,但技术上首先是完全可能)
换句话说,FinClip试图构建一个Zero Trust(“零信任”)环境,不管小程序的“供应商”是谁,它们的代码都被隔离、同时也被保护在沙箱环境中。
虽然事实上,在国家/行业层面制定相应的监管政策要求、标准规范是应对供应链攻击的有效举措。
但最最关键的是,我们必须对供应链攻击保持足够的警惕,并集结行业的力量共同应对。