如何部署账户安全阻止密码恢复攻击?

很多信息安全专家认为,如果老练的攻击者瞄准企业内一个高价值的人作为鱼叉式网络钓鱼攻击的一部分,鉴于当今的安全控制、流程以及对于攻击如何发生的安全意识,这名攻击者应该会成功。

CloudFlare公司的首席执行官证明了这一点。让我们简单地回顾一下,CloudFlare公司使用谷歌的Gmail账户来登录Google Apps,用以管理CloudFlare产品中的客户数据。通过一系列预先计划的活动,攻击者获取了对这名首席执行官账户的控制,并发起攻击,最终成功获取了CloudFlare的一名客户的信息。毫无疑问,这对于任何企业而言,都是最糟糕的情况。

用户账户安全:错误和最佳做法

攻击者的第一步是获取该CEO的Gmail账户信息,这不仅让他或她可以控制该CEO的电子邮件,而且还可以通过简单的登录,获得对其Google Apps工具的控制。很显然,这名CEO使用了简单的电子邮件地址,用于外部通信以及访问Google Apps账户。大多数企业在其企业网站中公布了其高管的名字,并且大多数企业使用与名字相关的简单的电子邮件地址(例如jsmith@gmail.com 或者john.smith@gmail.com),攻击者只需要向这些名字变体地址发送一些钓鱼电子邮件,就可以确定他或她的电子邮件地址。这也是获取该账户控制权的第一步。

我们可以通过两种方法来阻止这种用于确定电子邮件账户名称的鱼叉式网络钓鱼攻击。由于所有企业邮件系统都有“白页”或者某种形式的目录,企业不需要内部员工知道互相的电子邮件地址。因此,企业应该采取的更好安全控制是:使用与实际用户名字不太相关的电子邮件地址。例如,使用员工名字的缩写,并在后面添加四个或五个随机数字(例如jps29581@gmail.com),这样的话,鱼叉式钓鱼攻击几乎不可能成功。对于使用电子邮件地址作为访问企业数据(例如 Google Apps)的凭证的系统,确保攻击者无法获取访问权的第二种方法是:使用一个电子邮件账户用于外部通信,使用另一个单独的电子邮件账户(或更多账户)仅用于访问重要应用和数据。即使在云环境中,使用与个人不相关的电子邮件账户名称都能够阻止外部人员发现(并可能破坏)该账户。在CloudFlare的案例中,如果使用jps2958@gmail.com作为电子邮件账户,并使用单独的账户(例如torbox3953@gmail.com)用于Google Apps访问将让攻击者无法找出CEO的电子邮件账户。

密码恢复是如何出错的

在攻击者获取CloudFlare公司CEO的Gmail账户名称后,他联系谷歌的客户服务来进行密码重设。在数星期的尝试后,攻击者说服谷歌的账户恢复系统来添加一个虚假的恢复电子邮件地址,这让攻击者可以更改CEO的Gmail密码以及获取该账户的访问权。

无论企业使用多么强大的密码(在这个案例中,使用的是20+字符长的高度随机的密码),只要企业的密码重置程序很薄弱,攻击者都能够通过获取用户的个人详细信息,绕过破解高强度密码,直接更改密码。例如,在用户注册账户时,都会要求用户设置一个简单的易于猜测的问题来重置账户密码。而在Facebook、 LinkedIn和其他休闲和专业社交媒体网站存储了大量个人资料,因此,员工必须假设其生活的主要因素现在都已经公之于众了。大部分网民的很多信息都可以很容易地在网上找到,例如最喜爱的宠物、高中名称、母亲的婚前姓氏等。这意味着随着企业开始向互联网暴露更多后端业务系统或者使用云服务(CloudFlare的案例中),企业需要采用更强大的身份验证方法(例如双因素身份验证或者生物识别技术),来保护面向瞬息万变的互联网的账户