[控场AI]
· 7 分钟阅读· 3,916 字

智能体时代的Android应用安全:技能、审计与运行时防护

智能体时代的Android应用安全:技能、审计与运行时防护

Google Android安全团队推出技能与API组合,将智能体安全审计从探索式猜测转为可复现流程。

Google Android安全团队针对智能体在安全审计中的低效问题,提出了结构化“技能”与运行时API的解决方案。技能为智能体注入安全研究员的检查流程,使其输出包含真实行号和可应用diff的评审,而非海量警告。Play Policy技能可预检政策合规,Play Integrity API在运行时验证应用、设备与账号真实性。此外,SMS Retriever、SMS User Consent和Location Button等API以低摩擦方式替代宽泛权限,Advanced Protection Mode则为高风险用户提供增强保护。整体思路是将安全判断从自由探索转变为有指引、可复现的流程。

随着AI智能体开始介入应用开发流程,安全审计的效率问题也变得突出。Google Android安全团队在近期分享中给出了他们的解法:不是让智能体更"聪明"地猜,而是通过结构化的"技能"和运行时API,把安全判断从探索式推理转变成可复现的流程。

智能体审计的三个盲区

据Google Android安全团队披露,过去一年他们在Android漏洞赏金计划上支付了超过两百万美元的奖励,移动端相关奖励超过二十万美元。这笔投入说明漏洞依然真实存在,而开发者通常不是安全研究员——他们是快速交付功能的产品工程师。

当CI在周四下午四点半变红,唯一报错是一个未设置export标志的广播接收器,开发者的本能是把警告丢给智能体工具求一个修复。但缺乏项目上下文的智能体有三个结构性盲区:它可能不知道应用由动态功能模块构成,而这些模块是APK bundle的一部分、并非独立交付产物;它无法追踪从Kotlin UI层穿过KMP共享逻辑直到原生C++ JNI调用的完整数据流,只能看到单一层次;它也不了解你的minSdk和构建风味差异。

智能体审计发现六项问题,但只有一项是真正的原始bug

团队做过一个实验:让智能体对一个应用做安全审计,返回了六条发现。每一条都不是错的,都站得住脚,但只有一条是开发者一开始遇到的bug,其余混杂了最佳实践建议、值得进一步调查的线索、推测性结论,以及可能根本不适用的问题。当这种模式扩展到真实代码库和每一个pull request,开发者要么倾向于压制lint警告以便合并代码,要么干脆漏掉真正的漏洞。工具并不粗心,它很仔细,但仔细不等于有用。

成本问题同样明显。让智能体审计所有export组件,在多模块应用里是一项庞大的任务。没有Android专属指引,智能体只能暴力穷举:读取根本没有导出任何内容的模块、从第一性原理重新推导什么让集成点可被利用、追踪永远无法到达的路径。你付费买的是探索,不是分析。

动态功能模块与APK bundle:Android App Bundle(AAB)是Google Play推荐的发布格式,它允许将应用拆分为多个模块,包括基础模块和动态功能模块。动态功能模块不会随基础APK一起安装,而是在用户需要时按需下载。因此,在审计时,智能体若不了解模块化结构,可能会错误地将动态功能模块视为独立交付产物,或忽略其代码路径,导致漏报或误报。

KMP与JNI调用:Kotlin Multiplatform(KMP)允许在多个平台间共享业务逻辑,而JNI(Java Native Interface)则是Java/Kotlin与原生C++代码交互的桥梁。安全审计需要追踪数据从Kotlin UI层经过KMP共享逻辑,最终通过JNI调用原生代码的完整路径。智能体若仅分析单一层次(如仅Java层),将无法发现跨层的数据泄露或注入风险。

用"技能"给智能体补上策略

技能(skill)的作用就是提供缺失的策略。Android安全技能给智能体提供符合当前安全指引的指令,按照安全研究员实际会遵循的步骤序列执行,智能体不再重新发现规则,因为规则已经由技能提供。

目前发布了两项安全技能。Intent安全技能针对的是"其他应用能让你的应用做什么"——你的应用持有权限和登录会话,其他应用没有,所以每一个导出组件、每一个你发出的pending intent都可能是别人走进来的通道。权限技能则弥合"声明了权限"与"真正执行了权限"之间的差距:帮助编写恰当的权限检查,识别带通配符路径的provider是否把整个数据库而非单个目录暴露出去,以及捕捉权限过度申请,比如本可以用照片选择器却申请了宽泛访问。

Intent安全技能聚焦于其他应用能让你的应用做什么

