adlbrhm/aegisgrid

GitHub: adlbrhm/aegisgrid

面向 ICS/SCADA 环境的多层蜜罐威胁情报平台,通过模拟能源基础设施协议捕获攻击流量,并利用机器学习实时分类威胁,配合可视化仪表板呈现攻击态势。

Stars: 3 | Forks: 0

# 🛡️ AegisGrid — 威胁情报平台 **适用于 ICS/SCADA 环境的企业级欺骗与威胁情报平台** [![状态](https://img.shields.io/badge/Status-UNDER%20DEVELOPMENT-FF8C00?style=for-the-badge&logo=github)](https://github.com/adlbrhm/aegisgrid) [![Python](https://img.shields.io/badge/Python-3.12+-3776AB?style=for-the-badge&logo=python&logoColor=white)](https://python.org) [![Flask](https://img.shields.io/badge/Flask-3.1.3-000000?style=for-the-badge&logo=flask)](https://flask.palletsprojects.com) [![Scikit-Learn](https://img.shields.io/badge/ML-Scikit--Learn-F7931E?style=for-the-badge&logo=scikit-learn&logoColor=white)](https://scikit-learn.org) [![许可证](https://img.shields.io/badge/License-MIT-2EA043?style=for-the-badge)](https://github.com/adlbrhm/aegisgrid/blob/main/LICENSE)
## 🎯 为什么选择 AegisGrid? 关键基础设施——特别是能源部门——是高级持续性威胁的主要目标。操作技术和工业控制系统 无法在不面临严重停机风险的情况下进行常规补丁修复。 **AegisGrid** 引入了一个**低交互网络欺骗平台**,用于模拟存在漏洞的能源基础设施。通过安全地实时捕获、分类和映射恶意流量,防御者可以在不暴露真实生产资产的情况下获得主动威胁情报。 ## ✨ 主要特性 | 功能 | 描述 | | :--- | :--- | | 🔌 **多协议模拟** | 并发运行 SCADA (8888)、HTTP (8080) 和伪 SSH (2222) 蜜罐。 | | 🧠 **两阶段分类器** | 通过正则表达式进行确定性攻击识别,并由随机森林机器学习模型提供支持以进行异常检测。 | | 🌍 **实时 IP 地理定位** | 通过 `ip-api.com` 自动解析攻击者来源(国家、城市、ISP、坐标)。 | | 📊 **实时 SOC 仪表板** | 高性能、暗色主题的 Web 界面,具有 Chart.js 分析功能和动画 SVG 世界地图。 | | 💾 **高并发数据库** | 以 WAL (预写式日志) 模式运行的 SQLite 可确保在遭受大规模攻击负载时不会发生阻塞。 | | 🔒 **企业级安全** | 内置限流、HTTP Basic Auth、严格的 CSP 标头以及零 DOM 抖动架构。 | ## 🏗️ 架构概述 系统解耦为两个并发执行的主要域: 1. **欺骗引擎(后台):** 监听目标端口,拦截流量,对有效载荷进行分类,解析地理位置,并记录到数据库。 2. **情报仪表板(前台):** 一个安全的基于 Flask 的 REST API 和 SPA 前端,可实时可视化数据库记录。 ``` [Threat Actors] ──TCP──► [Multi-Port Listener] ──► [Attack Classifier] │ (Regex + ML) ▼ │ [ip-api.com] ◄──HTTP─── [GeoIP Resolution] ◄─────────────────┘ │ ▼ [SOC UI / Browser] ◄─── [Flask REST API] ◄─── [SQLite Db (WAL)] ``` ## 🚀 快速开始与安装 **前置条件:** Python 3.12+ 和 Git。 ``` # 克隆仓库 git clone https://github.com/adlbrhm/aegisgrid.git cd aegisgrid # 初始化 Virtual Environment python -m venv venv source venv/bin/activate # Linux/Mac venv\Scripts\activate # Windows # 安装 Dependencies pip install -r requirements.txt # 训练 ML Model(首次运行必需) python ml/train_model.py ``` ## 💻 Windows 本地演示 ``` :: 1. Set password set AEGISGRID_PASSWORD=demo123 :: 2. Launch the full system (honeypot engine + dashboard) python run.py ``` 仪表板:**http://127.0.0.1:5000** (登录:`admin` / `demo123`) ``` :: 3. In a second terminal — run demo attack scripts python demo\scanner.py 127.0.0.1 python demo\bruteforce.py 127.0.0.1 ``` ## 🛡️ 生产环境部署 (AWS EC2 免费套餐) AegisGrid 的设计开销极低,非常适合 **AWS EC2 免费套餐** Ubuntu 22.04+ 实例。 ``` # 安装 Dependencies(兼容 Python 3.12) pip install -r requirements.txt # 训练 ML Model(首次运行必需) python3 ml/train_model.py # 设置生产凭据(强制 — 未设置应用拒绝启动) export AEGISGRID_PASSWORD="your-secure-password" export FLASK_ENV=production # 启动完整系统 python3 run.py ``` 仪表板:**http://EC2_PUBLIC_IP:5000** (登录:`admin` / 你的密码) **AWS 安全组入站规则:** | 端口 | 来源 | 目的 | | :--- | :--- | :--- | | 22 | 仅我的 IP | SSH 管理员访问 | | 5000 | 仅我的 IP | SOC 仪表板 | | 8888 | 0.0.0.0/0 | SCADA 蜜罐 | | 8080 | 0.0.0.0/0 | HTTP 蜜罐 | | 2222 | 0.0.0.0/0 | 伪 SSH 蜜罐 | ## 🎭 演示攻击脚本 通过在本地或针对你的 EC2 实例模拟攻击来验证仪表板: ``` # Windows(本地) python demo\scanner.py 127.0.0.1 python demo\bruteforce.py 127.0.0.1 # Ubuntu EC2(远程 — 替换为你的 EC2 公网 IP) python3 demo/scanner.py python3 demo/bruteforce.py ``` 这两个脚本都接受目标 IP 作为可选的 CLI 参数,默认为 `127.0.0.1`。 ## 🔒 安全亮点 该平台在发布前经过了严格的安全强化: - **零 XSS 风险:** 完全移除了 `innerHTML`;DOM 使用安全的 `textContent` 构建。 - **API 保护:** `Flask-Limiter` 主动对所有端点进行限流。 - **强制认证:** 硬性故障保护确保仪表板在没有配置 `AEGISGRID_PASSWORD` 的情况下永远不会启动。 - **时序安全的身份验证:** 凭证通过 `hmac.compare_digest` 进行验证,以防止时序预言机攻击。 - **安全标头:** 强制执行严格的 CSP、HSTS 和 X-Frame-Options。 - **高可用性:** SQLite 在 `WAL` 模式下运行,以防止在大量并发攻击期间发生数据库锁定。 ## 📁 仓库结构 ``` aegisgrid/ ├── dashboard/ # Flask API and SOC Web Interface ├── docs/ # Architecture (HLD & LLD) Documentation ├── demo/ # Local attack simulation scripts ├── honeypot/ # Core Socket Listeners & Database Logic ├── ml/ # Random Forest Classification Model ├── requirements.txt # Python Dependencies └── run.py # System entrypoint (honeypot + dashboard) ``` ## 📚 学术文档 完整的架构和结构规范位于 `docs/` 目录中: - [**高级设计 (HLD.md)**](./docs/HLD.md):系统架构、数据流、组件设计和集成逻辑。 - [**低级设计 (LLD.md)**](./docs/LLD.md):API 路由、数据库模式、具体的模块功能和安全实现。 - [**最终报告 (FinalReport.md)**](./docs/FinalReport.md):详述方法论和项目成果的完整学术提交材料。 ## ⚠️ 免责声明 本工具专为学术研究和授权实验室环境设计。**在**没有明确的管理授权和适当的网络隔离的情况下,**请勿**在公共或企业网络上部署监听蜜罐。 ## 🎓 作者与致谢 - **学生工程师:** Adhil P - **指导教师:** Munisah 女士 - **行业导师:** Shashank 先生 - **所属机构:** Yenepoya 艺术、科学、商业与管理学院 - **学位:** 云计算、网络安全与道德黑客 BCA

最初作为项目 PRJN26-212 开发
标签:Apex, APT防御, BOF, Chart.js, CISA项目, Flask, HTTP/HTTPS抓包, HTTP仿真, ICS, IP地理定位, NTLM Relay, PKINIT, Python, SCADA, Scikit-Learn, SOC仪表盘, SSH仿真, 哈希传递, 多协议仿真, 威胁分类, 威胁情报, 密码管理, 工控安全, 开发者工具, 异常检测, 态势感知, 插件系统, 攻防研究, 数据可视化, 无后门, 机器学习, 欺骗防御, 网络安全, 网络安全数据可视化, 网络流量分析, 能源基础设施, 自定义脚本, 蜜罐, 证书利用, 调试辅助, 逆向工具, 防御绕过, 随机森林, 隐私保护