sqlite3安全性研究

SQLite是嵌入式关系数据库管理系统,因资源占用低、处理速度快被广泛采用。但它存在诸多安全漏洞,如基于Memory Corruption的漏洞可致用户信息泄露、远程代码执行,扩展功能也易被黑客利用。且各版本均可能有未发现漏洞,会影响大量Android应用和设备。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SQLite安全现状

SQLite是遵守ACID的关系数据库管理系统,实现了大多数SQL标准。它使用动态的、弱类型的SQL语法,包含在一个相对小的C库中。作为一款嵌入式数据库,它因占用的资源非常低,数据处理速度快等优点被Andriod、iOS、WebKit等流行软件采用。

2017年Black大会上来自长亭科技的议题介绍了基于Memory Corruption的SQLite漏洞。基于该漏洞,可以攻击常见的使用了SQLite的浏览器,包括Safari、Chrome、Opera等。同时,由于大部分应用本地数据库的存储几乎都采用了SQLite实现,这些应用同样受到该漏洞的影响。基于该漏洞可以造成大范围的用户信息泄露,包括用户在浏览器中填写的用户名、密码、身份证、银行卡等敏感信息。另外,基于该漏洞可以实现远程代码执行,从而控制用户终端设备,危害是非常大的。

在这里插入图片描述

此外,SQLite也有许多影响严重的漏洞常常被爆出。SQLite从3.3.6提供了支持扩展的能力,通过sqlite_load_extension API(或者load_extension SQL语句)开发者可以在不改动SQLite源码的情况下,通过加载动态库来扩展SQLite的能力。然而该功能被黑客利用,通过SQL注入漏洞加载预制的符合SQLite扩展规范的动态库,从而实现了远程代码执行,危害非常严重。

当然,SQLite的漏洞并不仅限于这几个。随着版本更新,在功能升级的过程中,每一版本均会被爆出大量的不同级别的漏洞。每一版本均会在上一版本基础上修改一些bug和漏洞,并可能会添加新的功能。由于精力有限,无法保证对每一行代码都经过安全审核,新发布的版本中很可能存在未被发现的漏洞。在现有技术体系下,产品漏洞挖掘的过程将会是长期存在的状况。

在这里插入图片描述

在Android应用中,只要有本地存储数据的需求,一般均会采用SQLite数据库存储。因此,一旦SQLite被爆安全漏洞,将影响数以万计的Android应用。同时,在某一Android设备中,一般都会预装许多应用或日常使用中安装了许多需要的应用,而这些应用中总会有一款应用使用了SQLite数据库。因此,SQLite的安全漏洞几乎总会影响的该设备。

在这里插入图片描述

https://www.cvedetails.com/vulnerability-list/vendor_id-9237/Sqlite.html

https://github.com/mudongliang/LinuxFlaw/tree/master/CVE-2015-5895

参考:https://www.anquanke.com/post/id/87274

https://www.blackhat.com/docs/us-17/wednesday/us-17-Feng-Many-Birds-One-Stone-Exploiting-A-Single-SQLite-Vulnerability-Across-Multiple-Software.pdf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值