房产动态

当前位置/ 首页/ 房产门户/房产动态/ 正文

谷歌Chrome之类的浏览器中的自动填充实现非常简单

导读 自动填充是Android 8.0 Oreo 发行版中引入的最大,最受关注的新功能之一。许多不同的密码管理应用程序(例如LastPass)已经在其应用程序中...

自动填充是Android 8.0 Oreo 发行版中引入的最大,最受关注的新功能之一。许多不同的密码管理应用程序(例如LastPass)已经在其应用程序中实现了此新API。尽管可以证明它比以前使用Accessibility Services的Autofill实施有了很大的改进,但仍要考虑潜在的安全缺陷。上个月,在GitHub上发布了一份白皮书,记录了Android Oreo Autofill API的一个固有缺陷,该缺陷有可能导致密码管理器泄露您的个人数据,超出您的允许范围。我们将对马克·墨菲(Mark Murphy)撰写的白皮书(简称为CommonsWare)并于2017年8月8日发布在他的GitHub页面上。

Android Nougat(及更低版本)和Google Chrome之类的浏览器中的自动填充实现非常简单。通常,密码管理应用程序将使用Accessibility Services扫描屏幕内容以查找登录框,并根据发现的内容推荐自动填充数据。在工作的同时,可能会导致相当大的滞后。

在Android Oreo上,这有点不同,因为自动填充API现在已正式支持密码应用。第三方密码应用程序不再需要辅助功能服务,因为它们现在可以充当自动填充服务的角色,可以通过自动填充框架与应用进行通信。当用户将焦点放在窗口小部件上时,系统将打包有关该窗口小部件/表单的一些信息,并将其发送到自动填充应用程序。然后,应用程序返回相关的自动填充数据,例如密码,电子邮件,信用卡或任何其他类型的敏感数据。Android系统充当存储数据的应用程序与请求数据的应用程序之间的中介。

但是,恶意应用程序或恶意软件实际上可以利用自动填充功能自行获取更多数据。恶意活动可能要求使用不可见或隐藏的小部件输入其他自动填充数据。当用户同意填写一个可见的窗口小部件(例如登录表单或类似内容)时,不可见的窗口小部件还会获取其他数据,而您不会看到它。如果泄露的信息是您的密码,地址或信用卡详细信息,这将非常危险!

上面的屏幕截图展示了利用此安全漏洞的恶意测试应用程序。

Google对问题的解答

根据CommonsWare的说法,此安全问题尚未由Google发布公共解决方案。但是,我们确实知道Google已注意到此问题。CommonsWare指出,Google工程师承认该问题存在于私人问题跟踪报告中,但是要真正打补丁或推出修复程序将很困难(如果不是不可能的话)。

但这并不意味着Autofill绝对不安全,因为Google正在采取另一种方法来确保数据安全。该公司正在努力让自动填充服务最终解决该问题,因此,它正试图提高开发人员的意识,以改善其自动填充提供商并使其更安全。到底有什么建议?

首先,自动填充提供程序应该对数据进行分区。开发人员应该将存储在分区中的用户数据拆分,而不是将所有自动填充数据都保存在一个池中。例如,地址/电话分区,信用卡分区,密码/用户名分区等。自动填充服务应仅根据集中的窗口小部件一次交出一个分区的数据。这是Autofill应用程序上公开可用的页面之一,可以防止数据泄漏到不可见的小部件中。

据Google工程师说,密码管理器的开发人员还应该做其他一些事情。例如,自动填充提供程序应仅将数据移交给首先提供数据的特定应用程序。这应通过验证程序包名称和应用程序的公共签名来完成,以便即使修改的APK也无法访问它。另一件事是,自动填充应用程序在实际提供数据之前需要进行身份验证,而该身份验证活动会通知用户将向请求数据的应用程序提供什么样的数据。该建议实际上有很多错误,最重要的是,这些建议实际上并不是Google强制执行的。

请记住,上述许多建议均来自CommonsWare的私人问题跟踪报告,而不是来自Google的任何官方文档页面。有关使用Autofill API的应用程序如何保护自己免受此类攻击的进一步的技术细分,我们强烈建议您阅读CommonsWare的完整白皮书。

哪些应用程序可以抵御此漏洞?

我们已就此漏洞与1Password,Enpass和LastPass的开发人员联系,这3个应用程序背后的安全团队声称它们是 安全的,尽管我们尚未验证这些说法。

免责声明:本文由用户上传,如有侵权请联系删除!