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, 安全规则引擎, 安全运营, 扫描框架, 文档结构分析, 无后门, 逆向工具