Skip to content

FlowViz:将安全报告一键转化为 MITRE ATT&CK 攻击流程图的AI神器

在网络安全领域,理解攻击者的战术、技术和过程(TTPs)至关重要。安全分析师每天都需要阅读大量的威胁情报报告、事件响应分析和技术文章,并将其中的关键信息映射到 MITRE ATT&CK 等行业标准框架上。这个过程通常是手动的、耗时且容易出错的。

今天,我们介绍一个名为 FlowViz 的开源 AI 工具,它旨在彻底改变这一工作流程。FlowViz 能够利用大语言模型(LLM)的强大能力,自动分析文本内容,并一键生成交互式的、可视化的攻击流程图。

什么是 FlowViz?

FlowViz 是一个由 David L. Johnson 开发的 AI 驱动的可视化工具。它的核心使命是将非结构化的文本(如安全文章、博客、事件报告)转化为结构化的、基于 MITRE ATT&CK 框架的攻击流程图。

你可以把它想象成一位不知疲倦的初级安全分析师,它能快速阅读材料,识别出攻击者的行为,并用标准化的语言和图形将整个攻击链条清晰地呈现出来。

GitHub 项目地址: https://github.com/davidljohnson/flowviz

核心功能与亮点

  1. AI 驱动的自动化分析:FlowViz 的核心引擎是强大的大型语言模型(支持 OpenAI GPT 和 Anthropic Claude)。用户只需将文章 URL 或文本内容粘贴进去,AI 就会自动进行分析,提取攻击步骤。

  2. 映射到 MITRE ATT&CK:工具最强大的功能在于,它不仅仅是提取文本,还会将识别出的每个攻击行为自动映射到具体的 MITRE ATT&CK 技术(Technique)上,并附上 AI 的分析和判断依据。

  3. 实时交互式可视化:分析结果会以实时流的形式,在前端通过一个可交互的流程图展示出来。每个节点代表一个攻击技术,你可以拖动、缩放、查看每个节点的详细信息,使得复杂的攻击路径一目了然。

  4. “故事模式”回放:FlowViz 提供了一个独特的“故事模式”,可以像播放电影一样,按时间顺序自动回放整个攻击的进展过程,非常适合用于演示和汇报。

  5. 多种导出选项:分析完成的攻击流程图可以导出为多种格式,以适应不同的工作需求:

    • PNG 图片:用于报告和文档。
    • STIX 2.1:用于和其他威胁情报平台进行交换。
    • Attack Flow Builder 文件:可以导入到 MITRE 官方的 Attack Flow Builder 工具中进行深度编辑。
    • JSON:方便进行二次开发和数据处理。
  6. 保存与加载:你可以随时保存当前的分析会话,并在之后加载回来,方便团队协作和持续性研究。

实践示例:分析一篇 APT 报告

为了更直观地展示 FlowViz 的能力,让我们来看一个例子。假设我们有以下一段简化的攻击描述:

输入文本: “APT42 组织首先通过向目标公司人力资源部门发送带有恶意 Word 文档附件的鱼叉式网络钓鱼邮件来获得初始访问权限。一旦用户打开文档并启用宏,一个 PowerShell 后门就会被执行,从而在系统中建立持久化。随后,攻击者使用 Mimikatz 从内存中转储了 LSASS 进程,以窃取凭据。利用这些凭据,他们通过 RDP 协议横向移动到了一台域控制器服务器上,并最终导出了域内的所有用户信息。”

将这段文本输入 FlowViz 后,它会自动分析并生成如下的可视化攻击流程(简化展示):

