一个SQLite大bug,影响之大、范围之广,不容小觑。
今天,腾讯Blade安全团队发现的SQLite漏洞披露,他们将该漏洞称为“Magellan”,即麦哲伦。
利用麦哲伦漏洞,攻击者可以在用户电脑上远程运行恶意代码,还会导致程序内存泄露或程序崩溃。
而且由于SQLite被嵌入到数千款应用中,因此麦哲伦漏洞会影响许多软件。
范围涵盖物联网设备和桌面软件,甚至包括网络浏览器、安卓和iOS应用。
SQLite太大,现在责任也越大。
SQLite?
SQLite,全球最受欢迎的数据库之一。
在2017年发布的调查中,排名第三。
SQLite一方面可以被用于嵌入式的开发中,在一些内存很小的设备上面,它天生骄傲, 比MySQL、SQL Server之类的数据库管理软件不知高到哪里去。
SQLite占用内存小,但满足关系数据库的大部分特征,同时执行SQL语句的效率都是非常高。
另一方面,还能在后端使用来提高性能,在相同的情况下,一样的查询,它比MySQL什么的数据库快得多。
作为基础组件库的SQLite也作为扩展库被许多程序使用。例如PHP、Python、Java等等,攻击者可通过攻击代码,在一些进程的上下文中在本地或远程任意执行代码,或导致软件的拒绝服务。
并且SQLite作为嵌入式数据库,支持大多数SQL标准,实现了无服务器、零配置、事务性的SQL数据库引擎,在网页浏览器、操作系统、嵌入式系统中使用较为广泛。
具体什么样的产品会中招?
Chromium系浏览器中招
只要是支持SQLite和Web SQL API的浏览器,就有中招可能。
因为攻击者可以将破解代码转变成常规的SQL语法,便可在用户访问网页时对其加以利用。
火狐和Edge并不支持这种API,但基于Chromium的开源浏览器都支持这种API。
也就是说,谷歌Chrome、Vivaldi、Opera和Brave都会受到影响。
不光网络浏览器会遭受攻击,其他产品和应用也会受到影响。例如,Google Home就面临安全威胁。
发现麦哲伦漏洞的腾讯Blade团队报告称,他们利用这个漏洞成功黑进了Google Home.
有补丁但隐患仍在
目前,官方补丁已出。
腾讯Blade安全团队表示,他们曾在今年秋初向SQLite团队报告过麦哲伦漏洞,12月1日已经通过SQLite 3.26.0发送了补丁。
上周发布的谷歌Chrome 71,也已经修补该漏洞。Vivaldi和Brave等基于Chromium的浏览器,都采用最新版本的Chromium。
但Opera仍在运行较老版本的Chromium,因此仍会受到影响。
另外,虽然并不支持Web SQL,但火狐也会受到这个漏洞的影响,原因在于他们使用了可以在本地访问的SQLite数据库,因此本地攻击者也可以使用这个漏洞执行代码。
而且,由于升级所有桌面、移动或网页应用的底层数据库引擎,危风险不小,经常导致数据损坏,所以多数程序员都会尽可能向后推迟。
这样一来,即使SQLite团队发布了官方补丁,但很多应用仍会在今后几年面临威胁。
处置建议
腾讯Blade安全团队建议,使用Chromium系产品的团队,请尽快更新至官方稳定版本71.0.3578.80,如果使用产品中涉及SQLite,请更新到3.26.0.
另外,如暂时没有条件采用官方提供的修补方案,也有一些应急建议方案:
1)关闭SQLite中的fts3功能;
2)禁用WebSQL:编译时不编译third-party的sqlite组件。由于WebSQL没有任何规范,目前仅有Chrome、Safari支持。
最后,验证方法:重新编译后的内核应无法在控制台调用openDatabase函数。
【来源:量子位】