产品资讯

增强 Android 安全性:阻止恶意软件窥探应用数据

阅读用时:2 分钟

安全性是 Android 的基础。我们与您携手合作,通过提供强大的安全工具和功能(例如 Credential ManagerFLAG_SECURE),确保平台安全并保护用户数据。每个 Android 版本都会带来性能和安全方面的增强功能,而借助 Android 16,您可以采取简单而有效的措施来增强应用的防御能力。观看我们的视频或继续阅读,详细了解我们针对无障碍 API 提供的增强保护功能。

 

 

只需一行代码即可保护您的应用免遭窥探

我们发现,作恶方有时会尝试利用无障碍功能 API 功能直接从屏幕上读取密码和财务详细信息等敏感信息,并通过注入触控来操纵用户设备。为了应对这一问题,Android 16 提供了一种强大的新防御机制,只需一行代码accessibilityDataSensitive

借助 accessibilityDataSensitive 标志,您可以明确将视图或可组合项标记为包含敏感数据。当您在应用中将此标志设置为 true 时,实际上是在阻止潜在的恶意应用访问您的敏感视图数据或对其执行互动操作。其运作方式如下:任何请求无障碍权限但未明确声明自己是合法无障碍工具 (isAccessibilityTool=true) 的应用都会被拒绝访问该视图。

这项简单但有效的变更有助于防止恶意软件窃取信息和执行未经授权的操作,同时不会影响用户对合法无障碍工具的使用体验。注意:如果应用不是无障碍工具,但请求无障碍权限并设置 isAccessibilityTool=true,Play 会拒绝该应用,并且 Google Play 保护机制会在用户设备上屏蔽该应用。

自动增强 setFilterTouchesWhenObscured 保护功能

我们已将这项新的 accessibilityDataSensitive 安全功能与现有的 setFilterTouchesWhenObscured 方法集成。

如果您已使用 setFilterTouchesWhenObscured(true) 来保护应用免遭点按劫持,则系统会自动将您的视图视为敏感的无障碍功能数据。通过使用 accessibilityDataSensitive 保护机制增强 setFilterTouchesWhenObscured 方法,我们可立即为所有人提供额外的防御层,而无需额外工作。

image.png

使用入门

我们建议您在包含敏感信息的任何界面上使用 setFilterTouchesWhenObscured,或者使用 accessibilityDataSensitive 标志,包括登录页面、付款流程以及显示个人或财务数据的任何视图。

适用于 Jetpack Compose

setFilterTouchesWhenObscuredaccessibilityDataSensitive

 

val composeView = LocalView.current DisposableEffect(Unit) { composeView.filterTouchesWhenObscured = true onDispose { composeView.filterTouchesWhenObscured = false } }

 

使用 semantics 修饰符将 sensitiveData 属性应用于可组合项。

BasicText { text = “Your password”,

            modifier = Modifier.semantics {

                sensitiveData = true }}

 

 

对于基于视图的应用

在 XML 布局中,将相关属性添加到敏感视图。

setFilterTouchesWhenObscuredaccessibilityDataSensitive

 

<TextView android:filterTouchesWhenObscured="true" />

 

 

<TextView android:accessibilityDataSensitive="true" />

 

或者,您也可以通过编程方式在 Java 或 Kotlin 中设置该属性:

setFilterTouchesWhenObscuredaccessibilityDataSensitive

 

myView.filterTouchesWhenObscured = true;

 

 

myView.isAccessibilityDataSensitive = true;

 

 

myView.setFilterTouchesWhenObscured(true)

 

 

myView.setAccessibilityDataSensitive(true);

 

如需详细了解 accessibilityDataSensitive 和 setFilterTouchesWhenObscured 标记,请参阅点按劫持指南

与开发者合作,保障用户安全

我们很早就开始与开发者合作,以确保此功能能够满足实际需求,并顺利集成到您的工作流程中。

image.png

我们一直以来都非常重视保护客户的敏感财务数据,因此需要构建自己的保护层来防范基于无障碍功能的恶意软件。Revolut 非常支持推出这项新的官方 Android API,因为这让我们能够逐步放弃自定义代码,转而采用稳健的单行平台防御代码。” 
- Vladimir Kozhevnikov,Revolut 的 Android 工程师

通过采用这些功能,您可以在保护用户免受基于恶意无障碍功能的攻击方面发挥至关重要的作用。我们建议所有开发者将这些功能集成到自己的应用中,以帮助保障用户安全。

让我们携手合作,为所有人打造更安全、更值得信赖的体验。

继续阅读