TheHiddenOwl/NightWatch
GitHub: TheHiddenOwl/NightWatch
NightWatch 是一款基于机器学习的行为 IDS,通过多源数据关联和按时段行为基线化来检测低速隐蔽型网络异常与数据外泄威胁。
Stars: 0 | Forks: 0
# NIGHTWATCH — 行为 IDS
NIGHTWATCH 是一个模块化、基于行为的入侵检测系统 (IDS),专为低速隐蔽型威胁检测而设计。它通过监控网络流量、审计日志和 DNS 查询,构建正常行为的基线,并利用机器学习标记异常。
## 功能
- **多源收集:**
- **数据包捕获:** 通过 Scapy 进行实时网络嗅探。
- **审计摄入:** 基于正则表达式解析 `audit.log`,实现进程与网络行为的关联。
- **DNS 监控:** 摄入 `dnsmasq` 查询日志,以检测隧道和罕见域名查询。
- **行为基线化:**
- 使用 `IsolationForest` 进行无监督机器学习。
- 按主机和按小时定期重训模型,以处理时间段差异。
- **事件关联:**
- 将数据包激增、高熵 DNS 查询和非工作时间的进程活动关联为统一的告警集群。
- 针对高置信度检测进行跨源升级。
- **灵活告警:**
- 内置支持 Slack webhook、PagerDuty Events API 和邮件通知。
- 速率限制和去重以防止告警疲劳。
- **运维就绪:**
- **学习模式:** 收集并对事件进行评分,但不发送外部告警,以便调整敏感度。
- **模拟模式:** 重放 PCAP 和日志文件,用于测试和预演。
- **结构化日志:** JSON 格式的日志,方便与 SIEM 集成。
## 技术栈
- **语言:** Python 3.11+
- **机器学习:** `scikit-learn` (Isolation Forest), `pandas`
- **网络:** `scapy`
- **存储:** `SQLAlchemy` + `SQLite`
- **告警:** `httpx` (Async), `smtplib`
- **配置:** `PyYAML`
## 安装说明
1. **克隆代码库:**
git clone https://github.com/your-repo/nightwatch.git
cd nightwatch
2. **安装依赖项:**
pip install -r requirements.txt
3. **(可选) 安装开发工具:**
pip install -r requirements-dev.txt
## 设置
1. **初始化数据库:**
python nightwatch.py --init-db
2. **配置系统:**
编辑 `config.yaml` 以设置您的网络接口、日志路径和告警凭据。
3. **生成示例数据 (用于测试):**
python tools/generate_synthetic_data.py
## 使用说明
### 运行 Daemon
**前台模式 (开发环境):**
```
python nightwatch.py --foreground --mode mock
```
**生产环境 (实时):**
```
python nightwatch.py --mode live
```
### 管理命令
- **检查数据库状态:**
python nightwatch.py --db-status
- **查看学习模式告警:**
python nightwatch.py --review-learning-alerts
- **手动训练模型:**
python -c "from nightwatch.store.db import DBManager; from nightwatch.analysis.baseline import BaselineEngine; db = DBManager('nightwatch.db'); be = BaselineEngine(db); be.train_models()"
### 部署
在 `deploy/nightwatch.service` 中提供了一个 systemd unit 文件。将其复制到 `/etc/systemd/system/`,如果以非 root 用户身份运行,请为该 python 二进制文件授予 `CAP_NET_RAW` 权限。
## 许可证
MIT
标签:Apex, Python, 入侵检测系统, 安全数据湖, 异常检测, 恶意代码分类, 无后门, 机器学习, 网络安全, 运行时操纵, 逆向工具, 隐私保护