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, 威胁情报, 开发者工具, 异常检测, 机器学习, 网络安全, 访问控制, 请求拦截, 逆向工具, 隐私保护