f3arra1n3.4.1版本_Sysmon v11.1新版本功能测试报告

Sysmon v11.1版本增加了删除文件监控事件、过滤条件和Contents属性。删除文件事件记录了UtcTime、ProcessGuid、ProcessId、User、Image、TargetFilename、Hashes、IsExecutable和Archived等信息。新增过滤条件如excludes any和excludes all,提供更灵活的规则设置。然而,部分配置项如CopyOnDeleteSIDs和CopyOnDeleteProcesses的功能尚不明确,且CMD删除文件时存在记录缺失的问题。新版本提升了威胁检测能力,但也需要注意合理配置以避免磁盘空间占用过多。
摘要由CSDN通过智能技术生成
一、概述 根据微软文档的介绍,Sysmon v11新增了监控文件删除的功能,并支持对删除的文件进行存储备份,极大提高了主机威胁检测的能力。同时增加禁用反向DNS查询的功能,可以有效降低噪音数据。Sysmon从v10.0到目前的v11.1共经历了5个版本,升级的功能包括:

v10.4:对Sysmon(安全事件监视服务)的主要更新,为规则组添加了嵌套规则支持,并添加“contains any”和“contains all”规则条件,以进行更灵活的过滤以及修复了几个错误。

v10.41:修复10.4的语法配置问题。

v10.42:解决了Sysmon的大量内存泄露问题,引入“Excludes Any”和“Excludes all”过滤条件,修复一些错误。

v11.0:添加了删除文件监控事件和文件备份功能,帮助威胁检测人员捕获攻击者的工具,减少反向DNS查找噪音,将空字段替换为“-”以解决WEF错误,并修复了导致某些ProcessAccess事件发生的问题。

v11.1:创建文件流哈希事件新增了Contents属性,可以将捕获到的小于1000字节的可替换数据流内容也记录到日志中,这对于调查带有“网络标记”(MOTW)流的下载非常有用,引入了“is-any”过滤条件,并修复了几个错误。

对升级功能进行整理后发现,较重要的更新包括三个方面:一是新增删除文件监控事件、二是新增过滤条件、三是新增Contents属性。

二、帮助信息及文件架构描述
2.1 查看帮助信息

使用“sysmon64 -? config”命令查看帮助信息,能找到下面的介绍,看到在事件过滤器中增加了ID为23的File Delete事件:

ae1392fee922f40dbb0ca774ca4a14f4.png
图:监控的事件范围

同时在帮助文档中包含了一个配置项的说明,列出了可能在规则中使用的一些二级标签,但是经过测试发现并不是所有的配置项都能使用。帮助信息中给出的配置项如下:

5c51e1b10a9ae24924291e25f64ad182.png图:config 帮助信息中列出的配置条目

实际经过测试发现,可以在配置文件中使用的配置项包括5项,具体在第四部分内容中介绍。2.2 查看文件架构描述

对比v10.0和v11.1的文件架构信息,发现有7处不同:
  1. 文件架构版本升级到4.32

    dd32320dd02f192546dc7458d7ec5016.png

  2. 命令行开关增加“DnsLookup”和“a”两个开关参数,分别用于禁用反向DnsLookup查询和设置文件的存档目录

    fd8f55b6789cb088f840b695607c6097.png

  3. 增加5个规则过滤条件

    4c58a8e58ede5685d0240f9e39be5264.png

  4. 去掉了文件创建时间更改事件的默认开启状态,版本从4升级为5

    f9538ccac4eeda3a86406be39b212a23.png

  5. 去掉了驱动加载事件的默认开启状态,版本从3升级为4

    6d6883fbcad3fb33257a8f9f0b65fe27.png

  6. ID为15的创建文件流哈希事件增加Contents属性b4aa35e6f8e7e3aee9f1436513116765.png

  7. 增加一类FileDelete事件

52f95fb4c6351f9fca7253e84f3a6d8d.png


