目录:
我们所有喜爱的应用程序都有很多可移动的部件。 当您在Twitter上滚动时间线或在YouTube上观看视频时,您可能不会想到这一点,但幕后花费的大量内容使所有这些应用按照预期的方式运行实际上非常不可思议。
某些应用程序(如LastPass,Tasker和Clipboard Actions)可以利用Android的辅助功能服务来实现更难以实现的功能,但Google最近宣布可以从Play商店中删除使用它们而不直接使残疾人受益的应用程序。
辅助功能服务是一个有趣的工具,为了更好地了解这里发生了什么,我们需要仔细看看。
什么是辅助功能服务?
辅助功能服务可在Android中找到,并允许残障人士更轻松地使用手机和平板电脑。 当您转到Android设备上的辅助功能设置页面时,您会看到Google默认启用的一系列控件。 这里的一些项目包括点击屏幕上的项目以让您的设备向您朗读,大声朗读所有动作的语音反馈,增加显示器上的项目大小等。
正如所料,这里的一般主题是让Android更容易和更简单地用于需要一些额外帮助的人。
除了默认情况下内置于Android中的服务之外,开发人员还可以使用自己的应用程序访问辅助功能服务,以创建利用它们的新功能。 在Android Developers网站上,Accessibility Services描述如下:
辅助功能服务仅应用于帮助残障用户使用Android设备和应用。 它们在后台运行,并在触发AccessibilityEvents时由系统接收回调。 这样的事件表示用户界面中的一些状态转换,例如,焦点已经改变,点击了按钮等。这样的服务可以可选地请求查询活动窗口的内容的能力。 开发可访问性服务需要扩展此类并实现其抽象方法。
为什么有些应用会使用它们
尽管可访问性服务的主要目标是允许开发人员创建针对残障人士的工具,但多年来我们已经看到许多应用程序已经利用这些资源来创建可以从技术上使每个人受益的扩展功能。
可访问性服务可以合法使用,但不幸的是,这并不总是会发生。
例如,LastPass的App Fill会在您所在的任何屏幕或其他应用程序之上显示叠加层,因此您可以轻松添加用户名和密码信息,而无需打开完整的LastPass应用程序。 剪贴板操作还可以访问辅助功能服务,这样您就可以更轻松地管理已复制的链接并对其进行操作,而无需进入完整的剪贴板操作应用程序。
这是开发人员已经使用了很长一段时间的方法,虽然它在技术上有效,但确实可以创建谷歌不喜欢看到的漏洞。
谷歌推理新的局限性
与合法使用的辅助功能服务一样,也可以恶意使用该服务。 使用辅助功能服务的应用程序比不使用辅助功能服务的应用程序打开更大的安全威胁,这会使设备面临攻击风险。
谷歌宣布决定限制可以使用无障碍服务的应用程序后不久,发现这一变化很可能与安全公司 TrendMicro 发现的“吐司覆盖”攻击有关。 从本质上讲,吐司覆盖攻击允许恶意应用程序显示图像和按钮,而不是真正显示的内容,以窃取个人信息或完全锁定用户的设备。
使用此Toast叠加攻击的应用程序已从Play商店中删除,而带有9月安全公告的修补程序可解决此漏洞,但这只是应用程序访问辅助功能服务可能会造成严重损害的一个示例。
未来是API
使用辅助功能服务以合法方式帮助残疾人的应用程序将继续存在,但对于那些不针对此特定人群的应用程序,Google提供了一个解决方案--API。 在LastPass的示例中,使用Android Oreo的新Autofill API允许LastPass提供与其自动填充功能类似的功能,而无需使用辅助功能服务。
API允许类似(通常更好)的体验,而不是hacky dev技巧可以产生的。这意味着用户需要运行较新版本的Android才能访问他们最喜欢的某些游戏的所有功能,但最终,您的功能仍然存在,同时还会降低可能的安全风险。
我们理解一些用户对此变化的烦恼,但从谷歌的角度来看,这是一个有意义的举动。 无障碍服务从来没有打算用于某些开发人员利用它们的大部分方式,这是谷歌需要打击的东西。
在一天结束时,一旦应用程序更新以支持Google的众多API,我们将获得类似的功能,以更好地防御攻击。 你还能要求什么呢?