NarrowCTI/narrowcti

GitHub: NarrowCTI/narrowcti

NarrowCTI 是一个 OpenCTI 原生的威胁情报预摄取网关,在数据进入 OpenCTI 图谱前进行筛选、评分、去重和策略治理,为分析师提供可解释且可审计的情报决策流程。

Stars: 0 | Forks: 0

NarrowCTI logo

NarrowCTI

OpenCTI 原生的 CTI 治理网关,旨在提供受控、可解释且图谱就绪的情报。

License: Apache-2.0 CI status Documentation Container image Security policy

NarrowCTI 是一个 OpenCTI 原生的威胁情报网关,旨在在威胁情报进入 OpenCTI 图谱之前对其进行筛选、 评分、去重和治理。 NarrowCTI Gateway 将原始订阅源数据转化为受控的摄取候选对象,并为 CTI、主动狩猎和 SOC 团队提供可解释的决策、来源溯源、防护机制和运营证据。 ## 当前版本 ``` v0.8.0 ``` `v0.8.0` 是当前的图谱提升、分析师审查和产品运营版本。它通过 OpenCTI 规范查找、 有界的 OTX/MISP 验证证据、关系审计证据、支持诊断和部署操作,完善了受控的图谱提升就绪状态。 发布历史摘要记录在 `CHANGELOG.md` 中;面向操作者的详细发布说明维护在 `docs/release-v*.md` 下。 ## 快速开始 为了进行首次安全评估,请从当前的操作指南开始: ``` docs/getting-started.md ``` 默认部署姿态为 dry-run(空运行)、run-once(单次运行)和审计优先。构建 网关镜像,运行 preflight(预检),然后在启用真正的 OpenCTI 图谱导出之前执行一次有界运行: ``` docker compose -f deployment\docker-compose.narrowcti-gateway.yml build narrowcti-gateway docker compose -f deployment\docker-compose.narrowcti-gateway.yml --profile ops run --rm narrowcti-preflight docker compose -f deployment\docker-compose.narrowcti-gateway.yml run --rm narrowcti-gateway ``` 请使用 `docs/deployment-operations.md` 获取权威的部署和升级流程。 ## 产品定位 v0.2 版本线是模块化 OTX 连接器的基础。v0.3 版本线是 从特定于 OTX 的连接器向 NarrowCTI Gateway(一个 OpenCTI 原生的 预摄取情报网关)的过渡。OTX 仍然是第一个来源适配器;它不再是 产品的定位标识。v0.4 版本通过第二个真实订阅源验证了网关模型, 并将 MISP 作为首个战略候选对象。v0.5 轨道开始了向统一网关运行时的迁移。 v0.5 轨道还记录了企业情报网关的目标:NarrowCTI 应成为 在 OpenCTI 摄取之前塑造攻击者、武器库、TTP、受害者学、基础设施以及 隔离/发布上下文的决策层。 ## 功能说明 - 使用可配置的威胁情报查询搜索 OTX pulse。 - 通过 OTX API 丰富候选 pulse。 - 在摄取前计算上下文评分并记录评分证据。 - 应用摄取策略来执行 drop(丢弃)、quarantine(隔离)和 export(导出)决策。 - 可选地写入结构化决策审计记录,用于运营审查。 - 记录每个查询的运营摘要,涵盖已审查、已摄取、已丢弃、 已隔离、已跳过和失败的候选对象。 - 使用持久化的本地状态对已处理的 pulse 进行去重。 - 提供 MISP 适配器基础,具备独立状态、dry-run 模式、 run-once 执行和安全的回填过滤器。 - 为攻击者、武器库、MITRE ATT&CK、 受害者学、隔离-发布和图谱丰富过滤器定义企业路线图。 - 为 OpenCTI 摄取构建 STIX bundle。 - 在 OpenCTI 实验环境中作为 Docker 化的连接器运行。 ## 架构 ``` External and internal intelligence sources -> source adapters such as OTX and MISP -> shared feed contract -> scoring, policy and decision audit -> source-scoped state and guardrails -> STIX builder -> OpenCTI exporter ``` 主要模块: ``` connectors/otx/ OTX connector runtime, feed adapter, settings and processor connectors/misp/ MISP client, feed adapter, settings and processor foundation core/ Feed contracts, scoring, policy and persistent state handling exporters/ OpenCTI export and STIX bundle construction tests/ Unit coverage for the processor and shared pipeline logic docs/ Product, operations, architecture and release documentation ``` ## 产品定位 NarrowCTI 被设计为 OpenCTI 的预摄取情报决策层。 其作用是通过应用特定于来源的丰富、评分、去重和策略,在数据到达 OpenCTI 图谱之前降低订阅源噪音。 产品的发展方向是成为一个专业的 CTI 网关,面向需要精选情报、 可解释的决策和可审计的订阅源治理(而非原始 IoC 转发)的分析师、狩猎者、SOC 和平台团队。OTX、MISP、商业订阅源和内部来源应通过相同的可解释 摄取模型进行评估。企业目标是当来源证据支持时,利用攻击者、 武器库、MITRE 战略和技术、受害者学、基础设施、活动、 漏洞和检测上下文来丰富 OpenCTI。v1.0 的市场定位记录在 `docs/market-positioning-v1.0.md` 中。 MITRE ATT&CK 被视为参考和治理上下文。官方 MITRE 连接器应使用规范的 ATT&CK 基线填充 OpenCTI,而 NarrowCTI 使用在 OTX、MISP 和未来订阅源中找到的 ATT&CK ID 来丰富、评分、 过滤、去重、审计,并随后将精选的情报关联到 OpenCTI 图谱。此决策记录在 `docs/mitre-curation-architecture-v0.7.md` 中。 ## 去重姿态 NarrowCTI 应保护 OpenCTI 图谱的整洁,而不是重复转发相同的 工件(artifact)。当前实现使用本地状态对已处理的来源条目进行去重,对每个 bundle 内重复的 STIX 模式进行去重, 并且可以保留一个带有来源发现记录的本地工件索引,用于跨来源 关联。v0.5 网关设计将其扩展为分层的导出前去重: - 来源条目去重防止相同的 OTX pulse 或 MISP event 被 重复处理。 - 工件去重在导出前规范化指标类型和值。 - 本地工件索引记录来源发现,因此重复的 OTX/MISP 证据可以成为关联上下文,而不是重复导入。 - 启用时,可选的 OpenCTI 查找可以在导入前检查现有的 STIX Indicator 模式。 - 跨来源匹配应成为来源和置信度证据,而不是重复的图谱噪音。 ## v0.8 发布 v0.8 版本开始了受控的图谱提升阶段。OTX 仍然是参考 适配器,而 MISP 成为可能的第二个适配器,因为许多运营团队 使用 MISP 作为中心的 IoC 和 event 枢纽。 针对基于 MISP 的环境,预期的流程是: ``` AlienVault OTX and other feeds -> MISP -> NarrowCTI Gateway -> OpenCTI ``` 当信息可用时,NarrowCTI 应同时保留收集器上下文(如 MISP)和 原始情报来源(如 AlienVault OTX)。 2026-06-21 的一次本地验证确认,一个 MISP event 可以包含数万 个属性,并且 `opencti/connector-misp:6.9.4` 不支持 `MISP_IMPORT_LIMIT`。因此,NarrowCTI 需要一流的逐次运行和 逐个 event 的安全控制,而不是依赖官方连接器进行 受控回填。 MISP 适配器基础现在包含了针对每次运行的最大 event 数、每个 event 的最大属性数和每个 event 的最大导出 IoC 数的明确防护机制。 默认情况下会跳过过大的 event,并提供明确的截断模式用于 受控实验。 该适配器还支持 dry-run 验证、一次性执行和有界历史 回填过滤器(针对日期范围、标签和仅已发布导入)。 该适配器拥有专门的设置、MISP event 状态和处理器基础, 因此它可以在不共享 OTX pulse 处理状态的情况下演进。 ## v0.5 发布 v0.5 版本引入了第一个统一的 NarrowCTI Gateway 运行时。 网关运行时应通过 source 注册表编排已启用的来源(如 OTX 和 MISP),而不是将每个来源容器视为产品形态, 同时保持 source 级别的状态、审计证据、防护机制和故障 隔离。 特定于来源的 OTX 和 MISP 运行时应保持可用,以进行调试、 验证和有界回填。在本地 OpenCTI、队列和 Elasticsearch 行为在重复的有界 运行中保持稳定之前,MISP 应保持可选和受防护状态。详细的 v0.5 设计记录在 `docs/gateway-runtime-v0.5.md` 中, 企业情报网关模型记录在 `docs/enterprise-intelligence-gateway-v0.5.md` 中,产品/架构 连续性验证记录在 `docs/product-architecture-validation-v0.5.md` 中。 ## v0.6 发布轨道 v0.6 轨道是隔离和丰富的基础。目标是 将隔离从决策结果转变为可审查、可审计的操作者工作流,同时开始从 OTX 和 MITRE ATT&CK 进行结构化丰富。 当前的 v0.6 实现提供了一个本地隔离存储库和 CLI 工作流,用于列出、显示、拒绝和释放被扣押的候选对象,并带有 审查者理由和释放审计证据。OTX 和 MISP 隔离决策 将待处理记录写入本地存储库,包含评分元数据、来源 溯源、指标和有界的原始快照。释放的记录可以 通过现有的 OpenCTI 导出路径重播,默认使用 dry-run。 丰富基础提取 OTX 攻击者、恶意软件家族、ATT&CK、 行业、国家、TLP 和引用字段,然后在配置时通过本地 MITRE 缓存解析 ATT&CK 技术和 战术上下文。网关 preflight 检查和运营报告现在包含隔离/释放和 MITRE 缓存 姿态,以确保操作者就绪。 详细的 v0.6 设计记录在 `docs/quarantine-enrichment-v0.6.md` 中,发布说明记录在 `docs/release-v0.6.0.md` 中。 初始隔离 CLI 命令: ``` python -m gateway.quarantine --repository state\quarantine.jsonl list --status pending python -m gateway.quarantine --repository state\quarantine.jsonl show --id python -m gateway.quarantine --repository state\quarantine.jsonl --release-audit-file state\audit\releases.jsonl reject --id --reason "Out of scope" python -m gateway.quarantine --repository state\quarantine.jsonl --release-audit-file state\audit\releases.jsonl release --id --reason "Relevant to monitored actor" python -m gateway.quarantine --repository state\quarantine.jsonl --release-audit-file state\audit\releases.jsonl release-indicators --id --type filehash-sha256,url --reason "High-value indicators" python -m gateway.quarantine --repository state\quarantine.jsonl export-released --id python -m gateway.quarantine --repository state\quarantine.jsonl export-released --id --execute --dedup-state-file state\dedup_index.json python -m gateway.quarantine --release-audit-file state\audit\releases.jsonl audit ``` 初始的 v0.6 CLI 在本地记录审查状态和释放审计证据。 配置 `NARROWCTI_QUARANTINE_REPOSITORY` 后,source 处理器会自动将策略隔离的 OTX pulse 和 MISP event 加入队列。释放的记录可以通过相同的 OpenCTI 导出路径重播,默认采用 dry-run;真实 导出需要使用 `--execute`。`audit` 命令汇总 释放、拒绝和导出审计事件,无需手动解析 JSONL。 OTX 实体提取由 `NARROWCTI_ENABLE_OTX_ENTITY_EXTRACTION=true` 控制。在 v0.6 中,此提取仅 针对元数据:攻击者、恶意软件家族、ATT&CK ID、行业、目标 国家、TLP、引用和标签被保留为结构化证据,供 未来图谱丰富使用。 ## v0.7 发布 v0.7 版本将 v0.6 的丰富证据转化为具备图谱意识的 STIX/OpenCTI 规划和预览输出。目标是更深入地验证来源 元数据,将支持的证据映射到攻击者、入侵集合、 恶意软件、工具、基础设施、漏洞、活动、部门、位置、 ATT&CK 技术和关系中,并在这些关系影响 OpenCTI 图谱之前保持其可解释性。 整合后的架构记录在 `docs/architecture-v0.7.md` 中。详细的 图谱丰富设计记录在 `docs/graph-enrichment-v0.7.md` 中,发布说明记录在 `docs/release-v0.7.0.md` 中。MITRE 治理架构记录在 `docs/mitre-curation-architecture-v0.7.md` 中。MISP 与官方 OpenCTI 连接器映射的兼容性记录在 `docs/misp-official-connector-mapping-v0.7.md` 中,OTX 与 官方 AlienVault 连接器映射的兼容性记录在 `docs/otx-official-connector-mapping-v0.7.md` 中。上下文评分研究记录在 `docs/contextual-scoring-reference-v0.7.md` 中。 直接来源、MISP 收集器和混合摄取架构记录在 `docs/source-ingestion-modes-v0.7.md` 中。 ## v0.8 发布 v0.8 版本开启了 v0.7 之后的受控提升阶段。它增加了 只读的 OpenCTI 图谱查找功能,以便 NarrowCTI 能够检测规范的 ATT&CK 对象, 例如在启用受控图谱提升之前,由官方 MITRE 连接器加载的 现有 `attack-pattern` 条目。 图谱提升设计记录在 `docs/graph-promotion-v0.8.md` 中, 发布说明记录在 `docs/release-v0.8.0.md` 中。部署、分析师 审查、治理报告和支持诊断记录在 `docs/` 下专门的 v0.8 文档中。 NarrowCTI 治理与 OpenCTI 摄取后推理规则之间的关系记录在 `docs/opencti-rules-engine-v0.8.md` 中。 NarrowCTI 负责基于来源的预摄取决策;在精选图谱生成后,OpenCTI Rules Engine 可以选择性地推断出额外的关系。 OpenCTI 选项卡覆盖范围、当前导出状态和待办事项边界记录在 `docs/opencti-coverage-matrix-v0.8.md` 中。 ## 治理配置 治理控制必须在配置中可见,然后由网关自动应用。当前的 source 运行时通过环境变量公开评分阈值、 年龄限制、隔离行为、网关级别的允许 TLP、可导出的指标类型、MISP 日期范围、MISP 标签过滤器和容量防护机制。v0.5 轨道添加了网关级别的 `NROWCTI_*` 控制项,用于共享策略、去重和来源选择。未来的企业控制应涵盖攻击者、武器库、ATT&CK、受害者学、图谱状态和隔离释放工作流,而不会对操作者隐藏这些策略选择。 图谱层记录 `graph_candidate_policy` 和 `graph_export_plan` 元数据。`NARROWCTI_GRAPH_EXPORT_MODE=audit` 保持计划仅用于审计,而 `dry-run` 记录将尝试哪些图谱对象和关系。在 v0.8 中,`NARROWCTI_GRAPH_EXPORT_MODE=export` 启用了第一个受控的图谱提升门:OTX 和 MISP 仍然导出遗留的报告和指标, 但也会将已接受的图谱实体和关系添加到同一个 STIX bundle 中。 当来源元数据支持这些实体时,这可以为 OpenCTI 的威胁、武器库、技术、部门、 位置和观测等区域提供数据。本地图谱去重状态可以通过 `NARROWCTI_GRAPH_DEDUP_STATE_FILE` 读取,以便 OTX 和 MISP 导出计划可以将已知的本地图谱键标记为已去重。Dry-run 计划不会被标记为已导出的 知识,只有在 OpenCTI 导入调用成功后,导出状态才会被标记。在 v0.8 中, `NARROWCTI_OPENCTI_GRAPH_LOOKUP=true` 也可以被启用,以便 OTX 和 MISP 规划在提升创建新的图谱知识之前,向 OpenCTI 查询规范的图谱对象,从 ATT&CK attack-pattern、malware、tools、infrastructure、CVE vulnerabilities、threat actors 和 intrusion sets 以及受控的 locations/countries 开始。规范匹配作为有界的 `graph_export_plan_lookup_matches` 元数据公开,用于审计和未来的企业 报告。当规范匹配包含有效的 STIX `standard_id` 时,导出门将在精选的 STIX bundle 中引用该现有的 OpenCTI 对象,而不是对其进行重复创建。NarrowCTI 创建的图谱 SDO 也使用 确定性的 STIX ID,因此同一精选对象的重复导出将汇聚于相同的 OpenCTI `standard_id`。 对于有界的 MISP 治理重播, `NARROWCTI_GRAPH_REPLAY_ON_ARTIFACT_DEDUP=true` 可以与 `NARROWCTI_GRAPH_EXPORT_MODE=export` 结合使用,这样指标已知的 event 仍然可以导出已接受的图谱上下文,而无需重播指标对象。 如果在没有明确允许列表的情况下启用了真实的图谱导出,NarrowCTI 将使用一个安全的默认允许列表。它会提升有来源支撑的 CTI 对象,例如 infrastructure、ASN、observables、sectors、locations、arsenal、ATT&CK、 vulnerabilities 和 reports,同时将诸如收集器、来源身份、标签和标记等订阅源记账信息保留在 author/audit 元数据中,除非操作者明确选择加入这些图谱候选类型。 v0.8 图谱 bundle 还会在可解析的情况下激活更丰富的导出目标:MITRE data-source 上下文可以作为精选的 Data Source 附加到 ATT&CK 技术中传播;检测指南和 MISP EventReports 作为 Notes 传播;YARA/Sigma/Snort/Suricata/PCRE 规则作为支持模式的 Indicators 传播;当两个 UUID 端点都解析为图谱对象时,MISP ObjectReferences 将成为 STIX Relationships;当被发现的值解析为 Indicator 时,MISP sightings 将成为 STIX Sightings。MITRE 战术和平台值仍作为精选的上下文/证据保留,在验证 OpenCTI 导入行为是否将其视为一等对象之前,它们不会成为默认导出门的一部分。未解析的纯关系证据将排除在 bundle 之外,而不是创建不安全的 OpenCTI 边。 基础设施提升有意保持保守:除非来源元数据或审查策略明确支持 STIX `infrastructure` 候选对象,否则原始 domain、IP 和 URL 将继续作为 Indicators 或 Observables 处理。这使得 `Observations / Infrastructures` 对于精选的威胁基础设施保持有用,而不是将其变成另一个原始 IOC 存储桶。 为了实现审计可见性,导出的 STIX bundle 现在使用感知来源的 OpenCTI Author 命名约定: ``` via NarrowCTI ``` OTX 导出显示为 `OTX AlienVault via NarrowCTI`,MISP 导出显示为 `MISP via NarrowCTI`,未来的适配器应使用相同的后缀定义自己的来源身份映射。NarrowCTI 还通过 决策审计记录、治理报告、导出计划和 `x_narrowcti_*` 图谱元数据保持可见。 完整的当前配置参考记录在 `docs/configuration-reference.md` 中。当发布说明需要确切的历史行为时,版本化的配置参考仍可作为发布快照使用。 ## NarrowCTI Gateway 运行时 NarrowCTI Gateway 运行时通过环境变量进行配置。当前稳定的运行时使用 OTX 适配器,并在以下位置提供了一个安全模板: ``` connectors/otx/.env.example ``` MISP 适配器基础有其自己的配置模板,用于受控的本地验证: ``` connectors/misp/.env.example ``` 真实的运行时文件必须根据需要在本地创建: ``` connectors/otx/.env connectors/misp/.env ``` 不要提交真实的 `.env` 文件。它们包含 OpenCTI、OTX 或 MISP 凭据。 必需的 OTX 变量: ``` OPENCTI_URL OPENCTI_TOKEN OTX_API_KEY OTX_QUERIES ``` 必需的 MISP 基础变量: ``` OPENCTI_URL OPENCTI_TOKEN MISP_URL MISP_KEY MISP_QUERIES ``` 推荐用于有限本地机器的安全 MISP 验证控制: ``` MISP_DRY_RUN=true MISP_RUN_ONCE=true MISP_MAX_EVENTS_PER_RUN=1 MISP_MAX_ATTRIBUTES_PER_EVENT=1000 MISP_MAX_IOCS_PER_EVENT=1000 MISP_QUERIES=* MISP_FROM_DATE=YYYY-MM-DD MISP_TO_DATE=YYYY-MM-DD MISP_TAGS=tlp:green MISP_PUBLISHED_ONLY=true MISP_OVERSIZED_EVENT_ACTION=skip ``` 为了在验证期间精确重播已知的 MISP event,请使用 `MISP_QUERIES=event:` 或 `MISP_QUERIES=uuid:`,而不是使用广泛的搜索。 用于开发验证的初始 v0.5 网关运行时命令: ``` $LAB_ROOT = "" cd "$LAB_ROOT\NarrowCTI" docker run --rm --env-file config\.env.example -v "${LAB_ROOT}\NarrowCTI:/repo" -w /repo opencti-connector-narrowcti python -m gateway.connector ``` 该示例保留 `NARROWCTI_DRY_RUN=true` 和 `OTX_DRY_RUN=true` 以确保安全的本地验证。 在运行摄取之前,操作者可以验证网关运行时姿态, 而无需调用订阅源 API 或 OpenCTI: ``` $LAB_ROOT = "" cd "$LAB_ROOT\NarrowCTI" docker run --rm --env-file config\.env.example -v "${LAB_ROOT}\NarrowCTI:/repo" -w /repo opencti-connector-narrowcti python -m gateway.preflight docker run --rm --env-file config\.env.example -v "${LAB_ROOT}\NarrowCTI:/repo" -w /repo opencti-connector-narrowcti python -m gateway.preflight --json ``` preflight 报告已启用的来源、去重姿态、OpenCTI 查找、 汇总摘要输出、来源 dry-run 控制以及用于来源状态、决策审计、释放审计、隔离存储库、MITRE 缓存和工件去重的本地证据路径。未知来源会导致检查失败;较弱的 图谱卫生、缺失的 MITRE 缓存和操作设置将作为 警告报告。 在一次或多次网关运行之后,操作者可以汇总由 `NARROWCTI_RUN_SUMMARY_FILE` 写入的汇总 JSONL 证据: ``` $LAB_ROOT = "" cd "$LAB_ROOT\NarrowCTI" docker run --rm -v "${LAB_ROOT}\NarrowCTI:/repo" -w /repo opencti-connector-narrowcti python -m gateway.report --file state\gateway_runs.jsonl docker run --rm -v "${LAB_ROOT}\NarrowCTI:/repo" -w /repo opencti-connector-narrowcti python -m gateway.report --file state\gateway_runs.jsonl --json docker run --rm -v "${LAB_ROOT}\NarrowCTI:/repo" -w /repo opencti-connector-narrowcti python -m gateway.report --file state\gateway_runs.jsonl --quarantine-file state\quarantine.jsonl --output-file state\gateway-operational-report.txt docker run --rm -v "${LAB_ROOT}\NarrowCTI:/repo" -w /repo opencti-connector-narrowcti python -m gateway.decisions --dir state\audit docker run --rm -v "${LAB_ROOT}\NarrowCTI:/repo" -w /repo opencti-connector-narrowcti python -m gateway.correlation --file state\dedup_index.json ``` 该报告汇总了运行次数、时间范围、总体结果以及每个来源的结果(针对已审查、已摄取、已丢弃、已隔离、已跳过、错误和 dry-run 候选对象)。它还报告方向性价值指标,如已接受 条目、已过滤条目、接受率、过滤率和错误率,并列出了在网关运行期间捕获的来源失败记录。逐查询汇总显示了哪些 搜索产生了已审查、已处理、已接受和已过滤的候选对象。决策审计报告汇总了来自来源审计 JSONL 文件的 ingest、drop、quarantine、skip、dry-run 和 error 原因,以及评分范围、平均值和供操作者审查的逐查询决策汇总。它还列出了最近的隔离候选对象。当存在 v0.7 `graph_export_plan` 元数据时,它还会 汇总图谱导出模式、状态、操作、保留原因、 来源/查询汇总、去重的实体/关系计数以及 dry-run 模式下将创建的对象/关系计数。关联报告汇总了本地工件索引,包括跨来源的指纹和来源发现计数。 统一的网关入口点组合了已启用的来源运行时,并隔离了来源失败。在 v0.5 网关成熟之前,请保持特定于来源的运行时可用,以用于调试和有界回填。 ## 部署 权威的当前部署和升级流程集中在以下位置: ``` docs/deployment-operations.md ``` 部署资产包括: ``` deployment/docker-compose.narrowcti-gateway.yml deployment/gateway.env.example ``` v0.8 模板默认为 dry-run/run-once,加入现有的 OpenCTI Docker 网络,并且在任何来源执行之前必须使用 `gateway.preflight` 进行验证。其 `ops` 配置文件可以运行 preflight、治理报告、 决策审计报告、工件关联报告、运营验证和支持诊断,而无需启动持续摄取。治理报告服务将文本、JSON 和 HTML 工件持久化保存在网关状态卷下,而支持诊断可以生成一份经过脱敏处理的 HTML 快照和支持 bundle 供审查。特定于发布文档中的旧部署代码片段是历史上下文;请使用 `docs/deployment-operations.md` 获取当前流程。 特定于来源的 OTX 和 MISP 运行时仍然可用于调试和有界回填调查,但它们不是当前部署的真理来源。请使用 `docs/deployment-operations.md` 获取部署和升级步骤,并仅使用 `scripts/misp-backfill-window.ps1 -Preview` 进行受控的 MISP 回填命令检查。 ## 验证 在构建 Docker 镜像后,从仓库根目录运行验证: ``` $LAB_ROOT = "" cd "$LAB_ROOT\NarrowCTI" .\scripts\validate-release.ps1 ``` 该辅助工具运行与发布时使用的相同的基于 Docker 的语法和单元验证命令。要在不执行 Docker 的情况下检查命令: ``` .\scripts\validate-release.ps1 -Preview ``` 手动等效操作: ``` docker run --rm -v "${LAB_ROOT}\NarrowCTI:/repo" -w /repo opencti-connector-narrowcti python -m py_compile connectors/otx/connector.py connectors/otx/entity_extraction.py connectors/otx/feed_adapter.py connectors/otx/models.py connectors/otx/processor.py connectors/otx/runtime.py connectors/otx/settings.py connectors/otx/otx_client.py connectors/misp/client.py connectors/misp/connector.py connectors/misp/feed_adapter.py connectors/misp/models.py connectors/misp/processor.py connectors/misp/runtime.py connectors/misp/settings.py core/decision_audit.py core/feed_contract.py core/graph_candidates.py core/graph_evidence.py core/indicator_policy.py core/mitre_attack.py core/quarantine.py core/scoring.py core/policy.py core/state_repository.py core/tlp.py exporters/opencti.py exporters/stix_builder.py docker run --rm -v "${LAB_ROOT}\NarrowCTI:/repo" -w /repo opencti-connector-narrowcti python -m py_compile gateway/preflight.py gateway/report.py gateway/decisions.py gateway/correlation.py gateway/mitre.py gateway/quarantine.py gateway/quarantine_export.py docker run --rm -v "${LAB_ROOT}\NarrowCTI:/repo" -w /repo opencti-connector-narrowcti python -m unittest discover -s tests -v ``` ## 发布流程 该项目使用 `dev` 作为集成分支,使用 `main` 作为稳定分支。 官方版本应从 `main` 发布,并同时附带 Git 标签和包含精选发布说明的 GitHub Release。 ``` feature/* -> dev -> main -> version tag -> GitHub Release ``` 当前发布版本: ``` v0.8.0 ``` ## 文档 文档索引可在以下位置找到: ``` docs/README.md ``` 推荐起点: ``` docs/getting-started.md docs/deployment-operations.md docs/configuration-reference.md docs/architecture.md docs/curation-decision-reference.md docs/environment-profiles.md docs/container-images.md docs/community-standards.md docs/documentation-map.md docs/graph-promotion-v0.8.md docs/opencti-coverage-matrix-v0.8.md docs/repository-structure.md docs/development-guide.md docs/community-issue-triage.md docs/release-v0.8.0.md docs/release-process.md docs/roadmap.md ``` 开发证据和实验室验证说明可能会保留在仓库中以保持透明度,但发布源归档会通过 `.gitattributes` 进行筛选,以便操作者收到专注于产品的文档。 ## 贡献 NarrowCTI 欢迎社区贡献。从这里开始: ``` CONTRIBUTING.md docs/development-guide.md docs/community-issue-triage.md CODE_OF_CONDUCT.md SUPPORT.md SECURITY.md ``` Issue 和 pull request 应避免包含机密信息、`.env` 文件、本地 `state/` 工件、原始客户数据和私有订阅源 payload。 ## 路线图 - 采用 Apache-2.0 核心分发的开源产品基础。 - v0.8 preflight 可见的能力清单,用于透明的开源运营。 - 超出参考 OTX 适配器的多订阅源支持。 - 高级关联评分和面向分析师的来源证据。 - 具有特定于来源权重的更丰富评分模型。 - Sigma 或检测规则生成。 - 用于策略调整的管理控制。 - 隔离审查和分析师释放工作流。 - 针对攻击者、武器库、MITRE ATT&CK、受害者学和图谱 状态的企业过滤器。 - v1.0 之后的 ML 辅助治理,用于别名、关系建议、 语义去重和优先级排序(在确定性 v1.0 引擎稳定之后进行)。 ## 安全说明 - 切勿提交真实的 `.env` 文件或 API token。 - 不要提交本地机器路径、用户名或特定于实验的机密。 - 除非有意重新处理旧的 pulse,否则请保留 `state/state.json`。 - 除非确认已进行备份,否则避免对持久化的 OpenCTI 或 MISP 数据卷执行破坏性的 Docker 清理命令。 - 尽可能私下报告漏洞。请参阅 `SECURITY.md`。 ## 许可证 NarrowCTI 核心是在 Apache-2.0 下的开源项目。请参阅: ``` LICENSE THIRD_PARTY_NOTICES.md docs/open-source-strategy.md ``` 未来的付费服务、托管部署或可选的独立模块应围绕开源核心构建,而不是限制核心网关。
标签:OpenCTI, SOC运营, 威胁情报, 开发者工具, 数据治理, 版权保护, 网关, 请求拦截, 逆向工具