LT101Airborne/Python-Log-File-Parser-for-Security-Analysis

GitHub: LT101Airborne/Python-Log-File-Parser-for-Security-Analysis

一个零依赖的 Python 安全日志分析工具,通过正则表达式自动解析多种日志格式并标记潜在安全威胁。

Stars: 0 | Forks: 0

# 安全日志解析器 一个基于 Python 的安全分析工具,它使用正则表达式解析结构化的服务器和应用程序日志,自动识别异常模式,并根据严重程度标记潜在的安全事件。 本项目作为作品集构建,旨在展示 Python、正则表达式工程、日志分析和安全自动化技能。 ## 功能 | 功能 | 详情 | |---|---| | **多格式解析** | Apache access, Nginx error, auth/syslog, JSON | | **自动检测** | 基于启发式的文件内容格式检测 | | **威胁检测** | SQL injection, XSS, path traversal, brute-force, scanner UA, privilege escalation | | **严重程度评级** | INFO / LOW / MEDIUM / HIGH / CRITICAL | | **输出格式** | 控制台(彩色)、JSON、CSV | | **可扩展** | 在 `src/parser.py` 中添加新格式;在 `src/detector.py` 中添加新规则 | | **零依赖** | runtime 仅使用标准库 | ## 快速开始 ``` # 克隆并进入项目 git clone https://github.com//log-parser-security.git cd log-parser-security # (可选)创建虚拟环境 python -m venv .venv && source .venv/bin/activate # 无需安装步骤 — 零运行时依赖 # 针对包含的示例日志运行 python main.py sample_logs/apache_access.log python main.py sample_logs/auth.log ``` ### 将报告保存到磁盘 ``` python main.py sample_logs/apache_access.log \ --output reports/ \ --report-format json csv text ``` ### 扫描多个文件 ``` python main.py sample_logs/*.log --output reports/ ``` ## CLI 参考 ``` usage: main.py [-h] [--format FORMAT] [--output DIR] [--report-format {text,json,csv} ...] [--brute-threshold N] [--scan-threshold N] [--no-color] [--verbose] LOG_FILE [LOG_FILE ...] ``` | 标志 | 默认值 | 描述 | |---|---|---| | `--format` | `auto` | 日志格式:`apache_access`, `nginx_error`, `auth_log`, `syslog`, `json` 或 `auto` | | `--output` | stdout | 写入报告文件的目录 | | `--report-format` | `text` | `text json csv` 中的一种或多种 | | `--brute-threshold` | `5` | 触发 brute-force 警报前的登录失败次数 | | `--scan-threshold` | `100` | 触发扫描警报前的单 IP 请求数 | | `--no-color` | off | 禁用 ANSI 颜色 | | `--verbose` | off | 启用 debug 日志 | **退出代码:** `0` = 无发现;`1` = HIGH 发现;`2` = CRITICAL 发现 (适用于 CI/CD pipeline 集成) ## 检测规则 | 规则 ID | 严重程度 | 描述 | |---|---|---| | `AUTH_BRUTE_FORCE` | HIGH | 来自单一 IP 的 ≥ N 次连续认证失败 | | `AUTH_BRUTE_FORCE_SUSTAINED` | CRITICAL | 超过初始阈值后持续的 brute-force | | `PRIV_ESCALATION` | MEDIUM | `sudo`, `passwd`, `useradd`, `chmod` root 模式 | | `WEB_SQLI_ATTEMPT` | CRITICAL | `UNION SELECT`, `OR 1=1` 及其他 SQLi 特征 | | `WEB_XSS_ATTEMPT` | HIGH | `