Socket——通过下一代包分析保护开源软件免受供应链攻击
已发表: 2022-05-30随着互联网的出现和无处不在,企业越来越依赖数字化在当今的商业环境中生存和发展。 但是随着技术进步带来的优势,这些企业需要应对的问题。 网络安全违规对公司来说是一个重大问题,可能会造成很大损失。 因此,为了解决这个问题,Socket 推出了其网络安全平台,以帮助公司保护自己免受软件供应链攻击。 这些企业使用网络安全平台来保护其软件应用程序和关键服务免受源自开源代码的恶意软件和安全威胁。
另请阅读:资源管理对小型企业很重要的 7 个原因
该公司由 Feross Aboukhadijeh 创立,成立于 2021 年,其愿景是保护公司的开源生态系统。 它的重点是开源软件,它使团队能够在更短的时间内构建强大的应用程序。 此外,小组中的任何人都可以检查代码并为代码做出贡献。 Aboukhadijeh 意识到,作为一个普遍信任的社区,一些攻击者利用这种信任和开放性来进行无耻的供应链攻击。 开源恶意软件的规模出现了前所未有的增长。 这就是关于持续使用开源软件的担忧的增长速度。
尝试过且受信任的方法无法保护开源是有原因的。 整个安全行业一直专注于扫描已知漏洞,这是阻止主动供应链攻击的一种过于被动的方法。 暴露可能需要数周或数月才能被发现。
在当今快速开发的文化中,恶意依赖可以在几天甚至几小时内更新、合并并在生产中运行。 没有足够的时间来创建 CVE 并使其进入团队使用的漏洞扫描工具。
供应链攻击和漏洞非常不同,它们需要非常不同的解决方案:
️ 漏洞是由开源维护者意外引入的。 有时,如果影响较小,可以将漏洞发布到生产环境。
️ 供应链攻击是攻击者故意引入的。 发送恶意软件来展示是绝对不行的。 您必须在安装或依赖它之前捕获它。
想要解决供应链攻击的团队目前有两种选择:
- 进行全面审计——阅读所有依赖项中的每一行代码。 很少有公司这样做,但这是防止供应链攻击的黄金标准。 需要一个全职团队来管理这个过程——审计、更新、许可名单和应用关键安全补丁。 除了最知名的公司或最安全的关键应用程序之外,这种方法对所有人来说都是遥不可及的。 工作量大,速度慢,而且成本高。
- 什么都不做——交叉手指,希望最好。 这是大多数团队采取的选择。 在大多数单元上,任何开发人员都可以安装任何依赖项来完成工作,甚至没有人在批准拉取请求之前查看这些依赖项中的代码。 正如您所料,这种方法使公司完全容易受到供应链攻击。
这两种方法都不理想。
另请阅读:软件测试成为当今职业发展领域的 10 个原因
在开发 Wormhole 应用程序(一种端到端的加密文件传输工具)时,该公司在供应链攻击的持续冲击中遇到了选择、管理和更新开源依赖项的挑战。 这导致需要一个可怕的解决方案来解决这个问题。 因此,该公司调查了攻击者在破坏程序包后的实际行为。 JavaScript 生态系统中几乎所有的供应链攻击都遵循一个熟悉的模式。 一旦攻击者控制了一个包,他们就会添加安装脚本、网络连接、shell 命令、文件系统访问或混淆代码。 其他人则使用社会工程学,例如拼写错误; 这为解决方案提供了正确的方向。 创新的解决方案假定所有开源软件包都可能是恶意的,并且会向后工作以主动检测受损软件包的迹象。 该公司寻求在不损害可用性的情况下减轻这种风险的最简单方法。 因此,他们着手帮助开发人员在不牺牲开发速度的情况下安全地使用开源。 在接下来的几个月里,Socket 凭借其流行的开源软件包应运而生。
该公司可以通过静态分析开源软件包及其依赖关系来检测供应链攻击的迹象。 然后,当包以安全相关的方式发生变化时,它会提醒开发人员,突出显示安装脚本、混淆代码或使用特权 API(如 shell、网络、文件系统和环境变量)等事件。 例如,为了检测一个包是否使用网络,Socket 会查看 fetch()、Node 的 net、dgram、DNS、HTTP 或 HTTPS 模块是否在包或其任何依赖项中使用。 如果软件包的新版本——尤其是次要版本或补丁版本——添加了与网络通信的代码,这是一个巨大的危险信号。 因此,包问题被检测到。
客户对公司的数字产品和服务的反应非常好! 自成立以来的两个月内,该公司一直在保护数千个组织和数万个存储库。
该公司的客户包括希望保护自己免受攻击的企业。 通过安装公司应用程序,只需几分钟即可免受供应链攻击。
下一个故事:Kaaruka——艺术爱好者的新鲜服装品牌!
给客户和观众的信息:
“开源库比以往任何时候都更受欢迎。 由于开源代码占大多数代码库的 80-90%,因此有效管理它以降低组织的安全风险至关重要。 软件供应链攻击在过去一年呈爆炸式增长,开源组件越来越多地被用作向量。 在未经适当审查的情况下使用第三方依赖项可能会导致黑客攻击、违规和各种安全问题。 Socket在灾难发生前检测供应链攻击,实时预防开源代码带来的安全问题。 Socket 提供的不仅仅是基本的漏洞扫描。 通过直接集成到开发人员工作流程中,Socket 可以防止您意想不到的攻击——恶意软件、隐藏代码、拼写错误和误导性软件包。 Socket 通过告诉开发人员他们正在使用什么开源、正在做什么(或可以做什么)以及哪些组件的风险最高,从而帮助开发人员负责其依赖项的健康。 通过直接在 GitHub 和其他源代码控制系统中显示安全信息,开发人员可以在将其投入生产之前避免安全问题。”