R0SH1009/soc-log-analysis-tool
GitHub: R0SH1009/soc-log-analysis-tool
一个用 Python 编写的防御性网络安全日志分析工具,能够解析 Web 和身份验证日志、检测可疑活动并生成警报与 HTML 报告,模拟初级 SOC 分析人员的工作流程。
Stars: 0 | Forks: 0
# SOC 日志分析工具
## 概述
SOC 日志分析工具是一个防御性网络安全项目,它可以解析示例 Web 访问日志和 Linux 风格的身份验证日志,检测可疑行为,生成安全警报,并创建对分析人员友好的报告。
其目标是使用 Python 模拟初级 SOC 分析人员的工作流程:收集日志证据、识别风险活动、记录发生的事件,并生成可供其他分析人员审查的清晰输出结果。
## 项目重要性
本项目直接对应初级 SOC 分析人员的工作内容:
* 审查与安全相关的事件日志
* 识别可疑的登录行为
* 发现暴力破解模式
* 识别可疑的 Web 请求
* 通过警报详情和证据记录调查结果
* 生成分析人员风格的报告以供审查
本项目纯粹出于防御和教育目的。这些示例日志用于练习调查习惯,而不会触及真实系统。
## 功能
* 访问日志解析
* 身份验证日志解析
* 可疑活动检测
* 暴力破解模式检测
* 警报生成
* JSONL 警报输出
* HTML 报告生成
* 命令行界面
* Pytest 测试套件
* 示例日志和示例报告
## 项目结构
```
log-analysis-tool/
|-- analyze.py
|-- alerting/
| |-- __init__.py
| `-- alert_manager.py
|-- config/
| |-- __init__.py
| `-- settings.py
|-- detectors/
| |-- __init__.py
| |-- brute_force.py
| |-- failed_logins.py
| |-- geo_anomaly.py
| |-- mfa_monitor.py
| |-- phishing_and_cookies.py
| `-- web_anomalies.py
|-- parsers/
| |-- __init__.py
| |-- auth_log_parser.py
| `-- web_log_parser.py
|-- reporting/
| |-- __init__.py
| `-- html_report.py
|-- sample_logs/
| |-- access.log
| `-- auth.log
|-- sample_reports/
| |-- access_alerts.jsonl
| |-- access_report.html
| |-- auth_alerts.jsonl
| `-- auth_report.html
|-- tests/
| |-- __init__.py
| `-- test_detectors.py
`-- TASKS.md
```
## 环境设置
在项目文件夹中使用 Windows PowerShell。
如果从 GitHub 克隆:
```
git clone
cd log-analysis-tool
```
如果项目已经存在于你的计算机上:
```
cd "C:\Users\ruben\OneDrive\soc\log-analysis-tool"
```
创建并激活虚拟环境:
```
python -m venv .venv
.\.venv\Scripts\Activate.ps1
```
目前这个代码仓库中没有 `requirements.txt` 或 `pyproject.toml`。该工具本身使用 Python 标准库。安装 `pytest` 以运行测试套件:
```
python -m pip install --upgrade pip
python -m pip install pytest
```
## 运行测试
在项目根目录下运行测试套件:
```
python -m pytest
```
预期状态:
* `39/39` 个测试通过
测试涵盖了解析器、检测器、警报处理、JSONL 输出以及 HTML 报告生成。
## 运行工具
命令行入口是 `analyze.py`。
分析示例 Web 访问日志并将输出写入 `sample_reports/`:
```
python .\analyze.py --file .\sample_logs\access.log --type web --json .\sample_reports\access_alerts.jsonl --report .\sample_reports\access_report.html --no-color
```
分析示例身份验证日志并将输出写入 `sample_reports/`:
```
python .\analyze.py --file .\sample_logs\auth.log --type auth --year 2026 --json .\sample_reports\auth_alerts.jsonl --report .\sample_reports\auth_report.html --no-color
```
你也可以让工具自动检测日志类型:
```
python .\analyze.py --file .\sample_logs\access.log --type auto --report .\sample_reports\access_report.html
```
注意:当发现 HIGH 或 CRITICAL 级别的警报时,`analyze.py` 将以非零状态退出。此行为是故意的,对于 CI 或自动化检查非常有用。
## 输出结果
该工具可以生成:
* 控制台警报摘要
* 使用 `--json` 生成的 JSON Lines 警报文件
* 使用 `--report` 生成的 HTML 报告
示例输出存储在:
```
sample_reports/
|-- access_alerts.jsonl
|-- access_report.html
|-- auth_alerts.jsonl
`-- auth_report.html
```
JSONL 文件适用于结构化的警报审查或下游工具集成。HTML 报告专为生成人类易读的 SOC 风格文档而设计。
## 展示的技能
* Python
* 日志解析
* 防御性网络安全
* 检测逻辑
* 警报生成
* 报告生成
* 命令行工具
* Pytest
* 文档编写
* SOC 调查工作流程
## 作品集 / 简历价值
这个项目可以被描述为一个防御性网络安全实验室,它模拟了 SOC 日志审查和警报报告。它展示了你编写用于安全运营的 Python 工具、解析真实日志、检测可疑行为、生成对分析人员友好的证据以及通过自动化测试验证工作的能力。
简历描述示例:
## 负责任的使用
本项目仅用于防御性网络安全教育、SOC 分析人员练习和作品集开发。
标签:AMSI绕过, Python, 多模态安全, 威胁检测, 安全运营, 扫描框架, 文档结构分析, 无后门, 红队行动, 逆向工具