threatkb
threatkb回答有关MITRE攻击和攻击知识库的问题 从您保存在自己机器上的数据集文件中:查看一种技术 根据其ATT&CK id或大致名称,提取完整记录 对于一项技术(平台,杀伤链阶段,参考, 子技术(缓解、检测),列出缓解或 检测绑定到一个技术,并列出战术数据集 知道。一个二进制文件提供命令行接口和一个 studio MCP服务器。
这背后没有捆绑的数据集和网络服务
工具。类中的STIX包
enterprise-attack.json 形状(MITRE为
企业矩阵)与 THREATKB_DATA_FILE 环境
变量。当变量未设置或文件无法读取时,
查询命令失败,命名丢失的数据集时出现错误
而不是猜测- threatkb从不发明攻击和攻击数据。
threatkb info 仍然在那个状态下回答和报告
dataset_loaded: false 有理由的。
安装
THREATKB_DATA_FILE=/path/to/enterprise-attack.json npx @reneturcios/threatkb tactics
或者运行容器镜像:
docker run -i -e THREATKB_DATA_FILE=/data/enterprise-attack.json \
-v /path/to/data:/data ghcr.io/cloudcorprecords/threatkb
容器默认为MCP服务器(见下文)。通过CLI 参数将其用作CLI。
命令行界面
export THREATKB_DATA_FILE=/path/to/enterprise-attack.json
threatkb query --id T1059
threatkb query --name "command and scripting"
threatkb full --id T1059
threatkb full --name PowerShell
threatkb mitigations T1059
threatkb detections T1059
threatkb tactics
threatkb info
threatkb --version
结果打印为JSON。技术搜索返回
{results: [...], count: N};缓解和检测查询
返回 {technique_id, results: [...], count: N} 为了那个
询问的技术,并且未知的技术id是错误的。
退出代码: 0 成功, 1 当查询失败时(包括
丢失的数据集), 2 使用错误。
查找规则:id查找是精确的,不区分大小写
(t1059 发现 T1059). 名称查找是模糊的-确切的名称
首先是以查询开头的名称,然后是包含
它,然后命名包含查询的每个单词。
MCP服务器
一个箱子能同时满足两个人的需要。这个 mcp subcommand启动stdio MCP
服务器:
npx -y @reneturcios/threatkb mcp
MCP客户端配置:
{
"mcpServers": {
"threatkb": {
"command": "npx",
"args": ["-y", "@reneturcios/threatkb", "mcp"],
"env": {
"THREATKB_DATA_FILE": "/path/to/enterprise-attack.json"
}
}
}
}
工具
| 工具 | 输入 | 它返回什么 |
|---|---|---|
query_technique | technique_id 或者 tech_name (实践中需要一个) | 匹配技术总结如下 {results, count}. |
search_technique_full | technique_id 或者 tech_name | 所有细节都是相同的:平台,杀伤链阶段,参考,子技术,缓解,检测。 |
query_mitigations | technique_id (必需) | 与该技术相关的缓解措施。 |
query_detections | technique_id (必需) | 与该技术相关的检测。 |
list_tactics | (没有) | 数据集中的每个策略都是 {results, count}. |
server_info | (没有) | 服务器名称、版本、数据集路径、是否加载数据集以及加载时的对象计数。 |
如何读取STIX数据集
threatkb对STIX的一个刻意简化的切片进行索引 模型,记录在这里,所以限制是明确的:
- 技术是
attack-pattern对象;at&ck id来了 从external_references带有源名称的条目mitre-attack. 战术来自技术kill_chain_phases阶段名称。 - 策略
x-mitre-tactic对象(x_mitre_shortname)。 - 措施之一是
course-of-action对象链接到 技巧:mitigates的关系。 - 检测是
detects关系指向 技巧;关系的来源(通常是一个人)x-mitre-data-component)被解析,包括其数据 链接时的源名称。技术的x_mitre_detection指导文本也作为检测条目返回。 - 子技术由
x_mitre_is_subtechnique或者一个 虚线标识;父母来自于subtechnique-of关系存在时,否则从id前缀。
撤销/弃用标志、分析、数据源覆盖 评分和组/软件归属不在讨论范围之内。
开发
npm install
npm run build # tsc -> dist/
npm test # node test runner over test/*.test.ts, on a hand-written STIX fixture, no real dataset needed
npm run dev # run the CLI from source via tsx
许可证
MIT -见 LICENSE.