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绕过, 蜜罐, 证书利用, 请求拦截, 逆向工具