什么是Anglerfish类蜜罐及其常见特征?

4 人参与

如果你在网络空间测绘数据里,频繁看到像“Server: Docker/18.06.1-ce (linux)”这样高度一致、仿佛从同一个模子里刻出来的服务响应,那很可能你撞上的不是真正的Docker API,而是一类被称为“琵琶鱼”(Anglerfish)的蜜罐。这个名字并非空穴来风,它精准地描绘了这类蜜罐的运作哲学:模仿深海琵琶鱼,用一根发光的“诱饵”(即精心伪装的、看似易受攻击的服务)吸引攻击者靠近,一旦“咬钩”,就可能触发警报甚至反制。

它到底是什么?

本质上,Anglerfish类蜜罐是一种中低交互度的欺骗性防御系统。它不像高交互蜜罐那样提供一个近乎真实、可供攻击者深入交互的操作系统环境。相反,它的核心在于“拟态”与“诱导”。开发团队会分析互联网上大量暴露的、存在漏洞的真实服务(如未授权访问的Docker API、Redis、Elasticsearch等),提取它们的协议特征、默认banner信息和常见错误响应,然后制作成轻量级的模拟程序。

说白了,它就是个演技精湛的“演员”,只背熟了开场白和几个固定桥段。当扫描器或攻击者探测时,它能对特定协议请求(比如HTTP GET /version)做出极其逼真的响应,返回一个看起来完全合理的JSON数据或HTTP头,让你深信不疑这就是一个存在配置缺陷的实战目标。

几个让你一眼识破的典型特征

这类蜜罐在指纹层面留下了不少马脚,经验丰富的防御者或威胁猎人能快速识别。

  • 指纹的“完美”与“僵化”:最明显的特征是响应内容的高度一致性。你可能会在ZoomEye、Shodan等平台上发现成千上万个IP,其Server头、Api-Version、甚至GitCommit哈希值都一字不差。在真实世界,即使版本相同,不同服务器因编译环境、补丁状况产生的细微差异几乎是必然的。这种“克隆人军团”式的整齐划一,是模拟程序批量部署的典型标志。
  • “薛定谔的端口”与访问阻断:一个有趣且反常的现象是,许多标记为此类的服务,其探测端口并非该服务的标准端口(如Docker的2375),而是随机的高位端口。更关键的是,这些端口状态极不稳定——可能第一次探测有响应,第二次就连接超时;或者从测绘引擎看是开放的,手动访问却完全不通。这暗示蜜罐背后可能集成了动态防火墙规则或IP信誉库,对“上钩”的IP实施临时或永久阻断,旨在干扰攻击者的进一步动作,而非提供持续交互。
  • 响应内容的“模板化”痕迹:仔细比对HTTP响应体,有时能发现模板化的蛛丝马迹。例如,JSON数据中键值对之间的空格数量、字段的排列顺序在不同实例间完全一致。在真实服务中,JSON序列化库的默认输出格式可能因语言、版本或配置而有细微差别。这种对“空白字符”都进行精确复刻的细节,反而暴露了其非自然的生成过程。
  • 时间戳的“穿越”或固化:观察HTTP响应头中的Date字段,有时会发现大量实例的日期时间戳集中在某个过去的特定时间点(例如大量显示为2019年的某个日期),或者干脆不随时间更新。一个正常的、持续运行的服务,其响应时间戳理应与当前时间基本同步。

部署者的意图与防御者的视角

为什么要部署这样的蜜罐?从防御方看,目的很明确:早期预警和攻击者画像。通过广撒网式地模拟高价值漏洞服务,防守团队能以极低的成本,在攻击链的早期(扫描探测阶段)就捕获攻击者的IP、工具指纹、攻击模式和时间规律。这些数据对于丰富威胁情报、调整边界防护策略至关重要。

而对于攻击方或安全研究员而言,识别Anglerfish蜜罐则是一项基本技能。误将蜜罐当作真实目标,不仅浪费时间和资源,更可能暴露自身的技术特征和意图,甚至触发警报导致真实IP被标记。在自动化扫描或手工渗透前,交叉验证目标指纹的“真实性”,检查其是否存在上述僵化特征,已经成为一种必要的战场纪律。

网络空间的猫鼠游戏从未停歇,Anglerfish类蜜罐的出现,正是这场博弈精细化、自动化演进的一个侧影。它提醒我们,在看似平静的数据海洋表面下,充满了精心布置的诱饵与陷阱。

参与讨论

4 条评论
  • 梦境绘图师

    这玩意在Shodan上一抓一大把,特征太明显了

    回复
  • 梦语风

    前几天分析日志就撞上一个,响应头日期停在2021年不动了

    回复
  • 吃瓜第一线

    所以怎么快速分辨啊,手动一个个比对太费劲了

    回复
  • 茶烟袅袅

    感觉这种蜜罐挺鸡肋的,老鸟一眼就能看出来

    回复