
1. 存储加密实践
1.1. 敏感的个人信息以及涉及敏感的个人隐私的数据、敏感的UGC数据,需要加密存储
1.2. 口令、加解密密钥、私钥,需要加密存储
1.3. 有明确检索、排序、求和等运算需求的业务数据,不需要加密存储
1.4. 数据库字段加密
- 1.4.1. 针对结构化数据(一般指存放于数据库的数据),推荐采用数据库字段加密,这属于产品自身需要考虑的事情
1.5. 数据库透明加密
-
1.5.1. 部分数据库也支持透明加密(或静态加密),原来使用明文存取数据的应用不需要任何改进,由数据库提供透明的加解密,可供最低级别的加密参考
-
1.5.2. 透明加密是一种快速达成加密效果的方案,因为所有的加密和解密过程都是在存储这一级自动完成的
1.6. 网盘文件加密方案
-
1.6.1. 网盘通常用于保存用户的个人文件,这属于UGC数据,可能涉及用户个人的隐私,因此需要加密
-
1.6.2. 如果用于企业客户,则更是需要加强保护
-
1.6.3. 加密算法使用AES加密算法GCM模式,密钥长度256位
-
1.6.4. 文件切片(或分块),每个切片使用随机DEK(数据加密密钥)进行加密
-
1.6.5. 每个DEK均使用用户的业务KEK(密钥加密密钥)加密,加密后随对应的密文切片一起存储
-
1.6.6. KMS是独立于具体业务之外的加密基础设施
1.7. 配置文件口令加密
-
1.7.1. 配置文件是口令、密钥类信息泄露的重要渠道,包括员工无意中泄露、黑客或木马侵入服务器后查看配置文件窃取等
-
1.7.2. 配置文件中对口令的加密保护是一种较弱的保护机制,一般用于防止木马自动寻找口令、挡住ScriptBoy(脚本小子)等技能不足的黑客,以及延缓黑客进度,为应急响应赢得时间
2. 最佳实践
2.1. 身份认证
-
2.1.1. 人员身份认证(含员工、合作伙伴、用户等)使用SSO单点登录系统,并在敏感业务上启用*超时退出机制
-
2.1.2. 非人员身份认证(含后台之间、客户端访问后台等), To C业务推荐全程使用Ticket,其他业务推荐使用AES-GCM等机制
2.2. 授权
-
2.2.1. 首选在业务自身建立授权模型
-
2.2.2. 其次可使用业务之外的权限管理系统(但不适用于To C业务,或参数值影响权限判定的业务)
-
2.2.3. 敏感业务的管理权限采用权限分离,不兼任多个敏感权限
2.3. 访问控制
-
2.3.1. 采用ABAC(基于属性的访问控制)、RBAC(基于角色的访问控制)等机制
-
2.3.2. 不直接向外网提供服务,经统一的应用网关接入
-
2.3.3. 业务不直接操作数据库,将数据库封装为数据服务
-
2.3.4. 收缩防火墙的使用
2.4. 审计
- 2.4.1. 敏感操作日志提交到统一的日志管理平台,且无法从业务自身发起删除
2.5. 资产保护
-
2.5.1. 配合统一的KMS对敏感的个人信息加密存储
-
2.5.2. 使用全站HTTPS
-
2.5.3. 展示脱敏
-
2.5.4. 构建立体安全防御体系
2.6. 在没有统一接入的概念之前
-
2.6.1. 工的安全意识一般是不够的,不可能每个业务都去实现一套完整的安全机制,这也导致我们经常会发现有的敏感业务直接开放外网访问的时候没有任何安全机制
-
2.6.2. 容易误将高危服务开放出去,导致黑客直接进入生产内网
-
2.6.3. 如果业务存在漏洞,且没有部署WAF等防御设施,也可以直接到达内网
2.7. 统一接入
- 2.7.1. 启用应用网关之后,通常大多数业务就不需要直接对外提供服务了,从而也就不需要配置外网网卡或外网IP地址,这一点可以在很大程度上避免对外误开高危服务端口
2.8. 收缩防火墙的使用
-
2.8.1. 建立尽可能少的网络分区,尽量避免从一个安全域直接路由到另一个安全域
-
2.8.2. PCI-DSS合规要求有需要防火墙保护持卡人资料的条款,且由于大量存量业务的存在,网络分区仍是一个需要使用的安全手段
2.9. 数据服务
2.10. 建立KMS
- 2.10.1. KMS(Key Management System,密钥管理系统)的主要作用是让业务无法单独对数据解密,这样黑客单独攻克一个系统是无法还原数据的
2.11. 全站HTTPS
- 2.11.1. HTTPS在防止流量劫持、保障数据的安全传输方面发挥着很大的作用
2.12. 通用组件作为基础设施
-
2.12.1. 直接使用现成的Web服务器(实际上是共用服务器)而不需要登录服务器从零开始安装
-
2.12.2. 对于数据库,也可按这种模式自助申请数据库实例使用,如尚未建立数据服务基础设施,也可考虑构建数据服务,对外以Restful JSON API的形式提供
2.13. 自动化运维
-
2.13.1. 登录服务器本身属于高风险行为,很可能由于员工误操作等原因造成配置错误、数据丢失等巨大损失
-
2.13.2. 使用Web化界面,方便、效率高、体验好
-
2.13.3. 可屏蔽高危操作(如:rm -rf /),避免误操作
-
2.13.4. 方便跟SSO集成,用于员工实名认证
-
2.13.5. 方便执行权限管控、运维审计
-
2.13.6. 功能
-
2.13.6.1. 文件上传或下载
-
2.13.6.2. 脚本批量发布
-
2.13.6.3. 配置文件批量发布
-
2.13.6.4. 内容发布(适用于内容平台业务,如新闻)
-
2.13.6.5. 应急的指令通道(在网页上出现类似命令行控制台的界面,可交互操作)