Skip to content

Feature: Host Triage / Live Incident Response Collector #8

@Hackerchen716

Description

@Hackerchen716

定位

BLA 后续需要支持授权主机活体应急排查,用于在日志发现攻击迹象后继续确认主机侧是否存在 WebShell、后门、异常进程、计划任务、可疑文件、横向移动和持久化痕迹。

这个功能不应该一开始做成“远控工具”或“自动修复工具”,第一阶段只做只读检查 + 结构化报告 + 与日志分析结果关联

背景

现有 BLA 已经能分析本地日志、P0 结构化日志、Web access、Linux auth、Windows XML/EVTX,并输出 HTML/JSON/CSV/IOC/SARIF 报告。

但真实应急响应中,日志告警只是第一步:

  • Web 日志发现 cmd=whoami,还要检查 Web 目录有没有落地文件;
  • auth.log 发现爆破成功,还要检查登录后执行了什么;
  • 堡垒机日志发现高危命令,还要检查主机进程、计划任务、文件修改;
  • EDR 告警 WebShell,还要把证据写进统一报告。

因此 Host Triage 是 BLA 从“日志分析器”升级为“蓝队应急辅助工具”的第二阶段能力。

MVP 范围

第一版只支持 Linux 主机,只读排查。

检查项

  • 进程检查:ps 输出中的可疑进程、反弹 shell、异常解释器;
  • 网络连接:ss / /proc/net 中的异常外联、监听端口;
  • 登录痕迹:当前用户、最近登录、失败登录摘要;
  • 账号检查:新增用户、UID 0 异常用户、可疑 SSH key;
  • 计划任务:系统 crontab、用户 crontab、systemd timer;
  • Web 目录:最近修改文件、可疑 PHP/JSP/ASP 文件;
  • WebShell 函数:evalassertsystemshell_execpassthrubase64_decodefile_put_contents 等;
  • 临时目录:/tmp/var/tmp/dev/shm 可疑脚本和 ELF;
  • 持久化:systemd service、rc.local、profile/bashrc 写入。

重要边界

  • 只读排查;
  • 不删除文件;
  • 不 kill 进程;
  • 不修改配置;
  • 不自动封禁 IP;
  • 不允许用户输入任意命令;
  • 所有检查命令必须走白名单;
  • 输出必须保留原始证据,不要只给“可疑”结论。

推荐 CLI 形态

bla host-triage --local --web-root /var/www/html --out triage_report/
bla host-triage --host 1.2.3.4 --user root --web-root /var/www/html --since 24h --out triage_report/

第一版可以先做本地 Linux,再复用 Remote Collector 的 SSH 层做远程模式。

推荐实现拆分

1. bla/triage/models.py

定义结构化排查结果:

TriageFinding(
    id="triage-001",
    category="webshell",
    level="high",
    title="Web 目录发现疑似 WebShell 函数",
    evidence=[...],
    source="/var/www/html/upload/shell.php",
    recommendation="隔离样本并人工确认,不要直接删除原始证据",
)

2. bla/triage/linux.py

实现 Linux 只读检查项。

3. bla/triage/report.py

把排查结果纳入 HTML/JSON 报告。

4. 与日志分析关联

如果日志中出现 WebShell、命令执行、爆破成功等告警,Host Triage 报告应能指出:

  • 哪个日志告警触发了主机排查;
  • 主机排查发现了哪些对应证据;
  • 还缺哪些日志需要补采。

验收标准

  • 本地 Linux 模式可运行,只读检查;
  • 可输出 JSON 结构化结果;
  • 可输出 HTML 排查报告;
  • 可指定 Web 根目录;
  • 可按最近修改时间筛选文件;
  • 可发现常见 WebShell 函数痕迹;
  • 可发现可疑计划任务;
  • 可发现可疑监听端口/外联连接;
  • 不允许任意命令执行;
  • 有单元测试覆盖命令白名单和输出结构。

后续扩展

  • 与 Remote Log Viewer 共享 SSH 连接层;
  • Windows 主机 triage;
  • Docker 容器内部 triage;
  • Kubernetes 节点/Pod triage;
  • 基线对比;
  • 一键生成应急复盘材料。

优先级

P1。

建议在 Remote Log Viewer MVP 完成后启动;不要抢在远程日志采集之前做复杂远程主机排查。

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    Status
    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions