当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 保护帐户凭据以保护您的组织

作者:精品下载站 日期:2024-12-14 06:02:22 浏览:15 分类:玩电脑

保护帐户凭据以保护您的组织


泄露 Active Directory 帐户的凭据仍然是攻击者在组织的 IT 生态系统中获得立足点的主要方式。他们使用一系列策略,包括撞库、密码喷洒、网络钓鱼和暴力攻击

这篇博文详细介绍了有效用户凭证管理的关键最佳实践。然后深入探讨软件如何帮助实施这些最佳实践并进一步保护用户凭据。

用户最佳实践

以下是个人保护自己免遭凭证盗窃的主要方法。

使用多重身份验证 (MFA)

防御:大多数与凭据相关的攻击,包括凭据填充、密码喷洒、网络钓鱼、键盘记录程序、暴力破解和本地发现。

如果您只做一件事来保护您的凭据,那么应该是这样:尽可能使用多重身份验证。事实上,Microsoft 报告称 MFA 可以防止 99.9% 的帐户泄露。

提供 MFA 的应用程序和服务通常允许您在帐户设置(通常在“隐私”或“安全”下)中激活它。我们发现 MFA 的帐户从未提示我们使用它们,只需在网站上的设置中查找即可。最常见的 MFA 选项是通过短信发送的验证码,但也有基于硬件的 MFA 选项可用,例如 Google 的 Titan 安全密钥。

即使您使用 MFA,如果密码被盗或泄露,更改密码仍然很重要。

避免重复使用密码

防御:撞库攻击

在撞库攻击中,攻击者尝试使用被破坏的凭证登录各种服务,希望用户在多个站点使用相同的用户名/密码组合。

防御方法很简单:永远不要重复使用密码。当然,记住数十个或数百个密码很困难,因此请考虑使用密码管理器。这样,您只需记住一个主密码,该密码应该又长又复杂。密码管理器会自动为您的每个帐户生成强密码并安全地存储它们,以便您轻松地为每个帐户创建唯一的密码。

请记住,密码管理器软件供应商可能会遭到破坏,因此请对安全事件公告和响应措施保持警惕。

避免使用通用密码

防御:密码喷射攻击

在密码喷射攻击中,威胁行为者以编程方式对一个或多个服务应用大量已知密码字典。例如,“123456”、“password”和“qwerty”等弱密码仍然被频繁使用。

防御这种攻击的最佳方法是使用强而独特的密码,密码管理器的使用也有助于这一点。

避免使用简单的密码

防御:暴力攻击

在暴力攻击中,对手会不断猜测帐户的密码,直到获得访问权限(或被锁定)。通常,攻击从简短的密码开始,如果这些尝试失败,则复杂性会增加。此前,建议选择包含数字和特殊符号的较长密码——即使使用顶级破解设备,暴力破解至少 11 个字符的复杂密码也可能需要数年时间。然而,随着攻击者可用的计算工具和技术的增长,NIST 不再坚持密码复杂性要求,目前使用密码短语被认为是最佳实践。

暴力攻击者可以针对特定个人,因此避免使用包含个人和上下文特定信息的密码也很重要,这样可以减少他们需要猜测的密码数量。个人信息是可以与密码绑定的任何公共信息,例如您的生日或家庭成员和宠物的姓名。上下文特定信息包括网站或服务的名称;例如,请勿在 Google 密码中使用“google”。

软件供应商的最佳实践

虽然用户应负责保护其凭据,但 GDPR 和 CCPA 等数据隐私法要求网站、网络应用程序和其他软件实施针对凭据攻击的保护,如果不遵守导致违规,可能会处以巨额罚款。

以下是网站、Web 应用程序和其他软件可以防止用户凭据被盗的一些方法。

使用身份验证器应用程序启用多重身份验证 (MFA)

如前所述,使用多重身份验证是用户保护其凭据的最重要方法,因此任何需要登录帐户的软件或服务都应为用户提供 MFA。

