安全研究人员发现了一种新型攻击手段,并将其命名为AutoSpill,该攻击能在安卓设备上的自动填充操作过程中窃取账户凭证。
在Black Hat Europe大会的演讲中,来自海得拉巴国际信息技术学院(IIIT)的研究人员表示,他们发现,即使没有JavaScript注入,大多数安卓密码管理器也容易受到AutoSpill的攻击。如果启用了JavaScript注入,所有安卓上的密码管理器都会对AutoSpill攻击敞开大门。但在分析之后发现,AutoSpill攻击具备较为严苛的实施条件。
众所周知,安卓应用程序经常使用WebView控件来渲染网页内容,比如应用内的登录页面,而不是将用户重定向到主浏览器,因为后者在小屏幕设备上会是一种更加繁琐的体验。
而安卓上的密码管理器则是利用平台的WebView框架,在应用加载如苹果、脸书、微软或谷歌等服务的登录页面时,自动输入用户的账户凭证。
研究人员表示,即使没有JavaScript注入,也有可能利用这一过程中的弱点来截获调用应用中自动填充的凭证。如果启用了JavaScript注入,研究人员说,所有安卓上的密码管理器都会对AutoSpill攻击敞开大门。
具体来说,AutoSpill攻击源于安卓未能强制执行,或明确定义对自动填充数据进行安全处理的责任,这可能导致数据泄露或被宿主应用捕获。
在Black Hat Europe大会演讲现场,安全研究人员分享了一个攻击场景:一个恶意应用提供的登录表单可能会在不留下任何泄露迹象的情况下捕获用户的密码。
安全研究人员针对安卓10、11和12版本上的一系列密码管理器进行了AutoSpill网络攻击测试,发现1Password 7.9.4、LastPass 5.11.0.9519、Enpass 6.8.2.666、Keeper 16.4.3.1048以及Keepass2Android 1.09c-r0等主流密码管理器,由于使用了安卓的自动填充框架,十分容易遭受攻击。
Google Smart Lock 13.30.8.26和DashLane 6.2221.3采取了不同的技术手段来进行自动填充过程,因此得以幸免。除非攻击者使用了JavaScript注入,否则它们不会向宿主应用泄露敏感数据。
研究人员将他们的发现通报给受影响的软件供应商和安卓的安全团队,并分享了解决问题的建议。
许多人已经习惯了使用自动填充功能来快速输入他们的密码。通过安装在用户设备上的恶意应用程序,黑客可以让用户在无意中自动填充他们的密码信息。
针对AutoSpill攻击,1Password发言人表示,在1Password保护用户最重要的数据是我们的首要任务。目前1Password已经确定了AutoSpill的修复方案,并且目前正在处理中。更新后,原生字段用于仅意图用于安卓WebView的凭证,以此提高防护能力。
主流密码管理器LastPass发言人表示,在2022年已经通过漏洞赏金计划合作伙伴Bugcrowd,就该问题进行了分析,经过综合评定为一个低风险的漏洞。核心原因是,想要发起AutoSpill攻击,那么必须要在设备上安装恶意软件/应用,这也就意味着目标设备已经完全被破坏,或能够在目标设备上执行代码。
Keeper Security的首席技术官兼联合创始人Craig Lurey表示,已收到相关漏洞报告演示,分析之后发现,安全研究人员首先安装了一个恶意应用程序,才能顺利发起AutoSpill攻击。Keeper在保护用户不会自动将凭证填充到未经用户明确授权的不受信任应用程序或网站上方面,已经有了安全防护措施。在安卓平台上,当尝试将凭证自动填充到安卓应用程序或网站时,Keeper会提示用户。在填充任何信息之前,用户被要求确认应用程序与Keeper密码记录的关联。
谷歌发言人表示,WebView被安卓开发者以多种方式使用,包括在他们的应用中托管自己服务的登录页面,这个问题与密码管理器在与WebView交互时如何利用自动填充APIs有关。
建议第三方密码管理器对密码输入的位置保持敏感,并且建议所有密码管理器实施WebView的最佳实践。
例如,当在安卓上使用谷歌密码管理器进行自动填充时,如果用户正在为谷歌认为可能不属于托管应用拥有的域名输入密码,用户会收到警告,并且密码只会填写在适当的字段中。谷歌通过WebView实现了服务器端的登录保护。
参考来源:https://www.bleepingcomputer.com/news/security/autospill-attack-steals-credentials-from-android-password-managers/