Coders Conquer Security:分享与学习系列 - 使用已知漏洞的组件

2019年4月25日发布
作者:Jaap Karan Singh
案例研究

Coders Conquer Security:分享与学习系列 - 使用已知漏洞的组件

2019年4月25日发布
作者:Jaap Karan Singh
查看资源
查看资源

什么是所有应用程序都有的东西?组件,也被称为依赖性或库。世界上很少有代码不在某个时间点上依赖其他代码的。你甚至从创建应用程序的时候就开始了依赖性的堆积!

由于所有的应用程序都使用组件,其中大部分是你没有写过的,所以你使用的组件中的漏洞会成为责任。让我们讨论一下使用有已知漏洞的组件意味着什么,它有多危险,以及如何解决它。

理解使用具有已知漏洞的组件

所有复杂的软件都有漏洞。这就是野兽的本质。所以你的组件永远不会是100%安全的。然而,当在组件中发现漏洞时,你知道它吗?你是否为它做好了准备?

当组件的使用超过其使用寿命或发现漏洞后,问题最常出现。大多数组件和库在漏洞公布的同时或之前就发布了安全漏洞的补丁。因此,当组件中的漏洞被发现和公布时,尽快更新组件是最重要的。不要在生产中留下有漏洞的软件。

组件可以来自几个来源。有时你会购买第三方供应商的产品,直接与你的自定义代码集成。这些组件成为你的代码的一部分,并在相同的权限水平上运行。另一个来源是托管在GitHub等网站上的开放源码项目。开放源码可能是危险的,因为不是所有的开放源码库都经过仔细的审查或审计,以发现漏洞。

攻击者利用组件漏洞信息对他们有利。由于这些漏洞是公开宣布的,攻击者在你知道的同时也知道了这些漏洞。攻击者还有一些技术可以用来找出你所使用的组件。一旦他们知道了这些信息,他们就会知道如果你的应用程序没有打上补丁,该如何攻击它。

了解为什么易受攻击的组件是危险的

如果你正在寻找证据,说明使用具有已知漏洞的组件有多危险,那么就请看看2017年的Equifax漏洞。

2017年7月,美国信用局Equifax发现了一个大规模的数据泄露,泄露了超过1.47亿人的个人身份信息。这次数据泄露的范围和影响是空前的。最近,关于Equifax安全做法不严的消息传出。

其中一个宽松的做法是补丁管理。Equifax没有良好的补丁管理做法,这意味着他们的组件会在相当长的一段时间内没有打补丁。这是导致漏洞的直接原因

Equifax的网站使用了Apache Struts网络框架。在攻击者入侵网络的几个月前,Struts框架中发现了一个漏洞,即Apache Struts CVE-2017-5638。然而,Equifax并没有修补这个漏洞。攻击者利用这个漏洞进入了Equifax的网络。从那里,他们获得了一个个人信息的宝库。

许多网站是基于并非由公司编写的网络框架。这是标准的做法,因为从头开始建立所有必要的功能将是一个太大的工程。然而,对框架的强烈依赖可能会使你受到漏洞的影响。不要成为下一个Equifax。

如何保护易受攻击的组件

在防止使用易受攻击的组件方面,没有银弹。然而,你可以使用一些政策和控制措施来减轻易受攻击的组件被用来破坏你的系统的风险。

你需要知道你正在使用哪些组件以及每个组件的哪个版本来构建你的应用程序。OWASP的依赖性检查等依赖性管理工具可以帮助你掌握你正在使用的依赖性。依赖性检查也会告诉你这些组件中是否有公开披露的漏洞。

补丁管理方法也是必不可少的。当漏洞被发现时,要有一个系统来下载、测试和顺利地发布到生产中的补丁。保持你的软件的补丁可以防止几个月前的漏洞被攻击者利用。

最后,要有管理使用开放源码和第三方组件的政策。开发人员不喜欢有繁文缛节,这是可以理解的。然而,对于不是由你的组织编写的代码,必须有一个审查过程。它不一定是重量级的,但必须防止未知组件被使用。至少,必须保持最新的组件使用清单。

不要被 "第三方 "咬伤

组件会有漏洞。你的业务应用程序将使用组件,无论是来自供应商还是来自开放源码库。这并不意味着你的组织需要容易受到攻击。

即使攻击者在你知道的同时也知道存在什么漏洞,但补丁通常是在公开宣布的同时提供的。因此,一定要教育自己,了解你的应用程序在使用什么。知道什么是脆弱的。保持你的组件有补丁。

准备好发现(和击败)一些脆弱的组件了吗?前往竞技场参与战斗吧。 [从这里开始]

查看资源
查看资源

作者

Jaap Karan Singh

想要更多吗?

在博客上深入了解我们最新的安全编码见解。

我们广泛的资源库旨在增强人类对安全编码技术提升的方法。

查看博客
想要更多吗?

获取关于开发者驱动的安全的最新研究

