个人是 P2P 爱好者,平常分享大文件(如 MC 旧地图归档)都用 BT 分发。因此也有长期 NAS 开机做种的习惯。
自上个月早些时候开始,有一些奇妙 Peer ,顶着 dt/torrent
,或者 github.com/anacrolix/torrent (devel) (anacrolix/torrent unknown)
的 UA 开始无限制的拉取文件,单个文件的分享率被拉到 500.0 +,消耗了大量带宽和流量,并似乎因此招来了联通师傅上门检查 PCDN 。
以 github.com/anacrolix/torrent (devel) (anacrolix/torrent unknown)
为关键字检索,在 https://github.com/anacrolix/torrent/discussions/891 上有大量类似受害者参与讨论。
这似乎是首次对 BT 社区的攻击。有第一次,就一定不会是最后一次。
Github 上的脚本和工具都是针对迅雷等吸血 Peer 进行屏蔽,但从未考虑过诸如此类纯恶意的客户端。
在 PBH 诞生前,使用 BT 客户端内建的 IP 屏蔽名单是唯一的对抗手段。
因此,使用可持续的手段与攻击作斗争是必要的投入。在一个月的敲敲打打中,功能终于完善的差不多了,也终于可以发到 V2 上一起分享一下了。
可以参见 Ghost-chu/PeerBanHelper 仓库的 README ,通过 Docker 快速部署或者手动设置服务。
首次在 V2 上分享自己的小工具,如果能帮到忙那就太好了,以及希望没有发错节点。
最后,PBH 没有内建的更新检查系统,所以也许需要偶尔回来看看有没有新的更新。
1
wu67 272 天前
之前自己写了一个类似的工具, 思路是直接把非常规 peerid 给 ban 掉的, 配合最小加密, 目前用着挺正常
https://github.com/wu67/block_BT_vampire 另外有个问题想咨询, 就是部分场景下 peerid 会被填充成%00%00%00 这样的字符串, 就全是%00, 这种是什么情况下触发的? 感觉不像是恶意攻击, 因为我自己用的 aria2 也出现过, 甚至不知道怎么的把我本机 ip 给 ban 了... |
2
AkaGhost OP @wu67 没有遇到过,但从这个百分号来看不排除可能是某种格式化字符串的占位符。从 Aria2 的 RPC 源代码顺过来看,问题可能出在 https://github.com/aria2/aria2/blob/a8cb271b044230f38085be7fc185c30eb1f52d36/src/util.cc#L425 这个函数。
提醒:我并不会 CPP ,这只是根据已有代码的推断,如果有错误还请指正: 从函数大概来看对于数字和字母的处理方式是原样复制,其它的会用 `fmt("%%%02X", target[i]) ` 这个解码成百分号打头的某种编码。如果是空 byte ( 0x00 )我觉得时可能会出现你说的这个情况。 至于空数组怎么来的:可能是因为连接未完全完成(连接已建立但还没有交换 PeerID ),RPC 返回了一个空字节数组。 |