在不到 5 分钟的时间内将威胁情报 PDF 添加为 AI 助手的自定义知识

作者:来自 Elastic jamesspi

安全运营团队通常会维护威胁情报报告的存储库,这些报告包含由报告提供商生成的大量知识。然而,挑战在于,这些报告的内容通常以 PDF 格式存在,使得在处理安全事件或调查时难以检索和引用相关信息,或者难以利用其中的威胁指标(indicators of compromise - IoC)进行威胁狩猎。通过将这些报告作为知识在 Elastic AI Assistant 中使用,这种情况将完全改变。

让我们以 2024 年 Elastic 全球威胁报告为例。

更多阅读,请参阅 “利用 Elastic AI Assistant 的自定义知识源增强威胁响应”。

步骤 1:启用和设置知识库

这是一个非常简单的步骤,它处理了 Elastic AI Assistant 使用知识库内容所需的一些先决条件。它是助手管理设置中的一个按钮。该过程只需几分钟即可完成。

步骤二:上传 PDF

知识库设置完成后,我们可以继续上传 PDF。为此,我们可以使用集成页面中名为 “Upload a file” 的集成。

你可以从下一个屏幕中选择 PDF。

出现提示时单击 Import

下一步,我们需要转到 “Advanced” 选项卡。上传后,此 PDF 将保存在其自己的索引中,因此请随意命名索引。无需创建数据视图。

在单击导入按钮之前还有最后一步。我们需要添加一个 semantic text 字段。这允许助手从报告中检索正确的信息。

单击 Add additional field,然后单击 Add semantic text field

你可以保留单击 “Add semantic text field” 后出现的默认设置。

你现在可以单击 “Import”。

当文件导入成功后,你应该看到以下状态:

值得注意的是,虽然我们使用文件上传用户界面来添加此 PDF,但可以使用附件处理器(attachment processor)将此功能作为任何摄取过程的一部分自动执行。

步骤 3:将 PDF 索引添加为自定义知识

返回 AI 设置页面,选择新建以添加新知识条目,然后从列表中选择索引。

然后,系统会要求你选择刚刚创建的索引(在我们的示例中为 “global-threat-report-kb”)、我们刚刚创建的语义文本字段(内容)以及助手应如何以及何时使用这些知识的描述。这应该是一个简单的句子描述,说明数据是什么以及何时以及如何查询数据。你还可以从此视图中设置此知识条目的相关权限。准备就绪后,点击 Save

添加后,你应该在列表中看到新的知识条目:

威胁报告现已作为知识提供,可供助手使用。

比较结果

如果我们比较添加知识库条目之前和之后助手的结果,我们可以看到明显的差异。

在添加知识之前

补充完知识之后

我们的 PDF 从一堆无用的重要但难以使用的信息变成了我们的安全运营团队可以立即访问的信息。知识源的优点在于,Elastic AI Assistant 可以根据所提出的问题组合使用它们。请记住,默认情况下,Elastic AI Assistant 还可以将 500 条最新警报作为知识提取,从而可以提出强大的问题组合。

这个示例清楚地强调了为助手提供自定义知识源的实用性。正如我们之前强调的那样,还有许多其他场景和示例,其中自定义知识源很有用。

有关如何添加不同类型知识源的更多信息,您可以参考我们的详细文档。

原文:Dec 7th, 2024: [EN] Add a threat intelligence PDF as custom knowledge for the AI Assistant in less than 5 minutes - Advent Calendar - Discuss the Elastic Stack

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/66445.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

二、模型训练与优化遇到的问题1:python=3.10:指定 Python 版本为 3.10。这里为什么指定版本为3.10,有什么依据

目录 一、Python 版本选择的依据 1. TensorFlow 和 Keras 的兼容性 2. Python 3.10 的优势 二、如何选择适合的 Python 版本 1. 检查 TensorFlow 的官方兼容性文档 2. 选择受支持且稳定的版本 3. 避免使用过于旧或过新的版本 三、如何在 Anaconda 中选择不同的 Python …

探索 Vue.js 的动态样式与交互:一个有趣的样式调整应用

修改日期备注2025.1.3初版 一、前言 今天和大家分享在 Vue.js 学习过程中开发的超酷的小应用。这个应用可以让我们通过一些简单的交互元素,如复选框、下拉菜单和输入框,来动态地改变页面上元素的样式哦 让我们一起深入了解一下这个项目的实现过程&…

css出现边框

前言 正常情况下,开启 contenteditable 属性后会出现 “黑色边框”。 如下图所示,很影响美观: 您可能想去掉它,就像下面这样: 解决方案 通过选择器,将 focus 聚焦时移除 outline 属性即可。 如下代码所示&a…

恋爱脑学编程之C++模板编程大冒险

一、模板编程初相识:开启泛型编程魔法之旅 嘿,小伙伴们!今天咱们要一起探索C中超级厉害的模板编程。它就像是一把万能钥匙,可以打开各种类型数据的大门,让咱们写出超酷的与类型无关的代码,大大提高代码的复…

ubuntu 20.04 安装 5.4 内核

最近需要用linux 5.4内核(发现它和5.14 在Block层有些差异),以对比和5.14内核的差异。目前已安装的虚拟机,Centos8的默认内核是4.18,Redhat9.1的内核是5.14,Ubuntu20.04的内核是5.15,故在ubuntu…

enzymejest TDD与BDD开发实战

一、前端自动化测试需要测什么 1. 函数的执行逻辑,对于给定的输入,输出是否符合预期。 2. 用户行为的响应逻辑。 - 对于单元测试而言,测试粒度较细,需要测试内部状态的变更与相应函数是否成功被调用。 - 对于集成测试而言&a…

