开源网络威胁情报的优势与应用价值
开源网络威胁情报在安全从业者中热度持续攀升,核心原因在于其开放性、灵活性、低成本以及透明的质量保障。这并非空谈,而是市场检验后的真实选择。

简单来说,OSCTI的核心理念是通过公开协作,让更多组织能够以可负担的方式获取并利用威胁情报。各方共享数据和工具,共同理解不断演变的威胁态势——抱团协作远胜于单打独斗。
开源情报的获取门槛低,社区活跃度高,信息共享与协作更加顺畅。例如AlienVault的开源威胁交换平台和网络威胁联盟,它们允许用户直接访问大量OSCTI报告及威胁监测数据。
以OTX为例,该平台向全球威胁研究人员和安全专家开放,目前已有超过14万参与者(来自140多个国家),每日新增威胁指标超过1900万个。
没错,每天1900万——即便全职盯着屏幕,也不可能看完其中的百分之一。安全专家通常需要从某个具体攻击或漏洞切入,沿着深层关系逐步追查,才能理清威胁全貌。
目前已有一些平台能够整合数据,提供搜索界面或仪表盘视图,并支持通过链接跳转查看详细信息。
接下来介绍一种低代码方法,它将Neo4j AuraDB的图形可视化工具Bloom与OTX结合,实现更强大的可视化威胁调查——甚至无需搭建复杂的数据集成或导入管道便可直接开展工作。
所需工具
1. AlienVault OTX API
AlienVault OTX提供RESTful API,外部应用可直接查询其数据库。例如,按ID搜索CVE-2017–0144,只需请求以下地址:
https://otx.alienvault.com/api/v1/indicator/cve/CVE-2017-0144
2. Neo4j AuraDB 与 Bloom
Neo4j AuraDB是一款全托管的云图数据库,其优势在于能直接利用数据间的关系,支持实时分析与高速查询。此外,AuraDB可靠、安全且完全自动化,您可以专注于构建图形应用,而无需操心数据库运维。
实验时可直接使用AuraDB的免费实例,它能在90天内保留您创建的数据库,足以存储实验数据。
数据库实例启动后,真正发挥价值的是Bloom可视化UI。Bloom设计直观,从搜索到可视化几乎无需编码,非常适合在同事、管理者及高管之间沟通,也能清晰分享图形开发和分析团队的成果。
如果对Bloom界面和操作尚不熟悉,可参考官方快速入门指南。
分步指南
1. 创建数据库模式
AuraDB实例启动后,进入控制台并点击“Query”按钮启动Neo4j浏览器。
使用“neo4j”作为用户名和生成的密码登录,然后将以下代码复制粘贴并执行:
CREATE CONSTRAINT FOR (n:pulse) REQUIRE n.id IS UNIQUE;
CREATE CONSTRAINT FOR (n:malware_family) REQUIRE n.id IS UNIQUE;
CREATE CONSTRAINT FOR (n:reference) REQUIRE n.url IS UNIQUE;
CREATE CONSTRAINT FOR (n:country) REQUIRE n.name IS UNIQUE;
CREATE CONSTRAINT FOR (n:attack) REQUIRE n.id IS UNIQUE;
CREATE CONSTRAINT FOR (n:tag) REQUIRE n.name IS UNIQUE;
CREATE CONSTRAINT FOR (n:indicator) REQUIRE n.indicator IS UNIQUE;
CREATE CONSTRAINT FOR (n:indicator) REQUIRE n.id IS UNIQUE;
CREATE CONSTRAINT FOR (n:pulse_collection) REQUIRE n.indicator IS UNIQUE;
CREATE CONSTRAINT FOR (n:type) REQUIRE n.name IS UNIQUE;CREATE CONSTRAINT FOR (n:indicator_collection) REQUIRE (n.pulse_id, n.type) IS UNIQUE;
这三段代码的作用十分明确:为数据库中的特定标签节点创建唯一性约束。例如:
CREATE CONSTRAINT FOR (n:indicator) REQUIRE n.id IS UNIQUE;
这保证了每个威胁指标节点的ID属性都是唯一的。这里的“指标”即常说的IOC(威胁指标)。
Neo4j作为原生图数据库,采用了标签属性图模型。如果您对LPG和图建模兴趣更浓,可以查看官方入门指南。
2. 启动 Bloom 并导入透视图
返回Neo4j Aura控制台,点击“Explore”按钮启动Bloom。
完成后,前往GitHub仓库下载这个网络情报调查专用的透视图JSON文件。
在Neo4j Bloom中,“透视图”的概念是为目标图定义一个特定的业务视图或领域。同一张图可通过不同透视图从不同角度观察。透视图主要定义以下内容:
- 业务实体的分类
- 属性的可见性与值类型
- 关系的可见性
- 样式(颜色、图标、标题等)
- 自定义搜索短语与场景操作
导入透视图的步骤如下:
首先检查当前的默认透视图。
然后导入新下载的透视图文件,并选择使用它。
3. 探索 WannaCry 勒索软件情报
准备工作就绪,现在正式开始!
WannaCry——这大概是历史上最知名、影响范围最广的勒索软件攻击之一。它于2017年5月首次出现,是一种勒索软件蠕虫,短时间内席卷全球,感染了150多个国家、数十万台计算机。
这次攻击对企业和政府机构、医疗机构造成了巨大冲击,带来广泛破坏与不可估量的经济损失。它如同一记警钟,唤醒了许多人对“信息安全似乎够用了”的错觉,也让定期打补丁、更新软件的重要性深入人心。
WannaCry利用的是Microsoft Windows操作系统的一个漏洞——CVE-2017–0144——通过它在同一网络内的受感染电脑间传播。一旦植入,恶意软件便会加密电脑上的文件,然后勒索赎金。因此,我们就从这个CVE编号开始查起。
在Bloom左上角的搜索栏输入“Search”,下拉菜单里会出现预设的搜索短语“Search for CVE-”。选中它,然后补齐完整输入“Search for CVE-2017–0144”,按回车执行。
这一步会触发后台的Cypher查询,去调用OTX API。结果将如下显示。
这个CVE在OTX数据库中关联了50个脉冲(Pulse)。默认情况下,Bloom采用力导向布局排列节点。它还支持分层布局,有时分层能让视野更清晰。
切换到分层布局后,效果如下。
现在选一个脉冲深入分析——比如LemonDuck木马。具体步骤:
- 在搜索栏输入“LemonDuck Trojan”并回车,找到它的节点。
- 双击这个节点,左侧面板会显示其属性。
- 左键选中节点,然后右键单击,弹出快捷菜单。由于当前数据库尚未存储这个脉冲的相关数据,您会看到“Expand”选项呈灰色(不可用)。
此时,选择菜单里的“Scene Action” > “Get pulse info”。该操作会触发另一个保存好的Cypher查询,调用OTX API获取此脉冲的更多关联信息。
接下来,还有几百个相关威胁指标等着调查。先找到域名类节点(共12个),然后定位到“ackng.com”节点。接着,再从该节点选择场景操作,获取其关联的IP地址。
就这样,一步步回溯、扩展,直到对整个威胁的来龙去脉形成清晰认知。在这份Bloom透视图里,每种威胁指标类型(如FileHash-MD5、主机名、域名等)都被分配了独特的颜色,在调查时非常直观。
进一步讨论
在这个简短教程中,我们演示了如何借助图形可视化工具,在一个几乎无需编码、空白的Neo4j AuraDB和Bloom上完成一次网络威胁调查。
开源威胁情报虽然为安全专家提供了海量有价值信息,但也容易让人淹没在数据中。仅靠页面链接关联信息,对高效深入的调查帮助有限。而图形可视化结合按需情报检索,提供了一种创新思路:安全专家可以专注于选择需要深挖的威胁情报,并借助可视化力量,更轻松地看清网络威胁的边界、影响范围及内在关联。
通过“Save Cypher”和“Scene Actions”等特性,用Cypher——Neo4j的图形查询语言——进行场景化分析变得十分便捷。而且,这种方案天然提供了一种统一、无缝的方式去访问来自不同网络威胁源的信息,再也不用手动逐个切换了。
