文章插图
问题:像 BAT 这类公司,以及各种银行,金融行业的 IT 运维,他们有着服务器的最高权限,那么这种行业如何对运维的操作权限进行审计和监管?
以下为知乎用户@张成的回答:
曾经在AppAnnie做过一段时间运维,分享一下AppAnnie的做法 。
先说一些一些背景信息:AppAnnie有两个相关的团队,一个是运维,一个是安全 。从线上操作来说,运维和安全的权限是一样的 。研发团队大多数人都没有访问生产环境主机的权限,只有极个别Leader有权访问,但是每次访问都需要安全组授权,一般只有在处理紧急问题时才会允许 。
接下来讲一些具体的措施或者操作方法 。
1、每个人(运维&安全)都使用个人账号登陆服务器,不允许使用root登陆 。线上的所有命令都会被记录到系统日志中,包括通过sudo执行的命令,SUDO_USER也会被记录下来,因此主机上执行的所有命令,都可以找到是谁在什么时间做的 。
所有主机上安装了ossec,监控命令日志,对于所有可能的敏感操作(如sudo、rm、对某些路径的访问等等),都会立刻发邮件到安全组+运维组的列表里 。因此,运维和安全组里的任何人执行的命令,都是时刻接受两个组所有人的监督的 。除非你能找到漏洞绕过这个命令日志监控,否则很难偷偷的做一些事情 。
2、数据库的主机有着更严格的安全策略 。上面的防火墙设置了按会话流量切断连接的的规则,一个SSH会话的流量超过100K之后就会强制断开,因此,就算你想select *,然后手动从终端上复制数据出来,能得到的数据量都非常有限(更何况你执行的所有命令都有集体监督) 。
3、研发人员有时候确实需要访问一些生产环境数据的,需要向安全组申请 。安全组同意后,由运维组写脚本dump数据,这个脚本中会在dump数据时,将敏感信息隐藏掉(比如替换成无意义的随机字符),这个脚本给安全组审查同意后,再去生产环境执行 。最后把dump出来的数据拷贝回来 。(拷贝时,会在防火墙上开一个临时规则 。)
总结的说,有这几点:
1、制度上最小权限原则 。虽然你有root(sudo)权限,但你不允许执行未经许可的命令,而且除非必要,不允许查看敏感数据 。比如前面讲的导出数据库中的数据时,运维其实也是看不到生产环境中的敏感数据的 。
2、相互监督 。我们当时运维+安全+CTO共6个人,6个人都会接收命令日志告警(但CTO没有生产环境的账号,他接收告警纯粹是监督) 。如果要做坏事,除非这6个人都达成一致,一起干 。如果真的到这个局面了,那基本上就是CEO被架空了,这帮人要携数据跑路了 。
AppAnnie这样做的代价是,凡是与安全相关的流程都很冗长,一件事要拖很久 。除了上述提到的事情,平时研发团队的代码里如果要用到加密,那么加密的算法、参数也都是要安全组审查的,没通过审查是不能上线的 。代码里所有的数据库操作也都会有审查 。
而当时的安全组其实就一个人(其他都是实习生,没有决定权,这个人曾经在某银行做安全),这个人经常在世界各地的多个办公室之间跑,因此常常一个审查要等上一周 。但是公司层面愿意为了安全而妥协上线效率 。
我觉得,企业文化中的安全意识非常重要 。国内的绝大多数公司,并没有这样的安全意识,大家的安全仅仅是建立在对人的信任之上,这是很可怕的 。而且,在安全和更高的运作效率上,国内大多数企业是倾向于后者的,大家嘴上都说安全很重要,但实际上在大家的内心中,安全与我有何干?又不算KPI的 。
【大型 IT 公司如何防止运维偷窥和篡改数据】
推荐阅读
- 如何养三角梅 怎么养三角梅
- |如何对员工做背景调查?
- 华为|人才紧缺的几大专业,各公司都抢着要人,毕业后年薪估值30万!
- 淘宝直播怎么设置特别关注 淘宝上如何关注主播
- 潘石屹的公司上市了吗 潘石屹的soho公司是什么
- 支付宝添福红包是现金红包吗,2022支付宝添福红包如何获得
- 晕车、晕船、晕飞机!难受!外出游玩都成难题!如何预防与治疗?
- 退休工资如何计算?现在退休金多少岁可以领?
- 蒂亚多肉徒长了如何修剪 蒂亚徒长怎么办
- 烟台搬家公司有哪些