对于 IDN 同形异义词攻击,我能做些什么吗?

信息安全 恶意软件 攻击 网络钓鱼
2021-09-08 20:43:51

我一直在阅读有关IDN 同形异义词攻击的信息,但我想不出比这更好的方法来处理它们

  1. 告诉我的用户不要信任要求密码等的电子邮件
  2. 购买所有与我相似的域名(昂贵且困难)

我真的没有别的办法了吗?

4个回答

我的建议是使用两因素身份验证。如果您选择不使用两因素身份验证,我建议您退出身份验证游戏并使用“使用 * 登录”,其中 * 是 facebook/google/yahoo 等,这会将防止钓鱼攻击的负担转移到拥有金钱和资源来做好它。

请参阅https://stackoverflow.com/questions/5087005/google-authenticator-available-as-a-public-service以获取使用简单且便宜的第二因素的示例。

作为最后的手段,您可以使用两个密码方案,也称为密码加秘密问题。第二个密码您只收集密码的某些字母,并且您收集的字母在每次登录时都会发生变化,例如:

Username: ......
Password: ......
3rd, 6th and 7th letter of secret word:
          3rd .. 6th .. 7th ..

这将增加用户在攻击者找到足够的信息以作为用户登录之前注意到钓鱼攻击的机会。

  1. 告诉我的用户不要信任要求密码等的电子邮件

这是一个很好的举措。您可以通过从不发送任何包含链接的电子邮件来强化此信息。唯一的困难是许多电子邮件客户端会自动将看起来像网址的字符串转换为可点击的链接。您可以重申,用户应在浏览器中输入地址以访问您的网站,而不应单击该链接。

  1. 购买所有与我相似的域名(昂贵且困难)

我真的没有别的办法了吗?

Wikipedia 文章包含一个关于防御攻击的部分。这些都是基于浏览器的。您可以鼓励用户仅使用可防止 IDN 的浏览器。例如,Chrome 的做法是:

仅当 Google Chrome 的所有字符都属于用户首选语言的一种(且仅一种)时,Google Chrome 才会显示 IDN。

双重身份验证可以防止攻击者成功通过网络钓鱼用户名和密码,然后使用它们自己登录。但是,如果用户认为他们已成功通过您的站点进行身份验证,那么这并不能降低用户在与攻击者站点的登录会话中泄露更多详细信息的风险。此外,攻击者可以让他们的网络钓鱼站点请求第二个身份验证因素,并在用户在网络钓鱼站点上输入这些信息时将其输入到原始站点(前提是攻击者是实时网络钓鱼而不是检查他们的服务器日志)稍后)。

仅要求密码中的某些字母也很容易被规避。钓鱼网站通常只会说输入的两个字母不正确,然后要求再输入两个,直到找到完整的密码。这也意味着您无法保存经过哈希处理的密码,并且密码管理器通常难以填写此类动态字段。

总体上减轻网络钓鱼的另一种解决方案是鼓励使用基于浏览器的密码管理器。这些检查 URL 是否与密码管理器中存储的 URL 匹配,因此如果正在进行任何同形异义词攻击,它将不会完成密码。

  • 一个非常基本但有效的解决方案是让人们意识到在不输入 URL 的情况下永远不要输入凭据:这是许多银行所做的,有些甚至根本不在邮件中放置任何链接。
  • 自动填写特定域的密码管理器(也是存储在浏览器中的密码)不会受到此类攻击;至少它们可以帮助防止密码被盗。

    他们不关心域的显示方式以及它是否看起来相似,他们在数据库中查找实际的字符串。

  • 基于证书的登录通常不会受到这种攻击;虽然用户可能“成功”登录到攻击站点,但它不会获得任何凭据,也无法执行中间人攻击。

这主要是一个用户培训问题。我赞成的建议是:

Save the URL for the site in your bookmarks. When logging in, open 
the bookmark, then enter your login details.

您可以做的另一件事是获得扩展验证 (EV) 证书。欺骗域很可能没有 EV 证书,这为用户提供了明显的差异来寻找。

高级用户的一种方法是使用浏览器集成的密码管理器,将凭据绑定到特定域。因为密码管理器正在对域进行编程比较,所以它不容易受到同形异义词的欺骗。