beast99-p3/Sentinel-SIEM

GitHub: beast99-p3/Sentinel-SIEM

一个轻量级 Web 日志分析与威胁检测 SIEM 工具,帮助用户快速识别攻击与黑名单 IP 并可视化告警。

Stars: 0 | Forks: 0

# Sentinel SIEM ![Python](https://img.shields.io/badge/Python-3.8%2B-blue?logo=python) ![Flask](https://img.shields.io/badge/Flask-web%20framework-black?logo=flask) ![License](https://img.shields.io/badge/License-MIT-green) **Sentinel SIEM** 是一个轻量级、基于 Web 的安全信息与事件管理(SIEM)工具,用于快速日志分析和威胁检测。上传日志、检测攻击和列入黑名单的 IP,查看带有地理定位的警报,并管理设置——所有操作均可通过交互式仪表板完成。 ## 功能特性 - **日志上传与分析** — 上传一个或多个日志文件并立即运行所有检测模块 - **暴力破解检测** — 标记失败登录尝试超过 5 次的任何 IP - **端口扫描检测** — 标记访问超过 10 个不同端口的任何 IP - **异常检测** — 识别流量中罕见或唯一的用户代理字符串 - **黑名单 IP 检测** — 将每个 IP 与用户管理的黑名单进行交叉引用 - **交互式仪表板** — 实时统计卡片、威胁类型环形图和 7 天警报趋势折线图 - **警报页面** — 分页、可排序、可过滤的警报列表,包含 IP 地理定位和国家旗帜 - **报告管理** — 从报告页面下载或删除每个文件的 CSV 报告 - **设置页面** — 在浏览器中直接编辑 IP 黑名单 - **示例数据生成器** — 内置脚本,用于生成真实的 Apache 日志并在仪表板中填充示例警报 ## 截图 | 仪表板 | 警报 | |-----------|--------| | ![仪表板](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/2be720435a113631.png) | ![警报](https://raw.githubusercontent.com/beast99-p3/Sentinel-SIEM/main/screenshots/alerts.png) | | 报告 | 设置 | |---------|----------| | ![报告](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/86dfcebe59113703.png) | ![设置](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/448aea2e88113705.png) | ## 快速开始 ### 先决条件 - Python 3.8+ - [GeoLite2 国家数据库](https://dev.maxmind.com/geoip/geolite2-free-geolocation-data)(可选 — 启用 IP 地理定位时需要) ### 安装 1. **克隆仓库:** git clone https://github.com/beast99-p3/Sentinel-SIEM.git cd Sentinel-SIEM 2. **创建并激活虚拟环境(推荐):** python -m venv venv # Linux / macOS source venv/bin/activate # Windows venv\Scripts\activate 3. **安装依赖:** pip install -r project/requirements.txt 4. **(可选)启用 IP 地理定位:** - 在 [此处](https://www.maxmind.com/en/geolite2/signup) 注册免费 MaxMind 账户 - 下载 `GeoLite2-Country.mmdb` 文件 - 将其放置在 `project/database/` 目录中 5. **运行应用程序:** cd project python app.py 6. **打开浏览器并访问:** `http://localhost:5000` ### 使用示例数据快速启动 若要在不上传真实日志文件的情况下为仪表板填充真实的示例数据,请在 `project/` 目录中运行示例数据生成器: ``` cd project python generate_sample_log.py ``` 这将创建: - `sample_apache.log` — 10,000 条随机的 Apache 组合日志格式条目 - `reports/alerts.csv` — 500 条预生成的警报,覆盖最近 7 天(供仪表板使用) 运行脚本后,刷新 `http://localhost:5000` 处的仪表板以查看已填充的图表和统计信息。 ## 项目结构 ``` Sentinel-SIEM/ │ ├── project/ │ ├── app.py # Flask application and all routes │ ├── generate_sample_log.py # Demo data generator │ ├── sample_apache.log # Example Apache log (generated) │ ├── requirements.txt │ ├── blacklist.txt # User-managed IP blacklist │ │ │ ├── modules/ │ │ ├── log_parser.py # Parses raw log lines into structured records │ │ ├── brute_force.py # Brute-force detection (>5 failed attempts per IP) │ │ ├── port_scan.py # Port-scan detection (>10 distinct ports per IP) │ │ ├── anomaly.py # Anomaly detection (rare user agents) │ │ ├── blacklist_ip.py # Blacklisted IP cross-reference │ │ └── report_generator.py # Per-file CSV report writer │ │ │ ├── templates/ # Jinja2 HTML templates │ │ ├── base.html │ │ ├── dashboard.html │ │ ├── upload.html │ │ ├── alerts.html │ │ ├── report.html │ │ └── settings.html │ │ │ ├── static/ # CSS, JavaScript, and images │ ├── uploads/ # Uploaded log files (created at runtime) │ ├── reports/ # Generated CSV reports (created at runtime) │ └── database/ │ └── GeoLite2-Country.mmdb # MaxMind GeoIP database (add manually) │ ├── screenshots/ # README screenshots ├── blacklist.txt └── README.md ``` ## 依赖项 | 包 | 用途 | |---------|---------| | `Flask` | Web 框架 | | `pandas` | 日志数据处理和 CSV I/O | | `geoip2` | 通过 MaxMind GeoLite2 进行 IP 地理定位 | | `numpy` | 异常检测的数值支持 | | `requests` | HTTP 工具 | | `python-dotenv` | 环境变量管理 | | `elasticsearch` |(未来)Elasticsearch 集成 | | `watchdog` |(未来)实时日志文件监控 | 安装所有依赖项: ``` pip install -r project/requirements.txt ``` ## 未来的路线图与计划增强功能 - **数据库集成** — 使用 SQLite 或 PostgreSQL 替换基于 CSV 的警报存储,以提高性能和可扩展性 - **实时威胁情报** — 集成实时威胁情报 API(例如 AbuseIPDB),用于检查最新的全球黑名单 - **可配置的检测规则** — 允许用户从设置页面自定义检测阈值(例如暴力破解警报的失败登录次数) - **实时警报与通知** — 检测到高严重性威胁时通过电子邮件或 Slack/Discord Webhook 发送实时警报 - **用户认证** — 安全的登录系统,限制对仪表板和设置的访问 - **交互式世界地图** — 在仪表板上展示威胁来源的地理可视化 - **Docker 容器化** — 提供 Dockerfile 以便在任何环境中轻松部署应用程序 ## 许可证 本项目根据 MIT 许可证授权。 *仅供教育和研究使用。不适用于生产环境。*
标签:AMSI绕过, Apache日志, Flask, IP信誉, PFX证书, Python, Web安全, 交互式仪表盘, 免杀技术, 分页排序, 可视化图表, 告警管理, 地理定位, 威胁检测, 安全信息与事件管理, 开源安全工具, 异常检测, 搜索引擎爬取, 攻击检测, 无后门, 日志上传, 暴力破解检测, 样本数据生成, 端口扫描检测, 红队行动, 蓝队分析, 设置管理, 逆向工具, 逆向工程平台, 黑名单IP