开源的未来是否受到威胁?

已发表: 2023-01-24

开源软件 (OSS) 是当今应用程序架构的支柱。 通过加快上市时间并减轻经常过度劳累的开发人员的负担,开源巩固了其在 DevOps 领域的革命性地位。 尽管对现代应用程序的开发产生了深刻的变革,但开源复制和粘贴仍然对组织和个人等构成重大安全风险。 要解决这个问题,要么需要将开源代码列入黑名单,要么需要主动实施对策,例如下一代WAF 解决方案

第三方代码对应用程序开发至关重要

库是 Web 或移动应用程序组件源代码的非常方便的存储库。 这些库可以是开源的——每个人都可以免费使用——也可以是专有的,从而锁定支付背后的代码。 尽管开源享有很多荣耀,但专有代码也在企业应用程序的持续运行中发挥着作用。

这种第三方软件在负责任地使用时,可以避免开发人员不得不不断地重新发明轮子。 这极大地提高了开发过程的效率,同时有助于生产高质量的最终产品。 最终,开源代码的自由和自由使用创造了一个积极的反馈循环,使开发人员能够更快地发布他们的最小可行产品,这为快速收集和实施用户反馈和评估铺平了道路。 尽管开发人员深知开源在 DevOps 流程中的关键地位,但高管们常常惊讶地发现,支持现代应用程序的代码中有 80%来自预先存在的代码。

传递依赖的阴暗危险

开源代码带有风险并不是新闻。 最近普遍存在的弱点,如 Log4j 和 HeartBleed,不可逆转地将开源风险置于地图上。 仍然越来越多的理解领域是开源的使用频率,以及漏洞潜入活动项目的隐秘性。 尽管开源项目带来了持续的风险,但很少有人对开源带来的具体风险类型进行研究。 Endor Labs 的研究人员着手通过澄清主要 OSS 威胁的来源来改变这一现状。

在软件中,传递依赖描述了两个组件之间独特的间接关系。 例如,假设您的开发团队将包 B 添加到正在进行的项目中。 反过来,包 B 会自动下载包 C。在这种情况下,虽然开发软件与包 B 有直接关系,但包 C 仍然潜伏在后台 – 不可或缺但基本上不可见。 令人沮丧的是,任何尝试更安全的开发实践的事实是,只有 5% 的开源软件依赖项是手动选择用于在 DevOps 流程中实施的。 以这种方式,大多数依赖项都会自动拉入代码库。 这描述了传递漏洞的来源。 Endor Labs 最近的一份报告发现,惊人的95% 的开源漏洞源自传递依赖性

这些数据是根据 Core Infrastructure 的 Census II 报告编制的,该报告列出了最流行的免费开源软件。 然后,该数据通过其他来源得到丰富,使 Endor 研究人员能够扫描流行的包管理器和 OSS 库。 研究人员发现,在 Census II 数据中提到的 254 个包中,大多数包平均有 14 个传递依赖。 在真空中,14 可能不会显得高得惊人,但大多数应用程序依赖数十个 - 如果不是数百个 - 直接依赖项; 他们的传递对应物呈指数级增长。

研究人员表达的主要担忧是基于业界对该问题的普遍低估。 高管们继续破坏开发过程中使用的源代码数量——传递依赖性甚至还没有出现在雷达上。 安全问题的绝对深度继续潜伏在表面之下,增加了错误抢注和远程代码执行攻击的爆炸半径。 如果开源代码的持续重用要充分发挥其潜力,安全性需要成为 DevOps 流程中的更高优先级。

如何防范潜伏的漏洞

维护安全技术堆栈的过程从未如此复杂。 随着补丁警报迅速变得势不可挡,企业安全是时候优先考虑自动化、无补丁的保护了。 优先考虑周边安全以及静态和动态分析的传统措施依赖于手动更新,这意味着没有针对零日的保护措施。 攻击者在臭名昭著的 SolarWinds 攻击中使用的后门代码没有被任何静态分析检测到,因为从技术上讲没有错误。

识别和阻止企图利用需要一套小型互锁软件。 为了首先帮助定义和保护应用程序的边界,可以部署下一代 Web 应用程序防火墙 (WAF)。 WAF 位于外部和内部之间的边界,监视流入和流出应用程序的所有流量。 下一代方面使该 WAF 能够自动适应和实施新策略。 这种不断发展的自动部署为安全团队释放了大量时间和精力,否则旧式 WAF 会耗费这些时间和精力。

虽然 WAF 会处理任何外部执行代码的尝试,但运行时应用程序自我保护 (RASP) 可防止内部漏洞和代码注入。 这种保护级别实时评估所有有效负载(例如 SQL 查询和操作系统命令)。 此过程不需要签名或学习阶段,并且完全在应用程序上下文中进行。 由于它在应用程序中运行,因此它几乎涵盖了所有上下文。 这意味着,即使利用允许突破边界,攻击者也无法横向移动,因为任何可疑的应用程序行为都会触发 RASP 关闭。 这会终止可疑活动并提醒安全团队。 通过这种方式,RASP 是对下一代 WAF 的补充; 虽然 WAF 有助于将不良流量拒之门外,但 RASP 减轻了潜伏的、可传递的漏洞利用所带来的风险。 通过这些保护技术栈的组件,OSS 当前给安全带来的负担大大减轻了。