GOTC演讲回顾

2023-10-27

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

图1 2023 GOTC大会主论坛现场

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

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

以下为演讲实录:

1.开源风险

开源风险现状

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

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

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

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

 图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. 漏洞链路追踪

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

图5 微服务链路追踪过程

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

 图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能够管理其安全风险和许可证合规性,已经成为安全合规风险管控和安全态势感知必不可少的能力。

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

  •  IAST——解决“看不见”

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

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

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

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

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

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

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

  • RASP——解决“治不了”

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

图9 使用RASP实现出厂免疫

  • ASOC平台技术架构

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

ASOC平台可以实现:

  • 应用安全测试自动化编排:实现企业开发模式下的安全活动自定义编排,将安全检测工具插件化,集成在平台中,用户可依据项目开发模式需求进行自定义编排。

  •  应用程序漏洞关联:将SCA、IAST、SAST、PTE、DAST等应用安全测试工具进行统一对接,把检测漏洞结果与实际应用/项目信息相关联,从而将检测结果进行聚类分析,便于进行下一阶段的优先级评审。

  • VPT漏洞风险优先级分析引擎:在漏洞管理中,解决各阶段工具发现的应用漏洞缺乏自动关联分析的问题。通过有效的漏洞信息关联,可以进一步进行合并、简化、去重,以便开发人员更快修复安全问题,提升安全效率。

4.体系构建

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

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

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


关于云鲨RASP

悬镜云鲨RASP助力企业构建应用安全保护体系、搭建应用安全研运闭环,将积极防御能力注入业务应用中,实现应用安全自免疫。详情欢迎访问云鲨RASP官网https://rasp.xmirror.cn/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GOTC演讲回顾 的相关文章

