开源威胁情报的难题,我们想用知识图谱来破解

admin 2026-05-01 06:17:23 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 文章探讨了利用知识图谱破解开源威胁情报(OSINT)处理难题的创新方案。面对海量非结构化报告,PaloAltoNetworks工程师提出先用LLM将报告提炼为半结构化知识图谱,再通过智能代理进行精准查询,有效对抗模型幻觉并实现威胁溯源。核心难点包括本体设计、评估体系搭建及持续优化陷阱,最终通过分步提取、辩论系统和人类监督将准确率提升至90%以上。 综合评分: 90 文章分类: 威胁情报,AI安全,安全工具,安全运营,技术标准


cover_image

开源威胁情报的难题,我们想用知识图谱来破解

幻泉之洲

2026年4月30日 09:14 北京

在小说阅读器读本章

去阅读

Palo Alto Networks 的工程师分享了一套思路:面对海量且杂乱的开源威胁情报(OSINT)报告,直接用大语言模型做问答不可靠。他们选择先用 LLM 把这些非结构化报告提炼成半结构化的知识图谱,再用智能代理去图谱里寻找答案,实现精准溯源,对抗模型幻觉。文章深入聊了技术落地的难点,包括本体设计、评估体系搭建和持续优化的陷阱。

开源威胁情报(OSINT)是个好东西,公开的,免费看。但你真的能用好吗?

每周有上万个来源发布数万份报告,没有哪个安全分析师能看得完。就算你花钱买了情报订阅服务,拿到的也往往是一堆孤立的指标,缺乏上下文。想知道这个 IP 是谁在用、属于哪个攻击行动、对手用什么手法?你得自己回去翻报告。

报告是非结构化的文本,阅读和提炼极其耗时。一份中等长度的报告,可能需要10分钟读完,再用40分钟把里面的关键信息提取、归档。这不该是威胁研究员的日常。

思路转变:从“读报告”到“问图谱”

于是就有了一个想法:能不能换种方式?用户不用读报告,直接提问就好。

比如:“APT29 最近用了哪些恶意软件?”或者“我日志里这个可疑哈希,开源社区有没有人分析过?”

直接让大语言模型读所有报告回答?行不通。模型有知识截止日期,会胡说八道(幻觉),而且你也没法把整个互联网喂给它。

所以需要一种中间结构,既能承载报告里的复杂关系,又能被机器高效查询。这个结构,很自然地指向了知识图谱。

网络安全数据天生就是关联的:攻击者、恶意软件、漏洞、攻击指标、受害者……这些实体之间通过千丝万缕的关系连接。知识图谱能完美地映射这个世界。

为什么不直接用 STIX?

说到结构化威胁情报,很多人会想到 STIX。它是个标准,机器读起来很友好,但人读起来就太痛苦了,而且非常冗长。

我们不需要完全僵化的结构。大语言模型其实更喜欢非结构化文本,但全盘喂给它又会信息过载。

折中的方案是半结构化。我们定义好需要提取的实体类型(如恶意软件、漏洞、攻击者)和关系类型,但保留描述这些实体的原始文本作为上下文。这样,图谱既有规范的骨架,又有血肉。

就拿最近一份关于 BeyondTrust 漏洞的报告来说。11分钟的阅读量,涉及恶意软件、漏洞细节、攻击链、历史背景和一长串指标。

人工提取费时费力。用我们构建的提取流程处理后,一份中等长度的报告能抽出超过 100 个实体和 100 多种关系。

这些实体和关系在知识图谱里连接起来,价值就出现了。你可以看到某个恶意软件的不同传播方式,发现它和历史上的攻击活动存在关联,还能发现不同的威胁行为者都在利用同一个漏洞。视角从一份孤立的报告,拉高到了一个相互关联的威胁全景图。

如何从报告炼成图谱?分步走的“精炼”过程

直接用 LLM 从报告里准确无误地抽出上百个实体和关系?指望它一步到位不现实。

我们的策略是拆分步骤,让模型“分而治之”。

先是一个“路由”步骤,判断这份报告值不值得提取。如果有价值,就分发到不同的提取模块。

提取实体本身相对直观,难的是厘清关系,尤其是像“攻击模式”这类抽象概念。报告里通常不会写明“这是 MITRE ATT&CK 的 T1059”。

我们的方法是让 LLM 扮演“侦探”:先提取出描述攻击行为的文本特征,生成几个可能的 MITRE 攻击模式候选,然后让 LLM 去对照官方的知识库,自我修正,最终锁定最匹配的那一个。

