最后更新于2024年1月17日(星期三)18:05:35 GMT

Written by博士. 迈克尔·科恩

σ的支持, ETW多路复用, 本地加密存储和新的VQL功能突出了2023年的最新版本

Rapid7兴奋地宣布,版本0.7.迅猛龙1号是实时的,可以下载.  有几个新特性和功能增加了这个开源数字取证和事件响应(DFIR)平台的功能和效率.

在这篇文章中,Rapid7数字古生物学家. Mike Cohen讨论了一些令人兴奋的新功能.

GUI的改进

GUI在此版本中进行了更新,以改进用户工作流和可访问性.

笔记本的改进

迅猛龙广泛使用笔记本来促进协作和后期处理. 目前笔记本有三种类型:

  1. 全局笔记本——这些可以从GUI侧边栏中获得,并且可以与其他用户共享以实现协作工作流.
  2. 收集笔记本-这些附加到特定的收集,并允许后期处理收集结果.
  3. 狩猎笔记本-附加到狩猎,并允许从狩猎收集数据的后期处理.

该版本进一步开发了Global notebook工作流,使其成为收集和共享分析结果的中心场所.

模板化的笔记本

许多用户大量使用笔记本来组织他们的调查,并指导用户收集什么. 虽然集合笔记本和狩猎笔记本已经可以包含模板,但没有办法自定义默认的全局笔记本.

在本新闻稿中, 我们定义了一种新的NOTEBOOK类型的Artifact,它允许用户为全局笔记本定义模板.

在本例中,我将创建这样一个模板来帮助用户收集有关客户机的服务器信息. 我单击侧边栏中的工件编辑器,然后从搜索屏幕中选择Notebook Templates. 然后编辑内置的笔记本. 默认的工件.

添加新的笔记本模板

我可以在笔记本中定义多个单元格. 单元格的类型可以是vql、markdown或vql_suggestion. 我通常使用标记单元格为用户编写如何使用我的笔记本的说明, 而VQL单元格可以运行诸如计划收集或预设搜索之类的查询.

接下来,我选择侧边栏中的Global notebooks,然后单击New Notebook按钮. 这将弹出一个向导,允许我创建一个新的全局笔记本. 在填写笔记本的名称并选择与哪个用户共享之后, 我可以为这个笔记本选择模板.

添加新的笔记本模板

我可以看到我新添加的笔记本模板,并选择它.

从模板查看笔记本

复制笔记本单元格

在这个版本中,伶盗龙允许从任何笔记本复制一个单元到全局笔记本. 这简化了用户可以过滤的工作流, 后期处理和识别各种狩猎笔记本或特定收集笔记本中有趣的文物, 然后将后处理单元复制到中央Global笔记本中进行协作.

对于下一个示例,我收集服务器工件server.信息.客户端和后处理结果在笔记本中按操作系统计数不同的客户端.

对集合的结果进行后处理

现在我对这个查询很满意, 我想复制单元格到我的管理笔记本,我之前创建的.

将单元格复制到全局笔记本

然后,我可以选择将单元格复制到哪个Global笔记本中.

复制的单元格仍然引用旧集合

伶盗龙将把单元复制到目标笔记本,并添加VQL语句以引用原始集合. 这允许全局笔记本的用户在需要时进一步细化查询.

此工作流允许用户之间更好地协作.

VFS下载

伶盗龙的VFS视图是端点文件系统的交互式视图. 用户可以使用熟悉的基于树的导航导航远程文件系统,并交互式地从端点获取各种文件.

在0之前.7.1版本, 用户可以在GUI中下载和预览单个文件,但很难检索下载到VFS中的多个文件.

在0年代.7.1版本中,有一个新的GUI按钮来启动从VFS本身的集合. 这允许用户下载之前交互式下载到VFS中的全部或部分文件.

例如,考虑下面的屏幕截图,其中显示了下载到VFS中的几个文件.

