形同虚设:揭秘恶意软件WindTail.A是如何绕过macOS Gatekeeper防
背景
Windshift是一个旨在中东地区针对个人隐私进行监视的高级持续性威胁(APT)。该威胁已经在暗中运营了2年。直到去年8月,安全公司DarkMatter的研究院Taha Karim在新加坡的Hack in the Box会议上公开分析了这一威胁。Karim在报告中指出,该威胁的独特之处在于,它以来网络钓鱼电子邮件和短信息文本消息中的链接,来跟踪目标的位置、在线习惯和其他特征。另外一个不同寻常的特点是,在极少数情况下,Windshift使用macOS恶意软件进行文档窃取,或截取目标桌面上的屏幕截图,该恶意软件依赖于一种绕过macOS安全防御的新技术。
在2018年12月,mac安全专家Patrick Wardle发表了对该恶意软件的分析,令大家感到意外的是,根据VirusTotal当时测试的结果,只有两家反病毒厂商(Kaspersky和ZoneAlarm)将样本检测为恶意文件。随后,Wardle使用了VirusTotal上搜索相关恶意文件的功能,并发现了另外4个样本。但是,其中有3个样本没有被任何反病毒厂商检测到,1个样本仅被其中的两个厂商检测到。
本文将主要对该恶意软件如何绕过macOS防御机制的原理进行分析。
详细描述
WindTail.A恶意软件在被研究人员曝光4个月后,都未能被传统反病毒产品检测到,这样的消息无疑使得一大批macOS用户大为震惊。同时,也颠覆了传统意义上“macOS系统不会有病毒”、“macOS系统不需要安装杀毒软件”的概念。
正如下面展示的评论所揭示的那样,对于Apple内置保护机制的确切含义,许多用户都存在混淆与误解:
事实上,在macOS系统中并没有“仅运行已经签名的应用程序”这样的设置,但经验丰富的macOS用户会清楚,上图所指的是Apple的Gatekeeper技术,以及在“仅运行来自App Store的应用程序”和“运行来自App Store和已知开发者的应用程序性”之间进行选择的能力。原有的第三个选项“运行来自任何地方的应用程序”,已经在最新版本High Sierra系统的“系统偏好设置”界面删除,但仍然可以通过命令行和上下文菜单,来逐一允许未知应用程序的运行。
很明显,上面截图中的用户认为,如果Gatekeeper设置为“仅运行来自App Store的应用程序”和“运行来自App Store和已知开发者的应用程序性”,就会出现像WindTail.A这样的恶意软件,或者其他的一些恶意软件。根据我们的经验,这也是一些macOS用户普遍存在的认知。针对未签名的应用程序,除非用户特意选择运行并覆盖原有设置,否则都将无法在macOS系统上运行。
我们将会在本文中进行阐述,尽管这样的认知看似合理,但事实上它却完全是错误的。
揭开macOS安全的神秘面纱
我们之前已经提到,Apple的内置安全机制很容易被绕过。但是,Apple强大的营销能力,使用户很难接受这一事实。在厂商与用户互动的每一个层面,Apple都在强调macOS的安全神话:
在Apple.com官网上,面向客户展示的文档中有关于安全性的多条描述信息。从表面上看,这些内容似乎没有歧义:Gatekeeper能够组织恶意软件,并控制可以在macOS上运行的内容。鉴于这些宣传内容如此强大的攻势,也难免像markgo这样的用户确信,如果Gatekeeper打开,恶意软件就无法进入系统。
然而,如果我们仔细阅读,我们会发现该消息与最初出现的消息更加权威。相对而言,Gatekeeper确实使得从互联网下载应用程序更加安全。同样,开发者ID确实能够阻止某些恶意软件。但是,这个概念并不是能够阻止所有的恶意软件,也不是能够阻止大多数恶意软件。
但最重要的是,这一文字表述中并未表明Gatekeeper会阻止未签名的应用程序,也不表示Gatekeeper的设置能确保只有从App Store下载或使用开发者ID签名的应用程序才能在macOS上运行。尽管人们普遍认为,但这些说法并没有被Apple承诺过,并且我们经过分析认为,这些描述不符合实际情况。
探寻Gatekeeper的工作原理
不幸的是,对于未受保护的macOS用户,Gatekeeper不会阻止所有(甚至是大多数)恶意软件在macOS上运行,即使系统被设置为最严格的策略(“仅运行来自App Store的应用程序”)。在下面的视频中(YouTube),我们展示了下载和安装任意应用程序的过程,事实证明这一过程非常轻松。但在视频中,我们不会披露相关的0-day漏洞。所采用的是合法软件和非法软件广泛使用的标准技术,这也是我们每天看到的木马广告软件安装程序所使用的方法。
视频地址:https://youtu.be/3Ha4b0_mDhk
这可能是由于Gatekeeper仅在用户尝试通过其他应用程序下载或安装软件时启动,例如Safari、Mail、Messages以及其他注册为“LSQuarantineAgents”的应用程序。但是,还有一些其他方法可以在macOS上获取软件,例如视频中展现的curl,这一方法并不需要通过LSQuarantineAgent。如果使用这样的方法,Gatekeeper将会对该软件的存在视而不见。
LSQuarantineAgent的目的是使用“隔离位”标记实现下载。隔离位的目的,是为了调用安全评估策略(支持Gatekeeper的系统级检查)和XProtect(Apple的签名检测技术)。如果没有标记隔离位,那么上述这些安全技术都不会被调用。
攻击者如何攻破“鸡生蛋”问题
当然,这就引发了一个问题,就是攻击者如何进入系统,以便在不触发Gatekeeper的情况下下载应用程序。目前,有几个场景,这些场景我们在野外都曾见到过。最常见的是,运行一个木马安装程序,并欺骗不具备安全意识的用户运行。在这里,恶意安装程序可以伪造成用户认为值得信任的应用程序或脚本的安装程序。其中,最常见的就是伪装Flash Player安装程序:
背景
Windshift是一个旨在中东地区针对个人隐私进行监视的高级持续性威胁(APT)。该威胁已经在暗中运营了2年。直到去年8月,安全公司DarkMatter的研究院Taha Karim在新加坡的Hack in the Box会议上公开分析了这一威胁。Karim在报告中指出,该威胁的独特之处在于,它以来网络钓鱼电子邮件和短信息文本消息中的链接,来跟踪目标的位置、在线习惯和其他特征。另外一个不同寻常的特点是,在极少数情况下,Windshift使用macOS恶意软件进行文档窃取,或截取目标桌面上的屏幕截图,该恶意软件依赖于一种绕过macOS安全防御的新技术。
在2018年12月,mac安全专家Patrick Wardle发表了对该恶意软件的分析,令大家感到意外的是,根据VirusTotal当时测试的结果,只有两家反病毒厂商(Kaspersky和ZoneAlarm)将样本检测为恶意文件。随后,Wardle使用了VirusTotal上搜索相关恶意文件的功能,并发现了另外4个样本。但是,其中有3个样本没有被任何反病毒厂商检测到,1个样本仅被其中的两个厂商检测到。
本文将主要对该恶意软件如何绕过macOS防御机制的原理进行分析。
详细描述
WindTail.A恶意软件在被研究人员曝光4个月后,都未能被传统反病毒产品检测到,这样的消息无疑使得一大批macOS用户大为震惊。同时,也颠覆了传统意义上“macOS系统不会有病毒”、“macOS系统不需要安装杀毒软件”的概念。
www.wnhack.com
正如下面展示的评论所揭示的那样,对于Apple内置保护机制的确切含义,许多用户都存在混淆与误解:
事实上,在macOS系统中并没有“仅运行已经签名的应用程序”这样的设置,但经验丰富的macOS用户会清楚,上图所指的是Apple的Gatekeeper技术,以及在“仅运行来自App Store的应用程序”和“运行来自App Store和已知开发者的应用程序性”之间进行选择的能力。原有的第三个选项“运行来自任何地方的应用程序”,已经在最新版本High Sierra系统的“系统偏好设置”界面删除,但仍然可以通过命令行和上下文菜单,来逐一允许未知应用程序的运行。
很明显,上面截图中的用户认为,如果Gatekeeper设置为“仅运行来自App Store的应用程序”和“运行来自App Store和已知开发者的应用程序性”,就会出现像WindTail.A这样的恶意软件,或者其他的一些恶意软件。根据我们的经验,这也是一些macOS用户普遍存在的认知。针对未签名的应用程序,除非用户特意选择运行并覆盖原有设置,否则都将无法在macOS系统上运行。 内容来自无奈安全网
我们将会在本文中进行阐述,尽管这样的认知看似合理,但事实上它却完全是错误的。
揭开macOS安全的神秘面纱
我们之前已经提到,Apple的内置安全机制很容易被绕过。但是,Apple强大的营销能力,使用户很难接受这一事实。在厂商与用户互动的每一个层面,Apple都在强调macOS的安全神话:
在Apple.com官网上,面向客户展示的文档中有关于安全性的多条描述信息。从表面上看,这些内容似乎没有歧义:Gatekeeper能够组织恶意软件,并控制可以在macOS上运行的内容。鉴于这些宣传内容如此强大的攻势,也难免像markgo这样的用户确信,如果Gatekeeper打开,恶意软件就无法进入系统。
然而,如果我们仔细阅读,我们会发现该消息与最初出现的消息更加权威。相对而言,Gatekeeper确实使得从互联网下载应用程序更加安全。同样,开发者ID确实能够阻止某些恶意软件。但是,这个概念并不是能够阻止所有的恶意软件,也不是能够阻止大多数恶意软件。
但最重要的是,这一文字表述中并未表明Gatekeeper会阻止未签名的应用程序,也不表示Gatekeeper的设置能确保只有从App Store下载或使用开发者ID签名的应用程序才能在macOS上运行。尽管人们普遍认为,但这些说法并没有被Apple承诺过,并且我们经过分析认为,这些描述不符合实际情况。
无奈人生安全网
探寻Gatekeeper的工作原理
不幸的是,对于未受保护的macOS用户,Gatekeeper不会阻止所有(甚至是大多数)恶意软件在macOS上运行,即使系统被设置为最严格的策略(“仅运行来自App Store的应用程序”)。在下面的视频中(YouTube),我们展示了下载和安装任意应用程序的过程,事实证明这一过程非常轻松。但在视频中,我们不会披露相关的0-day漏洞。所采用的是合法软件和非法软件广泛使用的标准技术,这也是我们每天看到的木马广告软件安装程序所使用的方法。
视频地址:https://youtu.be/3Ha4b0_mDhk
这可能是由于Gatekeeper仅在用户尝试通过其他应用程序下载或安装软件时启动,例如Safari、Mail、Messages以及其他注册为“LSQuarantineAgents”的应用程序。但是,还有一些其他方法可以在macOS上获取软件,例如视频中展现的curl,这一方法并不需要通过LSQuarantineAgent。如果使用这样的方法,Gatekeeper将会对该软件的存在视而不见。
LSQuarantineAgent的目的是使用“隔离位”标记实现下载。隔离位的目的,是为了调用安全评估策略(支持Gatekeeper的系统级检查)和XProtect(Apple的签名检测技术)。如果没有标记隔离位,那么上述这些安全技术都不会被调用。 copyright 无奈人生
攻击者如何攻破“鸡生蛋”问题
当然,这就引发了一个问题,就是攻击者如何进入系统,以便在不触发Gatekeeper的情况下下载应用程序。目前,有几个场景,这些场景我们在野外都曾见到过。最常见的是,运行一个木马安装程序,并欺骗不具备安全意识的用户运行。在这里,恶意安装程序可以伪造成用户认为值得信任的应用程序或脚本的安装程序。其中,最常见的就是伪装Flash Player安装程序:
www.wnhack.com