📌  相关文章
📜  为什么用户访问容易受到攻击?

📅  最后修改于: 2021-04-16 08:29:10             🧑  作者: Mango

您是否曾经想过上述声明,以及为什么将用户访问视为最弱的组成部分?如果您不曾对此有所疑问,那没有问题,但是您必须了解用户访问的一些重要概念吗?

Web应用程序采用的防御机制包括以下几点:

  1. 处理用户对应用程序的数据和功能的访问,并防止他们获得未经授权的访问。
  2. 以不会造成任何伤害的方式处理用户的输入。
  3. 处理攻击者以确保应用程序在受到攻击时表现适当,并采取适当的防御和进攻措施使攻击者感到沮丧。
  4. 向管理员报告任何恶意活动。

这里最重要的是第一个处理用户的访问,因为应用程序必须处理几类用户,例如匿名用户,经过身份验证的用户和管理用户,并且根据这些用户在特定应用程序中的角色将它们进一步分类。此外,在许多情况下,允许不同的用户访问不同的数据集,例如Webmail用户只能读取自己的邮件,而不能读取其他邮件。

大多数Web应用程序通过三项相互关联的安全机制来处理用户的访问:

  1. 验证
  2. 会话管理
  3. 访问控制

验证

身份验证是我们证明自己是谁的一种方式。从逻辑上讲,它是应用程序用户处理中最基本的依赖项。从不进行身份验证的每个人都被视为匿名(这是最低可能的信任级别)的角度来看,身份验证的重要性显而易见也称为身份验证当今的大多数Web应用程序都使用传统的身份验证系统,在该系统中,我们必须提交用户名或我们的邮件ID和密码,该应用程序会检查其有效性,但如今,某些应用程序在登录时遇到了额外的挑战,例如OTP或使用智能卡。和其他各种因素。除此登录功能外,身份验证还采用了一系列功能,例如注册,帐户恢复和密码更改功能。

常见漏洞:

  • 凭据薄弱:攻击者很容易猜出它们并导致帐户被接管。
  • 暴力登录:由于没有速率限制,因此可以强制使用用户名和密码。
  • 详细的失败消息:有时错误消息会显示额外的信息,从而间接地使攻击者受益。

例子:

显而易见,高特权帐户是分别使用可预测的用户名和密码(例如admin和admin)创建的,对于任何熟练的黑客来说,进入和获得访问权限并不是一项艰巨的任务。

保护身份验证:

  • 使用强大的凭据。
  • 秘密地处理凭据。
  • 正确验证凭据。
  • 使用验证码。

会话管理

会话管理是一种机制,通过该机制,应用程序可以在多个不同的HTTP请求中唯一标识给定用户,并处理其中包含的有关用户与应用程序交互状态的数据。简单来说,我们可以说,当用户成功登录应用程序时,他通过从浏览器发出一系列请求来访问各种页面和功能。同时,应用程序从其他用户那里收到其他无数个请求,其中一些请求已通过身份验证,而另一些则是匿名的,会话的作用就在此,它标识并处理源自单个用户的一系列请求。

会话本身是服务器上保存的一组数据结构,用于跟踪每个与应用程序的唯一用户交互。令牌是由应用程序映射到会话的唯一字符串。

常见漏洞:

  1. 会话令牌生成中的弱点:由于会话令牌生成中的弱点,令牌是可以预测的。
  2. 会话令牌处理中的弱点:有时令牌会暴露在攻击者可以访问的URL或日志中。

例子:

有时,生成的会话令牌是如此明显,以至于攻击者能够预测其他用户的会话令牌。

保护会话管理:

  1. 生成强大的令牌
  2. 在令牌的整个生命周期内对其进行保护

访问控制

访问控制是处理用户请求的最后一步,也是重要的一步,因为它必须就是否应允许或拒绝每个单独的请求做出决定并强制执行,该机制完全取决于先前的机制,因为如果应用程序知道用户的正确身份,发出请求的用户,则应用程序可以简单地确定它是真正的访问请求还是伪造的访问请求。一个应用程序可能支持许多用户角色,每个角色涉及不同的特权。可以允许各个用户访问应用程序内保存的全部数据的子集。这就是为什么总是建议为用户提供最少的权限来执行其工作。

常见漏洞:

  1. 垂直特权升级:具有较低特权的用户能够访问较高特权用户的资源。
  2. 横向特权升级:当用户访问与攻击者具有相同特权的另一个用户的资源时。
  3. 业务逻辑开发:当由于应用程序中的某些缺陷而使攻击者能够访问应用程序的关键资源时。

例子:

假设请求中存在一个UID参数,而不是由于访问控制较弱而导致的,如果攻击者尝试填充匿名ID,则他作为另一个用户(例如输入124代替123)获得访问权限

https://insecure-website.com/customer_account?uid=123

保护访问控制:

  1. 默认情况下,拒绝访问功能。
  2. 不要只隐藏函数。
  3. 实现多层特权模型。

它们如何相互依存?

现在,我们知道这三者是高度相互依存的,它们中的任何一个弱点都将破坏完整访问处理机制的有效性。

例如,有缺陷的身份验证机制可能使攻击者能够以任何用户身份登录并获得未经授权的访问。如果可以预测会话令牌,则攻击者可能会伪装成任何已登录的用户,并获得对其数据的访问权限。如果访问控制已损坏,则任何用户都可以直接使用应该受到保护的功能。

主要问题是访问控制期间很难区分合法用户和攻击者,因为他们都发送相同的请求,但是不同之处在于,由于所有这些方面的用户的攻击,攻击者总是试图向受害者用户提供信息以获取访问权限。访问更容易受到攻击。