悬镜安全子芽&CCF TF:云原生场景下软件供应链风险治理技术浅谈

首页 / 业界 / 资讯 /  正文
来源:悬镜安全
发布于:2022-06-27
CCF TF(技术前线委员会,Tech Frontier Committee)是中国计算机学会(CCF)为企业界计算机专业人士创建的企业间常态化合作交流平台,创始委员由Intel、LinkedIn、Microsoft、爱奇艺、百度、滴滴、方正、瓜子、华为、京东、链家网、联想、蚂蚁金服、美团点评、摩拜、奇虎360、搜狗、曙光、腾讯、网易、微博、小米、携程、新浪、中兴等25家知名企业的技术团队负责人(CTO、技术副总或研究院院长)担任。CCF TF会定期以SIG(Special Interest Group)为主体举行丰富的交流活动。
 
于近日举办的CCF TF第61期交流活动,主题为开发安全与软件供应链安全,特别邀请悬镜安全创始人&CEO子芽发表演讲。子芽凭借自身对行业的敏锐洞察以及悬镜在相关领域的技术创新和实践经验,与CCF TF安全SIG主席&北京赛博英杰科技有限公司董事长谭晓生及其他嘉宾对软件供应链风险治理进行了深度探讨。
 
图1 扫码观看更多精彩回放
 
当下,云原生技术正驱动着产业数字化转型进程不断加速,由云原生和开源带来的下一代软件供应链安全正面临新的挑战。如何使开发的软件更为安全,如何保障软件供应链安全,是全球关注的焦点。
 
基于这样的大背景,子芽以“云原生场景下软件供应链风险治理技术浅谈”为主题,详细阐明了软件供应链风险治理流程以及自动化智能化工具链——悬镜安全原创专利级代码疫苗和积极防御技术。
 
云原生时代面临的应用安全风险
 
数字化时代,对于软件应用有三个安全共识:
 
1.数字化应用正成为社会运转的基本组件。数字化时代,一切皆可编程,软件定义万物。软件已然成为新一代信息技术的灵魂。
 
2.现代软件都是组装的而非纯自研。近5年,开源代码在现代应用中所占比例由40%增至78%-90%。混源开发成为主要模式,软件供应链安全威胁日趋严峻。
 
3.代码一定有未被发现的安全漏洞。平均每千行代码就会出现2-40个逻辑性缺陷。缺陷是天生的,漏洞是必然的。
 
软件供应链泛指一家企业和组织开展数字化业务所依赖的软件,包括研发、运营、供应等各项活动所依赖的软件以及与软件评估、生产、分发等相关的任何活动,主要包括三个方面:软件开发方(供应商/上游)、软件供应方(供应商及运营服务商/中间)、软件使用方(消费者/下游)。
 
在云原生时代,软件供应链技术发生了跃迁式的演进,相较以往,有4处不同。
 
第一个是新制品,即软件成分从传统的闭源到混源再到以开源为主导;
 
第二个是新发布,即开发过程不断升级,从传统的瀑布式到敏捷再到当下DevOps研运一体化;
 
第三个是新技术,即数字化应用架构从早期的单体应用到SOA(Service-Oriented Architecture,面向服务的架构)再到微服务;
 
第四个是新环境,即数字化基础设施从IDC物理机到虚拟化再到容器化。
 
伴随这些演进而来的是新的安全风险。在敏捷业务交付的背景下,由于开源软件的广泛使用,微服务应用本身安全漏洞逐渐积累。新的基础设施引入新的防护对象,比如云原生场景下的镜像风险、微服务运行风险、基础设施风险、网络安全风险,其中微服务风险主要与数字化应用息息相关,包括通用漏洞、业务逻辑漏洞、异常行为代码、微服务框架漏洞、微服务开源组件漏洞等。
 
近年来,软件供应链攻击事件频发,风险涉及开源软件漏洞、开源工具被污染、厂商预留后门、升级劫持、恶意软件、源代码污染、开发环境漏洞等。尤其是去年爆发的Log4j2.x核弹级漏洞,至今回想起来仍令人记忆犹新。
 
通过对这些事件进行梳理总结,可将整个软件供应链的主要安全风险分为三个阶段:软件开发环节、软件供应环节和软件使用环节。每个环节都有相对应的安全痛点。
 
在开发环节,存在引用的组件携带漏洞、异常行为代码或者后门,引入的开发工具、DevOps平台和环境缺少管控以及开发人员安全意识薄弱等情况。值得一提的是,去年RSAC创新沙盒大赛的全球总冠军Apiiro公司主要解决的就是开发环境中的供应链安全问题,这些风险不但来自应用本身,而且还源于环境和人员。
 
在供应环节,外包开发/外采过程中,没有对交付的软件进行安全规范,没有提供安全保障措施,就会产生软件供应链安全风险。在使用环节即常态化运营环节中也存在第三方组件漏洞等安全问题。
 
