安全审计关键设备运维策略设置
什么是关键设备运维策略

从安全运维的角度来看,资源授权满足了主机层面的安全管理需求,但是一旦登录到主机后,团队成员便可对该台主机进行任何的操作,如果出现问题,只能通过事后审计来回溯追责。所以我们还需要一种手段,对于一些安全要求更高的主机来讲,即使登录了主机,成员在其中执行的操作,依然处于安全监管之下,对其所执行的高危指令进行拦截,提前防范运维风险。

在行云管家中,我们把这些安全性更高的主机叫做关键设备,我们通过创建关键设备运维策略组与关键设备进行关联,而将在这些主机上所执行的高危指令的定义以及相应的处理方式叫做关键设备运维策略。

展开功能模块菜单,选择“运维策略/关键设备运维策略”,进入相应的策略功能设置。

新增关键设备运维策略
创建运维策略组

点击“创建新的关键设备运维策略组”,在弹出的窗口中,输入了策略组名称后,点击“创建”即成功创建一个关键设备运维策略组;

当运维策略组创建成功后,系统会在这个运维策略组中自动为您创建一个“默认运维策略”,这个默认策略授权给当前团队全体成员且无法更改,您可以在成功创建运维策略组后直接对设置该默认运维策略;

您还需要添加关键设备,只有在关键设备列表中的主机,才会受该条运维的影响。

添加关键设备

首先您需要根据业务情况定义好哪些设备主机属于关键设备,关键设备允许跨云账户添加,但每台主机只允许添加到一个运维策略中,不能重复添加;

点击相应策略里的“添加主机”链接,弹出对话框;

在添加主机对话框中选择要加入的主机,已经关联过运维策略的主机将不会再显示,选择完成后点击“添加”即可;

在运维策略组中创建策略

1.在创建成功的运维策略组中,点击“创建策略”,进入创建策略向导:

2.填写策略名称等基本信息,点击”下一步“:

3.为该策略关联角色,点击“下一步”:

4.通过拖拽设置策略优先级(了解策略优先级),点击“下一步”:

5.完成策略创建,关闭向导:

策略优先级

由于同一个团队成员可能属于多个角色,而一台主机仅可以关联一个策略组,因此可能导致一个用户对运维主机时,对应了多个运维策略。针对这种情况,我们引入的运维策略优先级的概念;当某个成员操作目标主机时,会找出该成员所属角色,在这台主机所在策略组中对应的所有的运维策略,随后根据优先级,最终选择一个优先级最高的运维策略。

在每个运维策略组中,系统自动创建的默认策略优先级最低,且不可调整。

您可以通过拖动某个运维策略组中的策略来调整它们的优先级:

运维策略设置

运维策略是安全审计的核心功能,在您成功创建了一个运维策略之后,您需要对这个策略进行配置,让运维操作真正的按照您的业务要求规范起来。点击对应运维策略的“策略编辑”按钮,进入运维策略的配置界面。策略配置主要包含两部分:基础运维策略设置和审批策略设置;

基础运维策略设置

我们可以看到,基础运维策略设置主要有以下几项内容,下面分别介绍每一个设置项:

审计录像

访问运维策略里的关键设备时,是否强制进行审计录像。这里需要注意,在云账户中也存在该项设置,而一台主机访问时是否强制录像,同时受到它所在的云账户和运维策略的设置影响,只要其中有一个设置为“强制录像”,那么访问时即会进行强制录像;

会话文件传输

在创建关键设备的会话时,是否允许在会话中进行文件传输,对于加入到运维策略中的主机,文件传输是否开启,取决于主机所在云账户的相关设置(云账户属性/安全设置/文件传输);

会话背景水印

开启会话背景水印后,会话的背景将带有密密麻麻的会话创建者的用户昵称(不唯一、可修改)和用户ID(唯一、不可修改)信息,适用于安全保密等级较高的主机,禁止团队成员擅自将主机上的任何数据外泄。当管理者发现了外界出现了相关主机的截图或对屏幕的拍照,可以通过图片上遗留的会话创建者信息查找泄露源头;

运维时段设置

在某些特定的场景下,我们需要对主机可访问的时间段进行控制,例如:只有在工作时段才允许登录行云管家访问主机,因此需要将运维时段设置为09:00到18:00,那么可以按照以下指引进行设置;

