Authentication vulnerabilities:身份验证漏洞

至少在概念上,身份验证漏洞是最容易理解的一种漏洞。
然而,由于身份验证和安全性之间的关系,它们可能是最关键的。
除了可能允许攻击者直接访问敏感数据和功能外,他们还暴露了额外的攻击面,以便进一步利用。因此,学习如何识别和利用身份验证漏洞,包括如何绕过常见的保护措施,是一项基本技能。

在本节中,我们将介绍一些网站使用的最常见的身份验证机制,并讨论其中的潜在漏洞。我们将重点介绍不同身份验证机制中固有的漏洞,以及由其不当实现引入的一些典型漏洞。最后,我们将提供一些基本指导,说明如何确保自己的身份验证机制尽可能健壮。

什么是身份验证?

身份验证是验证给定用户或客户端身份的过程。换句话说,它用于确定那个用户到底是不是所声称的那个人。至少在某种程度上,网站是几乎是向所有人公开的。因此,准确的身份验证机制是有效web安全的一个重要方面。

有三个身份验证因素,可将不同类型的身份验证进行分类:

  • 知道的信息,例如密码或安全问题的答案。这些有时被称为“知识因素”。

  • 拥有的东西,就是一个物理物体,比如手机或安全令牌。这些有时被称为“占有因素”。

  • 正在做的事情,例如,你的生物特征或行为模式。这些有时被称为“内在因素”。

身份验证机制依赖于一系列技术来验证其中一个或多个因素而执行。

身份验证和授权之间有什么区别( authentication and authorization)?

  • 身份验证是验证用户并确认是否是他们声称的用户的过程
  • 授权则涉及验证是否允许用户执行某些操作

在网站或web应用程序的中,身份验证确定试图使用用户名Carlos123访问网站的人是否确实是和创建帐户的人是同一个人。
一旦Carlos123通过身份验证,他的权限将决定他是否有权访问其他用户的个人信息或执行删除其他用户帐户等操作。

身份验证漏洞是如何产生的?

广义上讲,身份验证机制中的大多数漏洞都以以下两种方式之一出现:

  • 身份验证机制很弱,因为它们无法充分防止暴力攻击,如弱口令。

  • 实现中的逻辑缺陷或糟糕的编码允许攻击者完全绕过身份验证机制。这有时被称为“broken authentication”。

在web开发的许多领域中,逻辑缺陷只会导致网站出现意外行为,这可能是安全问题,也可能不是。然而,由于身份验证对安全性至关重要,有缺陷的身份验证逻辑使网站暴露于安全问题的可能性明显增加。

易受攻击的身份验证会产生什么影响?

身份验证漏洞的影响可能非常严重。一旦攻击者绕过身份验证或强行进入另一个用户的帐户,他们就可以访问受损帐户拥有的所有数据和功能。如果他们能够破坏高特权帐户(如系统管理员),他们可以完全控制整个应用程序,并有可能获得对内部基础结构的访问权。

即使泄露低特权帐户,攻击者仍然可以访问本来不应该拥有的数据,如商业敏感业务信息。即使该帐户无法访问任何敏感数据,它仍可能允许攻击者访问其他页面,从而提供进一步的攻击面。通常,某些高严重性攻击不可能从公开访问的页面进行,但可能从内部页面进行。

身份验证机制中的漏洞

网站的身份验证系统通常由几个不同的机制组成,在这些机制中可能会出现漏洞。一些漏洞广泛适用于所有这些contexts,而其他漏洞则更具体于所提供的功能。
我们将更仔细地研究以下领域中一些最常见的漏洞:

posted @ 2021-08-20 20:51  Zeker62  阅读(663)  评论(0编辑  收藏  举报