三、删除文件监控事件
从文件架构中看到,FileDelete事件ID为23,共有7个属性:
  • UtcTime(UTC 时间)以通用协调时(UTC)形式记录的删除文件的日期和时间,格式为:yyyy-MM-dd HH:mm:ss.000。

  • ProcessGuid(进程GUID)Sysmon创建的一种GUID值,具备全局唯一性,可用于区分删除文件的进程实例。

  • ProcessId(进程ID)删除文件的进程PID。

  • User(用户名)运行该进程的用户账户,将显示为DOMAIN\USER的格式。

  • Image(查询状态)执行删除文件操作进程的主可执行映像文件的完整路径。

  • TargetFilename(目标文件名)被删除文件的全路径。

  • Hashes(哈希)被删除文件的哈希值。

  • IsExecutable(是否为可执行文件)布尔值,被删除的文件是否为可执行文件。

  • Archived(存档)布尔值,被删除的文件是否备份到相应目录中。

a7af09960278f6df84fc245d12a07e3b.png 图:删除文件事件日志 通过测试发现Sysmon判断一个文件是否为可执行文件并非通过后缀名,而是根据文件的二进制内容。因为删除一个无后缀名的EXE后,在生成的日志中IsExecutable字段为true。配置规则如下:
<Sysmon schemaversion="4.32">  <HashAlgorithms>MD5HashAlgorithms>  <EventFiltering>    <ProcessCreate onmatch="include"/>    <FileCreateTime onmatch="include"/>    <NetworkConnect onmatch="include"/>    <ProcessTerminate onmatch="include"/>    <DriverLoad onmatch="include"/>    <ImageLoad onmatch="include"/>    <CreateRemoteThread onmatch="include"/>    <RawAccessRead onmatch="include"/>    <ProcessAccess onmatch="include"/>    <FileCreate onmatch="include"/>    <RegistryEvent onmatch="include"/>    <FileCreateStreamHash onmatch="include"/>    <PipeEvent onmatch="include"/>    <WmiEvent onmatch="include"/>    <DnsQuery onmatch="include"/>    <FileDelete onmatch="include">        <IsExecutable condition="is">TrueIsExecutable>    FileDelete>  EventFiltering>Sysmon>

c89b7a02b7cb07f74104cd392c76b361.png

图:删除文件日志 还可以在搜索中使用“IsExecutable: true”来搜索匹配的日志

4ea0f611a313c9d166b841de2a742ac2.png

图:使用IsExecutable属性搜索日志

但是测试发现,使用系统自带的文件资源管理器、cmd.exe或者Total commander删除文件时,均不能产生相应的日志。说明该版本Sysmon还存在一些问题。

92e2f96a46604d8a5ad58669733c9154.png
图:CMD中删除文件

四、新增配置文件条目 4.1 条目介绍 在帮助信息中新增的配置条目,翻译后整理如下 :
标签名值类型功能
ArchiveDirectory字符串卷根目录下的目录名,删除时复制的文件将移动到其中。该目录由系统ACL保护。(您可以使用Sysinternals中的PsExec来使用' PsExec -sid cmd'访问该目录)。
默认:Sysmon目录
CheckRevocation布尔值控制签名撤销检查。
默认:真
CopyOnDeletePE布尔值保留已删除的可执行映像文件。
默认:假
CopyOnDeleteSIDs字符串将保留删除文件的帐户sid的逗号分隔列表。
CopyOnDeleteExtensions字符串在删除时保存的文件扩展名。
CopyOnDeleteProcesses字符串将保留删除的文件的进程名称。
DnsLookup布尔值

控制是否禁用反向DNS查找。

默认:真
DriverName字符串为驱动程序映像和服务映像使用指定的名称。
HashAlgorithms字符串

计算哈希的算法。支持MD5、SHA1、SHA256、IMPHASH和* (all)。

默认:空


4.2 条目测试

经实际测试发现,上述条目中可用于配置规则的标签有4个:
  • ArchiveDirectory

  • DnsLookup

  • DriverName

  • HashAlgorithms

其中HashAlgorithms和DriverName是旧版本中已存在的,其余两个为新版本增加的配置条目,另外5个配置条目有四个是在命令行中使用的参数,剩余一个CheckRevocation无法使用。同时结合测试过程给出的错误信息,共得到12个条目,具体如下:
帮助信息给出的条目错误提示中给出的条目用于命令行用于配置文件作用
ArchiveDirectoryArchiveDirectory指定文件备份目录
CheckRevocationCheckRevocation未知
CopyOnDeletePE开启/关闭文件备份
CopyOnDeleteSIDs未知
CopyOnDeleteExtensions未知
CopyOnDeleteProcesses未知
DnsLookupDnsLookup开启/关闭DNS反向查询
DriverNameDriverName驱动名称标签
HashAlgorithmsHashAlgorithms哈希算法标签
EventFiltering事件过滤器标签
PipeMonitoringConfig未知
ProcessAccessConfig未知
4.2.1 ArchiveDirectory配置条目

