浅谈软件供应链安全治理与DevSecOps落地实践
01 背景介绍
近几年,供应链安全事件频发,给安全行业带来了巨大影响,包括大家熟知的log4j远程代码执行漏洞等。Gartner表示,现代软件大多数是被“组装”出来的,不是被“开发”出来的,在软件开发过程中,大量代码来源于开源代码或开源组件,且大量开源组件被复用。
此外,据Sonatype《2021年开源安全和风险分析》报告显示,98%的代码库包含开源代码,全球开放源代码供应年环比增长20%,开发者下载的开源组件同比增长73%。《开源产业白皮书》显示,67%的代码库包含某种形式的开源代码许可证冲突,33%的代码库包含没有可识别许可证的开源组件。
02 开源组件发展现状与趋势
相关报告显示,2021 年 Gitee 上托管的代码仓库超过了 2000 万,Gitee ⽤户总量超过 800 万。开源组织数量已超过了 25 万个,OpenHarmony 作为国内话题性最高的国产开源项目,在 2021 年也获得了广泛关注,随着 OpenHarmony 2.0 的发布,其受关注再创新高,OpenHarmony 组织的关注总数也超过了 3 万。
Java 作为国内目前应用最广泛的语言,在 2021 年仍保持着强大的竞争力,仓库数量在极高存量的情况下仍有不错的增长态势,使用 Java 的仓库数量占比超越了 2020 年的 37%,此外js代码仓库数量超越了2020年的43%而在开源软件漏洞方面,整体呈增长趋势,2020 年增长率略有下降。CVE 官方未收录的开源软件漏洞数逐年递增,且在近 4 年,高危及以上开源漏洞占比均超 40%。同时,开源组件生态中的漏洞数呈上涨趋势,2020 年环比增长 40%。
图1-高危及以上开源漏洞占比
相关调查结果显示,组件漏洞依赖层级传播范围为:一级传播影响范围扩大 125 倍,二级传播影响范围扩大 173 倍。
03 软件供应链安全关注方向
为何要关注软件供应链安全?上述有提到过,软件开发过程中,大量代码来源于开源代码或开源组件,且大量开源组件被复用。比如在一个商业软件的依赖成分组成中,至少包含33%的开源组件,90%以上的开源代码,67%的代码库包含某种形式的开源代码许可证冲突,33%的代码库包含没有可识别许可证的开源组件。
那么,软件供应链安全要关注哪些方向?关注点有三个,即开源组件、国际纠纷、商业许可。
开源组件
开源组件版本
所涉及开源漏洞情况险
开源组件更新频率
组件黑白名单
组件准入基线
国际纠纷
国外开源组件是否存在后门,断供风
技术封锁
出口管制
商业许可
开源组件包含的许可证协议
知识产权问题
04 DevSecOps落地实践
DevOps及DevSecOps
自2009年Patrick Debois和Andrew Clay Shafer在比利时根特市举办的首届DevOpsDays大会提出了DevOps概念之后,DevOps开始在全球传播,并在2019年达到顶峰。
DevOps是指一种重视软件开发人员和IT运维技术人员之间沟通合作的文化,运动或惯例,区别于传统的瀑布模式,基于敏捷模式,并将敏捷思想和实践从开发扩展到运维。其目标是提升整个研发效能,进行更敏捷,更快速,更可靠的交付,从而提高产品竞争优势。
图2-从传统模式到DevOps模式
DevOps模式基于敏捷开发提高了开发到交付的时效,但是安全测试效率问题依然没有得到很好解决。
图3-DevOps模式及DevSecOps模式
在软件开发生命周期中,不同阶段修复安全漏洞的成本差距非常大,对于企业来说,把漏洞发现在萌芽状态,防止应用带病上线,是一项非常有价值的工作。因此对应用安全的风险管理越早越经济,漏洞根除或缓解之路就是沿着信息系统生命周期不断向前延伸。
图4-DevSecOps模式软件开发生命周期
从上图可以观察出,DevSecOps的显著特点即提前发现问题并进行解决。其最终目的就是通过安全左移到开发测试团队,从而使安全评审阶段的时长变短,从而进一步的缩短交付周期,并且它可以在更早的阶段发现并修复漏洞,从而减少上线前发现安全漏洞的返工成本。
实践
Gartner在2019年给出了一个实践清单,它由一系列的关键路径和持续的关键步骤中的措施和机制组成,周而复始地运转。其关注点在于研发过程中的安全漏洞及其引发的各类风险的管控。
图5-实践清单
各阶段的实施策略如下:(对应上图中序号)
1.plan(需求和设计)
度量指标
安全建模
安全流程和安全工具使用培训
2.create(编码/编译)
idea安全检查插件
3.verify(测试/验证)
这个阶段的应用工具需要被集成到流水线中实现自动化。
SAST
DAST
IAST
SCA
4.Preprod(预发布)
模糊测试
集成测试
5.Prevent(预防)
文件完整性检查
6.Detect(检测)
运行时应用自我保护
7.Respond(响应)
8.Predict(预测)
漏洞相关性分析,威胁情报
图6-DevSecOps工具在流水线上的融入
05 平台能力展示
代码扫描
可信源管理
流水线
到此,软件供应链安全治理主题内容的分享结束。最后,作者为大家推荐一本书籍:DevSecOps实战(机械工业出版社),帮助大家浅显易懂并且有代入感地了解如何将DevSecOps在企业内部落地和实践。
注:【图1】来源
「2021年开源软件供应链安全风险研究报告」
浅谈软件供应链安全治理与DevSecOps落地实践相关推荐
- 浅谈软件供应链安全治理与应用实践
随着容器.微服务等新技术日新月异,开源软件成为业界主流形态,软件行业快速发展.但同时,软件供应链也越来越趋于复杂化和多样化,软件供应链安全风险不断加剧,针对软件供应链薄弱环节的网络攻击随之增加,软件供 ...
- 聚焦热点 | ISC 2022软件供应链安全治理与运营论坛圆满落幕
"软件供应链的开源化使得软件供应链的各个环节都不可避免地受到开源应用的影响.尤其是开源应用的安全性,将直接影响着软件供应链的安全性.除开源应用开发者在开发过程中引入安全缺陷之外,也可能会存在 ...
- 直播回顾 | 子芽CCF TF:云原生场景下软件供应链风险治理技术浅谈
CCF TF(技术前线委员会,Tech Frontier Committee)是中国计算机学会(CCF)为企业界计算机专业人士创建的企业间常态化合作交流平台,创始委员由Intel.LinkedIn.M ...
- 浅谈软件性能测试中关键指标的监控与分析(转)
浅谈软件性能测试中关键指标的监控与分析 一.软件性能测试需要监控哪些关键指标? 软件性能测试的目的主要有以下三点: Ø 评价系统当前性能,判断系统是否满足预期的性能需求. Ø 寻找软件系统可能存在 ...
- 「软件项目管理」一文浅谈软件项目风险计划
一文浅谈软件项目风险计划 序言 一.风险基本概念 1. 风险的定义及特性 2. 风险三要素 3. 风险图示 3. 风险类型 (1)预测角度 (2)范围角度 二.风险管理过程 三.风险识别 1. 定义 ...
- 【会议记录】2022北京网络安全大会-杨珉-软件供应链安全治理之漏洞补丁:现状及应对方案
嘉宾:杨珉 复旦大学计算机科学技术学院副院长 复旦大学系统软件与安全实验室主页:https://secsys.fudan.edu.cn/26976/list.htm 演讲主题:软件供应链安全治理之漏洞 ...
- 浅谈软件开发工具CASE在软件项目开发中发挥的作用认识
浅谈软件开发工具CASE在软件项目开发中发挥的作用认识 内容摘要:阐述了CASE工具作为 一种开发环境在软件项目开发中所起到的开发及管理作用.CASE工具实际上是把原先由手工完成的开发过程转变为以自动 ...
- java学习方法-浅谈软件开发的神速进步
中国人大都喜欢用武侠小说来比较软件开发,但是在实战武功中,只有葵花宝典才是最厉害的,也只有掌握了葵花宝典,才能称为"不败". 1浅谈软件开发的神速进步 1.1什么才是软件开发的葵花 ...
- 墨菲安全受邀与腾讯安全共话软件供应链安全治理
墨菲安全是一家专注于软件供应链安全管理的科技公司,能力包括代码安全检测.开源组件许可证合规管理.云原生容器安全检测.软件成分分析(SCA)等,丰富的安全工具助您打造完备的软件开发安全能力(DevSec ...
最新文章
- ESP8266-SDK的硬件定时器
- 解决 webstrom sass 注释中文出错问题
- Django框架之DRF 基于mixins来封装的视图
- windows系统如何查看端口被占用、杀进程
- 红帽JBoss企业应用平台7.0 ALPHA发布了!
- C++socket编程(六):6.3 并发测试工具ab的使用(apache工具)
- 使用Castle做类的增强
- 写给MongoDB开发者的50条建议Tip14
- 游戏筑基开发之二进制文件操作的那点事儿(C语言)
- Hive表中加载数据的5中方式
- 十分简明易懂的FFT(快速傅里叶变换)
- Google浏览器的所有版本下载
- 路由器网口1一直闪烁正常吗_路由器灯怎么闪才正常
- MySQL入门教程:基本概念
- VBA程序升级,vba在线更新
- 信息隐藏——二值图像的信息隐藏
- 爬取东方财富股票信息网
- 手游运营需网络文化经营许可证?1000万资本金门槛
- 从零手写移动机器人URDF模型学习记录(一)
- 轻轻松松磁盘整理巧用UltimateDefrag软件
热门文章
- ACDSee Pro v5.2 英文破解版
- win7 远程桌面的多用户连接破解
- 红孩子VS腾讯合作项目,API对接被评为腾讯优秀案例
- python学习的几篇文章推荐
- 网众无盘服务器 快车挂盘失败 显示 当前磁盘已经为超级工作站模式,网众快车...
- JAVA 编辑工具JCreator的环境配置说明(jdk、jdk help)
- kubernetes+docker安装及部署服务
- 如何理解科技巨头争相涌入的车路协同?
- 关于SX1262IMLTRT、SX1261、SX1268选型指南分析对比
- php常见的五种设计模式,PHP常见的6种设计模式