atharva07-cyber/log-analyzer-tool

GitHub: atharva07-cyber/log-analyzer-tool

一款纯命令行安全日志分析工具,支持多格式日志解析、异常检测和跨源事件关联,帮助快速发现和研判安全事件。

Stars: 0 | Forks: 0

# 日志分析工具 — 日志关联 一款纯命令行工具(无 Web UI,无服务器端),用于解析安全日志、 检测异常,并**跨多个日志源**关联事件以 发现安全事件。可在 PowerShell、cmd.exe 或任何 shell 中运行。 ## 检测内容 | 检测器 | 描述 | |---|---| | `brute_force` | 单个 IP 在滚动时间窗口内发生 N 次以上登录失败 | | `credential_stuffing` | 单个 IP 在短时间内尝试多个不同的用户名 | | `unusual_hour` | 在配置的工作时间之外成功登录 | | `web_scan` | 单个 IP 在短时间内访问多个不同的路径/触发大量 404(枚举) | | `first_seen_ip_success` | 某 IP 在日志中的首次出现即为一次成功登录 | ## 关联(跨日志源) - **暴力破解 → 成功**:某 IP 发生多次连续登录失败后,在同一时间窗口内紧跟一次成功登录,将被标记为 `CRITICAL` 级别的“疑似账号被盗用”事件。 - **侦察 → 攻击**:某 IP 被检测到正在扫描 Web 日志(产生大量 404),并且*同时*在同一时间窗口内的 auth 日志中尝试了身份验证,将被标记为 `HIGH` 级别的“侦察后进行身份验证尝试”事件 —— 这就是跨独立解析日志文件的多源关联。 ## 支持的日志格式 - `linux_auth` — `/var/log/auth.log` SSH 日志(Failed/Accepted password, Invalid user) - `apache_combined` — Apache/Nginx combined access logs - `windows_csv` — 通过 `Get-WinEvent -FilterHashtable @{LogName='Security';Id=4624,4625} | Export-Csv security.csv` 导出的 CSV - `syslog_generic` — 通用的 `Mon DD HH:MM:SS host proc: msg` syslog - 默认会自动检测格式;可使用 `--format` 覆盖。 ## 设置(PowerShell 或 cmd) ``` cd log_analyzer_tool pip install -r requirements.txt ``` ## 快速开始 — 生成示例数据并运行 ``` python log_analyzer.py generate-sample python log_analyzer.py analyze -i sample_data\auth.log sample_data\access.log -o report ``` 这将在控制台打印带有颜色区分的摘要,并生成 `report.json` 和 `report.csv` 文件。 ## 用法 ``` # 分析单个日志文件 python log_analyzer.py analyze -i C:\logs\auth.log # 一起分析多个日志(启用 cross-source correlation) python log_analyzer.py analyze -i auth.log access.log -o out\report # 强制使用特定 parser 而不是自动检测 python log_analyzer.py analyze -i security_events.csv --format windows_csv # 调整检测阈值 python log_analyzer.py analyze -i auth.log --window 10 --failed-threshold 3 --business-start 8 --business-end 18 ``` ### 选项 ``` -i, --input One or more log file paths (required) -o, --output Output report path prefix -> writes .json and .csv --format auto | linux_auth | apache_combined | windows_csv | syslog_generic --window Correlation / brute-force window in minutes (default 5) --failed-threshold Failed logins in window to flag brute force (default 5) --business-start/-end Business hours range used for unusual_hour detection (default 7-20) ``` ## 项目结构 ``` log_analyzer_tool/ ├── log_analyzer.py # CLI entry point (argparse) ├── core/ │ ├── models.py # Event / Anomaly / Incident data classes │ ├── parsers.py # Log format parsers + auto-detection │ ├── detectors.py # Anomaly detection rules │ ├── correlator.py # Cross-source correlation -> incidents │ └── reporter.py # Colored console output + JSON/CSV reports ├── sample_data/ │ └── generate_logs.py # Generates test logs with injected anomalies └── requirements.txt ``` ## 扩展功能 - 添加新的日志格式:在 `core/parsers.py` 中编写 `parse_()` 函数,使其返回 `Event` 对象列表,然后将其接入 `parse_file()` 中。 - 添加新的检测规则:在 `core/detectors.py` 中编写 `detect_()` 函数,使其返回 `Anomaly` 对象列表,然后将其添加到 `run_all_detectors()` 中。 - 添加新的关联模式:在 `core/correlator.py` 中编写一个返回 `Incident` 对象列表的函数,并将其添加到 `build_incidents()` 中。
标签:Homebrew安装, IP 地址批量处理, Python, 事件关联, 安全运营, 密码管理, 异常检测, 扫描框架, 文档结构分析, 无后门, 红队行动, 逆向工具