zhengliang FreeBuf
一、背景
2016年4月27日,欧盟议会通过《一般数据保护条例》》(General Data Protection Regulation,简称GDPR),法律条例并已在2018年5月25日生效。该条例旨在加强对欧盟境内居民的个人数据和隐私保护并直接适用于欧盟各成员国,其取代了1995年颁布的《数据保护指令》。
适用范围(属地+属人原则):只要在欧盟成员国境内设立的公司,必须保护欧盟成员国居民的个人隐私信息,此为属地原则。此外,即使公司不在欧盟境内设立,但有涉及接触欧盟成员国居民的个人隐私信息,也必须遵守GDPR,此为属人原则。
违规者罚金:违反GDPR的行为,严重违规者罚金上限为2000万欧元或该集团全球年营业额的4%(以两者较高者为准);一般违规者罚金上限为1000万欧元或该集团全球年营业额的2%(以两者较高者为准)。
本指南描述了如何从技术和管理两个方向满足欧盟GDPR通用数据保护条例,旨在设计、编码、测试、部署,管理各个环节提高企业整体的GDPR合规性,适用于前端与后端的软件开发、系统测试、系统运维和GDPR合规制度编写。
1.1 终端操作系统层自检项目
1)与云端的所有通信,特别是OTA更新,都应采用加密协议,例如HTTPS,此外还需要启用证书合法性检查,不能信任任意证书;
2)最小化服务组件;
3)最下化开放的端口;
4)禁止开放adb调试接口;
5)终端进程要求以非root运行;
6)OTA更新包要进行哈希校验(建议sha256)和数字签名(RSA2048),防止被劫持篡改;
7)要求做好root防护,不允许从普通用户非法提升到root用户权限;
8)要求不允许从U盘安装第三方应用,仅支持从应用商店下载安装应用;
9)定期更新操作系统的安全补丁,由云端发起,随OTA更新或进行热补丁更新;
10)恢复出厂设置后,所有存储的个人信息需要被彻底删除;
1.2 终端APP底层自检项目
1)与云端的所有通信,特别是账号相关的通信,都应采用TLS加密协议,例如HTTPS,此外还需要启用证书合法性检查,不能信任任意证书;
2)APP获取操作系统的能力需要遵循最小化原则,例如:如果不需要定位信息,语音,照相等就不要启用该能力;
3)遵循最小化原则,只能收集隐私协议中公示的个人数据;
4)尽量不要采集MAC地址,IMEI地址等硬件的全球唯一标识,如果一定要采集,需要在隐私协议中公示其用途,用户同意后方可采集,并且要在云端后台进行加密或匿名化处理;
5)确保密码、密钥或其敏感信息没有在缓存和日志中输出;
6)存储的个人敏感信息应加密处理;
7)上传数据建议进行哈希校验(建议sha256)和数字签名(RSA2048),确保完整性;
8)存储的个人敏感信息必须设置最大保存时间,超过时间必须删除
1.3 终端APP人机交互层自检项目
1)开机应提示用户阅读隐私协议,隐私协议被浏览完才可以显示同意按钮,隐私协议中应区分必须采集和不必须采集的两个部分,不必须采集的部分用户可以选择不同意采集;
2)注册账号时,应提示用户阅读隐私协议,隐私协议被浏览完才可以显示同意按钮,隐私协议中应区分必须采集和不必须采集的两个部分,不必须采集的部分用户可以选择不同意采集;
3)隐私协议和用户协议应分开显示不能混在一起;
4)应具备用户账号注销能力,用户选择注销后,提示用户其在云端存储的与个人相关的所有信息将被彻底删除或采取匿名化处理;
5)应具备撤销对隐私协议同意的功能,用户可以方便的撤回同意,同意撤回后,隐私协议中提及的个人信息将不再采集;
6)应具备让用户自己选择删除部分或全部个人数据的能力,例如删除其搜索记录和观看记录,云端应将其选择删除的数据做彻底删除或匿名化处理;
7)应具备让用户自己查看其个人数据的能力,例如浏览其搜索记录,观看记录等;
8)应具备让用户自己控制是否开启根据其个人画像提供的自动服务,例如广告推送,节目推荐;
9)应具备让用户自己更改个人相关信息的能力,例如昵称,电话,住址等;
10)对用户隐私数据的使用目的和范围,应与用户隐私条款展示的内容相同,不得采集和使用用户隐私协议中没有提及的个人隐私数据,如果有新功能需要采集个人隐私数据,则需要同时更改隐私条款,并在功能更新后提示用户重新阅读隐私条款,并重新获取用户同意;
11)不得以用户不同意隐私协议为理由,整体拒绝用户对APP的使用,用户不同意隐私协议的情况下,应能提供不需要采集隐私数据就可以实现的功能
1.4 云端应用程序层自检项目
1)存储的应用程序日志中的IP,MAC,IMEI信息应进行加密或者匿名化处理(例如IP匿名化可以隐藏掉最后一位);
2)存储的用户个人敏感信息应进行加密处理,建议采用AES256算法进行加密,加密秘钥要妥善保管不能被泄露;
3)存储的用户密码应进行哈希处理,要求采用加随机盐的哈希方式进行存储,算法建议使用sha256,最好能做到哈希摘要与随机盐分库存储;
4)存储的用户个人敏感信息(基于大数据的个人画像)需要有一定时间限制,不能无限制永久保存,到期后应自动删除,存储保留时间应该与隐私协议中描述的一致;
5)应有能力证明用户对隐私协议的同意情况;
6)建立终端漏洞补丁管理系统,定期收集检测安全漏洞,下发更新安全补丁;
7)下发数据建议进行哈希校验(建议sha256)和数字签名(RSA2048),确保完整性;
8)”云端https服务需要导入RSA2048位证书,TLS协议建议配置为使用TLS1.2和1.3,禁止使用SSL1.0,SSL2.0,SSL3.0和TLS1.0,安全协议簇配置配置建议如下:
a.建议秘钥交换算法配置为ECDHE,禁止使用PSK。
b.建议数字签名算法配置为RSA。
c.建议对称加密算法配置为使用AES256-GSM,禁止使用DES,RC4。
d.建议哈希算法配置为使用SHA256或更高位数,禁止使用MD5和SHA1。
1.5 云端系统环境层自检项目
1)需要部署防火墙,基于ip/端口进行访问控制,遵循最小化访问原则只开放必须的IP和端口,遵循最大化控制原则限定访问来源IP,并要定期核查端口是否还在使用,及时删除过期规则;
2)需要部署WEB应用防火墙,对http/https协议的载荷进行安全检查,并定期更新***检测规则;
3)需要部署***检测系统,至少包含主机***检测和网络***检测的其中一种,建议同时具备;
4)远程接入数据中心,至少应该满足“通过***接入”或“限定访问来源IP”中的其中一种,建议同时具备;
5)远程接入数据中心,身份验证要支持双因素,除了密码验证以外还应该同时被另一种验证方式确认通过后方可判定访问者身份验证成功;
6)远程接入数据中心,要求只能连接跳板机,只有跳板机具备访问其他主机操作系统的能力,各业务主机之间不允许互相登录跳转;
7)运维账号不能混用,要求一人一号,且所有操作动作要求被记录并留存至少三个月,需要被记录的操作包括公有云账号的运维动作记录和业务操作系统上的运维命令记录;
8)数据库要求开启审计能力,对所有数据库操作进行记录并保留至少三个月;
9)数据中心内部要求根据业务划分安全域,各业务安全域之间互访需要遵循最小化原则;
10)操作系统,数据库,中间件需要进行安全加固;
11)需要部署安全漏洞检查系统,定期对云端系统的漏洞进行检查,并部署安全补丁进行修复;
12)需要具备数据备份系统,定期对数据进行备份,并验证备份集的可恢复性,确保在数据丢失或被破坏时可以恢复成功;
13)数据的备份文件要加密保存;
14)如果运营客户是欧盟或其他海外用户,云端数据中心建议部署在美国或欧盟境内,避免跨境数据传输的安全风险
2.1 基本要求自检项目
1)要求明确公司在角色上是属于数据控制者还是数据处理者或者是共同数据控制者,并在相关管理文件中明确该角色和角色权责;
2)基于在欧盟区的业务范围,建议在相关制度或规范中明确关于个人信息的处理和服务范围,包括在哪些国家收集哪些个人信息、收集个人信息的目的及使用方式;
3)应当明确在欧盟区的业务范围内的当地监管机构、联系方式及沟通机制,并将其写入相关制度和规范中;
4)应指定数据保护专员,并将其职责写入相关制度和规范中;
5)应明确向监管机构报告个人数据泄露的义务,并将其写入相关制度和规范中;
6)应明确向数据主体告知数据泄漏的义务,并将其写入相关制度和规范中;
7)应对数据处理活动进行记录留存,并将其写入相关制度和规范中;
8)应将不允许跨境数据传输写到相关制度和规范中
2.2 基本原则自检项目
1)合法、公平和透明性原则
合法地、公平地并且以公开透明的方式对数据主体的个人数据进行处理。针对该原则的应对要写入相关制度和规范中。
2)目的限制原则
基于具体、明确、合法的目的收集个人数据,且随后不得以与该目的相违背的方式进行处理。针对该原则的应对要写入相关制度和规范中。
3)最小范围原则
数据应是充足的、相关的并且限于数据处理目的最小必要范围。针对该原则的应对要写入相关制度和规范中。
4)准确性原则
数据应是准确的,且若有必要应保持适时更新,采取一切合理措施确保与数据处理目的相悖的错误数据被及时清除或更正。针对该原则的应对要写入相关制度和规范中。
5)存储限制原则
以可识别数据主体身份的形式存储的数据的存储时间不能长于实现个人数据处理目的所必需的时间。针对该原则的应对要写入相关制度和规范中。
6)完整和保密原则
数据处理应当以确保个人数据的适当安全性的方式进行,包括采取适当的技术或组织措施以保护数据免遭未经授权或非法的处理以及意外的丢失、销毁或破坏。针对该原则的应对要写入相关制度和规范中。
7)儿童信息处理原则
只有对年龄不小于16周岁的儿童的个人数据进行的处理行为才是合法的。对年龄不满16周岁的儿童,处理行为只有或至少在获取了该儿童的监护人的同意或授权时才是合法的。针对该原则的应对要写入相关制度和规范中。
2.3 数据主体的权利自检项目
1)访问权
数据主体有权从数据控制者处获得有关他或她的个人数据是否被处理的确认结果。针对该权利的应对要写在相关制度和规范中。
2)更正权
数据主体有权要求数据控制者立即更正与其有关的错误的个人数据。针对该权利的应对要写在相关制度和规范中。
3)清除权(被遗忘权)
数据主体有权请求数据控制者立即清除与其相关的个人数据,同时数据控制者有义务立即清除相关个人数据。针对该权利的应对要写在相关制度和规范中。
4)限制处理权
数据主体有权限制数据控制者的处理行为。针对该权利的应对要写在相关制度和规范中。
5)持续控制权(可携带权)
如果数据主体向某数据控制者提供与其有关的个人数据,那么该数据主体有权从该数据控制者处获取结构化、通用化和可机读的上述数据;同时,数据主体有权将这些数据转移给其他数据控制者,原数据控制者不得进行阻碍。针对该权利的应对要写在相关制度和规范中。
6)拒绝权
数据主体有权基于其自身特殊情况随时对其实施的涉及其个人数据的处理行为,其中包括识别分析行为。针对该权利的应对要写在相关制度和规范中。
7)自动化的个人自决权
数据主体有权不受仅基于自动化处理行为得出的决定的制约,以避免对个人产生法律影响或与之相类似的显著影响,该自动化处理包括识别分析。针对该权利的应对要写在相关制度和规范中。
8)应建立在进行更正/限制处理/删除个人数据时,通知个人数据接收者的机制,以及在基于用户的请求执行相应操作后,及时通知其他数据接收者同步处理用户个人数据的机制。
2.4 个人信息事件处理自检项目
1)应建立建立对于终端用户投诉个人信息相关问题的处理流程;
2)应针对欧盟业务制定个人信息安全事件的协调处理流程、事件报告流程、事件分类分级、事件发生后与监管机构或数据控制者的对接流程、上报时间限制等处理机制。
1)需要有安全补丁的管理规定,明确发现安全漏洞后,安全补丁修复的流程;
2)应该在公司相关制度和规定文件中明确使用个人数据的管理要求,尤其是对使用个人数据进行测试的情况加以控制,包括测试系统的访问、申请使用测试数据的流程、数据使用后的销毁与处置、使用记录的保留等内容;
3)应保留操作系统和数据库的操作记录,包括操作时间、操作人、操作账号、操作内容等信息,并定期对操作记录进行复核,保留复核记录;
4)应建立完善关于权限管理相关制度文件,应明确账号管理原则、账号管理要求、账号管理流程(申请、审批、变更、关闭)等内容,在执行层面通过建立权限清单和权限复核机制,控制访问权限;
5)应建立完善密码安全相关的管理要求,例如完善密码设置规则、密码更改要求、密码重置要求;
6)应建立完善定期对开启的端口及服务进行复核的管理要求,在发现未关闭的端口及服务后,须及时通知运维人员予以管理;
7)应建立数据备份恢复相关的管理规定
*本文原创作者:zhengliang,本文属FreeBuf原创奖励计划,未经许可禁止转载