5月27-28日,由上海浦东软件园、开放原子开源基金会、Linux基金会亚太区和开源中国联合发起的2023全球开源技术峰会(Global Open-source Technology Conference, GOTC)在上海圆满召开。大会聚焦开源前沿技术与产业生态发展,以行业展览、主题发言、专题论坛、开源市集的形式来诠释本次大会的主题——Open source,into the future。

GOTC演讲回顾|基于代码疫苗技术的开源软件供应链安全治理_API

图1 2023 GOTC大会主论坛现场

在“聚焦开源安全”分论坛中,悬镜安全COO董毅进行了以“基于代码疫苗技术的开源软件供应链安全治理”为题的主题分享,围绕“代码疫苗技术”给出了一套覆盖治理与运营全流程的开源安全解决方案。

GOTC演讲回顾|基于代码疫苗技术的开源软件供应链安全治理_应用程序_02

 图2 悬镜董毅发表主题演讲


以下为演讲实录:

1.开源风险

开源风险现状

开源组件是软件中的主要成分,且渗透率在逐年增高。2021年开源代码的比例已经高达78%;此外,计算机硬件和半导体、网络、能源与清洁科技、物联网这四大行业均100%地使用到了开源软件。可见,开源在促进全球软件创新的方面正发挥着越来越重要的作用。

Snyk&Linux基金会的《The State of Open-Source Security》报告显示,开源组件漏洞频发且难以修复。每个应用程序开发项目平均有49个漏洞和80个直接依赖项,而修复开源漏洞所需的时间也在逐年增加:2018年,修复安全漏洞平均需要49天;但在2021年,开发一个补丁大约需要110天。

GOTC演讲回顾|基于代码疫苗技术的开源软件供应链安全治理_应用程序_03

图3 《The State of Open-Source Security》报告 

悬镜安全之前发布了自己的开源工具OpenSCA,我们用它扫描了一些开源基础设施。可以看到,每个应用基本都有十到几十个不等的漏洞。

GOTC演讲回顾|基于代码疫苗技术的开源软件供应链安全治理_API_04

 图4 开源应用漏洞概览

Gartner认为,到2025年,全球45%的组织会受到软件供应链攻击,比2021年增长三倍。近几年,重大的软件供应链攻击事件很多都与开源漏洞相关。开源供应链面临着严峻的安全风险。

著名的Equifax信息泄露事件的源头正是Apache Struts 2远程命令执行漏洞S2-045:在使用基于Jakarta插件的文件上传功能时存在远程命令执行,导致系统被恶意用户利用。恶意用户可在上传文件时通过修改HTTP请求中的Content-Type值来触发该漏洞,获得某些特定文件的访问权限,导致1.43亿信用和信息服务客户受到影响。这起事件不仅给企业带来数据资产的严重损失,还造成了巨大的社会影响。然而直到今天,带有漏洞的版本的组件仍然占到该组件下载量的65%。

新场景下的开源治理

数字时代,与业务息息相关的应用面临技术栈的变革和风险面的扩大。开发模式方面,从早期的瀑布式到敏捷,再演进到当下更加注重自动化的DevOps;应用架构方面,从单体应用巨石架构到SOA(面向服务的架构),再迭代到如今盛行的微服务架构;基础设施方面,从数据中心到托管服务器,再到云基础设施;运行环境方面,从物理机到虚拟化,再到容器化以及容器编排技术。应用技术的变革带来风险面的变化,从以往单一的Web通用漏洞风险变为涵盖API安全、业务逻辑安全、合规风险、容器环境镜像风险以及开源组件风险在内的多维度攻击面,倒逼安全解决方案升级以应对新应用场景下的安全挑战。

站在供应链安全的角度,软件在开发、供应、使用这三大环节中都面临相应的安全风险。因此,每个环节都需要技术抓手来协助解决安全问题。悬镜安全核心的代码疫苗技术正是企业进行供应链安全治理的技术切入点。

2.代码疫苗技术

数字安全技术有三次关键演进,第一次是以防火墙为代表的边界防护技术,通过包过滤、状态检测、代理服务等方式检测攻击并拦截;第二次是以EDR为代表的主机环境监测技术,通过数据管理、数据挖掘分析能力和检测技术,检测安全威胁并作出快速响应;第三次是基于运行时情境感知的代码疫苗技术,通过内置或链接到应用程序环境中,与应用程序融为一体,实时监测、阻断攻击,使程序拥有自我保护的能力。

