maruftak/IoTLogAnalyzer
GitHub: maruftak/IoTLogAnalyzer
物联网蜜罐日志分析平台,将多源原始捕获数据自动归一化并转化为结构化威胁情报,支持 CVE 匹配、僵尸网络识别和自动化报告生成。
Stars: 0 | Forks: 0
# IOTlogAnalyze
**IoT 蜜罐日志分析平台** — 摄取、分析和可视化蜜罐日志,以揭示攻击者行为、IoT 特定威胁和协调攻击活动。
## 功能特性
- **多格式摄取** — SQLite `.db`、JSON / JSONL / NDJSON、CSV、Nginx 访问日志、Cowrie SSH 蜜罐日志
- **灵活导入** — HTTP 上传、本地路径直接导入(非常适合多 GB 文件)或递归文件夹扫描
- **地理与 ASN 情报** — 使用 MaxMind GeoLite2 进行国家/地区细分和地图展示
- **攻击者分析** — 热门 IP、用户名、密码、凭据对、时间线热力图
- **IoT 服务检测** — Telnet、SSH、MQTT、Modbus、RTSP、TR-069、ADB、Dahua、Hikvision 等
- **CVE 模式匹配** — 检测 Log4Shell、Spring4Shell、Shellshock、Hikvision 认证绕过、Realtek SDK RCE 等
- **僵尸网络凭据检测** — 匹配已知的 IoT 僵尸网络凭据集(Mirai 变种等)
- **攻击活动与威胁情报** — 分配活动 ID,识别惯犯和协调攻击
- **恶意软件活动追踪** — 揭示跨会话的 payload/下载模式
- **报告与导出** — 摘要 PDF、IoC PDF、事件 CSV、热门 IP CSV、凭据 CSV、纯文本 IoC 列表
- **分析缓存** — 内存 + SQLite 缓存,用于快速重复查询,并在新摄取时自动失效
## 技术栈
| 层级 | 技术 |
|-----------|-------------------------------------|
| 后端 | Python 3.10+, FastAPI, Uvicorn |
| 数据库 | SQLite (通过 `data/analysis.db`) |
| GeoIP | MaxMind GeoLite2-City (`.mmdb`) |
| 报告 | ReportLab (PDF), pandas (CSV) |
| 前端 | 单页 HTML/JS (`frontend/`) |
## 快速开始
```
# Clone the repo
git clone https://github.com/maruftak/IoTLogAnalyzer.git
cd IoTLogAnalyzer
# Start (自动创建 venv 并安装 dependencies)
chmod +x start.sh
./start.sh
```
然后打开:
- **仪表盘** → http://localhost:8000
- **API 文档** → http://localhost:8000/api/docs
## 手动设置
```
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
cd backend
uvicorn main:app --host 0.0.0.0 --port 8000 --reload
```
## GeoIP 设置(可选)
从 [MaxMind](https://www.maxmind.com) 下载免费的 **GeoLite2-City.mmdb** 并设置路径:
```
export GEOIP_DB_PATH=/path/to/GeoLite2-City.mmdb
```
如果没有此数据库,国家/地图分析将不可用;其他所有功能均可正常运行。
## 导入日志
| 方法 | 使用方式 |
|------------|--------------------------------------------------------------|
| 上传 | `POST /api/upload` — 通过 HTTP 流式传输任何文件 |
| 本地路径 | `POST /api/import-path` — 引用主机上已有的文件 |
| 文件夹扫描 | `POST /api/import-folder` — 递归排队所有日志文件 |
支持的扩展名:`.db`、`.json`、`.jsonl`、`.ndjson`、`.csv`、`.log`、`.txt`
## API 概览
| 端点 | 描述 |
|---------------------------------|----------------------------------|
| `GET /api/overview` | 摘要统计信息 |
| `GET /api/geo/countries` | 排名靠前的攻击源国家 |
| `GET /api/geo/map` | 用于地图视图的地理坐标 |
| `GET /api/attackers/top-ips` | 排名靠前的攻击 IP |
| `GET /api/attackers/credentials`| 排名靠前的凭据对 |
| `GET /api/timeline/daily` | 每日攻击时间线 |
| `GET /api/timeline/hourly` | 每小时热力图 |
| `GET /api/cve/stats` | CVE 模式匹配 |
| `GET /api/iot/stats` | IoT 服务细分 |
| `GET /api/campaigns/summary` | 威胁活动摘要 |
| `GET /api/reports/executive-pdf`| 下载摘要 PDF 报告 |
| `GET /api/reports/events-csv` | 下载事件 CSV 文件 |
| `GET /api/reports/ioc-list` | 下载纯文本 IoC 列表 |
| `GET /api/health` | 健康检查 |
所有分析端点均接受可选的 `?import_id=` 和 `?days=N` 查询参数,以按导入会话或时间窗口进行过滤。
## 项目结构
```
IoTLogAnalyzer/
├── backend/
│ ├── main.py # FastAPI app & all API routes
│ ├── config.py # Paths, CVE patterns, IoT service definitions
│ ├── database/
│ │ └── models.py # SQLite schema & query helpers
│ ├── ingestion/
│ │ ├── merger.py # Orchestrates ingestion pipeline
│ │ ├── detector.py # Auto-detects log format
│ │ ├── normalizer.py # Normalizes parsed rows to unified schema
│ │ └── parsers/ # cowrie, sqlite, json, csv, nginx parsers
│ ├── analysis/
│ │ ├── attack_analyzer.py # Core analytics (geo, IPs, credentials, timeline)
│ │ ├── iot_analyzer.py # IoT-specific intelligence
│ │ └── campaign_detector.py # Campaign grouping & threat intel
│ └── reports/
│ ├── pdf_generator.py # Executive & IoC PDF reports
│ └── csv_exporter.py # CSV & IoC text exports
├── frontend/
│ └── index.html # Single-page dashboard
├── data/ # Runtime data (gitignored)
│ ├── uploads/
│ ├── exports/
│ └── processed/
├── requirements.txt
└── start.sh
```
## 环境变量
| 变量 | 默认值 | 描述 |
|-----------------|---------------------------------------|-------------------------------|
| `GEOIP_DB_PATH` | `../honeyPot/GeoLite2-City.mmdb` | MaxMind GeoLite2 数据库路径 |
| `API_HOST` | `0.0.0.0` | 绑定主机 |
| `API_PORT` | `8000` | 绑定端口 |
| `MAX_UPLOAD_MB` | `20000` (20 GB) | 最大上传大小 |
## 许可证
MIT
标签:AV绕过, CISA项目, Claude, CVE检测, DAST, FastAPI, IoT, Log4Shell, Mirai, Python, SQLite, 信息安全管理, 僵尸网络, 地理定位, 威胁情报, 安全报告, 密码管理, 开发者工具, 恶意软件分析, 无后门, 物联网, 网络安全, 蜜罐, 证书利用, 逆向工具, 隐私保护