关于 android-security-best-practices
面向 Android 开发者的安全审查技能,检查应用暴露面、机密信息、存储和网络信任,并提供攻击面梳理与发布检查流程。
主要功能
- 01盘点导出组件和应用入口
- 02审查机密信息、存储、日志与备份
- 03检查网络信任和明文流量设置
- 04加固文件共享与 PendingIntent 用法
- 05评估 WebView 桥接和权限
- 06记录发布检查与剩余风险
适用场景
- 01审查 Android 清单和导出组件
- 02检查机密信息处理与数据泄漏风险
- 03在候选版本发布前核查安全默认设置
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ krutikjain/ android-agent-skills --skill android-security-best-practices安装后在 Claude Code 中输入/android-security-best-practices确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlreferences/official-links.mdpatterns.mdscenarios.mdscripts/run_examples.sh详细介绍
Android 安全最佳实践
适用场景
- 当请求涉及以下内容时使用此技能:Android 安全审查、Android 应用中的机密处理、Android 导出组件安全。
- 主要目标:应用有关机密、存储、网络信任、导出组件和最小权限的 Android 应用安全指南。
- 需要攻击面检查清单或存储/网络/组件决策矩阵时,阅读
references/patterns.md。 - 审查清单、备份、WebView 和发布加固流程时,阅读
references/scenarios.md。 - 范围扩大时,转交给以下技能:
android-modernization-upgradeandroid-ci-cd-release-playstore
工作流
- 首先盘点攻击面:导出组件、Intent/深层链接入口、文件共享、WebView 用法、本地存储、日志、备份和网络信任配置。
- 在细节加固之前,先消除可避免的风险:优先使用平台选择器和选择器界面、内部存储、服务器签发的短期令牌和最小权限,而不是随应用发布广泛访问权限或长期有效的机密。
- 使用
android:exported、组件权限、FileProvider、networkSecurityConfig、仅用于调试的信任锚以及不可变的PendingIntent,明确锁定剩余边界。 - 审查 Android 应用中容易回归的敏感面:WebView JavaScript 桥接、备份/数据提取规则、明文流量例外、日志脱敏,以及对同一开发者 IPC 的假设。
- 通过可复现的检查验证发布安全状况,然后记录剩余风险,以及后端强制执行或 Play Integrity 属于建议措施还是阻断措施。
防护准则
- 将客户端机密视为攻击者可以恢复的内容;尽可能将信任决策和特权 API 访问移至服务端。
- 仅在确有外部调用方时导出组件;若契约为私有,应通过权限或签名保护组件。
- 使用网络安全配置限制仅用于调试的信任锚或明文流量例外,而不是使用宽泛的清单开关。
- 对日志进行脱敏、审查备份,并默认避免将敏感数据存放在共享外部存储中。
反模式
- 将 API 密钥藏在资源、NDK 或混淆中,并称其安全。
- 对可启动或 IPC 组件的
android:exported或 Intent 过滤器设置含糊。 - 通过原始文件路径或过于宽泛的存储权限共享文件,而不使用
FileProvider和系统界面。 - 固定证书,却没有可执行的轮换方案或备用计划。
审查重点
- 明确所有者和调用方预期的导出活动、服务、接收器和提供程序。
- 机密、令牌和后端信任假设。
- 网络信任、调试覆盖设置、明文流量使用和证书处理。
- 文件共享、备份、日志和用户数据泄露路径。
- Play Integrity 等滥用信号只能作为分层防御,绝不能作为唯一的授权模式。
示例
正常流程
- 场景:审计清单和共享界面,检查导出设置、权限和
FileProvider用法是否明确。 - 命令:
rg -n "android:exported|android:permission|FileProvider|grantUriPermissions" examples
边缘情况
- 场景:在候选版本发布前,发现不安全的备份或网络默认设置。
- 命令:
rg -n "networkSecurityConfig|usesCleartextTraffic|allowBackup|fullBackupContent|dataExtractionRules" examples
故障恢复
- 场景:将应用加固与现代化改造或发布流水线请求区分开来。
- 命令:
python3 scripts/eval_triggers.py --skill android-security-best-practices
完成检查清单
- 每个外部可访问的组件都有明确的暴露范围和调用方限制。
- 机密、令牌和信任决策不依赖客户端应用中的隐蔽性。
- 网络、备份、日志和共享行为均有明确且适合发布环境的默认设置。
- 已记录剩余风险和任何后端依赖,并明确后续工作。
Official References
- https://developer.android.com/privacy-and-security/security-best-practices
- https://developer.android.com/privacy-and-security/security-tips
- https://developer.android.com/privacy-and-security/risks/unsafe-exported-components
- https://developer.android.com/privacy-and-security/risks/access-control-to-exported-components
- https://developer.android.com/privacy-and-security/security-config
- https://developer.android.com/privacy-and-security/minimize-permission-requests
- https://developer.android.com/google/play/integrity/overview
评论
支持 Markdown