从霍师傅的推上看到了近日安全界的「瓜」:Signal 对 Cellebrite 的反击。
Cellebrite 是一家以色列公司,主要产品是供各国警察和情报机构使用的移动终端数据采集、分析和取证设备,简单来说,执法人员在现场调查取证时,拿到嫌疑对象的手机,使用 Cellebrite 提供的设备,通过线缆插入手机,采集数据,导入到电脑中的软件进行分析,获取需要的信息。
从 Cellebrite 官网看,他们的产品和解决方案琳琅满目,其中核心的产品是 UFED 和 Physical Analyzer:
UFED:主要用于 Android、iOS 等移动设备的 Data Extractions,号称可以破解各类设备的图案、PIN、密码等锁屏保护,备份和导出所有设备中的系统和各应用数据,更甚之,还可以 clone SIM 卡和 Micro SD 存储卡。形态上除了安装在桌面电脑的软件之外,还提供了触屏和 Ruggedized 的便携采集终端,装在一个 Portable Kit 里,布满了各种线缆和转接口,方便执法人员随身携带。
Physical Analyzer:如果说 UFED 是 Data Extraction 设备,Physical Analyzer 就是 Data Examination 软件,将各种采集设备获取的数据导入后进行解密、解码、深度分析等,还原出用户的使用轨迹、行为日志和各种可能的关键数字证据,支持恢复已被删除的数据,支持超过 40 种语言的数据翻译,支持采集和审查 App 与云端服务交互的数据(在 UFED Cloud 的配合下)等等。
总而言之,看上去非常专业,用 Signal 略带讽刺的口吻形容,都是提供给独裁国家和政权监视和迫害世界各地的新闻工作者和活动家的「灰色」工具,还美其名曰「数字情报」。
They exist within the grey – where enterprise branding joins together with the larcenous to be called “digital intelligence.” Their customer list has included authoritarian regimes in Belarus, Russia, Venezuela, and China; death squads in Bangladesh; military juntas in Myanmar; and those seeking to abuse and oppress in Turkey, UAE, and elsewhere.
Their products have often been linked to the persecution of imprisoned journalists and activists around the world.
原本双方相安无事,一切的恩怨都起源于去年年底。
2020 年 11 月 30 日,Cellebrite 在官网博客发文,声称他们在 UFED 中增强了对 IM 聊天 App 的数据采集能力,从博文的介绍来看,是在原先备份和导出手机里的系统和 App 数据的基础上,增加了一个自动截屏功能:UFED 可以自动启动 IM App,分析 App 中各个页面的用途,对需要采集的页面进行截屏,并将截屏数据导出。这个功能在使用上包括两种场景:
By App:对于已经适配和支持的 IM App,UFED 清楚 App 中每个页面的功能和用途,也了解如何在页面间跳转,因此 UFED 可以全自动的实现关键页面的截屏采集,用户只需要选中需要采集的 App 即可。这里的原理类似移动 App 的自动化测试,通过对 App 界面布局和控件的分析,将规则逻辑编码到测试脚本中,执行测试用例时,按照预设的规则识别界面,触发各个页面的跳转,根据页面反馈判断测试结果是否符合预期。
Generic Mode:对于还未适配和支持的 App,由于 UFED 不清楚 App 中各个页面的用途和含义,因此需要用户协助进行采集,用户可以将需要采集的 App 打开,翻看各个页面,在这个过程中,UFED 就会截屏记录用户特意浏览过的页面内容,相当于在用户的指引下完成需要的数据采集。
特别的,Cellebrite 的博文中提到了最近的新版本(7.40)增加了对 WhatsApp 和 Signal App 的支持(当然其他一些知名 App 也在支持列表中,如 Twitter,Telegram,Instagram,TikTok, SnapChat,Wicker,Skype 等等)。
Signal 以靠谱的端到端加密方案保护用户隐私和反政府审查著称,这些年来不断有大咖和 KOL 背书,声名鹊起。去年那阵子正值美国总统大选,Signal 正是如日中天,任何与之有关的反面消息都是一个「大新闻」,Cellebrite 的这篇博文原本并不起眼,但被嗅觉灵敏的各路媒体发掘并添油加醋的散播了开来,甚至连 BBC 都来凑热闹,说什么 Signal: Cellebrite claimed to have 'cracked' chat app's encryption,这下子惹怒了 Signal。
2020 年 12 月 23 日,Signal 创始人和 CEO Moxie Marlinspike(moxie0)在官方博客发文,对 BBC 的这篇报道及其背后的 Cellebrite 博文进行反驳,他的几个观点:
先陈述事实:Cellebrite 并没有破解 Signal 的加密。这只是 BBC 等媒体添油加醋的标题党伎俩,甚至 Cellebrite 的原始博文中也没有提到「cracked app's encryption」这一点。
Cellebrite 的方案只是一种类似自动化测试的自动截屏,前提是要用设备插上用户的手机,还得确保屏幕解锁,这些都是非常粗浅的技术手段,根本不是什么高深的「魔法」。
Cellebrite 的博文在事情发酵后自行删除了,并不是对这些高深的技术被意外泄漏的补救,而是担心这些很 Low 的技术拿出来发表和被人宣扬,反而显得 Cellebrite 团队不太靠谱,让人怀疑他们的技术实力和产品专业性。
Cellebrite accidentally reveals that their technical abilities are as bankrupt as their function in the world.
如果说这是一种自卫反击,那么四个月后的今天就是妥妥的打脸了。
2021 年 4 月 21 日,Moxie 继续在 Signal 官方博客发文:Exploiting vulnerabilities in Cellebrite UFED and Physical Analyzer from an app's perspective,从防守反击转变为主动进攻。
首先,给 Cellebrite 扣帽子,就是前面引用的那一段讽刺口吻的关于 Cellebrite 业务和客户的介绍。然后,接着前一篇博文的技术分析,再一次「嘲讽」了 Cellebrite UFED、Physical Analyzer 等产品的技术实现,并且提出了本文的主旨:从软件的角度分析 Cellebrite 产品自身的安全性。
在给出技术分析的过程和结论之前,先插入了一段西方人的幽默段子:Moxie 说他在外面逛街的时候,碰巧遇到一辆卡车上掉落下来一个包裹,居然恰好是 Cellebrite 的一套便携式工具套装。从中国人的角度看,可能真的以为这是一场意外的巧合,但其实这种「fell off a truck」说法是对一种不方便披露其真实来历的物品的调侃,和国内经常听说的「被朝阳人民举报」一样异曲同工。
言归正传,Moxie 爆出了 Cellebrite UFED 和 Physical Analyzer 产品的几个大瓜:
安全漏洞:
由于 Cellebrite UFED 的工作原理是通过线缆连接手机后,通过 adb 或 iTunes 协议获取手机内的数据,然后对数据进行分析识别,这些数据都是手机系统和各个被扫描的 App 产生的,对 Cellebrite 来说这并不是「可信」和「安全」的原始数据,理论上存在通过恶意构造特殊数据来注入执行代码的可能(类似 XSS 脚本攻击或 SQL 注入攻击)。例如构造一个特殊的文件,伪装成 App 产生的数据文件,被 Cellebrite UFED 采集后扫描分析,这个特殊文件中嵌入了一段执行代码,并且利用 UFED 软件的漏洞,在扫描文件的时候触发了对这一段嵌入代码的执行。Signal 团队进行一番研究,果然发现了这样的漏洞,从他们 show 出来的攻击视频看,UFED 软件扫描到他们特制的文件后,触发了内嵌代码的执行,这段代码调用了 Windows 原生的 MessageBox API 弹了个窗,这只是一个 Demo,但利用这个漏洞,实际上可以执行任意代码,实现对 UFED 软件本身、软件采集分析的数据、甚至使用 UFED 软件的电脑系统的攻击。
版权问题
Signal 团队分析 UFED 软件安装包,发现其中带了两个类似 AppleApplicationsSupport64.msi 的子安装包,从代码签名看就是 Apple 官方 iTunes Windows 版本内携带的、用于实现与 iOS 移动设备通信的组件(Apple Mobile Device Support),UFED 软件安装时会将这两个子安装包一起安装,并且在 UFED 软件运行时,通过 Process Explorer 分析,发现它的确会加载 Apple Mobile Device Support 中的 DLL,来实现与 iOS 设备的通信和数据传输。这里的问题在于,Cellebrite 是否从 Apple 获取了重新分发和使用这些 iTunes 组件的授权?这对于 Cellebrite 和它的用户可能都存在版权问题和法律风险。
除了这两点外,还有一些随处可见的软件「坏味道」,例如 UFED Windows 版本中包含的 FFmpeg 库 DLL 还是 2012 年的版本,这 9 年多来 FFmpeg 官方版本更新解决的 100 多个安全漏洞想必都还留存在 UFED 中,这都是一些在安全领域不专业的体现。
最后,Moxie 向 Cellebrite 提议,如果他们愿意把 UFED 和 Physical Analyzer 在采集和扫描分析各种手机设备和 App 时利用的漏洞、发现的数据或隐私泄密问题提供给相关厂商时,他们会考虑把上述安全漏洞分享给 Cellebrite,这是一种安全的等价交换。
We are of course willing to responsibly disclose the specific vulnerabilities we know about to Cellebrite if they do the same for all the vulnerabilities they use in their physical extraction and other services to their respective vendors, now and in the future.
最后的最后,又是一段戏谑的「警告」,说 Signal 即将推出的新 App 版本,未来会不定时、小范围的获取一些特殊文件,这些文件与 Signal App 本身无关,也没有任何交互,那么它们是用来干嘛的呢?(害怕 …
