1. 网络安全架构
目标
保障信息安全,减少黑客安全
方案
一. 网络分区
线上网络分为四个区域
一. 服务暴露区
网络分区机器,需提供外网网络访问能力, 对外暴露服务能力, 除对外提供的必须端口外, 对外网络端口全部封死
该分区网络不允许主动访问外网
二. 核心区域
该网络分区只提供内网网络访问
该网络分区不能主动访问外部网络,不提供公网IP
三. 服务依赖区
该分区主要用于如支付服务和第三方服务商的系统交互
该网络分区机器,只提供内网访问服务
该网络分区机器,可主动访问外网,拒绝一切外网主动访问
四. 管理区
该网络分区主要用于线上SSH机器管理.
网络分区SSH 禁止一切非白名单网络连接(包括内网其他机器)
额外要求:
SSH 只能用证书登入. ROOT证书必须加密
除管理分区外, 其他分区的SSH管理端口,只接受管理分区网段连接, 如果公司牛逼的情况下可以考虑改写部分SSH协议,增加自定义认证
二. 网络监控
监控各分区网络链接, 出现白名单外IP的网络链接,及时掐断, 进行告警,具体规则如下:
1. 服务暴露区
1. 除提供服务端口外网主动链接 告警
2. 除SSH和服务端口之外的端口监听启动 告警
3. 非管理区SSH连接 告警
4. 主动访问外网链接 告警
2. 核心区
1. 出现一切非内网链接IP 告警
3. 服务依赖区
3. 出现一切非备案白名单IP的外网链接 告警
4. 管理区
3. 出现一切非备案白名单IP的外网链接 告警
三. 安全扫描
定期对 服务暴露区, 管理区, 服务依赖区, 机器进行端口扫描
2.网络机器分组保护
目标: 防止一台机器出问题,全部机器遭殃,和内部资源乱调用导致数据泄露,服务被内部攻击等
2. 存储安全架构
2.1 敏感信息定期加密,加密密钥专门系统管理。
2.1 存储介质不能拥有外网权限,连接账号必须设置ip白名单
2.3 所有存储不能允许匿名访问,和弱密码
3. 日志安全架构
3.1 敏感信息日志落盘必须脱敏,重要的秘钥,用户隐私信息,价格敏感信息不允许在日志内输出
3.2 日志备份必须加密
3.3 定期对日志进行安全审计
4. 应用安全架构
4.1 不允许使用SQL参数拼接,必须使用预编译
4.2 应用提供的所以服务不允许匿名访问
4.3 应用登入注册等敏感接口要设计防刷策略
4.4 控制层需要对用户输入进行安全校验,防止 xxs 脚本攻击
4.5 需要记录访问日志,以便于后期做安全审计,但是不能记录用户敏感信息在日志中
4.6 上传的文件必须单独存储,且不能通过应用程序访问,可以使用nginx单独搭建静态服务,提供http下载功能。或者使用s3 sso 等第三方存储
5. 部署安全设计
5.1 使用普通用户启动应用,该用户不能拥有sudo权限
5.2 启动用户拥有的权限
5.4 应用配置文件只能为部署应用的账号和Root可见,其他账号不可读
5.5 所有应用目录规范 建议在 /data/apps/模块/应用名
5.6 日志目录规范统一 建议存放在 /data/apps/模块/应用名
5.7 应用采用软链