Muhammad-Rebaal/DFIR-Agent

GitHub: Muhammad-Rebaal/DFIR-Agent

DFIR-Agent 是一个基于大语言模型的自主数字取证与事件响应 AI 调查员,通过迭代式假设-查询-观察循环在遥测数据库中发现攻击链并自动生成调查报告。

Stars: 0 | Forks: 0

DFIR-Agent🕵🏻

![架构](https://static.pigsec.cn/wp-content/uploads/repos/cas/46/46161e4a82aa273b5e0f56934e09eaccae6ccf5543011909f2bdf65aa14a22f7.png) 一个自主的数字取证与事件响应(DFIR)AI 调查员。DFIR-Agent 使用大型语言模型(由 Groq 提供支持)来自主搜寻原始遥测数据,提出假设,针对证据数据库执行 SQL 查询,并有机地发现攻击链。 ## 功能 - **自主威胁狩猎**:采用迭代循环,代理在其中形成假设、对日志运行 SQL 查询、评估观察结果,并根据发现进行自我纠正。 - **模拟遥测数据库**:配备了全面的模拟数据集,包括登录日志、警报证据、电子邮件事件、收件箱规则、日历事件、文件访问日志等。 - **自动化报告**:自动生成专业的 DFIR 事件响应报告,总结执行摘要、攻击时间表、受损实体和泄露的数据。 - **反记忆(匿名化)测试**:通过重新生成匿名化环境来测试代理的逻辑推理和泛化能力。这确保了代理使用合理的取证方法,而不是简单地记忆基准数据。 - **评分与评估系统**:根据真实解决方案评估代理的最终答案和逐步调查路径,提供折扣奖励分数以衡量性能。 ## 架构 代理作为一个自主循环运行,与 SQLite 遥测数据库进行交互: 1. **思考与假设**:代理对事件提出理论。 2. **行动(`execute_sql`)**:使用 SQL 查询模拟环境(`simulated_db.db`)。 3. **观察**:摄取查询结果并将其记录下来。 4. **自我批评**:如果查询失败或没有结果,则调整查询。 5. **行动(`submit`)**:提交最终发现并触发自动报告生成。 ## 项目结构 - `main.py`:运行环境测试、重新生成匿名化数据库以及编排评估流程的入口点。 - `agent.py`:核心代理逻辑、系统提示、通过 Groq API 进行的 LLM 集成,以及 ReAct 风格的调查循环。 - `db.py`:数据库引擎设置以及使用 SQLite 和 Pandas 进行的安全 SQL 执行。 - `data.py`:模拟数据定义和包含模拟遥测日志的 DataFrames。 - `regenerate.py`:强大的匿名化功能,使用随机标识符替换特定的用户数据、IP 和 SID,以生成新的测试环境。 - `scorer.py`:包含奖励函数,用于根据预定义的真实解决方案路径评估记录和最终答案。 ## 设置与安装 1. **克隆存储库:** git clone cd DFIR-Agent 2. **安装依赖项:** 确保你已安装 Python 3.8+,然后运行: pip install -r requirements.txt 3. **设置环境变量:** 在根目录中创建一个 `.env` 文件并添加你的 Groq API 密钥: GROQ_API_KEY=your_groq_api_key_here ## 用法 要启动自主调查和评估: ``` python main.py ``` **执行流程:** 1. 在原始遥测数据集上运行基准环境测试。 2. 将执行日志和中间代理推理输出到控制台和 `log.txt`。 3. 生成初始 DFIR 报告(`report.txt`)。 4. 自动匿名化遥测数据并更新 SQLite 数据库。 5. 在新匿名化的环境中重新运行调查。 6. 生成匿名化的 DFIR 报告(`report_anonymized.txt`)。 7. 记录原始运行和匿名化运行的评估分数。 ## 调查方法论 提供给 AI 的提示强制执行以下方法论: - **假设驱动**:代理在尝试查询之前必须概述其思考过程。 - **探索性分析**:不允许盲目假设;指示代理探索 schema 和数据形状(使用 `LIMIT`、`DISTINCT` 等)。 - **自我纠正**:如果查询返回错误或 0 行,代理将被训练去分析失败原因,批评其假设并进行转向。 - **证据链**:发现的每个受损 IP、SID 或用户主体名称都作为调查下一步的枢轴点。
标签:C2, DLL 劫持, Sysdig, 大语言模型, 安全运营, 扫描框架, 自动化调查, 逆向工具