远离“人祸” ,关于安全运维,我们建了个系统……

216 阅读8分钟
近日,微盟“删库”事件引起广泛关注,再次给广大企业敲响运维安全及数据安全警钟。面对日渐复杂的企业IT系统,完善企业运维安全体系,让运维自动化、规范化,消除潜在风险,是企业当前急需解决的问题。


构建企业运维安全体系

随着数字化的高速发展,企业业务系统承载巨大价值的业务数据,运维安全不言而喻,而恶意破坏或误操作而导致的运维安全事件却屡见不鲜。此类事件一旦发生,将给企业运作带来巨大影响及重大的经济损失。面对运维安全的潜在威胁,企业如何做到防患于未然?如何降低运维和数据安全风险,避免“删库跑路”或误操作等“人祸”再次发生?


作为曾经的信息安全专业学生,目前负责运维系统建设和交付的工程师,虽然不能深入给大家介绍怎么弄个蠕虫、木马、病毒等,但是可以先跟大家介绍下信息安全的体系结构。


面向目标的安全体系结构



信息安全的三个最基本目标(CIA 三元组):机密性(Confidentiality)、完整性(Integrity)、可用性(Availability)。




面向应用层次的安全体系结构





面向过程的信息安全保障体系




OSI(开放系统互联)安全体系结构



当然,整个信息安全体系是个非常庞大的课题,在每个主题下,都有很细很深的知识点,比如密码、网络、认证体系、访问控制、入侵检测、数字水印等,但是各位只要粗略的了解上面的几个安全维度,就可以很直观地把这次事件出现问题的大致定位,方便下文针对此次事件的回顾反思。

从安全目标三要素上来看,这次事件破坏了系统的可用性,造成300万用户中的核心7万多用户的服务不可用,微盟市值蒸发10多亿,由于服务中断对用户间接损失暂不可估。

从安全基本要素来看,基本上系统、信息和人员三要素都有不同程度的缺失,比如运行安全和数据安全以及人员管理不到位等,这个后文细说。

从安全过程上来看,系统能够在故障后几分钟内识别告警处理,整体响应和恢复过程也还算迅速,因此主要的问题还是发生在事前的保护环节

企业运维安全核心要点

不要把鸡蛋放在一个篮子里——备份的重要性

在服务器业务系统的日常运行过程中,可能会存在人为误操作或者一些无法预见性的事件发生,最终导致数据丢失。为了减轻对业务系统影响,需要最大程度的减小数据丢失,在最短的时间内恢复数据,通过定期执行合理、完善的备份策略,可以在必要时最大限度的减少业务停机时间以及数据丢失所带来的影响。

无论是磁盘RAID阵列、磁带冷备份数据,还是两地三中心的实时备份业务架构,只要能够定期执行、并保证介质安全(注意,很多企业恢复的时候才发现备份的数据有问题),相信对业务的影响应该有限。

很不幸,这次事件之所以损失如此之大,原因就是生产的备份数据也被删除了!

显然,这个核心人员权限足够大。

权限控制的重要性

针对访问权限过大的问题,业内使用访问控制(Access control)来管理用户对资源的访问权限,其核心要素是访问控制策略的制定

访问控制的策略模型通常有DAC(自主访问控制)、MAC(强制访问控制)、RBAC(基于角色的访问控制模型)三种。

自主访问控制模型:特权用户为普通用户分配访问权限,可以授予或收回普通用户的权限,灵活性较高,但是特权用户的用户权限太高。


此次事件,这位核心运维人员显然拥有过高的操作权限了。


强制访问控制模型:相较于DAC,增加了多级访问控制,每次访问的主体(提出资源访问的实体)和客体(被访问资源实体)都有对应的等级,通过主客体之间的登记比较,决定主体对客体的访问形式。


基于角色的访问控制模型:引入了组合角色的概念,将主客体进行进一步抽象,是目前大部分系统中常用的解决方案;RBAC模型遵照三个基本模型:

  • 最小特权原则

  • 最小泄露原则

  • 多级安全策略

如果基于角色访问控制,备份数据和生产数据的访问权限分开,状况就会好很多。

操作审计


除了事前控制,在运维过程中,也需要进行审计,最好能实时审计,这样才能防止有人不遵守规范,从而带来损失。例如:


  1. 通过远程运维审计系统,增加堡垒机进行服务器管理;

  2. 采用动态令牌等身份ID认证,实现抗抵赖性;

  3. 运维审计系统可以设计高危指令禁止或提醒确认机制;

人员管理


任你技术通天、严防死守,抵不住内部人员一顿操作猛如虎!所以,最大的风险永远不是规章制度、技术手段,而是——人。


所有的流程规则、技术控制,也都是为了防止人的风险:

  • 加强人员的技术培训和管理培训,增强安全意识、培养职业道德;

  • 对员工以应有的尊重,大多数技术岗位人员,没有什么深仇大恨不会做这么绝;

  • 适当分工,小公司为了节约成本,一个人干两个人甚至多个人的活儿,连自己的分内事儿都容易忙中出错,更别提有人员分担工作或者A/B互补了;

所有以上建议,无非就是满足信息安全里的:可追溯性(Accountability)、抗抵赖性(Non-repudiation)、真实性(Authenticity)、可控性(Controllable)这些原则而已。


血泪经验做成一个自动化运维产品


上面的这些建议可不是信口开河,都是从血与泪的经验中总结出来的。


关于自动化运维,我们认真做了个产品!

BeyondBSM自动化运维系统中不光沉淀了多个客户多年的运维使用经验,而且自己在实际过程中也深有体会,因为在运维一旦自动化后,原来的效益会指数级放大,同样的,风险也会指数级放大!

在设计上,BeyondBSM自动化运维系统有以下几个考虑:

基于BRAC模型的权限控制和认证管理

针对不同角色分配系统、菜单、按钮权限;人员和角色可以灵活配置:


所有按钮操作的权限都可进行细化,防止不具有权限的人进行操作:


所有脚本执行,均纳入审批流程,防止单个人员完成整个运维操作:


灵活的认证方式

系统脚本执行引擎与各维护资源均采用互信方式,防止密码泄露。


提供针对特定场景的独立主机认证方式管理(只有创建人有权限,密码采用不可逆加密存储)。

相对隔离的上下游数据

系统的用户数据均对接企业内部sso、ldap,防止后门账户。


所有操作的资源对象,都是由上游资产管理等类CMDB系统提供,保证了数据的准确性和一致性;同时阻止了未纳入系统的资源控制。

人机隔离和安全审计

系统底层通过自动化执行引擎worker访问机器,隔离了人直接操作机器;

图形化编排引擎

所有脚本执行均尽量通过图形化选择、编排等形式完成,最大可能避免引入人为错误;


同时所有操作(无论系统内部操作还是运维执行)均有审计日志;



实时查看脚本执行结果:


对于脚本中含有的高危命令,具有事前识别的机制


支持定时任务:


内置备份恢复等常用场景:



后记

有了自动化运维系统的帮助,相信很多企业的员工可以从多个方面减少出错的机会和概率,降低了被删库跑路的风险。


以BeyondBSM自动化运维产品为核心的运维系统已经交付多个金融行业客户使用,其中包括中国某知名卡机构,该套系统在生产环境平稳运行三年多,极大地提高了运维人员的工作效率和便利性,支撑企业业务快速稳定发展。