安全会议def con 2019的研究人员展示了利用常规数据库搜索产生恶意结果的方法,并使用苹果的标准ios contacts应用程序来证明这一点。安全公司check point已经证明了可以利用的行业标准sqlite数据库格式的漏洞。在def con 2019上,该公司展示了该技术用于操纵ios contacts应用程序。在这些情况下搜索“联系人”应用程序足以使设备运行恶意代码。
“sqlite是世界上分布最广的数据库引擎,”公司在一份声明中表示。 “它适用于所有操作系统,台式机和手机。windows10,macos,ios,chrome,safari,firefox和android上都有非常大数量的sqlite用户。”“简而言之,我们可以控制任何查询sqlite控制数据库的人。”
当您在应用程序中搜索联系人或查找信息时,您实际上正在搜索数据库,并且这种数据库通常就是sqlite。在一份4000字的报告中,该公司的研究人员成功地伪造了应用程序内搜索的结果,它依赖于一个已知的漏洞,奇怪的是,该漏洞在发现四年后尚未修复。“因为这个功能只被认为是易受攻击的,而非危急漏洞,因此它没有收到很大的关注。但是,sqlite的用法如此多样,以至于我们实际上仍然可以在许多情况下触发它。”
换句话说,该错误被认为是不重要的,因为它被认为只能由访问数据库的未知应用程序触发,而在像ios这样的封闭系统中,没有这种未知的应用程序。然而,check point的研究人员随后设法让一个受信任的应用程序发送代码来触发此错误并利用它。
他们替换了联系人应用程序的特定组件,发现虽然应用程序和任何可执行代码必须经过苹果的启动检查,但sqlite数据库不可执行。
“持续性[在重启后将代码保留在设备上]很难在ios上实现,”他们说,“因为所有可执行文件都必须作为苹果安全启动的一部分进行签名。幸运的是,sqlite数据库没有签名。”
不过,他们必须能够访问未锁定的设备才能为部分联系人安装此替代品。在那之后,他们能够在搜索联系人数据库时选择他们想要发生的事情。出于演示的目的,他们只是让应用程序崩溃。研究人员表示他们可以制作应用程序来窃取密码。
“我们确定,简单地查询数据库可能不如您预期的那么安全,”他们说。 “我们证明了sqlite中的内存损坏问题现在可以被利用了。”“我们的研究和方法都已经向苹果公司负责任地披露。”