如何防御永恒之黑漏洞利用
2020年年初,微软发布了一个紧急补丁,以修复SMBv3的漏洞,该漏洞编号为CVE-2020-0796。
CVE-2020-0796的可蠕虫性让人想起永恒之蓝,永恒之蓝是SMBv1中的一个远程代码执行(RCE)漏洞,也就是灾难性恶意软件WannaCry的主要媒介。一旦攻击者成功利用CVE-2020-0796,远程攻击者就可以完全控制存在漏洞的系统,所以被称为“永恒之黑”。
受永恒之黑影响的系统
Windows 10版本1903(用于32位系统)
Windows 10版本1903(用于基于ARM64的系统)
Windows 10版本1903(用于基于x64的系统)
Windows 10版本1909(用于32位系统)
Windows 10版本1909(用于基于ARM64的系统)
Windows 10版本1909(用于基于x64的系统)
Windows Server 1903版(服务器核心安装)
Windows Server 1909版(服务器核心安装)
永恒之黑的漏洞利用机制
srv2.sys中的Srv2DecompressData函数中存在一个整数溢出错误。当SMB服务器收到格式错误的SMB2_Compression_Transform_Header时,可以触发此漏洞。此函数创建一个缓冲区,用于保存解压缩的数据,该函数通过将“ OriginalSize”添加到“ Offset”来计算缓冲区大小,导致ECX寄存器中的整数溢出。一旦计算出缓冲区大小,它将大小传递给SrvNetAllocateBuffer函数来分配缓冲区。
随后,内核调用了RtlDecompressBufferXpressLz函数来解压缩LZ77数据。上面的屏幕截图显示,内核使用“ rep movs”指令将0x15f8f(89999)字节的数据复制到缓冲区中,该缓冲区的大小先前分配为0x63(99)字节,导致缓冲区溢出,从而导致内存损坏和内核崩溃。
永恒之黑属于SMB内存损坏漏洞,其可蠕虫性可能能够利用此漏洞感染并通过网络传播,这与WannaCry勒索软件在2017年利用SMB服务器漏洞的方式十分类似。
攻击者是如何利用永恒之黑的?
攻击者利用永恒之黑的攻击手段主要有三种。
手段一:在某些公司网络上加入域时,会自动打开SMB端口,从而使该计算机暴露于远程攻击形式,利用该漏洞,开发或使用漏洞利用的攻击者可以完全控制该计算机。
手段二:攻击者的另一种情况是创建自己的SMB服务器,然后诱使用户连接到其恶意服务器。这种攻击可能采取垃圾邮件或即时消息的形式,并带有指向托管恶意代码的邪恶SMB服务器的链接。如果攻击者说服用户单击链接,或者只是远程系统上的共享名(或映射的驱动器),那么恶意服务器将发送该链接,并立即获得对其的完全控制。
手段三:攻击者首先通过其他方式破坏计算机,例如,通过成为打开恶意附件的受害者成为受害者。随后,攻击者可以利用永恒之黑来修改内核的关键组件以获得SYSTEM特权,使攻击者几乎可以在计算机上执行任何操作。
永恒之黑应当如何避免?
系统安全防护不足,风险最大的无疑是企业核心数据。为了让企业有效防护永恒之黑的漏洞利用攻击,我们对比了三种可行的防护方案:
目前全球范围可能存在永恒之黑漏洞的主机总量约10万台,首当其冲成为黑客攻击的目标,若被蠕虫化利用可导致数据丢失、信息泄露、服务器瘫痪等情况。传统安全防护措施在此类高级威胁面前已经失效,核心数据与业务必须得到更进一步的保障。安芯网盾内存安全产品通过虚拟化监测内存异常,通过网络过滤仅允许合法的SMB通信,正常的业务通信不受影响,同时阻止了主机之间的其余横向移动,轻松解决永恒之黑和其他关键漏洞。
参考链接:
[2]https://paper.seebug.org/1168/
[3]https://www.sans.org/blog/microsoft-smbv3-11-vulnerability-and-patch-cve-2020-0796-explained/
[4]https://www.avesnetsec.com/cve20200796
[6]https://www.exploit-db.com/exploits/48267