使用方式很简单:配合Android CLI,直接要求"审计intent安全",无需配置、无需调规则。输出不再是满屏警告,而是一份评审:这里是有问题的代码,这是对你应用真正重要的部分,这是修复方案。技能读取构建配置、发现minSdk为26,于是选择context compact让修复能够编译,并给出真实的代码路径、真实的行号和可应用的diff。

Play政策合规的预检

另一类问题是政策合规。以新应用上架Play Store为例,填写数据安全表单是发布流程中的重要一步。Play Policy技能会对代码库做静态分析;如果应用已上架,还会把静态分析结果与Play Store声明做交叉比对,从而在提交之前而非之后发现潜在的政策问题,加快提交流程。工作流与其他技能一致:导入技能,然后要求"审计此应用的Google Play政策"。

Play Policy技能将静态分析与商店声明交叉比对

数据安全表单:Google Play要求开发者填写数据安全表单,详细说明应用收集、共享哪些用户数据以及如何处理。表单内容必须与应用的实际上传行为一致,否则可能导致应用下架。Play Policy技能通过静态分析代码库,识别数据收集点(如权限、API调用),并与开发者填写的表单进行交叉比对,从而在提交前发现不一致之处。

APK出门之后的运行时防线

以上所有工作都发生在发布之前,但有一整类威胁只在APK进入真实世界、运行在你无法控制的设备上时才存在。Play Integrity API在运行时回答三个你的代码无法自证的问题:这是否是真实未经修改的构建?是否运行在真实设备上?是否是真实的Play用户账号?它返回应用完整性、设备完整性等裁决。新的Protected with Play仪表盘把完整性、分发和变现防护的监控与配置集中在一处,同时Play Integrity API的预热延迟正在降低,使这些检查可以用于对速度敏感的用户旅程,更快拦截风险设备。

Play Integrity API:这是Google提供的反滥用API,用于验证应用运行环境的完整性。它通过返回一系列裁决(verdicts)来回答三个核心问题:应用完整性(是否为正版未修改)、设备完整性(是否通过Google认证)、账号完整性(是否为真实Play用户)。开发者可据此决定是否允许敏感操作。例如,在检测到设备被root或应用被篡改时,可限制功能或要求额外认证。

降低权限摩擦的API设计

面向用户侧,Google提供了几条减少宽泛权限申请的路径。SMS Retriever API允许应用自动验证OTP而无需宽泛短信权限:在消息中附加一个标识应用的11字符哈希,系统只把这一条消息交给应用。如果无法控制消息格式,SMS User Consent API会展示单次系统提示,用户点允许后你拿到那一条消息,同样无需宽泛短信权限。

一次性精确定位的用户摩擦较高,开发者有时因此转而申请更宽泛的权限。Location Button是一个可嵌入、可定制的Android UI元素,让用户以低摩擦方式授予一次性的精确定位访问。定位按钮Jetpack库的首个alpha版本已在六月发布,manifest中需声明标准定位权限、only for location button标志以及系统远程渲染服务所需的专用权限。

SMS Retriever与SMS User Consent:SMS Retriever API允许应用自动检索包含特定11字符哈希的短信,用于验证手机号,无需申请READ_SMS权限。SMS User Consent API则提供一次性系统弹窗,用户同意后应用可读取单条短信,同样避免宽泛权限。两者均适用于OTP自动填充场景,但前者需要应用控制短信格式,后者则更灵活。

Location Button:这是Google Play服务提供的UI组件,用户点击后以一次性方式授予应用精确定位权限,无需在manifest中声明ACCESS_FINE_LOCATION。它降低了用户授权心理负担,同时满足应用对精确定位的临时需求。开发者需在manifest中添加特定权限并集成Jetpack库。

面向高风险用户的增强保护模式

以银行应用为例:日常转账不强制额外的多因素认证,因为普通用户不喜欢多余摩擦;但如果用户想要最大程度的保护,应用可以自动要求每笔转账进行生物识别认证。Advanced Protection Mode提供一组预定义配置以增强设备保护。集成方式为:请求权限、查询增强保护模式、通过AdvancedProtectionModeManager系统服务检查用户是否已自行开启该模式,并注册回调监听运行时变化。

增强保护模式允许应用为高风险用户自动提升认证要求

从猜测转向可复现的流程

这套工具组合的核心思路是一致的:把安全判断从智能体的自由探索转变成有指引、可复现、与构建配置对齐的流程。发布前用技能做intent审计、权限检查和政策预检,发布后用Play Integrity做运行时裁决,用更细粒度的API替代宽泛权限,并为高风险场景提供可选的增强保护。对产品工程师而言,这意味着CI变红时不必在压制警告和漏掉漏洞之间二选一。

#Android应用安全#AI智能体安全审计#Play Integrity API#Android权限管理#智能体技能#Play政策合规#增强保护模式
分享:

相关推荐