非专业的系统安全规范
今年一部分工作重心在系统安全建设上,对整体系统进行了全面的摸排,摸排过程发现了很多的问题,多数问题都已经被修复完成。虽然非专业安全人士的方案,自认为该考虑的都考虑到了,记录一下。后续陆续补充完善。
WEB 层面:
所有对内的 web 系统不得只使用账号密码登录。必须有双因子,所有操作必须有操作日志供审计。
所有对外服务的 WEB 系统,必须使用短信验证码验证。所有操作必须有日志供审计。
所有 APP 的 http 接口,涉及用户敏感信息的,一律要进行鉴权。鉴权的方案如果使用 token,则 token 不可以被暴力计算出。
内部 web 系统中的数据导出和下载,如果是导出明细数据,要登记在案,导出数据要加以跟踪使用情况。对外开放的 WEB 系统,不支持明细数据的导出。
审计:
所有系统的日志要全,包括 vpn、主机、数据库、应用系统、nginx 等,都需要记录以供审计。现在很多的日志审计系统已经满足采集不同格式来源的日志能力。
日志中不得明文显示敏感信息。
日志要能体现操作人。
数据库:
业务主键不得使用自增型,尤其是对 app 提供接口中暴露的主键类 id,严谨使用纯数字类型。
数据加密统一一套,所有数据落库即脱敏。业务流转过程中需要使用明文的调用中央解密服务解密,解密操作记录日志。
网络:
B 端接口双向加白名单。
自有 IDC 机房,所有服务器公网请求受控,不得随意开放公网出口。
对外端口开放,收敛到 80 和 443 端口。
vpn 密码定期更新。
中间件:
所有中间件连接要获取 AK,包括 redis、MQ、mango 这样的。
阿里云 OSS,不可以开放公有的 bucket,必须私有。OSS 对外提供的 http 访问连接,必须有时间限制和访问次数限制。
开发环境:
生产环境的所有配置,不可以在代码 project 里的 pro.properties 文件里写。统一纳入生产配置中心进行管理。
开发过程,所有的配置项获取和加载,从配置中心读取,开发人员不能接触实际生产配置参数。
数据外送,不限于短信这样的外送
所有外送,要记录外送的时间、包括的用户敏感数据项、外送发起人。
结合最近零信任的概念,扩展以下几点:
所有请求,尤其是需要鉴权的,需要记录上一次的设备号、登录 ip 等。每一次请求都加以验证,而不是只看 token 这样的。如果发现不一致,重新验证身份信息。如果相同 token 但是两个不同的设备操作,直接发出安全警报。但是这个要结合用户授权来进行,不可以侵犯用户隐私。
每一次用户请求,不管是 C 端用户还是 B 端用户,或者内部用户,能记录越多信息越好。对用户操作环境、使用设备、发出的请求进行实时跟踪,以判断是否存在风险。
面向 C 端的功能中,比如商品详情,里面包括了优惠信息的。反爬虫是个要重点考虑的设计。
零信任和个人隐私是对立的,做零信任要尽可能多的收集用户数据。但是 2C 的现在很多时候收集不到这么多信息。内部使用的各个系统就容易很多。
版权声明: 本文为 InfoQ 作者【张老蔫】的原创文章。
原文链接:【http://xie.infoq.cn/article/1883cc0e11ce2b27019f8cee1】。文章转载请联系作者。
评论