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), 流量监控, 游戏论, 纳什均衡, 网络安全, 网络防御体系, 蜜罐技术, 诱捕系统, 逆向工具, 隐私保护