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, 人工智能算法, 安全运营中心, 库, 应急响应, 无后门, 桌面应用, 算法可视化, 网络映射, 逆向工具