netty解码器LengthFieldBasedFrameDecoder用法详解

Netty Netty是一个高性能、异步事件驱动的网络应用程序框架,它提供了对并发和异步编程的抽象,使得开发网络应用程序变得更加简单和高效。 在Netty中,EventLoopGroup是处理I/O操作的多线程事件循环器。在上面的示例中,我们创建了两个EventLoopGroup实例:bossGroup和worker…

继承(5)

大家好,今天我们继续来学习继承的相关知识,来看看子类构造方法(也叫做构造器)是如何做的。 1.6 子类构造方法 父子父子,先有父再有子,即:子类对象构选时,需要先调用基类构造方法,然后执行子类的构造方法 ★此时虽然执行了父类的…

Spring Boot 依赖配置分离多种打包方式

生产上发布 Spring Boot 项目时,但凡代码有一丁点改动,就得把整个项目包括依赖重新打包上传部署,这样的包很大,影响效率 为解决这个问题,可以把依赖(pom中的依赖jar包)、配置文件(resources 下的 applacation.yml 等文件)从项目主体里剥离出来,后续部署时,只需发布代…

VulnHub-Acid(1/100)

参考链接: ​​​​​​​【VulnHub】Acid靶场复盘-CSDN博客 靶场渗透(二)——Acid渗透_ambassador 靶场渗透-CSDN博客 网络安全从0到0.5之Acid靶机实战渗透测试 | CN-SEC 中文网 Vulnhub靶场渗透练习(四) Acid - 紅人 - 博客园 红日团队…

51c自动驾驶~合集45

我自己的原文哦~ https://blog.51cto.com/whaosoft/13020031 #运动控制和规划控制需要掌握的技术栈~ 各大垃圾家电造车厂又要开始了~~~​ 1、ROS的通信方式 李是Lyapunov的李:谈谈ROS的通信机制 话题通信和服务通信,其中话题通信是通过发布和订阅…

Debian、Ubuntu 22.04和ubuntu 24.04国内镜像源(包括 docker 源)

Debian 更换国内清华源 1、备份原文件mv /etc/apt/sources.list /etc/apt/sources.list.old 2、写入新源&#xff0c;以下是 Debian 11 的&#xff1a; cat > /etc/apt/sources.list << EOF deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib…

【Unity3D】AB包加密(AssetBundle加密)

加密前&#xff1a; 加密后&#xff0c;直接无法加载ab&#xff0c;所以无法正常看到ab内容。 using UnityEngine; using UnityEditor; using System.IO; public static class AssetBundleDemoTest {[MenuItem("Tools/打包!")]public static void Build(){//注意:St…

平面坐标转大地坐标(arcgisPro中进行)

1、将需要转换的红线导入arcgisPro中&#xff0c;如下&#xff1a; 2、在地图菜单栏中&#xff0c;选择坐标转换工具&#xff0c;如下&#xff1a; 3、打开坐标转换工具 4、开启捕捉 5、 设置大地坐标显示格式 6、如下&#xff1a; 7、显示如图&#xff1a; 8、再依次添加几个待…

Python 在PDF中添加数字签名

在数字化时代&#xff0c;文件的安全性和可信度变得尤为重要。无论是商业文件、法律文件还是个人文件&#xff0c;都可能需要证明其来源的真实性和完整性。PDF数字签名就是解决这些问题的关键工具。PDF数字签名不仅能够确保文件的安全性&#xff0c;还能提高工作效率&#xff0…

Mysql--基础篇--函数(字符串函数,日期函数,数值函数,聚合函数,自定义函数及与存储过程的区别等)

MySQL提供了丰富的内置函数&#xff0c;涵盖了字符串处理、数值计算、日期和时间操作、聚合统计、控制流等多种功能。这些函数可以帮助你简化SQL查询&#xff0c;提升开发效率。 除了内置函数&#xff0c;MySQL还支持自定义函数&#xff08;User-Defined Functions&#xff09;…

《 小A点菜》

题目背景 uim 神犇拿到了 uoi 的 ra&#xff08;镭牌&#xff09;后&#xff0c;立刻拉着基友小 A 到了一家……餐馆&#xff0c;很低端的那种。 uim 指着墙上的价目表&#xff08;太低级了没有菜单&#xff09;&#xff0c;说&#xff1a;“随便点”。 题目描述 不过 uim …

.net core 为什么使用 null!

为什么使用 null!&#xff1f; 通常在以下几种情况中&#xff0c;你可能会使用 null!&#xff1a; 属性值可能会在对象构造或某个方法中被初始化&#xff0c;但在构造函数或者对象完全初始化之前&#xff0c;属性的值可能会是 null。你知道这个属性最终会被赋一个非 null 的值…

STM32学习(十)

I2C模块内部结构 I2C&#xff08;Inter-Integrated Circuit&#xff09;模块是一种由Philips公司开发的二线式串行总线协议&#xff0c;用于短距离通信&#xff0c;允许多个设备共享相同的总线‌。 ‌硬件连接简单‌&#xff1a;I2C通信仅需要两条总线&#xff0c;即SCL&…

使用 Rust 实现零拷贝数据处理:性能优化的极致探索

随着大数据处理需求的不断增长&#xff0c;数据处理框架需要高效的内存管理能力以提升吞吐量与降低延迟。在本文中&#xff0c;我们将探索 Rust 语言如何利用零拷贝&#xff08;Zero-Copy&#xff09;的特性来构建高效的数据处理系统。这一技术尽管强大&#xff0c;但由于它对内…