随机推荐

  • 图解 JavaScript——代码实现(六种异步方案, 重点是 Promise、Async、发布 / 订阅原理实现,真香)

    图解 JavaScript 代码实现 六种异步方案 重点是 Promise Async 发布 订阅原理实现 真香 本节主要阐述六种异步方案 回调函数 事件监听 发布 订阅 Promise Generator和Async 其中重点是发布 订阅
  • 编写Spring MVC控制器的14个技巧

    通常 在Spring MVC中 我们编写一个控制器类来处理来自客户端的请求 然后 控制器调用业务类来处理与业务相关的任务 然后将客户端重定向到逻辑视图名称 该名称由Spring的调度程序Servlet解析 以呈现结果或输出 这样就完成了典型
  • Python: 向下取整规则解释带有负号的除取整(//)和除取余(%)

    1 Python 中的 结果向下取整 例如 print 7 3 2 3333333 向下取整为 2 print 7 3 2 333333 向下取整为 3 print 7 3 2 333333 向下取整为 3 print 3 7 0 42 向
  • linux sed命令详解

    简介 sed 是一种在线编辑器 它一次处理一行内容 处理时 把当前处理的行存储在临时缓冲区中 称为 模式空间 pattern space 接着用sed命令处理缓冲区中的内容 处理完成后 把缓冲区的内容送往屏幕 接着处理下一行 这样不断重复
  • wireshark的usb抓包分析 1 - 抓取数据

    wireshark的版本为Version 3 2 4 v3 2 4 0 g893b5a5e1e3e 操作系统为Win10 64bit 安装过程要注意的是 有一步需要选择安装USBpcap 不装这个没法抓USB包 安装完成后需要重启电脑 1
  • MCU-串口通信协议

    MCU 串口通信协议 一 介绍 串行通信就像单车道 所有数据得一个一个通行 并行就像多车道 一次可以通行多辆车 MCU常用到的串口通信模块主要有两种 UART和USART UART 全称是Universal Asynchronous Rec
  • JetBrains软件使用经验(转载)

    版权声明 本文为博主原创文章 遵循 CC 4 0 BY NC SA 版权协议 转载请附上原文出处链接和本声明 本文链接 https blog csdn net I love you dandan article details 997124
  • [python爬虫] Selenium切换窗口句柄及调用Chrome浏览器

    因为我的博客是根据我每个阶段自己做的事情而写的 所以前言可能有点跑题 但它更有利于让我回忆这个阶段自己的所作所为 这篇文章主要介绍Selenium爬虫获取当前窗口句柄 切换窗口句柄以及调用Chrome浏览器几个知识点 其中获取当前句柄的方法
  • 三元操作符

    通常N元操作符指的是该操作符有N个操作数 如赋值操作符 它是一个二元操作符 所以它有两个操作数 左右各一个 又如减号 是一个二元操作符 但是当它作为负号 使用的时候 便是一个一元操作符 它表示负数 所以只有一个操作数 那么 三元操作符理应有
  • python--unicodedata用法

    python unicodedata用法 需要掌握的 1 将Unicode字符 chr 转换为等效的数值 以浮点形式返回 print unicodedata numeric 四 4 0 2 将unicode字符 chr 转换为其等效的数字值
  • 【C语言初学必看】猜数字游戏背后的知识

    目录 前言 1 先看主体部分 大体逻辑的部分 a 为什么用do while循环 b switch语句 c 关于scanf 中的 d s 和 printf 的关系 d menu 和game 函数为什么没有返回值 e 为什么 intput 在w
  • ABAP 351 - 动态编程

    作为面对对象的编程语言 ABAP也是支持动态编程的 ABAP351作为一门独立的课程介绍了类反射机制如何实现的过程 一 Field Symbols Field Symbols 字段符号 在ABAP编程中经常使用 实际上它具备以下几点特性 字
  • citespace教程

    参考视频教程 CiteSpace保姆级教程1 文献综述怎么写 研究生写文神器 手把手教你做科学知识图谱 以中国知网为例 哔哩哔哩 bilibili Citespace 从下载到图谱分析 详细教程 基于CNKI和WOS 陈同学 哔哩哔哩 bi
  • “数”说程序员|“后浪”涌袭下的开发者现状

    红网时刻长沙10月23日讯 见习记者 赵翼鹏 10月23日至25日 长沙 中国1024程序员节 将盛大举行 为期3天的会议将以开源为主议题进行讨论 并包括了十多场技术论坛 多位操作系统领域大咖还将史上首次在岳麓山展开对话 为什么会是1024
  • BUCK和BOOST电路详解

    1 BUCK电路 BUCK是一种降压型电路 他的特征就是输出电压低于输入电压 输入的电流是脉动的 输出的电流是连续的 BUCK电路的原理图如下图所示 当开关管Q1驱动为高电平时 开关管导通 电感L1被充磁储能 流过电感的电流线性增加 同时给
  • 《无码的青春》第七章 御姐

    之前我们各有各的故事 各有各的守护 然而今天却成了同一类人 失去了各自的女神 失去了自己的信仰 没有了牵挂 也不再需要对什么人负责 四个单身男人 在这个浮华的城市里尽情的释放着过剩的荷尔蒙 周末我们会聚在道哥的酒吧里 在浮光掠影的酒精和静静
  • python3的turtle画模仿3d星空,运动的恒星小宇宙

    本文参考原文 http bjbsair com 2020 03 25 tech info 6248 html 1 宇宙 2 代码实现条件 python3 3 第1步 第1步 导入模块 from turtle import from rand
  • 8.Xaml Border控件

    1 运行图片 2 运行源码
  • 自定义滚动条@莫成尘

    先看代码 复制使用即可 以下代码均可复制粘贴使用 我将以注释的形式解释代码左右 您将看到以下效果 原生的滚动条比较方正 不够圆滑 很大程度上不能满足我们的审美 有时候需要修改其样式 滚动条的高度将随着内容的多少自适应
  • GOTC演讲回顾

    5月27 28日 由上海浦东软件园 开放原子开源基金会 Linux基金会亚太区和开源中国联合发起的2023全球开源技术峰会 Global Open source Technology Conference GOTC 在上海圆满召开 大会聚焦