tanmayshinde197/honeypot-game-theory
GitHub: tanmayshinde197/honeypot-game-theory
这是一个结合蜜罐技术与博弈论的多层网络安全系统,旨在通过诱捕与数学模型来检测 DDoS 攻击并分析恶意软件。
Stars: 0 | Forks: 0
# 基于蜜罐与博弈论的网络安全系统
一个多层网络安全系统,结合了蜜罐技术与博弈论来检测、缓解和防御 DDoS 攻击,并利用 LaikaBoss 框架进行恶意软件检测。
## 功能简介
该系统提供三层网络防御:
1. **蜜罐服务器** - 在可配置端口上开放虚假服务以吸引攻击者并记录其活动
2. **DDoS 检测与缓解** - 采用双层博弈论方法来检测正在进行的攻击并计算最佳响应
3. **恶意软件检测** - 集成 LaikaBoss 框架与自定义 YARA 规则,实时扫描下载的文件
## 架构
```
┌─────────────────────────────────────────────────────┐
│ Honeypot System │
├──────────────┬──────────────────┬───────────────────┤
│ Honeypot │ DDoS Detection │ Malware Detection │
│ Server │ & Mitigation │ │
│ │ │ │
│ main.py │ Layer 1: │ LaikaBoss │
│ server.py │ capture.py │ Framework │
│ │ attack.py │ │
│ Opens fake │ │ YARA Rules │
│ services, │ Layer 2: │ for signature │
│ logs all │ gt.py (Nash │ based detection │
│ connections │ Equilibrium) │ │
│ │ │ Zeek IDS for │
│ │ iptables for │ passive traffic │
│ │ prevention │ monitoring │
├──────────────┴──────────────────┴───────────────────┤
│ MySQL Database │
│ (Connection logs, blacklists) │
└─────────────────────────────────────────────────────┘
```
## 工作原理
### 蜜罐服务器 (`Honeypot and Malware/`)
- `main.py` 使用用户指定的 IP 和端口启动蜜罐
- `server.py` 在每个端口上打开 TCP 套接字,通过三次握手接受连接,记录攻击者的 IP/端口/数据,并在关闭前发送 "Access denied"
- 多线程:每个连接在单独的线程中处理
- 4 秒超时以防止蜜罐本身遭受 DoS 攻击
- Zeek IDS 会自动启动进行被动网络监控
### DDoS 检测与缓解 (`DDOS/`)
**第 1 层 - 检测** (`capture.py`, `attack.py`)
- 原始套接字数据包捕获,从零开始解析 Ethernet、IPv4、TCP、UDP 和 ICMP 头部(不使用 scapy)
- 将所有数据包元数据(源/目的 IP、MAC、端口、协议、序列号、时间戳)记录到 MySQL
- `attack.py` 分析连接模式:每个 IP 的数据包速率、协议类型和时间窗口
- 根据阈值将攻击分类为高速率(>2100 packets/20sec)或低速率
**第 2 层 - 博弈论响应** (`gt.py`)
- 使用纳什均衡(通过 `nashpy` 库)对攻击者与防御者的策略进行建模
- 基于以下因素计算收益矩阵:
- 每个 IP 的带宽消耗
- 连接频率(活动向量)
- 攻击类型(高速率 vs 低速率)
- 攻击者和防御者的效用值
- 决定最佳操作:**阻止 IP**(高速率)或 **丢弃并发送 RST 数据包**(低速率)
**预防** (`iptablesscript.sh`, `ddosscript.sh`)
- 在检测到攻击后部署全面的 iptables 规则集
- 恶意 TCP 标志检测(SYN+FIN, SYN+RST, XMAS, NULL 扫描)
- ICMP 泛洪预防(限制为 1 ping/second)
- 连接状态跟踪(丢弃来自 WAN 的新建/无效连接)
- `ddosscript.sh` 监控活动连接,自动阻止超过阈值的 IP
### 恶意软件检测
- 通过 shell 脚本 (`script_003_v3.sh`) 集成 LaikaBoss 框架
- 文件下载时自动扫描(监控 `wget` 进程)
- 用于基于签名的检测的自定义 YARA 规则
- 成功测试了以下样本:Petya 勒索软件、Emotet 恶意软件、ZIP 中的恶意 PDF、恶意电子邮件
- Zeek IDS 日志保存在 `/usr/local/zeek/logs` 以供进一步分析
## 技术栈
| 技术 | 用途 |
|-----------|---------|
| Python 3.8 | 蜜罐服务器、数据包捕获、博弈论引擎 |
| MySQL 8.0 | 连接日志、黑名单存储 |
| nashpy | 纳什均衡计算 |
| Raw Sockets | 数据包捕获与协议解析 |
| LaikaBoss | 基于文件的恶意软件扫描(使用 YARA 规则) |
| Zeek IDS | 被动网络流量监控 |
| iptables | 用于攻击防御的防火墙规则 |
| Bash | 集成脚本、DDoS 监控 |
| VMware | 测试环境(Ubuntu + Kali 虚拟机) |
## 文件结构
```
├── Honeypot and Malware/
│ ├── main.py # Entry point - starts honeypot
│ ├── server.py # Multi-threaded TCP honeypot server
│ └── script_003_v3.sh # LaikaBoss + Zeek integration
├── DDOS/
│ ├── capture.py # Raw socket packet capture → MySQL
│ ├── attack.py # Layer 1: attack detection by thresholds
│ ├── gt.py # Layer 2: Nash Equilibrium game theory
│ ├── final.py # Orchestrator (runs capture + GT in parallel)
│ ├── dbs.sql # MySQL schema for packet logs + blacklist
│ ├── ddosscript.sh # Connection monitoring + auto-block
│ └── iptablesscript.sh # Firewall hardening rules
└── requirements.txt
```
## 安装说明
```
# 安装依赖项
pip install -r requirements.txt
# 将数据库凭据设置为环境变量
export DB_HOST=localhost
export DB_USER=root
export DB_PASS=yourpassword
# 创建数据库
mysql -u root -p < DDOS/dbs.sql
# 启动 honeypot(使用 IP 和端口指定配置)
python3 Honeypot\ and\ Malware/main.py config.ini
# 启动 DDoS 检测(在单独的 terminal 中)
python3 DDOS/final.py
```
## 环境变量
DDoS 检测脚本 (`capture.py`, `attack.py`, `gt.py`) 从环境变量中读取 MySQL 凭据:
| 变量 | 描述 | 用于 |
|----------|-------------|---------|
| `DB_HOST` | MySQL 服务器主机名 | `capture.py`, `attack.py`, `gt.py` |
| `DB_USER` | MySQL 用户名 | `capture.py`, `attack.py`, `gt.py` |
| `DB_PASS` | MySQL 密码 | `capture.py`, `attack.py`, `gt.py` |
数据库名称 `test_db` 在 `DDOS/dbs.sql` 中定义,并在 Python 文件中被引用。
## 测试结果
| 测试 | 攻击类型 | 结果 |
|------|------------|--------|
| 高速率 DDoS (hping) | TCP 泛洪 | 10秒内检测到,IP 已列入黑名单 |
| 低速率 DDoS | 慢速数据包 | 已检测到,数据包通过 RST 丢弃 |
| Petya 勒索软件 | 恶意软件下载 | 通过 YARA 规则检测到 |
| Emotet 恶意软件 | 恶意软件下载 | 添加 YARA 规则后检测到 |
| ZIP 中的恶意 PDF | 嵌套恶意软件 | 添加分发逻辑后检测到 |
| 缓解后攻击 | 重复 DDoS | 被 iptables 阻止("Host Unreachable") |
标签:CISA项目, DAST, DDoS检测, DDoS缓解, DDoS防御, DNS信息、DNS暴力破解, iptables, IP 地址批量处理, LaikaBoss, Rootkit, YARA规则, Zeek, 多层防御, 威胁情报, 应用安全, 开发者工具, 恶意软件分析, 搜索语句(dork), 流量监控, 游戏论, 纳什均衡, 网络安全, 网络防御体系, 蜜罐技术, 诱捕系统, 逆向工具, 隐私保护