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暴力破解, 上游代理, 失败登录检测, 威胁检测, 安全编码, 安全防御评估, 开发容器, 异常检测, 新手友好, 无后门, 日志解析, 瑞士军刀, 管道架构, 红队行动, 网络安全, 证书伪造, 请求拦截, 身份验证日志, 隐私保护