研究员在合法的数字签名文件中隐藏隐秘的恶意软件
一种新技术允许攻击者隐藏在数字签名文件中的恶意代码而不打破其签名,然后将该代码直接加载到另一个进程的内存中。
由Cyberity Conte Conte Instinct的研究员开发的攻击方法可能被证明是未来犯罪分子和间谍群体的宝贵工具,使他们能够获得恶意软件过去防病毒扫描仪和其他安全产品。
NIPRAVSKY的第一部分本周在Las Vegas的黑帽安全会议上展示,与文件隐写术有关 - 在合法文件中隐藏数据的实践。
虽然恶意软件作者在过去的图片内具有隐藏的恶意代码或恶意软件配置数据,但Nipravsky的技术突出出来,因为它允许它们与数字签名文件做同样的事情。这是“很大的重要因素,因为数字签名文件的整个点是保证它来自特定的开发人员,并且已经改变了in route。
如果已签名可执行文件,则有关其签名的信息存储在其标题中,在一个名为“属性证书表(ACT)的字段内,该字段在计算文件”S HASH时被排除在外 - 一种用作加密表示的唯一字符串其内容。
这是有道理的,因为数字证书信息不是签名时原始文件的一部分。稍后添加了它以证明文件是由其创建者预期的康颇,并且具有一定的哈希。
但是,这意味着攻击者可以在ACT字段内添加数据 - 包括另一个完整文件 - 而不更改文件哈希或破坏签名。这样的添加将修改磁盘上的整体文件大小,其中包括其标题字段,并且在验证文件签名时,Microsoft“S Authenticode技术”将通过Microsoft“S Authenticode技术”。
但是,文件大小在文件头内的三个不同位置指定,并且可以通过攻击者修改其中的两个值而不会破坏签名。问题是,Authenticode检查这两个可修改的文件大小条目,并不检查第三个文件。
根据Nipravsky的说法,这是Authenticode中的设计逻辑漏洞。该技术检查了第三个,不可改造的文件大小值,攻击者不会脱掉这个技巧并仍然保持文件签名有效,他说。
当修改文件本身被执行时,未加载到该动作的恶意数据未被加载到内存中,因为它是标题的一部分,而不是文件正文。然而,该行为可以作为一个隐藏的地方通过恶意文件未被发现的防病毒防御。
例如,攻击者可以将恶意代码添加到许多Microsoft签名的Windows系统文件或Microsoft Office文件中。他们的签名仍然有效和文件功能。
此外,大多数安全应用程序白名单都是这些文件,因为它们是由信任的发布商Microsoft签名的,以避免可以删除关键文件并崩溃系统的假态度检测。
Nipravsky的研究的第二部分是开发一种隐秘的方法来加载签名文件内的恶意可执行文件而不检测到。他在将PE文件加载到内存时,Windows在Windows执行的整个后面的幕后进程中逆转。此过程不公开记录,因为开发人员通常需要自己做到这一点;他们依赖于操作系统进行文件执行。
每天八个小时的工作花了四个月,但Nipravsky的逆向工程努力使他能够创建一个所谓的反射PE装载机:可以将便携式可执行文件直接加载到系统内存中的应用程序而不留在磁盘上的任何迹线。由于加载器使用Windows的确切过程,因此安全解决方案难以检测其可疑的行为。
Nipravsky的装载机可以用作隐形攻击链的一部分,其中驱动器下载漏洞利用在内存中执行恶意软件丢弃器。然后,该过程随着来自服务器的动作中的恶意代码下载数字签名文件,然后将该代码直接加载到内存中。
由于其滥用可能性,研究人员无意公开释放他的装载机。然而,如果他们“重新努力努力,熟练的黑客可以创造自己的装载者。
研究人员对防病毒产品进行了反射的PE装载机,并设法执行恶意软件,这些产品将检测到。
在一个演示中,他采取了一个赎金软件程序,该程序通常检测到并阻止一个防病毒软件产品,将其添加到数字签名文件的行为中,并使用反射性PE加载器执行它。
防病毒产品仅在已加密所有用户的文件后才检测到ransomware程序创建的ransom文本文件。换句话说,太晚了。
即使攻击者Don“T具有Nipravsky的反射性PE装载机,它们仍然可以使用隐写术技术来隐藏合法文件内的恶意软件配置数据,甚至无法从组织中窃取的exfiltrate数据。在数字签名文件中隐藏的数据可能会在没有问题的情况下通过网络级流量检查系统。