下载 | SynAck勒索软件利用windows TxF机制 有效躲避反恶意软件的查杀

SynAck勒索软件起初没什么特色,但最近的SynAck变种采用了Process Doppelgienging反查杀技术,该技术直接利用微软Windows系统中的事务性NTFS(TxF)Transactional NTFS机制读写文件,研究员认为目前常见的反恶意软件供应商无法查杀SynAck勒索软件,更糟糕的是TxF在目前大多数Windows版本上默认都是启用的。

推荐阅读:

2017年6月,NTFS 3.1出现DoS漏洞 影响WinXP到Win8.1所有版本 据称10行代码就可以DoS攻击,PV 4763

SynAck变种增加反查杀技术Process Doppelgienging

SynAck勒索软件的最新版本包含了许多新颖且复杂的反查杀技术,包括不久前安全研究人员于2017年12月发布的新技术Process Doppelgienging

Process Doppelgänging由enSilo安全研究人员,@Tal_Liberman和Eugene Kogan在BlackHat欧洲2017上发布。该技术利用了Microsoft Windows的NTFS Transactions机制,它存在于所有的Windows版本上,并且是标准配置。利用这项机制,恶意软件作者可以直接利用目标系统上的进程,而无需将其注入代码其中,这对于恶意软件作者来说是一大优势。

事务性NTFS(TxF)Transactional NTFS是什么

在微软MSDN的官方信息显示,事务性NTFS(TxF)将事务集成到NTFS文件系统中,这使应用程序开发人员和管理员可以更轻松地处理错误并保持数据完整性。使用场景包括

更新文件文件的更新是一种常见且通常很简单的操作。但是,如果系统或应用程序在应用程序更新磁盘上的信息时失败,则结果可能是灾难性的,因为用户数据可能会被部分完成的文件更新操作损坏。强大的应用程序通常执行复杂的文件副本和文件重命名序列,以确保数据在系统出现故障时不会损坏。

TxF使应用程序很容易保护文件更新操作免受系统或应用程序故障的影响。要安全地更新文件,应用程序以事务处理模式打开文件,进行必要的更新,然后提交事务。如果系统或应用程序在文件更新过程中失败,则TxF会自动将文件恢复到文件更新开始前的状态,从而避免文件损坏。

多文件更新当单个逻辑操作影响多个文件时,TxF更为重要。例如,如果要使用工具重命名网站上的HTML或ASP页面之一,则精心设计的工具也会修复所有链接以使用新文件名。但是,在此操作过程中出现故障会使网站处于不一致状态,其中一些链接仍指旧文件名。通过使文件重命名操作和链接修复操作成为单个事务,TxF可确保文件重命名和链接修复成功或失败,作为单个操作。

一致的并发更新TxF隔离并发事务。如果应用程序为事务性读取打开文件,而另一个应用程序为事务性更新打开相同的文件,则TxF将两个事务的影响相互隔离。换句话说,事务性阅读器总是查看单个一致的文件版本,即使该文件正在被另一个事务更新的过程中。

应用程序可以使用此功能来让客户在其他客户进行更新时查看文件。例如,事务性Web服务器可以提供单个,一致的文件视图,而另一个工具则同时更新这些文件。

https://msdn.microsoft.com/en-us/library/windows/desktop/aa363764(v=vs.85).aspx

https://msdn.microsoft.com/en-us/library/windows/desktop/aa365738(v=vs.85).aspx

但有趣的是,微软似乎意识到这个安全性问题,已经不推荐使用这个方法了,(安全加小编没有看到该通告是什么时候发布的,或者说该通告适用于多大范围的Windows版本)

Process Doppelgänging技术对于MS TxF的利用机制

据称,因为该技术利用了默认的Windows功能,而且不太可能被修补。作者描述了Process Doppelgänging技术的工作机制:

“为了实现这一目标,我们利用NTFS Transactions我们在上下文交换中覆盖合法文件。然后,我们从修改后的文件(在上下文交换中)创建一个文件块,并创建一个进程去处理它。

看起来,在Transactions中扫描文件,是目前常见的供应商无法做到的(有些甚至会导致杀毒软件挂起),随后我们进行了回滚,所以我们的活动没有留下任何痕迹。“

关键是大多数反恶意软件工具,一般都是监视文件系统的意外更改,或者在内存中运行的意外代码,很少注意文件系统上的程序。通过利用NTFS Transactions机制,SynAck勒索软件能够在存储在磁盘上的合法程序的伪装下运行,而不用更改会引发所有警报的文件。NTFS事务是正常的Windows事件,因此一切看起来都正常于系统。

SynAck还采用了代码混淆技术及目录白名单技术

除了ProcessDoppelgänging,SynAck勒索软件还采用了一些其他有趣的技术来避免检测。基本的反恶意软件技术是查看文件并识别恶意特征。为了避开这种检查,恶意软件作者经常对其编译的代码进行混淆,进一步加大分析它的难度。反恶意软件防御措施,擅长识别适用于已编译代码的通用代码混淆技术,但SynAck勒索软件开发人员在编译之前更进一步并对其进行了混淆  。(Securelist)即使这种技术可以克服的,但它针对探测阶段就进行了很多的工作,这会让安全软件的效能大幅度下降,相信没有人喜欢较慢的安全软件。

SynAck勒索软件还采用了相对常见的技术,识别它正在运行的目录。如果正在从白名单之外的目录执行它,则恶意软件就会假定自己在反恶意软件工具的审查下运行,比如运行在沙箱中运行,如果是这样的话,它就不会运行。这会进一步降低反恶意软件的防御措施的漏查漏杀。

SynAck勒索软件还会测试目标系统的键盘语言设置。勒索软件不会在默认语言设置为西里尔文的系统上执行。

恶意软件天生就有一种使命,那就是不断并加速变化。每次采用新的攻击技术时,都会开发新的防御技术,而不良行动者需要提出新技术。为了获得更长的利用时间,恶意软件开发人员通常会添加防御技术,来识别何时被反恶意软件工具审查,或混淆代码的真实目的,进而逃避反恶意软件工具的查杀,或将攻击的目标避免在本国,以免警方采取行动。

SynAck勒索软件的主要攻击媒介是通过  Windows远程桌面协议(RDP)。如果你不需要它,你应该把它关掉。除此之外,对勒索软件的正常保护仍然适用。在勒索软件加密中没有发现任何缺陷,所以不要指望那些在这一个上免费提供解密密钥的好人。

Process Doppelgänging PPT下载

发表评论