UEBA场景之数据库安全

admin 2021年5月6日04:24:54评论234 views字数 4045阅读13分29秒阅读模式


一、UEBA场景是什么


 腾讯御见UEBA(用户实体行为分析)使用一系列分析方法(统计学习、机器学习等)通过分析用户实体相关行为日志,对用户及其实体进行风险监测分析和风险评估,最终识别内部风险用户和风险实体。通过持续跟踪用户和实体的行为,可以全面地了解内部威胁风险,将原始日志、活动、告警、事件与用户和实体关联,构建完整的用于分析、调查的事件上下文。

 

参考Gartner建议和业界典型方案, UEBA进行分析的数据源需要包括系统/应用日志、用户活动审计日志以及安全设备检测到的风险事件三大类。以腾讯UEBA为例,当前支持分析的数据源包括Linux系统日志、Windows安全事件日志日志、堡垒机审计日志、VPN审计日志、零信任网关审计日志、数据库审计日志,以及天眼云镜HIDS、御界NTA等的安全检测事件。腾讯UEBA的具体场景是按照以上数据源类型进行划分的,每个场景大类下又细分为多个具体检测场景,而我们的UEBA风险事件检测就是基于细分的具体场景进行检测的。


本文主要介绍的是数据库安全场景的探索和实现。

 


二、数据库安全场景探索


1、数据库审计日志获取


我们常用的免费数据库一般是MySQL,或者是MySQL数据库的衍生版MariaDB。MariaDB虽然被视为MySQL数据库的替代品,但它在扩展功能、存储引擎以及一些新的功能改进方面都强过MySQL,且是完全开源的。MariaDB跟MySQL在绝大多数方面是兼容的,对于开发者来说,几乎感觉不到任何不同。由于我们目前的实际研发环境就是基于MariaDB的,因此我们选择MariaDB作为数据库安全场景探索的开始。

 

MariaDB_5.5.37版本和MariaDB_10.0.10以后版本的自带适配的audit插件,能够方便地收集数据库的操作。首先查看数据库审计插件存放的目录:

show variables like '%plugin%'


如果server_audit.so安装程序不在plugin_dir的目录下,需要先将server_audit.so下载到plugin_dir的目录下。找到配置文件my.cnf所在的位置,并向my.cnf文件中增加如下配置:


plugin-load=server_audit=server_audit.so

server_audit_logging = ON(打开审计日志开关)

server_audit_file_path = **(审计日志存放路径,该路径下会生成一个server_audit.log文件记录相关操作记录)

server_audit_events = 'CONNECT,QUERY,TABLE'

server_audit_incl_users = test(指定哪些用户的活动将记录,connect将不受此变量影响)


然后重启数据库:

service mysqld restart


查看audit插件的参数情况可以运行命令:

show variables like '%audit%'

 

2、数据库审计日志分析


配置好数据库审计日志后,就可以在server_audit_file_path下的server_audit.log文件中查看指定用户的活动记录,记录截图如下。


UEBA场景之数据库安全

UEBA场景之数据库安全

  

一条审计日志的组成结构如下为[timestamp][serverhost][username][host][connection] [queryid][type][database][object][retcode]。


其中serverhost代表数据库所在的服务主机名,username代表该条记录的操作用户,host代表该操作执行所在的服务器,一般为localhost、127.0.0.1或实际ip地址如192.168.190.111。connection代表该记录所属的连接段id,该字段一般在登录数据库时更新。queryid代表本次操作的id。type取值最常见的有CONNECT,DISCONNECT,QUERY几种。如上图所示,CONNECT代表连接数据库,DISCONNECT代表断开数据库的连接,QUERY代表命令行的查询操作。database代表当前操作的数据库。object代表命令行的具体内容。retcode代表当前操作执行是否成功,如果执行成功则为0,否则为错误代码。

 

3、包含数据库操作的其他类型日志


     数据库审计日志中的信息能帮助我们识别很多异常行为,但是仍有一些数据库操作无法被记录在数据库审计日志中。例如mysql登录命令mysql -h 127.0.0.1 -u root -p -P 3306,数据库数据导出命令mysqldump -u username -p dbname > dbname.sql等。在这种情况下我们其实是需要记录linux系统的cmd命令,然后对这些命令进行分析检测。

 

     在我们已支持接入的数据源中,堡垒机日志、HIDS日志中一般是包含cmd命令相关的日志的。因此,在UEBA已经接入业务环境中的堡垒机日志或主机HIDS日志的情况下,如果想审计mysql、mysqldump相关的数据库安全命令,可以直接基于堡垒机或HIDS中的命令日志。

 


三、数据库安全场景设计和实现


1、场景主体划分


腾讯御见UEBA的分析场景既包括围绕员工/用户行为的行为分析、风险识别,也包括针对特定设备、主机进行的失陷检测、异常行为识别。两者对应的场景设计和实现根据数据源的不同有所不同。


