Rakeshops71/TrapWire
GitHub: Rakeshops71/TrapWire
一个融合 AI 意图识别与 SOAR 自动化编排的新一代欺骗防御平台,用于深度溯源攻击者行为并实现毫秒级威胁阻断。
Stars: 0 | Forks: 0
# 🪤 TrapWire — 基于欺骗的威胁检测平台
## 🚀 TrapWire 的独特之处
| 功能 | 作用 | 亮点 |
|---|---|---|
| **攻击者 DNA 指纹识别** | 使用 15+ 种浏览器/网络信号跨 IP 重新识别攻击者 | 采用广告反欺诈公司和银行所用的技术 |
| **移动目标防御** | 每个蜜罐响应都会变形 — 不同的标头、错误、虚假数据 | 真正的高级网络安全概念 |
| **陷阱链** | 陷阱 A 种下陷阱 B — 可视化攻击者的完整杀伤链 | 没有学生级别的人会构建这个 |
| **TCP 端口蜜罐** | 伪造的 SSH/FTP/MySQL 监听器捕获原始凭据 | 真实的机器人会在几分钟内命中这些端口 |
| **SOAR 预案** | 像 Splunk SOAR 一样的 IF/THEN 自动化规则 | 价值 20 亿美元的企业级概念 |
| **STIX 2.1 导出** | 兼容 IBM QRadar 的行业标准威胁源 | 真正的安全标准 |
| **AI 意图分类** | Claude API 对攻击者的复杂程度和意图进行分类 | 前沿 AI + 安全的组合 |
| **不可变审计日志** | 哈希链式防篡改日志(微型区块链) | 数字取证概念 |
| **威胁情报富化** | 自动查询 AbuseIPDB + Shodan + VirusTotal + Tor 列表 | 真实 SOC 分析师的工作流,已实现自动化 |
| **AI 模式聚类** | 查找事件之间的隐藏联系(同一攻击者,不同 IP) | 威胁狩猎 |
## 🛠️ 技术栈
```
Backend: Node.js + Express + Socket.io + MongoDB
Frontend: React + Recharts + React-Leaflet + Tailwind
AI: Anthropic Claude API
Alerts: Nodemailer + Slack Webhooks + ntfy.sh (push)
Reports: PDFKit (PDF) + STIX 2.1 JSON
Intel: AbuseIPDB + Shodan + VirusTotal + Tor exit list
TCP: Node.js net module (raw socket listeners)
```
## ⚡ 快速开始
### 1. 克隆并安装
```
git clone https://github.com/yourusername/trapwire
cd trapwire
# 安装 server dependencies
npm install
# 安装 client dependencies
cd client && npm install && cd ..
```
### 2. 配置环境
```
cp .env.example .env
# 编辑 .env 并填入你的 keys
```
**必需项:**
- `MONGO_URI` — MongoDB 连接字符串(免费:[MongoDB Atlas](https://mongodb.com/atlas))
- `JWT_SECRET` — 任意 32 个字符以上的随机字符串
**可选项(启用额外功能):**
- `ANTHROPIC_KEY` — 启用 AI 威胁分析([获取密钥](https://console.anthropic.com))
- `ABUSEIPDB_KEY` — IP 信誉检查([免费套餐](https://www.abuseipdb.com))
- `SHODAN_KEY` — 开放端口查询([免费套餐](https://shodan.io))
- `EMAIL_USER` / `EMAIL_PASS` — 邮件告警
- `NTFY_TOPIC` — 移动推送通知(免费,无需在 [ntfy.sh](https://ntfy.sh) 注册)
### 3. 运行
```
# Development (同时运行 server + client)
npm run dev
# Production
npm start # server only
cd client && npm run build # build frontend
```
服务端: http://localhost:5000
前端: http://localhost:3000
## 🪤 如何部署你的第一个陷阱
1. 在 `http://localhost:3000` 注册一个账号
2. 前往 **Traps** → **New Trap**
3. 选择类型(例如 "URL Token"),为其命名为 *"AWS Credentials in GitHub"*
4. 复制生成的陷阱 URL
5. 将其粘贴到攻击者可能找到的地方(虚假的 README、文档、电子邮件中)
6. 任何人点击它的那一刻 — 你可以在仪表板中**实时**看到他们
## 📡 TCP 蜜罐
TrapWire 在启动时会自动开启伪造的 TCP 端口:
| 我们的端口 | 伪装服务 | 捕获内容 |
|---|---|---|
| 2222 | SSH (22) | 用户名、密码、SSH 客户端版本 |
| 2121 | FTP (21) | FTP 凭据 |
| 3307 | MySQL (3306) | MySQL 握手探测 |
| 8080 | HTTP | HTTP 扫描器、漏洞探测程序 |
在 `.env` 中配置:`HONEYPOT_PORTS=2222,2121,3307,8080`
## 🌐 Web 蜜罐
以下 URL 路径会自动引诱并记录扫描器:
```
/admin /wp-admin /phpmyadmin
/.env /api/v1 /login
```
每个响应都使用**变异引擎** — 动态改变标头和虚假错误消息,使攻击者无法对系统进行指纹识别。
## 🤖 AI 功能
所有 AI 功能均使用 Anthropic Claude API(在 `.env` 中设置 `ANTHROPIC_KEY`):
- **单事件摘要** — 每次触发陷阱后自动生成
- **攻击者意图分类** — 从攻击者资料页手动运行
- **模式聚类** — 查找事件之间的隐藏联系
- **每周 AI 摘要** — 每周一上午 9 点自动生成
## 📄 PDF 报告
点击 **Reports → Export PDF Report** 获取包含以下内容的品牌报告:
- 摘要统计信息
- AI 生成的威胁分析
- 顶级攻击者表格
- 近期事件日志
- 格式化设计,适合向经理展示或在面试中使用
## 📡 STIX 2.1 威胁源
以 **STIX 2.1** 格式导出捕获的攻击者数据 — 这是业界标准,被以下产品使用:
- IBM QRadar
- Splunk SIEM
- Palo Alto XSOAR
- CrowdStrike Falcon
前往 **Reports → Export STIX Feed**
## ⚙️ SOAR 预案示例
```
Name: "Block Tor attackers instantly"
IF:
intel.isTor equals true
riskScore greater_than 60
THEN:
Send Slack alert
Send push notification
Block IP (iptables)
Create incident
```
在陷阱触发后的几毫秒内自动执行。
## 🔗 项目结构
```
trapwire/
├── server/
│ ├── index.js # Express + Socket.io entry
│ ├── config/db.js # MongoDB connection
│ ├── models/
│ │ ├── User.js # Auth + preferences
│ │ ├── Trap.js # Trap config + token
│ │ ├── Event.js # Every trap trigger
│ │ ├── Attacker.js # Persistent attacker profile
│ │ ├── Playbook.js # SOAR automation rules
│ │ └── AuditLog.js # Immutable chain-of-custody log
│ ├── routes/
│ │ ├── trigger.js # /t/:token — public trap handler
│ │ ├── auth.js # Login / register / refresh
│ │ ├── traps.js # CRUD + STIX export
│ │ ├── events.js # Events + pattern analysis
│ │ ├── attackers.js # Profiles + AI classification
│ │ ├── dashboard.js # Stats + world map data
│ │ ├── reports.js # PDF + STIX generation
│ │ ├── playbooks.js # SOAR rules CRUD
│ │ ├── intel.js # IP lookup + audit log
│ │ └── honeypotWeb.js # Catch-all web honeypot
│ └── services/
│ ├── fingerprintService.js # Attacker DNA profiling
│ ├── intelService.js # AbuseIPDB/Shodan/VirusTotal
│ ├── aiService.js # Claude API integration
│ ├── alertService.js # Email/Slack/push alerts
│ ├── honeypotService.js # TCP port listeners
│ ├── mutationEngine.js # Moving target defense
│ ├── playbookEngine.js # SOAR automation execution
│ └── cronService.js # Weekly digest + cleanup
└── client/src/
├── App.jsx # Router + auth + socket context
├── pages/
│ ├── Login.jsx # Auth page
│ ├── Dashboard.jsx # Main overview
│ ├── Traps.jsx # Trap management
│ ├── Events.jsx # Event feed + filters
│ ├── EventDetail.jsx # Full forensic event view
│ ├── Attackers.jsx # Attacker list
│ ├── AttackerProfile.jsx # Timeline + AI classification
│ ├── Playbooks.jsx # SOAR rule builder
│ └── Reports.jsx # Analytics + exports
└── utils/api.js # Axios + JWT refresh
```
## 🎤 面试时该怎么说
然后在面试中打开仪表板并实时触发一个陷阱。🚀
## ⚠️ 道德使用声明
TrapWire 专为**防御性安全**设计 — 用于检测对你自己系统的未经授权访问。所有陷阱活动只应部署在你拥有或获得授权监视的基础设施上。本项目仅用于教育和防御性安全目的。
## 📄 许可证
MIT — 在此基础上构建,从中学习,借此求职。
标签:AbuseIPDB, AI意图分类, AMSI绕过, Ask搜索, Attacker DNA, BOF, Claude API, DLL 劫持, Express, GNU通用公共许可证, Google搜索, Honeypot, IP 地址批量处理, MITM代理, MongoDB, Moving Target Defense, Node.js, Nodemailer, PDFKit, React, React-Leaflet, Recharts, Slack Webhook, SOAR, Socket.io, STIX 2.1, Syscalls, Tailwind CSS, TCP端口监听, TGT, Threat Hunting, TI, Tor, VirusTotal, 大语言模型, 威胁检测, 安全告警, 安全情报, 安全编排与自动化响应, 密码管理, 情报富化, 插件系统, 攻击者追踪, 攻防演练, 数字取证, 欺骗防御, 移动目标防御, 网络安全, 网络空间安全, 自动化剧本, 自动化脚本, 自定义脚本, 蜜罐, 行为指纹, 证书利用, 防篡改审计日志, 陷阱链, 隐私保护