在企业云上安全中,除了服务器内部漏洞风险和DDOS攻击等外部攻击风险外,还有一种风险是内部用户风险,由于这类风险往往是由内部用户的异常操作造成的,且内部用户的操作在安全检测中天然拥有高可靠性,因此具有极高的隐蔽性,在真正发生安全事件后往往引起巨大危险。
腾讯云安全运营中心中带有的UBA模块,即用户行为分析模块,在云上安全中可帮助企业做好用户安全的管理,该模块主要基于腾讯云用户在控制台的相关操作记录以及使用云进行自动化操作的相关记录,进行用户安全性分析,并提示运维人员及时处理相关风险。
由于云后台只是粗略记录了用户相关操作的事件类型,因此无法仅通过用户的单条操作记录进行风险判定,只有在某些层面上的统计量才具有一定意义。UBA模块正是在这种背景下,提出了基于风险场景的用户安全检测机制。下面我们将围绕用户安全检测机制的三大模块及其应用场景,为大家介绍如何利用云原生SOC降低内部用户操作风险。
检测机制由三个模块构成:用户身份识别模块、检测阈值生成模块以及场景检测模块。
一、用户身份识别模块
在实际工作中,不同子用户担任的角色不一样,涉及的权限与工作量也必然不一样,为了方便用户自查以及后续模块的利用,需要对用户进行身份的识别。目前,一个用户的身份由四个身份因子组成,分别为:是否高风险、是否api、是否人类以及操作密度。具体含义如下所示:
是否高风险:该用户在14天内的操作记录是否涉及高风险权限(用户权限提升、资产高风险权限修改)
是否api:该用户在14天内的操作记录是否存在规律性
是否人类:该用户除去规律性操作外是否存在其他操作
操作密度:该用户7天内的操作密度。由7天内每天操作记录总数的四分位数得出,具体规则如下所示:
根据得到的用户各身份因子,可以得到用户的具体身份,规则如下所示:
在获取用户身份后,管理员可以审核用户身份是否符合预期,并及时处理不符合预期的用户。其中high_risk_api_ops和high_risk_ops用户在一天记录量低于200的情况下进行了高风险操作,需要核查是否安全。
二、检测阈值生成模块
阈值即一个用户在某个场景下统计量的预期大值,但是不同身份的用户的预期值是不一样的,例如一个运维用户和一个普通观察用户的预期值不一样,运维用户根据工作量和负责事务的不同预期大值也不一样。因此阈值生成模块的目的是根据该用户历史的数据以及用户身份自动生成用户在每个场景下的检测阈值。
本模块在阈值生成中遵循一个假设,即用户的操作数量符合正态分布,并按照置信度及一定的规则取合适的值作为最终的检测阈值,具体的生成规则如下所示:
(一)用户权限提升
(二)资产高风险权限修改
(三)用户权限遍历
三、场景检测模块
目前uba模块已有的风险场景有以下四种:用户权限提升、资产高风险权限修改、用户权限遍历、新用户高危操作。
(一)用户权限提升
该类场景聚焦于权限提升类的操作事件,例如绑定某一策略到特定用户。这一类操作事件在实际工作中基本由运维人员操作产生且大多是经由主账号操作产生。若一个子账号在短期内进行的权限提升类操作次数异常,则该用户可能被盗号或操作行为不当,均需告知用户及时排查处理。
基于以上需求,用户权限提升场景的检测逻辑如下:
在上述检测逻辑中,将主账号和子账号区分,对于主账号的风险评分更加宽松。
(二)资产高风险权限修改
该类场景聚焦于资产高风险权限修改类的操作事件,例如修改安全组规则。这一类操作事件在实际工作中基本由运维人员操作产生,但是可能存在运维人员为了方便工作,为自己的子账号提权后也进行了该类操作。由于目前未对子账号身份作进一步划分,因此未对这类子账号做特殊处理。这类场景与用户权限提升场景的检测逻辑类似,如下所示:
因为在某些业务场景中,可能存在需要周期性修改规则的需求,因此在上述检测逻辑中,利用了时间序列异常检测算法进行了中间处理,目的为排除这种周期性的影响。
(三)用户权限遍历
该类场景聚焦于用户在单位时间内涉及的操作事件种类数。结合历史数据以及实际工作需求来看,一个行为正常的子账号在单位时间内操作事件的种类必然不会太多,若子账号在一定时间段内执行的操作种类数超过预警值,则可以说明该类用户存在试探性操作的可能性,可能是对业务不熟悉或者黑客入侵。
基于以上需求,用户权限遍历的场景检测逻辑如下所示:
(四)新用户高危操作
该类场景关注的是用户在被创建后的一小时内是否存在风险。在实际工作环境中,一个低风险的新用户在被创建后一般不会进行大量高风险操作,而是会较小心的查看一些数据,例如查看服务器流量情况,这类操作本身就是低风险的,而且涉及的事件类型也比较固定。因此,首先对所有的事件类型进行粗略的风险评估,抽取其中高风险的事件类型,然后重点关注用户新入后的操作记录中涉及这些高风险事件类型的操作。若高危操作过多,则该新用户可能为误操作或为黑客创建。
基于以上需求,新用户高危操作的场景检测逻辑如下所示:
四、实际案例解析
在UBA模块正式上线运行后,腾讯云安全运营中心也陆续接到了一些客户关于告警的反馈,其中来自某互联网公司的反馈引起了安全人员的注意。该客户反馈其名下一个子用户存在用户权限遍历告警,还在UBA概览页的登录来源地图中发现了来自境外的登陆信息。
在排查用户权限遍历告警中,我们发现该子用户当天进行了大量的存储桶相关操作以及一些权限检查操作,因操作种类数超过了场景检测阈值,因此进行了相应告警。之后又分析了用户操作行为日志中来自境外的操作记录,发现这些操作记录均属于API调用。调查到这里,安全人员发现了该事件的严重性,在与相关人员沟通后,确认到该子用户的SecretKey已经泄漏,客户确认该子用户操作与以往不符,随即进行了一系列响应和补救措施,防止更严重的安全事件发生。在确定风险来源后,除了删除已经泄漏的SecretKey外,在安全人员的建议下,该用户还开启了安全运营中心的泄漏检测模块,防止以后类似的事情发生。