对于从数据库审计日志中获取数据所设计的场景的主体有两种情况,一种是主体既能对应到设备又能对应到用户,另一种是主体只能对应到设备而无法对应到用户。这是因为通过数据库审计日志中的host获取到的ip代表当前登录数据库的设备ip,该ip可以结合设备的其他标识信息映射为设备id,因此数据库审计日志场景的主体是肯定能对应到设备的。但是由于登录数据库的设备很大可能是堡垒机、跳板机这类公共服务器,该公共服务器并不一定能够挂靠到具体某个用户,因此仅根据数据库审计日志数据设计的场景是存在无法挂靠到用户的情况的。


对于从腾讯云堡垒机日志中获取数据所设计的场景,由于堡垒机一般来说都是基于账号登录的,而UEBA中账号一般是可以关联到对应的用户上。这里的用户一般是指运维人员及对应的运维账户。因此根据堡垒机日志设计的场景主体通过用户账号的映射一般可以直接关联到特定的人员。


UEBA场景之数据库安全


    上图是UEBA以用户为主体的场景列表,以设备为主体的场景列表和以用户为主体的场景列表基本遵循同一套逻辑。

 

2、场景设计示例

     

腾讯UEBA在行为分析、风险识别上,一方面通过构建行为基线识别异常行为,另一方面则会识别和监控风险操作、高危活动。下面是数据库相关的典型场景示例。


(1)    提权操作成功

日志类型:数据库审计日志或堡垒机日志

检测方法:审计日志sql语句或堡垒机日志的命令行包含drop database **,且操作成功


(2)    删除数据库成功

日志类型:数据库审计日志或堡垒机日志

检测方法:审计日志sql语句或堡垒机日志的命令行包含drop database **,且操作成功

 

(3)    短时间频繁清除数据

志类型:数据库审计日志或堡垒机日志

检测方法:短时间审计日志sql语句或堡垒机日志命令行是否频繁以truncate table开头,或delete from开头

 

(4)    短时间频繁删除表

日志类型:堡垒机日志

检测方法:短时间审计日志sql语句或堡垒机日志命令行是否频繁以drop table开头

 

(5)    无密码登录

日志类型:堡垒机日志

检测方法:命令行以mysql开头无-p参数

 

(6)    明文密码登录

日志类型:堡垒机日志

检测方法:命令行以mysql开头带-p参数且有对应值

 

(7)    导出mysql数据(数据库备份)

日志类型:堡垒机日志

检测方法:命令行包含mysqldump

    
以上是几个数据库安全场景的示例,由于堡垒机日志中的命令行既可以记录登录数据库时的命令如mysql、mysqldump等,又可以记录登录数据库后的sql语句,因此通过堡垒机日志能够比数据库审计日志设计的场景涵盖范围更广。

 

3、场景实现说明


以上每一个细分场景对应一条检测规则,检测的设计逻辑分为两种,一种是直接对单条原始数据做检测,另一种是对多条原始数据的聚合结果做检测。直接对单条原始日志做检测需要配置的参数包括查询条件、检测时间粒度、该条规则的检测结果类型和对应描述等。其中检测时间粒度的含义是每隔多久对存量日志进行一次该条规则的检测。对多条原始数据的聚合结果做检测需要配置的参数除了以上的参数外,还包括聚合检测的条件、聚合主键等。

 

例如要检测的场景为“短时间频繁删除表”,该检测规则是聚合类检测规则,需要额外定义聚合检测的条件,即“频繁”代表的具体次数。当检测时间粒度定义为10分钟,聚合检测的条件定义为聚合总条数大于10,聚合主键定位为ip时,即表示当某ip满足查询条件的原始数据条数在十分钟之内数量大于10时触发该规则,引发事件告警。

 

UEBA场景之数据库安全

 

4、小结


 本文以数据库安全相关场景为例,介绍了腾讯UEBA的安全场景设计和实现。虽然,文中介绍的数据库场景是基于规则的方式实现的,更具体的来说就是直接基于单条或多条原始日志进行筛选、聚合以实现关键风险行为识别。


但是,在产品中的在其他一些场景中,腾讯UEBA还实现了基于画像的检测、基于机器学习的检测等复杂检测分析方法。基于历史基线、同类群组、序列检测算法、异常检测算法、聚类算法等方法,发现更多异常风险,构建更加丰富可靠的用户实体分析全景。

 




智能化 自动化 一站式

UEBA场景之数据库安全
(长按二维码快速扫描关注)
该账号主要围绕智能化技术如何帮助企业提升网络安全水平展开,内容涉及机器学习、大数据处理等智能化技术在安全领域的实践经验分享,业界领先的产品和前沿趋势的解读分析等。通过分享、交流,推动安全智能的落地、应用。欢迎关注~


本文始发于微信公众号(腾讯安全智能):UEBA场景之数据库安全

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年5月6日04:24:54
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   UEBA场景之数据库安全http://cn-sec.com/archives/273979.html

发表评论

匿名网友 填写信息