tejasreelevaku16/Hybrid_incident_response_agent

GitHub: tejasreelevaku16/Hybrid_incident_response_agent

一个基于 Python Tkinter 的教学型桌面应用,利用搜索算法、约束满足和对抗搜索等经典 AI 方法模拟网络安全事件的检测、推理与响应决策。

Stars: 0 | Forks: 0

# 混合事件响应 Agent 混合事件响应 Agent 是一个 Python Tkinter 桌面应用程序,其作用类似于一个小型的 AI 安全运营中心 (SOC)。它可以检测网络安全事件,对状况进行推理,搜索响应路径,使用 CSP 方法分配团队,模拟攻防(攻击者与防御者)决策,并推荐最终的响应措施。 ## 文件夹结构 ``` Hybrid_Incident_Response_Agent/ |-- main.py |-- incident_detector.py |-- search_algorithms.py |-- csp_module.py |-- adversarial_search.py |-- requirements.txt |-- README.md |-- assets/ | |-- icon.png ``` ## 如何在 VS Code 中运行 1. 在 Visual Studio Code 中打开此文件夹。 2. 确保已安装 Python。 3. 打开 `main.py`。 4. 运行: ``` python main.py ``` 不需要 Flask、HTML、CSS、浏览器或任何外部包。GUI 仅使用 Python Tkinter。 ## 预期输出 应用程序打开后,您将看到一个色彩丰富的 SOC 风格仪表板,其中包含: - 项目标题 - 事件下拉菜单 - 分析事件按钮 - 严重程度、状态、目标和最终防御卡片 - PEAS 框架面板 - 搜索算法面板 - CSP 分配面板 - 对抗搜索面板 - 可滚动的推理追踪面板 - 最终决策面板 选择如 `Data Breach`(数据泄露)的事件后,系统将显示: - 检测到的事件类型 - 严重程度,例如 `Critical`(严重) - BFS、DFS、Greedy Search 和 A* 路径 - 团队/资源/优先级分配 - Backtracking 和 Min-Conflicts 推理 - Adversarial Search 和 Alpha-Beta Pruning 结果 - 最终推荐的事件响应措施 ## GUI 截图示例描述 截图将展示一个带有青色标题和彩色卡片的专业深色仪表板。顶部区域包含标题和事件选择器。第一行显示严重程度和状态卡片,其中严重事件显示为红色,高危事件显示为橙色。下方则是独立的面板,分别展示 PEAS、搜索路径、CSP 资源分配、对抗决策、一个较大的可滚动推理追踪以及最终响应建议。 ## 课程成果映射 ### CO1:基础 AI 数据结构与编程 用于: - `incident_detector.py` - `search_algorithms.py` - `csp_module.py` - `main.py` 概念: - 数据类型:字符串、整数、字典、布尔值 - 列表:证据列表、PEAS 项目、图的邻居节点、任务列表 - 元组:图的边,例如 `("Triage", 1)` - 图:`search_algorithms.py` 中的事件响应图 - 树:`adversarial_search.py` 中的对抗博弈树 - 循环:遍历、CSP 检查、GUI 输出 - 函数:每个算法和分析步骤都是一个独立的函数 ### CO2:搜索算法 用于 `search_algorithms.py`。 - BFS 逐层寻找响应路径。 - DFS 深度探索单一分支。 - Greedy Search 选择具有最佳启发式估计值的节点。 - A* Search 结合实际成本和启发式成本。 这些算法用于寻找从 `Detect` 到 `Contain`、`Eradicate`、`Recover` 或 `Lessons Learned` 等目标的事件响应路径。 ### CO3:CSP、Backtracking 和 Min-Conflicts 用于 `csp_module.py`。 - CSP 变量:事件响应任务 - 域:可能的团队 - 约束条件:团队 suitability、专家要求、资源规则 - Backtracking:递归分配有效的团队 - Min-Conflicts:通过减少约束冲突来改进分配 最终分配会确定响应团队、工具/资源以及优先级。 ### CO4:对抗搜索与 Alpha-Beta Pruning 用于 `adversarial_search.py`。 - 防御者是 MAX 玩家。 - 攻击者是 MIN 玩家。 - Adversarial Search 评估攻防(攻击者与防御者)的结果。 - Alpha-Beta Pruning 避免评估那些无法改变最终结果的分支。 系统利用此机制来选择防御措施,例如 `Isolate Systems`。 ## Review-1 说明 本项目是一个用于处理网络安全事件的混合事件响应 Agent。它使用 Tkinter GUI,因此输出是图形化的并基于桌面。用户选择一个事件后,系统会检测事件类型,对其严重程度进行分类,并显示 PEAS 框架。接着,它应用 BFS、DFS、Greedy Search 和 A* Search 寻找事件响应路径。它使用 CSP、Backtracking 和 Min-Conflicts 在满足约束条件的前提下分配团队和资源。最后,它使用 Adversarial Search 和 Alpha-Beta Pruning 模拟攻击者和防御者的选择,然后推荐最佳的响应措施。 代码被划分为多个模块,以便于解释每一项课程成果: - `incident_detector.py` 负责检测、严重程度、PEAS 和推荐措施。 - `search_algorithms.py` 负责 BFS、DFS、Greedy 和 A*。 - `csp_module.py` 负责 CSP、Backtracking 和 Min-Conflicts。 - `adversarial_search.py` 负责攻防决策制定。 - `main.py` 将所有内容连接到 Tkinter 仪表板。 ## 答辩问答 (Viva Questions And Answers) **Q1. 本项目的目标是什么?** A1. 目标是构建一个基于 AI 的桌面 SOC 仪表板,用于检测事件、进行推理、规划响应路径、分配资源并推荐防御措施。 **Q2. 为什么使用 Tkinter?** A2. Tkinter 是 Python 标准库的一部分,支持图形化桌面应用程序,无需使用 Web 技术。 **Q3. BFS 在哪里使用?** A3. BFS 在 `search_algorithms.py` 中使用,通过逐层探索事件响应图来寻找响应路径。 **Q4. BFS 和 DFS 有什么区别?** A4. BFS 优先探索邻近节点,而 DFS 在回溯之前深度探索单一分支。 **Q5. 什么是 Greedy Search?** A5. Greedy Search 使用启发式值,选择看起来最接近目标的下一个节点。 **Q6. 什么是 A* Search?** A6. A* Search 同时使用实际路径成本 `g(n)` 和启发式成本 `h(n)`,通过 `f(n) = g(n) + h(n)` 来选择最佳节点。 **Q7. 本项目中的 CSP 变量是什么?** A7. CSP 变量是响应任务,例如 Containment(遏制)、Forensics(取证)、Recovery(恢复)和 Communication(沟通)。 **Q8. 本项目中的 CSP 域是什么?** A8. 域是可以分配给每项任务的可能团队。 **Q9. 使用了哪些约束条件?** A9. 约束条件包括避免重复分配团队、将取证专家分配给数据泄露事件,以及将网络专家分配给路由任务。 **Q10. 什么是 Backtracking?** A10. Backtracking 会尝试进行分配,检查约束条件,如果当前选择失败,则返回并尝试另一个值。 **Q11. 什么是 Min-Conflicts?** A11. Min-Conflicts 是一种局部搜索方法,它从一个分配开始,不断改变冲突变量以减少冲突。 **Q12. 什么是对抗搜索?** A12. 它是一种决策方法,其中一个 agent 试图最大化效用,而另一个 agent 试图最小化效用。 **Q13. 什么是 Alpha-Beta Pruning?** A13. Alpha-Beta Pruning 通过跳过那些不会影响最终决策的分支来改进 minimax 算法。 **Q14. 什么是 PEAS?** A14. PEAS 代表 Performance(性能)、Environment(环境)、Actuators(执行器)和 Sensors(传感器)。它描述了智能 agent 的任务环境。 **Q15. 本项目的最终输出是什么?** A15. 最终输出是一项推荐的事件响应措施,包含搜索路径、资源分配、推理追踪以及防御决策。 ## 最终决策示例 对于 `Malware Detected`(检测到恶意软件),系统可能会建议: ``` Incident: Malware Detected Severity: High Recommended Response Path: Detect -> Triage -> Contain -> Eradicate Primary Team: SOC Team using SIEM Console Defensive Decision: Isolate Systems Final Recommended Action: Isolate endpoint, remove malware, patch system, and monitor reinfection signs. ```
标签:Python, 人工智能算法, 安全运营中心, 库, 应急响应, 无后门, 桌面应用, 算法可视化, 网络映射, 逆向工具