news 2026/8/22 15:23:02

attack-scripts实战攻击面可视化:从STIX到Bear系APT图层的一次完整旅程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
attack-scripts实战攻击面可视化:从STIX到Bear系APT图层的一次完整旅程

attack-scripts实战攻击面可视化:从STIX到Bear系APT图层的一次完整旅程

【免费下载链接】attack-scriptsScripts and a (future) library to improve users' interactions with the ATT&CK content项目地址: https://gitcode.com/gh_mirrors/at/attack-scripts

attack-scripts是 MITRE 官方推出的一个独立脚本工具库,用于处理与ATT&CK威胁内容打交道时的各种需求。它的核心能力是:解析 STIX 2.0 威胁情报数据,一键生成 ATT&CK Navigator 可视化图层(Layer),帮助新手安全分析人员把枯燥的威胁数据变成直观的"攻击面地图"。本文将带你完成一次完整旅程:从环境安装、STIX 数据解析,到生成Bear 系 APT 组织攻击图层,并横向盘点仓库中的全部可视化脚本。

🧭 一、attack-scripts 项目速览:里面都有什么

这是一个"即取即用"的脚本仓库,目录结构非常清晰:

目录 / 文件作用
scripts/layers/samples/⭐ 核心目录,4 个图层生成示例脚本(本文主角)
scripts/数据源查询、CSV 导出、STIX 版本差异对比等实用脚本
layers/旧版图层工具(已迁移至 mitreattack-python 库,仅保留说明)
requirements.txt依赖清单(Python 3 虚拟环境一键安装)

scripts/README.md中,官方给出了每个脚本的用途说明,配合layers/samples/README.md即可掌握全部能力。

⚙️ 二、环境准备:三步完成 attack-scripts 安装

整个过程只需 Python 3,无需编译任何依赖:

  1. 克隆仓库

    git clone https://gitcode.com/gh_mirrors/at/attack-scripts
  2. 创建并激活虚拟环境

    python3 -m venv env source env/bin/activate # Windows 请用 env\Scripts\activate.bat
  3. 安装依赖stix2taxii2-client等均已锁定版本):

    pip3 install -r requirements.txt

💡 小提示:如果安装的taxii2client版本低于 2.0.0,TAXII 请求 API 可能不兼容,建议保持requirements.txt中的 2.3.0 版本。

📦 三、核心概念:STIX 数据如何变成可视化图层

理解两个概念,后面所有脚本就都通了:

  • STIX 2.0:网络威胁情报的标准语言。ATT&CK 全部内容(技术、APT 组织、恶意软件)都以 STIX JSON 形式发布,脚本通过stix2.MemoryStore加载后即可像查数据库一样查询和遍历关系。
  • Navigator Layer(图层):ATT&CK Navigator 使用的 JSON 格式,每个图层包含techniques列表,每一项可以是techniqueID + color(染色)或techniqueID + score(评分),导入后就能在矩阵图上直观呈现。

整个旅程的本质就是一条流水线:

拉取 STIX 数据 → 按条件筛选对象 → 沿关系链收集技术 → 输出图层 JSON → 导入 Navigator 查看

🐻 四、实战主角:生成 Bear 系 APT 攻击图层

bear_APT.py是仓库中最经典的示例,目标一句话:找出所有别名中带 "bear" 的 APT 组织(如 APT29 "The Dukes" 等俄系"熊"家族),把它们使用过的所有技术染成红色,生成一张 Bear 系 APT 攻击面图层。

脚本scripts/layers/samples/bear_APT.py的工作逻辑分为四步:

  1. 加载数据:拉取企业版 ATT&CK 的 STIX 内容并载入MemoryStore
  2. 筛选 APT 组织:查询所有intrusion-set对象,过滤掉已废弃(deprecated)和已撤销(revoked)的组织,再用正则匹配别名中的 "bear";
  3. 沿关系链收集技术:对每个 Bear 组织遍历其relationships,只保留指向attack-pattern(技术)的关系,并按"技术 → 使用者"建立映射(同一技术被多个 Bear 组织使用时会合并记录);
  4. 输出图层:每个技术生成{techniqueID, comment, color},注释中写明"used by xxx",最终写出Bear_APT.json

运行方式简单到一行:

python3 scripts/layers/samples/bear_APT.py --output Bear_APT.json

生成的图层结构长这样(节选):

{ "name": "*Bear APTs", "domain": "enterprise-attack", "techniques": [ { "techniqueID": "T1566", "comment": "used by APT29", "color": "#ff6666" } ], "legendItems": [{ "label": "Used by a group the phrase 'bear' in the group aliases", "color": "#ff6666" }] }

Bear_APT.json导入 ATT&CK Navigator,矩阵图上所有红色格子就是 Bear 系 APT 组织已知的"攻击面"——哪些格子越密集,说明这个方向对手玩得越熟,防御资源就该向那里倾斜。

🎨 五、进阶玩法:另外 3 个可视化脚本一次看懂

scripts/layers/samples/目录下还有 3 个同样"开箱即用"的脚本,覆盖了图层制作的三大常见场景:

