今天的大部分软件并不是完全从头进行开发设计的。相反,现在的开发人员频繁的依赖一系列第三方组件来创建他们的应用程序。通过使用预构建的库,开发人员不需要重新发明轮子。他们可以使用已经存在的工具,花更多的时间在专有代码上。这些工具有助于区分他们的软件,更快的完成项目,降低成本,并保持竞争力。这些第三方组件库构成了软件供应链的一部分,虽然它们的集成是有益的,但同时也给软件供应链带来了风险,需要加以保护。
近期发生的重要违规事件表明,软件供应链受到攻击的频率正在上升。Log4j漏洞和SolarWinds供应链攻击事件提醒我们,软件组件可能是一种安全威胁。由于这些类型的攻击相对较新,大多数组织往往难以确定他们的应用程序在何时会受到何种影响,以及采用何种方法来应对新的威胁。
有效的软件供应链安全体系可以确保应用程序代码的任何组件或对其产生影响的任何组件都是安全可靠的。在本文中,我们将进一步探讨什么是软件供应链安全,以及为什么它很重要,同时我们可以采用哪些最佳实践,以确保公司和组织免受供应链攻击。
一、什么构成了软件供应链?
软件供应链是指直接参与开发应用程序的所有组件。它们包括:
- 硬件和基础设施
- 操作系统
- 编译器和编辑器
- 驱动程序和依赖关系
- 开源脚本和打包软件
- 存储库引擎、测试套件和CI/CD工具
- 云服务和数据中心
供应链还应该包括各种人员,如外包公司、顾问和承包商。
软件供应链安全的主要重点是将风险管理和网络安全原则结合起来。这样做可以检测、减轻和最小化与应用程序中这些第三方组件相关的风险。
二、威胁来自何方?
供应链威胁的存在是因为企业对供应链的信任。例如,没有人觉得微软会发布一个安全补丁,将他们的环境暴露给攻击者。攻击者恰恰利用了这种信任,因为他们知道大多数开发人员不会不遗余力的交叉检查他们正在使用的软件。
以下来举例说明,企业在哪些环节容易受到软件供应链攻击。
1.软件更新
通过破坏分布广泛的软件更细,攻击者可以访问多种系统。例如,许多公司每个月都会发布新的安全补丁,这些补丁会被成千上万的开发人员下载,已部署到他们的项目和CI/CD管道中。如果攻击者可以操纵一个更新,那么他们就可以轻松的访问部署该更新的所有系统。
2.开源项目
对开源项目的提交权限通常授予受信任的贡献者。如果攻击者破坏了一个受信任的账户,他们可以将恶意代码插入到存储库中。开发人员不知不觉的使用了这些代码,从而无意中打开了对环境的访问权限。
3.第三方开发人员
许多公司现在雇用承包商或自由职业者进行应用程序开发,如果没有进行适当的背景调查,恶意的外部组织可以轻松的窃取数据或IP,以获取经济利益或从事工业间谍活动。
这些只是一小部分例子,更多其他案例还包括证书被盗、软件开发工具被破坏、设备预先安装了恶意软件等等。
三、为什么软件供应链安全很重要?
软件供应链安全已经变得如此重要,以至于在2021年5月,拜登签署了一项行政命令来解决此问题。有两起事件在这次命令中起到了关键作用:SolarWinds和Apple/Quanta。
在SolarWinds事件中,黑客将恶意代码部署到“Orion”系统的更新中,据统计该系统有超过33000个用户。这次袭击非常隐蔽且手段高明,甚至软件开发人员在14个月后才发现了端倪。由于没有意识到这个漏洞,SolarWinds向安装了这些软件的客户发布了软件更新。这使得黑客不仅可以访问SolarWinds系统,还可以访问每个安装了更新的人的系统。
在Apple/Quanta的受攻击事件中,Quanta公司的系统在2021年4月遭到攻击。他是苹果产品的主要台湾供应商。勒索软件集团REvil声称窃取了最新款Macbook的设计蓝图,并索要5000万美元的解密秘钥。当Quanta公司拒绝付款后,REvil开始在暗网公布被盗的蓝图。
这两起攻击都与软件供应链有关,一起涉及软件补丁,另一起发生在硬件供应商身上。这些类型的攻击不仅仅针对知名公司,它们可能发生在任何规模的公司内。
四、软件供应链安全的最佳实践
为了确保软件供应链的安全性,需要对应用程序的每个部分都有一个清晰的视图和控制。虽然技术控制是必不可少的,但是为业务流程、策略和过程开发一个具体的治理、风险和遵从框架也是至关重要的。可以从以下几点着手:
-
评估供应链
为了让应用程序的依赖关系具有完全的可见性,需要对一些问题进行评估,例如:
- 开发生命周期的每个步骤涉及到什么?
- 是否有承包商具有代码访问权限?
- 谁安装软件更新,如何安装?
企业应审核其所有应用程序以及授予内部和外部各自的访问权限。理想情况下, 这应该有完备的文档记录和高度自动化的流程。这样,当发生一些突发情况时,可以很快找出谁有访问权限。
-
安全的访问权限管理
一旦攻击者获得了对系统的访问权限,他们往往会尝试通过网络横向移动来找到一个特权账户。如果从成功,他们将使用该账户访问敏感数据或控制其他系统。
出于此原因,一个负责的安全团队应该密切监视特权账户的异常活动。它应该监视密码更改、登陆活动和权限更改,并且应该做出相应的响应。例如,假设一个域管理员账户多次尝试错误密码。在这种情况下,安全小组应该调查并锁定账户,直到他们确定这是一个失败尝试的合法案例。
另外,管理员应该在所有网络账户上应用最小特权原则,只要在必要时才授予高级的访问权限。最后,系统管理员应该使用自动化和组态管理的相关工具来控制和监控账户,这样就没有人为干预和可能出现错误的余地。
-
只使用可信任的伙伴
评估任何潜在合作伙伴的可信度、服务历史、过去的项目和市场声誉是很重要的。对于个人来说,要经常进行严格的背景审查,以确定诸如犯罪记录或破产申请之类的危险行为。对供应商和服务提供商进行类似的尽职调查,事实上,一些法规要求某些供应商必须具备ISO 27001这样的资质。
-
监控第三方
持续监控第三方就有助于减轻供应商泄露或攻击的影响。这有助于解决一些问题,例如在暗网中暴露出来的证书或者任何过去数据泄露的历史。企业可以要求并检查任何供应商的安全文档,以确保其政策和程序符合行业最佳实践和相应安全标准。
-
找到并修复漏洞
供应链攻击的罪魁祸首是未打补丁的软件。一旦漏洞公告发布给公众,攻击者就会搜索未打补丁的系统并加以利用。因此,公司的IT团队必须利用SCA工具来发现第三方代码中的漏洞,并提出补丁和更新等修复方法。
事实上,目前市场上存在很多SCA工具供企业选择,例如:Checkmarx、Synopsys、Veracode、泛联新安等等许多公司的对应检测软件。
-
创建一个事故应对计划
简单来说,就是假设公司将受到攻击,并据此制定计划。
事故响应计划定义了当攻击发生时需要做什么,谁应该做什么,以及响应顺序。RACI矩阵有助于确定谁负责采取行动、应该与谁协商以及在此类事件发生期间通知谁等一系列问题。另一个需要考虑的领域是RACI的不同成员之间的沟通计划、要使用的沟通渠道和表达式数。
一个有效的灾难恢复计划应该是可靠的,并经过了多种场景的测试。DR计划可以应该包括传统的备份或故障转移站点,同时经过测试的恢复机制可以防止系统受到勒索软件的攻击
五、总结
企业必须面对真实存在的网络攻击威胁,这就是事实。尽管软件供应链攻击发生的频率相对较少,但它们可以造成严重的破坏。
对于这种类型的攻击,最好的防护措施是了解你的供应链,审核所依赖的第三方,扫描软件组件中的漏洞,并建立一个健全的事件管理计划。文章来源:https://www.toymoban.com/news/detail-447702.html
泛联新安拥有专业的经验来帮助企业完善他们的软件安全体系。如果您还没有软件供应链安全工具,可以考虑泛联新安的DevSecOps体系。这能帮助您缩短解决问题的时间,同时有效的实现安全左移,将问题阻断在开始阶段。最后,关键点在于培训您的软件开发和安全人员将Sec的最佳实践直接集成到他们的CI/CD管道中。这样一来,客户同样会对您应用程序的安全性更有信心。文章来源地址https://www.toymoban.com/news/detail-447702.html
到了这里,关于一文读懂什么是软件供应链安全的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!