我们进行了一些在三星Android手机上的安全性研究,这些研究证明了通过发送无用户交互的mms,可以从Fuzzing模糊测试到实现远程代码执行利用。
Google的Project Zero致力于挖掘0-day漏洞并破解各种产品,他们已经在三星的Android Skia图像处理库中发现一些堆溢出问题。
此漏洞由团队成员Mateusz Jurczyk发现的。此漏洞使恶意MMS能够触发远程代码执行,该漏洞是在图像处理中发生的,图像处理是在收到短信并且由Android的Skia库处理图像而没有用户交互时发生的。因此,接收到会触发导致图像处理中堆溢出的恶意映像,将导致远程执行代码。
0x01 Fuzzing
该漏洞是使用AFL发现的,该fuzzer已用于在多个大型软件项目中挖掘各种漏洞,例如 Apache,Perl,iOS Kernel,OpenBSD,VLC,clang,putty,firefox等等。
AFL由Michal Zalewski创建,他曾在Google的“Project Zero”团队工作,目前正在为社交网络平台Snapchat的公司服务。
模糊测试是将尽可能多的不同/随机类型的数据输入目标程序来发现漏洞,Google有一个OSS-Fuzz的自动模糊测试引擎,该引擎已在各种不同的软件中发现了16 000个漏洞:
https://bugs.chromium.org/p/oss-fuzz/issues/list?q=-status%3AWontFix%2CDuplicate%20-component%3AInfra&can=1 https://bugs.chromium.org/p/oss-fuzz/issues/list?q=-status%3AWontFix%2CDuplicate%20-component%3AInfra&can=1
想要获得更多有关模糊测试的信息,可以阅读:《Fuzzing for Software Security Testing and Quality Assurance》一书
该漏洞的编号为CVE-2020-8899,CVE链接:https://vulns.firosolutions.com/cve/CVE-2020-8899/
0x02 漏洞分析
作者挖掘的目标是Skia库,奇热这是Android(也供Google Chrome,Chrome OS,Mozilla Firefox和Firefox OS使用)的图形3d 库,用于加载和显示图像。
默认情况下,Skia支持以下图像格式:
· ICO
· BMP
· WBMP
· PNG
· JPEG
· GIF
· WEBP
· HEIF
· RAW
使用二进制分析工具IDA pro,可以看到三星添加了对以下格式的自定义支持。
· QM
· QG
· ASTC
· PIO
此漏洞针对最初由韩国软件供应商(Quramsoft)[ http://www.quramsoft.com ] 创建的QM和QG 这两种自定义添加格式。
使用运行Android 10 的最新Samsung Galaxy Note 10+设备,并截至2020年1月使用最新的安全补丁。通过从内置于apk 应用程序的Samsung中提取QM和QG图像。然后,作者使用qemu-aarch64 运行了一个仿真版本,从而能够在三星设备上本地运行可执行二进制文件的同时运行它们