【天问】libwebp满分漏洞?天问助力影响分析!
/ / 点击 / 阅读耗时 18 分钟近日,谷歌和苹果相继针对自身产品发布漏洞修复建议,这些漏洞被指出是由libwebp组件的基础漏洞引发的。由于该漏洞使用范围广,涉及软件众多,目前仍存在大量尚未修复的软件。奇安信技术研究院“天问”软件供应链安全监测平台通过对历史数据进行测绘,发现大量的桌面软件、安卓应用、设备固件广泛使用了libwebp的组件,均为该满分漏洞的潜在受害者。
1. 背景介绍
2023年9月25日,谷歌为在安全社区热议的libwebp申请了独立漏洞编号CVE-2023-5129,为该组件是否存在漏洞的讨论画上了句号[1]。目前该漏洞由于和CVE-2023-4863重复,CVE-2023-5129编号已被撤回。
事件的起因是发布漏洞的两周前,苹果和公民实验室首次披露了一个iOS中的关键漏洞(CVE-2023-41064)[2]。他们表示该漏洞源于ImageIO中的缓冲区溢出漏洞,且正在被积极利用,并用于安装世界上已知的最先进的间谍软件“飞马”。四天后,谷歌也披露了一个包含在Chrome浏览器中的关键漏洞(CVE-2023-4863),并表示该漏洞源自WebP格式处理组件的堆缓冲区溢出,同时警告说这个漏洞已经出现在野利用。
基于两个漏洞的相似性,很多研究人员怀疑苹果和谷歌的漏洞源自相同的基础漏洞,并且该漏洞很可能位于处理WebP图像的libwebp库中。由于三方(苹果、谷歌和公民实验室)没有相互协调、准确报告漏洞的共同来源,而是选择使用单独的CVE漏洞编号,导致漏洞可能在大量应用程序中继续存在。这个漏洞产生的威胁将持续存在直到这些程序也打上了libwebp补丁。
libwebp[3]是一种开源的图像编解码库,用于处理 WebP 图像格式。WebP 是一种现代的图像格式,由 Google 开发,旨在提供高质量的图像压缩,同时保持较小的文件大小。libwebp 几乎被整合进各种应用、操作系统及其他渲染 Webp 图像的代码库当中,并且多数软件目前尚未更新该组件的新版本,用户也未知使用的软件是否包含这个组件。
针对这种情况,奇安信技术研究院“天问”软件供应链安全监测平台提供软件成分分析功能,能够从软件中提取可能使用的组件和版本并给出安全建议。
2. 天问的能力
奇安信技术研究院“天问”软件供应链安全监测平台基于强大的知识库储备,拥有软件供应链影响范围的测绘能力,能够自主进行软件成分分析并生成软件影响图谱。天问平台具备三大能力:软件组成成分分析能力、全网软件空间测绘能力和安全事件监测预警能力。用户可通过浏览器访问天问平台,将待测试软件直接上传天问进行分析。天问支持跨CPU指令集、支持跨操作系统平台检测,目前支持十余种软件安装包格式,二十余种打包格式和十余种固件格式的的分析,还支持对Docker等容器镜像的分析。
天问检测的基本原理是从样本中进行文件解剖,提取出各种各样的原始文件,并且对所有的原始文件进行细粒度、高精度的分析,从而关联到这些文件所对应的组件,然后根据我们庞大的漏洞数据库,来对这些组件的漏洞信息进行一个关联,最终得到了分析对象的潜在漏洞列表。
基于上述强大的样本分析能力,天问对海量的样本进行了细粒度的分析,形成了独有的软件空间测绘数据库。目前,该数据库已经有超过6,000万个节点,它们之间的关联关系已经超过了4亿条。
在libwebp漏洞爆出的第一时刻,我们基于“天问”平台对libwebp组件的影响进行了详尽的分析,共从安卓安装包、固件、历史分析软件和软件源四个部分分析了该组件的影响范围以及可能带来的威胁。
2.1 安卓安装包(APK)
安卓安装包中检测该组件的概率很高,我们从总共87,855个APK中检出了30,556个APK使用了libwebp组件,检出率为34.78%。
在这些检测出的APK中,它们通过直接或者间接使用so的方式引用了libwebp组件,我们总共检测出这类so文件共68,252个。这其中libwebp的主要使用方法为libstatic-webp.so和libflutter.so文件,这些so文件引用了libwebp组件,从而导致APK文件间接引用了libwebp组件,为APK带来了安全风险。而直接使用libwebp.so仅为1,201次,远不如间接使用的次数多,这也从侧面反映了该漏洞的修复难度大,因为间接引用导致的漏洞需要了解软件的完全依赖情况才好修复。
前十名使用libwebp组件的文件统计如下图:
我们在这些APK文件中发现多款知名的APP,虽然这些APP并不一定是它们的最新版本,但这些APP在我们的初步检测中曾存在使用过libwebp的情况。我们发现有美团、拼多多、懂车帝、小红书、微博、网易严选、抖音、有道云笔记、国美、西瓜视频等许多知名应用,使用这些软件的用户还是需要及时更新最新版本以免受到漏洞影响。
2.2 固件
我们对收集到的路由器、摄像头、智能家居设备等的固件进行了分析,从156,787个固件文件中检出了2,606个固件文件使用了libwebp组件,检出率为1.66%。
在这些固件中,依然存在如APK文件中一样的风险,即存在间接引用libwebp组件的问题。我们通过分析固件中的引用libwebp组件的文件时,发现名为system.new.dat的文件在固件中使用的次数最多,达1,308次,其中主要出现在小米手机的固件中。直接使用libwebp.so文件为118次,与间接引用也有较大的差距,显示出和APK一样难修复的特点。
前十名使用libwebp组件的文件统计如下图:
我们也从这些固件中发现了知名的厂商,其中不乏小米手机、RICOH、海康威视、优科、山石网科和pelco等,涉及产品小米mobile、山石云池、RUCKUS无线路由器和PELCO 视频管理系统等知名产品。同样需要强调的是我们仅是初步分析了它们的以往固件,并不一定是最新版本,使用产品的用户还是需要及时更新产商提供的最新的固件。
2.3 历史分析软件
我们的历史分析软件来自天问的历史分析样本,大约214万,主要是PE文件和压缩包等。在这些原始样本中总共检测到了7,078个包含libwebp组件的样本,其中4,764个PE文件、949个ZIP、6个RAR以及一些其他未知的文件类型,检出率为0.33%。可以看到即使在windows平台的可执行文件中我们依然能查找出使用libwebp组件的软件,并且使用的软件达数千个。
2.4 软件源
我们分析的软件源主要是麒麟源,它作为麒麟操作系统的官方软件源,拥有大量国产软件。我们通过分析该软件源中的45,341个软件,发现了139个含有libwebp的软件,检出率为0.31%,其中有一些常见的应用,同样需要说明的是这些软件并不一定是最新版本。比如麒麟操作系统中的wine,它允许在该系统运行windows软件。还有WeChat软件,通过wine在麒麟操作系统中运行windows版,然而WeChat中部分EXE文件和DLL文件引用了libwebp组件。还有更多的麒麟源中的软件还在分析中,我们后续也将会发布相应的分析结果。
3. 处置建议
目前libwebp已发布了修复漏洞之后的版本1.3.2,受影响用户可以更新到该版本以及之后的版本。同时,google公司的产品如Chrome、使用Chrome内核的产品和其他使用libwebp的产品也已经陆续更新了新的修复版本,建议使用这些软件的用户尽快自查并更新新版本。
4. 结语
这些数据仅是我们初步分析的结果,并没有覆盖全部的软件,也没有对这些可疑软件做进一步的验证。但通过这些数据,我们认为该漏洞的影响范围巨大,特别是安卓平台,并且由于修复的滞后以及间接引用导致的修复困难,该漏洞将在接下来较长时间内持续产生威胁。奇安信技术研究院“天问”软件供应链安全监测平台将会持续对该组件进行观测,后续还会发布更多的关于该组件影响的数据和报告。