欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

如何在macOS 10.15 Catalina绕过XProtect

来源:本站整理 作者:佚名 时间:2020-03-16 TAG: 我要投稿


在macOS 10.15 Catalina中,Apple进行了许多安全性能地改进,包括通过使所有可执行文件都受XProtect扫描来加固系统,而不管文件是否带有com.apple.quarantine位标记。对于安全研究人员而言,这意味着不再像以前的macOS一样,仅通过使用xattr实用程序删除隔离位就可以运行已知的XProtect恶意软件了。这对于用户来说是个好消息,但是对于那些想要探索XProtect样本的更详细的行为细节的研究人员来说,这可能是个问题。在本文中,研究人员将研究研究人员如何绕过这种各种安全功能,并在需要时仍在Catalina上运行已知的恶意软件。
为什么要在Catalina上运行已知的恶意软件
不久之前,研究人员可能不太关心XProtect已知的恶意软件,因为XProtect很少更新,并且没有涵盖macOS研究社区已知的许多攻击。最重要的是,在Catalina之前,XProtect总是很容易被绕过。
然而,时代已经变了,苹果公司终于意识到,Mac电脑在野外正受到各种不同攻击因素的攻击。最近几个月,苹果公司不仅更频繁地更新其内部安全工具,而且还发现了其他研究人员之前面临的一些攻击。但Apple很少共享攻击情报,而且如果攻击被Catalina上的XProtect阻止,则研究人员则无法更深入地研究攻击的工作原理。这种深度探索是必要的,至少有两个原因。首先,研究人员要开发比XProtect使用的遗留方法更有效的缓解措施和阻止措施;其次,研究人员希望能够分析恶意软件的行为并跟踪活动,以便在攻击开始之前采取行动。
如何在Catalina上运行已知的恶意软件样本
鉴于研究人员不能再删除com.apple.quarantine位以允许恶意软件在Catalina上运行了,研究人员必须采取其他策略。
首先,研究人员可以在macOS的早期版本(例如10.14)上运行示例,在这些早期的版本中,研究人员可以使用常规的XProtect绕过。这在某些情况下可能没问题,但这意味着研究人员无法测试特定于Catalina的恶意行为。此外,一旦研究人员升级到10.16及更高版本,测试计算机上的操作系统将越来越落后于实际使用的恶意软件作者所针对的操作系统。最终,研究人员最终会获得一个甚至根本不支持该恶意软件的操作系统,因此从长远来看,还需要另一种解决方案。
第二种可能性是禁用SIP并修改XProtect文件(例如删除所有签名),尽管在实验室设备或专门用于测试恶意软件的VM上执行此操作没有问题,但这个解决方案会带来很多副作用。除非万不得已,不要使用该方案。它的问题是在SIP关闭的情况下,你可能会遇到更多的问题,因为恶意软件在这样一个不寻常的环境中会有不同的行为。恶意软件的开发者知道,真正的用户很少在禁用SIP的情况下运行,因此他们可以使用一种简单的反分析技术来运行csrutil状态,然后相应地退出或改变行为。
第三种可能性是确定样本触发的规则,然后修改样本以避免该规则。XProtect很久以前就不仅仅是一个简单的基于哈希的文件扫描程序了,现在它使用了Yara规则,因此仅仅在示例的末尾添加一两个字节来更改计算的文件散列是行不通的。然而,正如我们将看到的,仍然可以通过一些工作绕过XProtect,但是有几个“陷阱”需要注意,我将在下面解释。
如何在macOS 10.15及更高版本上攻击计算机
当然,研究人员指的是在运行恶意软件之前正确隔离的一次性VM实例的攻击!一旦你处在一个安全的、可任意使用的环境中,第一个任务就是确定恶意软件所针对的规则是什么。就本文而言,我将使用此示例,该示例在发布时未被VT上的任何静态引擎检测到:
174c5712759c4abd2bdfc1b93f4c990011c45aeed236e89c1c864b1e8379c54d

在Catalina上,研究人员仍然必须删除com.apple.quarantine位,才能同时满足Gatekeeper(山狮中引入的一项新安全技术,它可保证用户安装来自Mac App Store或者拥有开发者签名的应用)和Notarization 要求(2019年,苹果在10.14.5上新引入的App Notarization机制,要求开发人员上传应用程序之前,将它们提交给苹果,以扫描恶意内容,并查找可能存在的代码签名问题,没有经过苹果检测的应用程序以后可能将不被允许运行)。
$ xattr -rc ~/mdworker_share.app
但是,正如研究人员看到的那样,当尝试引爆样本时,尽管VT不了解这种恶意软件,但XProtect却知道。

这意味着研究人员首先必须检查研究人员的恶意软件,并将其与XProtect.yara中的规则进行比较以找到匹配项。之前我们已经写过有关如何逆转XProtect签名定义的文章,因此请参阅该文章中的内容。
如果你试图测试已经在VT或其他存储库中发现的恶意软件,那么你可以通过查看恶意软件的检测名称来获得线索,但苹果的新签名并不使用普通的恶意软件名称。如今,苹果公司更喜欢使用无意义的字母数字标识符,如下面所示,来混淆他们所检测的内容:

如果像研究人员在此使用的示例一样,你的恶意软件不为杀毒引擎所知,并且被XProtect阻止,那么请先查看更新的XProtect规则。至少在目前,较新的规则往往位于文件的顶部。但研究人员发现经常关注XProtect的更改是很有用的,这样可以查看每次更改的内容,从而使这个过程更快、更容易。

[1] [2] [3]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载