📜  如何防止损坏的访问控制?

📅  最后修改于: 2022-05-13 01:57:03.127000             🧑  作者: Mango

如何防止损坏的访问控制?

访问控制是一种安全机制,用于限制资源的可访问性并决定谁或什么可以查看或使用公司的资源。这是在身份验证后检查的,以及允许授权用户执行的操作。这不是一件容易的事,检查中的任何失败都会导致数据修改或破坏数据或未经授权执行业务功能等。有时,开发人员没有专门设计访问控制,而只是将它们与网站。结果,特殊的规则集合变得难以理解。

什么是损坏的访问控制?

访问控制机制实施不当会导致访问控制有缺陷,很容易被利用。这称为损坏的访问控制。由于访问控制被破坏,未经授权的用户可以查看他们不允许查看的内容,可以执行未经授权的功能,甚至攻击者也可以删除内容或接管站点管理。

损坏的访问控制

损坏的访问控制

访问控制漏洞

我们可以将访问控制漏洞主要分为三类

1、横向提权:

当用户可以访问与他们具有相同权限级别的其他用户的数据时。
例如,当您登录您的社交媒体帐户时,您可以查看您的内容并对其进行更改,但您不能访问其他用户的帐户。但是,如果访问控制存在缺陷,事情可能会出错。

2.垂直提权:

当用户可以访问那些有权执行某些普通用户无法执行的操作的用户的数据时,通过垂直访问控制,不同类型的用户可以访问不同的应用程序功能。
例如,要执行某些功能并访问某些资源,用户需要具有管理员权限,而普通用户没有此类权限。损坏的垂直访问控制让攻击者可以访问这些功能。

3. 上下文相关的权限提升:

当允许用户以错误的顺序执行操作时。
例如,从电子商务网站购买商品后,不应允许用户修改他/她的购物车。上下文相关的访问控制不允许用户在付款后更改项目,但如果它被破坏,那么用户将被允许进行更改。

访问控制中断的影响

1.每当我们在网站上创建帐户时,都会获得一个唯一 ID。通过使用该 ID,我们可以访问保存所有敏感内容的数据库。假设您登录了一个网站,并且您的用户 ID 是986 。您的个人资料页面的 URL 应如下所示: https://brokenaccesscontrol.com/profile?id=986 。我们必须记住,与您一样,在该网站上创建帐户的其他所有人都将获得一个唯一的用户 ID。因此,如果您将您的 ID 替换为其他人的用户 ID,那么您可以访问他/她的个人资料。是的,如果在服务器中没有正确实施访问控制,就会发生这种情况。

2.黑客可以利用访问漏洞获取普通用户无法访问的资源和服务。
例如,Web 应用程序的管理页面应该只能由管理员访问,并且不应该对任何其他用户可用。但是,如果访问控制被破坏,那么黑客只需对 URL 进行一些更改即可轻松访问它。凭借该特权,他们可以窃取其他用户的数据或部署恶意负载来破坏整个应用程序托管生态系统。

3.存在分布式拒绝服务攻击(DDOS)的可能性。通过访问这些用户帐户,攻击者可以尝试通过部署机器人来破坏目标服务器的正常流量。这使得服务器很难区分合法用户流量和攻击流量。

如何防止损坏的访问控制?

OWASP(Open Web Application Security Project) ,一个分析Web应用程序弱点和攻击的在线社区,给出了最危险的10个漏洞列表,Broken Access Control就是其中之一。它表明大多数 Web 应用程序的安全性都很差。为防止访问控制被破坏,安全团队可以采用以下做法-

1.持续检查和测试访问控制:

有效的持续测试和检查访问控制机制是发现新漏洞并尽快纠正它们的有效方法。

2. 默认拒绝访问:

以这样一种方式设计访问控制,即不是每个人都可以访问资源和功能,除非它旨在公开访问。您可以应用JIT(即时)访问,这有助于消除与长期权限相关的风险。

3. 限制 CORS 的使用:

CORS(Cross-Origin Resource Sharing)协议提供了一种受控方式来共享跨域资源。 CORS 的实现依赖于客户端和目标应用程序之间的通信中使用的超文本传输协议 (HTTP) 标头。当 CORS 协议配置错误时,域可能会被恶意方控制向您的域发送请求。

4.启用基于角色的访问控制:

这是一种广泛使用的访问控制机制。据此,根据用户的角色授予用户权限。无需单独识别每个用户,而是将用户分配给一组角色,这样可以减少 IT 支持和管理的难度,并最大限度地提高运营效率。

5.启用基于权限的访问控制:

这是一种访问控制方法,授权层检查用户是否有权访问特定数据或执行特定操作,通常通过检查用户的角色是否具有此权限。

6.启用强制访问控制:

它是一种安全方法,根据资源包含的信息的敏感性来限制访问资源的能力。此安全策略只能由管理员控制,普通用户无法更改该策略。由于这种集中管理,它被认为是非常安全的。