大型IT公司如何防止运维偷窥和篡改数据库?

如题所述

主要从事前审批,事中监督,事后审计三个方面来进行管理和控制。
1.事前审批。用职权分离、最小授权和检查审批。能接触数据的人必需要拿到审批,没审批去接触、修改数据的,只要发现一次你就完蛋了。以尽量少的人,和尽量低的权限去接触数据。登录前会过几道关,来检查你是否有审批。
2.事中监督。以网络物理隔离、门禁、登录用key,来保证你必须在指定地点才能登录。操作全程受到专人检查和监督,保证操作的内容与审批内容相符,登录用户有多个级别,一般使用最小权限用户,能使用root的一般只能是dba。
3.事后审计。审计系统、堡垒机。登录时必须先登录堡垒机,再由堡垒机登录数据库,操作过程全程视频录像,以上用来保证事后可被审计。事后由专门岗位进行日常审计,检查操作与审批内容相符、使用最小授权用户登录等等各种合规检查。
审计稽查部门会进行全流程检查,以保证各个环节都是落实到位的。
总之,你想干点什么,分分钟就给你查出来,你要豁的出去,想干就干吧。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-12-06

先说一些一些背景信息:AppAnnie有两个相关的团队,一个是运维,一个是安全。从线上操作来说,运维和安全的权限是一样的。研发团队大多数人都没有访问生产环境主机的权限,只有极个别Leader有权访问,但是每次访问都需要安全组授权,一般只有在处理紧急问题时才会允许。
1、每个人(运维&安全)都使用个人账号登陆服务器,不允许使用root登陆。线上的所有命令都会被记录到系统日志中,包括通过sudo执行的命令,SUDO_USER也会被记录下来,因此主机上执行的所有命令,都可以找到是谁在什么时间做的。所有主机上安装了ossec,监控命令日志,对于所有可能的敏感操作(如sudo、rm、对某些路径的访问等等),都会立刻发邮件到安全组+运维组的列表里。因此,运维和安全组里的任何人执行的命令,都是时刻接受两个组所有人的监督的。除非你能找到漏洞绕过这个命令日志监控,否则很难偷偷的做一些事情。
2、数据库的主机有着更严格的安全策略。上面的防火墙设置了按会话流量切断连接的的规则,一个SSH会话的流量超过100K之后就会强制断开,因此,就算你想select *,然后手动从终端上复制数据出来,能得到的数据量都非常有限(更何况你执行的所有命令都有集体监督)。
3、研发人员有时候确实需要访问一些生产环境数据的,需要向安全组申请。安全组同意后,由运维组写脚本dump数据,这个脚本中会在dump数据时,将敏感信息隐藏掉(比如替换成无意义的随机字符),这个脚本给安全组审查同意后,再去生产环境执行。最后把dump出来的数据拷贝回来。(拷贝时,会在防火墙上开一个临时规则。)

本回答被网友采纳