deadislove/guardian_ids
GitHub: deadislove/guardian_ids
一款面向物联网生态的模块化入侵检测系统,通过构建自适应行为基线实现实时流量监控与自动威胁阻断。
Stars: 0 | Forks: 0
# Guardian-IDS:入侵检测系统
Guardian-IDS 是一个专为 IoT 生态系统(如智能家居环境)设计的精密、模块化入侵检测系统 (IDS)。它实时监控网络流量,为设备构建行为基线,并自动缓解诸如 DDoS 攻击、端口扫描和横向移动等威胁。
## 🏗️ 项目结构
```
guardian-ids/
├── main_guardian.py # Entry point - The IDS Control Console
├── config/ # ✨ NEW: Configuration files (YAML/JSON)
│ └── settings.yaml # Thresholds, Whitelists, and OS settings
├── analyzer/
│ ├── traffic_profiler.py # Traffic profiling (Adaptive Baselines)
│ ├── anomaly_detector.py # Detection algorithms (Threshold/Pattern)
│ └── threat_signatures.py # Malicious signature library
├── core/
│ ├── packet_sniffer.py # OS-Aware Scapy Sniffer
│ ├── alert_manager.py # Alert levels & Notifications
│ └── logger.py # Standard & JSON Logging
├── mitigation/
│ ├── firewall_mimic.py # Firewall blocking simulation
│ └── device_quarantine.py # Device isolation workflow
├── logs/ # JSON/Text Security Audit Logs
├── docs/ # ✨ NEW: Documentation & Screenshots
├── tests/
│ └── traffic_injector.py # Malicious traffic simulator
└── requirements.txt
```
## 🌟 功能列表
### A. 自适应流量分析
- 行为白名单:自动学习 IoT 设备的“正常”行为。(例如,一个智能灯泡应该只消耗约 10KB/min 的流量,并与特定的 Cloud IP 通信)。
- 阈值监控:检测突发的流量激增。如果一个灯泡开始以 200Kbps 的速度传输数据,系统会将其标记为潜在的 DDoS 节点。
### B. 恶意特征检测
- 反端口扫描:检测受损设备是否正在针对 Gateway 或邻近的 IoT 设备执行横向移动扫描。
- 协议异常检测:识别与设备类型不符的流量(例如,智能烤面包机发起 SSH 或 Telnet 请求)。
### C. 主动审计与安全扫描
- 被动触发扫描:当检测到来自特定主机的异常流量时,自动通过 SecurityScanner 发起深度端口扫描。
- 动态安全评分:结合流量风险和漏洞扫描结果,为每台设备提供实时的健康评分。
### D. 自动修复与隔离
- 网络隔离:一旦设备被认定为“受损”,它会在仪表板上被视觉标记,并从网络上“虚拟切断”以防止进一步感染。
- SOC 集成:生成行业标准 JSON 安全日志,随时可以导出到任何安全运营中心 (SOC) 或 SIEM(如 ELK stack)。
## 🛠️ 安装与设置
### 前置条件
- Python 3.8+
- Root/管理员权限:捕获原始数据包(BPF/Raw Sockets)所需。
### 安装依赖
```
pip install scapy cryptography pyyaml requests psutil
```
### 快速开始
1. 启动 IDS 控制台:
```
sudo python main_guardian.py
```
2. 启动模拟攻击(在单独的终端中):
```
sudo python -m tests.traffic_injector
```
## 📝 macOS 用户使用说明
由于 macOS 内核限制(BPF 架构),当监控回环接口 (lo0) 时,BPF 过滤器可能会丢弃具有欺骗性源 IP 的数据包。出于测试目的,建议监控物理接口 (en0) 或在 PacketSniffer 配置中使用 filter_str=None。
### 跨平台使用说明
- Linux (Ubuntu/Debian/CentOS):
- 接口:使用 eth0, wlan0, 或 any。
- 回环:lo。
- 性能:使用 filter="ip" 性能最佳。Linux 原生且高效地处理 BPF 过滤器。
- macOS (Darwin):
- 接口:使用 en0 (Wi-Fi) 或 en1。
- 回环:lo0。
- 限制:由于 BSD 风格的封装,filter="ip" 可能会丢弃本地回环数据包。如果在 lo0 上测试,请使用 filter_str=None。
- Windows:
- 要求:需要 Npcap(安装在 WinPcap API 兼容模式下)。
- 接口:使用 conf.ifaces 查找适配器的 GUID。
## 📩 联系与贡献
由 [Da-Wei Lin](https://github.com/deadislove) 开发。
标签:DDoS防护, IoT, IP 地址批量处理, JSONLines, PE 加载器, Python, Scapy, 人工智能, 入侵检测系统, 基线建立, 威胁情报, 安全数据湖, 密码管理, 开发者工具, 异常检测, 恶意签名, 插件系统, 无后门, 智能家居, 横向移动检测, 流量画像, 物联网安全, 用户模式Hook绕过, 目录遍历, 端口扫描检测, 网络安全, 自动缓解, 设备隔离, 逆向工具, 配置错误, 防火墙, 隐私保护, 零信任