tlolod/ai-security-log-analyzer
GitHub: tlolod/ai-security-log-analyzer
一个用于解析 Linux SSH 认证日志并检测暴力破解模式的 Python 网络安全学习工具,采用分层管道架构和容器化开发工作流。
Stars: 0 | Forks: 0
# AI Security Log Analyzer
一个适合初学者的 Python 网络安全项目,用于解析身份验证日志、检测可疑的失败登录模式,并学习安全的 AI 辅助开发工作流。
**状态:** MVP v1 开发中
**重点:** Python 3.12、网络安全日志分析、Docker Dev Containers 以及安全的 AI 辅助开发
## 项目概述
AI Security Log Analyzer 是一个以学习为导向的网络安全工具,使用 Python 构建。当前的 MVP 可以读取本地身份验证日志文件,解析常见的 Linux SSH 失败登录行,检测来自同一源 IP 地址的重复失败登录,并打印结构化警报。
本项目的目标不是构建一个完整的 SIEM 或生产级安全平台。相反,该项目侧重于日志分析、检测工程、安全编码和整洁的软件架构的基础知识。
## 当前 MVP 功能
当前的 MVP 可以:
- 加载本地日志文件
- 解析常见的 Linux SSH 失败登录日志行
- 提取时间戳、用户名、源 IP 地址、事件类型和原始日志行
- 检测在可配置时间窗口内来自同一 IP 地址的重复失败登录
- 打印结构化的 JSON 样式警报
- 打印简单的运行摘要
- 使用经过脱敏处理的样本身份验证日志进行测试
MVP v1 刻意只关注一项检测规则,从而保持架构易于理解。
## 高层架构
该项目遵循简单的分层管道:
```
Loader -> Parser -> Detector -> Formatter
```
每一层都有一个明确的职责:
| 层 | 模块 | 职责 |
| --- | --- | --- |
| Loader | `loader.py` | 安全地读取本地日志文件 |
| Parser | `parser.py` | 将原始日志行转换为 `LogEvent` 对象 |
| Detector | `detector.py` | 将检测规则应用于已解析的事件 |
| Formatter | `formatter.py` | 打印警报和运行摘要 |
| Models | `models.py` | 定义共享的数据类 |
| CLI | `main.py` | 通过命令行参数连接管道 |
原始日志行被视为不受信任的输入。该工具将它们作为文本读取,仅解析已知的模式,跳过不支持的行,并且绝不执行日志内容。
## 项目结构
```
ai-security-log-analyzer/
├── docs/
│ ├── architecture.md
│ ├── dev-notes.md
│ └── mvp-v1-plan.md
├── sample_logs/
│ └── auth_sample.log
├── src/
│ └── log_analyzer/
│ ├── detector.py
│ ├── formatter.py
│ ├── loader.py
│ ├── main.py
│ ├── models.py
│ └── parser.py
├── AGENTS.md
├── README.md
└── .gitignore
```
## 设置
### 前置条件
- Python 3.12
- Git
- 推荐使用 VS Code
- 推荐使用 Docker 进行 Dev Container 工作流
### 依赖
MVP v1 目前仅使用 Python 标准库。无需安装任何包。
### 克隆仓库
```
git clone https://github.com/tlolod/ai-security-log-analyzer.git
cd ai-security-log-analyzer
```
## Docker Dev Container 工作流
本项目旨在 Docker Dev Container 内部进行开发。容器化的工作流有助于保持 Python 环境的一致性,并与主机隔离。
推荐工作流:
1. 在 VS Code 中打开仓库。
2. 如果需要,安装 Dev Containers 扩展。
3. 在容器中重新打开项目。
4. 从容器终端内部开发和运行分析器。
使用 Dev Container 对于网络安全学习项目特别有用,因为它支持可复现和隔离的开发。
## 示例用法
分析包含的样本日志:
```
PYTHONPATH=src python -m log_analyzer.main --file sample_logs/auth_sample.log --year 2026
```
使用自定义阈值和检测窗口:
```
PYTHONPATH=src python -m log_analyzer.main \
--file sample_logs/auth_sample.log \
--threshold 5 \
--window 10 \
--year 2026
```
## 示例输出
示例警报输出:
```
=== ALERTS ===
{
"alert_type": "brute_force_suspected",
"severity": "medium",
"message": "Detected 5 failed login attempts from 203.0.113.10 within 10 minutes.",
"source_ip": "203.0.113.10",
"first_seen": "2026-05-11T21:33:01",
"last_seen": "2026-05-11T21:37:55",
"failed_count": 5,
"evidence": [
"May 11 21:33:01 server sshd[1234]: Failed password for invalid user admin from 203.0.113.10 port 54231 ssh2",
"May 11 21:34:12 server sshd[1235]: Failed password for invalid user admin from 203.0.113.10 port 54232 ssh2",
"May 11 21:35:25 server sshd[1236]: Failed password for invalid user admin from 203.0.113.10 port 54233 ssh2"
]
}
=== RUN SUMMARY ===
Total lines: 11
Parsed events: 7
Skipped lines: 4
Alerts generated: 1
```
随着检测规则的演进,输出可能会略有不同。
## 安全说明
本项目将日志数据视为不受信任的输入。
安全原则:
- 绝不执行日志内容
- 绝不将原始日志内容传递给 shell 命令
- 仅解析已知的模式
- 安全地跳过不支持的行
- 使用经过脱敏处理的样本日志
- 保持检测逻辑的确定性和可解释性
## 学习目标
本项目旨在练习:
- Python 3.12 开发
- 数据类和类型提示
- 使用 `pathlib` 进行文件处理
- 基于正则表达式的日志解析
- 简单的安全检测规则
- 使用 `argparse` 进行 CLI 设计
- 分层软件架构
- Docker Dev Container 工作流
- 安全的 AI 辅助开发实践
## 路线图
计划或可能的未来改进:
- 为解析器和检测器行为添加单元测试
- 添加 JSON 输出模式
- 添加对阈值配置文件的支持
- 支持更多身份验证日志格式
- 添加更多检测规则
- 添加结构化错误报告
- 在 MVP 稳定后添加 AI 生成的警报摘要
- 在后续版本中添加小型仪表板
- 根据需要扩展 Dev Container 配置
## 文档
其他项目说明:
- [架构](docs/architecture.md)
- [MVP v1 计划](docs/mvp-v1-plan.md)
- [开发说明](docs/dev-notes.md)
- [AI 助手指南](AGENTS.md)
## 许可证
本项目目前用于教育和作品集目的。可能会在以后添加许可证。
标签:AI辅助开发, AMSI绕过, DevSecOps, Docker, MVP, Python, SIEM基础, SSH暴力破解, 上游代理, 失败登录检测, 威胁检测, 安全编码, 安全防御评估, 开发容器, 异常检测, 新手友好, 无后门, 日志解析, 瑞士军刀, 管道架构, 红队行动, 网络安全, 证书伪造, 请求拦截, 身份验证日志, 隐私保护