ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

attack-scripts深度解析:diff_stix如何一次性识别并可视化7类STIX变更

attack-scripts深度解析:diff_stix如何一次性识别并可视化7类STIX变更 attack-scripts深度解析diff_stix如何一次性识别并可视化7类STIX变更【免费下载链接】attack-scriptsScripts and a (future) library to improve users interactions with the ATTCK content项目地址: https://gitcode.com/gh_mirrors/at/attack-scripts如果你需要对比 ATTCK 两个版本之间的内容差异那么attack-scripts项目中的diff_stix脚本diff_stix.py就是为这个场景量身定做的工具。它能一次性识别并可视化7 类 STIX 对象变更——新增、更新、次要修改、撤销、弃用、删除、未变更——并自动输出 Markdown 变更报告或可直接拖入 ATTCK Navigator 的可视化图层文件。对于安全分析师来说它把翻 JSON 找差异的苦力活变成了一条命令。为什么需要 diff_stixATTCK 知识库持续更新新的技术手法Technique不断加入旧条目被修订或弃用。手动对比两个版本的 STIX 2.0 JSON 文件不仅枯燥还极易遗漏。diff_stix 的核心能力 输入old与new两个目录下的 STIX bundle 文件enterprise-attack.json、mobile-attack.json 处理逐对象比对 STIX ID、版本号x_mitre_version、修改日期、撤销与弃用标记 输出Markdown 变更清单 ATTCK Navigator 彩色图层layerJSON7 类 STIX 变更一次看懂diff_stix 把所有对象变化归为以下 7 类定义见 diff_stix.py 中的statusDescriptions变更类型判定规则图层颜色additions新增新数据中存在、旧数据中不存在 浅绿changes更新新版本号高于旧版本 淡黄minor_changes次要修改版本号不变但modified日期更新 浅紫revocations撤销新数据中被标记 revoked旧数据中未标记 橙色deprecations弃用新数据中x_mitre_deprecated为真 浅红deletions删除旧数据中存在、新数据中消失 品红unchanged未变更两版本间完全无变化⚪ 白色其中minor_changes、unchanged、deletions属于按需显示只有显式启用或确实存在时才会出现在报告中保持报告精炼。一键安装3 步准备运行环境克隆仓库若尚未获取git clone https://gitcode.com/gh_mirrors/at/attack-scripts创建并激活 Python 3 虚拟环境python3 -m venv envsource env/bin/activate安装依赖依赖清单见 requirements.txt核心是stix2与taxii2-clientpip3 install -r requirements.txt⚠️ 注意taxii2client2.0 之后 API 有变动若你的版本低于 2.0.0脚本可能无法正常运行详见 README.md 的说明。快速上手diff_stix 最小化运行按默认约定把旧版本的 STIX bundle 放入old/目录、新版本放入new/目录然后运行python3 scripts/diff_stix.py -markdown -layers一条命令即可同时产出两类结果全部落在output/目录下输出文件默认命名作用updates-月份-年份.mdMarkdown 格式的完整变更清单按 Techniques / Software / Groups / Mitigations 分组含子技术sub-technique层级*_Updates_Enterprise.jsonEnterprise 域 Navigator 图层变更技术按上表颜色标注*_Updates_Mobile.jsonMobile 域 Navigator 图层生成的图层文件导入 ATTCK Navigator 后一眼就能看出哪些技术是新增绿、哪些被修改黄、哪些被弃用红图例legend由脚本自动生成。常用参数清单参数说明-old/-new指定新旧 STIX bundle 所在目录默认old/new-types报告对象类型可选technique、software、group、mitigation-domains分析域可选enterprise-attack、mobile-attack-markdown生成 Markdown 变更报告-layers生成图层文件不传文件名则使用默认路径--minor-changes额外输出未升版本的次要修改章节--unchanged列出未变更对象--use-taxii旧版本数据直接取自 ATTCK TAXII 服务器无需本地旧文件--show-key在 Markdown 中附上 7 类变更的图例说明-v显示进度条与状态信息 小贴士加--use-taxii时-old参数会自动忽略——脚本直接从 MITRE 的 TAXII 2.0 服务器拉取旧版内容省去手动下载。它是怎么工作的理解 diff_stix.py 中的DiffStix类就掌握了全流程加载load_data()用stix2.MemoryStore读入两份 bundle并按 STIX 过滤器分别查询四类对象attack-pattern、malware/tool、intrusion-set、course-of-action集合运算用 ID 集合的差集找出 additions / deletions用交集找出可比对的存量对象逐对象判定对交集对象依次检查撤销标记、弃用标记、x_mitre_version大小、modified时间戳落入 7 类中的一类生成报告get_markdown_string()按对象类型 → 域 → 变更类型三级结构输出并自动处理父子技术subtechnique-of的层级归属get_layers_dict()则把技术变更映射为 Navigator 图层的颜色与图例。延伸阅读项目总览与背景CTI / STIX 简介README.md全部脚本功能对照表含 technique_mappings_to_csv.py 等scripts/README.md版本演进历史diff_stix 的 sub-technique 支持、--unchanged参数均在此引入CHANGELOG.mdNavigator 图层样例生成脚本示例scripts/layers/samples/README.md总结diff_stix 是 attack-scripts 中最实用的脚本——它把ATTCK 版本间改了什么这个问题压缩成一次集合比对、一份 Markdown 报告、一张彩色 Navigator 图层。下次 ATTCK 大版本发布时不妨用它做一次完整的变更巡检。【免费下载链接】attack-scriptsScripts and a (future) library to improve users interactions with the ATTCK content项目地址: https://gitcode.com/gh_mirrors/at/attack-scripts创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表