technology 10 分钟阅读

AI蝗虫正在啃食Linux内核

日本开发者率先发现问题:AI爬虫以数十亿次无效请求冲击Linux内核基础设施,迫使维护者自己承担训练数据的成本。这场危机正愈演愈烈。

  • 纽约时报
  • Switch模拟器
  • 骚扰性洪水
  • Microsoft
  • Linux 7.3

蝗虫已至,它们正饥渴地吞噬你的代码

日本早在硅谷众人察觉之前就先拉响了警报。一家日本科技专栏将其称为网络蝗灾——不気味な虫たち,令人毛骨悚然的爬虫——而这一隐喻几乎好到像是凭空捏造。数十亿次请求如蝗群俯冲稻田般涌向 git.kernel.org,吞噬所需的一切,留下真正的耕种者来买单。

负责维护 kernel.org 的 Konstantin Ryabitsev 在 8 月 29 日发布了详细信息。数据触目惊心:五台分布式节点,共 90 个 CPU 核心,其中整整 20% 的处理能力——任何时刻都有 14 到 16 个核心——纯粹用于为 AI 爬虫渲染 HTML 格式的代码提交记录。这不是备用容量,也不是临时峰值。这是当你的开源项目成为他人数据矿场时的基础运营成本。

为什么是内核?为什么是现在?

大多数人忽略的问题不是为什么爬虫在爬取 Linux,而是为什么它们专挑这个仓库,以及为什么爬取方式如此暴力的低效。

Ryabitsev 的回答触及了比基础设施更深层的东西:数字朊病毒病。这个术语描述了 AI 开发中的一种已知失效模式。用此前 AI 模型生成的数据训练新模型,每一代的输出质量都会下降——这是一个日益合成、日益空洞的反馈循环。LLM 开发者深知这一点。他们知道,用 AI 时代之前的人类写作来喂养模型,是延缓那种破坏性恶化爆发的唯一办法。

Linux 内核的提交记录是互联网上现存规模最大的纯人工撰写、AI 时代之前的代码宝库之一。每一次提交都能追溯到一个握着键盘、要解决问题的人。没有 AI 参与写作,没有 AI 参与审查。这让它们价值连城——也让它们成为目标。

但让情况变得 grotesque 的是:AI 公司免费获取数据,而 Linux 内核项目却要承担带宽、计算和工程时间来服务这些数据。维护者实质上是在补贴那些将产出变现的公司训练管道。

以最愚蠢的方式

这里有个技术细节能解释为何负载与所提取价值之间的比例荒谬得不成比例。

Git 仓库的设计是为了效率。你克隆一次,就得到一切。分支共享对象——同一个提交在磁盘上永远不会存在两次。这个协议正是为了消除冗余而建。

AI 爬虫对此视而不见。它们不清库,而是发出单独的 HTTP 请求,要求服务器逐个将每个提交渲染成 HTML。每个请求都触发昂贵的服务端计算。它们在不同的分支间反复爬取同一批提交,为总计 148 万个独立提交(分布在 922 个分支中)生成了数十亿次请求。算起来几乎是一种侮辱:数以百亿计的有效 URL,爬虫最终只拿到 922 个重复副本。

Ryabitsev 自己的描述非常贴切:“最蠢的可行方案——把每个提交都渲染成 HTML 再解析。”

每日请求量约为 600 万。其中三分之二被 Anubis 拦截——这是 kernel.org 部署的一种工作量证明挑战系统,旨在拖慢爬虫。剩余的三分之一——每天仍有约 200 万次请求——是那些通过了挑战的机器人。据 Ryabitsev 估算,合法的人类流量仅占总请求量的约 2%,其余 98% 都是机器噪音。

有利于攻击者的军备竞赛

这种情况尤为恶劣之处在于,防御方总是需要付费响应,而攻击方却能承受成本并不断扩容。

kernel.org 的应对措施讲述了整个故事。起初,它们用 fail2ban 屏蔽了明显的机器人 IP。随后爬虫换上了与浏览器完全一致的用户代理——Chrome on Windows、Firefox、Safari——IP 屏蔽就此失效。

接着,机器人开始轮换使用消费级 ISP 地址和移动网络。它们会发出四五个请求后就在日志中彻底消失。屏蔽这些 IP 毫无意义;攻击者早已转移。“当我们意识到它们是机器人时,攻击已经结束,” Ryabitsev 指出,“它们在我们还来不及恢复时就转移到下一个目标,然后以不同形式卷土重来。”

攻击面进一步扩大。机器人现在通过智能电视和游戏应用中嵌入的代理 SDK 路由——大多数房主根本不知道自己家里的设备正在参与僵尸网络。“你家电视现在可能就在干这种事,” Ryabitsev 写道。

Anubis 工作量证明系统是最具创意的应对措施。它要求每位访客在访问网站前解决一个计算难题——找到一个以特定位数零开头的 SHA-256 哈希值。对人类来说,这只需要毫秒级时间;而对试图抓取数百万页面的机器人而言,成本被大幅放大。起初,它奏效了。机器人放弃了。但数月之内,它们已经适应了难度等级 4。kernel.org 将其提升到等级 5,现在连智能手机都会明显发热。而机器人已经在适应如何解开等级 5 的谜题。

这种动态不可持续。攻击方有无数的实例可以分摊计算,而防御方只有 90 个核心要与真正想要浏览内核树的真实用户共享。

西方尚未深入讨论的议题

日本将此事定性为蝗灾的框架蕴含着深层含义,这是英语媒体尚未完全消化的一点。蝗虫不只吃庄稼——它们以快于作物再生的速度吞噬一切,不留任何东西给下一个周期。

Linux 内核项目之所以能存续三十余年,正是因为其治理模式与其技术架构高度契合:去中心化、精英政治、向任何贡献者开放。正是这种开放性让它成为奖赏,但也让它极易遭受一类与传统基础设施攻击毫无相似之处的资源榨取。这不是旨在让网站瘫痪的 DDoS 攻击,而是缓慢而系统性地抽走计算周期的行为——每个人都从中受益,却没有人直接为此买单。

更深层的忧虑在于,开源项目能否在不破坏其价值源泉——开放性——的前提下适应新的协议。Ryabitsev 已经开始禁用部分功能、限制可爬取的 URL 以降低服务器负载。他已请求用户接受临时降级匿名访问。信息很明确:旧模式正在承受一种新型压力的重压。

前路严峻

Ryabitsev 的结论以其坦诚引人注目:“不明朗。“没有干净利落的答案。新的 AI 模型提供商每天都在涌现,都渴望着同一批干净的、AI 时代之前的训练数据。应用开发商正通过让消费设备成为僵尸网络参与者来开辟新的收入渠道。经济学天平倾向收割者。

Linux 内核并非孤身面对此境。任何大型、高质量、AI 时代之前的开源仓库都面临同样的暴露风险。日本开发者提出的这个问题——西方媒体几乎未曾触及——是:开源生态是否需要重新设计其关于访问权限的基本假设,还是将继续补贴那些威胁其长期生存的体系。

蝗虫不是在路上了。它们已经到了。而且正在啃食稻米。