4. 情报融合的数据模型与知识表示

威胁情报融合的难点,往往不在于“有没有数据”,而在于“数据之间能不能对上”。同一台主机,在防火墙日志里叫 10.20.3.17,在EDR里叫 WIN-DB-02,在资产库里叫“财务数据库服务器”;同一个攻击者,在不同厂商报告中可能被标为 APT-X、Group-27 或某个哈希值。若没有统一的数据模型与知识表示,融合就退化为字符串匹配,关联结果既不稳定也不可解释。本节围绕实体-关系模型、图数据库、本体设计、要素对齐与统一标识五条主线,说明如何把多源异构情报组织成可查询、可推理、可追溯的知识网络。

一、实体-关系模型:把情报拆成“点”和“边”

实体-关系(ER)模型是情报融合的骨架。实体是情报中可独立指称的对象,关系是实体之间的语义连接。在威胁情报场景中,常见实体类型包括:主机/资产(IP、域名、主机名、MAC)、账号(用户名、邮箱、SID)、进程/文件(进程名、文件路径、哈希)、攻击者/组织(APT编号、别名、动机)、攻击技术(ATT&CK Technique ID)、漏洞(CVE编号)、基础设施(C2域名、证书、ASN)。关系则包括 RESOLVES_TO(域名解析到IP)、CONNECTS_TO(主机连接C2)、EXECUTES(进程执行文件)、USES(攻击者使用技术)、ALIAS_OF(别名等价)、COMMUNICATES_WITH(横向移动)等。

ER模型的价值在于:它把“一段描述性文字”转成“一组可枚举的节点和边”。例如一条原始情报“主机 10.20.3.17 在 2024-06-11 连接了域名 cdn-update[.]xyz,该域名解析到 45.77.12.9”,可拆为三个实体(主机、域名、IP)和两条关系(CONNECTS_TO、RESOLVES_TO),并附带时间戳、端口、协议等属性。属性挂在实体或关系上,而不是混在文本里,这是后续对齐和查询的前提。

二、图数据库:让多跳关联成为一等公民

关系型数据库擅长表格统计,但威胁情报的核心问题是“谁和谁通过什么路径相连”。图数据库以节点和边为原生存储结构,天然适合多跳查询。以 Neo4j 为例,可以用 Cypher 表达“找出与已知C2域名共享同一证书、且在过去7天内被至少3台内网主机访问过的IP”:

MATCH (c2:Domain {name:'cdn-update.xyz'})-[:USES_CERT]->(cert:Certificate)
      <-[:USES_CERT]-(other:Domain)<-[:RESOLVES_TO]-(ip:IP)
      <-[:CONNECTS_TO]-(h:Host)
WHERE h.last_seen >= datetime() - duration('P7D')
RETURN ip.address, count(DISTINCT h) AS host_count
ORDER BY host_count DESC;

这条查询在关系型库中需要多次自连接,而在图库中直接沿边遍历。图数据库的另一个优势是路径可解释:返回的不只是“命中”,而是“通过证书关联到其他域名,再解析到IP,再被主机访问”的完整链路,便于分析师判断是真实基础设施复用还是误报。实际部署时,通常用图库存“关系与拓扑”,用关系库或时序库存“原始日志与指标”,两者通过统一标识关联。

三、本体设计:定义“允许说什么”

本体(Ontology)是对领域概念及其关系的显式规范。它回答三个问题:有哪些类(Class)、类之间允许哪些关系(Object Property)、实体可以有哪些属性(Data Property)。没有本体,不同团队会各自发明字段名,融合时只能靠人工映射;有了本体,新增数据源只需声明“它对应本体中的哪个类、哪个属性”。

威胁情报领域已有可复用的本体标准,如 STIX 2.1 定义了 Indicator、Malware、Attack Pattern、Identity、Infrastructure 等对象及关系;ATT&CK 提供了战术、技术、组织的分类体系。工程上不必从零设计,而应“以标准为基线、以本地资产模型为扩展”。例如在 STIX 基础上增加 InternalAsset 类,并定义 InternalAsset —owns→ Host、Host —runs→ Process 等本地关系。本体设计要克制:类太多会导致标注成本高,关系太细会导致查询复杂。建议先覆盖80%高频实体,再迭代扩展。

