使用osquery收集NTFS取证信息
我们发布了一个osquery扩展,让您能够深入挖掘NTFS文件系统。这不仅是事件响应和数据收集的又一工具,更提供了替代传统取证工具包和商业服务的可能性。
现有方案的不足
迄今为止,osquery在进行事件响应所需的那种文件系统取证方面一直存在不足。它虽然能收集主机平台上文件的基本信息(时间戳、权限、所有者等),但任何有取证经验的人都知道,文件系统中还蕴藏着更多待挖掘的数据——比如额外的时间戳、未分配的元数据或过时的目录条目。
传统替代方案往往闭源且昂贵,成为预算、部署路线图和维护计划中的额外负担。更重要的是,它们都无法与osquery集成,迫使您额外花费精力将取证报告映射回设备群。
解决方案
通过与Crypsis合作,我们已将NTFS取证功能作为扩展集成到osquery接口中。这是朝着更优、更具成本效益且更易部署的解决方案迈出的第一步。
功能特性
NTFS取证扩展提供NTFS映像中的特定附加文件元数据,包括:
- 文件名时间戳条目
- 文件安全描述符
- 文件是否包含备用数据流(ADS)
- 其他信息
同时还能提供目录索引的索引条目(包括已解除分配的条目)。您可以直接在osquery中发现以下痕迹:
- 自我清理后的恶意软件
- 修改了文件时间戳但忘记处理文件名时间戳的痕迹
- 隐藏在calc.exe ADS中的rootkit
使用方法
在osquery启动时通过命令行参数加载扩展:
|
|
加载后,数据库将新增三个表:
ntfs_part_data
提供磁盘映像中分区的信息。如果查询时未指定磁盘映像,它将尝试通过从\\.\PhysicalDrive0
开始向上遍历来检查主机系统的物理驱动器,直到打开失败为止。
ntfs_file_data
提供NTFS文件系统中文件条目的信息。查询时必须明确指定WHERE子句中的device和partition列。注意事项:
- 指定path或inode列将返回单个文件的信息
- 指定directory列将返回该目录下所有文件的信息
- 不指定任何条件将执行整个分区的遍历(由于代价高昂,结果会被缓存)
- 使用隐藏列from_cache=0可强制获取实时数据(如:
select * from ntfs_file_data where device="\\.\PhysicalDrive0" and partition=2 and from_cache=0;
)
ntfs_indx_data
提供指定目录的索引条目内容(包括在slack space中发现的条目)。查询时必须指定:
- WHERE子句中的device和partition列
- parent_path或parent_inode条件
- slack space中的条目将在slack列显示非零值
开始使用
该扩展为Windows终端文件系统取证提供了快速便捷的方案。您可以在我们的代码库中找到此扩展及其他osquery扩展。我们承诺将持续维护和扩展我们的扩展集合。