GreyNoise 最近盯上一群不速之客:他们顶着 OpenAI、Anthropic、Google、Perplexity 等机构的官方爬虫名号,在互联网上四处扫描,专挑那些暴露在外的敏感文件下手。这些伪造的 User-Agent 字符串和官方版本逐字符一致,基于 UA 的检测手段直接失效。

攻击规模不小,覆盖了 824 个 IP 地址795 个 /24 网段。目标文件包括 /.env、/app/.env、/.env.production、/.aws/credentials 以及私钥位置等。这些文件一旦泄露,里面躺着的数据库密码、云访问密钥、API 令牌,全成了黑客的囊中之物。

打开网易新闻 查看精彩图片

识别突破口:robots.txt 行为差异

既然 UA 不可信,GreyNoise 换了个角度找破绽——看请求行为。合法的搜索和 AI 爬虫通常会先检查 /robots.txt,这个文件会告知自动化客户端网站允许访问哪些内容。以 ClaudeBot 为例,robots.txt 是其最高频请求路径,占了约 12% 的流量。

伪造爬虫的表现截然不同:在观察到的活动中,这六个伪造爬虫身份从未请求过 /robots.txt,直接跳过规则探测机密文件路径。这一行为差异成了可操作的检测信号——不守规矩的,大概率是冒牌货。

零重叠的 IP 比对结果

GreyNoise 把观测到的 824 个源地址与 OpenAI、Anthropic、Google、Amazon 等厂商公布的合法爬虫 IP 段逐一比对,结果发现没有任何重叠。这意味着,这些攻击流量全部来自官方白名单之外的地址,也印证了基于 UA 认证的本质脆弱性。

简单封禁不可行——824 个 IP 分散在 795 个网段里,黑名单策略根本追不上。安全团队需要换一套思路:

  • 不把 User-Agent 字符串当作爬虫身份的证据,它只是可伪造的声明
  • 基于厂商官方公布的 IP 段验证来源,而非 UA 文本
  • 对 /.env、/.aws/credentials 等敏感路径的请求建立告警机制
  • 把 .env 和密钥文件移出 Web 根目录,从源头消除暴露面

别把 UA 当身份证

这次事件的核心教训很直接:组织绝不应将 User-Agent 字符串作为爬虫身份的证据。攻击者逐字符复制官方 UA,让基于文本的检测形同虚设。真正的防线在于验证来源 IP 是否属于厂商公布的合法段位,同时对敏感路径的异常请求保持敏感。

配置错误的服务器是攻击者的目标——那些可能泄露云密钥、API 令牌、密码和私钥的服务器。把密钥文件移出 Web 根目录,比任何检测规则都更治本。