如何保护 Web 应用程序免受密码破解(上

导语:在本文中,我们讨论了密码破解的危险并提供了减少恶意身份验证尝试的最佳实践。

恶意行为者通常以用户和管理员凭据为目标,因为他们希望使用它们来访问敏感数据。据 Verizon 称,在 2021 年受到社会工程攻击的数据中,凭证占高达 85%。为了窃取用户凭证,黑客可以使用恶意软件或各种密码破解方法。

薄弱的密码策略和缺乏防止密码破解的保护是导致帐户泄露的两个最常见的漏洞。

在本文中,我们讨论了密码破解的危险并提供了减少恶意身份验证尝试的最佳实践。我们还探讨了 Fail2ban 服务如何帮助您保护对用户帐户的访问,并提供有关如何配置 Fail2ban 的分步指南,以及分享我们在 Viber 聊天机器人中配置 Fail2ban 通知的经验。

本文将帮助 Web 产品所有者和软件开发团队识别并消除其 Linux 服务器的漏洞。

什么是密码破解?

要访问 Web 应用程序,用户需要在系统内创建配置文件。为此,用户通常会创建一个登录名和密码作为用于保护帐户访问的凭据。根据申请类型,他们可能还必须提供其他数据,如个人信息、消息和银行账户。所有这些数据对威胁行为者都很有价值,他们可以尝试使用各种密码窃取方法从不同的应用程序访问用户配置文件。

在开发 Web 应用程序时,必须牢记密码被盗的风险并实施强大的安全机制来减轻这些风险。否则,如果攻击者设法访问用户帐户并暴露个人信息,Web 应用程序提供商可能会面临客户流失和声誉受损等后果。如果用户决定将案件告上法庭,他们也可能承担经济损失。
在这里插入图片描述
密码破解的后果

窃取用户数据的一种方法是破解密码。

这种方法的主要目标是猜测应用程序或计算机服务的密码。该技术本身不一定是恶意的,它可以作为一种目标漏洞验证技术用于安全测试。

密码破解是从存储在计算机系统中或通过网络传输的密码哈希中恢复密码的过程。它通常在评估期间执行,以识别密码较弱的帐户。

在应用密码破解技术时,黑客通常会使用特殊的应用程序和工具,这些应用程序和工具会应用多个凭据变体,直到找到正确的一对。密码破解应用程序用于猜测密码的每秒凭据数取决于攻击者计算机的性能。此外,猜测用户密码所需的时间取决于密码强度。

密码破解方法有多种:
在这里插入图片描述
密码破解攻击的类型

字典攻击是一种通过系统地输入字典中的每个单词作为密码来访问 IT 资源的方法。黑客经常使用破解词典,其中存储了常用的密码和熟悉的单词,例如不同语言的名称和地点。此类词典还可能包括黑客收集和添加的先前被盗的用户凭证。字典攻击是一种快速猜测弱口令的方法,但对于不常见的强口令,它们通常不会成功。

蛮力攻击是一种直接的试错法,它着重于生成所有可能的密码,达到一定长度。黑客检查所有密码组合,包括所有字母、数字和特殊符号的组合,从可能的最小密码长度开始。可能组合的数量取决于密码的长度。理论上,这种破解方法的成功率是100%。这只是时间问题,因为短密码可以在几分钟内猜出,而非常长且复杂的密码可能需要数十年才能破解。

彩虹袭击。大多数应用程序使用哈希加密用户密码,并以加密形式存储它们。黑客使用存储预先计算的密码哈希值的彩虹表来破解数据库中的密码哈希值。

网络钓鱼。通过网络钓鱼,攻击者诱使用户单击电子邮件附件或 URL 链接,引导他们登录到虚假版本的 Web 应用程序并泄露他们的密码。

反向蛮力。恶意行为者使用针对多个用户名的通用密码来访问帐户。

凭据填充。如果黑客知道受感染帐户的用户名和密码,他们可以尝试在该用户可能拥有帐户的多个系统中使用此组合。据Security eMagazine报道,53% 的人承认对不同的帐户使用相同的密码。

希望攻击者无法破解您的 Web 应用程序用户的密码不是一种选择。因此,让我们探讨如何保护用户数据免遭密码破解,并减轻帐户泄露带来的网络安全风险。

保护 Web 应用程序免遭密码破解的 7 种方法

为保护您产品的用户帐户不被泄露,您需要实施综合方法。下面,我们将讨论缓解密码破解的七种最必要的网络安全实践。
在这里插入图片描述
保护 Web 应用程序免遭密码破解的 7 种方法

1. 出台严格的密码管理政策

密码越复杂,黑客破解它们的难度就越大。确保您的开发人员配置您的应用程序的密码规则,以防止用户创建弱凭据。

创建密码规则列表时,请考虑研究顶级技术组织推荐和使用的内容。例如,您可以查看NIST 特别出版物 800-63-3 数字身份指南中的密码策略建议,并了解Microsoft 365和IBM Security Privileged Identity Manager等可靠产品推荐的密码安全性。

密码策略的常见最佳做法包括:

密码应包含特殊符号、数字以及大小写字母。

最小密码长度应为八个符号。越长越好。

密码应在指定的时间段内到期并更改:每月一次、每三个月一次、每年两次等。

您的应用程序应具有密码历史记录,以便当用户更改密码时,它可以根据所有以前的密码检查新密码。只有当新密码实际上是新的时,才应批准新密码。

2.更改管理帐户名称

避免使用明显的管理帐户用户名,例如“administrator”、“admin”或“root”。此类用户名很可能成为威胁行为者发起密码破解攻击的首要目标。

3.启用多重身份验证

使用多重身份验证 (MFA) 保护用户对您的应用程序的访问。此类身份验证工具使用户在登录应用程序之前执行两个或更多步骤。

第一步通常需要传统的登录名和密码。在以下步骤中,可能会要求用户从短信中输入安全代码、使用令牌、提供指纹等。

即使威胁行为者成功猜出凭据,MFA 也将成为访问用户帐户的另一个障碍。

4.建立用户活动监控

考虑将用户活动监控解决方案作为 Web 应用程序安全性的一部分。此类解决方案收集有关您基础设施内所有用户活动的信息,因此如果出现可能是密码破解攻击迹象的异常用户行为,您可以发现它。

用户监控解决方案通常与人工智能驱动的访问控制工具等复杂软件一起使用,这些软件可以分析收集到的用户活动数据、检测异常情况,并阻止可疑的登录尝试或通知安全工程师潜在威胁。

例如,此类解决方案可以保存设备详细信息和用户机器的 IP 地址。如果有人试图从不同的 IP 地址或设备登录,访问控制工具可以应用其他 MFA 方法或限制访问。

5. 将对服务器的远程访问限制为受信任的 IP

您的管理员和工程师帐户也可能遭受密码破解攻击。因此,请确保仅为受信任的 IP 地址启用对服务器的远程访问。

例如,您可以为需要在日常工作中访问服务器的工程师提供 IP 地址的访问权限。为此,您可以使用防火墙(如果您使用云提供商服务,则可以使用安全组)。

6.为工程师启用安全密钥

需要远程访问服务器的工程师应该生成安全密钥。例如,这些可以是用于 SSH 访问的SSH 密钥。这样,管理员可以安全地远程连接到服务器或其他机器,而无需使用登录名和密码。SSH 密钥身份验证可保护对服务器的访问并加密客户端和服务器之间传输的流量。

另一种无密码访问服务器的方法是使用硬件安全密钥,如FIDO2或Google Titan。这些是可以用来代替常见身份验证方法的 USB 设备。

在这种情况下,应禁用使用登录名和密码访问服务器。应该只允许钥匙持有者进入。如果密码不存在,则无法破解。

7.使用密码破解保护服务

最后但并非最不重要的一点是,有一些专门用于保护服务免遭密码破解的工具。

通常,此类工具会自动扫描登录尝试并阻止显示恶意迹象的 IP 地址,例如密码失败次数过多。这些工具中最受欢迎的是:

SSH卫士

IPBan Pro

间谍日志

Fail2ban

在 Apriorit,我们更喜欢使用 Fail2ban,因为它使用起来很方便,并且可以有效地阻止潜在的恶意身份验证尝试。在下一章中,让我们了解 Fail2ban,并讨论如何在实践中配置和使用它。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值