近年来大众隐私泄露事件爆发越来越频繁,国家也在日益加强对应用隐私行为的监管。今年1 月份,中央网信办、工信部、公安部、市场监管总局四部门联合开展App 违法违规收集使用个人信息专项治理,重拳出击,整治乱象。据市场调研数据显示,超过7成应用隐私政策透明度不达标,大量应用依然存在权限过度使用、存在多项隐私风险等问题。应用隐私安全面临着用户信任与法务舆论双重危机。
为了响应国家监管要求,进一步规范应用行为,防范应用安全风险,使用户隐私得到更好的保障,软件绿色联盟正式开展《软件绿色联盟应用体验标准3.0_安全标准》(下文简称《安全标准3.0》)编制工作。
软件绿色联盟安全标准工作组成员
在原安全标准组成员基础上,联盟邀请了泰尔实验室、360、安天、新浪、爱加密等知名企业安全专家共同参与安全标准3.0的制定工作,打造了更加强大的标准制定团队。
《安全标准3.0》在原标准2.0基础上,对应用程序在用户权限申请、使用行为以及隐私数据保护等方面提出了更高的要求,对应用程序开发过程中权限的申请与使用规范进行了更加明确和细致的说明,让用户隐私得到更有效的保障。
经过理事会执行组多次评审,于今日起至11月1日正式对外公示并征求广大应用开发者意见。如果您对安全标准公示内容有任何意见或建议,请发送邮件至邮箱:developer@china-sga.com,(邮件主题建议为 “安全标准公示意见反馈 应用或公司名称”形式)。重点修订内容如下:
重点修订内容
4.1基本要求
该章节中对应用行为安全基本要求进行了明确和更新,具体如下:
1) 数据收集遵循合法、正当、必要、透明的原则。
2) 不能包含国家法律禁止的内容,包括但不限于色情,赌博,或任何危害国家安全的信息。
3) 不能包含恶意行为和欺骗性行为。
4) 不能包含病毒、木马、漏洞、后门。
5) 不能诱导、欺骗用户执行有损系统和应用安全的操作,包括但不限于下载或安装系统root工具,激活设备管理器选项,开启辅助功能等。
4.4.2权限
该章节更新了对应用API Level的要求,并应用权限的申请做了更严格的限制和说明。具体如下:
1) 应用的API Level不能低于26(TargetSdk Version不能低于26),推荐设置API Level为28。
2) 应用申请的权限,都必须有明确、合理的使用场景和功能说明。确保用户能够清晰明了地知道应用所申请权限的场景、用途、目的等信息;禁止诱导、误导用户授权。应用使用权限必须与申请所述一致。
3) 权限申请遵循最小化原则, 应用只申请业务功能所必要的权限。
4) 应用在安装后首次启动的时候,避免频繁弹框申请多个权限,通过一次弹窗批量申请核心功能所需权限;其他敏感权限需要在用户使用对应业务功能时动态申请。
5) 应用不得申请权限直接拨打电话、发送短信。只有在用户主动将应用注册为默认短信、电话程序的情况下,应用向用户申请拨打电话、发送短信权限。
6) 严格控制应用申请位置权限,除导航、运动类应用可申请持续获取位置,其他类型应用程序禁止申请后台持续获取位置权限,仅在使用时获取位置。
7) 严格控制外部存储权限,应用存在读取外部存储上文件的用户功能时,才允许申请外部存储权限,其他场景禁止申请外部存储权限。
8) 当设备禁止应用获取不可重置标识符时(包含IMEI和序列号),应用程序不得绕过设备的权限管控使用不可重置标识符,推荐使用UUID等其他标识符。
9) 用户拒绝授予某个权限时,与此权限无关的其他业务功能应能正常使用。
10) 业务功能所需要的权限被用户拒绝、禁止后不能强制退出;不允许应用每次启动时都向用户申请,当用户再次使用此功能时向用户申请对应权限,向用户申请权限次数不超过3次。
11) 应用在用户未授权情况下,不能执行拨打电话、发送短信等操作。
12) 应用在用户未授权情况下,不能执行摄像、录音、截屏等操作。
13) 应用在用户未授权情况下,不能打开或关闭如Wi-Fi、蓝牙、GPS等。
14) 应用在用户未授权情况下,不能读写用户短信、联系人等隐私数据。
15) 应用在用户未授权情况下,不能收集或上报用户设备、系统及应用程序信息。
16) 应用在用户未授权情况下,不能修改系统配置等资源文件。
17) 应用在用户未授权情况下,不能修改其他应用程序的权限、数据等。
18) 应用在用户未授权情况下,不能进行消费操作。
19) 应用在用户未授权情况下,不能利用漏洞等方式获取系统控制权限,进行非授权操作。
20) 应用在用户未授权情况下,不能在桌面创建桌面快捷方式。
4.6退出
该章节对应用退出之后的行为规范进行了更详细的要求和说明,具体如下:
1) 应用在用户强制关闭或退出后,不能继续占用系统资源。
2) 禁止应用程序之间互相作为守护程序;在用户退出应用时,通过其他应用程序后台唤醒,导致无法彻底退出。
5.1权限使用规范
该章节新增了对应用申请权限使用进行了规范和说明,具体如下:
1) 应用(包括引用的第三方SDK)所需权限必须在权限说明中逐个声明。
2) 应用避免因为引入第三方SDK,导致过度申请权限和冗余权限。
3) 功能项管理。关闭不需要及有风险的功能选项,如数据备份功能、调试功能。
4) 组件管理。组件声明的合理性,避免导出不需要外部调用的组件,如需导出应设置合理的权限保护。
5) 应用通过敏感权限获得的数据和能力,禁止以自定义接口向外提供。
6) 应用如需访问其他应用共享的文件,应该使用SAF框架,由用户选择对应文件,而不应该申请外部存储权限直接去读取。
7) 必须对涉及敏感数据、敏感操作的对外交互组件设置访问权限。
8) 调用会抛SecurityException的接口,需要捕获SecurityException,防止应用闪退。
9) 减少使用应用唯一标识IMEI,改用UUID或AndroidID,减少申请READ_PHONE_STATE权限。
10) 除默认短信和默认电话应用外,其他应用禁止申请SMS和CALL_LOG权限组内的所有权限。
11) 禁止应用申请CALL_PHONE权限去直接拨打电话(Intent.ACTION_CALL)。
12) 禁止应用申请SEND_SMS权限去直接发送短信。
13) 应用自定义权限必须严格定义,确保完整、清晰、准确,并为权限配置合理的保护级别。
14) 应用自定义权限名,建议以应用包名为前缀,防止与系统或其他应用定义的权限重名。
15) 禁止一个权限保护多类数据和多种能力,禁止定义保护范围重叠的新权限。