Mirage-Source/mirage-core

GitHub: Mirage-Source/mirage-core

MIRAGE 是一个 AI 增强的 SSH 蜜罐系统,通过模拟虚假 shell 环境诱捕攻击者,并利用机器学习 pipeline 对会话进行行为分析和威胁情报生成。

Stars: 0 | Forks: 0

# MIRAGE **通过 AI 增强的 SSH 蜜罐,用于攻击者行为分析和威胁情报生成。** MIRAGE 暴露了一个逼真的虚假 SSH server,让攻击者进入,通过自适应的 AI 生成的 shell 环境研究他们的行为,故意植入诱饵以提取情报,并输出结构化的威胁情报。这是一个纯粹用于防御的研究工具,部署在我们自己拥有的基础设施上。 ## 工作原理 当攻击者连接到 MIRAGE 的 SSH 端口时,他们会看到一个逼真的 Ubuntu 22.04 shell。每一次按键、命令、命令间的时间间隔以及凭据尝试都会被捕获。后台的 ML pipeline 通过行为 embedding、攻击者分类和 MITRE ATT&CK 技术映射来丰富每个会话。其结果是超越了静态入侵指标的结构化威胁情报。 ``` Attacker │ │ SSH ▼ Go Honeypot (mirage-core) │ writes sessions ▼ PostgreSQL │ polls unenriched sessions ▼ Python ML Worker (ml-worker) │ timing heuristics · tool signatures · transformer embeddings ▼ PostgreSQL ← enriched with attacker class + 128-d behavioral embedding ``` ## 架构 | 组件 | 语言 | 作用 | |-----------|----------|------| | `core/` | Go | SSH server、虚假 shell、会话捕获、PostgreSQL 持久化 | | `bridge/` | Python | 轮询 worker、schema 适配器、ML pipeline 编排 | | `ml/` | Python / PyTorch | 双通道 Transformer、时间启发式、工具特征检测 | | `db/` | SQL | PostgreSQL schema —— 核心表和 ML 情报表 | **Go 核心**处理所有的网络 I/O。它接受任何 SSH 凭据,呈现一个虚假的交互式 shell,并捕获结构化的会话数据,包括身份验证尝试、带有序列号和命令间延迟的命令,以及与诱饵文件的交互。 **ML worker**异步运行。它轮询 PostgreSQL 以获取未丰富数据的会话,并生成: - 命令间间隔的变异系数(bot 与人类信号的对比) - 基于正则表达式的工具特征检测(Mirai、XMRig 等) - 来自双通道 Transformer encoder 的 128 维行为 embedding - 攻击者分类:自动化扫描器 · 脚本小子 · 手动侦察 · APT 级别 **优雅降级** —— 如果没有训练好的 model checkpoint,ML worker 将仅以启发式模式运行。在没有 GPU 或预训练权重的情况下,时间分析和工具特征仍然能产生有用的输出。 ## 攻击者分类 Transformer 将 SSH 会话视为一个标记时间点过程。它同时接收两个输入通道: - **Token 通道** —— 经过 token 化的命令序列 - **时间通道** —— 对数缩放的命令间间隔 (ICI) 这种融合使得模型能够区分,例如,在 12ms 内运行 `wget` 的 bot 和在暂停 3 秒后运行相同命令的人类——即使命令内容完全相同。 ## 威胁情报输出 每个经过丰富的会话将产生: - 包含身份验证尝试、命令追踪和时间数据的完整会话 JSON - 攻击者类别标签和置信度 - 用于聚类和重新识别的 128 维行为 embedding - MITRE ATT&CK 技术映射*(里程碑 5)* - STIX 2.1 bundle 导出*(里程碑 5)* ## 设置 ### 前置条件 - Docker 和 Docker Compose - OpenSSH(用于生成主机密钥) ### 首次设置 ``` # 1. Clone 仓库 git clone https://github.com/Mirage-Source/mirage-core.git cd mirage-core # 2. 配置环境 cp .env.example .env # 使用您的数据库密码编辑 .env # 3. 生成 SSH host key ./scripts/generate_hostkey.sh # 在 Windows 上:./scripts/generate_hostkey.ps1 # 4. 启动所有服务 docker compose up --build ``` 蜜罐监听端口 `22`(生产环境)和 `2222`(测试环境)。PostgreSQL 仅限内部访问。 ### 使用 ML 模型(可选) 要启用 128 维 embedding,请将训练好的产物放在 `./artifacts/` 中: ``` artifacts/ └── embedder/ ├── best.pt └── tokenizer/ ``` 然后取消注释 `docker-compose.yml` 中的模型环境变量。 ## 仓库结构 ``` mirage-core/ ├── core/ # Go SSH honeypot │ ├── cmd/mirage/ # Entrypoint │ ├── internal/server # SSH server and session lifecycle │ ├── internal/shell # Fake shell state machine │ ├── internal/session# Session data model │ └── internal/store # PostgreSQL persistence ├── bridge/ # Python ML worker ├── ml/ # PyTorch models and analysis pipeline ├── db/init/ # PostgreSQL schema migrations ├── scripts/ # Host key generation utilities ├── tests/ # Python test suite └── artifacts/ # Model checkpoints (not committed) ``` ## 道德与法律声明 MIRAGE 专门部署在作者拥有的基础设施上。它专为防御性安全研究而设计。请勿在您不拥有或未获得明确书面授权运营的基础设施上进行部署。 ## 作者 **Vinayak** —— Go 基础设施、SSH 层、会话 pipeline **Devang** —— ML pipeline、行为 embedding、攻击者分类
标签:ADCS攻击, Go, Python, Ruby工具, SSH, 人工智能, 凭据扫描, 威胁情报, 开发者工具, 无后门, 日志审计, 测试用例, 版权保护, 用户模式Hook绕过, 蜜罐, 证书利用, 请求拦截, 逆向工具