ArchiveDirectory标签的作用是指定Sysmon监控到删除文件事件后,将被删除的文件备份到的目录。该目录必须位于分区的根目录下,不允许使用多层子目录。安装后默认的备份文件夹名称为“Sysmon”,同时会在每个分区根目录下生成一个“Sysmon”文件夹。可以使用ArchiveDirectory指定一个其它名称的文件夹,例如testmon,避免恶意程序检测到运行环境中安装的Sysmon。配置规则如下:

<Sysmon schemaversion="4.32">  <HashAlgorithms>MD5HashAlgorithms>  <ArchiveDirectory>testmonArchiveDirectory>  <EventFiltering>    <FileDelete onmatch="exclude">FileDelete>  EventFiltering>Sysmon>

c040dee3269d945acc60c01b2a37a2a1.png

图:备份文件夹 该目录默认需要使用system权限访问,在资源管理器中无法打开。

4260143f73d6ccf6d198378aaf0fe7dc.png

图:拒绝访问 要访问该文件夹需要以管理员权限调用psexec来访问,命令如下:

31c82a5d47cb4f00951e109e37eab35b.png

图:psexec命令 执行后弹出高权限的命令行窗口,切换到相应目录下即可访问备份文件夹中的内容。

2edf9d55e57a1edaedfa98e1917c7de3.png

图:CMD访问备份文件夹的方式 该目录下的所有文件都是以哈希值为文件名进行保存的,并非删除前的原始文件名。要想复制某个文件到其它目录下,可以使用“COPY”命令

35ff64d3d94ccd46ad840903053c6942.png图:备份文件夹中的文件

4.2.2 CopyOnDeletePE命令行开关 CopyOnDeletePE的作用是开启或关闭文件备份的功能,默认情况下在配置文件中启用FileDelete事件后,自动将删除的文件备份至指定的目录下,如果在命令行中传递CopyOnDeletePE参数,那么Sysmon会只记录日志,不再对文件执行备份操作。

81cede2e3730804b568c7d9061ef8e96.png

图:命令行传递CopyOnDeletePE参数

3c954cdac9ed5f4b819db1fb0813947d.png

图:开启删除文件监控的配置规则 3a603ed646a65a945418f0d47fa2175d.png 图:删除文件监控生成的日志 进入备份文件目录,并未保存任何文件,说明CopyOnDeletePE就是用来设置开启和关闭文件备份的命令行开关。

7a1aa0cbd07ea6c5fb693841a5dc6563.png

图:文件备份目录

同时测试发现,通过CopyOnDeletePE关闭备份文件的操作后,无法再次恢复备份功能,只能通过重新安装Sysmon来启用文件备份的功能。 4.2.3 测试三个CopyOnDelete***配置条目

通过测试发现CopyOnDeleteSIDs、CopyOnDeleteExtensions和CopyOnDeleteProcesses都可在命令行中使用,但并没有达到预期效果,暂不清楚其功能。

49ed7a8114cbbde5f2ec934fde16de0c.png
图:命令行开启CopyOnDeleteSIDs

根据帮助信息的内容,CopyOnDeleteExtensions的作用是“在删除时保存的文件扩展名”,可使用的值为字符串,推测可能是监控指定后缀名的文件删除事件,因此以“exe,doc,docx”进行测试,配置成功。

9b157a31944430c39c179a037cb12524.png

图:配置指定后缀名

实际测试发现还是会保存其它后缀名的文件,并不会只备份exe、doc和docx这三种后缀名的文件。

61b0aed4d38b79e967154cf9f4df7fda.png图:备份文件夹中的文件

根据帮助信息介绍,CopyOnDeleteProcesses的功能是“将保留删除的文件的进程名称”。这里用“powershell”作为参数值测试CopyOnDeleteProcesses。配置后并未发现实际的作用。

