整天 不务正业 帮其他公司找产品漏洞的谷歌安全小组 “ 零日计划 ” 又又又立功了。 克里斯·埃文斯,谷歌 “ 零日计划 ” 安全小组主管▼ 前一阵,谷歌的 “ 零日计划 ” 小组一口气在苹果的操作系统里找出了 13 个可能被黑客拿来搞远程攻击的漏洞。 而且和以往一些特别有针对性的漏洞还不太一样,这次只要手机上装了能收发图片的聊天软件 ( 比如微信、钉钉 ) ,就暴露在了黑客的攻击面之下。 13 个漏洞,同时针对所有聊天软件,想想就觉得好刺激啊。。。 不过大家大可放心,只要是官方披露出来的漏洞,就说明苹果已经知晓并且修复了。 ( iOS 13.1 之后就修复了 ) 所以手持 iPhone 、 iPad 和 MacBook 的小伙伴们,只需要把系统更新到最新版本,基本就不用担心了 。 用苹果设备的小伙伴们 现在去检查下有没有系统更新呗▼ 那么在大家等着更新下载完成的这段时间里,差评君就来给大家盘盘,这回能一口气攻击所有聊天软件的漏洞是怎么回事儿吧。 对于莫得感情的手机和电脑来说,图像文件其实和 Word 文档、 MP3 音乐文件一样,只是一串没什么意义的数据。 只有在使用特定的软件 ( 比如相册 App ) 打开的时候,才能解析出其中包含的图像内容,供用户查看。 而一张图片,从我们点开,到展现在我们面前,大概经历了下面这么一个过程 👇。 作为一张成熟的图片,它会先在文件开头表明自己的图片身份,方便电脑钦定那个最适合打开它的软件。 而在苹果的系统里,那个被钦定的图片解析软件就是苹果自家的 “ Image I/O ” 图片读写框架。 读写大部分图片格式 / 管理色彩 / 读取图片元数据 ▼ 嗯。。可能不少小伙伴压根没听说过这号软件,实际上它是个类似于系统底层服务的组件,自己是没有独立运行界面的。 但是相册 App 的底层用的是它,微信相册里的图片读写模块也是它。。。 众所周知,由于苹果系统对隐私的管控比较严格,几乎所有 App 读写图片的时候,都得用到它。 实际上这些界面的背后,都是 Image I/O 框架在提供支持▼ 没错,就像你们猜到的那样:这个专门给其他 App 提供照片读写支持的系统框架,它翻车了。 不知道大家还记不记得,差评君之前跟大家讨论过用图片追踪一个人的行踪 ( 传送门 ) ,那时差评君讲过可以往图片文件的描述区域里添加看不见的 “ 隐形标记 ” 。 当时 Facebook 就是用这种方法,偷偷在图片里添加了属于自己的追踪 ID ,从而追踪一张图片在互联网上的流转情况。 这次的情况和上回差不多,只不过被恶意添加到图片文件里的不再是一串追踪 ID ,而是变成了实打实的可执行恶意代码。 像上面这张图里,黑客通过一些手段,把一串用于连接到 IP 地址为 “ 192.168.2.72 ” 的指令埋进了图片的空白区域,用聊天软件发给了某个用户。 假如说,手机里负责解析图片的程序恰巧没有对这类可执行代码进行过滤的话,那等到用户点开这张图片的时候,就是黑客们割韭菜的开始。 恰巧,苹果的 Image I/O 框架就有执行图片里恶意代码的潜在风险。 恶意代码被执行。。别的先不说,至少你刚拍下的那些照片,可能就都嗖嗖嗖发给黑客了。 可能有小伙伴会说了,现在的苹果系统里有安全的沙箱机制,每个 App 的运行环境都互不干扰;攻破了其中一个影响也不会太大吧。。。 嘿嘿,理论上是这样的 —— 但万一,沙箱被攻破了呢? 根据谷歌 “ 零日计划 ” 小组的测试,通过调整图片文件的部分参数 —— 比如具有误导性质的图片高度、宽度等等,会导致 “ Image I/O ” 框架运行出错。 框架运行出错之后便会出现程序员们喜闻乐见的 “ 内存溢出 ” 现象,进而产生 “ 内存泄漏 ” ,导致恶意代码冲破苹果系统为 App 设置的 ASLR 内存保护区。 好吧,上面这句话说人话的版本就是:动物园里的大象发疯,把围栏踏破了;狮子老虎跑到城市里,威胁到了人们的安全。 差不多这么个感觉。。。 可能有小伙伴觉得,我不点开陌生人发的图片不就完事了。 非也 ! 现在大部分聊天软件为了提高使用体验,都会自动在后台下载图片;之后再将完整图片裁剪成一张 “ 缩略图 ” ,等用户点开图片的时候,再继续加载完整图片。 然而在这个 “ 后台下载完整图片 → 调用系统图片框架裁剪图片 ” 的过程中,假如图片本身有问题,那抱歉, Boom~~ 。 凑巧的是,这次的一系列漏洞就是因为聊天 App 们的这般操作才被发现的。。。 “ 聊天 App 在后台调用系统组件生成缩略图 ” ▼ 而且就算有的聊天 App 可以手动关掉聊天图片的自动下载选项,但你真的能忍住不看群里的那些吃瓜集锦吗??? 你一定在好奇,早上编辑部发生了什么▼ 而且这一次,可能埋藏炸弹的图片几乎覆盖了所有常见的图像格式:从冷门的 PVR 、 DDS 到常见的 JPEG 和 TIFF ,甚至最新的 EXR 图片一个不落,让人防不胜防。 好在苹果官方已经给 Image I/O 框架打上了补丁,不然这范围,还真不是取消聊天图片自动下载就能防的住的 。。。 其实吧,往图片里藏恶意代码的攻击手段已经不是什么新鲜玩意了: 想当年村里刚通网的时候,差评君记得电脑报上就写过《 藏在陌生电子邮件里的恶意图片 》,说的其实就是这么一件事。 不过按当时只有 54 Kbps 网速的电话线来看,想要中毒其实还挺不容易的。 可是现在,大家一个个每天闲出 P 来,刷掉的图比吃进去的米还多;如果这种攻击方法死灰复燃,受害者可能就会是曾经的几百几千万倍了。。。 每当这时,差评君就会庆幸:在我们水群的同时,这个世界上还有一群人,为了能让我们安心水群 掉光了头发 默默奉献着。 资料、图片来源:
Project Zero,Fuzzing Image I/O 部分图片来自网络