深度解读软件与工程generatedpublished

OpenSSH默认关闭却仍被外网触发:AI排查25个开源项目揭开攻击面真相

机制

一个在设置里明确关掉的功能,陌生人连密码都没输入,还能顺着网线执行它吗? 按常理说,关了就是关了。 但在现实的代码世界里,事情往往荒谬得让人倒吸一口凉气。

全世界几千万台服务器,最核心的防盗门叫 OpenSSH。 平时工程师在终端里敲一行 ssh 连接远端机房,打交道的就是它。 这套工具的代码被全世界最挑剔的极客和安全专家反复审视了二十多年。 可以说是开源世界里公认最坚固的堡垒之一。

最近,人工智能公司 Anthropic 的红队研究员 Chris Rohlf,用 Claude 去扫描主流开源软件。 他没让 AI 去找常规的内存漏洞。 他让 AI 追查一件事: 一个完全未经认证的陌生人发来数据包,在系统核验他的身份之前,到底有哪些代码会偷偷跑起来?

这一查,在 OpenSSH 10.4 版本里翻出了一个惊人的细节。 当时开发团队在里面引入了一套实验性的后量子签名算法,代号 ML-DSA-44。 因为技术还在测试,团队在默认配置里把它关了。 开发者以为,既然默认关闭,普通用户根本用不到,这段代码就会在底层安静沉睡。 但 Claude 沿着网络数据包的执行路径一追踪,发现根本不是这样。

当一个连账号密码都没有的陌生人从网上连过来,OpenSSH 的守护进程一接单,居然在核查「这台服务器允不允许运行该算法」之前,就先把传过来的数据送进了解析函数。 整整 4500 行极其复杂的实验性 C 语言解析代码,在没有任何身份验证的前提下,直接被调用了。 这 4500 行,占了当时整个 OpenSSH 登录前可触达代码的 16%。

这是什么场景? 就像你家防盗门装了一套人脸识别。 你觉得新技术不成熟,特意在系统设置里把人脸识别关了,只留机械钥匙孔。 结果一个小偷走到门前,即便你没开人脸识别,门锁内部的高速芯片和摄像头依然会把你没启用的那套复杂算法从头到尾跑一遍。 如果这套测试算法里藏着一个会让门锁死机的缺陷,小偷就能借机把门撬开。

OpenSSH 里的情况一模一样。 管理员以为自己关了它,可网络上的任何攻击者,都能随时远程触发这 4500 行未经实战检验的新代码。 只要里面有一处细微的内存溢出,攻击者就能顺藤摸瓜拿下权限。

Anthropic 发现后立刻把报告交给了 OpenSSH 团队。 维护者的反应很快,在随后的 10.5 和 10.6 版本里做了调整。 做法非常干脆: 在把数据喂给解析器之前,先看一眼服务器配置到底开没开这个功能。 没开?当场丢掉数据包,后面的代码连执行的机会都没有。 仅仅通过理顺先后顺序,OpenSSH 在登录前暴露给外网陌生人的代码体积,一下子砍掉了大约五分之一。

这件事最有意思的地方,在于它颠覆了过去三十年软件安全的防守习惯。 过去大家习惯怎么做安全? 抓虫子。 也就是业内常说的找漏洞、报 CVE、打补丁。 但这就像西西弗斯推石头。 面对几百万行复杂的工业级软件,谁敢保证里面没有未知的漏洞? 你辛辛苦苦挖出三个漏洞补上,底下可能还藏着三十个。 随着攻击者也用上先进的人工智能,挖漏洞的速度只会越来越快。

Anthropic 提出来的思路,叫削减攻击面。 防守方的逻辑变了。 不用费劲去猜每一行代码到底有没有毛病。 直接追问:这段代码凭什么暴露给未经核验的外人? 如果一个实验功能是关掉的,那就让所有未经认证的请求在最外层撞墙。 只要陌生人的数据包根本碰不到那 4500 行代码,即便里面藏着再严重的漏洞,也无法被远程利用。

Claude 把这套分析方法扩展到了 25 个重量级开源项目,涵盖 C、C++、Java、PHP 和 Python,总代码量超过 500 万行。 AI 梳理了 1.7 万多个配置选项,最终挑出了 493 个隐患。 数据摆出来相当震撼。 在全部 11 个本该登录后才能使用的服务项目中,无一例外,全都在登录前暴露了本不该被外人触及的代码。

更普遍的是配置冲突。 系统里有 162 组配置开关,组合起来使用时,文档里从未说明会发生什么,软件也不会给出任何错误或告警。 其中有 94 组配置一旦同时开启,会在完全没有提示的情况下,悄悄把系统的某项安全控制彻底关闭。 这里面有一个隐患,在开源代码里无声无息地躺了 21 年。 一边是一个要求客户端必须出示证书验证身份的严格选项。 另一边是一个原本用于延迟检查的附加配置。 当管理员把这两项同时写进配置文件时,系统不仅没有报错,反而直接把整个证书验证逻辑给跳过了。 二十一年间,没有任何人注意到这个漏洞。

AI 在这里展现出的能力,不是写出多么高深莫测的新算法。 它是在人类几十年来层层堆叠、早已经复杂到无人能全盘掌握的代码迷宫里,把那些互相冲突的开关、未经检查的暗道一条条摸清楚。 把不该打开的暗门钉死,把不该暴露的线路埋回墙体深处。 在防御这场看不见的博弈里,高明的手段不靠永无止境地去抓虫子。 把露在外面的靶子收干净,让想开枪的人找不到瞄准的目标,风险自然就消除了。

语义相关 / RELATED

同领域解读 / SOFTWARE & ENGINEERING

查看全部「软件与工程」解读 →

规范引用 / CANONICAL CITATION

OpenSSH默认关闭却仍被外网触发:AI排查25个开源项目揭开攻击面真相 — 墓碑科技 MUBEITECH(https://mubeitech.com/deep/mb-20261022-ee1870)

导出 / EXPORT

订阅 · SUBSCRIBE

每周一封独立、不受审查的科技与 AI 深度评论,周一发出。带出处,可核查。

不追踪邮件打开与邮件链接点击,一键退订。 或用 RSS · 详情