代码疫苗技术

代码疫苗技术是一种新型的应用内探针技术,统一融合了IAST、SCA、RASP、DAR、API、APM等安全能力,凭借一个探针解决应用长期面临的安全漏洞、数据泄漏、运行异常、0Day攻击等风险,减轻多探针运维压力的同时,为应用植入“疫苗”,实现应用与安全的共生。

代码疫苗技术有四个显著的特性:

  • 应用生命周期覆盖:S-SDLC/DevSecOps全流程灵活接入
  • 无感融入DevOps:无需对原有代码逻辑进行修改,自动化基础度高,无需维护复杂的策略和规则
  • 全面覆盖应用风险:覆盖应用自研代码、第三方开源/闭源组件、数据安全,并提供积极检测与响应能力
  • 持续检测数据安全:实时检测,不需要代码安全专家来逐行分析源代码

代码疫苗技术应用

针对应用行为上的攻击,代码疫苗技术可以做到:

1. 漏洞链路追踪

随着分布式、微服务架构、多语言、前后端分离模式的应用普及,溯源微服务间的攻击入侵路径难度增加。通过链路追踪机制,可以便捷地关联入侵请求所经过的微服务应用,提供精准的溯源数据。

GOTC演讲回顾|基于代码疫苗技术的开源软件供应链安全治理_应用程序_05

图5 微服务链路追踪过程

如上图,用户通过浏览器发出HTTP请求,HTTP应用内部处理请求时由Dubbo服务消费方调用服务提供方触发一次Dubbo RPC调用,再逐层返回给用户层。在这次操作过程中,若在Dubbo服务提供方检测到漏洞信息,向上溯源,找到触发本次Dubbo调用漏洞的源头调用信息,如:HTTP GET/user/xmirror,即可溯源绘制调用链路路径如下图:

GOTC演讲回顾|基于代码疫苗技术的开源软件供应链安全治理_API_06

 图6 溯源链路路径

2. API安全管理

API是指用于内部/外部应用可调用的接口,包括HTTP/HTTPS、定制TCP、RPC等协议。

应用间存在许多微服务节点,彼此通过API关联。微服务架构下,暴露的API指数级增加,该场景下的漏洞检测除关注某一节点的漏洞风险外,还需审查与该节点关联的其他节点的风险。因此,需要通过Agent将漏洞检测与链路追踪相结合,即通过代码疫苗实现API资产梳理(暴露面、风险分析)、API链路调用威胁阻断以及OWASP API TOP10(权限控制、注入等)风险管控等。

3. 数据安全检测

代码疫苗基于其技术原理,可从某个Web应用或微服务应用获取到请求并分析其数据内容和函数执行过程。相对于网络边界设备对于加密流量无法审计的问题,代码疫苗可从应用程序内部获取到完整解密后的请求数据。包括但不限于:

  • 基于真实攻击事件生成数据,您需要的所有内容均包含在同一条日志记录中
  • 提供多种维度的图、表协助您的团队进行数据分析
  • 对接至其他SIEM平台或自研风险度量平台与您的其它数据汇总分析

3.落地方案

开源软件供应链安全治理痛点

1. 理不清:企业不清楚在系统中使用了多少第三方开源组件。开源组件通常又会依赖其它更多组件。多级依赖关系使得整个组件结构更加复杂,这种结构的安全性对于应用的研发和使用而言,很多时候也是未知和不可控的。

2. 看不见:企业在使用开源组件的过程中,不知道它们中有的已产生过安全漏洞和知识产权风险。很多企业会使用非常老旧的组件和软件,其中很多都是爆发过安全漏洞但没有及时更新的。企业无法获悉这些已知漏洞的风险隐患,,这种不可见性也增加了危险系数。

3. 找不到:在开源组件爆出漏洞的时候,企业无法快速地定位受影响的组件以及评估影响的范围。

4. 治不了:当企业明确漏洞影响的范围以及受影响的组件并定位到具体项目后,无法快速进行相关治理工作,对组件漏洞进行相应的评估、缓解和修复。

落地要点

应用架构模式和开发模式的转变都要求新兴的安全能力可适配新型场景。悬镜从以下三个方面提出一体化的应用安全落地要点,将基础环境、代码和安全能力进行整合,共同打造供应链安全场景下的应用防护能力。

