rafaeldev-ops/GS-Laboratorio-SIEM
GitHub: rafaeldev-ops/GS-Laboratorio-SIEM
SecuraPy 是一个基于 Python 的简易 SIEM 系统,用于安全事件检测和日志分析。
Stars: 1 | Forks: 0
# SecuraPy — 简化版 SIEM




## 英文概述
**SecuraPy** 是一个完全用 Python 编写的教育级 SIEM(安全信息和事件管理)系统,作为大学“安全编码”课程的项目。它实时收集、分析和关联多个日志源的安全事件,检测如下攻击:
- SSH/认证的暴力破解
- 通过防火墙分析进行的端口扫描
- 已知的黑名单 IP
- Web 攻击 — 路径遍历、XSS、SQLi、Nikto/sqlmap/DirBuster 扫描器
**展示的技能:** Python、TCP 套接字、多线程、日志解析、JSON 驱动的规则引擎、REST API 消费、威胁关联、错误处理、模块化架构。
## 描述
**SecuraPy** 实时收集、分析并关联多个日志源的安全事件,检测如下攻击:
- **暴力破解** 在 SSH/认证中
- **端口扫描** 通过防火墙分析
- **黑名单中的 IP** 已知
- **Web 攻击** — 路径遍历、XSS、SQLi、Reconnaissance 扫描器
## 🏗️ 架构
```
flowchart LR
subgraph Fontes["📂 Fontes de Log"]
A[auth.log]
B[firewall.log]
C[web_access.log]
end
subgraph Core["🧠 Motor SecuraPy"]
D[coletor.py\nNormalização]
E[regras.py\nMotor de Regras JSON]
F[detector.py\nCorrelação de Ameaças]
G[enriquecimento.py\nGeo IP + Cache]
end
subgraph Saida["📤 Saídas"]
H[servidor_alertas.py\nTCP Broadcast]
I[relatorios.py\nDashboard + JSON]
end
A & B & C --> D
D --> E --> F --> G
G --> H & I
H --> J[cliente_alertas.py]
```
## 项目结构
```
GS-Laboratorio-SIEM/
├── main.py # Ponto de entrada e orquestração
├── coletor.py # Módulo 1: Coleta e normalização de logs
├── regras.py # Módulo 2: Motor de regras configurável
├── detector.py # Módulo 3: Correlação e detecção
├── servidor_alertas.py # Módulo 4: Servidor TCP de alertas
├── cliente_alertas.py # Módulo 4: Cliente TCP de alertas
├── enriquecimento.py # Módulo 5: Geolocalização de IPs
├── relatorios.py # Módulo 6: Dashboard e exportação
├── config/
│ └── regras.json # Regras de detecção R001–R005 (editável)
├── logs/
│ ├── auth.log # Logs de autenticação (SSH, sudo)
│ ├── firewall.log # Logs de firewall (UFW/iptables)
│ └── web_access.log # Logs de acesso web (Apache/Nginx)
├── saida/ # Relatórios JSON exportados (no .gitignore)
├── requirements.txt
├── .gitignore
└── LICENSE
```
## 快速开始
### 预先要求
- Python 3.8+
- pip
### 安装
```
git clone https://github.com/rafaeldev-ops/GS-Laboratorio-SIEM.git
cd GS-Laboratorio-SIEM
pip install -r requirements.txt
```
### 执行
```
# 系统主界面(分析+仪表盘)
python main.py
# TCP警报服务器(终端1)
python servidor_alertas.py
# 警报客户端(终端2)
python cliente_alertas.py
```
## MITRE ATT&CK 检测和映射
| 规则 | 名称 | ATT&CK 技术名称 | 战术 | 严重性 |
|-------|------|---------------|--------|------------|
| R001 | 用户登录 | [T1078](https://attack.mitre.org/techniques/T1078/) – Valid Accounts / [T1110](https://attack.mitre.org/techniques/T1110/) – Brute Force | 初始访问 / 凭据访问 | 🔴 高 |
| R002 | 访问关键端口 | [T1046](https://attack.mitre.org/techniques/T1046/) – Network Service Discovery | 发现 | 🟡 中 |
| R003 | 路径遍历 | [T1190](https://attack.mitre.org/techniques/T1190/) – Exploit Public-Facing Application | 初始访问 | 🔴 高 |
| R004 | Web 请求中的 XSS | [T1190](https://attack.mitre.org/techniques/T1190/) – Exploit Public-Facing Application | 初始访问 | 🟡 中 |
| R005 | Web 识别(扫描器) | [T1595](https://attack.mitre.org/techniques/T1595/) – Active Scanning | 侦察 | 🟡 中 |
| — | 关联:暴力破解 | [T1110.001](https://attack.mitre.org/techniques/T1110/001/) – Password Guessing | 凭据访问 | 🔴 高 |
| — | 关联:端口扫描 | [T1046](https://attack.mitre.org/techniques/T1046/) – Network Service Discovery | 发现 | 🔴 高 |
| — | 黑名单 IP | [T1090](https://attack.mitre.org/techniques/T1090/) – Proxy (Tor Exit Node) | 命令和控制 | 🔴 高 |
## 示例数据
`logs/` 目录中的文件包含用于演示的逼真合成数据:
| 来源 | 内容 |
|-------|----------|
| `auth.log` | 暴力破解 SSH 对 root/admin,合法登录 |
| `firewall.log` | 端口扫描关键端口,黑名单流量被阻止 |
| `web_access.log` | 路径遍历、XSS、SQLi、Nikto/sqlmap/DirBuster 扫描器 |
**模拟 IP:**
| IP | 模拟来源 |
|----|----------------|
| `185.220.101.1` | Tor 出口节点(块 185.220.101.x/DE) |
| `45.33.32.156` | 识别主机(参考:scanme.nmap.org) |
| `91.240.118.172` | 有历史扫描记录的主机 |
| `23.94.5.100` | 与垃圾邮件/扫描活动相关的宿主 |
## 配置规则
编辑 `config/regras.json` 以自定义检测,无需修改代码:
```
{
"id": "R002",
"nome": "Acesso a Porta Crítica",
"condicao": "porta_critica",
"portas": [22, 23, 445, 3389, 3306, 5432, 1433],
"severidade": "media"
}
```
## 已知限制
- **警报服务器监听 `0.0.0.0:9999` 无认证** — 适用于本地实验室;不要在生产环境中暴露,除非添加 TLS 和认证。
- **ipinfo.io 的速率限制** — IP 富化模块使用 backoff 处理 HTTP 429 错误,但免费计划每月有 50k 请求限制。使用 `IPINFO_TOKEN` 变量替换为付费计划。
- **教育性重实现** — 此项目从零开始重实现了 SIEM 的概念。它不是 Wazuh、Elastic SIEM 或 Splunk 等企业解决方案的替代品。
## 许可证
在 MIT 许可证下分发。有关详细信息,请参阅 [`LICENSE`](LICENSE)。
标签:BurpSuite集成, CISA项目, FIAP认证, Homebrew安装, JSON配置, PoC, Python, REST API, TCP通信, Web攻击, 威胁情报, 安全信息管理, 安全编码, 开发者工具, 教育项目, 数据统计, 文档安全, 无后门, 暴力破解, 模块化架构, 端口扫描, 自动化分析, 跨站脚本, 路径遍历, 逆向工具, 黑名单检测