编者按:上周关于“经期APP”收集百万女性健康和性行为信息提供给FaceBook作为广告推送的风波尚未散去,一件接一件的第三方SDK非法收集个人信息事件曝光,如何合规使用SDK?今天我们来看业内人士对于APP开发者使用SDK的合规建议。

2019年1月25日,中央网信办、工信部、公安部、市场监管总局四部门联合开展APP违法违规收集使用个人信息专项治理。随着APP个人信息保护治理工作的深入推进,与APP存在密切联系的第三方软件开发包(SDK)收集个人信息问题也逐渐渐入各方视野。今年7月,部分行业头部APP由于未在隐私政策中告知用户SDK收集用户个人信息规则而被曝光。

SDK是辅助开发某一类应用软件的相关文档、范例和工具的集合,APP开发者为了提供开发效率、降低成本,往往会在软件中嵌入第三方SDK。SDK类型主要包括:消息推送类、数据统计分析类、第三方登录类、支付类、地图导航类、社交分享类、风控插件以及一切基础库等。常见的推送类SDK有极光推送、个推推送、Mob推送;数据统计分析类SDK有友盟;第三方登录分享类SDK有微信登录分享、微博登录分享、QQ登录分享;支付类SDK有微信支付、支付宝支付、银联支付;地图导航类SDK有百度地图、高德地图。

第三方SDK提供者与APP开发者往往通过SDK提供者的开放平台,在线签署开发者服务协议,来约定双方的权利义务,通过“背靠背授权”取得收集用户数据权利,SDK收集用户个人信息时其实直接与APP同步收集,并不需要通过APP共享。另外,SDK能够使用APP申请到的所有操作系统权限,可能存在“搭便车”额外收集个人信息的情况。在安卓系统中,只要宿主APP拥有公共存储区读取权限后,SDK还可以读取其他APP的存储数据。由于SDK数据收集和处理活动缺乏透明度,用户往往难以感知,APP开发者也未必完全知道。同时,各类SDK功能逐渐多样化,应用于不同的领域,有机会获得各类APP在不同业务场景下多类别的个人信息,对于同一个个体标签数可以达到200万之多,所以其数据汇聚挖掘潜力和泄漏后可能造成的危害都远远大于APP本身,但对于SDK的合规却远远不如APP开发者。

2019年3月1日,APP专项治理工作组编制并发布了《APP违法违规收集使用个人信息自评估指南》,其中第21条规定,若使用Cookie及其同类技术收集个人信息,是否向用户明示,同类技术包括脚本、Clickstrean、Web信标、FlashCookie、内嵌Web链接、sdk等。但实践中,少有APP在隐私政策中提到SDK的使用,SDK也未在隐私政策中明示会收集用户个人信息并经过用户同意。

根据《数据安全管理办法》(征求意见稿)中要求,网络运营者对接入其平台的第三方应用,应明确数据安全要求和责任,督促监督第三方应用运营者加强数据安全管理。第三方应用发生数据安全事件对用户造成损失的,网络运营者应当承担部分或全部责任,除非网络运营者能够证明无过错。所以APP开发者应对接入的第三方SDK进行安全管理,否则SDK发生数据安全事件,无法证明自身无过错,需要承担部分或全部责任。

1、SDK选择

选择第三方SDK时,应以选择满足相应功能和性能需求为基础,不应只考虑价格问题,还需考虑安全问题。涉及SDK申请及使用的所有权限,均应且只应满足APP开发者所需的功能。超出APP所使用的功能,即使功能合理,也应当进行裁剪。如果有替代方案可通过不采集个人信息或不使用敏感权限的前提下也能够实现所需功能,应当采取替代方案。需要单独为SDK申请的隐私敏感权限,应进行严格控制。检查SDK是否通过国家安全等级保护的测评和备案,是否达到国际信息安全管理体系等国际权威认证标准的要求,并获得相应的认证。

2、安全评估

