关注了就能看到更多这么棒的文章哦~
Fighting the AI scraperbot scourge
By Jonathan Corbet
February 14, 2025
Gemini-1.5-flash translation
https://lwn.net/Articles/1008897/
在运营像 LWN 这样的网站时,会遇到诸多挑战。有些挑战,比如鼓起勇气为那些比我们更懂行的人写作,这是我们选择这条路时就预料到的。但另一些则是不请自来,令人措手不及。其中之一便是持续不断地抵御那些决心抓取整个互联网的机器人(bots),它们似乎是为了满足人工智能(AI)训练那永不满足的“绞肉机”。读者们有时会好奇我们是如何应对这场战斗的。请继续阅读,了解这场现代瘟疫的故事。
据权威人士告知,训练生成式人工智能系统(generative AI systems)的模型需要大量数据,这些系统将会使我们的生活变得更好。在这个领域里最杰出的公司已经明确表示,他们认为自己天生有权获取他们能够触及的任何数据。但这还只是那些至少稍微公开其行为的公司。虽然我无法给出具体的例子,但我仍然坚信,除了这些在聚光灯下的公司之外,还有许多公司在秘密进行模型构建项目。奇怪的是,这些行动似乎互不沟通,也不分享它们从网络上掠夺的数据。
LWN 的内容管理系统(content-management system)包含超过 750,000 条项目(文章、评论、安全警报等),这些数据可以追溯到 2002 年采用“新”网站代码的时候。我们仍然在我们的档案中保存着在改版之前的四年多的时间里所做的一切。此外,邮件列表(mailing-list)的存档中还有成千上万封电子邮件。总而言之,如果您无法抑制住下载网站上所有内容的冲动,您将需要产生巨大的流量才能获得所有这些内容。如果您出于某种原因觉得需要重复下载,以防自昨天以来发生了某些变化,那么流量将会成倍增加。再加上一些未知数量的其他人也在做同样的事情,这可能会累积成压倒性的流量。
LWN 并非由一组庞大的机器提供服务,也没有大量机器可以随时满足抓取机器人(scraperbots)的需求。我们认为,该网站的代码编写得相当高效,并且通常具有良好的响应性。但是,当流量峰值变得足够大时,我们的读者将会感受到影响。那时,我们就会变得比平时更加暴躁。而且不仅仅是我们,我们社区内外的许多资源维护者都感受到了这个问题。
通过与他人讨论和我们自己的努力,我们已经研究了许多解决这个问题的方法。其中一些方法比其他方法更有效。
例如,许多人的第一个建议是将有问题的抓取器放入 robots.txt
,礼貌地告诉它们走开。但是,这种方法几乎没有帮助。虽然抓取机器人(scraperbots)会贪婪地拉取它们可以在网站上找到的任何内容,但它们中的大多数都特意避免查看 robots.txt
。运行这些系统的人绝对不关心我们对他们应该如何访问我们网站的看法。为了更清楚地说明这一点,大多数这些机器人(robots)都会竭尽全力避免将自己标识为机器人。它们会尽可能地伪装成使用网络浏览器的普通读者。
节流(Throttling)是另一种经常被建议的解决方案。多年来,LWN 网站已经实施了基于 IP 的基本节流措施。即使在人工智能(AI)时代之前,也经常发生有人试图在不到五分钟的时间内下载整个网站的事情。还有像 commix 这样的系统,会尝试利用其开发者能想到的每一个命令注入漏洞,速度达到每秒数千次。节流对于处理此类行为者是必要的,但是,由于我们稍后将要讨论的原因,节流对于当前这批机器人(bots)来说相对无效。
其他人建议使用诱捕器(tarpits),例如 Nepenthes ,它会将人工智能(AI)机器人(bots)引入一个曲折的垃圾页面迷宫,所有页面都非常相似。像这样的解决方案会带来额外的风险,即诱捕那些(通常)遵守规则的合法搜索引擎抓取器。虽然 LWN 尚未尝试过这样的解决方案,但我们认为这也不会有效。除此之外,这些机器人(bots)似乎并不关心它们是否正在获取垃圾信息,并且为机器人(bots)提供垃圾信息仍然会消耗服务器资源。如果我们打算浪费很多度电来使地球变暖,那还不如让这些资源能够服务于比这更好的目标。
但是,节流和诱捕器都无法提供帮助,还有一个更深层的原因:抓取机器人(scraperbots)在编写时就考虑到了这些防御措施。它们将其超文本传输协议(HTTP)活动分散在一组 IP 地址上,以使任何一个地址都不会达到节流阈值。在某些情况下,这些地址显然都来自同一个子网。通过将整个互联网视为一组 C 类子网络,并对每个子网络应用节流阈值,已经在一定程度上获得了缓解。(有趣的是,抓取器几乎从不使用互联网协议第 6 版(IPv6))。
但是,越来越多的抓取机器人(scraperbot)流量不符合这种模式。相反,流量将来自数百万个 IP 地址,其中没有一个特定地址在一周内发起超过两到三次点击。通过观察网站上的流量,人们可以很容易地看到抓取工作正在以明显的顺序获取已排序的统一资源定位符(URL)列表,但是同一个 IP 地址不会在该序列中出现两次。所涉及的特定地址来自全球各地,没有明显的模式。
换句话说,这种抓取是由僵尸网络(botnets)完成的,很可能是在地下市场购买的,并且由受感染的机器组成。实际上,没有其他解释可以解释观察到的模式。曾经,受感染的系统被用来挖掘加密货币。现在,似乎反复抓取相同的网页可以赚更多的钱。如果有人对运行这些系统的人的道德操守有疑问,那么看看他们使用的技术就应该可以清楚地了解情况。
这就引出了经常听到的最后一个建议:使用商业内容分发网络(CDN)。这些网络正在努力将抓取机器人(scraperbot)保护添加到他们已经拥有的分布式拒绝服务(DDOS)保护中。这可能会发生,但这不是我们喜欢的解决方案。将我们的流量(和读者)暴露给另一个中间人似乎是不受欢迎的。他们用来抵御抓取机器人(scraperbots)的许多技术(例如,要求用户和/或浏览器回答基于 JavaScript 方式提出的一些问题)与我们希望网站运行的方式背道而驰。
因此,目前,我们依靠节流和一些服务器配置工作相结合的方式来清除一些性能瓶颈。这些努力已经产生了稳定负载的效果,并且目前已经消除了我们一直遇到的网站延迟。出于多种原因,这些都不能完全阻止本文所讨论的这些活动,令人沮丧,但是它可以防止它干扰网站的合法运行。但是,可以肯定的是,这种情况只会随着时间的推移而变得更糟。每个人都想要自己特殊的模型,并且各国政府也没有表现出以任何方式阻止它们的兴趣。这是一个全网性的问题,并且越来越难以为继。
LWN 诞生于将网站放到互联网上的自由令人愉悦的时代。从那以后,这种自由在许多方面都受到了打击,但大多数情况下仍然存在。但是,如果我们的发展到了只有将任何复杂的网站隐藏在少数几个大型内容分发网络(CDN)提供商(每个提供商可能都有自己的人工智能(AI)计划)之后才能运营的地步,那么网络将确实是一个令人沮丧的地方。人类将被赶走(诚然,有些人可能认为这是一件好事),剩下的将只有人工智能(AI)系统相互死循环地抓取页面。
全文完
LWN 文章遵循 CC BY-SA 4.0 许可协议。
欢迎分享、转载及基于现有协议再创作~
长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~