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 | `