廉价的互联网和可访问的云技术有一个缺点,那就是僵尸网络。以前,网络犯罪分子基于本地服务器创建它们。然而,随着云技术和物联网的发展,设备、虚拟机和物理服务器(僵尸网络的潜在元素)的数量呈指数级增长。
专家认为,无服务器技术的发展将进一步简化僵尸网络的创建。以下是我们如何应对这种情况。
僵尸网络所有者使用哪些技术
让我们从一些理论开始。可以使用哪些设备和技术发起攻击?以下是一些基本选项:
- 物理服务器是攻击者最不方便和最昂贵的选择。然而,当攻击者瞄准物理服务器时,感染基础设施并迫使其攻击僵尸网络中的随机目标以在不同的堆栈级别阻止它就足够了。
- 虚拟机是僵尸网络所有者最喜欢的武器。云平台不断发展,以更快地创建和交付虚拟实例给客户。它也落入了攻击者的手中:他们可以快速访问大量廉价资源。
- 物联网设备是僵尸网络创建者的常见受害者。这些连接到物联网的设备网络(通常是路由器)可能会感染恶意软件并用于攻击。
网络犯罪分子可能使用的另一项技术是无服务器计算。假设随着功能即服务(FaaS)等云服务的发展,僵尸网络所有者将完全不需要任何基础设施,能够使用无状态单元按时执行代码,然后关闭。在这种情况下,每个触发器都会创建同一函数的一个新实例。幸运的是,除了受控实验外,还没有记录使用无服务器计算用于僵尸网络的案例。
云提供商面临哪些挑战
虽然恶意使用无服务器技术仍然是一种理论,但让我们考虑更传统的基础设施——物理的或虚拟的。在大多数情况下,攻击者使用大量漏洞感染此类基础设施。这就是它的工作原理:当在特定品牌或型号的路由器中检测到漏洞时,攻击者会扫描网络并在路由器上大量安装恶意软件以从中发起攻击。物理服务器和虚拟机也是如此。
网络犯罪分子在受感染基础设施的每个节点上启动一个机器人。这个小脚本会自动执行指定的功能——DDoS 攻击。此类攻击的数量每年都在增长,传入的流量也在增加,因此,安全边界的负载变得越来越重。
云提供商应如何在这些新条件下采取行动?当然,您可以简单地不断增加过滤中心的容量,以便它们吸收不断增加的流量。然而,这将带来新的困难:首先,它很昂贵,其次,这些中心需要定期维护、更换设备等等。这就是为什么愿意阻止恶意流量并保留合法请求的各种云和托管服务提供商会尝试尽可能地重新分配负载。CDN 非常适合负载分配。这是它的工作原理。
Gcore 保护的工作原理
Gcore的保护清除中心由三个级别组成:
- DDOS 防护——此级别包括针对 L3/L4 容量攻击的防护解决方案。
- Bot Protection是一组用于清理已经进入边界的流量的算法。
- WAF是一种防火墙,用于保护 Web 应用程序免受黑客攻击和访问机密数据。

这个多级安全系统允许我们分析所有请求。如果它发现一个 IP 对一个 URL 有很多请求,则该会话被标记并被阻止。系统会自动对过多的请求做出反应,因为它会跟踪资源上的平均负载,然后独立确定正常值和异常值。因此,它允许合法流量通过,但在第一级保护上阻止了UDP/ICMP洪水、放大、SYN-ACK和RST-SYN洪水等容量攻击。使用另一种攻击媒介——HTTP 洪水,情况变得更加有趣。
HTTP 洪水保护的工作原理
清除中心的第二级——Bot Protection——负责防止 HTTP 泛滥。对于这些类型的攻击,我们需要更加小心,以免在没有额外检查的情况下阻止可疑 IP 地址,因为在它们背后,在 NAT 之后,既有合法的访问者,也有计算机被感染的用户。
为了防止这种情况发生,我们使用多阶段分析:
- 行为分析。检查请求的数量和频率。
- JS 挑战/验证码。在决定我们正在处理机器人之前,我们使用 JS Challenge/Captcha 发送验证请求。
第一种方法——JS Challenge——涉及向具有特定任务的客户端发送 JavaScript 代码。如果用户是合法的,并且与典型的机器人不同,使用支持 JavaScript 的浏览器,他们将通过测试,甚至不会注意到它——他们不必标记红绿灯和自行车。
第二种方法——JS Captcha——不太智能,但更可靠。完成挑战后,客户端会暂时包含在已验证 IP 列表中。除其他外,在测试期间,我们会学习对机器人保护有用的信息,以及我们将来使用的信息(例如,浏览器版本)。
- HTTP 标头分析。比较标头和 JS 挑战结果。
- 使用 JA3 哈希的 TLS 会话分析。JA3 哈希是分析会话的有效方法。每个散列包含几个允许确定客户端的值。由于它是使用基于 TLS Hello 包中接收到的信息的特殊散列函数创建的,因此可以通过将接收到的散列与存储在过滤中心数据库中的散列进行比较来识别每个浏览器版本和每个客户端。
当过滤中心在 TLS Hello 中检测到不在数据库中或明显非法的哈希值时——例如,从 curl 收到的 JA3 哈希值在用户代理中显示“Internet Explorer”——中心将阻止它或启动检查.
所有这些测试阶段都清楚地展示了机器人保护如何在高水平上工作。但是在内部,在较低的层次上会发生什么?
eBPF 如何在 L3—L4 阻止攻击
如果发生严重攻击,则激活与 eBPF 的集成,从而阻止对 L3-L4 的攻击。因此,我们也降低了过滤中心超载的风险。
即使恶意流量和合法流量来自同一个 IP 地址,低级分析技术与顶部算法方法的结合使用也可降低合法流量被阻止的可能性。我们的误报率低于 0.01%。
为什么我们决定使用 eBPF?因为它是一个内置于内核的单体——与之前使用的(dpdk)相比,一些问题可以更容易地解决,有时甚至可以完全消除。例如,与 dpdk 不同,eBPF 可以与另一个角色一起在一个网络接口上使用。因此,在未来,我们计划在运行在强大的第三代英特尔® 至强® 可扩展处理器上的 CDN 节点上更积极地使用它。
Gcore 拥有庞大的内容分发网络——其总容量约为每秒 100 TB 的流量,但同时,双工通道用于 85% 的传出流量(接收内容的客户),而传入通道未得到充分利用。由于 CDN 和 eBPF 的集成,我们计划将这些能力连接到流量清洗,尽可能靠近客户端。
启用对机器人程序和其他类型攻击的保护
Gcore 用户拥有全面的保护:既可以抵御一般攻击,例如大容量 DDoS,也可以抵御可以被掩盖或与合法流量混合的攻击。所有这一切,连同与 WAF 集成的能力,允许客户端减轻在堆栈的网络、传输和应用层执行的攻击的后果。