该漏洞是由Cisco Talos的Tyler Bohan发现的。人们为了特定行业的特定用途设计了大量的文件格式。苹果公司通过APIs接口提供特定方式来访问OSX平台上各种图像格式的图像数据。Talos披露了五个苹果OSX中有关处理图像格式的远程代码执行漏洞:TALOS-2016-0171, TALOS-2016-0180,TALOS-2016-0181, TALOS-2016-0183, TALOS-2016-186。
TALOS-2016-0171
标记图像文件格式(TIFF)(CVE-2016-4631)
TIFF是一种文件格式,因为它能够以无损格式存储图像,所以很受图形艺术家、摄影师和出版业的欢迎。TIFF最初是上世纪80年代为了建立一个普适扫描的图像文件格式而设计的。Cisco Talos已经发现图像 I/O API 解析和处理平铺 TIFF 图像文件的方式中存在一个漏洞。应用程序使用图像I/O API呈现图像时,设计一个精心构建的TIFF图像文件就可以创建一个堆栈溢出,最终在受害系统和设备上执行远程代码,达到攻击目的。
这个漏洞十分关键,因为任何应用程序使用苹果图像I/O API呈现TIFF图像的时候都会引发这个漏洞。这也就意味着攻击者可以使用大量的潜在攻击媒介利用此漏洞注入恶意软件有效荷载,这些媒介包括iMessages、恶意网页、MMS彩信或是任何利用苹果图像I/O API呈现TIFF图像的应用程序的恶意附件。
此外,根据攻击者选择的交付方式不同,利用此漏洞不必通过明显的用户交互,因为许多应用程序(比如iMessage)在默认设置的情况下都会自动显示图像。此漏洞影响OS X 10.11.5和iOS 9.3.2 版本用户,并且广泛存在于目前所有的旧版本中,受影响设备数量十分可观。
TALOS-2016-0180 & TALOS-2016-0181
OpenEXR文件格式(CVE-2016-4629, CVE-2016-4630)
OpenEXR是一种高动态范围图像文件格式,最初由工业光学和魔术界开发来用于视觉特效,现在广泛应用于专业计算机图形学领域。该格式允许大量信息以像素为单位呈现,具有较高的灵活性。但是只要创建一个恶意的OpenEXR文件就可以滥用这种灵活性使得苹果图像 I/O将图像内信息写到目的缓冲区以外。
此外,图像 I/O 在处理OpenEXR 文件内 B44 压缩数据时存在一个漏洞。压缩数据的大小是由EXR 文件指定的,如果此值大于可以存储在一个 int 值的大小,多余的用户数据就会被写入到预定空间之外的内存。
通过操纵内存内容来建立必要的安装程序,这两个漏洞可用于在设备上执行远程代码。
TALOS-2016-0183
数字资产交换文件格式 (CVE-2016年-1850)
数字资产交换文件格式,也称为协同设计活动文件,是一种 XML 文件格式,用于可能使用不兼容文件格式的数字内容创建工具之间交换文件。Apple Scene Kit就是支持数字资产交换文件的一种 3D 模型框架。
人们可以传送一个专门创建的数字资产交换文件给Scene Kit,因此可以混淆框架访问对象的类型。在这种情况下是有可能在超过内存边界值的错误输入对象上执行操作的。此漏洞可能会导致设备上的远程代码执行。
备注:OSX 10.11.5已经修复了TALOS-2016-0183漏洞。
TALOS-2016-0186
BMP文件格式(CVE-2016-4637)
BMP文件格式存在时间也很长了,并且结构相当简单。BMP头文件中包含有关大小、布局和图像类型的信息。对图像高度属性的处理方式中存在一个漏洞。只要构建一个精心设计的BMP图像文件,保存之后打开,修改大小信息,该漏洞会导致出界写入,打开苹果核心图像API 的任何应用程序中都能执行远程代码。
已知漏洞版本:
TALOS-2016-0171
OS X Mavericks v10.9.5, OS X Yosemite v10.10.5 OSX El Capitan – 10.11.5,
iOS 9.3.2, watchOS 2.2.1 & tvOS 9.2.1
TALOS-2016-0183
OSX El Capitan – 10.11.4
TALOS-2016-0186
OS X Mavericks v10.9.5, OS X Yosemite v10.10.5, OSX El Capitan – 10.11.5,
iOS 9.3.2, watchOS 2.2.1 & tvOS 9.2.1
结论:
图像文件是攻击的绝佳媒介,因为图像更容易通过网页或电子邮件传播并且不受怀疑。这些漏洞危险性更高,因为苹果OSX平台上的软件都在广泛使用苹果核心图形API、 Scene Kit和图像I/O。
企业应该发布更新版本来修复这些漏洞。为了保护客户,Talos已经采用了Snort条例来检测是否有人试图利用这些漏洞。此外,如果企业在正常运行中遇到从来没有,或很少使用的文件类型时,最好阻止文件加载。
请注意,之后有可能会公布添加条例,如有更多漏洞信息就会变更现行条例。最新的条例信息,请参阅自己的安全软件、FireSIGHT管理中心或是Snort.org。
Snort条例: 16222,39634-39635,39597-39632