软件供应链安全如何受到黑客的威胁
共 2363字,需浏览 5分钟
·
2022-11-01 14:02
当我们谈论软件供应链攻击时,实际上是两次连续的攻击:一种是针对供应商,另一种针对供应链中的一个或多个下游用户。
什么是供应链?
现如今,无论是开源库、开发人员工具、内部部署或基于云的部署和交付系统,还是软件即服务(SaaS)服务,这些构建块在现代软件开发中都已变得必不可少。
每一块“积木”本身都是漫长供应链的产物,这使得软件供应链成为一个包含IT的方方面面的概念:从硬件,到开发人员编写的源代码,到第三方工具和平台,还包括数据存储和所有用于开发、测试和分发软件的基础设施。
供应链是一个分层结构,允许公司实现高度灵活的软件开发,这是数字化转型的引擎。
开源组件和库的大规模重用极大地加快了开发周期,并能够根据客户的期望交付功能。但与这一令人印象深刻的进步相对应的,是对进入公司产品的代码来源的控制缺失。这一依赖链将组织及其客户暴露在由其直接控制之外的变更引入的漏洞中。
这显然是一个主要的网络安全问题,而且随着供应链年复一年变得越来越复杂,这个问题只会越来越严重。因此,最近大规模的网络攻击得以利用这一点也就不足为奇了。
薄弱环节的风险
对黑客来说,软件供应链是一个有意思的针对目标。首先,由于其复杂的特性,其攻击面非常大;其次,由于应用程序安全性历来侧重于保护应用程序,而内部构建服务器和CI/CD管道缺少一定的安全可见性;最后,通过利用供应链,黑客找到了最大化攻击影响的方法,从而最大限度地提高了攻击的收益。
供应链攻击的兴起
2020 年 3 月至 6 月期间的 SolarWinds 攻击中,大约 18,000 名 Orion 平台客户(包括一些美国政府机构)下载了注入恶意代码的更新。该代码允许黑客未经授权后门访问近 100 个实体的系统和专用网络。SolarWinds 直到 2020 年 12 月才发现该漏洞。2021 年 1 月,由于构建过程中出现错误,攻击者获得了用于创建涉及 Codecov 软件的 Docker 映像的凭据。这些凭据允许攻击者劫持Codecov,一种用于测试开发人员代码覆盖率的软件,并将其变成真正的特洛伊木马:由于该软件用于持续集成(CI)环境,因此它可以访问构建过程的秘密凭据。因此,攻击者能够从Codecov用户那里窃取数百个凭据,从而允许他访问尽可能多的安全系统。
2021 年 7 月 2 日,一个复杂的勒索软件组织利用了 Kaseya 虚拟系统管理员 (VSA) 服务器中的一个漏洞,影响了大约 1500 家小型企业。Kaseya 是托管服务提供商 (MSP) 和其他 IT 承包商使用的网络、系统和基础设施管理软件的开发商。尽管勒索软件攻击控制了客户的系统,但几天后攻击就被遏制并被击败。
2021年12月,对软件供应链最简单但最广泛的攻击发生了。在最初的概念验证(POC)被披露后,攻击者开始大规模利用影响Apache Log4j的漏洞,这是Java生态系统中非常流行的开源日志库。
尽管存在严重性,但这种漏洞远非孤立的案例:2020 年至 2021 年间,使用开源生态系统作为传播媒介到达供应链的攻击数量增加了 650%。欧洲网络安全局(ENISA)预测,到2022年,供应链攻击将增加四倍。
所有这些攻击和漏洞都凸显了缺乏有效保护供应链的可见性和工具,无论是用于清点使用开源组件的系统、验证其完整性的系统,还是防止敏感信息泄漏的系统。
供应链的关键:秘密
获得未加密的凭据是黑客从供应商向客户的供应链转移的“钥匙”:有了有效的凭据,攻击者以授权用户的身份操作,入侵后检测变得更加困难。
从防御的角度来看,硬编码机密是一种独特的漏洞类型。源代码是一种非常容易泄露的资产,因为它本质上是为了频繁地克隆和分布在多台机器上。事实上,源代码中的秘密与它一起传播。但更成问题的是,代码也有“记忆”。
今天,任何代码存储库都是通过版本控制系统(VCS)管理的,通常是Git,它保留了对代码库中文件所做的所有更改的时间表,有时是几十年。问题在于,仍然有效的机密可以隐藏在该时间线上的任何位置。然而,大多数安全扫描仅限于检查应用程序源代码的当前、已部署或即将部署的状态。换句话说,当涉及到隐藏在旧提交甚至从未部署的分支中的秘密时,传统工具存在困难。
将安全性纳入开发周期:DevSecOps
软件供应链有许多传统安全方法无法解决的灰色地带。组织已经意识到需要将安全性引入到开发生命周期中。DevSecOps将安全性插入到DevOps实践中。
DevOps将流程和技术结合在一起,使开发人员能够更有效地与运营团队合作。对于安全经理来说,挑战在于保持DevOps的速度,同时加强改进的安全态势:包括开发周期最早阶段(规划、设计)的安全规则,传播最佳实践,并通过更早地捕获更多“良性”缺陷来缩短平均修复时间(MTTR)。
依靠现代工具是一种途径。开发人员采用与他们的工作环境完美集成的直观工具:命令行、API、IDE(集成开发环境)等。
自动化测试工具也是创建有效安全系统的关键。在开发周期中使用静态应用安全测试、动态应用安全测试等工具,可以有效保障应用程序的安全性。
共担责任和左移
新的安全模型意味着在项目涉及的所有成员之间分担责任,安全问题不再只是安全团队的工作。
“左移”提出在更早时期开始关注安全,以便更早地进行安全操作并节省检测和修复费用。在过去,人们更关注对于完成的应用程序安全性的检测,现如今,组织更多的是在整个周期中完成安全测试,并及时进行安全修复。
来源:
https://thehackernews.com/2022/10/how-software-supply-chain-security-is.html