SamuelRedfern/soc-log-detection-pipeline
GitHub: SamuelRedfern/soc-log-detection-pipeline
一款基于 Python 和机器学习的轻量级 SOC 日志分析工具,用于解析日志、检测安全威胁并映射 MITRE ATT&CK。
Stars: 0 | Forks: 0
# Python Security Log Analyzer (SOC 实用工具)
一款轻量级 SOC 风格的日志分析工具,能够解析类 ISO8601 日志、提取 IP、汇总事件、检测安全警报,并使用 MITRE ATT&CK 映射丰富选定的警报信息。
## 功能特性
- 解析包含时间戳、日志级别、消息的日志,并可选提取 IP
- 按级别、时间戳范围、热门消息和热门来源 IP 汇总计数
- 运行安全检测:
- 基于重复登录失败尝试的暴力破解检测
- 时间窗口内的可疑高流量 IP 活动
- 包含 IP 细分的错误峰值检测
- 使用 Isolation Forest (`scikit-learn`) 运行异常检测
- 利用 MITRE ATT&CK 战术和技术元数据丰富映射的警报
- 支持 CLI 输出:文本摘要、JSON 输出、仅警报模式
## 环境要求
- Python 3
- 来自 `requirements.txt` 的运行时依赖项
## 安装设置
1. 创建虚拟环境:
```
python -m venv venv
```
2. 激活虚拟环境:
```
.\venv\Scripts\Activate.ps1
```
3. 安装运行时依赖项:
```
python -m pip install -r requirements.txt
```
## 使用方法
1. 创建一个日志文件,例如 `sample.log`:
```
2026-03-14T10:00:00 [INFO] Server started
2026-03-14T10:01:00 [WARN] High memory usage
2026-03-14T10:02:00 [ERROR] Could not connect to database
2026-03-14 10:03:00 [INFO] Request completed
```
2. 运行分析器:
```
python main.py sample.log
```
3. 将报告写入文件:
```
python main.py sample.log -o report.txt
```
4. 仅显示警报:
```
python main.py sample.log --alerts-only
```
5. 输出 JSON:
```
python main.py sample.log --json
```
6. 打印版本号:
```
python main.py --version
```
## MITRE ATT&CK 映射
目前的 ATT&CK 丰富功能有意保持保守。
- `brute_force` 警报映射到:
- `TA0006 Credential Access`
- `T1110 Brute Force`
- 其他警报目前未映射,并显示为 `Not directly mapped`
这通过仅在信号强烈时附加 ATT&CK 元数据来保持项目的准确性。
## 示例输出
### 仅警报模式
```
Security Alerts:
- [LOW] Suspicious failed login rate from 203.0.113.77
MITRE ATT&CK: TA0006 Credential Access -> T1110 Brute Force
- [LOW] Suspicious failed login rate from 45.33.22.19
MITRE ATT&CK: TA0006 Credential Access -> T1110 Brute Force
- [LOW] Suspicious failed login rate from 91.134.17.42
MITRE ATT&CK: TA0006 Credential Access -> T1110 Brute Force
- [HIGH] Unusual IP behavior detected using Isolation Forest from 203.0.113.77
MITRE ATT&CK: Not directly mapped
```
### JSON 警报示例
```
{
"type": "brute_force",
"severity": "LOW",
"ip": "203.0.113.77",
"count": 10,
"description": "Suspicious failed login rate",
"meta": {
"window_minutes": 1,
"threshold": 5,
"window_count": 10,
"first_seen": "2026-03-14T17:02:01",
"last_seen": "2026-03-14T17:02:10"
},
"mitre_attack": [
{
"tactic": "Credential Access",
"tactic_id": "TA0006",
"technique": "Brute Force",
"technique_id": "T1110",
"confidence": "high",
"mapping_note": "Repeated failed login attempts align with ATT&CK Brute Force."
}
]
}
```
标签:AMSI绕过, Apex, IP 提取, Isolation Forest, IT 运维, Linux安全, Python, scikit-learn, SIEM 工具, 免杀技术, 威胁检测, 安全运营, 开源安全工具, 异常检测, 扫描框架, 数据 enrichment, 文档结构分析, 无后门, 日志解析, 暴力破解检测, 机器学习, 红队行动, 网络安全, 证书伪造, 逆向工程平台, 隐私保护