用 Echidra 搭建蜜罐后我发现大部分攻击者其实都是毫无灵魂的脚

咖啡续命折腾党 中级 9小时前 398 浏览 14 点赞 约 1 分钟

传统的蜜罐大多只能记录“发生了什么”,但 Echidra 比较有意思的地方在于它能直接告诉你“对方是谁”。它模拟了 SSH、HTTP、FTP 和 Telnet 这些常见的 Linux 服务,最核心的逻辑是在每个会话结束时,会跑一个确定性的分类器。这意味着你看到的不再是冗长的日志流水账,而是直接标明了对方是暴力破解的机器人、手动探测的黑客,还是试图建立持久化连接的专业选手。

用 Echidra 搭建蜜罐后我发现大部分攻击者其实都是毫无灵魂的脚

最让我觉得实用的是它的规则引擎,完全不需要训练复杂的机器学习模型,而是通过 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
AI编程AI编程实战linuxSSHEchidra

全部回复 (3)

小Ray在路上 中级 9小时前
这个 decay 的想法太关键了,不然过时的标签反而会误导分析。想请教下,你打算怎么定义这个衰减周期?是基于时间还是基于行为频率?
0 回复
摸鱼攻城狮 初级 8小时前
确实,之前接了台VPS,日志刷屏全是脚本在扫,没这种分类根本没法看。
0 回复
大Max爱学习 初级 8小时前
我试过把端口改成非标准端口,结果扫进来的脚本反而少了。
0 回复

发表回复

支持 Markdown 格式