基于 MITRE ATT&CK 的威胁行为者 TTP 分析:从情报映射到检测工程的五条实战工作流
导读
本文以 Anthropic-Cybersecurity-Skills 仓库中 analyzing-threat-actor-ttps-with-mitre-attack 技能包的实战工作流文档为骨架,系统讲解如何把威胁情报报告、IOC 与沙箱行为证据映射到 MITRE ATT&CK 框架,并通过 ATT&CK Navigator 生成热力图、量化检测覆盖缺口、比较多组威胁行为者画像,最终把分析结论转译为可排期的检测工程与安全改进路线图。读完本文,你将掌握五条端到端可执行的 TTP 分析工作流,以及配套的 attackcti / mitreattack-python 编程查询、Navigator Layer JSON 生成与缺口分析的完整实现方法。
核心背景:工作流依赖的知识底座
五条工作流全部建立在同一套知识底座之上:MITRE ATT&CK 知识库、STIX 2.1 数据模型与 ATT&CK Navigator 可视化规范。本技能包通过 references/standards.md 与 references/api-reference.md 固化这套底座,分析前应先消化以下概念。
ATT&CK 矩阵结构与编号体系
ATT&CK 共有三套矩阵:Enterprise ATT&CK(覆盖 Windows、macOS、Linux、云平台 AWS/Azure/GCP、SaaS、Office 365、网络与容器)、Mobile ATT&CK(Android、iOS)与 ICS ATT&CK(工业控制系统)。Enterprise 矩阵把对抗行为组织为 14 个战术(Tactics,回答"为什么"),其下挂载技术(Techniques,回答"怎么做")与子技术(Sub-techniques,具体实现方式),每条技术还关联数据源、检测建议、缓解措施与来自真实威胁组织的 procedure 示例。
14 个战术及其战术 ID(TA ID)构成分析时的标准坐标轴:Reconnaissance(TA0043)、Resource Development(TA0042)、Initial Access(TA0001)、Execution(TA0002)、Persistence(TA0003)、Privilege Escalation(TA0004)、Defense Evasion(TA0005)、Credential Access(TA0006)、Discovery(TA0007)、Lateral Movement(TA0008)、Collection(TA0009)、Command and Control(TA0011)、Exfiltration(TA0010)、Impact(TA0040)。
对象编号遵循统一约定,写报告与生成 Layer 时务必使用规范 ID:
| 对象 | 格式 | 示例 |
|---|---|---|
| 技术 Technique | T[NNNN] | T1059 - Command and Scripting Interpreter |
| 子技术 Sub-technique | T[NNNN].[NNN] | T1059.001 - PowerShell |
| 威胁组织 Group | G[NNNN] | G0016 - APT29 |
| 软件 Software | S[NNNN] | S0154 - Cobalt Strike |
| 缓解 Mitigation | M[NNNN] | M1049 - Antivirus/Antimalware |
STIX 2.1 数据模型:ATT&CK 的机器可读形态
MITRE 以 STIX 2.1 格式发布 ATT&CK 知识库(mitre/cti 仓库),其核心对象类型与 ATT&CK 概念一一对应:attack-pattern(技术与子技术)、intrusion-set(威胁组织)、relationship(如组织"使用"技术的关联)、malware(恶意软件家族)、tool(被滥用的合法工具)。一条典型的 attack-pattern 通过 external_references 携带 MITRE ATT&CK 外部 ID,通过 kill_chain_phases 声明所属战术,例如 Spearphishing Attachment 即 T1566.001 且 phase_name 为 initial-access;而 intrusion-set 对象则携带组织别名(如 APT29 的别名 Cozy Bear、The Dukes、NOBELIUM)、目标与资源级别。
在仓库的 scripts/agent.py 中可以看到这套解析逻辑的离线实现:它直接下载或读取 enterprise-attack.json bundle,过滤 type == "attack-pattern" 且未被 revoked 的对象提取技术 ID、战术与平台;过滤 type == "intrusion-set" 提取组织及其别名;再通过 relationship_type == "uses" 的边把组织与其使用技术关联起来。这种离线解析方式与 TAXII 服务在线查询互为补充。
工具链与运行环境
技能包声明的前置条件如下(见 SKILL.md):Python 3.9+,安装 mitreattack-python、attackcti、stix2 库;准备 ATT&CK Navigator(Web 版或本地部署);理解矩阵结构;能够访问威胁情报报告或 MISP/OpenCTI 中的威胁组织数据。attackcti 封装了对 MITRE TAXII 服务器的查询,mitreattack-python 则提供基于本地 STIX JSON 的离线查询 API:
from mitreattack.stix20 import MitreAttackData
attack = MitreAttackData("enterprise-attack.json")
# 获取全部技术
techniques = attack.get_techniques()
# 按别名定位组织并取回其使用技术
group = attack.get_group_by_alias("APT29")
techs = attack.get_techniques_used_by_group(group.id)
# 查看某技术的缓解措施
mitigations = attack.get_mitigations_mitigating_technique(technique.id)
for m in mitigations:
print(m.name, m.description)
若数据源已下载为本地文件,也可通过 api-reference.md 中记录的 TAXII 方式直接查询:
from stix2 import TAXIICollectionSource, Filter
from taxii2client.v20 import Collection
collection = Collection("https://cti-taxii.mitre.org/stix/collections/95ecc380-afe9-11e4-9b6c-751b66dd541e/")
src = TAXIICollectionSource(collection)
groups = src.query([Filter("type", "=", "intrusion-set")])
工作流一:Threat Actor TTP Mapping(威胁行为者 TTP 映射)
这是五条工作流的起点:把一份威胁情报报告中的对抗行为描述,逐条转化为带 ATT&CK ID 的机器可读映射,最终生成 Navigator Layer 与检测优先级清单。
[Threat Report] --> [Extract Behaviors] --> [Map to ATT&CK] --> [Navigator Layer]
|
v
[Detection Priorities]
执行步骤:
- Report Ingestion(报告接入):获取威胁情报报告,来源可以是厂商报告、OSINT 或内部事件报告;
- Behavior Extraction(行为提取):识别报告中描述的对抗行为动作,例如投递宏文档、滥用 PowerShell、建立 C2 会话;
- Technique Mapping(技术映射):基于 ATT&CK 知识库,把每个行为映射为具体技术 ID;
- Sub-technique Precision(子技术收敛):当报告过程细节足够时,进一步收敛到子技术(如 T1059.001 PowerShell);
- Layer Creation(Layer 生成):把映射结果生成为 ATT&CK Navigator Layer;
- Priority Assessment(优先级评估):按检测可行性与影响程度对技术排序,形成检测优先级。
编程实现:查询数据并映射组织技术
SKILL.md 给出了用 attackcti 完成前三步的完整代码。先初始化客户端并读取企业技术与威胁组织清单:
from attackcti import attack_client
import json
# Initialize ATT&CK client (queries MITRE TAXII server)
lift = attack_client()
# Get all Enterprise techniques
enterprise_techniques = lift.get_enterprise_techniques()
print(f"Total Enterprise techniques: {len(enterprise_techniques)}")
# Get all threat groups
groups = lift.get_groups()
print(f"Total threat groups: {len(groups)}")
# Get specific group by name
apt29 = [g for g in groups if 'APT29' in g.get('name', '')]
if apt29:
group = apt29[0]
print(f"Group: {group['name']}")
print(f"Aliases: {group.get('aliases', [])}")
print(f"Description: {group.get('description', '')[:200]}")
随后按组织 ID(APT29 对应 G0016)取回其使用的全部技术,构建 tech_id -> {name, tactics, description} 映射表:
from attackcti import attack_client
lift = attack_client()
# Get techniques used by APT29
apt29_techniques = lift.get_techniques_used_by_group("G0016") # APT29 group ID
technique_map = {}
for entry in apt29_techniques:
tech_id = entry.get("external_references", [{}])[0].get("external_id", "")
tech_name = entry.get("name", "")
description = entry.get("description", "")
tactic_refs = [
phase.get("phase_name", "")
for phase in entry.get("kill_chain_phases", [])
]
technique_map[tech_id] = {
"name": tech_name,
"tactics": tactic_refs,
"description": description[:300],
}
print(f"\nAPT29 uses {len(technique_map)} techniques:")
for tid, info in sorted(technique_map.items()):
print(f" {tid}: {info['name']} [{', '.join(info['tactics'])}]")
注意这里依赖的字段结构:每条技术通过 external_references 中的 external_id 携带 ATT&CK ID,通过 kill_chain_phases 的 phase_name 列出所属战术。这与 scripts/process.py 中 get_group_techniques() 的解析逻辑完全一致——后者还额外提取了 x_mitre_platforms 与 x_mitre_data_sources,为后续缺口分析储备了平台与数据源信息。
生成 ATT&CK Navigator Layer
把映射结果生成为 Navigator Layer JSON 是"可交付"的关键一步。技能包提供的 create_navigator_layer() 函数产出一个完整的 Layer 4.5 版本对象:
import json
def create_navigator_layer(group_name, technique_map, description=""):
"""Generate ATT&CK Navigator layer JSON for a threat group."""
techniques_list = []
for tech_id, info in technique_map.items():
techniques_list.append({
"techniqueID": tech_id,
"tactic": info["tactics"][0] if info["tactics"] else "",
"color": "#ff6666", # Red for observed techniques
"comment": info["description"][:200],
"enabled": True,
"score": 100,
"metadata": [
{"name": "group", "value": group_name},
],
})
layer = {
"name": f"{group_name} TTP Coverage",
"versions": {
"attack": "16.1",
"navigator": "5.1.0",
"layer": "4.5",
},
"domain": "enterprise-attack",
"description": description or f"Techniques attributed to {group_name}",
"filters": {"platforms": ["Windows", "Linux", "macOS", "Cloud"]},
"sorting": 0,
"layout": {
"layout": "side",
"aggregateFunction": "average",
"showID": True,
"showName": True,
"showAggregateScores": False,
"countUnscored": False,
},
"hideDisabled": False,
"techniques": techniques_list,
"gradient": {
"colors": ["#ffffff", "#ff6666"],
"minValue": 0,
"maxValue": 100,
},
"legendItems": [
{"label": "Observed technique", "color": "#ff6666"},
{"label": "Not observed", "color": "#ffffff"},
],
"showTacticRowBackground": True,
"tacticRowBackground": "#dddddd",
"selectTechniquesAcrossTactics": True,
"selectSubtechniquesWithParent": False,
"selectVisibleTechniques": False,
}
return layer
# Generate and save layer
layer = create_navigator_layer("APT29", technique_map, "APT29 (Cozy Bear) TTP analysis")
with open("apt29_navigator_layer.json", "w") as f:
json.dump(layer, f, indent=2)
print("[+] Navigator layer saved to apt29_navigator_layer.json")
Layer 的关键字段语义如下(与 standards.md 中 Layer 4.5 Schema 对应):name 为图层显示名;domain 决定渲染哪套矩阵(enterprise-attack / mobile-attack / ics-attack);techniques[] 数组内每个条目用 techniqueID 定位技术、score(0-100 数值)参与聚合计算、color 覆盖显示颜色、comment 存放分析备注、enabled 控制显隐、metadata 附加键值上下文。Layer 中的 score: 100 配合 gradient 渐变区间(#ffffff 到 #ff6666),在 Navigator 中即可渲染为"已观察技术"与"未观察技术"的对比热力图。
仓库根目录的 mappings/attack-navigator-layer.json 提供了一个真实产出范例:它以"每个技术被多少个技能引用"作为 score,并写入 skill_count 与 skills 元数据,展示了大规模覆盖热力图的组织方式——分析单个威胁组织时同样可以照此结构为每条技术附加证据来源与相关度评分。
工作流二:Detection Gap Analysis(检测差距分析)
映射出威胁行为者使用的全部技术后,下一个问题是:我们现有的检测到底覆盖了多少? 本工作流把当前检测规则集与威胁 Layer 叠加,量化出未被监控的技术缺口,并转化为检测工程积压清单。
[Current Detections] --> [Detection Layer] --> [Overlay with Threat Layer] --> [Gap Layer]
|
v
[Engineering Backlog]
执行步骤:
- Detection Inventory(检测盘点):梳理现有检测规则并映射到 ATT&CK 技术;
- Detection Layer(检测 Layer):生成展示"已检测技术"的 Navigator Layer(绿色);
- Threat Layer(威胁 Layer):生成展示"对手技术"的 Layer(红色);
- Overlay Analysis(叠加分析):合并 Layer,找出未被覆盖的威胁技术;
- Gap Prioritization(缺口排序):按威胁行为者相关性与检测可行性对缺口排序;
- Engineering Plan(工程计划):根据排序后的缺口创建检测工程积压清单。
编程实现:数据源覆盖与缺口量化
SKILL.md 的 Step 4 给出了实现:先遍历全部企业技术,构建"数据源 -> 可检测技术列表"的覆盖图谱,再与现有检测集合求差集:
from attackcti import attack_client
lift = attack_client()
# Get all techniques with data sources
all_techniques = lift.get_enterprise_techniques()
# Build data source coverage map
data_source_coverage = {}
for tech in all_techniques:
tech_id = tech.get("external_references", [{}])[0].get("external_id", "")
data_sources = tech.get("x_mitre_data_sources", [])
for ds in data_sources:
if ds not in data_source_coverage:
data_source_coverage[ds] = []
data_source_coverage[ds].append(tech_id)
# Compare threat actor techniques against available detections
detected_techniques = {"T1059", "T1071", "T1566"} # Example: techniques you can detect
actor_techniques = set(technique_map.keys())
covered = actor_techniques.intersection(detected_techniques)
gaps = actor_techniques - detected_techniques
print(f"\n=== Detection Gap Analysis for APT29 ===")
print(f"Actor techniques: {len(actor_techniques)}")
print(f"Detected: {len(covered)} ({len(covered)/len(actor_techniques)*100:.0f}%)")
print(f"Gaps: {len(gaps)} ({len(gaps)/len(actor_techniques)*100:.0f}%)")
print(f"\nUndetected techniques:")
for tech_id in sorted(gaps):
if tech_id in technique_map:
print(f" {tech_id}: {technique_map[tech_id]['name']}")
这里 detected_techniques 集合代表"当前可检测的技术 ID 清单",在实际部署中应由检测规则库(如 Sigma、Splunk SPL、Sysmon 规则)导出的技术映射列表替代。ATT&CK v16+ 的结构化数据源字段(x_mitre_data_sources)是缺口分析的重要杠杆:它让分析师从"缺哪些检测"进一步推导到"缺哪些日志",例如 Process Creation 数据源可以支撑 T1055 系列进程注入检测,Network Traffic Flow 支撑 T1071 系列 C2 检测。
自动化实现:推荐补日志的数据源
仓库的 scripts/process.py 把上述逻辑封装为 gap_analysis() 与 _recommend_data_sources()。后者对缺口清单做数据源频次统计,输出"采购/开启哪个数据源能一次性闭合最多缺口"的 Top 10 建议——直接服务于检测工程的排期决策。命令行用法:
python process.py --gap-analysis --detections detections.json --group APT29 --output gaps.json
其中 detections.json 为当前已检测技术 ID 的 JSON 数组文件,输出会包含 coverage_percentage、gap_details(含每个缺口的技术 ID、名称、战术、所需数据源、平台)与 recommended_data_sources。
工作流三:Cross-Actor Comparison(跨行为者比较)
单组分析能看清"对手做什么",而多组比较能看清"哪些技术是行业共性、哪些是该组织独有"——这是确定检测投入优先级与辅助归因的核心方法。
[Group A TTPs] --+
|--> [Intersection Analysis] --> [Common Techniques] --> [Priority Detections]
[Group B TTPs] --+ |
| v
[Group C TTPs] --+ [Unique Techniques per Group]
执行步骤:
- Group Selection(组选择):选择与自身行业/区域相关的威胁组织;
- TTP Extraction(TTP 提取):从 ATT&CK 拉取每个组织的技术列表;
- Common Analysis(共性分析):找出所有被选组织共用的技术;
- Unique Analysis(独有分析):识别特定组织独有的技术;
- Detection ROI(检测投资回报):优先为共性技术建设检测(覆盖 ROI 最高);
- Actor Attribution(归因):把独有技术作为潜在归因指标。
编程实现:交集与差集分析
from attackcti import attack_client
lift = attack_client()
# Compare techniques across multiple groups
groups_to_compare = {
"G0016": "APT29",
"G0007": "APT28",
"G0032": "Lazarus Group",
}
group_techniques = {}
for gid, gname in groups_to_compare.items():
techs = lift.get_techniques_used_by_group(gid)
tech_ids = set()
for t in techs:
tid = t.get("external_references", [{}])[0].get("external_id", "")
if tid:
tech_ids.add(tid)
group_techniques[gname] = tech_ids
# Find common and unique techniques
all_groups = list(group_techniques.keys())
common_to_all = set.intersection(*group_techniques.values())
print(f"\nTechniques common to all {len(all_groups)} groups: {len(common_to_all)}")
for tid in sorted(common_to_all):
print(f" {tid}")
for gname, techs in group_techniques.items():
unique = techs - set.union(*[t for n, t in group_techniques.items() if n != gname])
print(f"\nUnique to {gname}: {len(unique)} techniques")
在 scripts/process.py 的 compare_groups() 中,这一逻辑被扩展为结构化输出:除 common_to_all 与每个组的 unique 外,还计算每组的 overlap_percentage(该组技术中与其他组重叠的比例),并输出 technique_frequency——按"被多少个组使用"排序的技术频率表。CLI 用法:
python process.py --compare APT28 APT29 "Lazarus Group" --output comparison.json
从实操角度解读输出:common_to_all 中的技术应进入检测工程 backlog 的最高优先级(一套检测覆盖多个高价值目标);而某组独有的技术(如归因特征明显的特殊载荷技术)可作为 SOC 归因研判的参考信号,但需谨慎使用——TTP 重叠只是归因假设的证据之一,不能单独作为归因结论。
工作流四:Campaign-to-TTP Analysis(战役到 TTP 分析)
前三套工作流处理的对象是 ATT&CK 中已归档的长期组织画像;本工作流面向"正在进行时"——从一起具体攻击战役的 IOC 出发,通过动态分析还原行为并映射为 TTP,再与已知组织画像比对形成归因假设。
[Campaign IOCs] --> [Sandbox/Analysis] --> [Behavior Extraction] --> [TTP Mapping]
|
v
[Compare to Known Groups]
|
v
[Attribution Hypothesis]
执行步骤:
- IOC Collection(IOC 收集):收集战役 IOC(恶意软件哈希、C2 域名、钓鱼邮件);
- Dynamic Analysis(动态分析):在沙箱中执行样本,捕获行为产物;
- Behavior Documentation(行为记录):记录文件操作、注册表变更、网络连接与进程活动;
- ATT&CK Mapping(ATT&CK 映射):把观察到的行为映射到技术与子技术;
- Group Comparison(组织比对):把战役 TTP 与已知组织画像比对;
- Attribution Assessment(归因评估):基于 TTP 重叠程度评估归因可能性。
行为取证视角:记录哪些痕迹
第 3 步"行为记录"是决定映射质量的关键。技能包强调四类核心痕迹:文件操作(创建/修改/删除的文件路径,对应 File 数据源)、注册表变更(如 HKCU\Software\Microsoft\Windows\CurrentVersion\Run 写入,对应 Windows Registry 数据源与 T1547.001 启动项持久化)、网络连接(C2 域名解析与流量特征,对应 Network Traffic 数据源与 T1071.001)、进程活动(命令行参数与父子进程链,对应 Process 数据源与 T1059.001)。
这种从证据到技术的映射逻辑,与工作流一的映射方向(从报告文本到技术)互为补充,其产出可以直接送入工作流三的 compare_groups(),把战役 TTP 作为"候选组"之一参与交并集计算。
归因的边界与报告记录
归因评估要求谨慎:attribution assessment 的输出是"基于 TTP 重叠的可能性评估"而非确定性结论。把战役映射结果与报告模板结合,可产出规范的战役分析记录。模板位于 assets/template.md,其中 TTP Summary 表按 14 个战术统计技术数量并列出关键技术,Detailed Technique Mapping 表记录"ATT&CK ID / 技术 / 子技术 / Procedure 示例"四元组(如 T1566.001 / Phishing / Spearphishing Attachment / "Actor sends macro-enabled documents"),这些表格结构与工作流一的 technique_map、工作流二的 gap_details 输出字段一一对应,可无缝回填。
工作流五:Threat-Informed Defense(威胁知情的防御)
最后一条工作流把单点分析升级为组织级防御决策:从威胁画像出发,沿"数据源 -> 遥测 -> 控制措施"的链路逐层审计,找出既无检测也无缓解的双重空白技术,输出安全改进路线图。
[ATT&CK Mappings] --> [Data Source Analysis] --> [Telemetry Assessment] --> [Control Mapping]
|
v
[Security Roadmap]
执行步骤:
- Threat Profile(威胁画像):确定相关威胁行为者及其技术;
- Data Source Mapping(数据源映射):判断每个技术可由哪些数据源检测;
- Telemetry Audit(遥测审计):评估当前实际采集了哪些数据源;
- Control Assessment(控制评估):把现有安全控制映射到技术的缓解措施;
- Gap Identification(缺口识别):找出既无检测覆盖也无缓解覆盖的技术;
- Roadmap Creation(路线图制定):针对最高风险缺口制定安全改进路线图。
数据源到缓解的映射逻辑
ATT&CK 每条技术都关联数据源与缓解措施(M 编号),这使本工作流可以程序化执行:x_mitre_data_sources 字段回答"检测它需要什么日志";get_mitigations_mitigating_technique() 回答"用什么控制可以缓解它"。策略上可以定义三层覆盖矩阵:
| 技术 | 数据源已采集(遥测) | 缓解已部署 | 结论 |
|---|---|---|---|
| T1071.001 Application Layer Protocol | 否 | 部分 | 优先补 Network Traffic 采集 |
| T1059.001 PowerShell | 是 | 否 | 优先部署 Execution Isolation / 脚本块日志 |
| T1053.005 Scheduled Task | 否 | 否 | 最高风险双重空白 |
_recommend_data_sources() 函数正是为"遥测审计"环节设计的:它统计每个缺口技术所需的数据源,返回按闭合缺口数量排序的建议清单,让分析师直接看到"开启哪个日志源收益最大",这与工作流二的数据源图谱(data_source_coverage)共享同一构建逻辑。
从缺口到路线图
路线图应把输出按风险与成本组织为三档行动:Immediate——为 Top 3 缺口技术部署检测;Short-term——开启某数据源采集以覆盖 N 个技术;Long-term——针对某战术构建行为分析能力。报告模板 assets/template.md 的 Recommendations 章节即采用这一结构,而 Detection Coverage 表(Detected / Partial Detection / No Detection 三态占比)为路线图提供了量化基线,便于后续复测对比改进效果。
统一 CLI 落地:两条可执行的命令路径
技能包把上述工作流沉淀为两个可直接运行的脚本,二者互补:
-
scripts/process.py:基于
attackcti在线查询 TAXII 服务,提供完整的ATTACKAnalyzer类,覆盖工作流一(get_group_techniques+create_navigator_layer)、工作流二(gap_analysis+ 数据源推荐)、工作流三(compare_groups)、以及额外的tactic_breakdown(按 14 战术顺序输出战术分布)。常用命令:python process.py --group APT29 --output apt29_layer.json python process.py --compare APT28 APT29 "Lazarus Group" python process.py --gap-analysis --detections detections.json --group APT29 python process.py --breakdown --group APT29 -
scripts/agent.py:支持离线 bundle(
enterprise-attack.json本地文件)或在线下载两种数据加载方式(load_attack_bundle),内置技术解析、组织解析、uses关系映射、战术覆盖条形图与检测缺口演示分析,适合无 TAXII 网络访问或需离线复现的环境:python agent.py # 列出样本组织清单 python agent.py APT29 # 输出该组织 TTP 映射、战术覆盖与缺口演示 python agent.py APT29 enterprise-attack.json # 指定本地 bundle
值得注意的实现细节:process.py 在 get_group_techniques() 中按 external_references 中 source_name == "mitre-attack" 精确提取组织 ID 与技术 ID,避免误取其他引用来源;create_navigator_layer() 会为每个技术在其每个所属战术下分别生成一个 Layer 条目(同一条技术 ID 可出现在多个战术列),这与 Navigator 矩阵按战术渲染的机制匹配。agent.py 则通过 tactic_coverage() 的 defaultdict 聚合输出战术覆盖分布,两者对 kill chain 阶段的解析方式完全一致,可交叉验证结果。
验证标准与可交付产出
一条 TTP 分析工作流是否合格,可按 SKILL.md 的 Validation Criteria 逐项核验:
- ATT&CCK 数据成功经 TAXII 服务器或本地副本查询;
- 威胁行为者已映射到具体技术,且包含 procedure 示例;
- ATT&CK Navigator Layer JSON 合法且能正确渲染;
- 检测差距分析识别出未监控技术;
- 跨组比较揭示共享与独有 TTP;
- 输出可直接用于检测工程优先级决策。
最终可交付物通常包括三类:Navigator Layer 文件([group]_navigator_layer.json,在 ATT&CK Navigator 中加载即可看到热力图,Layer 结构可参考仓库根目录 mappings/attack-navigator-layer.json 的大规模覆盖范例)、缺口分析 JSON(含 coverage 百分比、缺口明细与数据源建议)、结构化情报报告(按 assets/template.md 组织,含报告元数据、组织画像、TTP Summary、检测覆盖与分优先级缺口清单)。这五条工作流构成了"从情报到检测工程"的闭环:映射建立事实基线,缺口分析量化差距,跨组比较校准优先级,战役分析连接实时事件,威胁知情防御最终把全部结论沉淀为组织安全路线图。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0631
MiniCPM5-2BMiniCPM5-2B 是一款面向端侧、本地部署和资源受限场景的 2B 稠密 Transformer,能够达到同尺寸开源模型 SOTA 水平。Markdown00
video-shotcraftAI宣传片skill,使用 Remotion 制作电影级产品视频:提供106 张镜头配方卡和可复用的视频魔板。适用于 Claude Code 与 Codex以及所有其他智能体Markdown00
HivisionIDPhotos⚡️HivisionIDPhotos: a lightweight and efficient AI ID photos tools. 一个轻量级的AI证件照制作算法。Python09
DragonOSDragonOS is an operating system developed from scratch using Rust, with Linux compatibility. It is designed for **Serverless** scenarios. 使用Rust从0自研内核,具有Linux兼容性的操作系统,面向云计算Serverless场景而设计。Rust00
Spark-X2.5-1.7BSpark-X2.5-1.7B 旨在让强大的 AI 更加实用、高效且易于获取。这些模型在广泛的日常任务中表现出色,涵盖对话、写作、翻译、推理、编程、工具调用和智能体工作流,并在同等规模的开源模型中取得领先结果。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00