RoniEbrarKevibeden/security-log-analyzer
GitHub: RoniEbrarKevibeden/security-log-analyzer
一个用于解析 SSH 身份验证日志并基于规则检测可疑登录行为的 Python 命令行工具,适合 SOC 初学者练习安全运营工作流。
Stars: 1 | Forks: 0
# Security Log Analyzer SSH
一个小巧的 Python 命令行工具,用于分析 SSH 身份验证日志并检测可疑的登录活动。
我开发这个项目是为了练习基本的 SOC 风格工作流:读取原始日志、提取有用字段、应用简单的检测规则以及编写结构化报告。
## 为什么开发这个项目
当我开始学习蓝队和 SOC 相关工作时,我注意到许多安全调查都是从日志开始的。单次登录失败并不总是很重要,但来自同一 IP 地址的重复失败登录可能是一个有用的信号。
这个项目帮助我理解了如何将原始的 SSH 日志行转换为结构化事件以及简单的安全发现。
## 检测内容
该工具目前可以检测:
- 失败的 SSH 登录尝试
- 成功的 SSH 登录
- 无效用户的登录尝试
- 来自同一 IP 地址的可能暴力破解活动
## 示例日志行
```
Jan 05 12:01:10 host sshd[1234]: Failed password for invalid user admin from 10.0.0.5 port 51234 ssh2
```
解析器提取的内容:
```
timestamp: Jan 05 12:01:10
process: sshd
username: admin
ip: 10.0.0.5
outcome: failed
invalid_user: true
```
## 项目结构
```
security-log-analyzer/
├── data/
│ └── sample_auth.log
├── src/
│ ├── analyze.py
│ ├── models.py
│ ├── parser.py
│ ├── report.py
│ └── rules.py
├── tests/
│ ├── test_parser.py
│ └── test_rules.py
├── requirements.txt
└── README.md
```
## 如何运行
安装依赖:
```
python -m pip install -r requirements.txt
```
在示例日志文件上运行分析器:
```
python -m src.analyze data/sample_auth.log --window-min 5 --threshold 5 --out report.json
```
预期的终端输出:
```
Parsed events: 7
Findings: 2
Report written to: report.json
```
## 示例 JSON 报告
```
{
"findings": [
{
"type": "bruteforce_suspected",
"ip": "10.0.0.5",
"window_minutes": 5,
"threshold": 5,
"count_in_window": 5,
"severity": "medium"
},
{
"type": "invalid_user_attempts",
"ip": "10.0.0.5",
"count": 1,
"severity": "medium"
}
],
"total_findings": 2
}
```
## 如何运行测试
```
python -m pytest
```
## 我学到了什么
在构建这个项目的过程中,我练习了:
- 解析 Linux 风格的 SSH 身份验证日志
- 使用正则表达式提取用户名、IP 地址和登录结果
- 按照IP 地址对失败的登录尝试进行分组
- 利用时间窗口和阈值检测简单的暴力破解模式
- 为解析器和检测逻辑编写基本的单元测试
- 生成结构化的 JSON 报告以用于调查记录
## 局限性
这是一个学习项目,而不是生产级的 SIEM 工具。
当前的局限性:
- 仅支持少量的 SSH 日志格式
- 不处理实时日志
- 不使用地理位置或威胁情报来丰富 IP 地址
- 暂不支持 CSV 或 HTML 报告
- 检测规则简单且基于规则
## 可能的改进
接下来我想改进的地方:
- 支持更多身份验证日志格式
- 添加 CSV 和 HTML 报告输出
- 添加对检测阈值的配置文件支持
- 为边缘情况添加更多测试用例
- 添加简单的仪表板或汇总表
## 道德使用
本项目用于教育和防御性安全实践。它只能用于分析您拥有或已获授权分析的系统的日志文件。
标签:Python, SSH, 安全规则引擎, 安全运营, 扫描框架, 文档结构分析, 无后门, 逆向工具