处理过度的“梳理”尝试

信息安全 Web应用程序 欺诈罪
2021-08-19 21:11:02

我们目前正在为我们的电子商务平台在 LAMP 堆栈上使用 Magento 进行设置。在一两个月前,我们开始注意到很多针对我们网站的梳理尝试。所有尝试的交易都是少量的,只是为了检查他们的信用卡是否有效。当一个被拒绝时,他们通常会再次尝试将卡号重复更改 1 或 2 个数字。这些尝试连续发生得很快。正如您可以想象的那样,这在我们的信用卡处理器系统中迅速增加,并且经常我们会在短时间内关闭以防止更多尝试。

大多数攻击来自美国境外,我们是一家仅限美国的企业,因此我们使用 mod_geoip 来拒绝来自美国境外的所有流量。这有助于大规模袭击,但我们仍然让来自美国的人梳理。我真的很想知道这里发生了什么。他们如何设置脚本来批量尝试这样的订单?我真的可以做些什么来消除这种情况吗?感谢您对这些类型的攻击的任何见解!

这个问题是本周的 IT 安全问题
阅读 2012 年 9 月 14 日的博客文章了解更多详细信息或提交您自己的本周问题。

4个回答

鉴于您对姓名/地址等进行了强有力的验证,您的网站很可能会针对不同类型的错误返回不同的值。阻止卡片测试的最好办法是确保任何被拒绝的交易都提供相同的结果,而不管处理器告诉你它被拒绝的原因是什么。

您可以使用“验证码”机制来限制暴力攻击。根据产品,您可以配置验证码以阻止用户在多次尝试失败后提交另一笔交易;或者,在交易之间引入时间限制(例如 15~20 秒)。

如果可能的话,您还可以为您的用户尝试一种身份验证机制,只允许特定帐户执行交易。

如果您的攻击者使用的是连续帐号,那么这是您可以用来过滤尝试的赠品。如果有人尝试 001,然后是 002,然后是 003,这是一个很好的猜测,他们正在梳理,然后您可以过滤来自该 IP 地址的尝试。

问题是聪明的攻击者然后会通过随机化他们尝试的卡号来修改他们的攻击,或者更有可能随机化一个数字块,所以你需要寻找其他迹象。如果您构建 IP 地址和请求的数据库,您可以寻找这些迹象,例如大量小额交易,或使用算法来检测块交易尝试。

或者,理发师当然可以适应:他们可以开始使用多个服务器进行尝试,或者尝试更大的交易、更少的每小时尝试等。但是他们必须适应继续使用您的系统,其中一些可能无法做到所以,还是不想打扰。至少他们必须为此努力。

我认为这个人(人们)并不关心他们是否获得有效数字,因为正如您所说,您也在使用地址进行验证,并且他们正在按顺序尝试。被 CC 处理器阻止实际上可能是一个目标,特别是如果他们是你的竞争对手或者他们正在为 lulz 做这件事。

我可以将几个选项添加到列表中:您可以随机化输入字段的名称,并将字段名称存储在会话中或安全的地方,如果您使用 PHP,则如下所示:

<input type = "text" name = "ccnum" />

到:

<input type = "text" name = "<?php echo $ccFieldName; ?>" />

此外,您可以强制您的用户启用 JavaScript(大约 96% 的用户启用了 JS)。您的施虐者很可能正在使用诸如 wget 之类的命令行工具来尝试访问您的服务器,如果是这样,将无法解析 JS。启用 Javascript 后,您可以在文档准备好后为信用卡添加输入字段,并使用上述随机名称,这样当前所有自动化请求的尝试都会失败。