使用osquery收集NTFS取证信息 - 深入挖掘文件系统元数据

本文介绍了Trail of Bits团队开发的osquery扩展,该扩展能够深入提取NTFS文件系统的取证元数据,包括时间戳、安全描述符、替代数据流(ADS)等信息,为事件响应提供更强大的文件系统取证能力。

使用osquery收集NTFS取证信息

我们发布了一个osquery扩展,让您能够深入挖掘NTFS文件系统。这不仅是事件响应和数据收集的又一工具,同时也为替代那些提供类似功能的取证工具包和商业服务提供了可能。

现有工具的局限性

迄今为止,osquery在进行事件响应中常见的文件系统取证方面存在不足。它虽然能收集主机平台上文件的一些基本信息(如时间戳、权限、所有者等),但任何有取证经验的人都知道,如果愿意深入挖掘,文件系统上还有更多可用数据。比如额外的时间戳、未分配的元数据或过时的目录条目。

现有替代方案通常是闭源且昂贵的。它们成为预算、部署路线图和维护计划中的又一负担。而且这些工具都无法与osquery集成,您不得不额外费力将取证报告映射回您的设备群。

解决方案:NTFS取证扩展

通过与Crypsis合作,我们已将NTFS取证信息以扩展形式集成到osquery界面中。这标志着向更优、更具成本效益、更高效且更易部署的替代方案迈出了第一步。

功能特性

该NTFS取证扩展提供来自NTFS镜像的特定附加文件元数据,包括:

  • 文件名时间戳条目
  • 文件的安全描述符
  • 文件是否包含替代数据流(ADS)
  • 其他信息

它还为目录索引提供索引条目,包括已取消分配的条目。您可以在不离开osquery的情况下发现以下情况:

  • 自我清理后的恶意软件
  • 修改了文件时间戳但忘记修改文件名时间戳的情况
  • 在calc.exe的ADS中安装的rootkit

使用方法

在osquery启动时通过命令行参数加载扩展,例如:

1
osqueryi.exe --extension path\to\ntfs_forensics.ext.exe

加载后,数据库中将添加三个新表:ntfs_part_datantfs_file_datantfs_indx_data

ntfs_part_data表

该表提供磁盘镜像上分区的信息。如果查询时未指定磁盘镜像,它将尝试通过从\\.\PhysicalDrive0开始向上遍历来检查主机系统的物理驱动器,直到找到无法打开的驱动器号。

ntfs_file_data表

该表提供NTFS文件系统中文件条目的信息。必须在WHERE子句中明确指定device和partition列来查询该表。

  • 如果指定path或inode列,则返回关于指定文件的单行记录
  • 如果指定directory列,则返回该目录中每个文件的行记录
  • 如果未指定任何内容,则执行整个分区的遍历

由于整个分区的遍历成本较高,结果会被缓存以便重复使用而无需重新执行完整遍历。如果需要分区遍历的新结果,可在WHERE子句中使用隐藏列from_cache强制收集实时数据(例如:select * from ntfs_file_data where device="\\.\PhysicalDrive0" and partition=2 and from_cache=0;)。

ntfs_indx_data表

该表提供指定目录的索引条目内容,包括在slack space中发现的索引条目。与ntfs_file_data类似,查询时必须在WHERE子句中指定device和partition列,以及parent_path或parent_inode。在slack space中发现的条目将在slack列中具有非零值。

开始使用

该扩展为在Windows终端上执行文件系统取证提供了一种快速便捷的方式,作为事件响应的一部分。您可以在我们的代码仓库中找到它以及我们的其他osquery扩展。我们致力于维护和扩展我们的扩展集合。

定制服务

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计