然而,许多 MFA 实现依赖于通过 SMS 传递的验证码,这对于 MFA 来说通常是不安全的选择,原因有二:

  • SIM 交换——利用足够的用户个人信息(包括电话号码),攻击者可以诱骗用户的电话服务提供商将其电话号码转移到攻击者的 SIM 上。这使得攻击者能够接收发送给受害者的所有 SMS 消息,包括 MFA 验证码。
  • 拦截的 SMS 消息——攻击者可以利用 7 号信令系统 (SS7) 协议中的漏洞拦截 SMS 消息。这在美国国内不是问题,但在其他一些国家使用智能手机时,会使用 SS7 来更改网络和运营商。攻击者仅使用 Linux 和 SS7 软件开发工具包即可滥用 SS7 中的已知漏洞。

因此,应避免通过短信向用户发送 MFA 验证码。相反,供应商应该使用身份验证应用程序,例如 Google Authenticator 或 Okta verify。这些应用程序是专门为 MFA 构建的,攻击者将无法利用上述 SMS 漏洞拦截验证码。

启用单点登录 (SSO)

单点登录使用户能够使用一组登录凭据访问多个应用程序和服务,这对他们来说更加方便。此外,它还降低了供应商的风险,因为身份提供商 (IdP) 而不是服务提供商负责验证凭据。

在为您的软件或服务实施 SSO 之前,您需要选择一个 SSO 标准。一些流行的选项是:

  • SAML - 安全断言标记语言 (SAML) 是此列表中最成熟的标准,它是一种身份验证 (AuthN) 和授权 (AuthZ) 协议,使身份提供商能够向服务提供商发送授权凭证。
  • OAuth 2.0 - OAuth 2.0 是 OAuth 1.0 的后继者,它是一种身份验证框架,使应用程序能够获得对身份提供商管理的用户帐户的有限访问权限。
  • OpenID Connect - OpenID Connect 是 OpenID 1.0 和 2.0 的后继者,它是一种身份验证协议,它依赖于 OAuth 2.0,允许用户使用 JSON Web 令牌 (JWT) 向服务提供商授予对其身份的访问权限。

应该注意的是,OAuth 2.0 比 SAML 更旨在限制访问范围,并且在 Web 和移动应用程序中比 SAML 更受欢迎。

要使用这些 SSO 选项,您还需要选择支持您所选协议的身份提供商。对于个人 SSO,选项包括 Google、Facebook 和 Microsoft。对于企业环境,流行的身份提供商包括 Azure Active Directory、G Suite 和 PingFederate。

登录期间的安全错误消息

这个提示很容易被忽视;然而,登录失败返回的错误消息可以为执行侦察的攻击者提供大量信息,他们可以利用这些信息对特定受害者进行撞库、暴力破解和网络钓鱼攻击。

例如,尝试登录 Facebook 的攻击者可能会看到一条错误,指出他们输入的电子邮件或电话号码与 Facebook 帐户不匹配:

[玩转系统] 保护帐户凭据以保护您的组织

但如果电子邮件或电话号码与有效帐户匹配,他们会收到一条消息,指出密码不正确,这有助于他们收集有效帐户名称、电子邮件和电话号码的列表:

[玩转系统] 保护帐户凭据以保护您的组织

为了让您了解良好的通用登录错误消息是什么样子,请查看 GitHub 上的此错误消息,对于不存在的帐户和密码不正确的现有帐户来说,该错误消息都是相同的:

[玩转系统] 保护帐户凭据以保护您的组织

仅存储加盐和散列的用户密码

哈希是任何密码存储工作流程的核心,但值得一提的是,因为仍然有网站以明文形式存储密码。

任何时候您需要存储用户的密码,都应该使用现代加密技术(例如 PBKDF2 和 Bcrypt)对其进行加盐和哈希处理。与 SHA-256 等促进程序化攻击的快速算法相比,这些算法故意放慢速度,以阻止程序化暴力攻击。

简而言之,加盐是在将用户密码发送到哈希算法之前向其添加随机数据的过程,这会增加生成的哈希的复杂性,并使预先计算的彩虹表攻击和暴力字典攻击变得更加困难。

根据泄露和众所周知的密码数据库检查候选密码

这是帮助用户自助的完美示例。当用户输入新密码时,无论是创建新帐户还是更改现有密码,都应将其与已知和被泄露的密码列表进行比较,例如来自 Troy Hunt 的 Have I Been Pwned 数据库,该数据库已经成熟用于撞库攻击。