最后是关系抽取。实体类型多,关系组合更是呈指数增长。我们通过预定义的关系三元组集合来约束 LLM,让它只寻找我们关心的那些连接,比如“恶意软件-利用-漏洞”、“攻击者-归属-组织”。

最棘手的部分:怎么知道它做得好不好?

这是所有 AI 应用的核心,对威胁情报这种强对抗领域更是性命攸关。如果知识图谱本身是垃圾,那么基于它的所有问答也都是垃圾。

最大的挑战是,这方面没有现成的基准测试。我们得自己从零搭建评估体系。

初期只能做回溯检查,靠人工判断模型输出是否合理,再结合一些外部数据源交叉验证。但这样就陷入了“知识的诅咒”——你只能验证已知的信息。

报告里那些全新的、未见过的攻击模式或恶意软件,你根本无法自动验证对错。所以,人的经验在初期不可或缺。

我们的做法是最大化利用威胁研究员的智慧。先用他们标注的一小部分高质量数据去“教导”模型,然后让模型去推理新数据。研究员只需要校对这些新数据,标注工作量很小。

经过两三轮这样的迭代,模型在大多数情况下的提取准确率能达到90%以上。

我们甚至把评估过程做成了“辩论系统”。当不同研究员对同一个提取结果有争议时,系统会把矛盾点记录下来,交给他们去讨论定夺。这反而帮助我们发现和统一了内部认知的不一致。

自动优化的“陷阱”:新模型不等于更好

为了让系统持续改进,我们引入了自动提示词优化循环。模型如果发现自己的提取结果有误,会尝试分析原因,并生成修改提示词的建议。

听起来很美,但这里有个大坑:模型经常陷入“按下葫芦浮起瓢”的死循环,修复一个错误却引入了新错误。

我们的解决方法是设置“护栏”:只允许模型修改提示词中特定的、技术性的部分,而将业务逻辑和判断规则的控制权保留在人类手中。

还有个反直觉的发现:更先进的“思维链”模型,在这个任务上的表现不一定比简单模型好。它们容易“想太多”,过度依赖自己固有的知识,而不是老老实实地从报告原文中找证据。

从图谱到答案:让智能代理当你的调查员

有了可靠的知识图谱,真正的价值才开始释放。我们构建了智能代理,让它像人类调查员一样去图谱里探索。

你可以问:“BeyondTrust 那个最新漏洞是怎么被利用的?把攻击链画给我看。”

代理会先在图谱里找到这个漏洞节点,然后像滚雪球一样,提取出所有与之相连的实体:利用它的恶意软件、发起攻击的威胁组织、相关的历史活动……最终生成一个可视化的调查子图,并附上每一个结论的原始报告出处。

这彻底解决了“幻觉”问题。答案不再来自模型模糊的记忆,而是来自知识图谱里锚定的、可追溯的事实。

你还可以问更复杂的问题:“APT28 和 APT29 有关联吗?”代理会分别探索两个组织在图谱中的子网络,寻找任何可能的连接路径——是否使用过相同的基础设施、工具、漏洞,或者是否在同一份报告中被同时提及(共现分析)。

最终它可能得出结论:两者虽然没有直接的合作证据,但它们有相似的国家背景(都被归因于俄罗斯 GRU),攻击目标类型重合。答案依然附带证据来源。

面对的挑战远不止技术

在问答环节,听众抛出了一个更深刻的问题:你的知识源(开源报告)本身质量参差不齐,甚至有偏见和错误,怎么办?

比如,某个软件厂商在博客上声称被中国黑客攻击,但没有提供证据,随后被科技媒体转载,整个社区就都信了。这种低质量或无证据的归因报告,会影响图谱的质量。

这是一个我们尚未完全解决的难题。一个可能的思路是,在图谱中引入“证据权重”的概念。一条主张,如果有多个独立来源交叉验证,它的权重就高;如果只是单方面宣称且缺乏技术细节,权重就低。系统可以据此校准信息的可信度。

这提醒我们,构建威胁情报知识图谱,不仅是自然语言处理和图数据库的技术活儿,更需要对安全生态、地缘政治甚至信息传播学的深刻理解。技术能解决信息处理的效率问题,但判断信息的真伪与价值,依然需要人类的智慧与洞察。

说到底,我们做的不是用 AI 替代安全分析师,而是用 AI 给他们打造一副能从海量噪音中锁定信号的“望远镜”和“显微镜”。图谱是望远镜,提供全景视野;代理是显微镜,助力深度调查。而人类,始终是握着镜筒、做出最终判断的那双眼睛。


参考资料

[1] https://www.youtube.com/watch?v=lib_KZKISOo


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:幻泉之洲 《开源威胁情报的难题,我们想用知识图谱来破解》

评论:0   参与:  0