编辑策略中的“运维时段”,打开“运维时段设置”窗口,运维时段有3种设置方式:

1、允许任意时段访问:如果选择该方式,那么访问时段将不做任何限制;

2、只允许指定时段访问:以一天为维度,指定哪些时间段是可以访问,最小粒度为15分钟;

3、设置周期性访问规则:以一周为一个周期,分别设置每天的哪些时段可以访问,适合区分工作日与非工作日,最小粒度为1小时;

在非运维时段访问主机,如果出现以下提示,则表示配置生效;

主机登录事由

如果您了解团队成员的每一次会话访问操作的原因和目的,您可以这是主机登录事由为“强制填写”;

双因子认证

也叫多重身份认证,开启后,在执行重启主机、停止主机、修改主机操作系统密码、修改管理终端密码、创建主机会话、快照回滚、更换系统盘、初始化磁盘、卸载数据盘、挂载数据盘等操作时,会要求以微信或短信接收验证码的方式进行二次身份确认,确保访问者的身份合法性;

一旦某个运维策略设置了开启双因子认证,那么该策略中的所有关键设备在访问时,均会要求进行二次身份认证,目前支持微信、短信以及OTP动态令牌三种认证方式,这也意味着开启双因子认证后,需要团队成员在个人资料中绑定微信/手机或激活动态令牌;

点击“双因子认证”的编辑图标,打开“修改双因子认证”对话框,并选择对应的应用范围;

访问关键设备时,将会弹出双因子认证对话框,您可以自行选择采用哪种方式进行双因子认证;

您的微信/短信将收到一个四位数字验证码,将验证码回填至访问凭证中,如果使用OTP动态令牌,您需要将动态令牌APP中的验证码回填至访问凭证中即可访问该设备;

审批策略设置

目前,审批策略设置支持主机登录审批和指令审批规则两个设置项:

主机登录审批

主机登录审批开启后,团队成员在创建关联主机会话时,将需要获得相关角色成员的审批,审批通过后,会话才能被创建。此设置开启后一定程度上将影响运维效率,适用于安全级别较高的主机,默认情况下不开启。

团队成员在访问该运维策略关联的主机时,需要输入主机登录事由,等待审核人员的审核。

提示:审核角色中的成员在访问相关主机时,无需通过审核,可直接登录。

主机登录申请的审核

团队成员在发送了主机登录申请后,相关的审核角色成员有两种方式接收审核消息:

a)站内审核消息:审核角色成员将收到站内消息,点击查看后进入“安全审计/运维策略审批”,在“待审批”标签页里将列出当前所有待审批的申请,只需按照实际情况选择同意执行或拒绝执行即可。查询审批历史请切换到“已完成”标签页;

b)微信审核消息:审核角色成员账号如果绑定了微信,其微信将收到指令审批信息,可直接点击进入进行审批操作;

指令审批规则

您可以为当前运维策略开启指令审批,包含白名单和黑名单两种,如果是白名单,那么将只允许指令规则中的指令执行。如果是黑名单,团队成员在操作中执行的指令只要被敏感指令规则匹配,即执行相应的响应动作。

指令审计角色:敏感指令如果触发的是审核操作,那么将推送审核消息给指令审计角色成员,由他们审核通过后,敏感指令才能在主机上执行;

指令审核超时时长:敏感指令触发审核操作时,如果在超时时长内未处理,指令将因超时被取消执行。

指令审批规则是安全审计的重要特性,可以有效避免团队成员进行违规操作。为了达到对敏感指令的拦截,我们首先需要有效的定义指令规则;

默认情况下,指令规则列表为空,用户可按照业务情况,添加相应的规则;

在定义敏感指令时,还需要指定指令匹配规则及相应的响应动作,只要在关键设备中执行的指令被匹配,既会触发指令审计策略,按照用户设定的响应动作进行处理;

目前支持以下三种指令匹配方式:

完全匹配:适合匹配某条指令的全部操作,该指令所有形式的执行都会被匹配,如指令规则是yum,使用完全匹配规则,那么用户输入yum、yum install、yum remove等相关指令都会被匹配;

正则表达式:支持正则表达式模糊匹配,适合匹配某个指令的部分参数,如只需要匹配yum安装和卸载操作,指令规则为yum (install|remove),那么用户输入yum search不会被匹配,但是输入yum install、yum remove会被匹配;