我们广泛的资源库充满了有用的资源,从白皮书到网络研讨会,让你开始使用开发者驱动的安全编码。现在就去探索它。

资源中心

Coders Conquer Security:分享与学习系列 - 使用已知漏洞的组件

2019年4月25日发布
作者:Jaap Karan Singh

什么是所有应用程序都有的东西?组件,也被称为依赖性或库。世界上很少有代码不在某个时间点上依赖其他代码的。你甚至从创建应用程序的时候就开始了依赖性的堆积!

由于所有的应用程序都使用组件,其中大部分是你没有写过的,所以你使用的组件中的漏洞会成为责任。让我们讨论一下使用有已知漏洞的组件意味着什么,它有多危险,以及如何解决它。

理解使用具有已知漏洞的组件

所有复杂的软件都有漏洞。这就是野兽的本质。所以你的组件永远不会是100%安全的。然而,当在组件中发现漏洞时,你知道它吗?你是否为它做好了准备?

当组件的使用超过其使用寿命或发现漏洞后,问题最常出现。大多数组件和库在漏洞公布的同时或之前就发布了安全漏洞的补丁。因此,当组件中的漏洞被发现和公布时,尽快更新组件是最重要的。不要在生产中留下有漏洞的软件。

组件可以来自几个来源。有时你会购买第三方供应商的产品,直接与你的自定义代码集成。这些组件成为你的代码的一部分,并在相同的权限水平上运行。另一个来源是托管在GitHub等网站上的开放源码项目。开放源码可能是危险的,因为不是所有的开放源码库都经过仔细的审查或审计,以发现漏洞。

攻击者利用组件漏洞信息对他们有利。由于这些漏洞是公开宣布的,攻击者在你知道的同时也知道了这些漏洞。攻击者还有一些技术可以用来找出你所使用的组件。一旦他们知道了这些信息,他们就会知道如果你的应用程序没有打上补丁,该如何攻击它。

了解为什么易受攻击的组件是危险的

如果你正在寻找证据,说明使用具有已知漏洞的组件有多危险,那么就请看看2017年的Equifax漏洞。

2017年7月,美国信用局Equifax发现了一个大规模的数据泄露,泄露了超过1.47亿人的个人身份信息。这次数据泄露的范围和影响是空前的。最近,关于Equifax安全做法不严的消息传出。

其中一个宽松的做法是补丁管理。Equifax没有良好的补丁管理做法,这意味着他们的组件会在相当长的一段时间内没有打补丁。这是导致漏洞的直接原因

Equifax的网站使用了Apache Struts网络框架。在攻击者入侵网络的几个月前,Struts框架中发现了一个漏洞,即Apache Struts CVE-2017-5638。然而,Equifax并没有修补这个漏洞。攻击者利用这个漏洞进入了Equifax的网络。从那里,他们获得了一个个人信息的宝库。

许多网站是基于并非由公司编写的网络框架。这是标准的做法,因为从头开始建立所有必要的功能将是一个太大的工程。然而,对框架的强烈依赖可能会使你受到漏洞的影响。不要成为下一个Equifax。

如何保护易受攻击的组件

在防止使用易受攻击的组件方面,没有银弹。然而,你可以使用一些政策和控制措施来减轻易受攻击的组件被用来破坏你的系统的风险。

你需要知道你正在使用哪些组件以及每个组件的哪个版本来构建你的应用程序。OWASP的依赖性检查等依赖性管理工具可以帮助你掌握你正在使用的依赖性。依赖性检查也会告诉你这些组件中是否有公开披露的漏洞。

补丁管理方法也是必不可少的。当漏洞被发现时,要有一个系统来下载、测试和顺利地发布到生产中的补丁。保持你的软件的补丁可以防止几个月前的漏洞被攻击者利用。

最后,要有管理使用开放源码和第三方组件的政策。开发人员不喜欢有繁文缛节,这是可以理解的。然而,对于不是由你的组织编写的代码,必须有一个审查过程。它不一定是重量级的,但必须防止未知组件被使用。至少,必须保持最新的组件使用清单。

不要被 "第三方 "咬伤

组件会有漏洞。你的业务应用程序将使用组件,无论是来自供应商还是来自开放源码库。这并不意味着你的组织需要容易受到攻击。

即使攻击者在你知道的同时也知道存在什么漏洞,但补丁通常是在公开宣布的同时提供的。因此,一定要教育自己,了解你的应用程序在使用什么。知道什么是脆弱的。保持你的组件有补丁。

准备好发现(和击败)一些脆弱的组件了吗?前往竞技场参与战斗吧。 [从这里开始]

我们希望得到您的许可,向您发送有关我们产品和/或相关安全编码主题的信息。我们将始终以最谨慎的态度对待您的个人资料,绝不会将其出售给其他公司用于营销目的。

提交
要提交表格,请启用 "分析 "cookies。完成后,请随时再次禁用它们。