wxin10/HostLogInsight

GitHub: wxin10/HostLogInsight

一款本地运行的支持 Windows/Linux 主机日志分析、应急响应取证分流的跨平台安全工具。

Stars: 0 | Forks: 0

# HostLogInsight HostLogInsight 是一款本地 Windows/Linux 主机日志分析工具,可用于应急响应、主机审计、取证分流、Web 日志审查以及可疑行为发现。它在本地运行,不会上传日志,也不需要云服务。 当前的 UI 主要侧重于: - 事件数量 - 分析项数量 - 异常项数量 - 结构化模块表格 - 证据回溯 风险评分和置信度不再是主要工作流程。GUI 和 CLI 现在倾向于生成易读的摘要、分类的 Windows 事件视图以及作为证据的原始日志。 ## 功能 - 跨平台的 CLI 和 PySide6 GUI。 - 从 `resources/default_paths.yaml` 发现默认路径。 - 支持用户添加文件、目录和 glob 路径。 - 时间范围过滤:最近 `1h`、`6h`、`24h`、`7d`、`30d` 或自定义起止时间。 - 通过 PowerShell `Get-WinEvent` 收集 Windows 事件日志并输出 XML。 - 对 Windows 安全日志进行预检,以确保 4624 的可读性。 - 按 EventID 对安全通道进行批量处理,包括 `4624`、`4625`、`4648`、`4672`、`4778` 和 `4779`。 - 通过 `journalctl` 收集 Linux journal。 - 采用 `utf-8`、`gbk` 和 `latin-1` 回退机制进行流式文本日志收集。 - 支持解析 Windows 事件、Linux syslog/auth 日志、Nginx、Apache、IIS、Tomcat、MSSQL、MySQL、PostgreSQL 以及普通文本。 - 针对会话保存提供聚合摘要和告警。*(译者注:原文 SQLite 及后续数据库内容似乎在部分段落中缺失,按照源文本字面意思翻译:)* 针对会话提供聚合摘要和告警。 - 在 Windows 上通过 `Get-WinEvent -Path` 离线导入 `.evtx`。 ## Windows 分析 Windows 分析按事件类型进行组织,而不是采用普通的活动行: - Windows 登录分析:`4624`、`4625`、`4648`、`4672` - RDP 分析:`4624/4625 LogonType=10`、`1149`、`4778`、`4779`、`21`、`22`、`24`、`25` - PowerShell 分析:原始行为摘要和可疑行为 - 服务分析:`7045`、`7036`、`7040` - 计划任务分析:`4698`、`4702`、`106`、`140` - 进程创建:`4688` - 日志清除:`1102`、`104` Windows 事件解析优先使用 XML `EventData`,如果不可用则回退到消息文本。提取的字段包括用户、域、源 IP、工作站/客户端、登录类型、进程、命令行、通道、EventID 和原始证据。 ### 管理员权限 在 Windows 上,分析安全日志时请以管理员身份运行 HostLogInsight。如果没有管理员权限,`4624`、`4625`、`4648` 和 `4672` 可能会为空或不完整。 在分析开始时,HostLogInsight 会检查: ``` Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4624} -MaxEvents 1 ``` GUI 状态区域会显示安全日志是否可读。如果不可读,状态栏和 CLI 输出会解释可能的原因是权限被拒绝、日志不可用,还是没有匹配的事件。 ## 安装说明 ``` python -m venv .venv .venv\Scripts\activate pip install -r requirements.txt ``` 在 Linux 上: ``` python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt ``` ## 常用命令 启动 GUI: ``` python main.py --gui ``` 运行 24 小时范围的 CLI 分析: ``` python main.py --cli --last 24h ``` 列出发现的来源: ``` python main.py --cli --last 24h --list-sources ``` 仅分析系统来源。这包括 Windows 事件日志和 Linux journal 来源,不包括普通文本文件: ``` python main.py --cli --last 24h --source system ``` 增加 Windows 事件日志查询深度: ``` python main.py --cli --last 24h --max-events 20000 ``` 分析自定义时间范围: ``` python main.py --cli --start "2026-01-01 00:00:00" --end "2026-01-02 00:00:00" ``` 添加额外路径: ``` python main.py --cli --add-path C:\inetpub\logs\LogFiles --last 24h python main.py --cli --add-path "/var/log/nginx/*.log" --source web python main.py --cli --add-path "./Security.evtx" --last 30d ``` ## 故障排除 检查 PySide6: ``` python -c "from PySide6.QtWidgets import QApplication; print('QtWidgets OK')" ``` 手动检查 Windows 安全日志的可读性: ``` Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4624} -MaxEvents 1 ``` 运行 CLI 并显示更详细的来源信息: ``` python main.py --cli --last 24h --debug ``` 如果在 Windows 上登录分析结果为空: - 以管理员身份运行终端 - 验证安全日志是否可读 - 检查所选时间范围内是否包含 4624/4625 事件 - 确认已启用相关的 Windows 审核策略 - 如果安全日志非常繁忙,请增加 `--max-events` 如果出现 PowerShell 噪音: - HostLogInsight 会使用 `HostLogInsightCollector` 标记其自身的 Get-WinEvent 收集命令 - `Get-WinEvent`、`Get-CimInstance`、`ConvertTo-Json` 以及收集器命令行会从可疑的 PowerShell 结果中过滤掉 - 正常的 PowerShell 引擎生命周期事件(如 `400`、`403` 和 `600`)本身不会被视为可疑行为 ## EVTX 离线导入 `.evtx` 文件会被识别为 Windows 事件来源。在 Windows 上,HostLogInsight 会调用: ``` Get-WinEvent -Path ``` 并应用选定的时间范围。在 Linux 或其他平台上,EVTX 来源会被标记为 `unsupported`,分析过程会继续执行。 ## Web 日志分析 支持的 Web 格式包括 IIS W3C、Nginx/Apache 组合访问日志以及 Tomcat 访问日志。解析的字段包括时间戳、源 IP、方法、URL、状态码、User-Agent、Referer、响应大小、HTTP 版本、请求时间(如果存在)、源路径和原始证据。 Web 分析会汇总排名靠前的 IP、排名靠前的 URL、状态码分布、可疑路径、SQL 注入、XSS、命令注入、路径遍历、扫描器 User-Agent、404 突增以及 5xx 激增情况。 ## 数据库日志分析 MSSQL、MySQL/MariaDB 和 PostgreSQL 分析会汇总身份验证失败、特权账户行为、权限变更、导出/备份活动、高风险命令以及可疑的管理操作。 ## 项目布局 ``` core/ shared models, time ranges, discovery, rules, storage, engine collectors/ Windows Event Log, Linux journal, and file collectors parsers/ parsers that normalize logs to LogEvent analyzers/ focused abnormal behavior modules gui/ PySide6 desktop interface rules/ YAML rules resources/ default path configuration tests/ pytest coverage ``` ## 安全性 HostLogInsight 能够捕获缺失路径、权限错误、解析失败和收集器故障。来源状态会被保留,以便操作员可以查看哪些来源可用、被跳过、被拒绝或仅被部分解析。
标签:AI合规, PE 加载器, PySide6, Python, XXE攻击, 安全规则引擎, 库, 应急响应, 数字取证, 无后门, 自动化脚本, 逆向工具