跳转到主要内容
Chinese, Simplified

在当今互联网驱动的世界中,管理用户名和密码已成为一项繁琐的任务。然而,由于数据的快速增长,移动和云技术的进步以及似乎每隔一天发生越来越多的安全漏洞,这是一个必要的恶魔。因此,身份验证和会话管理变得更加先进,以保护我们社会所依赖的数据,系统和网络。

尽管在过去的十年中,身份验证和活动会话的管理已经走过了漫长的道路,但它还远未完美。事实上,根据开源Web应用程序安全项目(OWASP)排名前10位,10个最大的Web漏洞列表,破碎身份验证和会话管理占据第二位,使其成为一个仍需要重点关注和改进的领域。自OWASP名单起源于2004年以来,尽管技术本身有所改进,但破碎认证和会话管理仍然位居前10名。

为什么破坏认证和会话管理很重要


根据最新的OWASP Top 10列表,“与身份验证和会话管理相关的应用程序功能通常不正确实施,允许攻击者破坏密码,密钥或会话令牌,或利用其他实施缺陷暂时承担其他用户的身份或永久。“攻击者可以手动检测破损的身份验证,然后使用自动化工具来利用这些漏洞。

在Web应用程序中,这些类型的缺陷可能非常严重。他们将企业置于极高风险之中。他们不仅可以暴露机密数据,而且还可以打开公司的后门,可以被恶意攻击者利用。内部和外部攻击者都可以利用这些漏洞窃取其他人的帐户并冒充用户。

一旦帐户被劫持,攻击者就有能力做任何账户持有人有权做的事情,这可能导致影响公司整体可行性的严重后果。攻击者只需要访问几个帐户或只需一个管理员帐户来破坏应用程序。根据应用程序的目的,损坏的范围可以从身份盗用到泄漏高度敏感的个人信息(或更糟)。

应用程序可能有很多方法容易受到这些身份验证和会话管理漏洞的影响。 OWASP列出了应用程序易受攻击的多种原因,包括:

  1. 使用散列或加密存储时,用户身份验证凭据不受保护。
  2. 可以通过弱帐户管理功能猜测或覆盖凭据。
  3. 会话ID在URL中公开。
  4. 会话ID容易受到会话固定攻击。
  5. 会话ID不会超时,或者在注销期间用户会话或身份验证令牌(尤其是单点登录令牌)未正确无效。
  6. 成功登录后,会话ID不会轮换。
  7. 密码,会话ID和其他凭据通过未加密的连接发送。

如何保护您的应用程序


保护应用程序免受破坏身份验证的最佳方法是通过各种应用程序安全解决方案来解决此问题。在整个应用程序开发生命周期中解决安全性至关重要,从设计开始到产品的整个生命周期。应用程序的确切类型和范围将决定采取的最佳步骤,以防止破坏身份验证和会话管理问题,但每个部署中都应遵循一般最佳实践:

  1. 尽可能使用多因素身份验证。
  2. 不要部署包含任何默认凭据的应用程序。
  3. 测试弱密码的应用程序。
  4. 实施强密码策略,包括字符和长度要求,以及必须更改密码的设置间隔。
  5. 限制失败的登录尝试并创建警报系统,以便在可能的会话攻击正在进行时通知相应的个人。
  6. 不要在URL中存储会话ID;用户退出应用程序后,应安全地存储和无效。
  7. 使用安全会话管理器,在每次登录后创建唯一的会话ID。
  8. 进行全面的应用程序安全性测试,以验证是否正确保护了用户凭据和会话ID。
  9. 设置适当的会话超时。
  10. 遵循OWASP应用程序安全验证标准作为创建安全应用程序的基准。
  11. 实施一组强大的身份验证和会话管理控制。
  12. 使用SSL(安全套接字层)证书或VPN(虚拟专用网络)加密数据。

对破坏的身份验证和会话管理(以及其他潜在的应用程序漏洞)进行测试可能看起来令人生畏,但有些工具可以简化AppSec测试流程。应用程序漏洞管理器将来自无数AppSec工具的结果关联起来,因此您的团队不必浪费时间进行排序和比较结果。

相反,您将获得一个标准格式的报告,该报告可以为您提供识别哪些应用程序漏洞是真实且可利用的信息。此类工具不仅有助于识别损坏的身份验证问题,还可以提高应用程序在所有漏洞中的安全性。

在身份验证方面,有一些更复杂的选项变得越来越受欢迎,值得一提:

双因素身份验证


双因素身份验证正是其名称所暗示的 - 身份验证过程中需要两个步骤。第一步通常是密码,而第二步可能是许多选项。它可以是SMS消息,由认证应用程序生成的代码,甚至是指纹。

显然,双因素身份验证会增加安全性并使攻击者更难获得访问权限。认证要求的正确组合取决于诸如易用性,当然还有安全性等因素。需要更高安全级别的应用程序应选择更难以破解的组合。

单点登录(SSO)


单点登录(SSO)身份验证是使用单个服务来验证用户对多个帐户的访问权限。这可以通过验证用户身份的SSO网站或通过第三方联合服务提供商来完成。

后一种方法允许组织将认证问题交给专门从事该领域的公司。 SSO身份验证还提供更好的用户体验,因为用户无需登录多个系统并记住各种用户名和密码组合。选择提供商时,我们建议避免使用基于密码的解决方案,因为这些解决方案不太安全,并且可以通过一个密码为您的许多系统提供攻击者访问权限。

基于风险的身份验证(RBA)


借助机器学习技术,应用程序可以监控用户的行为并识别与他们正常登录(或退出)的时间,他们通常使用的设备以及他们在应用程序中执行的典型操作相关的模式。偏离这些规范会产生风险评分,触发一系列操作 - 从要求用户回答质询问题,证明可疑设备的所有权,甚至要求管理员批准访问。越来越多的组织正在采用RBA,因为它为认证提供了额外的保护。

虽然有很多内容可以保护您的应用程序免受破坏的身份验证和会话管理,但值得付出努力和必要。组织无法承担因身份验证违规而导致的后果,特别是如果它导致敏感信息泄露。幸运的是,遵循此处列出的提示并使用工具简化流程并跟踪进度,可以更轻松地构建安全的应用程序。

原文:https://codedx.com/broken-authentication-and-session-management/

本文:

讨论:请加入知识星球或者小红圈【首席架构师圈】

Tags
 
Article
知识星球
 
微信公众号
 
视频号