SeharaGishan/neurotrap
GitHub: SeharaGishan/neurotrap
NeuroTrap 是一套基于 XGBoost 实时攻击者分类与 DQN 自适应欺骗策略的闭环智能蜜罐系统,旨在通过动态调整蜜罐行为来最大化威胁情报捕获。
Stars: 0 | Forks: 0

# NeuroTrap
### 基于 AI 的智能蜜罐检测系统
*不断进化的安全防线*
[](https://creativecommons.org/licenses/by-nc-nd/4.0/)






**计算机安全荣誉学士 (BSc Hons) — PUSL3190 毕业设计**
**普利茅斯大学 | 斯里兰卡 NSBM 绿色大学**
*Bedde K Samarasinghe — 普利茅斯学号: 10953243*
| 0.9993 | 1.0000 | 283.4 | 33.1 | 65.4 | +2204% |
|:---:|:---:|:---:|:---:|:---:|:---:|
| **XGBoost Macro F1** | **XGBoost AUC** | **DQN v3 高级奖励** | **平均交互步数** | **单次会话情报捕获量** | **v1 → v3 增益** |
| 测试集 — 2.8M 样本 | 完美的类别区分 | 相比 v1 基准的 12.3 | 相比 v1 的 3.0 (+1,003%) | 相比 v1 的 9.0 | 高级攻击者奖励 |
## 目录
- [概述](#overview)
- [研究空白与创新点](#research-gap--novelty)
- [系统架构](#system-architecture)
- [AI Pipeline](#ai-pipeline)
- [蜜罐服务](#honeypot-services)
- [数据管道](#data-pipeline)
- [AWS 基础设施](#aws-infrastructure)
- [移动端仪表盘](#mobile-dashboard)
- [技术栈](#tech-stack)
- [项目结构](#project-structure)
- [结果](#results)
- [引用](#citation)
- [许可证](#license)
## 概述
**NeuroTrap** 是一个研究级的、由 AI 驱动的自适应蜜罐系统,它将实时攻击者分类与动态欺骗相结合。传统静态蜜罐对所有攻击者一视同仁,与此不同的是,NeuroTrap 能够实时智能地分析每个攻击者的特征,并调整自身行为以最大化威胁情报的捕获,同时让攻击者保持更长时间的交互。
该系统集成了一个**两阶段闭环 AI 架构**:XGBoost 攻击者分析器将会话分为三个威胁类别(自动化机器人、脚本小子、高级持续性威胁),并直接输入到 Deep Q-Network (DQN) 自适应欺骗代理中,该代理为每种攻击者类型选择最佳的欺骗策略——决策时间在 200 微秒以内。
**核心目标:**
1. 跨多个蜜罐服务(SSH、Web、恶意软件)监控攻击者行为
2. 使用 XGBoost 实时分类攻击者(自动化机器人 / 脚本小子 / APT)
3. 使用 DQN 强化学习代理动态调整蜜罐响应
4. 通过 Flutter 移动端仪表盘可视化攻击者数据并推送实时警报
## 研究空白与创新点
现有的蜜罐解决方案分为两类:**静态欺骗工具**(Honeyd、Kippo)和**孤立的强化学习概念验证框架**(QRASSH)。这两者都没有提供一个将实时分析与自适应欺骗相结合的生产就绪平台。
NeuroTrap 通过提供**六项原创性研究贡献**来解决这一问题:
| # | 贡献 |
|---|---|
| 1 | 首次在单个闭环系统中实现实时 XGBoost 分析器与 DQN 欺骗代理的操作集成 |
| 2 | 使用实时 XGBoost 概率输出 `[P(bot), P(sk), P(adv)]` 作为 DQN 奖励乘数的状态条件奖励函数 |
| 3 | 在蜜罐欺骗策略训练中应用基于好奇心的逐动作内在探索奖励 |
| 4 | 动作协同链:`delay_response → change_filesystem → inject_fake_data` 的级联奖励结构 |
| 5 | 最大的多源蜜罐训练数据集:来自 8 个异构源的 32.9M 平衡样本 |
| 6 | 三版本迭代 DQN 方法论,附带记录的策略崩溃诊断和理论分析 |
## 系统架构
```
Internet (Attackers)
│
▼
┌─────────────────────────────────────────┐
│ AWS VPC — ap-southeast-1 │
│ ┌──────────────────────────────────┐ │
│ │ Public Subnet 10.0.1.0/24 │ │
│ │ ┌──────────┐ ┌─────────────┐ │ │
│ │ │Web Decoy │ │ File Decoy │ │ │
│ │ │(Apache) │ │ (SMB Share) │ │ │
│ │ └──────────┘ └─────────────┘ │ │
│ │ ┌───────────────────────────┐ │ │
│ │ │ NeuroTrap Honeypot │ │ │
│ │ │ Cowrie SSH (:22) │ │ │
│ │ │ Dionaea SMB/MySQL (:445) │ │ │
│ │ │ Web Honeypot (:80) │ │ │
│ │ │ Zeek Network Monitor │ │ │
│ │ └───────────┬───────────────┘ │ │
│ └──────────────┼───────────────── ┘ │
│ │ Filebeat log stream │
│ ┌──────────────▼───────────────────┐ │
│ │ Private Subnet 10.0.2.0/24 │ │
│ │ ┌──────────┐ ┌──────────────┐ │ │
│ │ │ ELK │ │ AI Engine │ │ │
│ │ │ Stack │◄─│ XGBoost + │ │ │
│ │ │ │ │ DQN Agent │ │ │
│ │ └──────────┘ └──────┬───────┘ │ │
│ │ ┌────────────────────▼───────┐ │ │
│ │ │ Grafana Dashboard (:3000) │ │ │
│ │ └────────────────────────────┘ │ │
│ └──────────────────────────────────┘ │
└─────────────────────────────────────────┘
│ FCM Push Alerts
▼
Flutter Mobile App
```
## AI Pipeline
### 阶段 1 — XGBoost 攻击者分析器
XGBoost 分类器处理从原始蜜罐日志中提取的 45 个行为特征,并在每个会话 **50–200 微秒** 内输出实时的 3 分类概率向量。
```
Raw Honeypot Logs
│
▼
Feature Extractor (45 features)
│ session_duration, credential_count, client_fingerprint,
│ port_scan_pattern, payload_entropy, command_sequence...
▼
StandardScaler (fitted on training data)
│
▼
XGBoost Classifier (xgboost_attacker_profiler.ubj — 3.9MB)
│
▼
[P(bot), P(script_kiddie), P(advanced_adversary)]
│
▼
DQN Agent State Input
```
**训练结果:**
| 指标 | 分数 |
|--------|-------|
| Macro F1 | **0.9993** |
| Accuracy | **0.9996** |
| Macro AUC | **1.0000** |
| 最佳轮次 | 313 / 500 (早停) |
| 训练时间 | 2.8 分钟 (RTX 5070 Ti) |
| 训练样本数 | 32,971,269 (SMOTE 平衡) |
### 阶段 2 — DQN 自适应欺骗代理
DQN 代理接收 XGBoost 概率向量作为其状态,并为当前攻击者类别选择最佳的欺骗动作。
**动作空间(7 个动作):**
```
actions = [
"delay_response", # Introduce network delays — effective vs APT
"change_filesystem", # Mutate fake file system responses
"inject_fake_data", # Plant convincing fake credentials/files
"open_fake_service", # Spin up a decoy service — effective vs script kiddie
"close_service", # Remove a service to test attacker reaction
"escalate_logging", # Increase capture verbosity
"do_nothing" # Conserve resources for confirmed bots
]
```
**状态条件奖励函数(新颖贡献):**
```
# 由实时 XGBoost 输出驱动的奖励乘数
if action == "delay_response":
reward += 3.0 if P_adv > 0.5 else -0.8 if P_bot > 0.7 else 0
if action == "do_nothing":
reward += 1.5 if P_bot > 0.7 else -0.5 if P_sk > 0.6 else 0
if action == "open_fake_service":
reward += 2.5 if P_sk > 0.6 else 0
if action == "inject_fake_data":
reward -= 1.5 if P_bot > 0.7 else 0 # Penalise resource waste on bots
```
**DQN 版本演进:**
| 版本 | 高级奖励 | 平均步数 | 情报/会话 | 主要修复 |
|---------|-----------|-----------|---------------|---------|
| v1 (基准) | 12.3 | 3.0 | 9.0 | — |
| v2 | 47.8 | 11.2 | 28.4 | 类别条件采样 |
| v3 (生产) | **283.4** | **33.1** | **65.4** | 状态条件奖励 + 好奇心探索 |
| **提升幅度** | **+2,204%** | **+1,003%** | **+627%** | |
## 蜜罐服务
所有服务部署在隔离桥接网络上的 Docker 容器中:
| 服务 | 工具 | 端口 | 捕获内容 |
|---------|------|------|-----------------|
| SSH 蜜罐 | Cowrie | 22 | 暴力破解尝试、凭据、会话命令、客户端指纹 |
| SMB/MySQL/MSSQL/FTP | Dionaea | 445, 3306, 1433, 21 | 恶意软件下载、漏洞利用尝试、连接元数据 |
| Web 蜜罐 | Custom Flask | 80 | 路径扫描、HTTP 攻击模式、机器人指纹 |
| 网络监控器 | Zeek | — | 数据包级流量分析、协议元数据、异常检测 |
**在线部署周期:** 2026 年 2 月 22 日 – 2026 年 3 月 26 日(33 天),部署于面向公网的 AWS EC2 实例上。
## 数据管道
六个顺序预处理脚本将原始日志转换为机器学习可用的训练数组:
```
01_parse_cowrie.py → 333 SSH sessions from 33 daily JSON log files
02_parse_dionaea.py → 6,851 malware connections from 1.88GB log
03_parse_web_honeypot.py→ 1,986 HTTP requests from Flask honeypot
04_process_public_datasets.py → 25,630,718 records (Kaggle + Mendeley + Zenodo)
05_parse_beth_unsw.py → 46,155 verified APT ground-truth records
06_merge_and_split.py → 32,971,269 SMOTE-balanced training samples
```
**最终数据集:**
| 划分 | 样本数 | 分布 |
|-------|---------|--------------|
| 训练集 | 32,971,269 | 完全平衡 (SMOTE) — 每类 10,990,423 |
| 验证集 | 2,798,402 | 自然分布 |
| 测试集 | 2,798,402 | 自然分布 (留出) |
| **总计** | **38,567,073** | |
**使用的公共数据集:**
- CyberLab Honeypot Dataset (Zenodo) — 为期 9 个月的 Cowrie SSH 捕获
- Cybersecurity Honeypot Attacks (Kaggle / Dionaea)
- Honeypot Data UMM (Mendeley Data)
- BETH Dataset — 已验证的高级攻击者取证数据
- UNSW-NB15 — 专业红队操作
## AWS 基础设施
部署在 AWS ap-southeast-1(新加坡),采用 VPC 双子网架构:
**公共子网 (10.0.1.0/24) — 攻击面:**
| 实例 | 类型 | 角色 |
|----------|------|------|
| NeuroTrap 蜜罐 | t3.medium | Cowrie + Dionaea + Web 蜜罐 + Zeek |
| Web 诱饵 | t3.micro | Apache 虚假公司网站 |
| 文件诱饵 | t3.micro | 包含虚假文档的 SMB 共享 |
**私有子网 (10.0.2.0/24) — 受保护的后端:**
| 实例 | 类型 | 角色 |
|----------|------|------|
| AI 引擎 | t3.large (2vCPU/8GB) | FastAPI 推理,XGBoost + DQN,欺骗控制器 |
| ELK Stack | t3.medium | Elasticsearch, Logstash, Kibana — 日志规范化 |
| Grafana 仪表盘 | t3.small | 实时攻击者可视化 |
## 移动端仪表盘
跨平台 Flutter 移动应用程序将实时威胁情报直接交付给安全团队:
**警报分类:**
- 🟢 **检测到机器人** — 静默通知
- 🟡 **脚本小子** — 报警声提示
- 🔴 **高级攻击者 (APT)** — 严重 全屏警报并伴随提示音
**功能:**
- 带有 XGBoost 置信度分数的实时会话仪表盘
- DQN 动作历史和欺骗决策日志
- 攻击者地理来源地图和情报捕获计数器
- 带有攻击者分类明细的警报时间线
- Firebase Cloud Messaging (FCM) 实时推送通知
## 技术栈
**AI 与机器学习:**
```
XGBoost 2.0.3 — Attacker profiler (GPU-accelerated, CUDA 12.8)
PyTorch 2.12.0 nightly — DQN training (Blackwell sm_120 support)
scikit-learn 1.5.0 — Preprocessing, SMOTE, StandardScaler
imbalanced-learn 0.12.3— SMOTE class balancing
MLflow 2.13.0 — Experiment tracking
```
**蜜罐与网络:**
```
Cowrie — SSH/Telnet honeypot
Dionaea — Malware capture honeypot
Custom Flask — Web honeypot
Zeek — Network-level traffic analysis
```
**基础设施与部署:**
```
AWS EC2 — ap-southeast-1 (Singapore)
Docker + Compose — Container orchestration
FastAPI — Real-time inference API
ELK Stack — Log ingestion and normalisation
Grafana — Visualisation dashboard
Filebeat — Log shipping
Firebase FCM — Mobile push notifications
```
**移动端:**
```
Flutter — Cross-platform mobile dashboard
Firebase Realtime DB — Live data sync
```
**开发环境:**
```
Ubuntu 24.04 LTS (WSL2)
Intel Core Ultra 9 285K — 24 cores
NVIDIA RTX 5070 Ti 16GB VRAM — Blackwell sm_120
32GB DDR5 RAM (24GB WSL2 allocated)
Python 3.12.3 in isolated venv
```
## 项目结构
```
neurotrap/
├── preprocessing/
│ ├── 01_parse_cowrie.py
│ ├── 02_parse_dionaea.py
│ ├── 03_parse_web_honeypot.py
│ ├── 04_process_public_datasets.py
│ ├── 05_parse_beth_unsw.py
│ └── 06_merge_and_split.py
├── models/
│ ├── xgboost_attacker_profiler.ubj # Primary inference model (3.9MB)
│ ├── xgboost_attacker_profiler.json # Human-readable model
│ ├── xgboost_metadata.json
│ ├── dqn_v3_best.pth # Production DQN (episode 55,000)
│ ├── dqn_v3_final.pth
│ └── dqn_v3_metadata.json
├── training_data/
│ ├── scaler.joblib # StandardScaler (apply before inference)
│ ├── feature_columns.joblib # 45 feature names in correct order
│ └── class_weights.joblib
├── results/
│ ├── classification_report.txt
│ ├── confusion_matrix.png
│ ├── feature_importance.png
│ ├── roc_curves.png
│ ├── training_curves.png
│ ├── dqn_v3_training.png
│ └── dqn_v3_policy.txt
├── inference/
│ └── api.py # FastAPI real-time inference server
├── honeypot/
│ ├── docker-compose.yml
│ ├── cowrie/
│ ├── dionaea/
│ └── web-honeypot/
├── aws/
│ └── neurotrap-ids.sh # AWS infrastructure setup script
├── dashboard/
│ └── flutter_app/ # Flutter mobile application
├── docs/
│ └── assets/
└── README.md
```
## 结果
### XGBoost 攻击者分析器
| 类别 | Precision | Recall | F1 |
|-------|-----------|--------|----|
| 自动化机器人 | 0.9998 | 0.9999 | 0.9999 |
| 脚本小子 | 0.9991 | 0.9989 | 0.9990 |
| 高级攻击者 | 0.9992 | 0.9994 | 0.9993 |
| **宏平均 (Macro Average)** | **0.9994** | **0.9994** | **0.9993** |
- 推理延迟:每个会话 **50–200 微秒**
- 模型大小:**3.9MB**(二进制 .ubj 格式)
- 训练时间:在 NVIDIA RTX 5070 Ti 上耗时 **2.8 分钟**
### DQN 自适应欺骗代理 (v3)
| 攻击者类别 | 奖励 | 平均步数 | 捕获情报量 |
|---------------|--------|-----------|----------------|
| 自动化机器人 | 18.2 | 8.4 | 12.1 |
| 脚本小子 | 94.7 | 19.6 | 38.3 |
| 高级攻击者 | **283.4** | **33.1** | **65.4** |
## 引用
如果您在学术或研究工作中使用、引用或基于 NeuroTrap 进行开发,请按以下格式引用:
**APA:**
```
Samarasinghe, B. K. (2026). NeuroTrap: AI-Powered Smart Honeypot Detection System
for Adaptive Intrusion Detection and Attacker Profiling [Final Year Project].
University of Plymouth. https://github.com/[your-username]/neurotrap
```
**BibTeX:**
```
@misc{samarasinghe2026neurotrap,
author = {Samarasinghe, Bedde K.},
title = {NeuroTrap: AI-Powered Smart Honeypot Detection System
for Adaptive Intrusion Detection and Attacker Profiling},
year = {2026},
publisher = {GitHub},
url = {https://github.com/[your-username]/neurotrap},
note = {BSc (Hons) Computer Security, University of Plymouth,
PUSL3190 Final Year Project}
}
```
## 许可证
版权所有 © 2026 Bedde K Samarasinghe。保留所有权利。
本项目基于 **Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License** 授权。
[](https://creativecommons.org/licenses/by-nc-nd/4.0/)
您可以在注明出处的前提下出于非商业目的**分享**本作品。未经作者明确的书面许可您**不得**将其用于商业用途、分发修改版本或将其整合到其他项目中。
有关完整条款,请参阅 [LICENSE](LICENSE) 文件.
NeuroTrap — 不断进化的安全防线
计算机安全荣誉学士 (BSc Hons) — 普利茅斯大学 — 2026
标签:Apex, attacker分类, AWS, BOF, CUDA, DPI, DQN, IP 地址批量处理, PyTorch, Vectored Exception Handling, XGBoost, XXE攻击, 人工智能, 内容过滤, 凭据扫描, 威胁情报, 安全大数据, 安全系统, 开发者工具, 异常检测, 强化学习, 攻击者画像, 智能安全, 智能蜜罐, 机器学习, 欺骗防御, 深度学习, 用户模式Hook绕过, 网络安全, 自适应蜜罐, 自适应防御, 蜜罐系统, 请求拦截, 越狱测试, 逆向工具, 隐私保护