FlowViz 生成的攻击流程:

  1. 初始访问 (Initial Access)

    • T1566.001 - Spearphishing Attachment
    • 描述:攻击者通过鱼叉邮件发送恶意 Word 文档。
  2. 执行 (Execution)

    • T1059.001 - PowerShell
    • 描述:用户启用宏后,执行了 PowerShell 后门程序。
  3. 持久化 (Persistence)

    • T1547.001 - Registry Run Keys / Startup Folder
    • 描述:后门在系统中建立持久化(AI 会根据上下文推断常见技术)。
  4. 凭据访问 (Credential Access)

    • T1003.001 - OS Credential Dumping: LSASS Memory
    • 描述:使用 Mimikatz 工具从 LSASS 进程中转储凭据。
  5. 横向移动 (Lateral Movement)

    • T1021.001 - Remote Desktop Protocol
    • 描述:利用窃取的凭据通过 RDP 登录到域控服务器。
  6. 影响 (Impact)

    • T1530 - Data from Local System
    • 描述:从域控中导出所有用户信息,完成最终目标。

这个例子清晰地展示了 FlowViz 如何将一段非结构化的描述,自动、快速地转化为一个结构清晰、基于行业标准框架的攻击事件全景图。

FlowViz 是如何工作的?

FlowViz 的架构分为前端和后端两部分:

  • 前端:使用 React 18、TypeScript、Material-UI 和 React Flow 构建。它提供了一个现代化的用户界面,用于接收用户输入,并负责渲染和交互式展示攻击流程图。
  • 后端:一个简单的 Express 代理服务器。它的主要作用是接收前端的请求,安全地将用户的 API 密钥和文本内容转发给相应的 AI 服务(OpenAI 或 Anthropic),然后将 AI 返回的结果流式传输回前端。

整个工作流程如下:

  1. 用户在前端界面输入一篇安全文章的 URL 或文本。
  2. 前端将请求发送到后端 Express 代理。
  3. 后端根据配置,构造一个包含了预设指令(System Prompt)和用户文本的请求,发送给 LLM API。这个指令会引导 AI 扮演一个网络安全分析师的角色,并要求它以特定的格式(如 JSON)输出分析结果。
  4. LLM 开始分析文本,并以流式(Streaming)的方式返回结果。
  5. 后端将结果流实时转发给前端。
  6. 前端实时解析 AI 返回的数据,动态生成和更新流程图上的节点和连线,直到整个分析过程结束。

alt text

如何开始使用?

环境要求:

  • Node.js (v18 或更高版本)
  • 一个 OpenAI 或 Anthropic 的 API 密钥

安装步骤:

  1. 克隆项目代码:

    bash
    git clone https://github.com/davidljohnson/flowviz.git
    cd flowviz
  2. 安装依赖:

    bash
    npm install
  3. 配置 API 密钥:

    env
    # 创建一个 `.env` 文件,并填入你的 AI 提供商的 API 密钥。
    #.env 文件内容
    # 选择一个提供商 (openai 或 anthropic)
      VITE_AI_PROVIDER=openai 
    # 填入你的 OpenAI API Key
    OPENAI_API_KEY="sk-..."
  4. 启动应用:

    bash
    npm run dev:full

    启动后,在浏览器中打开 http://localhost:5173 即可开始使用。

alt text

适用场景

  • 威胁情报分析:快速将最新的威胁报告转化为结构化数据,并与内部知识库进行对比。
  • 事件响应复盘:在应急响应结束后,将事件报告输入 FlowViz,快速生成攻击路径图,用于复盘和总结。
  • 安全培训与教育:使用“故事模式”生动地向团队成员或学生展示真实的攻击案例。
  • 红蓝对抗演练:蓝队可以利用它快速分析红队的攻击报告,理解其战术;红队则可以用它来规划和可视化自己的攻击路径。

总结

FlowViz 是一个将 AI 技术与网络安全实践深度结合的优秀开源项目。它精准地切入了安全分析师日常工作中的一个痛点,通过自动化的方式极大地提高了从文本情报到结构化攻击框架的转换效率。

对于任何需要处理和理解网络攻击流程的个人和团队来说,FlowViz 都是一个值得尝试的、能够显著提升生产力的强大工具。

⚠️ 内容仅供学习交流使用 | 本站访问量