ItsMazzu/security-log-analyzer

GitHub: ItsMazzu/security-log-analyzer

一款用于检测认证日志中暴力破解、凭证填充等威胁的SOC风格安全分析工具,适合安全学习和蓝队入门。

Stars: 0 | Forks: 0

# 安全日志分析器 一款专业的安全运营中心 (SOC) 风格认证日志分析工具,可实时检测和分类安全威胁。 ## 概述 本项目通过分析认证日志来演示真实的安全监控,旨在识别: - **暴力破解攻击**:针对同一账户的多次登录尝试 - **凭证填充**:来自同一 IP 针对多个账户的尝试 - **账户盗用模式**:可疑的“先失败后成功”登录序列 - **已知恶意 IP**:检测来自黑名单 IP 的活动 ### 主要特性 ✓ **基于时间的暴力破解检测**(60 秒内失败 5 次以上) ✓ **高级威胁分类**(可检测多种攻击模式) ✓ **账户盗用模式识别**(失败后紧接着成功) ✓ **IP 黑名单支持**,用于已知恶意地址 ✓ **专业终端 UI**,采用 Rich 格式化 ✓ **批量数据库操作**,使用 `executemany()` ✓ **严格的日期时间验证**,而非正则表达式模式 ✓ **模块化、易于学习的架构** ## 项目结构 ``` security-log-analyzer/ ├── src/ │ ├── __init__.py # Package initialization │ ├── main.py # Application entry point & orchestration │ ├── parser.py # CSV loading and validation │ ├── analyzer.py # Threat detection logic │ ├── database.py # SQLite operations │ └── ui.py # Rich terminal formatting ├── config/ │ └── malicious_ips.txt # IP blacklist ├── data/ │ └── auth_logs.csv # Input log data ├── database/ │ └── logs.db # SQLite database (auto-created) ├── run.py # Entry point script ├── requirements.txt # Dependencies └── README.md # This file ``` ## 安装 ### 1. 安装依赖 ``` pip install -r requirements.txt ``` ### 2. 添加恶意 IP(可选) 编辑 `config/malicious_ips.txt` 以添加已知的恶意 IP 地址: ``` # 每个 IP 一行,注释以 # 开头 192.168.1.254 10.0.0.1 203.0.113.45 ``` ## 用法 ### 运行分析器 ``` python run.py ``` ### 输出部分 **1. 认证日志表** - 显示所有解析后的日志条目 - 颜色编码状态(绿色 = 成功,红色 = 失败) **2. 摘要统计** - 总日志数、成功/失败计数 - 唯一用户数和 IP 地址数 **3. 检测到的威胁** - 具有攻击分类的威胁 IP 列表 - 显示尝试次数和攻击类型 **4. 可能的账户盗用** - 标记可疑模式:多次失败后紧接着成功 - 用于检测密码破解成功或账户接管 **5. 已知恶意 IP 活动** - 高亮显示来自黑名单 IP 的活动 ## 工作原理 ### 阶段 1:加载与解析 **模块**:`parser.py` - 加载 CSV 认证日志 - 使用 `datetime.strptime()` 验证时间戳(确保日期实际有效) - 使用正则表达式模式验证 IP 地址 - 返回干净、经过验证的日志列表 ### 阶段 2:存入数据库 **模块**:`database.py` - 使用 `cursor.executemany()` 进行高效的批量插入 - 单次操作处理 63 条日志,而非 63 个单独查询 - 存储在 SQLite 中,并对时间戳和 IP 字段建立索引 ### 阶段 3:威胁分析 **模块**:`analyzer.py` #### 基于时间的暴力破解检测 ``` # 在 60 秒窗口内检测到 5 次以上失败 # 比单纯计算总尝试次数更真实 ``` #### 凭证填充识别 ``` # 识别来自同一 IP 针对 3 个以上不同用户的尝试 # 提示正在测试预泄露密码列表 ``` #### 账户盗用模式 ``` # 标记:2 次以上失败登录尝试后紧跟成功登录 # 可能表示密码破解成功或用户重新获得访问权限 ``` #### 已知恶意 IP 检测 ``` # 将所有尝试 IP 与 config/malicious_ips.txt 进行比对 # 高亮显示所有匹配项 ``` ### 阶段 4:显示结果 **模块**:`ui.py` - 使用 Rich 库进行专业终端输出 - 针对不同威胁类别的颜色编码面板 - 用于日志显示的可读表格 - 状态指示器和统计数据 ## 代码示例 ### 示例 1:攻击分类 ``` # 分析器自动分类攻击类型 # 单一攻击类型: "Potential Brute Force Attack" # 检测到多种攻击模式: "Potential Brute Force & Credential Stuffing Attack" ``` ### 示例 2:自定义威胁检测 向 `analyzer.py` 添加新的检测逻辑: ``` def detect_unusual_hours(logs): """Detect login attempts during unusual hours (e.g., 2-4 AM)""" unusual = {} for log in logs: time = parse_timestamp(log['timestamp']).hour if time in [2, 3, 4]: # 2-4 AM ip = log['ip'] unusual[ip] = unusual.get(ip, 0) + 1 return unusual ``` 然后添加到 `get_threat_summary()` 并在 `ui.py` 中显示。 ### 示例 3:扩展黑名单 ``` # config/malicious_ips.txt # 已知僵尸网络 IP 192.0.2.1 198.51.100.5 # Tor 出口节点 203.0.113.10 203.0.113.11 ``` ## 学习成果 本项目教授: 1. **真实安全概念** - 不同的攻击模式及其特征 - SOC 如何检测威胁 - 实用的日志分析 2. **Python 最佳实践** - 模块化代码架构 - 用于清晰说明的类型提示 - 正确的错误处理 - 日期时间操作(而非正则表达式!) 3. **数据库操作** - SQLite 批量插入 (`executemany`) - 高效的数据存储 - 索引查询 4. **终端用户界面** - 用于专业输出的 Rich 库 - 颜色编码警报 - 格式化表格和面板 5. **安全分析** - 日志解析与验证 - 模式识别 - 威胁分类 ## 测试 ### 使用样本数据运行 包含的 `data/auth_logs.csv` 包含 63 个样本条目,其中有: - 成功登录 (19) - 失败尝试 (44) - 3 种不同的暴力破解攻击模式 - 账户盗用尝试 - 凭证填充尝试 ### 修改日志以进行自定义测试 编辑 `data/auth_logs.csv` 以添加您自己的测试场景: ``` timestamp,username,ip,status 2026-03-01 12:00:00,admin,192.168.1.1,failed 2026-03-01 12:00:05,admin,192.168.1.1,failed 2026-03-01 12:00:10,admin,192.168.1.1,failed ``` ## 性能说明 - **批量插入速度**:单次操作存储约 63 条日志(对比 63 次单独操作) - **检测算法**:所有分析器的复杂度均为 O(n) - **内存使用**:极低 - 所有数据存储在简单的字典中 ## 未来增强 在不过度工程化的前提下可能的补充: - [ ] 基于地理位置的警报(来自遥远 IP 的异地登录) - [ ] 跨多次运行的惯犯追踪 - [ ] 检测到的威胁 CSV 导出 - [ ] 警报严重级别(低/中/高/严重) - [ ] 速率限制统计 - [ ] 失败登录恢复时间分析 ## 项目状态 **重构版 v1.0** - 2026 年 3 月 相较原版的主要改进: - ✓ 易于维护的模块化架构 - ✓ 正确的日期时间验证 - ✓ 批量数据库操作 - ✓ 增强的威胁检测 - ✓ 账户盗用模式识别 - ✓ IP 黑名单支持 - ✓ 更清晰的代码组织 - ✓ 全面的文档 ## 技术 - **Python 3.8+** - **Rich 13.7.0** - 终端格式化 - **SQLite** - 数据库存储 - **标准库** - datetime, csv, collections, pathlib ## 作者 安全分析学习项目 ## 许可证 仅供教育用途
标签:AMSI绕过, ATT&CK模拟, IP黑名单, PoC, Python, Rich库, SQLite, 代码示例, 凭证填充, 威胁检测, 安全运营中心, 异常检测, 撞库, 数据分析, 无后门, 暴力破解, 红队行动, 终端UI, 网络安全, 网络映射, 账户接管, 隐私保护