acm-header
登录

ACM通信

BLOG@CACM

一次暴力攻击的历史


在为一家电子商务网站的安全工作时,我遇到了一种不同寻常的暴力攻击,这种攻击很难减轻。它基于一种微妙而简单的技术,使它从人群中脱颖而出。

如您所知,经典的暴力手段归根结底是猜测证书。例如,威胁行为者获取已知的用户帐户,并根据某些标准为其选择密码——要么动态生成密码,要么使用字典。这是入侵账户的基本方法。

但在我的场景中,行凶者的行为有些不同。他们没有使用VPN服务或Tor。相反,他们使用了一个大型僵尸网络,由位于世界各地的数百台受感染的电脑和智能手机组成。公司安全监控系统感知到这种流量,就好像是完全不同的设备和身后的真人在访问站点。这样的攻击可以在很长一段时间内不被发现。

除了地理分布广泛之外,攻击的第二个特点是,对手试图猜测用户名,而不是密码。他们可能在使用流行密码字典和窃取的用户名列表。首先,他们会尝试将一个已知密码与一个用户名匹配,然后是另一个,再是另一个,以此类推。这种行为使得使用同一ISP的普通用户总是无法使用有效密码登录。乍一看,它丝毫没有敌意。此外,查询相对较少:每分钟一到两个。

这次攻击的第三个显著特征是僵尸网络表现出非常“像人”的行为:客户是处理JavaScript和接受饼干。

这一系列因素使得这次入侵在相当长一段时间内都没有被发现。然而,当我发现它时,一个重要的问题突然冒了出来:我们如何阻止它?除了一个特定的用户代理错误之外,这些机器人都没有独特的特征。但是,我决定不基于该属性阻止攻击,因为在这种情况下,我将无法再监视犯罪者的活动。我急需确认其他异常情况。

就IP地址而言,没有什么奇怪的事情发生。阻止多次登录失败的用户名也不是一个好主意,因为这种频率非常低,而且攻击者试图猜测的是用户名,而不是密码。我最后的办法是执行一个验证码但雇佣我们的公司不想要它,认为验证码会把很多客户赶走。与此同时,骗子们成功地猜出了一些账户的正确组合。

你一定很想知道为什么会有人想要入侵网上商店顾客的账户。问题是,他们持有的积分可以兑换成折扣。有人可能想要进行大规模购物,或者在网上出售积分。

最后,我说服客户建立一个验证码服务,由F5网络.它应该在预定义的登录失败次数之后出现。但首先,我需要在系统中配置登录成功标准。事实证明,这比看起来要困难一些,因为在某些情况下,资源会为访问帐户的任何尝试返回相同的响应代码。最后,我选择向客户交付域cookie的实例作为成功登录的标准。

最新版本的F5 ASM(应用程序安全管理器)提供了一个基于设备ID(一个唯一的浏览器标识符)响应猜测尝试的功能。将JS代码添加到页面中,当受污染的机器加载该页面时,它将返回其惟一标识符。在我们的例子中,设备ID对于每个IP地址都是相同的。这实际上意味着一个浏览器从一个IP地址访问站点。

因此,我可以定义以下标准:如果在15分钟内来自同一浏览器的登录尝试超过5次失败,那么应该向该访问者显示验证码。如果是普通用户,他们会很容易解决并登录。我还为浏览器不支持JavaScript的场景添加了一个适当的例外。我使用了不同的标准来保持较高的防御:如果来自同一个IP地址的登录尝试超过20次,就会出现验证码。同样,这对普通用户来说应该不是问题。

然而,现在有一些方法可以绕过基于验证码的保护。例如,僵尸网络运营商将这项工作外包到中国或印度,那里勤劳的当地人解决验证码,获得少量奖励,然后将文本值发回。幸运的是,对此也有对策。如果登录尝试失败,即使验证码已经解决,您可以阻止来自特定IP地址或设备ID的查询,以防失败的登录次数超过预定义的值。

上次网上商店以这种方式为目标时,我使用了验证码,它成功了。野蛮的攻击开始减弱,过了一会儿就停止了。从那时起已经过去一年了——到目前为止,一切都很好。

亚历克斯Vakulov是一名网络安全研究员,拥有20多年的恶意软件分析经验和强大的恶意软件删除技能。


没有发现记录

登录为完全访问
»忘记密码? »创建ACM Web帐号
Baidu
map