sxjalxo/SIEMLite

GitHub: sxjalxo/SIEMLite

一款轻量级 Python 安全监控 CLI 工具,将 Web 漏洞扫描、日志分析与跨模块威胁关联整合于一体。

Stars: 0 | Forks: 0

# SIEM-Lite v1.0 一个轻量级的基于 Python 的安全工具,它将 **Web 漏洞扫描**、**日志分析**、**跨模块威胁关联**和 **受 SIEM 启发的功能** 统一整合到一个 CLI 中。 ## 功能 ### 核心安全模块 | 模块 | 功能 | 严重程度 | |---|---|---| | **Scanner** | SQL 注入检测(10 个 payload,20+ 错误签名) | HIGH | | **Scanner** | 反射型 XSS 检测(10 个 payload) | HIGH | | **Scanner** | 安全标头分析(7 个标头 + 信息泄露) | HIGH-LOW | | **Scanner** | TCP 端口扫描(20 个常用端口) | INFO | | **Log Analyzer** | 暴力破解登录检测 | HIGH | | **Log Analyzer** | 可疑 IP 频率分析 | MEDIUM | | **Log Analyzer** | 404 路径扫描 / 目录枚举 | MEDIUM | | **Log Analyzer** | 恶意 URI 检测(URL 中的 SQLi/XSS/遍历) | HIGH | | **Log Analyzer** | Web shell 访问检测 | HIGH | | **Correlation** | 跨模块威胁关联(14 条规则,带有评分) | CRITICAL | ### 高级功能 | 功能 | 描述 | |---|---| | **实时监控** | 基于 Watchdog 的日志文件监控,带有事件驱动分析 | | **告警系统** | 多渠道告警(文件、JSON、电子邮件、桌面通知) | | **持久化存储** | 用于日志、告警、关联和统计的 SQLite 数据库 | | **CLI 仪表板** | 使用 rich 库的交互式安全指标仪表板 | | **Geo-IP 追踪** | IP 地理定位和不可能旅行检测 | | **MITRE ATT&CK** | 自动将检测结果映射到 MITRE 技术 | | **威胁情报** | 集成 AbuseIPDB API 和本地黑名单 | | **异常检测** | 用于请求激增的统计分析(Z-score) | | **自定义规则** | 基于 plugin 的规则系统,用于可扩展的检测 | ## 快速开始 ### 前置条件 - Python 3.8+ ### 安装 ``` git clone "https://github.com/sxjalxo/SIEMLite.git" cd SIEMLite pip install -r requirements.txt ``` ### 使用说明 ``` # 扫描网站以查找漏洞 python main.py --scan https://example.com # 分析访问日志文件 python main.py --analyze data/sample_access.log # 两者:扫描 + 分析 + 自动关联发现结果 python main.py --scan https://example.com --analyze data/sample_access.log # 快速模式(跳过深度扫描) python main.py --scan https://example.com --quick # 将结果输出到 JSON python main.py --scan https://example.com --output report.json # 跳过端口扫描(更快) python main.py --scan https://example.com --no-ports # 各个模块仍可独立运行 python -m core.scanner https://example.com python -m core.log_analyzer data/sample_access.log python -m ui.dashboard ``` ## 高级关联 关联引擎会交叉比对 scanner 和 log 的发现结果,通过严重程度评分来揭示组合威胁: ``` If: Port 22 open AND brute-force attempts in logs --> [CRITICAL] Potential SSH brute-force attack detected (Score: 14) If: SQLi vulnerability found AND SQLi attempts in logs --> [CRITICAL] Active SQL Injection exploitation (Score: 14) If: Impossible travel AND brute-force attacks --> [CRITICAL] Impossible travel + credential attacks (Score: 14) ``` ## 严重程度系统 | 级别 | 标记 | 含义 | |---|---|---| | **CRITICAL** | `[!!!]` | 相关联的威胁,活跃的利用 | | **HIGH** | `[!!]` | 已确认的漏洞,暴力破解攻击 | | **MEDIUM** | `[!]` | 缺失的标头,可疑的模式 | | **LOW** | `[*]` | 信息泄露,已弃用的保护 | | **INFO** | `[~]` | 开放的端口,一般的观察 | ## 示例输出 ``` ╔══════════════════════════════════════════════════════════╗ ║ SIEM-Lite v1.0 // Security Monitoring Toolkit ║ ║ Scan · Analyze · Correlate · Report ║ ╚══════════════════════════════════════════════════════════╝ ──────────────────────────────────────────────────────────── >>> Threat Correlation Engine ──────────────────────────────────────────────────────────── [!!!] [CRITICAL] Potential SSH brute-force attack detected on open port 22 (Score: 14) -> Port 22 (SSH) is open AND brute-force login attempts were found in logs. -> Action: Restrict SSH access via firewall, use key-based auth. ============================================================ SCAN REPORT — https://example.com + Logs: access.log ============================================================ Total findings: 18 ■ CRITICAL : 2 ■ HIGH : 5 ■ MEDIUM : 4 ■ LOW : 3 ■ INFO : 4 Risk Assessment: [!!!] CRITICAL — Critical correlated threats detected. Immediate action required. ``` ## 项目结构 ``` SIEMLite/ ├── main.py # Unified CLI + correlation engine ├── README.md # This file ├── requirements.txt # Python dependencies ├── LICENSE # MIT License │ ├── core/ # Core security modules │ ├── scanner.py # Web vulnerability scanner │ ├── log_analyzer.py # Access log analyzer │ ├── report.py # Shared utilities (colors, severity, reporting) │ ├── database.py # SQLite persistent storage │ ├── alerting.py # Multi-channel alerting system │ └── rule_loader.py # Plugin-based custom rule system │ ├── modules/ # Advanced detection modules │ ├── geo_ip.py # Geo-IP tracking & impossible travel │ ├── mitre_mapping.py # MITRE ATT&CK mapping │ ├── threat_intel.py # Threat intelligence (AbuseIPDB, blacklist) │ └── anomaly_detection.py # Statistical anomaly detection │ ├── ingestion/ # Data ingestion modules │ └── realtime_monitor.py # Real-time log monitoring with watchdog │ ├── ui/ # User interface modules │ └── dashboard.py # Interactive CLI dashboard │ ├── rules/ # Custom detection rules │ └── example_rule.py # Example custom rule │ ├── data/ # Data files │ ├── sample_access.log # Sample log file for testing │ └── blacklist.json # Local IP blacklist │ ├── output/ # Output files │ ├── alerts.log # Alert log file (auto-created) │ └── alerts.json # Alert JSON file (auto-created) │ └── db/ # Database files └── siem_lite.db # SQLite database (auto-created) ``` ## 技术栈 - **Python 3** — 核心语言 - **requests** — 用于 Web 扫描的 HTTP 客户端 - **BeautifulSoup4** — HTML 解析与表单提取 - **socket** — TCP 端口扫描 - **argparse** — 统一的 CLI - **re** — 日志解析与模式匹配 - **watchdog** — 实时文件监控 - **rich** — 交互式 CLI 仪表板 - **geoip2** — IP 地理定位 - **sqlite3** — 持久化存储 ## 配置 ### 告警配置 编辑 `core/alerting.py` 来配置: - 电子邮件告警(SMTP 设置) - 桌面通知 - 告警文件路径(output/alerts.log、output/alerts.json) ### Geo-IP 配置 从 MaxMind 下载 GeoLite2-City.mmdb 并放置在 `data/` 目录中以使用 Geo-IP 功能。 ### 威胁情报 在 `modules/threat_intel.py` 中配置 AbuseIPDB API 密钥,以进行 IP 信誉检查。本地黑名单存储在 `data/blacklist.json` 中。 ### 自定义规则 在 `rules/` 目录中添加自定义检测规则。每个规则文件必须包含一个 `detect(entries)` 函数。 ## 📸 演示 查看 `/docs/` 获取截图和示例输出。 ## License MIT License — 可免费用于个人和教育用途。
标签:BurpSuite集成, CISA项目, Python, 无后门, 逆向工具