-
-
[分享]开源软件包已成多数企业运作核心 如何避免引入安全问题
-
发表于: 2021-9-30 10:53 6933
-
开源从未像现在如此流行或受到更多攻击,但在开发过程中采取一些措施可以更安全。
目前,开源已经成为企业软件开发不可或缺的一部分,但 Sonatype表明,针对流行的开源软件存储库的供应链攻击在去年跃升了650%。事实上,正是开源软件的流行使得它成为首要目标。
尽管美国总统拜登呼吁更加关注开源软件的安全性和完整性,但目前仍缺少有效的方式。像Kubernetes这样的一些大型项目拥有必要的企业支持,以确保在保护软件安全方面进行大量投资和关注。
开源受到攻击
根据Sonatype的研究,开源越来越受欢迎。到2021年,从npmjs和Maven等库中提取的开源包已达2.2万亿。随着软件成为大多数企业运作方式的核心,开发人员必须以不断提高的速度进行构建。仅在GitHub上就有超过1亿的储存库,其中许多储存库的质量都很高,开发人员转向开源以快速获得优秀的软件。
这是一件好事,但又不完全是。
Sonatype搜索了受欢迎的10%的Java、JavaScript、Python和.NET 项目,发现其中29%至少包含一个已知的安全漏洞。
利用开源项目漏洞的旧方法是在开源代码中寻找可公开访问的、未修补的安全漏洞。但是现在,黑客“正在主动向为全球供应链提供支持的开源项目中注入新的漏洞,然后利用这些漏洞。”
到目前为止,Node.js (npm) 和 Python (PyPI) 存储库一直是主要目标。攻击者可以通过一些方法渗透到热门项目的上游,其中最突出的方法称为依赖项或命名空间混淆。
正如报告作者所指出的那样:“这种新颖的、高度针对性的攻击向量允许在不依赖域名抢注或品牌劫持技术的情况下,自动向下游引入不需要的或恶意代码。该技术涉及一个糟糕的参与者确定公司生产应用程序所使用的专有(内部源)包的名称。
有了这些信息,恶意程序就会发布一个使用完全相同的名称和更新的语义版本的恶意包到公共存储库,比如npmjs,它不规范命名空间标识。”
这些和其他新的攻击开始增加(图一)。
提高开源软件安全性存在多个困难,比如:并不是每个项目维护者都有资源或专业知识来有效地确保代码安全。在接收端,许多企业甚至不会迅速修补已知的安全问题。
开源被广泛使用的背后
现如今,开发人员的首要任务从原来的开发规模变成速度,对速度的需求推动开发人员接受开源。但对安全问题的不够重视使得软件供应链攻击愈发严重。
“今年的软件供应链状况报告再次表明,开源如何既是数字创新的关键组成部分,又是软件供应链攻击的成熟目标,” Sonatype执行副总裁Matt Howard表示。
如果供应商越来越多地提供“更高级别的、专业化的管理功能或服务”,那么他们也可能要为该服务的组件部分的来源和安全性负责。
面对开源存在更多安全漏洞的事实,软件供应商和开发团队应警惕潜在软件供应链安全风险,在开发前期将安全考虑进来。有效的代码安全检测工具,如SAST、SCA等可以帮助开发人员减少30%-70%的安全漏洞,提高软件安全性降低被攻击的风险。在使用第三方代码库时,通常我们认为有人看过代码分析了代码就安全了。但实际上可能不是这样,通过第三方引入安全风险的问题仍旧存在,如果不加以管理,问题只会越来越多。
参读链接:
https://www.techrepublic.com/article/heres-a-fix-for-open-source-supply-chain-attacks/
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)