【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

Log4j 一周年观察:我们如何应对日益严峻的软件供应链安全风险?

  • 2023-03-11
    北京
  • 本文字数:2560 字

    阅读完需:约 8 分钟

Log4j一周年观察:我们如何应对日益严峻的软件供应链安全风险?

采访嘉宾 | 腾讯安全开发安全专家刘天勇

编辑 | Tina


2021 年 12 月 10 日,全球知名开源日志组件 Apache Log4j 被曝存在严重高危险级别远程代码执行漏洞,这个“核弹级”的漏洞时至今日影响仍然存在,InfoQ 在《开源意味着不问责,我们准备好应对比 Log4Shell 更大的安全危机了吗?》中表示 2022 年本应是“供应链安全元年”,不幸的是,一年后的现在这个漏洞仍然普遍存在,修复版本采用率没有想象中的高,而且数据显示,软件供应链攻击频次反而呈现出急剧上升趋势。



自 2019 年以来软件供应链攻击的发展趋势,年平均增长率达到 742%


软件供应链安全如今已经成了一个世界性难题。它的成因、为什么难以解决,以及企业如何应对,我们咨询了腾讯安全开发安全专家刘天勇。


问:当我们在说“软件供应链安全”的时候,我们实际上是在说什么?

:基于中国信通院的定义,软件供应链安全是指“ 软件供应链上软件设计与开发的各个阶段中来自本身的编码过程、工具、设备或供应链上游的代码、模块和服务的安全,以及软件交付渠道及使用过程安全的总和。”


这里是把软件供应链安全分为了两部分。一是软件自身的供应链安全,二是软件供应链交界面的安全管理。


软件自身的供应链,可以简单理解为应用的代码来源,应用的代码来源主要有两个部分:一个是产品研发自己写的代码,另一个就是引入的第三方的开源组件代码。针对这两者的安全检测也是我们常说的开发安全。


软件供应链交接界面,针对的是开源软件或者商业采购第三方软件。这部分的供应链安全管理主要是在交付和使用过程中进行相关的准入检测并形成标准化可溯源的软件物料清单。


问:开源已经有十几年历史了,但是直到最近两三年,软件供应链安全才成为了一个世界性难题,这期间发生了什么变化?

:软件供应链的安全的重要性提升和开源的大趋势是息息相关的,软件开源化的趋势是一个累积的过程,十几年的时间经历了一个量变到质变的阶段,现在全球的开发者都在依赖开源组件来做应用的研发,绝大多数现代代码库都包含开源组件。


但是开源的繁荣本身就建立在一系列自由许可协议和免责条款上——其中也包括风险免责,“使用者风险自负”是开源社区的共识。



21 年底 Apache Log4j 风险的爆发是一个里程碑事件,软件供应链安全直接关系着关键基础设施和重要信息系统安全,保障软件供应链安全也成为业界关注焦点。


最近中证协向各大券商下发了一份征求意见稿(按:指《网络和信息安全三年提升计划(2023—2025)》),里面写到“在软件自主可控方面,要求券商提升自主掌控能力,不管自研还是外购代码全部代码 100%审计,重要信息系统的自动化测试比例不低于整体测试比例 30%,从研发规范制定、研发工具建设方面建设统一的源代码管理工具、标准化的研发运维一体化工具”,这就是行业对于开源代码使用规范的一个表现。


问:从技术角度看,软件供应链安全治理的主要难点在哪里?

:软件供应链安全的治理的难点可以分成以下三个部分:


第一个难点是检测门槛高,开源组件的来源复杂,依靠单一的技术手段难以做到全面覆盖。市面上常见的开源组件检测技术是基于源代码的 SCA 分析,但基于源码的 SCA 难以覆盖软件供应链交接界面的第三方软件成品;


第二个难点是修复成本高,在企业开始做开源组件的风险治理的时候,存量业务往往会发现大量的漏洞,但这些业务大多数处于上线运营的阶段,修复的过程对研发资源是一个较大的消耗,同时对安全团队来说也是较大的推动阻力。


第三个难点是攻击影响范围广,第三方开源组件的使用,间接扩大了软件的受攻击面,针对上游供应链环节的漏洞挖掘和恶意利用,能够快速覆盖大量的下游软件,同时相关的攻击具有较高的隐蔽性,常用的安全检测手段难以进行全面的防御,目前软件供应链攻击已经成为攻防演练中非常常用的攻击手段。


问:当前业界常见的开源组件检测技术有哪些?

答:SCA 是目前业界主要的解决开源组件风险检测的手段。市面上的 SCA 产品主要有两条技术路线,一个是基于开源组件源代码进行分析,另一个是基于二进制制品进行分析。目前国内的安全厂商的产品主要是通过源代码层面去做的,而腾讯安全的 SCA 产品,在源代码分析的基础上,同时还支持二进制 SCA 分析,能够同时覆盖软件自身以及交接界面的软件供应链安全问题。


从技术原理上看,源码 SCA 分析主要是根据源码文件相似度或代码相似度检测,主要为依赖扫描;二进制 SCA 分析是从二进制文件中提取常量、函数特征来进行分析。


从使用场景来看,源码 SCA 能够全面的分析源码仓库,但在不能获得源码的情况下,不能检测商业采购的第三方软件安全包。二进制 SCA 分析可以直接分析安装包,同时不会因为源码而引入一些额外的,不会被带入构建产物的数据,影响分析结果。