对第三方SDK应进行代码审计和漏洞检测,通过SDK反编译,评估来源可靠性、代码质量、潜在安全风险。对SDK所申请的敏感隐私权限、采集用户个人信息的字段、频率、回传服务端场景等进行安全评估,确认引入SDK所需使用的权限最小化。对SDK的权限的申请及获取进行限制,如安卓系统统一通过APP进行权限声明、禁止SDK热更新(若禁止热更影响SDK性能,需要求SDK出具自律声明)等。关注引入SDK的安全动态和版本更新情况,及时修复安全问题,更新代码。对引入SDK的代码进行混淆保护、加壳、加密等处理。

3、建立供应商管理制度

在网络安全等级保护测评要求或国际信息安全管理体系中,均有供应商管理要求。APP开发者应在第三方SDK签订的服务协议或安全责任书中明确后期的技术支持和服务承诺等内容、明确双方的安全责任及应实施的个人信息安全措施,协议应包括信息安全风险处理要求,就信息安全要求达成一致,并形成文件。应定期监视、评审和审核SDK的服务。

4、个人信息安全影响评估

应在接入第三方SDK前开展个人信息安全影响评估(PIA),并依据评估结果采取有效的保护个人信息主体的措施。PIA应综合考虑:SDK数据接收方基本情况、数据收集的目的、类型、目的实现是否可以通过不收集数据或去标识化数据方式达成、数据对个人信息主体可能造成的侵害、数据对社会和个人潜在收益与风险、不收集数据是否会造成损害、是否有任何法定限制或其他因素对数据收集的限制、收集数据是否持续性的还是临时性的、收集数据是否已经达成目的、是否需要继续收集数据、是否与自身拥有同等网络安全和数据保护能力、动态重新审查PIA,是否有新的变化。

5、获得用户的同意

《SDK安全与合规白皮书》中提到:某些情况下SDK以自己的名义向用户提供服务,通过激活一个SDK接口而调用或者启动该用户已安装的另一个APP的服务,因为第三方SDK提供者有机会将自身品牌进行披露,用户对其使用的哪家企业实际提供的特定服务是有明显感知,可以采用三重授权原则,即用户授权+平台授权+用户授权,解决正当性问题。

另外一些SDK在收集用户信息时,用户并不能有明显感知,由于第三方SDK不直接面对用户,需要APP开发者提供代为告知用户(如增加告知链接、弹窗告知、变更隐私政策等)并获得用户“同意”。APP开发者可以在关于Cookie或同类技术的使用中,加入SDK的使用情况,向用户告知SDK收集个人信息的目的、数据收集的类型,涉及敏感信息时,还需要告知接收方的身份和数据安全能力,并征得明示同意,甚至可以直接增加第三方SDK隐私政策链接。并在用户撤回同意后,帮助用户删除在第三方SDK的相关数据。

App开发者还需要基于合同相对性,针对第三方SDK收集使用用户个人信息的情况,对用户承担合同法下的违约责任以及网络安全法下的行政责任,同时还有义务将各项合规义务传导至第三方SDK提供者。

实践中,阿里系企业在取得ISO27000体系认证后,也会要求其服务商也需要取得相应的认证。腾讯的微信登录今年增加了随机头像、随机昵称登录,并在微信中的小程序ID是独立的,同一个用户在不同的小程序间ID是不一样的,减少第三方对数据的关联度,保护用户的个人信息。

但是大部分初创型APP开发者对于第三方SDK并没有话语权,SDK不会和初创型APP开发者单独签订合同或者采取特殊网络安全保护措施,所以对于初创型APP开发者更应当妥善留存SDK接入有关合同和管理的记录,确保可供相关方查阅,做好前期PIA并根据情况重新审查,完善隐私政策取得用户对SDK收集数据的同意,开展技术检测确保SDK个人信息收集、使用行为符合约定要求,定期对SDK收集个人信息的行为进行审计。以保证发生数据安全事件或侵犯用户个人信息及隐私时,减轻或免除APP开发者的责任。(孙鹏程

声明:本文来自网络法实务圈,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。