victorfengdj/ai-incident-response-agent

GitHub: victorfengdj/ai-incident-response-agent

该工具是一个 AI 驱动的 SOC 取证编排 Agent,通过整合 AWS Bedrock、VirusTotal 威胁情报和 SSH 远程命令执行,帮助分析师自动化调查 DMZ 入侵及 Oracle 数据库横向移动事件。

Stars: 0 | Forks: 0

# AI 事件响应 Agent 一个由 AI 驱动的 SOC 取证编排器,用于调查源自互联网、攻击 DMZ Web 服务器并可能横向移动至内部 Oracle 数据库的潜在入侵行为。 该 agent 将 AWS Bedrock (Claude Haiku 4.5)、VirusTotal 威胁情报和基于 SSH 的远程命令执行整合到一个单一的交互式循环中。每个会话都会自动保存为 Markdown 案例日志。 ## 架构 ``` Analyst │ ├─ SIEM Alert (Palo Alto firewall log) │ │ │ ├─ VirusTotal IP Reputation Lookup │ └─ AWS Bedrock (Claude Haiku 4.5) │ │ │ └─ MITRE ATT&CK Analysis │ Forensic Commands │ Oracle Audit Queries │ Business Case │ ├─ SSH Remote Command Execution │ │ (allow-listed commands only) │ └─ DMZ Web Server / Oracle DB Host │ └─ Markdown Case Log (case_log_.md) ``` ## 前置条件 | 需求 | 备注 | |---|---| | Python 3.8+ | | | AWS 账户 | 在 `us-east-1` 启用 Bedrock | | AWS 凭证 | `aws configure` 或 IAM 角色 | | Bedrock 模型访问权限 | 在 AWS 控制台中申请 `Claude Haiku 4.5` 的访问权限 | | VirusTotal API 密钥 | 免费版即可 | | SSH 访问权限 | 建议对目标主机使用免密 SSH | ### Python 依赖项 ``` pip3 install boto3 requests python-dotenv ``` ## 设置 1. 克隆仓库: git clone cd ai-incident-response-agent 2. 创建一个 `.env` 文件并填入你的 VirusTotal API 密钥: VIRUSTOTAL_API_KEY=your_api_key_here 3. 确认已配置 AWS 凭证: aws sts get-caller-identity ## 用法 ``` python3 ai-incident-response-agent.py ``` 在提示符下输入 `help` 以查看完整的输入参考: ``` SIEM ALERT FORMAT (comma-separated key:value pairs): sm_log_type - Log source (e.g., Palo Alto Firewall) sm_src_ip - Source IP address (Internet-facing attacker) sm_dst_ip - Destination IP address (DMZ Web Server) sm_src_port - Source port number sm_dst_port - Destination port number sm_app - Application identified by the firewall (e.g., web-browsing, ssl) sm_action - Firewall action taken (e.g., allow, deny, drop) sm_oracle_db_ip - Internal Oracle Database IP for lateral movement analysis EXAMPLE: sm_log_type:Palo Alto Firewall, sm_src_ip:45.182.189.102, sm_dst_ip:10.0.0.4, sm_src_port:13424, sm_dst_port:443, sm_app:web-browsing, sm_action:allow, sm_oracle_db_ip:172.18.18.2 FREE-FORM QUESTIONS: You can also type any natural-language question or observation and the AI will analyse it in context. Example: "The web server process is running as root, is this a concern?" ``` ### 会话命令 | 命令 | 操作 | |---|---| | `help` | 显示输入格式和字段参考 | | `clear` | 重置 AI 对话记忆(开启全新上下文) | | `exit` | 结束会话 | ### 调查流程 1. 粘贴 SIEM 告警 —— agent 会自动查询 VirusTotal 并将丰富后的告警发送给 Bedrock。 2. AI 会返回映射了 MITRE ATT&CK 的分析结果、建议的取证命令、Oracle 审计 SQL 以及业务案例。 3. 在取证提示符下,输入目标 IP 和命令,即可通过 SSH 在远程主机上执行。执行输出将反馈给 AI 进行解读。 4. 对每个命令重复此操作,或按 Enter 键返回主提示符。 ## 远程命令白名单 出于安全考虑,远程主机上仅允许使用以下命令前缀(带或不带开头的 `sudo`): `grep` `journalctl` `ps` `who` `ls` `cat` `tail` `netstat` `ss` `sqlplus` `aureport` `ausearch` ## 案例日志 每个会话都会在工作目录中生成一个名为 `case_log_.md` 的 Markdown 案例日志。请将已完成的日志移动到 `case_logs/` 目录中进行归档。 以下提供了 [`case_logs/`](case_logs/) 中的调查示例: | 日志 | 源 IP | VT 结果 | 摘要 | |---|---|---|---| | [case_log_20260616_230901.md](case_logs/case_log_20260616_230901.md) | 45.182.189.102 | ⚠️ 恶意 (4 次命中) | 高严重性告警 —— 被 VirusTotal 标记的 IP 通过 HTTPS 攻击 DMZ Web 服务器;已确认 MITRE T1190 初始访问;已启动取证调查 | | [case_log_20260616_231954.md](case_logs/case_log_20260616_231954.md) | 156.146.98.8 | ✅ 干净 | 中等严重性告警 —— IP 信誉良好,但 HTTPS payload 不透明;未能排除向 Oracle 数据库的横向移动;已升级进行深度取证 | ## AWS Bedrock 模型 | 字段 | 值 | |---|---| | 提供商 | Anthropic | | 模型 | Claude Haiku 4.5 | | 推理配置 | `us.anthropic.claude-haiku-4-5-20251001-v1:0` | | 区域 | `us-east-1` | 跨区域推理配置(`us.` 前缀)是按需调用所必需的。如果没有预置吞吐量,则不支持直接使用模型 ID。
标签:AWS Bedrock, PE 加载器, 内存分配, 威胁情报, 安全运营, 库, 应急响应, 开发者工具, 扫描框架, 插件系统, 数字取证, 数据泄露, 自动化编排, 自动化脚本, 逆向工具