因而需要将软件供应链看作一个整体,进行综合的风险治理。
 
软件供应链源头的开源风险治理实践
 
前面提到软件开发方式从闭源到混源再到开源驱动,随着开发方式的演进,数字化应用安全风险面除了传统的Web通用漏洞、业务逻辑漏洞以外,还增加了开源成分的缺陷及后门、后门恶意代码。
 
整个供应链上下游的软件分为商采、开源和免费三种,因而开源风险治理自然成了整个软件供应链安全保障的关键点之一。
 
开源风险治理存在四大痛点:
 
1.看不清:无法清楚得知在数字化业务运行过程中动态加载被使用的组件数量和种类。
2.摸不透:无法清楚得知开源软件中真实可被利用的中高危漏洞的数量。
3.跟不上:受限于漏洞情报,无法准确确定开源软件漏洞真实影响的范围。
4.防不住:无法对未知漏洞进行提前的积极防御。
 
建立规范的开源治理体系能有效解决以上痛点。第一步,统一开源组件的引入入口及流程规范,把控源头;第二步,检测和梳理资产,生成详细的SBOM(软件物料清单);第三步,分批整改,引入代码疫苗技术,帮助应用本身获得威胁免疫能力,实现对外部威胁的积极防御;第四步也是核心,要以人为本,对整个IT过程中相关人员的安全素养进行赋能。
 
从SDLC软件全生命周期的角度看,从编码、构建、测试一直到运营阶段的安全管理,开源风险治理乃至整个软件供应链风险治理的核心是既要实现“安全左移”,从源头做治理,又要在云原生场景下实现“敏捷右移”,要求安全措施、安全技术覆盖云原生场景下的典型基础设施和应用。
 
图2 软件供应链风险治理既要“安全左移”又要“敏捷右移”
 
众所周知,于去年年底爆发的Log4j2.x远程代码执行漏洞堪称核弹级漏洞。由于它属于Javay语言生态基础库的高危漏洞,而基础库的相互引用影响是指数级的,粗略统计,70%左右的Java应用受到影响。而且该漏洞触发无前置条件,攻击者可以通过它轻松实现远程代码执行。
 
这类漏洞的爆发引发了业内对软件供应链风险治理的深度思考。首先需要加强对源头的检测,在编码、构建、测试等环节,通过自动化的安全能力比如IAST和SCA,对数字化应用进行持续检测;其次,不同于早期的原生应用,需要通过代码疫苗技术使应用自我防御一些未知漏洞,实现应用的出厂自免疫;第三,在常态化运营阶段,需要结合漏洞情报能力和配套的管理措施,确保软件物料清单的动态更新,实时掌握制品库的详细情况和安全体系的构筑能力。
 
代码疫苗技术的进化之路
 
介绍悬镜原创专利级的代码疫苗技术之前,不得不先提及网络安全的三次关键演进。
 
第一次演进是指网络边界过滤分析技术,比如传统的防火墙、WAF等,作用在网络层,优势在于部署交付过程相对便捷,但是对外部威胁的洞察是粗粒度的。
 
第二次演进是指主机环境环境检测响应技术,比如EDR等,能够对应用或者外部异常行为进行细粒度的捕捉、分析和溯源,但是无法在云原生场景下,在容器化环境与基于微服务的应用架构下,对加密流量或者微服务中的应用流量进行实时的洞察和分析,所以催生了第三次演进,即应用运行时情境感知技术,也就是代码疫苗技术。
 
代码疫苗技术不仅善于解决对外部入侵威胁“看不见、看不清”的问题,实现内生积极防御,而且能实时捕捉应用运行时情境感知的上下文,并且不会对整个策略产生过多的维护成本。更为重要的一点在于,代码疫苗技术能结合SCA软件成分分析技术,实时分析数字化应用中的第三方开源成分,从而实现对重大组件漏洞的提前防御。
 
代码疫苗技术经历了一个演进过程。早在2012年和2014年,代码疫苗技术中的IAST和RASP就分别被提出。起初,代码疫苗技术受限于其核心单探针技术对应用性能和兼容性的影响,因而并没有在业内形成推广之势。悬镜之所以能在代码疫苗技术方面取得成功,是由于随着DevOps的逐渐兴起,我们先在研发测试环境中将IAST探针打磨成熟,使之能支撑百万级的高并发应用场景,在此基础上再去拓展它的积极防御能力,这是一个循序渐进的进化过程。所以悬镜当下所掌握的代码疫苗技术,它的核心探针既能实现IAST灰盒安全测试能力,也能实现API挖掘分析能力,还能实现RASP的自适应出厂免疫能力和运营时的敏感数据追踪能力。
 
代码疫苗技术的核心分为两个部分,一个是IAST交互式安全测试能力,另一个是RASP的积极防御能力。
 