853b8b9db4a50573c5e42c88bf6bd5a4.png
图:配置CopyOnDeleteProcesses

通过测试暂未得到这三个条目的功能,同时发现CheckRevocation条目既无法在命令行中使用,也无法在配置文件中使用。

五、新增Contents属性

创建文件流哈希事件增加了Contents属性,该属性记录的是文件流的内容。根据微软的功能介绍,当文件流的大小小于1000字节时,日志会直接在Contents属性中显示流的内容。当文件流大于1000字节时,会生成该内容的哈希值。在cmd窗口中创建备用数据流进行测试命令如下:

52352964b0fb8172a66d4b4fd507ccd1.png

图:创建备用数据流

53eae70f44be2376d42496300f6ab836.png图:创建文件流哈希事件的日志

六、新增过滤条件

到V11.1版本累计更新了5个过滤条件,下面依次进行测试。

2.1. contains any和contains all contains any过滤条件的作用是包含使用分号“;”分隔的任意一个值。contains all的作用是包含使用分号“;”分隔的所有的值。首先配置删除文件监控事件的Image属性对contains any条件进行测试。
<FileDelete onmatch="include">  <Rule groupRelation="and">    <TargetFilename condition="contains any">.exe;.ps1;.js;.xls;.xlsmTargetFilename>    <TargetFilename condition="begin with">C:\Users\admin\AppData\Local\TempTargetFilename>  Rule>FileDelete>
当删除exe、ps1等指定类型的文件时,即可产生相应的日志。

4174f72dad05fc4b2d25ac758b273a60.png图:删除exe文件产生的日志

f464f0c5097fd0b2651f5026882a157b.png

图:删除ps1文件产生的日志

根据帮助信息contains all条件是指包括分号“;”隔开的所有值。使用进程访问事件的SourceImage属性对contains all条件进行测试,规则如下: f9a145012c23b0331c4fa874d7f05d66.png 图:contains all条件 实际测试发现并没有产生日志。 e3bb7ebf37778f746f7e1454d2b3c271.png 图:日志查看器 重新指定条件contains,值为Explorer.EXE,就能产生大量日志。 3962c0d1ad1c4d58d873d1174c446519.png 图:contains条件 d9a394df2d900e42f2a68be72c99d1e4.png 图:日志查看器 推测contains all的作用应该是同时满足后面所有的值才会记录,再次使用映像加载事件来检测contains all,因为一个进程会同时加载多个模块。通过加载TestModule1.dll和TestModule2.dll模块进行测试,发现仍然不会触发日志。

597cb745553867a289aa3feed2bd4488.png

图:映像加载事件规则

修改规则后使用contains条件单独指定一个值,可以触发日志。

da25b0de58cbdd807ff9dde5c0b6aae8.png 图:contains条件

25248b55144e68707ee62ac5e8da1068.png

图:映像加载事件日志 通过两次对比测试发现,contains all条件应该是必须同时满足多个值的情况下,才会生成日志。目前是暂未发现有效的应用场景。

2.2. excludes any、excludes all和is any

根据contains any过滤条件的功能,可以设置excludes any的过滤条件: 864cccc0cec577413d63286bb824b521.png 图:excludes any条件 配置规则后产生的日志中就不会包含Explorer.exe和procexp64.exe进程打开其它进程的日志。 is any过滤条件的作用是精确匹配分号分隔的多个值中的一个,作用类似于contains any过滤条件。这里不做详细测试。 七、总结

新增加的文件删除监控功能极大提高了防御人员的检测能力,提供了捕获文件的方法,对于一些带有自删除功能的木马后门,以及破坏系统数据的恶意程序等有很好的防御效果。但是在实际生产环境中使用这项功能时,一定要仔细选择要监控的文件位置,避免被备份的系统文件、临时文件等占满磁盘空间。新增的五个过滤条件中contains all和excludes all还未能发现正确的使用方法,应用其它三个条件时,对同一属性的多个不同值可以列入一条规则中,可以提高规则的灵活性并降低规则复杂度。但是实际测试中也发现一些问题,例如通过CMD删除文件不记录的情况,只能寄希望后续版本修复该bug。

附录

新版本配置文件sysmon-modular项目:

https://github.com/olafhartong/sysmon-modular

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值