趋势所向。今年初白宫都不得不召集会议讨论Log4J,拜登都得知道Java,是不是莫名魔幻?但对于码农来说是不是略感自豪 - 相当于所在银行行长、公司CEO深入IT基层,亲自了解一个用Java写的、通常埋在十八层代码之下的日志工具,“并作出重要指示”的既视感...
那么,软件盛行的年代,企业中高管最怕的是什么?
“某天,某银行被盗取大量数据、遭受巨大经济损失,并遭到消费者集体诉讼和监管天量罚单。原因是技术系统用了某个开源代码包,该开源代码包原来是一个遭黑客污染过植入了后门的有毒组件。不小心误用这个代码包的,是IT部门某基层小弟所为。新闻爆出,CIO一脸蒙圈,卒。”
上述例子的罪魁祸首,叫软件供应链攻击。这个问题的潜在风险,大到什么程度呢?根据Gartner,至2025年全球有接近一半的企业会会遭遇到,感兴趣的同学可以自行脑补...
“Hello,World”后面可能有几万行代码
开源软件运动如火如荼的进行了二十四五年(如果从1998年2月3日在硅谷的一次会议中首次提出“open source”一说开始算 - 当时互联网先驱Netscape刚刚宣布开放他们的浏览器源码),极大程度的改变了软件业的面貌。当前全球企业超过90%直接或者间接甚至在无意识中使用了开源技术。
时间快进到2022年,很多企业的业务软件里可能只有低至10%的代码是自己的工程师写的,其他的都来源于不知名的开源世界,开发者自己都不知道,供应链被污染了,影响到自己,也殃及其他“租户”。“物业”呢,则不排除内部人员有道德风险,做倒卖“租户”资产(例如数据)的事情。
你想用JavaScript Node.js开发一个只能对网络请求返回“Hello,World”回复的微服务,你决定采用一个最轻量简约的微服务框架ExpressJS - 一动手的瞬间,你的开发工具npm就给你从上游拉取100 软件包 - 54,000行代码拿去,不谢。如果你想再玩点高级功能,例如添加一个MVC框架(例如Locomotive),你的这个“微”服务实际代码量马上升至220,000行 - 不好意思,起步价,哪怕你只写一行代码。
软件供应链的四大风险
对于企业来说,当前软件供应链起码面临四类风险。
- 知识产权风险。开源软件的知识产权机制,反映在著佐权(Copyleft)和许可证(Permissive)。后者约束了你的软件的分发传播需要满足的条件,前者则往往更进一步要求你用开源组件开发的软件本身的源代码必须沿用同样的开源条款,导致你的软件知识产权不得不公开。国内软件企业在使用开源、贡献开源的过程中规则意识普遍薄弱,存在错误混用不兼容的许可证,违反许可证规定二次发布等问题,带来更为复杂的知识产权问题和法律合规风险。
- 信息安全风险。在开发人员写第一行代码前,一个系统可能就注定继承了一堆“安全债务” - 部分取决于这个系统的设计者、开发者选择采用什么第三方组件,部分取决于这些第三方组件的开发者又选择依赖于什么别的组件。反正安全风险是传递的,只要有一个零部件有安全漏洞、甚至是在漫长复杂的互联网分发链路上被篡改过注入了恶意代码,你的系统就继承了所有这些风险。
- 软件质量风险。企业软件表面上由IT或者外包商开发,可是实质上背后是成千上万的第三方开源代码,企业的QA工程质量管理方法和流程,对于第三方完全失控无效。
- 长期支持风险。企业软件所间接依赖的一些第三方开源零部件,并没有商业体在背后提供质量承诺和长期支持。开源项目因创始人退出或者社区活跃度低而不再维护、半途而废的,不在小数。产生维护支持需求时,企业自己不得不安排人手去处理该部分代码,先不说有没有这个意愿,企业自己的IT工程师是否有这个能力也难说。
在信息化程度比较高的金融业,软件作为金融信息基础设施的重要组成部分,安全问题将直接影响金融信息系统的安全稳定运行。
小程序安全沙箱类技术的盛行
先说说App插件生态。作为Web 2.0的标志性技术产物,历经互联网蓬勃发展的市场需求的迭代,衍生出许多标准化的、能够降低App(甚至扩展至移动设备)开发的插件式SDK:极光推送、声网音视频、第三方登录、第三方支付.....
然后说说小程序生态。在BAT等巨头的带动下,市场上已经有11大小程序平台,700W 的小程序应用,覆盖200 个细分垂直领域,可见,小程序生态在国内已经具备相当影响力的规模。正因为如此迅猛的发展,互联网系列全球标准的制定者W3C,也正在通过其Mini-Apps工作组制定小程序技术的国际标准。
再说说小程序安全沙箱技术。如果将小程序和移动设备插件比喻成“点”,那么小程序安全沙箱技术(例如:FinClip)就是能够让一个个点组装成App的“线”。FinClip小程序容器技术的价值点之一在于「连接」:只要把FinClip SDK嵌入到自己的App中,马上获得小程序运行能力,而只有获得小程序运行能力,才能在App中充分引入成熟的小程序应用。
此外,在软件供应链安全防护上,小程序容器技术天然的安全隔离能力,通过构建一个封闭的软件环境,隔离了它所在的“宿主”的资源包括内存、文件系统、网络等等的访问权限。运行在这个封闭环境中的进程,其代码不受信任,进程不能因为其自身的稳定性导致沙箱的崩溃从而影响宿主系统,进程也无法突破沙箱的安全管控以读写宿主系统的资源。
俗话说,天时-地利-人和,现代社会快节奏市场强压下,如果还是老式的思想,企业重复造车轮,那么铁定是跟不上用户快速变化的需求。只有充分利用各领域构建起来的成熟生态,以互联互通、合作共赢的方式方能发挥企业1 1>2的效应。
小程序容器技术便是一个非常好的「技术催化剂」,将小程序应用生态、移动设备插件生态、移动设备有机的“粘合”在一起,且Plus一个安全沙箱的机制,对软件供应链安全的端侧进行安全隔离和防护。感兴趣的可以登陆FinClip官网了解一下。