用 Echidra 搭建蜜罐后我发现大部分攻击者其实都是毫无灵魂的脚
传统的蜜罐大多只能记录“发生了什么”,但 Echidra 比较有意思的地方在于它能直接告诉你“对方是谁”。它模拟了 SSH、HTTP、FTP 和 Telnet 这些常见的 Linux 服务,最核心的逻辑是在每个会话结束时,会跑一个确定性的分类器。这意味着你看到的不再是冗长的日志流水账,而是直接标明了对方是暴力破解的机器人、手动探测的黑客,还是试图建立持久化连接的专业选手。
下一篇
用 macOS 26 原生 API 做实时翻译字幕 →
最让我觉得实用的是它的规则引擎,完全不需要训练复杂的机器学习模型,而是通过 YAML 配置文件来定义攻击者画像。这种方式虽然简单,但在实战中效率极高。比如,如果一个会话在 3 秒内尝试了 5 次登录且没有执行任何指令,系统会直接把它打上“自动化机器人”的标签。
具体的分类规则大概长这样:
- id: credential_stuffing_bot
match:
protocol: ssh
auth_attempts: ">5"
session_duration_seconds: "<3"
commands_run: 0
classify:
actor_type: automated_bot
risk_score: 40
mitre_technique: T1110 # Brute Force
intent: credential_access有了这套逻辑,我不需要再去翻那些枯燥的 .log 文件,直接看仪表盘就能过滤掉 90% 的垃圾流量,把精力集中在那些会执行 whoami 或者尝试读取 /etc/passwd 的真实人类攻击者身上。
部署起来非常快,基本上就是三行命令的事:
pip install -e .
echidra init
echidra start如果你没配置 Postgres 数据库,它会默认把数据写到 logs/sessions.jsonl 里,依然可以正常工作,只是没法在仪表盘看到完整的历史记录。
不过目前这个工具也有个比较明显的短板,就是分类规则完全靠手动调优。这意味着它只能识别作者已经见过的攻击模式。如果对方用了某种极其冷门的探测手段,目前的规则集可能就失效了,得手动去更新 YAML 配置才能捕捉到。
https://github.com/Qyleron/EchidraOSS