首页 » 漏洞 » 如何在OS X平台中利用FSEvents检测并删除恶意文件

如何在OS X平台中利用FSEvents检测并删除恶意文件

 

如何在OS X平台中利用FSEvents检测并删除恶意文件

在支持OS X 10.7及其以上版本的FSEvemts中,引入了一个能够检测文件目录修改行为的功能。FSEvents能够利用文件系统事件守护进程(fseventsd)提供的数据来对相应的行为操作进行记录;守护进程会将这些文件操作写入每一个卷宗下的日志文件中(日志文件保存在一个名为“.fseventsd”的文件夹中)。应用程序可以利用FSEvents提供的API接口来访问这些日志文件,并获取到修改目录的操作信息,这些信息包括文件的创建,文件的修改,以及文件的删除等操作。

通常情况下,恶意软件在对目标系统进行了非法操作之后,都会尝试清除其行为痕迹,而FSEvents就可以帮助我们发现这些恶意软件,并将相关的恶意文件从我们的系统中彻底删除。利用这一工具,即便是恶意软件已经将其操作痕迹完全清除了,我们也可以找到恶意如案件执行和非法操作的证据。在对FSevents的日志文件进行分析之后,即便是过了很长一段时间,我们仍然可以轻而易举地获取到恶意文件的完整路径,创建和删除的日期。

由于我们可以查看到系统的历史修改记录,所以在此需要注意的是,FSEvents的日志文件并不一定一直存在于.fseventsd文件夹之中,因为这个文件夹仅仅只作为OS X系统中检测文件系统变化的一个中转区。CrowdStrike的安全研究人员已经成功地在一个普通的系统中观察到了四个月前的非法操作信息。所以,我们将在这篇文章中提供一些关于这一取证神器的基本信息。

当一个FSEventStream创建成功之后,该工具还会创建一些默认的标识符,除此之外,工具还可以通过一些额外的标识符来表示某些类型的操作行为。所有的标识符如下表所示:

-None:默认标识符。如果目录发生了特定的修改操作,工具不会为此操作设置事件标识符。

-MustScanSubDirs:通知应用程序,需要重新扫描受影响的目录以及该目录下的所有子目录。

-UserDropped:在设置标识符的时候发生错误,应用程序需要对目录执行完整的扫描操作。

-KernelDropped:在设置标识符的时候发生错误,应用程序需要对目录执行完整的扫描操作。

-EventldsWrapped:事件ID计数器发生错误,之前的事件ID将无效。

-HistoryDone:设置相应的标识符来表示之前哪些标识符需要忽略。

-RootChanged:当监视目录下发生修改操作时,设置相应的标识符。

-Mount:加载一个需要进行监视的卷宗。

-Unmount:卸载一个不需要进行监视的卷宗。

-ItemCreated:当文件或目录创建成功之后,设置相应的标识符。

-ItemRemoved:当文件或目录删除成功之后,设置相应的标识符。

-ItemInodeMetaMod:当节点元数据发生变化时,设置相应的标识符。

-ItemRenamed:当文件或目录名称修改成功之后,设置相应的标识符。

-ItemModified:当文件或目录修改成功之后,设置相应的标识符。

-ItemFinderInfoMod:文件finder的元数据被修改之后,设置相应的标识符。

-ItemChangeOwner:当文件或目录的所有者发生变化时,设置相应的标识符。

-ItemIsFile:操作对象是一个文件。

-ItemIsDir:操作对象是一个目录。

-ItemIsSymlink:操作对象是一个符号链接。

如何解析FSEvents所记录的日志数据

FSEvents会将日志文件保存在一个名为.fseventsd的文件夹中,而这个文件夹位于每一个卷宗的根目录下。这个文件夹只有root访问权限,并且文件夹中包含有大量gzipped文件。

比如说,/Volumes/Macintosh HD/.fseventsd目录下包含有本地硬盘驱动器的FSEvents日志。

我们往往无法直接从这些文件中获取到有价值的信息,因为事件日志中的数据是以十六进制来表示的。为此,David Cowen还专门开发了一款基于python的解析工具,这款工具名为“FSEventsParser”,它可以比昂祝我们对FSEvent的日志记录进行解析。

如何在OS X平台中利用FSEvents检测并删除恶意文件

使用FSEvents来删除OS X中的恶意软件

比如说,我们可以使用FSEventsparser来识别类似OS X/Iworm这样的恶意软件。Iworm是OS X平台下的一款木马,计算机在感染了这一木马之后,攻击者就可以利用社交媒体网站来获取到目标用户的IP地址,然后将这台目标主机与僵尸网络进行连接。

安全研究人员让虚拟机系统感染了Iworm,然后运行FSEventsParser。根据恶意软件的运行机制,它们通常会使用守护进程来作为启动选择。所以我们利用FSEventsParser来对/System/Library/LaunchDaemons/ 和/Library/LaunchDaemons这两个目录进行监视。在扫描之后我们发现,2016年2月1日系统创建了一个文件(/Library/LaunchDaemons/com.JawaW.plist)。在对数据进行了过滤处理之后,我们得到的事件标识符为“ItemCreated”,“ ItemModified”,以及“ItemIsfile”。除此之外,系统在当日还创建了一个新文件夹(/Library/Application Support/JavaW)。

如何在OS X平台中利用FSEvents检测并删除恶意文件

现在,我们已经获取到了恶意文件的创建时间和存储位置。那么接下来我们就可以利用这一工具来对被入侵的系统进行更深入地分析了。

结论

现在,越来越多的企业和机构选择在各自的工作环境中使用Mac终端了,这一趋势使得OS X平台下的取证分析人员变得更加的炙手可热。FSEvents是一个非常有实用价值的工具,即便是恶意软件已经完全清除了它们的操作痕迹,FSEvents仍然可以帮助我们发现并识别出恶意文件。从这一角度出发,这款工具能够在很多不同的调查取证环境下为分析人员提供有效的帮助。因为在某些特殊情况下,很多其他的工具并不能够发现可供分析的有效证据。

原文链接:如何在OS X平台中利用FSEvents检测并删除恶意文件,转载请注明来源!

0