史上最复杂Zero-click攻击:Pegasus如何靠GIF文件黑进iPhone?

以色列网络情报公司NSO Group旗下间谍软件“飞马”(Pegasus)先前遭苹果控告,涉嫌破解iPhone、读取数据和用户消息,这次Google安全团队Project Zero研究人员深入研究飞马后,惊呼“这是史上技术最复杂的漏洞之一”,竟是从“GIF文件”引爆一连串安全危机。

飞马仿佛鬼入侵,没点击就被黑

NSO Group利用漏洞ForcedEntry入侵受害者设备,安装最新版“飞马”,或通过创建Apple ID发动“免点击”(Zero-click)攻击,将恶意资料送到受害者设备,即使没有点击任何恶意连接,也能在对方不知情下安装“飞马”软件。

同时,飞马能让黑客远程操作麦克风、镜头,搜集用户消息、电子邮箱和消息等敏感信息。

Google安全团队Project Zero研究人员Ian Beer和Samuel Gross表示,“我们没见过这种外部利用的漏洞,从如此有限的起点创建同等能力,不需要与攻击者服务器交互,也没有加载JavaScript或类似脚本引擎等。安全界许多人认为一次性远程代码执行,无法创建可靠的单次攻击漏洞,但事实证明不但可行,还能有效对付人。”

飞马如何入侵iPhone?

先要知道的是,飞马入侵iPhone的初始入口是iMessage,所以只要取得目标对象电话号码或Apple ID用户名就能入侵。

iMessage可接收gif图片文件,攻击者做一个“假GIF”(实际上是PDF),由于文件扩展名是GIF,因此让苹果CoreGraphics PDF设计会自动解析假GIF档。

然而CoreGraphics PDF解析器不会注意到文件扩展名,而是从内容分析,因此这文件就进入PDF的“成像引擎”(rendering engine)。

据Google Project Zero博客,PDF有种很古老的压缩格式叫“JBIG2”,是种黑白图像压缩算法,可将扫描进去的bitmap压缩到很小,主要是1990年代后期XEROX WorkCenter扫描仪使用。如果用过这种旧款扫描机扫描PDF,其中PDF文件就可能含JBIG2。

一般来说,文件压缩后需搭建PDF,为了让打印机显示更方便,会有很多压缩和节省流量方法,如是英文或德文等语言编写的文本,会采用重复字母为参考字形(reference glyph),将完整字母变形或替换成稍微看得懂的字形,虽然有变动,但不影响阅读,由于不会保留所有资料,因此存储资料量明显减少。

压缩格式竟然建出“迷你计算机”

黑客的PDF就含JBIG2,之后需要解压缩程序,苹果CoreGraphics PDF解析器似乎采用苹果专用程序代码,但JBIG2执行来自Xpdf,源码是免费开源。

但JBIG2主要为了压缩、解压缩设计,没有基本编程(scripting)能力,连基本运算都很困难,所以到底该怎么让JBIG2可以运行?

攻击者发现JBIG2虽没有编程功能,不过一旦跟漏洞结合,就有能力模拟在任意内存运行的电路,意即通过JBIG2指令执行自定义脚本,做出如AND、OR、XOR、XNOR的逻辑运算。

因此,攻击者使用7万条JBIG2指令和逻辑门构建出迷你计算机架构,有托管器、加法器和比较器,可做基本运算,虽不像Javascript那么快,但运行原里相同。

Project Zero博客指出,有了这台迷你计算机,就可通过JBIG2 bootstrap进入“沙盒”(SandBox)模拟计算机环境,之后通过模拟环境试跑真正的攻击程序。

研究人员直言,“整件攻击在这非常奇怪、模拟的环境执行。非常不可思议,也非常可怕。”

苹果开吉、美国列入黑名单

由于这行为太恶劣,为防止更多滥用行为及损害用户,造成安全问题,苹果11月23日控告NSO Group,并发出永久禁令,禁止其使用任何苹果软件、服务或设备,还要求超过75,000美元赔偿金。美国当局也将该公司列入出口管制黑名单。

飞马今年7月遭指控入侵和窃听世界各地记者、维权人士和企业高层的智慧手机,影响遍及多平台。后来监控名单流出,超过5万笔记本话号码,含189名记者、85位维权人士、65名企业高层、600多位政治人物和外交情报官员,甚至还有法国总统马克龙等国家元首,震惊全球。

(首图来源:科技新报)