【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

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:354364

评论

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

花一周整理!Python全系列学习资料,全是干货

Python研究者

服务调用链相关基础知识

luojiahu

调用链

打破思维定式(十)

Changing Lin

聊聊Spring的XML Schema扩展机制的使用方式

Hex

spring

数据科学指南#基础篇 Bokeh入门

Lev

Python 学习 数据分析 数据科学

Spark为什么会流行

大数据技术指南

大数据 5月日更

腾讯iOS开发要达到咋样的水准?

一意孤行的程序员

ios 程序员 腾讯 面试 ios开发

ceph-csi源码分析(7)-rbd driver-IdentityServer分析

良凯尔

Kubernetes 源码分析 Ceph CSI

Python-XPath

若尘

Python编程 5月日更

工业互联网产业数字化,区块链如何协同发力?

CECBC

全国大学生物联网设计竞赛(华为杯)巡回技术讲座“八校联动”,HarmonyOS与校园开发者面对面

Geek_283163

鸿蒙

iOS 面试策略之系统框架-UIScrollView及其子类

iOSer

ios 面试 UIScrollView UICollectionView

全国大学生物联网设计竞赛(华为杯)巡回技术讲座“八校联动”,HarmonyOS与校园开发者面对面

科技汇

APP透露的焦虑

wgc

杂谈

通过实践带你揭开TCP中CLOSE_WAIT和TIME_WAIT的神秘面纱

linux大本营

c++ Linux TCP 网络协议 epoll

用Python找出100以内的质数 - DAY6

Qien Z.

5月日更 ptyhon 找质数 质数

ceph-csi源码分析(8)-cephfs driver分析

良凯尔

Kubernetes 源码分析 Ceph CSI

20个不良用户体验

老猿Python

程序员 用户体验 程序开发

把Redis当作队列来用,真的合适吗?

Kaito

数据库 redis 队列

数据续谈

顿晓

数据 5月日更

Nginx通过split_client实现客户端分流

运维研习社

nginx 灰度发布 5月日更 分流

全文检索的介绍

五分钟学大数据

大数据 5月日更

k8s POD hosts 文件怎么与主机保持同步那?

Geek_f24c45

Docker Kubernetes

数据挖掘从入门到放弃(二):决策树

数据社

机器学习 5月日更

[Netty]- Reactor实现

topsion

reactor Netty io nio

消息队列系统架构设计

王硕

架构训练营

量化网格交易策略系统,马丁倍投策略软件源码

Android设备实时音视频传输有效方案

小驰笔记

android 音视频 引航计划

区块链—重构新商业体系和全新商业生态环境

CECBC

深入Linux C/C++ Timer定时器的实现核心原理

Linux服务器开发

Linux 后端 网络编程 定时器 Linux服务器开发

网络攻防学习笔记 Day15

穿过生命散发芬芳

5月日更 网络攻防

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