和源代码 SCA 相比,二进制 SCA 的技术门槛更高,需要有效涵盖移动端,嵌入式,后台开发,云原生各种开发场景下的跨架构格式解析,同时要支持固件、镜像、文件系统、压缩文件等多种文件格式。得益于腾讯安全科恩实验室在物联网安全以及 AI 安全上过去多年的技术积累,腾讯的二进制 SCA 技术有着独家的技术领先优势。


问:腾讯本身是一个 SCA 的使用者,也提供 SCA 的工具,我们自身的实践情况是什么样的?

:腾讯的 SCA 是作为腾讯整个 DevSecOps 解决方案中的一环进行落地的,我先介绍下腾讯 DevSecOps 的整体实践。


目前腾讯的开发业务已经全量上线自研的 DevOps 平台,我们包括 SAST、IAST、DAST、SCA 在内的各类开发安全检测工具都和 DevOps 平台做了深度的集成和联动,相关检测工具会作为开发流水线中的自动化质量门禁红线,进行相关的卡点检测。


除了在流水线中进行使用外,我们的 SCA 产品还与自身的制品仓库进行对接, 实现了对制品的全面扫描和分析,生成了自身的 SBOM 软件物料清单,能够有效应对突发的软件供应链安全事件。此外,我们也将 SCA 分析用到的开源组件知识库进行开放,开发同事可以在开发阶段自查 CVE 风险以及 License 风险


问:供应链安全肆虐,给企业的建议?

答:1、  面向研发团队,强化开发安全意识培训以及安全编码规范的落地,提升自身研发的安全水平

2、  针对自研应用,完成包括 SCA、SAST、IAST 在内的开发安全工具建设并全面接入 DevOps 流程,实现安全左移

3、  针对第三方软件,建立标准的准入检测机制,借助二进制 SCA 工具实现对第三方软件的安全评估

4、  借助 SCA 工具,完成企业自身的 SBOM 软件物料清单建设,同时拉通安全和研发团队,制定软件供应链安全事件的应急响应流程制度

2023-03-11 11:354386

评论

发布
暂无评论
发现更多内容

SAP Spartacus Session affinity

Jerry Wang

后端 28天写作 12月日更 Spartacus 会话

前端开发:npm run serve和npm run dev的区别

三掌柜

28天写作 21天挑战 12月日更

Maven进阶(三):配置多仓库

No Silver Bullet

maven 12月日更

Go语言学习查缺补漏ing Day7

恒生LIGHT云社区

golang Go 语言 编程语言‘

Linux运维,Linux系统学习

侠盗安全

Linux linux运维 运维工程师 云计算架构师

【Promise 源码学习】第十五篇 - 了解 generator 生成器

Brave

源码 Promise 12月日更

面试官:你是怎样理解Fiber的

全栈潇晨

React react fiber

react源码解析3.react源码架构

buchila11

React react fiber

[Pulsar] Consumer 确认消息原理

Zike Yang

Apache Pulsar 12月日更

团队基建系列 - 组织知识传承 4 破局

搬砖的周狮傅

团队成长

聊聊程序员35岁危机

全栈潇晨

程序员 大前端 35岁危机

react源码解析6.legacy模式和concurrent模式

buchila11

React

【LeetCode】最短补全词Java题解

Albert

算法 LeetCode 12月日更

模块一学习总结

糖糖学编程

架构实战营

把管理做简单

Ian哥

项目管理 十六个字 阿里管理箴言

拆分电商系统为微服务

Steven

架构实战营

DataPipeline携手云南开放大学,以实时数据融合助力高校精细化管理

DataPipeline数见科技

数据库 中间件 Big Data 数据融合 高校

Redis(一):单线程为何还能这么快?

IT巅峰技术

redis 分布式 架构师 分布式缓存 Java Redis

Flutter 自定义 ACEFoldTextView 折叠文本

阿策小和尚

28天写作 0 基础学习 Flutter 内容合集 签约计划第二季 12月日更

从0到1教你如何使用 p5.js 绘制简单的动画

海拥(haiyong.site)

大前端 动画 28天写作 签约计划第二季 12月日更

【架构实战营】-模块一作业

糖糖学编程

架构实战营

信息架构升级|宜搭邀你体验「沉浸式」应用搭建

一只大光圈

钉钉 低代码 数字化 钉钉宜搭

全链路数据血缘在满帮的实践

华为云开发者联盟

sql 图数据库 图计算 全链路数据血缘 数据血缘

给弟弟的信第8封|计算机专业应该掌握的知识

大菠萝

28天写作

活动预告|Feature Store Meetup

第四范式开发者社区

OpenMLDB Feature Store

架构实战营 第一周作业

姬凌伟

架构实战营模块一作业

黄秀明

「架构实战营」

钉钉宜搭亮相“第二届ISIG中国产业智能大会”:云钉低代码,构建企业酷应用

一只大光圈

钉钉 低代码 数字化 钉钉宜搭 ISIG

万字长文--基于业务视角的上云实践

hackstoic

DevOps 运维 云原生 架构设计 签约计划第二季

Flutter 2.8 的新特性【Flutter 专题 20】

坚果

flutter 28天写作 12月日更

安全办公 |企业级IM即时通讯私有云解决方案

WorkPlus

Log4j一周年观察:我们如何应对日益严峻的软件供应链安全风险?_语言 & 开发_Tina_InfoQ精选文章