通配符:支持通配符模糊匹配,使用场景和正则表达式类似,但语法有些许差别,如同样匹配yum安装和卸载操作,指令规则为yum {install,remove};

更多指令规则及匹配方式请见:运维策略指令规则设置参考

目前支持以下四种响应动作:

指令提醒:对于团队管理者希望团队成员谨慎执行却时效性较高的一般敏感指令,可设置为“指令提醒”,在执行时,需要由成员自行确认后执行;

指令审核:对于团队管理者认为会带来一定风险的敏感指令,可以设置为“指令审核”,这类指令执行时,会被临时阻塞,待指令审核后才能执行;

指令阻断:对于团队管理者认为风险较高不希望成员执行的敏感指令,会被直接阻断,不允许执行;

中断会话:对于团队管理者认为会带来极大危险性的的恶意指令,建议设置为“中断会话”。

敏感指令审核

团队成员在触发了指令审核响应动作时,相关的审核角色成员有两种方式接收审核消息:

a)站内审核消息:审核角色成员将收到站内消息,点击查看后进入“安全审计/运维策略审批”,在“待审批”标签页里将列出当前所有待审批的敏感指令申请,只需按照实际情况选择同意执行或拒绝执行即可。查询审批历史请切换到“已完成”标签页;

b)微信审核消息:审核角色成员账号如果绑定了微信,其微信将收到指令审批信息,可直接点击进入进行审批操作;

注意:团队中的指令审批角色可能有多个成员,每个成员均会收到审批消息,审批操作以时间为顺序,一个申请只能被审批一次,其他成员将不再允许对该笔申请进行审批。

特殊场景下如何绕开指令黑名单拦截

指令黑名单一旦设置,所有团队成员执行的指令被认定为敏感指令时,均会执行相应的响应动作。但在某些特殊场景下,如果需要给个别成员较高的权限,在操作时不受指令黑名单的影响,可以为其赋予临时禁用指令审批规则的权限;

进入“团队/权限管理/角色管理”,为这类成员创建一个专门的角色,如“禁用指令审批角色”,将相应成员加入到角色中;

进入“团队/权限管理/功能授权”,找到“安全审计/禁用指令审批规则”,将上一步创建的角色“禁用指令审批角色”加入到该功能权限中;

该角色中的成员在访问会话时,在会话详情中,可以看到“指令审批”,只要当前主机属于关键设备且开启了指令黑白名单,均可将指令审批设置为关闭,这样在当前会话中,所执行的指令将不受运维策略的影响。

运维策略指令规则设置参考

行云管家在会话中对敏感指令的拦截,并非是匹配用户输入的完整内容,而是对用户输入的内容进行分析,找到这条内容的核心指令,再将这条指令与运维策略中设置的指令规则进行匹配。因此在设定指令规则时,只需填写指令本身即可,无需考虑指令所在目录等元素,下面列举几个指令规则设置场景;

彻底拒绝某个指令的执行

如果需要彻底阻断某个指令,建议使用指令+完全匹配的方式,不论用户在会话中是否带有参数,都将被拦截。例如,为了避免有人通过shutdown重启服务器,管理员可以按以下规则进行设置:

  • 指令规则:shutdown;
  • 匹配规则:完全匹配;

那么当用户尝试在会话中以shutdown、shutdown -r now、./shutdown.sh等任何形式执行,此条命令会被自动阻断;

拒绝某个指令的部分参数

如果仅需要拦截某个指令部分参数,例如,不允许通过yum来安装和卸载,但允许执行yum其它操作,可以按以下规则进行设置:

  • 指令规则:yum (install|remove);
  • 匹配规则:正则表达式;

那么当用户尝试在会话中以yum install和yum remove时,此条命令会被自动阻断,但用户执行yum search时将被允许;

阻断对某个文件的操作

要阻断对某个特定文件的操作,例如,不允许删除root目录下的aaa.txt,文件,可以按以下规则进行设置:

  • 指令规则:rm\s.*/root/aaa\.txt;
  • 匹配规则:正则表达式;

那么当用户尝试在会话中以rm /root/aaa.txt时,此条命令会被自动阻断,但用户执行rm /aaa.txt时将被允许;