软件供应链的战事 在管理、安全、质量、分发方面提升软件研发效能 李威 JFrog(中国)高级解决方案架构师、DevOps教练 •DevOps咨询师、教练,曾就职于烽火、京东等企业•十余年一线开发及运维经验,带领团队从零到一实践DevOps转型•现就职于JFrog,善于在工程实践方面引导帮助客户落地DevOps•《软件研发效能权威指南》联合作者 李威@JFrog高级解决方案架构师 •软件供应链的故事•软件供应链的管理•软件供应链的准入与安全•软件制品的分发•收益与展望 软件供应链的故事 “I don't have any visibility and control over whatever’s going on with the librariesinside my company. I am faced with two (bad) options:1.Let Dev continue doing what they want2.Place restrictions and slow the company velocity” --CTO/CISO of a fortune 100 company •我是开发人员,我在开发产品的时候,需要一个java组件,帮助我处理日志。我不想自己重复造轮子,希望获取一个第三方的可用的组件。 Log4J核弹级漏洞在2021年12月10日首次被发现 2023年8月15日-11月15日间,某安全研究在3866个组织中的38278个独立应用程序使用log4j的版本进行统计,仍然有38%在使用有漏洞的版本。 www.top100summit.com •受到安全与合规管控 •直接链接互联网第三方源 •软件供应链风险?(Log4j/Fastjson)•依赖混淆攻击?•供应链AI幻觉攻击?•合规管控?(开源许可) •网络速度限制?•原站访问策略限制?•企业网络访问策略限制? •搭建内网私服 •分布式团队依赖协同,分发•全球研发中心软件供应链共享?•跨地域传输导致构建缓慢? •稳定性与性能瓶颈?•多技术栈支持?•维护成本? 软件供应链管理 企业单一可信制品库是软件供应链仓库,也是企业软件资产仓库。 没有统一管理,就无法治理。 单一可信源是企业内部单一的,合规地存放所有软件的仓库 包括war包,Docker镜像,zip包等,以及第三方开源组件或者商业软件的授权版本和软件物料清单(SBOM) 通过CICD度量数据展示,保障软件质量可信、可靠 •统一展示DevOps工具链所有数据,打破度量数据孤岛•质量度量数据作为质量门禁,服务于CICD•作为提供制品晋级依据 软件供应链准入与安全治理 •81%的受访者同意“我们正在努力监测来自公共来源的关于我们使用的软件及其第三方组件中可能存在的漏洞的信息”。•56%的受访者同意:"我公司现有的软件安全流程拖累了我所从事的应用程序的开发过程"。 Google2022年DevOps加速状态报告表明:开发者普遍接受需要防范软件供应链的问题,但是近半数用户认为现有的安全流程及工具拖累了开发过程 ●DMZ仓库作为组件准入防火墙 ○过滤开源包○在软件生命周期前管理 ●内网仓库提供组件下载服务 ○使用DMZ代理○对二方包和三方包实现扫描○下载安全可信组件 IntelliJ Idea VSCode Eclipse Visual Studio JFrogCLI ●依赖扫描●本地按需扫描 统一入口&控制源头mvncenter,dockerHub等大的第三方源站 依赖组件分析管理 漏洞数据源 安全左移&全生命周期管理 通过搭建内网私服制品库统一管理并通过构建工具进行组件分析 开源漏洞库/商业漏洞库自定义漏洞库 从开发、构建、部署、运行进行全生命周期管控&治理 >100 >2weeks >50% 仅修复高危及以上的漏洞会占用大量时间成本 超高危漏洞被证实是对应用程序无影响的 每个软件包及镜像都会有大量的供应链风险 软件供应链的分发 收益与展望 •现代软件持续交付已经与10年前有着翻天覆地的变化、软件分布式运行在私有云、公有云等不同环境,物联网连接着数百亿台设备,从数据中心的每台服务器、到用户的手机、汽车、家用电器等,无时无刻都在进行软件的更新。 “凡事豫则立,不豫则废。” -------《礼记·中庸》 微 信 官 方 公 众 号 : 壹 佰 案 例关 注 查 看 更 多 年 度 实 践 案 例