splunkit
- 关注

客户问是否可以使用 Splunk 来检测勒索软件——这种恶意软件会加密你硬盘上的所有文件,并要求你支付赎金才能取回这些文件。所以是的,只要勒索软件存在,Splunk 就能够检测到它。
Sysmon
Sysmon 是一种 Windows 系统服务和设备驱动程序,一旦安装在系统上,它将在系统重新启动时保持驻留状态,以监视系统活动并将其记录到 Windows 事件日志中。它提供了有关进程创建、网络连接和文件创建时间更改的详细信息。通过收集它使用 Windows 事件集合或SIEM代理生成的事件,然后对其进行分析,是可以识别恶意或异常活动,并了解入侵者和恶意软件是如何在您的网络上运行的。
Splunk
Sysmon 的输出是 XML,因此它比较容易解析。为了快速集成,请使用 Microsoft Sysmon 的 Splunk 附加组件,使用此插件,我们可以通过在搜索中包含 EventDescription="file Create Time"来轻松搜索新文件的创建。由于勒索软件会创建大量新文件,我们希望寻找一个能在短时间内创建大量新的文件的文件名。我们可以使用 streamstats 命令通过 Splunk 搜索来实现这一点。此命令在看到事件时计算每个事件的统计信息。在这种情况下,我们希望在相对较小的时间窗口(比如一分钟)内保持创建的新文件总数的运行。然后,我们想寻找新文件数量超过某个任意阈值的实例。
sourcetype="xmlwineventlog:microsoft-windows-sysmon/operational" EventDescription="File Create Time" | streamstats time_window=1m count(EventDescription) AS "new_files" | search new_files>10
但想知道这是否也能检测到通过解压缩文件或简单地将大量文件从一个驱动器复制到另一个驱动器来创建的大量文件。是的,确实如此!
这就是复制一堆文件的样子,同样可以检索出来数据:
那么如何区分正常活动和勒索软件呢?
由于我获得了每个正在运行的文件的 SHA1 哈希值,因此我可以首先使用它:查询 virustotal.com 并验证已知良好文件的哈希值。然后,我可以使用该 SHA1 哈希构建一个查找表以用作白名单。任何我还没有列入白名单的已知好文件都应该被筛选出来。
这是一个名为 sha1_whitelist.csv 的示例查找文件
sha1,whitelisted_file EA23A45ADB3D8D61CA478DD90E8D956BA32FA786,C:\Windows\explorer.exe
这是 transforms.conf 里边的配置内容:
[sha1_lookup] filename = sha1_whitelist.csv min_matches = 1 default_match = NOT_FOUND
transforms.conf 文件的最后两行意味着如果正在运行的进程的哈希值不在您的查找文件中,Splunk 将返回 "NOT_FOUND"。
从这里,我可以单击 sha1 散列的值到具有该散列的事件的原始数据。从那里,我可以使用自定义工作流程在 virustotal.com 上搜索哈希。通过 WEB 页面配置工作流:
生成的 workflow_actions.conf 文件(如果您不喜欢使用 WEB 页面):
[virus_total] display_location = both eventtypes = ms-sysmon-process fields = sha1 label = Virus Total Lookup link.method = get link.target = blank link.uri = https://www.virustotal.com/latest-scan/$sha1$ type = link
这是实际的工作流程:
单击“Virus Total Lookup”会在我的浏览器中打开一个新选项卡,并将我带到 virustotal.com 上的搜索结果。是的,这是勒索软件。
happy splunking!
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)