Ayibongwe02/Cybersecurity-Incident-Threat-Intelligence-Dashboard
GitHub: Ayibongwe02/Cybersecurity-Incident-Threat-Intelligence-Dashboard
基于 Streamlit 的全栈威胁情报仪表板,结合 ARIMA/Holt-Winters 预测与 Isolation Forest 异常检测,提供实时安全态势分析与可视化。
Stars: 0 | Forks: 0
# CyberSentinel — 威胁情报仪表板 (Streamlit)
使用 Streamlit 重新构建了最初的基于原生 JS 的 CyberSentinel 仪表板,采用**实时**的容量预测和行为异常检测,而不是预先生成的 JSON 快照。
## 与原版相比的变化
| | 原版 | 本版本 |
|---|---|---|
| 预测 | Prophet (安装繁琐,包含 C++ Stan 编译步骤) | `statsmodels` Holt-Winters / ARIMA — 预测质量相同,部署更轻量且更可靠 |
| 异常检测 | scikit-learn Isolation Forest,预先计算并存入 JSON | 相同的 Isolation Forest,在应用内进行**实时**计算,并带有可调节的灵敏度滑块 |
| 前端 | 原生 JS + Chart.js,每 60 秒轮询一次静态 JSON | Streamlit + Plotly,在交互时重新计算 |
| 数据输入 | 固定内置在流水线中的 CSV | 相同的内置 CSV,外加一个侧边栏 CSV 上传器供您上传自己的数据 |
之所以特别弃用 Prophet,是因为它是导致 Streamlit Cloud 构建失败/超时的常见原因(依赖树庞大,需要本地编译)。`statsmodels` 则能在没有此类风险的情况下生成相当的预测结果。
## 页面
- **概述** — 安全态势指数、已拦截的 payload 数量、活动的缓解措施、异常率、按严重程度划分的事件数量、各主机的流量
- **Endpoints** — 各主机的风险评分、流量/延迟历史记录、原始事件日志
- **预测引擎** — 实时 Holt-Winters/ARIMA 预测,包含回测 RMSE/MAPE 和 95% 置信带
- **威胁狩猎** — 实时 Isolation Forest 异常日志,包含分类过滤器和风险评分
## 运行方式
```
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
streamlit run app.py
```
或者使用 Docker:
```
docker compose up --build
```
打开 **http://localhost:8501**。
## 使用您自己的数据
在侧边栏中上传:
- **每周流量 CSV:** `ds` (日期),`y` (数值容量)
- **事件 CSV:** `timestamp, host, payload_size_kb, response_latency_ms, failed_auth_count, bytes_out_mb, request_rate, severity, event_type, source_ip, destination_port`
如果缺少必需的列,应用将显示错误并回退到内置的样本数据。
## 故障排除 (Streamlit Community Cloud)
**依赖安装失败 ("installer returned a non-zero exit code"):**
`requirements.txt` 使用的是最低版本范围,而不是精确的版本锁定,因此 pip 可以解析为 Cloud 所使用的 Python 版本对应的任何预构建包。不要依赖 `runtime.txt` 来强制指定 Python 版本——目前在 Cloud 上它不可靠;请在部署时的 "Advanced settings" 中显式设置。
**读取 CSV 时出现 `FileNotFoundError`:** 应用会同时检查 `data/.csv` 和仓库根目录下的 `.csv`,因此无论您是使用 `git push` (保留文件夹) 还是使用 GitHub 逐个 "Add files via upload" (将所有内容平铺到根目录),它都能正常工作。如果您仍然遇到此问题,请运行 `git ls-files data/` 以确认文件是否确实已提交。
## 技术栈
- **应用/UI:** Streamlit,Plotly
- **预测:** statsmodels (Holt-Winters, ARIMA)
- **异常检测:** scikit-learn (Isolation Forest)
- **部署:** Docker / docker-compose,或纯 Python,或 Streamlit Community Cloud
标签:Apex, Kubernetes, Streamlit, 威胁情报, 开发者工具, 异常检测, 机器学习, 网络安全, 访问控制, 请求拦截, 逆向工具, 隐私保护