GaryCollinsAI-Sec/Automated-Incident-Response-Triage-Tool

GitHub: GaryCollinsAI-Sec/Automated-Incident-Response-Triage-Tool

一款基于 Bash 的轻量级 Linux 实时取证与威胁狩猎工具,用于在安全事件中快速采集易失性证据并检测内存驻留威胁。

Stars: 0 | Forks: 0

🛡️ 自动化事件响应取证工具

Linux 取证 • 威胁狩猎 • 易失性内存分析 • 事件响应


📌 概述

自动化事件响应取证工具是一个轻量级的 Linux 取证框架,专为在活跃的安全事件期间进行 快速的实时系统调查而设计。

该工具使用 Bash 构建,旨在获取易失性证据,通过在证据 被篡改、删除或从内存中丢失之前收集高价值的 取证遥测数据,实现了基于主机的事件响应流程的 早期阶段自动化。

该项目主要侧重于:

  • 实时主机取证收集
  • 内存驻留威胁检测
  • Linux 进程检查
  • 持久化审计
  • 安全日志保全
  • 对手模拟与检测验证

该工具是在隔离的 Linux 安全 实验室环境中,使用受控的、非破坏性的对手模拟技术 开发和验证的。


🚀 核心功能

🔍 实时系统取证

快速从实时 Linux 系统中收集关键的取证证据,以保存状态指标。

捕获的证据

  • 活动的网络连接
  • 监听套接字
  • 运行中的进程树
  • 交互式用户会话
  • 身份验证历史记录
  • 持久化机制
  • 系统日志
  • Shell 配置文件修改

🧠 易失性内存狩猎

通过 Linux 内核 进程元数据实现了轻量级的内存狩猎逻辑。

检测逻辑包括

  • 已删除但仍在运行的二进制文件
  • 从易失性目录中执行
  • 可疑的运行时执行路径
  • 内存驻留进程指标

目标目录

/tmp

/dev/shm

  

⚔️ 对手模拟

使用受控的对手模拟工作流来验证运行时 检测能力。通过执行一个安全的独立实用程序,掩盖其路径, 并在它于 RAM 中活跃时取消与磁盘文件的链接,该框架成功识别了:

  • 掩盖执行的进程
  • 解耦的运行时二进制文件
  • 已删除的内存驻留可执行文件
  • 可疑的活动执行状态

🛠️ 展示的技术技能

  • 数字取证:实时 Linux 证据获取与易失性证据保全
  • 威胁狩猎:检测隐蔽执行技术和内存驻留二进制文件
  • Bash 脚本编写:自动化的取证分类工作流和证据打包
  • Linux 内部原理:使用 /proc 文件系统进行进程检查
  • 对手模拟:模拟的、非破坏性的防御规避验证测试
  • 安全运营:面向 SOC 的事件调查工作流
  • 系统管理:Linux 审计、持久化分析和日志保全
  • 虚拟化:使用 VirtualBox 部署强化的、网络隔离的实验室环境

🧩 架构概述

实时主机

   ↓

证据收集

   ↓

进程与内存分析

   ↓

持久化枚举

   ↓

日志保全

   ↓

证据打包

   ↓

  

📂 证据收集类别

  • 网络审计:枚举套接字、监听器和活动连接
  • 进程分析:捕获进程树和可疑的运行时行为
  • 内存狩猎:通过 ProcFS 检测仍在内存中执行的已删除二进制文件
  • 用户审计:审查活动会话和登录历史记录
  • 持久化分析:识别 cron 作业和 shell 持久化钩子
  • 日志保全:保全关键的身份验证和系统日志
  • 打包:将取证证据压缩到安全的调查包中

💻 检测逻辑示例

已删除二进制文件检测

#!/bin/bash



echo "[!] Hunting for deleted binaries executing in memory..."



