Apple设备多个安全漏洞原理与修复方式分析(CVE-2017-13890、CVE
一、概述
近期,我们的第三方合作伙伴Syndis发现我们在Dropbox使用的Apple软件中存在漏洞,该漏洞不仅影响macOS,还影响当时最新版本的Safari,因此这些漏洞属于0 Day漏洞。当这些漏洞被组合利用时,攻击者可以通过诱导受害者访问特制的网页,实现在受害者的计算机上运行任意代码。
我们向Apple通报了这些漏洞,很快就得到了他们的确认。Apple在大约一个月内发布了针对这些漏洞的修复程序,这比“90天内修复”的行业标准要好很多。这些漏洞被指定了CVE编号,并且我们与Syndis共同验证了漏洞已经成功修复。本文将主要讲解这些漏洞的详细信息,及修复补丁的验证过程。
二、Safari自动下载和安装磁盘映像漏洞(CVE-2017-13890)
在CoreTypes中,定义了一个安全的统一类型标识符(UTI)列表,该列表将由Safari自动打开。上述内容可以在LSRiskCategorySafe中找到。我们特别感兴趣的是其中的com.real.smil。
如果我们使用Isregister检查Launch Services数据库,我们将会看到它在CoreTypes中定义,其描述为“同步多媒体集成语言”,并且似乎与Real Player媒体应用程序相关联。有许多文件扩展名都与这个UTI相关联,其中包括“.smi”。
$ touch a.smi
$ mdls a.smi | grep -e "kMDItemContentType\s\|kMDItemKind"
kMDItemContentType = "com.real.smil"
kMDItemKind = "Self Mounting Image"
我们可以看到,“.smi”文件具有com.real.smil内容类型,但它被描述为“自挂载映像”(Self Mounting Image)。这是因为在macOS 10.12.6上,Disk Image Mounter应用程序也将自身与这一扩展名关联,并将自身列为该扩展名文件的默认处理程序。Disk Image Mounter应用程序为“.smi”扩展名指定了com.apple.disk-image-smi这一UTI,但CoreTypes中定义的com.real.smil具有优先权限。
该漏洞已被分配CVE-2017-13890,Apple官方通告参见:https://support.apple.com/en-us/HT208692
CoreTypes
适用于:OS X El Capitan 10.11.6、macOS Sierra 10.12.6
影响:在对一个恶意制作的网页进行处理的过程中,可能会导致安装磁盘映像。
修复方法:通过增加限制条件,修复了逻辑问题。
CVE-2017-13890:Apple、Syndis的Theodor Ragnar Gislason
三、挂载磁盘映像导致应用程序启动漏洞(CVE-2018-4176)
Bless实用程序用于设置卷的可启动性以及启动磁盘选项。其中,一个有趣的选项是–openfolder,可用于指定在系统安装卷时在Finder中打开的文件夹。尽管描述是这样说的,但如果–openfolder的参数指向了一个可加载的包,并且这些包时经过打包且文件名以“.bundle”结尾的应用程序,那么实际上将会启动指定的应用程序,而没有执行打开Finder的操作。这就意味着,用户可以通过访问Safari中的网页来自动启动应用程序。然而,这一漏洞对攻击者来说,其可用性仍然有限,因为攻击者无法借助这一漏洞运行任意代码。Gatekeeper仅允许运行从应用商店下载的应用程序,以及由已知开发者签名的应用程序,从而防范此类共计。Launch Services在启动应用程序时将会进行检查,并产生如下错误提示:
为了使这条漏洞利用链有效,我们需要绕过Gatekeeper,以避开这种检查。
该漏洞已被分配CVE-2018-4176,Apple官方通告参见:https://support.apple.com/en-us/HT208692
磁盘映像
适用于:OS X El Capitan 10.11.6、macOS Sierra 10.12.6、macOS High Sierra 10.13.3
影响:挂载恶意磁盘映像可能会导致启动应用程序。
修复方法:通过增加限制条件,修复了逻辑问题。
CVE-2018-4176:Syndis的Theodor Ragnar Gislason
四、Gatekeeper绕过漏洞(CVE-2018-4175)
我们需要注意上面的错误提示:“evil无法打开,因为它来自一个身份不明的开发人员”,与此同时,我们还注意到Safari下载的磁盘映像中有evil。Syndis随后注意到了几件事:
1、他们可以启动经过签名的应用程序包的副本,例如我们磁盘映像中的Terminal.app。
2、如果修改Bundle的Info.plist,并不会使签名无效。
借助Info.plist,可以指定使用应用程序打开哪些扩展名的文件,也可以注册新的文件扩展名,这样一来就能够确保该应用程序作为默认的处理程序。在启动应用程序后,Launch Services会在数据库中注册应用程序和这些文件扩展名。我们可以使用Isregister命令查看:
...
--------------------------------------------------------------------------------
Container mount state: mounted
bundle id: 2740
Mach-O UUIDs: 67FFA762-AB52-31F0-AC80-E72008760B13
sequenceNum: 2740
FamilyID: 0
PurchaserID: 0
DownloaderID: 0
installType: 0
appContainer: #
dataContainer: #
path: /Volumes/bundle/Terminal.app
一、概述
近期,我们的第三方合作伙伴Syndis发现我们在Dropbox使用的Apple软件中存在漏洞,该漏洞不仅影响macOS,还影响当时最新版本的Safari,因此这些漏洞属于0 Day漏洞。当这些漏洞被组合利用时,攻击者可以通过诱导受害者访问特制的网页,实现在受害者的计算机上运行任意代码。
我们向Apple通报了这些漏洞,很快就得到了他们的确认。Apple在大约一个月内发布了针对这些漏洞的修复程序,这比“90天内修复”的行业标准要好很多。这些漏洞被指定了CVE编号,并且我们与Syndis共同验证了漏洞已经成功修复。本文将主要讲解这些漏洞的详细信息,及修复补丁的验证过程。
二、Safari自动下载和安装磁盘映像漏洞(CVE-2017-13890)
在CoreTypes中,定义了一个安全的统一类型标识符(UTI)列表,该列表将由Safari自动打开。上述内容可以在LSRiskCategorySafe中找到。我们特别感兴趣的是其中的com.real.smil。
如果我们使用Isregister检查Launch Services数据库,我们将会看到它在CoreTypes中定义,其描述为“同步多媒体集成语言”,并且似乎与Real Player媒体应用程序相关联。有许多文件扩展名都与这个UTI相关联,其中包括“.smi”。 copyright 无奈人生
$ touch a.smi
$ mdls a.smi | grep -e "kMDItemContentType\s\|kMDItemKind"
kMDItemContentType = "com.real.smil"
kMDItemKind = "Self Mounting Image"
我们可以看到,“.smi”文件具有com.real.smil内容类型,但它被描述为“自挂载映像”(Self Mounting Image)。这是因为在macOS 10.12.6上,Disk Image Mounter应用程序也将自身与这一扩展名关联,并将自身列为该扩展名文件的默认处理程序。Disk Image Mounter应用程序为“.smi”扩展名指定了com.apple.disk-image-smi这一UTI,但CoreTypes中定义的com.real.smil具有优先权限。
该漏洞已被分配CVE-2017-13890,Apple官方通告参见:https://support.apple.com/en-us/HT208692
CoreTypes
适用于:OS X El Capitan 10.11.6、macOS Sierra 10.12.6
影响:在对一个恶意制作的网页进行处理的过程中,可能会导致安装磁盘映像。
修复方法:通过增加限制条件,修复了逻辑问题。
CVE-2017-13890:Apple、Syndis的Theodor Ragnar Gislason
三、挂载磁盘映像导致应用程序启动漏洞(CVE-2018-4176)
Bless实用程序用于设置卷的可启动性以及启动磁盘选项。其中,一个有趣的选项是–openfolder,可用于指定在系统安装卷时在Finder中打开的文件夹。尽管描述是这样说的,但如果–openfolder的参数指向了一个可加载的包,并且这些包时经过打包且文件名以“.bundle”结尾的应用程序,那么实际上将会启动指定的应用程序,而没有执行打开Finder的操作。这就意味着,用户可以通过访问Safari中的网页来自动启动应用程序。然而,这一漏洞对攻击者来说,其可用性仍然有限,因为攻击者无法借助这一漏洞运行任意代码。Gatekeeper仅允许运行从应用商店下载的应用程序,以及由已知开发者签名的应用程序,从而防范此类共计。Launch Services在启动应用程序时将会进行检查,并产生如下错误提示:
为了使这条漏洞利用链有效,我们需要绕过Gatekeeper,以避开这种检查。 本文来自无奈人生安全网
该漏洞已被分配CVE-2018-4176,Apple官方通告参见:https://support.apple.com/en-us/HT208692
磁盘映像
适用于:OS X El Capitan 10.11.6、macOS Sierra 10.12.6、macOS High Sierra 10.13.3
影响:挂载恶意磁盘映像可能会导致启动应用程序。
修复方法:通过增加限制条件,修复了逻辑问题。
CVE-2018-4176:Syndis的Theodor Ragnar Gislason
四、Gatekeeper绕过漏洞(CVE-2018-4175)
我们需要注意上面的错误提示:“evil无法打开,因为它来自一个身份不明的开发人员”,与此同时,我们还注意到Safari下载的磁盘映像中有evil。Syndis随后注意到了几件事:
1、他们可以启动经过签名的应用程序包的副本,例如我们磁盘映像中的Terminal.app。
2、如果修改Bundle的Info.plist,并不会使签名无效。
借助Info.plist,可以指定使用应用程序打开哪些扩展名的文件,也可以注册新的文件扩展名,这样一来就能够确保该应用程序作为默认的处理程序。在启动应用程序后,Launch Services会在数据库中注册应用程序和这些文件扩展名。我们可以使用Isregister命令查看:
...
-------------------------------------------------------------------------------- 无奈人生安全网
Container mount state: mounted
bundle id: 2740
Mach-O UUIDs: 67FFA762-AB52-31F0-AC80-E72008760B13
sequenceNum: 2740
FamilyID: 0
PurchaserID: 0
DownloaderID: 0
installType: 0
appContainer: #
dataContainer: #
path: /Volumes/bundle/Terminal.app
本文来自无奈人生安全网
内容来自无奈安全网