1. 源头检测:将SCA工具对接到DevOps流程里,对编译构建环节卡点,保障软件构建时所依赖组件的安全性,确保不引入存在重大漏洞的组件;使用基于插桩技术的IAST工具,在功能测试的同时,检测是否存在高危漏洞风险,并展示漏洞触发数据流,便于修复指导。

2. 出厂免疫:针对今后随时可能爆发的未知0DAY漏洞,使用RASP应用自防御能力,针对该类漏洞的攻击利用方式进行精准有效的防护,并通过应用的函数行为分析、上下文情境感知及热补丁技术有效阻断绝大部分RCE类未知漏洞攻击。

3. 持续运营:常态化使用和运营安全可信的制品库,通过SCA和SBOM持续为每个应用程序构建详细的软件物料清单,全面洞察每个应用软件的组件情况。在此基础上使用RASP配合开源漏洞情报,第一时间发现并处理开源漏洞风险。

核心支持工具


  • SCA——解决“理不清”

软件中包含什么组件和已知风险?怎么安全使用开源组件?

软件成分分析(SCA)通过检测软件许可证、依赖项以及代码库中的已知漏洞和潜在漏洞来分析开源组件,使DevOps能够管理其安全风险和许可证合规性,已经成为安全合规风险管控和安全态势感知必不可少的能力。


GOTC演讲回顾|基于代码疫苗技术的开源软件供应链安全治理_API_07

 图7 使用SCA工具进行软件成分分析


  •  IAST——解决“看不见”

哪些已知风险是会切实造成危害的?

交互式应用程序安全测试(IAST)是Gartner公司提出的一种应用程序安全测试方案。通过代理和在服务端部署的 Agent 程序收集、监控Web应用程序运行时的请求数据和函数执行,并与扫描器端进行实时交互,高效、准确地识别安全漏洞,同时可准确定位漏洞所在的代码文件、行数、函数及参数。

GOTC演讲回顾|基于代码疫苗技术的开源软件供应链安全治理_API_08

图8 使用IAST工具进行漏洞识别及链路追踪


  • 开源漏洞情报+SBOM——解决“找不到”

哪些应用和组件会受到0day的影响?

软件物料清单(SBOM)是代码库中所有开放源代码和第三方组件的列表。SBOM能够列出管理这些组件的许可证、代码库中使用的组件的版本及其补丁程序状态。

Gartner在《Innovation Insight for SBOMs》中显示:“到2025年,60%负责开发关键基础设施相关软件的组织将在其软件工程实践中强制使用标准化的 SBOM,较2022年(不到20%)大幅上升。”


  • RASP——解决“治不了”

RASP(Runtime Application Self-Protection)是一种新型应用安全保护技术,它将保护程序像疫苗一样注入到应用程序中,与应用程序融为一体;它可以检测从应用程序到系统的所有调用,能实时检测和阻断安全攻击,使应用程序具备自我保护能力。


GOTC演讲回顾|基于代码疫苗技术的开源软件供应链安全治理_开源组件_09

图9 使用RASP实现出厂免疫


  • ASOC平台技术架构

ASOC(Application Security Orchestration and Correlation,应用安全编排与关联),可以帮助企业做应用程序的聚合管理分析,消除DevSecOps安全活动冗余工作,使安全人员更加聚焦真实问题,以整体视角管理安全开发体系,并加速应用发布效率。

ASOC平台可以实现:

  • 应用安全测试自动化编排:实现企业开发模式下的安全活动自定义编排,将安全检测工具插件化,集成在平台中,用户可依据项目开发模式需求进行自定义编排。
  •  应用程序漏洞关联:将SCA、IAST、SAST、PTE、DAST等应用安全测试工具进行统一对接,把检测漏洞结果与实际应用/项目信息相关联,从而将检测结果进行聚类分析,便于进行下一阶段的优先级评审。
  • VPT漏洞风险优先级分析引擎:在漏洞管理中,解决各阶段工具发现的应用漏洞缺乏自动关联分析的问题。通过有效的漏洞信息关联,可以进一步进行合并、简化、去重,以便开发人员更快修复安全问题,提升安全效率。

4.体系构建

如何将上述工具及技术应用落地呢?如下图,在SDLC周期中,开发、测试、部署、运营等关键环节都需要匹配关键技术能力支撑安全实践;其中带框的部分均与代码疫苗技术相关,其核心地位可见一斑。


GOTC演讲回顾|基于代码疫苗技术的开源软件供应链安全治理_开源组件_10

图10 安全研运一体化体系构建


以上是本次分享的全部内容。