办公安全
1、齐治堡垒机给正式员工,按部门创建跳板机,区分测试和生产。开发员工禁止通过堡垒机访问生产服务器,排障的话,由运维协助,有日志平台
外包使用Jumpserver
2、金科办公网禁止Github访问,禁止pan、mail访问,脱离办公网由Macfee加黑名单
IDC/服务器
1、申请DEV服务器、SIT服务器,必须通过立项。申请开墙,提供系统架构图
2、交换机负责网络隔离,划分vlan,防火墙也是逻辑隔离,访问控制建议在防火墙上做,双向控制,虽然交换机也可以做
3、金科的数据库DB的账号密码由DBA生成,发给运维,(开发人员不知道密码),加密后写入配置文件,应用程序框架读取配置文件后解密得到密码去连DB
4、金科Gitlab放在生产网段,办公网可访问。导致很多测试、开发服务器开墙去访问,拉源码
主机安全
1、Rapid7扫描主机漏洞,Webinspect扫描WEB漏洞,OP是合二为一,如下图
2、windows登陆账号分配申请人域账号为管理员,Linux登陆账号也是域账号,域账号的权限(amy/ops/root)统一由CAE获取控制,员工自行在上面申请
3、访问控制
网络
1、金科服务器默认不能访问外网,走外网必须经过DMZ,数据中心的外网由防火墙出口访问控制
2、测试SIT环境,开发DEV环境,测试/开发员工可以在CAE上查询rhlog、root的密码,有时长限制和审计功能,同一时间只能锁定一个用户,生产机器的密码他们没权限查看
3、外包没有CAE权限,所以外包的堡垒机没有root权限
4、测试/开发员工禁止堡垒机访问任何生产服务器
5、运维不负责开发测试机器,只负责交付中间件、数据库等服务
系统
1、CAE密码管理系统,接管数据中心Linux账号、密码,脚本下发(如非标部署),不支持windows
2、CAE提供全网主机命令通道支持工具和脚本执行,配置文件推送。可以满足登录主机的日常部署操作使用。类似OP的追风脚本下发平台
3、登录齐治堡垒机操作:在浏览器中访问堡垒机URL,登陆进去选择一台跳板机,在跳板机中SSH目标机器,密码从CAE获取。不同于JumpServer直接帮你免密登录
4、Guacamole支持web界面管理RDP、VNC、SSH协议。GateOne只支持web界面管理SSH协议,即不支持windows系统。
5、配置中心禁止出现明文密码
6、VPN权限仅限运维中心开通,堡垒机仅限公司员工使用,禁止第三方申请
配置文件明文密码 V1.0
金科的数据库密码加密流程:
1、运维通过加密工具生成RSA密钥对,公钥共享给DBA
2、DBA创建数据库账号密码,用RSA公钥加密后,发给研发人员
3、运维人员将RSA私钥放在生产服务器中某个路径下,通知给研发人员
4、研发人员把密文、工具路径写入配置文件
达到的效果:
配置文件禁止明文密码
开发看不到明文密码,私钥不在项目代码中,所以也无法解密
DB的明文密码,除了DBA没人知道(读取明文密码只在内存中)
配置文件明文密码 V1.1
中间过渡方案,将V1.0中的加密工具替换成KMS系统,但依然是口令硬编码
1、运维在KMS控制台创建RSA密钥对,获取对应KeyID
2、DBA在运维平台,创建数据库账号密码
3、运维平台调用API,将KeyID+明文口令传递给KMS,KMS执行公钥加密后,返回口令密文
4、研发人员拿到KeyID+口令密文,写入配置文件
5、业务服务启动时,将KeyID+口令密文传递给KMS,返回明文口令在内存中
配置文件明文密码 V2.0
1、DBA在运维平台,创建数据库账号密码
2、运维平台调用CreatePWD API,将明文口令传递给密码托管系统(不用返回密文)
3、密码托管系统调用KMS,保障密码安全(内部实现)
4、研发人员在配置文件中,password=GetPWD()函数
5、业务服务启动时,加载配置文件,从密码托管系统获取明文口令在内存中
达到的效果:
配置文件中没有硬编码明文or密文
口令可定期轮换