This-is-Akshay5/aib-shield

GitHub: This-is-Akshay5/aib-shield

一个结合 AI 实时检测与区块链审计的入侵防御系统,解决流量可见性与日志可信问题。

Stars: 0 | Forks: 0

# AIB Shield — AI + 区块链入侵防御系统 ## 功能 - **AI 检测** — 随机森林分类器(scikit-learn)实时将每个网络数据包分类为正常或恶意 - **区块链日志** — 每个 AI 决策经过哈希(SHA-256)并通过 Ganache + Solidity 智能合约不可变存储到私有以太坊区块链 - **实时流量** — 通过 Scapy 捕获实时数据包,重放 NSL-KDD 数据集,或使用模拟流量 - **告警系统** — 邮件告警(Gmail)、浏览器推送通知以及仪表板中的威胁提示 - **登录告警** — 每次登录时向用户发送邮件通知 - **用户认证** — 使用 SQLite 用户数据库进行注册/登录,支持每位用户的邮件告警 - **深色/浅色主题** — 完整的主题切换 - **自动登出** — 60 秒无活动后自动锁定会话 - **攻击模拟器** — 演示模式(仅管理员) - **实时仪表板** — 实时事件流、流量图表、区块链账本、IP 黑名单 ## 项目结构 ``` ai-ips/ ├── main.py # Core IPS runner (CLI mode) ├── dashboard.py # Flask web dashboard (main file) ├── run.py # One-click launcher ├── traffic_capture.py # Live / NSL-KDD / simulated traffic engine ├── alert_system.py # ⚠️ NOT in repo — see setup below ├── user_db.py # ⚠️ NOT in repo — see setup below ├── alert_system.template.py # Template — copy and configure ├── user_db.template.py # Template — copy and configure ├── requirements.txt # Python dependencies ├── ai/ │ ├── train_model.py # Train and save Random Forest model │ ├── detector.py # Real-time AI classification engine │ └── model.pkl # ⚠️ NOT in repo — generated locally ├── blockchain/ │ ├── contracts/IPSLog.sol # Solidity smart contract │ ├── migrations/ # Truffle deployment scripts │ └── truffle-config.js # Ganache network config ├── integration/ │ └── blockchain_logger.py # Web3.py bridge to smart contract └── data/ ├── users.db # ⚠️ NOT in repo — generated locally └── KDDTrain+.txt # ⚠️ NOT in repo — download separately ``` ## 设置(Windows) ### 1. 安装前准备 请先安装以下组件: - [Python 3.11](https://python.org/downloads) — 请勾选 **“Add to PATH”** - [Node.js v18 LTS](https://nodejs.org) ``` npm install -g ganache truffle ``` ### 2. 克隆仓库 ``` git clone https://github.com/YOUR_USERNAME/aib-shield.git cd aib-shield ``` ### 3. 安装 Python 依赖 ``` pip install -r requirements.txt ``` ### 4. 配置凭据 **步骤 A** — 复制模板文件: ``` copy alert_system.template.py alert_system.py copy user_db.template.py user_db.py ``` **步骤 B** — 编辑 `alert_system.py`: ``` GMAIL_SENDER = "your_gmail@gmail.com" GMAIL_PASSWORD = "xxxx xxxx xxxx xxxx" # 16-char App Password ``` **步骤 C** — 编辑 `user_db.py`: ``` ADMIN_EMAIL = "your_gmail@gmail.com" ``` ### 5. 训练 AI 模型 ``` python ai\train_model.py ``` ### 6. 运行全部服务 ``` python run.py ``` 此操作将自动: - 启动 Ganache(本地区块链) - 部署智能合约 - 启动仪表板 - 在浏览器中打开 `http://localhost:5000` ## 默认登录 | 用户名 | 密码 | 角色 | |---|---|---| | `admin` | `shield123` | 管理员 | | `analyst` | `ips2024` | 分析师 | 或通过 **注册** 页面创建自己的账户。 ## 流量来源 系统会自动选择最佳可用来源: | 优先级 | 来源 | 启用方式 | |---|---|---| | 1st | 实时数据包捕获 | 以管理员身份运行 + `pip install scapy` | | 2nd | NSL-KDD 数据集 | 将 `KDDTrain+.txt` 放入 `data/` 文件夹 | | 3rd | 模拟流量 | 默认可用,无需配置 | **下载 NSL-KDD 数据集:** [kaggle.com/datasets/hassan06/nslkdd](https://www.kaggle.com/datasets/hassan06/nslkdd) ## 演示 — 模拟攻击 1. 以 `admin` 登录 2. 点击导航栏中的 **Simulate Attack** 3. 选择攻击类型:**DoS / Probe / R2L / U2R** 4. 观察仪表板检测、阻止、记录到区块链并发送告警 ## 🛠 技术栈 | 工具 | 用途 | |---|---| | Python 3.11 | 核心语言 | | scikit-learn | 随机森林 AI 模型 | | Flask | Web 仪表板 | | Ganache | 本地以太坊区块链 | | Solidity | 智能合约(IPSLog.sol) | | Truffle | 合约部署 | | Web3.py | Python ↔ 区块链桥接 | | Scapy | 实时数据包捕获 | | SQLite | 用户数据库 | | Chart.js | 实时流量图表 | ## 安全说明 以下文件通过 `.gitignore` 从本仓库排除,**切勿提交**: | 文件 | 原因 | |---|---| | `alert_system.py` | 包含 Gmail 凭据 | | `user_db.py` | 包含管理员邮箱 | | `data/users.db` | 包含注册用户数据 | | `ai/model.pkl` | 大型二进制文件 — 请本地重新生成 | | `data/KDDTrain+.txt` | 大型数据集 — 请从 Kaggle 下载 | | `blockchain/build/` | 生成的构建产物 — 运行 `truffle migrate` | ## 许可证 MIT 许可证 — 可自由使用、修改和分发。 *AIB Shield — AI + 区块链入侵防御系统*
标签:AI入侵检测, Ganache, IP黑名单, NSL-KDD数据集, Scapy, Scikit-learn, SHA-256, Solidity智能合约, SQLite用户认证, 主题切换, 亮色模式, 人工智能安全, 以太坊区块链, 仪表盘告警, 会话超时, 区块链审计, 去中心化日志, 合规性, 实时仪表盘, 实时威胁检测, 攻击模拟器, 暗色模式, 流量捕获, 浏览器推送通知, 混合安全系统, 登录通知, 网络入侵防御系统, 网络拓扑, 自动登出, 逆向工具, 邮件告警, 随机森林