查看VFS

我可以启动VFS的收集. 这是一个服务器构件(类似于通常的File Finder构件),它只是用全局变量遍历VFS,将所有文件上传到单个集合中.

初始化VFS收集

使用glob,我可以选择检索具有特定文件名模式的文件.g. 仅可执行文件)或所有文件.

检查VFS收集

最后,GUI显示了一个到收集流的链接,我可以在其中检查文件或准备下载压缩,就像任何其他收集一样.

新的VQL插件和功能

这个版本引入了一个令人兴奋的新功能:内置Sigma支持.

内置Sigma支持

Sigma正迅速成为编写和分发检测的流行标准. Sigma最初被设计为用于多个后端SIEM产品的可移植符号:用Sigma规则表示的检测可以被转换(编译)成目标SIEM查询语言(例如,转换成弹性查询),以便在目标SIEM上运行.

伶盗龙并不是真正的SIEM,因为我们通常不会将所有事件转发到可以在其上运行大型查询的中央存储位置. 相反,伶盗龙的理念是将查询带到端点本身.

在迅猛龙, Sigma规则可以直接用于端点, 而不需要首先将所有事件从系统转发出去! 这使得Sigma成为初始分类的强大工具:

  • 在本地事件日志文件上应用大量Sigma规则.
  • 这些规则会立即引发潜在的恶意活动,以供进一步审查.

这可以快速而大规模地完成,以便在红外期间缩小潜在感兴趣的主机. 在视频中可以看到这种方法的一个很好的演示 快速盗龙的现场事件响应 Eric Capuano使用通过伶盗龙部署的Hayabusa工具来快速识别端点上明显的攻击技术.

以前我们只能通过绑定隼鸟工具在迅猛龙中应用Sigma规则, 它呈现了一套精心策划的Sigma规则,但在本地运行. 在这个版本中,Sigma匹配在迅猛龙中是本地完成的,因此 迅猛龙σ project简单地管理与Hayabusa管理相同的规则,但不需要Hayabusa二进制本身.

你可以阅读全文 在迅猛龙里 详细描述此功能的博客文章, 但在这里,我将快速展示如何使用它来取得巨大的效果.

首先,我将通过收集Server从迅猛龙σ项目导入一组策划好的Sigma规则.进口.CuratedSigma服务器工件.

得到策划的西格玛规则

这将用最新的Sigma规则向我的系统导入一个新的工件, 分成不同的地位, 规则等级等. 对于本例,我将选择临界级别的稳定规则.

从端点收集规则

启动集合后, 工件将返回所有匹配规则及其相关事件. 这是一个快速的工件,在我的测试系统上花费不到一分钟. 我立即看到有趣的点击.

检测临界电平规则

使用Sigma规则进行实时监控

Sigma规则不仅可以用于日志文件. 迅猛龙σ项目还提供了可用于实时监控系统的监控规则.

管理导入工件中的伶盗龙 Hayabusa Live 检测选项将导入相同管理Sigma规则的事件监控版本. 在使用GUI将规则添加到客户端的监控规则之后, 我可以收到有趣的事件匹配规则:

现场检测Sigma规则

其他改进

SSH / SCP访问器

迅猛龙通常在端点上运行,可以直接从端点收集证据. 然而, 网络上的许多设备都不能安装端点代理——要么是因为不支持操作系统(例如嵌入式版本的Linux),要么是因为策略.

当我们需要调查这样的系统时,我们通常只能通过SSH访问它们。. 在0年代.7.1版本, 伶盗龙有一个ssh访问器,它允许所有通常使用文件系统的插件透明地使用ssh.

例如,考虑搜索文件的glob()插件.

通过SSH对文件进行Globing

我们可以指定glob()使用ssh访问器访问远程系统. 通过设置SSH_CONFIG VQL变量, 访问器能够使用本地存储的私钥与远程系统进行身份验证,从而访问远程文件.