如果在数据库中找到候选密码,则应要求用户选择不同的密码。错误消息应向用户解释其候选密码被拒绝的原因,以防止他们因密码选择体验而感到困惑或沮丧。

使用 HTTPS 而不是 HTTP

HTTP 不会加密客户端(Web 浏览器)和服务器之间的通信,这意味着一切(包括凭据)都是明文形式。为了提高安全性,您的网站、应用程序或服务应允许安装 TLS/SSL 证书,以便为所有通信启用加密的 HTTPS 流量。

对于当今的开发人员来说,这可能不是什么新闻,但还应该采取适当的保护措施来防止用户意外访问您网站的 HTTP 版本。这主要是通过将任何 HTTP 请求重定向到所请求页面的 HTTPS 版本来完成的;但是,HTTP 严格传输安全 (HSTS) 也可用于减轻中间人攻击和协议降级攻击。

HSTS 是来自网站或服务的指令,包含在响应标头中,通知用户代理(浏览器)只能使用 HTTPS 进行访问。这样做的另一个好处是拒绝任何通过 HTTP 加载资源的 JavaScript 调用(这可能是跨站点脚本 (XSS) 攻击的结果),并且还不允许手动接受不安全、无效或过期的 TLS/SSL 证书。

直接提醒用户异常和安全相关事件

每当帐户出现可疑活动时,都应通知用户。一个例子是从他们以前从未登录过的世界地区尝试登录他们的帐户。每当用户的个人信息或密码发生更改时,还应通过电子邮件通知用户。这些警报使用户能够在其凭据可能已被泄露时立即恢复不需要的更改并重置其密码。

定期告知用户您的服务提供的他们可能不知道的安全功能(例如 MFA)也很有用。

遵守 NIST 密码指南

美国国家标准与技术研究院提供定期更新的密码指南,以反映基于证据的最佳实践。这些指南为网站、应用程序和服务的密码策略提供了坚实的基础。

额外的安全措施

除了帮助保护用户凭据之外,开发人员还可以采取其他措施来保护其网站和 Web 应用程序的安全。例如,实施 Web 应用程序防火墙 (WAF) 通过检查所有 HTTP/S 请求,有助于防止恶意文件执行、SQL 注入、XSS、拒绝服务 (DoS) 和分布式拒绝服务 (DDoS) 攻击在上菜之前。

另一个例子是机器人检测软件,它可以在流量与您的网站或应用程序通信之前检查传入请求以过滤掉机器人。这是一种更先进的技术,但它可以帮助防御撞库、密码喷洒和暴力攻击。

Netwrix 如何帮助实现凭证安全

80% 的泄露涉及弱密码或被泄露的密码,最常见的 10 个密码仍然包括“123456”、“password”和“qwerty”。 Netwrix StealthINTERCEPT Enterprise Password Enforcer 使用包含超过 50 万条已知泄露密码的字典以及复杂性、字符替换和测试工具,帮助保护您的组织免受基于凭据的攻击。 Netwrix 解决方案可以识别弱密码和受损密码并防止它们被使用,甚至为用户提供如何选择更强密码的指导。

除了强制执行之外,Netwrix Active Directory 安全解决方案还可以帮助您评估弱密码、删除过多的权限、检测对 AD 凭据的高级攻击,并用即时临时帐户替换有风险的常设权限。

常问问题

什么是安全凭证?

安全凭证是身份验证信息,例如用户名和密码,可防止未经授权的访问。这意味着凭证被加密并以安全的方式存储,并且只有那些被授权使用它们的人才能访问它们,通常还需要采取额外的安全措施,例如多因素身份验证。

什么是凭据保护?

凭证保护是保护用户名、密码和其他凭证数据免遭未经授权的访问和滥用的过程。这包括实施加密、多因素身份验证、安全存储和监控任何可疑活动等安全措施。

为什么凭证安全很重要?

凭证安全对于保护敏感信息并防止未经授权的帐户、系统和数据访问非常重要。这有助于防止身份盗窃、经济损失以及个人和职业声誉受损。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