应对当今软件供应链安全挑战,以DevOps为中心的安全至关重要
作者:JFrog大中华区总经理董任远
【慧聪通信网】开发人员及其开发的软件是当今黑客和恶意攻击者最常用的攻击媒介。许多开发工具和流程(更不用说数以千计的开源库和二进制文件)对于整体软件供应链都可能意味着恶意乃至意外的风险。为应对与日俱增的威胁,开发人员、安全负责人和运营团队都致力于寻找一种能够更有效地保护自身软件生态系统的方法。
中国信息通信研究院发布的《中国DevOps现状调查报告(2022)》显示:已有63.51%的企业引入了DevSecOps实践,同比增加19.81%。这表明DevSecOps在企业中的影响力继续扩大。国内机构开始越来越多地采用DevSecOps,专注于“左移”安全,即在软件开发生命周期的早期引入安全实践的想法。但实际上,DevSecOps更像是一种整体战略或方法,而非分配给特定群组或个人的一组具体职责。
DevSecOps 最适用于定义组织如何解决产品安全问题,或在集成开发环境中建立文化和技术左移。它还可以提供一个能够满足合规、安全和开发团队之间开展安全相关工作所需的机构框架。这里分享JFrog的金融行业客户案例。该客户遇到Log4j中的一个严重漏洞,名为"Log4Shell"或"CVE-2021-44228",允许攻击者通过精心构造的日志记录语句中的特殊字符,执行任意远程代码。该漏洞影响范围广泛,受到了全球范围内的关注。针对这种情况,JFrog产品为用户提供了以下协助:
1. 发布安全通知和建议:JFrog迅速发布关于Log4j漏洞的安全通知,并向客户提供详细的修复建议。帮助客户及时了解漏洞,并采取适当的措施来保护其系统和应用程序。
2. 帮助客户精准定位漏洞的影响范围:JFrog Xray漏洞扫描工具能够在第一时间定位所有被该漏洞影响的版本,并实现受影响版本的阻断下载。避免不必要的加班,未受影响的团队可不做处理。
3. 制定自动化的漏洞包处理策略,如果有用户再次下载该漏洞包,则会提示并阻止下载。
然而,现实情况是,虽然安全和开发团队都致力于加强业务,但两个团队之间的协作可能具有挑战性。公司安全团队的任务是尽一切努力保护业务,而开发人员更愿意编写高质量的代码,而非花时间修复漏洞。保护软件供应链所需的特定职责、任务和预算实际上就落在了DevOps团队身上。
定义以 DevOps 为中心的安全
顾名思义,DevOps团队管理软件开发的运营方面,并负责软件开发生命周期(SDLC) 的每个步骤。 当安全团队制定策略,开发团队编写代码时,DevOps团队负责管理 SDLC工作流。他们是软件供应链的实际负责方。
在软件供应链安全方面,DevOps团队也顺理成章地成为了负责方。DevOps团队拥有相应的资源、技能和责任,能够识别和解决整体DevOps工作流中的安全问题——从开发到运行时再到部署。安全团队负责合规和业务需求,开发团队会遇到大量安全请求、流程和法规处理问题,而这些并非其核心竞争力。DevOps团队参与软件开发流程的每一步,所以非常适合充当安全团队与开发团队之间的桥梁。
以DevOps为中心的安全能够提供机构软件供应链的端到端视图,并标记大量漏洞和薄弱环节,例如CVE、配置问题、机密泄露和基础设施即代码违规。 它还建议在软件开发生命周期的每个阶段(从代码到容器,再到设备)采取补救策略。
以 DevOps 为中心的安全如何运作?
以DevOps为中心的安全方法建立在严格的流程和持续的自动化测试之上,这是所有 DevOps团队的标志。更重要的是,它指导着国内的机构清楚地了解每处漏洞,并提出能够有效解决问题的行动建议。
具体如下:
关注二进制文件和源代码
现代软件供应链只有一项交付到生产中的核心资产:软件二进制文件,它有多种形式——从数据包到容器,再到归档文件。攻击者日益聚焦于攻击二进制文件,因其包含的信息比单独的源代码更多。 通过分析二进制文件和源代码,DevOps团队就能更全面地了解任何影响或发生漏洞利用之处。这有助于消除复杂性并简化安全检测、评估和补救工作。
上下文情境分析:确定哪些漏洞、薄弱环节和风险需要补救,以及最具成本效益的补救方法
严重漏洞的数量和被识别出的频次都在增加。 然而,这些CVE可能会被利用,也可能不会被利用,具体取决于应用程序的配置、身份验证机制的使用、以及密钥的暴露等因素。 以DevOps为中心的安全着眼于软件运行的上下文情境,以确定优先级并建议如何快速有效地修复漏洞,而不会将开发人员的时间浪费在不适用的问题上。扫描并分析容器中开源漏洞的能力尤为重要,因为如今使用容器来隐藏恶意代码的行为呈上升趋势。
提供软件供应链的整体视图
通过参与软件开发流程中的每一步,DevOps团队可以全面了解公司的软件供应链及其所有薄弱环节。以DevOps为中心的安全能够分析二进制文件、基础设施、集成、版本发布和传播流动,所有这些都在一处进行,消除了信息不同或有限的不同安全系统以及不一致的报告导致的混淆。因此,当在使用DevOps流程来实施安全时,不仅可以扫描以识别软件中的问题,还可以帮助开发人员确定问题的优先级并快速轻松地对其进行修复。
总之,国内机构正面临着软件供应链安全威胁的新时代。JFrog认为,快速、大规模地智能交付安全软件的最佳方式是为各机构的软件供应链部署以DevOps为中心的安全体系。