Parikshithurs/Two-layer-Intrusion-Detection-System-For-Smartfarm
GitHub: Parikshithurs/Two-layer-Intrusion-Detection-System-For-Smartfarm
该系统针对智慧农业 IoT 环境,结合网络层规则检测与传感器数据机器学习异常检测,同时识别外部网络攻击和内部行为威胁。
Stars: 0 | Forks: 0
🌾 智慧农场入侵检测系统 (SmartFarm-IDS)
## 🔐 概述
SmartFarm-IDS 是一个专为**智慧农业和基于 IoT 的农业环境**设计的**混合入侵检测系统 (IDS)**。
它结合了**网络层攻击检测(Layer 1)**和**针对传感器数据的行为异常检测(Layer 2)**,以提供全面的安全防护。
该系统能够检测**外部网络攻击**(如端口扫描和 DoS 攻击),以及由传感器故障或内部威胁引起的**内部异常**。
## 🧠 系统架构
### 🔹 Layer 1:基于网络的 IDS
监控实时网络流量并检测外部攻击。
**检测到的攻击:**
- 端口扫描(SYN 扫描行为)
- 拒绝服务攻击
- 黑名单 IP 访问
- 可疑的 ICMP 活动
**使用的技术:**
- Scapy(数据包嗅探)
- 基于规则的检测
- SQLite 数据库
- Windows 防火墙(可选的自动拦截)
- Kali Linux(攻击模拟)
### 🔹 Layer 2:行为 IDS
使用机器学习分析传感器遥测数据。
**检测到的异常:**
- 传感器数值突然飙升
- 逐渐漂移
- 传感器卡死
- 异常频率模式
- 内部威胁
**机器学习模型:**
- Isolation Forest(无监督异常检测)
**模拟的传感器:**
- 温度
- 湿度
- 土壤湿度
- 光照
- pH
- CO₂
## 📂 项目结构
```
smartfarm-ids/
├── src/
│ ├── netids/ # Layer 1 Network IDS
│ ├── behavioral/ # Layer 2 Behavioral IDS
│ ├── dashboard/ # Web Dashboard
│ └── run_ids.py # Auto IDS runner
│
├── telemetry.db # Sensor data
├── smartfarm_ids.db # Alerts DB
├── data/ # PCAP files
├── venv/ # Virtual environment
└── README.md
```
## 🛠️ 技术与工具
| 类别 | 工具 |
|------|------|
| 编程语言 | Python |
| 网络抓包 | Scapy |
| 机器学习 | Scikit-learn |
| 数据处理 | NumPy, Pandas |
| 模型持久化 | Joblib |
| 数据库 | SQLite |
| 仪表板 | Flask, Flask-SocketIO |
| 系统监控 | Psutil |
| 攻击者操作系统 | Kali Linux |
| 宿主操作系统 | Windows |
## 🚀 安装与设置
### 1️⃣ 创建虚拟环境
python -m venv venv
2️⃣ 激活环境
venv\Scripts\Activate
3️⃣ 安装依赖项
pip install scapy flask flask-socketio sqlalchemy pandas scikit-learn joblib psutil
▶️ 系统运行方式
🔹 运行 Layer 1(网络 IDS)
python src/run_ids.py
自动选择活动的 Wi-Fi 接口并开始实时数据包捕获。
🔹 运行传感器模拟器
python src/behavioral/sensor_simulator.py
生成带有随机异常的真实农场传感器数据。
🔹 训练行为模型
python src/behavioral/build_features_iforest.py
python src/behavioral/train_iforest.py
🔹 运行 Layer 2(行为 IDS)
python -m behavioral.realtime_behavioral_ids
🔹 运行仪表板
python -m src.dashboard.app
打开浏览器:
http://localhost:5000
🧪 Kali Linux 测试
在 Virtual Box 中运行 Kali Linux
从 Kali 端:
运行 attack.py,填写源 IP(Virtual Box 中的 Kali Linux)和目标 IP(Windows 宿主机)
警报将出现在:
终端
数据库
仪表板
📊 输出
实时攻击警报
统一的警报数据库
实时仪表板可视化
标签:Apex, Python, 入侵检测系统, 安全数据湖, 异常检测, 插件系统, 无后门, 智慧农业, 机器学习, 物联网安全, 网络流量分析, 逆向工具, 防御绕过