其中IAST交互式安全测试又分为狭义和广义两种。狭义的IAST特指运行时动态插桩技术,主要包括被动的动态污点追踪和主动的交互式缺陷定位。广义的IAST主要包含流量学习和日志分析,在此基础上对数据进行重放和分析,进而能定位漏洞所在位置。相较于传统的白盒和黑盒技术,IAST这种灰盒技术具有非常大的优势,善于精准识别和分析API、分析第三方开源成分以及精准追踪动态敏感数据。
 
RASP的核心在于轻量级的探针、统一的管控平台和配套的积极防御插件。第一,它能帮助应对重大未知威胁或典型威胁,使应用实现出厂免疫;第二,具备热补丁功能,对动态发生的部分组件漏洞进行修复;第三,在云原生场景下,对微服务应用上下文进行捕捉和分析;第四,对攻击来源回溯。
 
总而言之,相较于传统的WAF和EDR,RASP具有以下几大核心优势:对未知漏洞的防御;对第三方组件漏洞的防御;对框架组件漏洞的防御;对WebShell的防御。
 
基于代码疫苗技术的应用风险管理是一个闭环,在每个环节都具备对应的能力,如漏洞发现、漏洞验证、漏洞分发和漏洞修复,能很好地结合IAST和RASP,在DevOps敏态环境下适应业务的快速交付。
 
代码疫苗技术能将自身的灰盒安全测试能力、第三方的开源成分扫描能力以及RASP积极防御能力对SDL不同环节进行精准覆盖。
 
结合整个软件供应链全流程风险治理框架来看,在框架的每个环节都可以通过融入核心的自动化技术和配套的安全服务规范,形成高效的解决方案。
 
DevSecOps敏捷安全技术演进趋势
 
IDC发布的云原生安全热点技术相关报告将DevSecOps判定为变革型技术,且处于上升期。前文提到的云原生时代四大新变化,其中开发方式的变化以及应用架构的变化,都是以DevSecOps为主要推动力。
 
悬镜曾与甲方用户深度探讨,在云原生安全构建过程中,究竟是以容器安全技术为主导,还是以DevSecOps安全技术作为支撑。在最终落地探索过程中,我们发现还是得依靠DevSecOps安全技术和相关安全厂商的支持,来形成整个方案的主体部分。
 
DevSecOps的核心是如何在DevOps研运一体化的各个阶段嵌入安全,主要包含四大要素:组织、流程、技术和文化。
 
实际落地DevSecOps的过程主要分为三个阶段。在第一个阶段,要确保数字化应用在安全左移的过程中不存在中高危漏洞,或者漏洞能被快速捕捉和修复。在第二个阶段需要建立体系,包括SDL安全开发赋能平台、左移情境式威胁建模工具和配套的咨询服务。在第三个阶段,需要加入安全度量,只有通过度量才能明确持续改进的方向,此外在云原生场景下进行敏捷右移需要关注整个体系的安全运营效果,而BAS技术正是与之相关的关键技术,它能通过持续威胁模拟对现有防御体系进行持续验证,度量其有效性。BAS可以和代码疫苗技术的RASP形成内外联动,初步搭建起积极防御体系。
 
DevSecOps敏捷安全技术是不断发展的。悬镜每年都会在自己举办的DevSecOps大会上发布DevSecOps敏捷安全技术金字塔,为该赛道指出技术未来演进方向。
 
图3 DevSecOps敏捷安全技术金字塔V2.0版
 
悬镜通过市场观察和实践发现,BAS目前只停留在头部企业探索实践阶段,而IAST、容器安全和OSS/SCA,需求和建设程度都是相对比较靠前。金字塔往上具有一定深度的安全能力,比如RASP,能结合端点安全技术实现对整个护网场景中“最后一公里”的实时防御。此外RASP能与IAST、BAS综合联动,形成积极防御体系。而API Fuzz技术,虽说多年前便已被提出,但目前仍具有局限性,第一是其挖掘未知漏洞的能力仍有待商榷,第二是使用门槛较高,需要对其产生的异常数据结果做进一步专业的分析,第三是对性能的消耗较大,因而对硬件要求较高。
 
再往上一层是自动化的风险评估技术,包括安全测试编排等,目前悬镜正与甲方用户在该技术方向进行尝试。以ASTO为例,它的核心是结合白盒、灰盒和黑盒的能力,从而发现更深层次的业务逻辑漏洞。
 
最顶层的CARTA,是希望实现风险与信任的平衡,综合考虑漏洞与数字化应用所关联业务,从而构建一个信任和弹性并存的研运一体化安全环境,进而使企业能够敏捷和安全地对整个软件供应链进行建设和保障。
 
最后需要再次强调的是,云原生时代下,不仅需要安全左移,还要做到敏捷右移,使常态化运营适应敏捷开发节奏和适合云原生场景,并且形成积极防御的安全能力。这是悬镜认为的软件供应链风险治理最佳实践。