ls -al /proc/*/exe 2>/dev/null | grep '(deleted)' \

  

此逻辑用于识别已执行但随后从磁盘 删除,却仍在内存中保持活动状态的进程。

这些行为通常与以下情况相关:

  • 无文件恶意软件技术
  • 防御规避
  • 仅运行时执行的 payload
  • 反取证活动

🧪 取证分类工作流示例

#!/bin/bash

# # Live Linux Incident Response Triage Tool

# 目的:从可疑的被入侵主机收集易失性取证数据。

# 注意:必须使用 sudo/root 权限运行。



# 确保脚本以 root 身份运行

if [ "$EUID" -ne 0 ]; then

    echo "[-] Error: This script must be run as root to gather forensic artifacts." >&2

    exit 1

fi



# 设置 Output Directories

TIMESTAMP=$(date +%Y%m%d_%H%M%S)

HOSTNAME=$(hostname)

OUT_DIR="/tmp/triage_${HOSTNAME}_${TIMESTAMP}"

mkdir -p "$OUT_DIR"



echo "[+] Starting Triage on $HOSTNAME at $(date)"

echo "[+] Artifacts will be saved to: $OUT_DIR"

echo "--------------------------------------------------"



# --- 1. NETWORK AUDITING ---

audit_network() {

    echo "[*] Collecting Network Sockets..."

    # Get active listening and established connections with PIDs/Process Names

    ss -tulpn > "$OUT_DIR/net_listening.txt" 2>&1

    ss -atp > "$OUT_DIR/net_all_connections.txt" 2>&1

}



# --- 2. PROCESS ANALYSIS ---

audit_processes() {

    echo "[*] Capturing Running Processes..."

    ps auxf > "$OUT_DIR/process_tree.txt"

    

    # Flag processes running from temporary/volatile directories (Common for malware)

    echo "[!] Checking for suspicious execution paths (/tmp, /dev/shm)..."

    ls -al /proc/*/exe 2>/dev/null | grep -E '(/tmp|/dev/shm|/run)' > "$OUT_DIR/suspicious_proc_paths.txt"

}



# --- 3. PERSISTENCE CHECKING ---

audit_persistence() {

    echo "[*] Auditing Scheduled Tasks and Backdoors..."

    # Dump all user crontabs

    for user in $(cut -f1 -d: /etc/passwd); do

        crontab -u "$user" -l > "$OUT_DIR/cron_$user.txt" 2>/dev/null

    done

    

    # Grab system-wide cron locations

    ls -la /etc/cron* /etc/anacrontab > "$OUT_DIR/system_cron_list.txt" 2>&1

    

    # Inspect user shell profiles for suspicious additions (e.g., reverse shells)

    tail -n 20 /etc/profile /etc/bash.bashrc ~/.bashrc ~/.bash_profile > "$OUT_DIR/shell_profiles_tail.txt" 2>/dev/null

}



# --- 4. LOG PRESERVATION ---

preserve_logs() {

    echo "[*] Preserving Security and System Logs..."

    # Copy the tail end of critical security logs

    tail -n 500 /var/log/auth.log > "$OUT_DIR/auth_log_tail.txt" 2>/dev/null

    tail -n 500 /var/log/secure > "$OUT_DIR/secure_log_tail.txt" 2>/dev/null

    tail -n 500 /var/log/syslog > "$OUT_DIR/syslog_tail.txt" 2>/dev/null

}



# --- 5. PACKAGING ---

package_artifacts() {

    echo "--------------------------------------------------"

    echo "[*] Packaging artifacts..."

    TAR_FILE="/tmp/triage_${HOSTNAME}_${TIMESTAMP}.tar.gz"

    tar -czf "$TAR_FILE" -C "/tmp" "triage_${HOSTNAME}_${TIMESTAMP}"

    

    # Clean up the uncompressed directory to keep host tidy

    rm -rf "$OUT_DIR"

    echo "[+] Triage Complete! Investigation bundle saved to: $TAR_FILE"

}



# 运行执行序列

audit_network

audit_processes

audit_persistence

preserve_logs

  

输出示例

/tmp/triage_test-VirtualBox_20260520_203552.tar.gz

生成的文件包包含结构化的取证证据,用于离线 调查和分析人员审查。


📸 项目证据

检测引擎逻辑

Detection Engine Logic ```
Detection logic identifying deleted but actively executing binaries through Linux kernel process metadata.
```

模拟威胁检测

Simulated Threat Detection ```
Successful interception of a simulated stealth execution technique during adversary emulation testing.
```

📈 开发路线图

✅ 阶段 1 — 已完成

  • 构建核心取证收集框架
  • 实现易失性内存狩猎引擎
  • 添加已删除二进制文件检测逻辑
  • 通过非破坏性对手模拟验证了运行时检测
  • 实现证据打包工作流

🚧 阶段 2 — 活跃开发中

证据解析优化

减少环境噪声并提高分析人员的信噪比。

SOC/SIEM 集成

为 SIEM 和 SOAR 平台构建自动化摄取工作流。

自动化响应动作

研究自动化的主机隔离和富化能力。


🔐 使用的技术

  • Linux
  • Bash
  • ProcFS
  • VirtualBox
  • 事件响应
  • 威胁狩猎
  • 数字取证
  • 系统审计
  • 安全运营

⚠️ 免责声明

本项目的开发严格用于:

  • 教育目的
  • 防御性安全研究
  • 事件响应培训
  • 受控的对手模拟

所有测试均在安全的隔离实验室环境中进行。在开发或验证期间未使用任何危险的或实际的恶意代码。


标签:Bash, HTTP工具, PB级数据处理, Web报告查看器, 安全运维, 库, 应急响应, 应用安全, 数字取证, 网络调试, 自动化, 自动化脚本