我们可以将这个新的访问器与重新映射特性结合起来,重新配置VQL引擎,以便在任何插件尝试访问文件时用ssh访问器替换auto访问器. 这允许我们透明地使用访问本地文件的相同工件, 但这次transparent将通过SSH访问这些文件:

用ssh重新映射auto访问器

这个示例展示了如何使用SSH访问器来调查debian系统并收集Linux.Debian.包通过SSH从它生成.

分布式笔记本处理

而迅猛龙是非常高效和快速的, 并且可以支持大量的端点连接到服务器, 许多用户告诉我们,在繁忙的服务器上, 运行笔记本查询会影响服务器性能. 这是因为一个笔记本的查询可能是非常激烈的.g. 排序或分组(大型数据集),在默认配置中,同一台服务器正在从客户端收集数据, 执行搜索, 同时运行笔记本查询.

这个版本允许笔记本处理器在另一个进程中运行. 在多前端配置(也称为主/随从配置), 仆从节点现在将提供从主节点执行笔记本查询. 这允许将突然出现的工作负载分配到集群中的其他节点,并提高服务器和GUI性能.

ETW多路复用

以前对Windows事件跟踪(ETW)的支持是初级的. 每个调用watch_etw()插件来接收来自特定提供者的事件流的查询都会创建一个新的ETW会话. 由于系统上的ETW会话总数限制为64个,因此使用了宝贵的资源.

In 0.7.ETW子系统被彻底改造,具有在同一会话之上复用多个ETW观察者的能力. ETW会话是根据需要创建和销毁的. 这使我们能够更有效地跟踪更多的ETW供应商,对系统的影响最小.

此外,etw_sessions()插件可以显示当前运行的所有会话的统计信息,包括丢失事件的数量.

工件可以隐藏在GUI中

迅猛龙自带大量的内置器物. 这可能会让新用户和管理员感到困惑,因为他们可能希望在GUI中隐藏工件.

现在,您可以使用artifact_set_metadata() VQL函数在GUI中隐藏工件. 例如,下面的查询将隐藏名称中没有Linux的所有工件.

现在在GUI中只有Linux相关的工件是可见的.

从GUI中隐藏工件

客户端的本地加密存储

有时在端点上本地写入数据而不是将数据传输到服务器是有用的. 例如, 如果客户端长时间不连接到Internet,则在本地写入数据是有用的. 同样有用的是写入数据,以防我们希望在以后的调查期间恢复它.

在端点上本地写入数据的缺点是,如果端点稍后被攻破,则可能会访问这些数据. 如果数据包含敏感信息,则可能被攻击者使用. 这也是伶盗龙不在端点上写入日志文件的主要原因. 不幸的是,这使得调试问题变得困难.

0.7.1版本引入了安全的本地日志文件格式. 这允许伶盗龙客户端以一种安全的方式写入本地磁盘. 一旦写入,数据只能由服务器解密.

虽然任何数据都可以写入加密的本地文件,但通用的.客户端.LocalLogs工件允许在运行时写入伶盗龙客户端日志.

编写本地日志

要读取这些本地存储的日志,我可以使用Generic获取它们.客户端.LocalLogsRetrieve构件来检索加密的本地文件. 该文件使用服务器的公钥加密,并且只能在服务器上解密.

检查上传的加密本地文件

一旦在服务器上, 我可以用收藏的笔记本解密文件它会自动解密上传的文件.

解密加密的本地文件

结论

版本中有更多的新特性和bug修复.7.1版本. 如果您对这些新功能感兴趣,我们欢迎您乘坐迅猛龙进行旋转 从我们的发布页面下载. 它可以在GitHub上根据开源许可免费获得.

一如既往地, 请在GitHub问题跟踪器上提交错误,或通过电子邮件向我们的邮件列表提交问题 velociraptor-discuss@googlegroups.com. 你也可以直接在我们的 不和服务器.