RakeshRautDev/TrapWire
GitHub: RakeshRautDev/TrapWire
一个基于欺骗技术的威胁检测与自动化响应平台,通过多类型蜜罐、AI 意图分析和 SOAR 编排实现攻击者识别与自动处置。
Stars: 0 | Forks: 0
# 🪤 TrapWire — 基于欺骗的威胁检测平台
## 🚀 TrapWire 的独特之处
| 功能 | 作用 | 亮点 |
|---|---|---|
| **攻击者 DNA 指纹识别** | 使用 15+ 种浏览器/网络信号跨 IP 重新识别攻击者 | 采用广告欺诈公司和银行使用的技术 |
| **移动目标防御** | 每次蜜罐的响应都会变形——不同的 headers、错误信息和虚假数据 | 真正的高级网络安全概念 |
| **陷阱链** | 陷阱 A 种下陷阱 B——可视化攻击者的完整杀伤链 | 学生级别中无人构建此类功能 |
| **TCP 端口蜜罐** | 伪造的 SSH/FTP/MySQL 监听器捕获原始凭据 | 真实的僵尸网络会在几分钟内命中这些端口 |
| **SOAR Playbooks** | 类似 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 依赖
npm install
# 安装 client 依赖
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. 运行
```
# 开发 (同时运行 server + client)
npm run dev
# 生产环境
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"),为其命名,如 *"GitHub 中的 AWS 凭据"*
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
```
每个响应都使用了 **Mutation Engine**——通过变形的 headers 和虚假错误消息,使攻击者无法对系统进行指纹识别。
## 🤖 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 Playbooks 示例
```
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绕过, Anthropic, Ask搜索, BOF, Chat Copilot, CISA项目, CIS基准, Claude API, Express, GNU通用公共许可证, IP 地址批量处理, MITM代理, MongoDB, Node.js, Nodemailer, React, Slack Webhook, SOAR, Socket.io, STIX 2.1, Syscalls, TCP蜜罐, VirusTotal, 威胁情报, 威胁检测, 安全编排与自动化响应, 实时处理, 密码管理, 开发者工具, 插件系统, 攻击者意图分类, 数字取证, 时间线生成, 欺骗防御, 溯源追踪, 移动目标防御, 网络安全, 自动化脚本, 自动化防御, 自定义脚本, 蜜罐技术, 行为指纹识别, 防篡改日志, 陷阱链, 隐私保护