跳到主要内容

什么是 BTN

在深入探讨 BTN 之前,我们有必要先回顾一下反吸血技术的发展历程。

反吸血技术的发展​

初始阶段​

最初,人们采用基于 PeerID 和 ClientName 的黑名单策略,以阻止特定类型的客户端连接到下载器进行吸血。这种策略虽然简单有效,但前提是下载器不会对这些标识符进行伪装,一旦伪装成功,该策略即失效。

流量监测阶段​

随后,BitComet 等下载器引入了流量监测机制。如果某个 Peer 在一段时间内未向下载器发送任何数据片段,则被视为吸血行为并被封禁。然而,对于以 101. 开头的 IP 地址段的吸血者,它们通过发送微量上传流量来规避这种监测,同时该策略对做种用户无效。

算法反吸血阶段​

LibTorrent 引入了一种以牙还牙的反吸血算法。如果一个 Peer 不愿提供数据片段,其在 LibTorrent 中的优先级将逐渐降低,直至完全停止数据传输。与流量监测类似,微量上传足以绕过检测,且对做种用户无影响。

启发式检测阶段​

PeerBanHelper 提出了启发式检测算法(如进度检查器/PCB),能有效检测进度回退、过量下载等作弊行为。然而,该算法反应较慢,当检测触发时,吸血者已下载大量数据。因此,尽管效果显著,但效率较低,主要用于减少损失。

应对策略​

面对上述挑战,共享 IP 规则应运而生。最初,人们通过口口相传传递高风险 IP 段,但随着吸血者频繁更换 IP,这种方法时效性有限。因此,需要一种能够快速响应的数据分析和 IP 封禁技术。

BTN 的诞生​

BTN(全称 BitTorrent Threat Network)由 BTN 服务器和 BTN 客户端组成,通过 BTN 协议 实现数据交换。

BTN 客户端通过 PCB 等方式发现异常 Peer 后,会定时通过 BTN 协议上报给服务器。服务器收集大量客户端数据,生成异常 IP 列表,并通过 BTN 协议下发给不同客户端,从而在吸血行为发生前将其屏蔽。

BTN 的功能​

收集与分析封禁报告​

BTN 接收客户端上报的封禁报告,如果一个 IP(或 IP 段)被多人封禁,则视为高风险 IP 地址。BTN 会自动封禁该 IP,并通知其他客户端进行同步封禁。

阻止分散吸血​

部分吸血者采取分散策略,在不同用户处下载相同文件。从单个用户角度看,吸血者仅下载一次文件,但实际上已远超文件本身体积。BTN 通过分析 IP(或 IP 段)在每个种子上的总下载量,检测分散吸血行为,并自动封禁。

发现新型客户端​

在数据上报过程中,BTN 检查是否出现新客户端,并记录首次出现和最后一次见到的时间。这有助于推断恶意吸血者的活动时间范围。例如,在 2024 年 8 月,BTN 帮助我们发现了一起使用随机 PeerID 的吸血客户端。

避免 PeerBanHelper 被绕过​

除了封禁数据,BTN 客户端还会定时拍摄下载器的实时状态快照。这有助于检测恶意吸血者是否通过新方式绕过现有检测。

BTN 服务能力​

BTN 服务端提供了多种能力,PeerBanHelper 客户端可以与这些服务进行交互,以获得更好的防护效果:

BTN IP 查询服务​

BTN IP 查询服务允许 PeerBanHelper 查询 BTN 服务器以获取有关特定 IP 地址的更多信息。PeerBanHelper 功能模块可以使用此服务提供的能力获取有关特定 IP 地址在 BTN 上的活动概要。

重新配置能力​

“重新配置” 能力允许 BTN 服务器通知 PeerBanHelper 在间隔一定时间后与 BTN 服务器联系,刷新使用的配置文件,以获取远程服务器的配置更改。

心跳更新​

该能力允许 BTN 网络请求 PeerBanHelper 每隔一定时间向 BTN 服务器发送一个心跳请求,以更新在 BTN 网络上的状态。有时该功能还被用来检测您的可用 IP 地址,以便更新在 BTN 网络上的记录。这取决于服务器的要求。

提交封禁列表​

“提交封禁列表” 能力允许 BTN 服务器定期接收 PeerBanHelper 的封禁列表和封禁时的数据快照。这些数据有助于 BTN 服务器分析网络上的恶意行为,并动态生成反吸血规则阻断这些恶意行为。

云端规则​

“云端规则” 能力允许 BTN 服务器向 PeerBanHelper 定期提供由远程服务器生成的反吸血规则,作为本地反吸血规则的补充。

提交种群跟踪数据​

“提交种群跟踪数据” 是 “提交历史记录” 和 “提交快照数据” 的继任者。新的 “提交种群跟踪数据” 以一种更加服务器友好的格式追踪、存储和提交 Peers 数据,以减轻 BTN 服务器的数据聚合分析压力。该能力允许 BTN 服务器定期接收 PeerBanHelper 所跟踪的下载器上的 Peers 活动和最后一次记录的活动数据快照。这些数据有助于 BTN 服务器分析网络上的恶意行为,并动态生成反吸血规则阻断这些恶意行为。同时,这些数据还有助于分析是否存在利用 PeerBanHelper 反吸血功能的漏洞,绕过反吸血机制的在野利用。

IP 拒绝列表​

IP 拒绝列表能力允许远程服务器下发需要拦截的 IP/CIDR 地址列表。位于此列表内的连接将立刻被 PeerBanHelper 封禁。

隐私与安全​

要实现上述功能,BTN 必须收集和上传大量数据。所有上传的数据类型可在 BTN 协议规范 中找到。

特别说明:在上传数据时,我们不会包含种子的 info_hash 和名称,而是使用不可逆哈希生成的 torrent_identifier 和种子大小。这样,我们无法得知您提交的种子内容(我们也不关心),只关注是否为相同或不同的种子。

如果您不愿提供数据,BTN 客户端通常提供提交控制选项。关闭该选项后,您仍可接收规则,但不上传数据。

请始终牢记:只连接到您信任的 BTN 服务器。