四、情报要素对齐与统一标识

对齐(Alignment)解决“同一对象不同叫法”,统一标识(Unified Identifier)解决“同一对象全局唯一”。两者配合,才能让图数据库中的节点不重复、不分裂。

对齐的常见策略有三类:规则对齐(如IP归一化、域名小写去尾点、文件哈希统一为SHA-256)、属性对齐(如用证书指纹、JA3指纹、注册邮箱匹配基础设施)、上下文对齐(如时间窗口内共现、同一父进程链)。统一标识则建议采用“类型前缀+规范化值”的命名空间,例如 host:10.20.3.17、domain:cdn-update.xyz、file:sha256:ab12...、actor:apt-x。对于别名,不合并节点,而是用 ALIAS_OF 边连接,保留来源与置信度,避免“一错全错”。

对齐时务必保留来源标识和置信度。例如 actor:apt-x 与 actor:group-27 被判定为同一组织,应记录判定依据(报告引用、TTP重合度)和置信度(0.7),而不是直接覆盖。

五、从模型到可查询知识:一个最小闭环

下面用一个简化示例串起全流程。假设有三条来源数据:来源A给出“10.20.3.17 连接 cdn-update.xyz”;来源B给出“cdn-update.xyz 解析到 45.77.12.9,证书SHA-1为 3f2a...”;来源C给出“45.77.12.9 被标记为 C2,关联组织 APT-X”。

第一步,按本体映射:主机→Host,域名→Domain,IP→IP,组织→Actor。第二步,生成统一标识:host:10.20.3.17、domain:cdn-update.xyz、ip:45.77.12.9、actor:apt-x。第三步,写入图库并建立边:CONNECTS_TO、RESOLVES_TO、USES_CERT、INDICATES。第四步,查询“与APT-X关联且被内网主机访问的IP”,沿边遍历即可得到结果,并输出完整路径作为证据链。

威胁情报实体-关系图:从多源数据到统一标识知识网络 来源A:防火墙日志 10.20.3.17 → cdn-update.xyz 来源B:DNS/证书数据 cdn-update.xyz → 45.77.12.9 来源C:厂商报告 45.77.12.9 标记为 C2 / APT-X 要素对齐 + 统一标识 归一化 / 别名 / 置信度 图数据库(节点 + 边 + 属性) Host host:10.20.3.17 Domain domain:cdn-update.xyz IP ip:45.77.12.9 Actor actor:apt-x Certificate sha1:3f2a... CONNECTS_TO RESOLVES_TO INDICATES USES_CERT 属性:last_seen 2024-06-11T03:22Z 属性:confidence 0.85 / 来源C 统一标识保证节点唯一;边保留来源与置信度;多跳路径即证据链

这张图对应了本节的核心主张:实体是点,关系是边,本体是语法,统一标识是主键,图数据库是执行引擎。五者缺一不可。若只做实体抽取而不做对齐,图里会充满重复节点;若只做对齐而不定义本体,关系会随意命名,查询无法复用;若只建图而不保留来源与置信度,一旦某条情报被证伪,整条链路都无法回滚。

六、工程落地中的关键取舍

第一,标识粒度。IP 是否要区分“同一IP不同时间归属不同主机”?建议把 IP 作为基础设施节点,把“主机-IP”作为带时间窗的关系,而不是把 IP 直接当主机标识。第二,别名处理。攻击者组织别名建议用 ALIAS_OF 边而非合并节点,保留每个别名的来源报告和置信度。第三,本体版本。本体一旦上线,字段变更要有版本号,避免历史数据无法解释。第四,查询性能。对高频入口(如域名、IP、哈希)建索引,对超大规模图可采用分区或按时间切片。

不要为了“图好看”而把低置信度关系直接写成实体合并。情报融合中,可追溯的弱关联往往比不可追溯的强合并更有价值。

综上,情报融合的数据模型不是一次性设计,而是“本体定框架、ER定结构、图库定执行、对齐定质量、统一标识定主键”的持续工程。掌握这套表示方法后,后续的流量关联、攻击链还原和检测规则生成,才有稳定的知识底座。