程序员的安全进阶:分享与学习系列 —— 使用存在已知漏洞的组件

所有应用程序都有一个共同点,那就是它们都包含组件,也就是我们常说的依赖项或库。在这个世界上,几乎没有代码是不依赖于其他代码的。从您创建应用程序的那一刻起,您就已经在使用海量的依赖项了!
由于所有应用程序都会使用组件,而其中大部分并非由您编写,因此您所用组件中的漏洞可能会成为安全隐患。让我们探讨一下使用存在已知漏洞的组件意味着什么、其危险性如何,以及如何解决这一问题。
了解使用存在已知漏洞的组件所带来的风险
所有复杂的软件都存在漏洞,这是不可避免的。因此,您的组件永远无法做到 100% 安全。但是,当组件中发现漏洞时,您能及时察觉吗?您做好应对准备了吗?
当组件超过其使用寿命或在发现漏洞后继续使用时,问题往往就会出现。大多数组件和库在发布安全漏洞公告的同时,甚至在此之前,就会提供补丁。因此,一旦发现并公布了组件漏洞,尽快更新组件至关重要。切勿让存在漏洞的软件在生产环境中运行。
组件的来源多种多样。有时您会购买直接集成到自定义代码中的第三方供应商产品。这些组件会成为您代码的一部分,并拥有相同的权限级别。另一个来源是托管在 GitHub 等网站上的开源项目。开源软件可能存在风险,因为并非所有的开源库都经过了严格的审查或漏洞审计。
攻击者会利用组件漏洞信息来达到目的。由于漏洞是公开披露的,攻击者与您几乎在同一时间获知这些漏洞。攻击者还掌握着各种技术,可以探测出您正在使用哪些组件。一旦掌握了这些信息,如果您的应用程序未及时修补,他们便知道如何对其发起攻击。
了解为何存在漏洞的组件如此危险
如果您想寻找使用存在已知漏洞的组件有多危险的证据,2017 年的 Equifax 数据泄露事件就是最好的例子。
2017 年 7 月,美国征信机构 Equifax 发现了一起大规模数据泄露事件,导致超过 1.47 亿人的个人身份信息外泄。此次数据泄露的规模和影响前所未有。近期,有关 Equifax 安全管理松懈 的新闻也随之曝光。
其中一项松懈的管理实践就是补丁管理。Equifax 没有良好的补丁管理流程,这意味着他们的组件在很长一段时间内都没有得到修补。这正是导致此次泄露的直接原因。
Equifax 的网站使用了 Apache Struts Web 框架。在攻击者入侵网络的前几个月,Struts 框架中就已发现了一个漏洞,即 Apache Struts CVE-2017-5638。然而,Equifax 并未修补该漏洞。攻击者利用此漏洞获得了 Equifax 网络的访问权限,进而窃取了海量的个人信息。
许多网站都基于非本公司编写的 Web 框架构建。这是一种标准做法,因为从零开始构建所有必要的功能工程量过于庞大。然而,过度依赖某个框架可能会让您暴露在漏洞风险之下。请引以为戒,避免重蹈 Equifax 的覆辙。
如何防范存在漏洞的组件
防范存在漏洞的组件并没有万能的灵丹妙药。但是,您可以采取相应的策略和控制措施,降低因使用存在漏洞的组件而导致系统受损的风险。
您需要清楚自己构建应用程序时使用了哪些组件及其版本。诸如 OWASP Dependency Check 之类的依赖项管理工具可以帮助您掌握所使用的依赖项情况。Dependency Check 还会告知您这些组件中是否存在已公开的漏洞。
建立补丁管理方法论也至关重要。当发现漏洞时,应建立一套完善的系统,确保补丁能够顺利下载、测试并发布到生产环境中。保持软件补丁更新,可以防止攻击者利用那些早已存在数月的漏洞进行攻击。
最后,请制定针对开源和第三方组件使用的管理政策。开发人员通常不喜欢繁文缛节,这一点可以理解。然而,对于非本组织编写的代码,必须建立审查流程。该流程不必过于繁琐,但为了防止使用来源不明的组件,它是必不可少的。至少,必须确保所用组件的清单始终保持最新。
别让第三方组件成为安全隐患
组件难免存在漏洞。无论是来自供应商还是开源库,您的业务应用程序都会使用各种组件。但这并不意味着您的组织必须面临被攻击的风险。
尽管攻击者与您几乎同时获知漏洞信息,但补丁通常也会在漏洞公开的同时发布。因此,请务必了解您的应用程序正在使用哪些组件,明确哪些组件存在漏洞,并及时更新补丁!
准备好发现(并击败)那些易受攻击的组件了吗?前往竞技场开始战斗: [从这里开始]
在 AI 驱动的开发成果发布前实现有效治理
评估 AI 辅助风险,在提交代码时强制执行安全编码策略,并加速整个软件开发生命周期的安全交付。
探索更多博客
获取有关安全编码、人工智能治理和软件风险管理的专家内容。
%252520%252520(3).avif)
Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Security as culture: How Blue Prism cultivates world-class secure developers
Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed
在产品发布前确保 AI 驱动的开发安全
洞察开发风险,执行安全策略,并在整个软件开发生命周期中预防漏洞。



.avif)