jusso-dev/Brolga

GitHub: jusso-dev/Brolga

Brolga 是一款规划中的 Rust 威胁情报上下文引擎,旨在将来自 MISP、OpenCTI、TAXII 等平台的海量情报编译为任务相关、可追溯的最小上下文包,帮助分析师和 AI 代理高效获取当前决策所需的关键信息。

Stars: 0 | Forks: 0

Brolga — Make sense of the signal

# Brolga [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) ## 项目状态 规划和仓库初始化已完成。产品实现尚未开始。 工作被组织为跨越八个发布里程碑的 59 个范围明确、具有依赖感知的 [GitHub issues](https://github.com/jusso-dev/Brolga/issues)。每个 issue 都定义了结果、范围、验收标准、依赖项、非目标,以及安全和来源影响。在提出实现建议之前,请参阅[路线图](docs/ROADMAP.md)。 ## 意图 威胁情报很丰富,但使用成本高昂。一次调查可能会遇到数千个重复的指标、复制的报告、相互矛盾的说法、过时的基础设施记录、不一致的命名、庞大的关系图,以及消耗注意力多于其回报的元数据。 Brolga 旨在位于 MISP、OpenCTI、TAXII 服务器、威胁情报源、SIEM、案例管理平台和内部情报仓库等系统之上。这些系统仍然是权威存储和操作平台。Brolga 的工作范围更窄:将其情报编译为仍然有用、诚实、策略安全且可追溯的最小上下文。 引擎将摄取 STIX、MISP、TAXII、OpenCTI 导出、ATT&CK、指标源、检测内容、漏洞数据和其他安全格式。它将这些记录转换为一致的、感知来源的情报图;将重复和联合报告与独立证实区分开来;保留矛盾和处理限制;并针对特定任务、环境和预算对情报进行排名。 其核心承诺是: ## 项目为何存在 威胁情报平台通常是为了存储、关联、交换、浏览或管理情报而构建的。代理和分析师有一个不同的即时需求:只接收对当前决策重要的信息,并带有足够的证据来理解其重要性。 向代理发送完整的 STIX bundles、MISP 事件、TAXII 集合或情报仓库不仅成本高昂,而且往往适得其反。它将当前、经过证实、可操作的事实隐藏在重复的描述和低价值的元数据中。当复制的报告被错误地计为独立来源时,它还可能抹去重要的区别。 Brolga 旨在回答以下问题: - 关于此域名、IP、URL、哈希、漏洞、攻击者、恶意软件家族、攻击活动、事件、资产或组织,已知哪些信息? - 哪些说法是当前的、已证实的、矛盾的、已撤销的、过时的或不确定的? - 对于此事件、狩猎、检测任务或暴露评估,哪些确切的指标和关系是重要的? - 自上次检查点以来发生了什么变化? - 哪些证据支持每个处置、摘要、建议和转移? - 由于预算、时效、置信度、策略或处理限制,排除了哪些内容? - 如何将选定的压缩结果展开回其规范记录和确切的原始源对象? ## 目标用户 Brolga 计划用于: - 需要紧凑、一致情报上下文的 AI 代理和 MCP 客户端 - 丰富警报和调查的 SOC 和事件响应团队 - 解决重复、置信度和相互矛盾说法的威胁情报分析师 - 准备特定任务狩猎和检测输入的检测工程师 - 安全自动化平台、SIEM 和 SOAR 工作流、内部工具和 pipeline - 外部服务不可用或被禁止的离线、物理隔离或敏感环境 ## 预期操作模型 ``` feeds, files, exports, and read-only connectors -> bounded parsing and quarantine -> deterministic canonicalisation -> provenance-aware intelligence graph -> deduplication, resolution, confidence, and temporal state -> policy-filtered retrieval -> task-specific structural compression -> evidence-backed context pack -> CLI, HTTP, MCP, Rust library, or exporter ``` 原始源对象与规范记录保持分离,并且可检索。压缩改变的是选择和表示;它不会重写历史记录或悄悄丢弃证据。 ## 上下文包 上下文请求将指定主题、目的、环境、详细级别以及一个或多个预算。计划的目的包括事件分类、威胁狩猎、恶意软件分析、攻击者研究、漏洞优先级排序、高管简报、检测工程、暴露评估、供应链调查、案例丰富化和原始研究。 Brolga 将通过精确和语义去重、别名折叠、关系浓缩、指标聚类、时间优先级排序、代表性选择、schema 最小化以及可配置的值密度排序,对匹配的情报进行结构性压缩。 每个包旨在包含: - 版本化 schema 和确定性指纹 - 处置、置信度组件、时间状态和不确定性 - 相关实体、声明、关系、目击和 ATT&CK 技术 - 矛盾、情报差距和建议的调查转移 - 证据参考和来源 - 标记和策略上下文 - 请求和消耗的预算 - 排除的类别和未满足预算的解释 - 压缩质量统计 - 检查点标识和展开句柄 渐进式披露的范围将从 `L0` 处置一直到 `L5` 确切的原始源对象。代理应该从紧凑开始,仅在需要时才请求更深层次的证据。 ## 计划属性 - 名为 `brolga` 的自包含 Rust 二进制文件 - 无需 LLM 的离线和确定性操作 - 针对实体、可观察对象、关系、声明、目击、来源和标记的强规范类型 - 原始源对象保留和可审计的转换链 - 在 token、字节、对象、深度、关系和时间预算下的保留证据的结构性压缩 - 从处置到原始源对象的渐进式披露 - CLI、本地 HTTP API、MCP stdio 服务器和稳定的 Rust 库接口 - SQLite 本地模式和 PostgreSQL 服务器模式 - 声明式映射和配置文件以及能力受限的 WebAssembly 插件 - 默认只读的上游连接器 ## 设计承诺 - 绝不捏造源情报或掩盖不确定性。 - 绝不将出现在情报源中视为恶意的充分证明。 - 绝不将已知的联合副本计为独立证实。 - 绝不仅仅因为名称相似就合并攻击者、恶意软件、攻击活动或组织。 - 绝不悄悄丢弃格式错误、已撤销、相互矛盾、已过期、已废弃或受限制的记录。 - 绝不将导入的报告文本解释为指令。 - 未经操作者明确配置和策略批准,绝不向外部发送数据。 - 默认情况下绝不向代理公开原始源对象。 - 默认情况下绝不允许插件不受限制的主机访问。 - 优先使用确定性、可解释的逻辑,而不是 LLM。 - 保持每个压缩和解决决策都是可检查的。 ## 非目标 Brolga 不会取代 MISP、OpenCTI、SIEM、SOAR 平台、案例管理、恶意软件分析、EDR、源证据或人工判断。它也不会是聊天机器人、通用文本摘要器、自动归因引擎或连接外部 LLM 的默认通道。 ## 架构 计划的边界和依赖规则位于 [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md)。核心解析、建模、来源、存储、图逻辑、策略、压缩和接口将通过版本化的 Rust traits 和 schemas 保持松耦合。 默认本地模式将使用 SQLite。服务器模式将增加 PostgreSQL,而不需要专门的图数据库。受信任的第一方代码将使用编译时的 Rust traits;常见的操作者更改将使用声明式映射和配置文件;可移植的第三方扩展将使用能力受限的 WebAssembly。 除非经过单独审查并记录在案的例外情况证明不可避免,否则禁止使用 Unsafe Rust。 ## 计划接口 - 用于将 Brolga 嵌入其他产品的 Rust 库接口 - 带有 JSON、YAML、JSONL 和表格输出的 `brolga` CLI - 带有 OpenAPI 和 JSON Schema 的本地版本化 HTTP API - 公开意图级情报工具的 MCP stdio 服务器 - 版本化的上下文包和导出程序 schemas - 只读的 MISP、TAXII 和 OpenCTI 连接器 - 声明式映射、压缩配置文件、信任、衰减、策略、保留和环境配置 初始版本不计划包含 Web 前端。 ## 实现计划 - [v0.1.0 基础](https://github.com/jusso-dev/Brolga/issues/1) - [v0.2.0 核心摄取](https://github.com/jusso-dev/Brolga/issues/10) - [v0.3.0 情报图](https://github.com/jusso-dev/Brolga/issues/18) - [v0.4.0 压缩引擎](https://github.com/jusso-dev/Brolga/issues/26) - [v0.5.0 代理接口](https://github.com/jusso-dev/Brolga/issues/33) - [v0.6.0 连接器](https://github.com/jusso-dev/Brolga/issues/40) - [v0.7.0 扩展系统](https://github.com/jusso-dev/Brolga/issues/45) - [v1.0.0 稳定版](https://github.com/jusso-dev/Brolga/issues/51) 里程碑在发布门控级别是连续的,但单个 issues 可以在依赖项允许的情况下重叠。在通过可验证的测试、fixtures、schemas、文档或测量结果证明满足其验收标准之前,没有任何 issue 是完整的。 ## 安全 导入的情报、归档、映射、报告、连接器响应和插件是未受信任的输入。如 [SECURITY.md](SECURITY.md) 中所述,请通过 GitHub 私密漏洞报告来报告漏洞。 ## 许可证 Brolga 在 [MIT License](LICENSE) 下发布。
标签:AI工具, Rust, 上下文引擎, 可视化界面, 威胁情报, 开发者工具, 情报分析, 测试用例, 网络安全, 网络流量审计, 网络诊断, 隐私保护