1. 评分热图:heatmap.py

每个技术打一个 1-100 的随机分数,并按分数降序生成热图图层heatmap_layer.json。它是理解"score 型图层"的最佳入门样本——把其中的随机数换成你自己评估的风险分,就是一个可用的企业风险热图。

2. 双组织 + 软件 + 可检测性:apt3_apt29_software.py

功能最丰富的一枚"多面手":

  • 按固定 ID 取出APT3APT29两个组织;
  • 不仅收集它们直接使用的技术,还二次遍历其使用的恶意软件/工具,把软件能执行的技术也一并计入;
  • 按"APT3 独有 / APT29 独有 / 两者共用"三种颜色区分(#6baed6#fce93b#74c476);
  • 附加模式--notional-no-detection:把**没有关联数据源(即理论上无法被检测)**的技术额外标红为#fc3b3b,帮你一眼找出防御盲区。

这是做"攻击者画像 + 检测缺口分析"的绝佳模板。

3. 软件执行视角:software_execution.py

反其道而行之:不按组织查,而按软件查。支持三种模式:

参数输出图层含义
--softwaretype softwaresoftware_execution.json所有恶意软件 + 工具能执行的技术
--softwaretype malwaresoftware_malware_execution.json仅恶意软件
--softwaretype toolsoftware_tool_execution.json仅工具

每个技术附带score(使用它的软件数量),软件越多说明该技术是"通用手法",越值得优先设防。

🔧 六、配套工具箱:scripts 目录下的数据处理脚本

图层生成之外,scripts/目录还有一组数据加工脚本,与可视化形成互补:

脚本用途
techniques_from_data_source.py从 TAXII 服务器拉取 STIX 对象,列出使用指定数据源的所有企业版技术(如:哪些技术能通过"进程创建"事件被检测到)
technique_mappings_to_csv.py将技术与缓解措施 / 组织 / 软件的映射关系导出为CSV 表格,方便做报表
techniques_data_sources_vis.py生成 ATT&CK 路线图"技术与数据源映射"可视化所需的 CSV 数据
diff_stix.py对比两个版本的 STIX bundle,输出Markdown 变更报告或 Navigator 图层,追踪 ATT&CK 版本迭代

📌 项目说明文档见scripts/README.md,更新历史见CHANGELOG.md(当前版本 v1.9.2)。

🚀 七、下一步:从脚本走向 mitreattack-python 库

值得注意的是:layers/目录中的图层处理工具(图层合并、导出 SVG/Excel 等)已在 v1.9.1 起迁移到官方的mitreattack-pythonpip 模块中(见layers/README.mdCHANGELOG.md)。建议的成长路线是:

  1. 先用本仓库的示例脚本理解 STIX 查询与图层生成原理;
  2. 再用 mitreattack-python 库在自己的项目中做图层增删、合并与导出;
  3. 结合 ATT&CK Navigator 完成从"数据"到"决策"的闭环。

✅ 总结:一条完整旅程的回顾

步骤关键文件收获
安装环境requirements.txtPython 虚拟环境 + stix2 依赖
理解原理scripts/README.mdSTIX 查询 → 图层 JSON 的数据流
生成 APT 图层scripts/layers/samples/bear_APT.py按组织别名筛选并染色技术
热图 / 画像 / 盲区heatmap.pyapt3_apt29_software.pysoftware_execution.py三种高频图层场景全覆盖
数据加工scripts/technique_mappings_to_csv.pyCSV 导出与版本差异对比

attack-scripts 用最简洁的示例脚本,把"威胁情报 → 攻击面可视化"这条链路完整走了一遍。只要跑通bear_APT.py,你就已经掌握了 ATT&CK 数据分析的核心套路——剩下的,只是把筛选条件换成你自己关心的 APT 组织、恶意软件或数据源。

【免费下载链接】attack-scriptsScripts and a (future) library to improve users' interactions with the ATT&CK content项目地址: https://gitcode.com/gh_mirrors/at/attack-scripts

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/22 15:17:11

ComfyUI-KJNodes 使用指南:5 步搞定模型编译与图像批处理节点

ComfyUI-KJNodes 使用指南:5 步搞定模型编译与图像批处理节点 【免费下载链接】ComfyUI-KJNodes Various custom nodes for ComfyUI 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-KJNodes ComfyUI-KJNodes 是给 ComfyUI 扩展用处的自定义节点合集&a…

作者头像 李华
网站建设 2026/8/22 15:15:09

5分钟跑通:res-downloader 跨平台资源下载工具上手指南

5分钟跑通:res-downloader 跨平台资源下载工具上手指南 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader res-downl…

作者头像 李华
网站建设 2026/8/22 15:11:53

网易云 NCM 转 MP3 三分钟搞定:ncmdump 拖一下就能打开保险柜

网易云 NCM 转 MP3 三分钟搞定:ncmdump 拖一下就能打开保险柜 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 把网易云下载的歌拷进车载 U 盘,插上车却全是"无法识别"?别慌,…

作者头像 李华