AIOps检测数据库异常操作

Posted 智能运维前沿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AIOps检测数据库异常操作相关的知识,希望对你有一定的参考价值。


导  读

检测数据库内部合法用户的异常行为,对防范内部攻击和数据泄露具有重要意义,然而面临如下挑战:攻击模式不确定,真实异常样例少,数据集缺少准确标注。人工设定阈值和规则难以有效应对复杂多样的异常。本文介绍的是李海斌等人发表在核心期刊《小型微型计算机系统》的一篇文章《一种无监督的数据库用户行为异常检测方法》。文章通过划定时间窗口统计提取特征,运用核密度估计算法分别从单维度、多维度建模,实现在海量的无标注历史日志中发现简单异常和复杂异常、在新的线上数据中检测异常。真实数据实验表明,该方法能够从复杂的数据库历史日志中有效检测出具有攻击嫌疑或高风险威胁的异常样本,并在实验中成功检测出了一种之前未被安全运维人员注意到的新的复杂异常,能够有效辅助安全运维人员锁定重点异常、聚焦安全威胁,提升安全工作的效率,为应对和防范数据库的安全威胁提供了一套可行的方案


AIOps检测数据库异常操作


背景


数据库存储着企业的大量敏感数据,防范数据泄露、确保数据安全是企业十分迫切的安全需求。一旦发生数据泄露的安全事故,将给企业造成无法挽回的损失。数据泄露可以由外部攻击或内部攻击造成,而由内部用户发起内部攻击导致的数据泄露后果尤为严重。由于内部用户对数据(包括密级数据)拥有合法的访问权限,对整个系统非常熟悉,如果其恶意滥用权限、偷取数据、泄露数据,将造成更致命的攻击和更严重的损失。因此,检测数据库内部合法用户的异常行为具有重要意义。


数据库内部用户行为异常检测主要面临三大挑战:

(1)攻击模式不确定;

(2)真实异常样例少;

(3)人工标注十分困难。


现有的数据库安全防护策略(或工具)难以有效防范内部攻击。入侵检测系统和防火墙,主要用于防范来自外部的攻击,难以防范内部合法用户发起的攻击(可能的内部攻击场景如图1所示)。常用的数据库安全机制,如用户标识与鉴权、基于角色的访问控制、数据加密等,虽然能够防范用户访问未授权数据,但无法防范合法用户对已授权数据的滥用和泄露。针对数据库异常检测的相关研究,如[1] [2] [3] [4] [5]等工作,虽然提出了能够适用于某些特定场景的数据库入侵检测方法,但不足以很好得解决上述数据库内部用户行为异常检测面临的三大挑战,因此需要寻求更具有针对性和通用性的解决方案。


AIOps检测数据库异常操作

1 内部攻击场景示例


思考


针对上述“三大挑战”,本文试图通过机器学习的方法来检测数据库内部用户的异常行为。基于机器学习的异常检测方法分为有监督和无监督两种,有监督的方法依赖于准确标注好的数据集进行模型训练,需要充足的正、负样本,然而真实环境中的数据缺乏标注、人工标注异常非常困难,有监督的方法无法发挥作用,因此,文章采用无监督的方法来进行异常检测。


文章将数据库用户行为“异常”定义如下:当用户的操作行为严重偏离其绝大多数正常历史行为的轨迹时,或者当用户的操作行为具有拖取数据、滥用数据等攻击嫌疑,对数据库的安全构成威胁时,称为“异常”。


假设绝大部分正常行为的数据服从某个未知的分布X,用函数y=f(x)表示其未知的概率密度函数,采集的历史数据集D可以认为是由分布X中独立抽取一定数量的样本构成的,那么用户行为异常检测需要解决的问题,等价于判断给定的任意样本是否属于分布X。若属于分布X,则判定该样本为正常,若不属于X,则该样本为异常。


根据异常的复杂程度、检测难易程度,文章把异常分为两类:简单异常和复杂异常。简单异常指通过单维度分析就能够直接判定的异常,这类异常通常对应了一些简单的攻击场景,主要表现为单个重要特征指标上出现的偏离绝大多数正常样本的离群值(如图2所示)。比如大量数据拖取异常,只需要对“访问数据量”这个特征进行单维度分析就可以检测出来。复杂异常指的是通过单维度分析无法判定的异常,其表现形式更加复杂,需要将多个特征指标组合起来分析才能发现其“异常之处”,比如文章在实验中检测出的“24小时连续访问”异常,或其它一些事先未知的新异常。


AIOps检测数据库异常操作

图2 单维度简单异常示例(图中红圈标出了三种单维度简单异常)


方案设计


文章进行异常检测的总体思路是:从海量无标注的历史日志中提取特征,运用无监督学习算法训练得到用户(或用户群体)绝大部分正常行为的概率密度分布,若被检测样本的概率密度低于概率密度判定阈值,则判定为异常。该方法基于数据库异常检测场景的两个基本前提:一方面,异常行为在某些属性上总是偏离绝大多数正常行为的;另一方面,真实的异常攻击是罕见的,只占很小的比例,在对正常行为建模时,历史数据中包含的极少量异常样本对模型的影响微乎其微。文章把数据库历史数据中异常样本所占的比例称为可疑异常率。可疑异常率是一个很小的数值,由负责安全运维的人员根据历史发生异常事件的频率和安全需求的严格程度综合评估后设定。根据可疑异常率,可以找出概率密度最低的部分样本上报为异常。文章的异常检测系统框架如图3所示。


AIOps检测数据库异常操作

图3 异常检测系统框架

特征选取


数据库原始日志中含有大量有价值的信息,这些信息需要通过特征工程从原始日志中提取、转化为有效的特征,从而用于后续的模型训练。本文选取了一系列能够反映用户行为的特征(见表1)。在选取特征时,安全运维人员根据经验对数据库可能面临的攻击场景(例如表1列举的4种攻击场景)进行了假设和预估,通过分析这些场景下攻击行为的表现,有针对性地选定对应的特征指标,如单日内访问数据量对应的是大量数据拖取异常。为了反映用户一天内操作行为的时间分布,对于这些与特定攻击(异常)场景相对应的重要特征指标,除了按天统计外还按两小时的粒度做了进一步的统计提取,相当于把按“天”统计的这些特征进一步分解为12个按“两小时”统计的特征。

AIOps检测数据库异常操作

无监督异常检测模型


为实现在完全无标注的数据集上检测异常,本文选用无监督的核密度估计算法。针对可能同时存在的简单异常和复杂异常,本文从单维度和多维度分别建立概率密度模型,即建立“单维度概率密度模型”检测简单异常、同时建立“多维度概率密度模型”检测复杂异常,从而实现对两类异常同时检测。


单维度概率密度模型用于检测单维度简单异常。简单异常通常是某些重要特征指标在单维度上的离群值,一般为该维度上概率很小、数值“极大”的值。例如,大量数据拖取、多表大范围访问、绝密敏感数据拖取这三种简单异常,它们可以分别对应到以下这三个特征上的“极大值”: 单日内访问数据量、访问数据表个数、访问绝密级列比例。单维度概率密度模型训练时使用单个特征指标对应的单维度历史数据作为训练集,用核密度估计算法训练得出该维度的概率密度分布曲线,通过找出概率密度极低且数值极大的少数离群样本,实现检测对应简单异常的目的。


多维度概率密度模型用于检测复杂异常。与单维度概率密度模型不同,多维度概率密度模型能够将多个维度关联起来分析,考察样本在高维空间的概率密度分布情况;通过找出高维空间中分布稀疏的样本,从而发现一些潜在的复杂异常,甚至可能是从未察觉的复杂异常。

实验结果


本文以真实生产环境中的某数据库(数据仓库)作为实验场景。由于该数据库历史真实攻击事件发生的概率极低、安全要求较高,经安全运维人员根据历史观察和运维经验综合评估后,文章中的可疑异常率设定为1%。通过对模型检测出的样本进行人工逐个排查,结合用户的访问详情(如SQL上下文,时间地点,频率等),核实样本是否为具有攻击嫌疑或高风险威胁、值得重点关注的真实异常,从而求出模型检测异常的查准率(Precision),来衡量模型是否能够帮助安全运维人员发现和检测出有价值的异常,着重评估模型从无标注数据集中发现和检测出有价值异常的能力。


1、单维度异常检测结果

按1%的可疑异常率,从近2000 样本中共检测出60个可疑的样本(每种简单异常20个)。由安全运维人员对这60个可疑异常进行逐个人工排查,得到检测的“严格查准率”和“宽松查准率”如表2所示。实验表明,三种简单异常的严格查准率平均为90%,宽松查准率平均为100%。



经人工排查,单维度模型检测出的三种异常样本在该维度的特征数值100%具有以下两个特点:(1)概率密度值极低;(2)对应的原始数值绝大部分属于或接近该维度的极大值。基于这两点,被检测出的样本至少是“弱显著”异常,甚至还有可能是风险程度更高的异常。通过结合用户访问详情进一步排查分析发现,模型检测出的三种简单异常样本中包含“强显著”异常的比例分别占95%、100%和75%(带有“load数据使用”、“insert overwrite”等大量导入导出的高风险行为)。


2、多维度异常检测结果

通过对多维度概率密度模型检测出的可疑异常样本进行了逐一人工排查发现,整体概率密度值最低的这20个样本中,19个样本属于“24小时连续访问”异常,1个样本属于“频繁鉴权失败”异常。其中,“频繁鉴权失败”异常,属于通过单维度也能够检测出来的简单异常,而“24小时连续访问”异常是单维度无法发现的新的复杂异常。


这20个样本当天内每两小时访问表的数量如表3所示,24小时连续访问是一种非常可疑的、少见的异常行为。如果这些异常的背后不是人为操作,而是自动化的程序在访问数据库,那么这种异常和真实的攻击已经十分接近,存在极大的安全风险、将可能导致极为严重的危害。经过详细的调查取证后确认,这19个“24小时连续访问”强显著异常是由某平台管理员采用自动化程序进行数据的导入、导出和格式转换等工作所导致。结合该用户的访问详情,并与其它业务行为关联分析后最终确认,该用户的行为没有恶意的动机,不属于恶意的攻击。然而,通过模型检测出的“24小时连续访问”异常本身具有非常大的意义,而且非常有必要。


表3 多维度可疑异常样本当天内每2小时访问表的数量

Table 3 Table Access in every 2 hours of suspicious samples


综上,多维度检测实验中,若只考虑检测复杂异常的效果,严格查准率和宽松查准率均为95%,而且发现的是一种之前未被关注的新的“强显著”复杂异常;若把实验中检测出的1个简单异常样本也考虑在内,则检测异常的严格查准率和宽松查准率均为100%,即检测出的所有异常样本均为具有攻击嫌疑或高风险威胁的、值得重点关注的异常。


总结


文章为了防范数据库内部用户泄露数据,运用核密度估计算法分别从单维度、多维度建模,实现在海量的无标注日志数据中发现用户行为中存在的简单异常和复杂异常。真实数据实验表明,该方法能够有效检测出具有攻击嫌疑或高风险威胁的异常样本,并在实验中成功检测出了一种之前未被安全运维人员注意到的新的复杂异常,能够有效辅助安全运维人员锁定重点异常、聚焦安全威胁,提升安全工作的效率,为应对和防范数据库的安全威胁提供了一套可行的方案。


论文题目:一种无监督的数据库用户行为异常检测方法

由于篇幅所限,部分内容未在文中详细描述,有兴趣的读者可以点击文末左下角的“阅读原文”



参考文献

[1] Sallam A, Bertino E, Hussain S R, et al. DBSAFE—An Anomaly Detection System to Protect Databases From Exfiltration Attempts[J]. IEEE Systems Journal, 2017, 11(2):483-493.

[2] Spalka A, Lehnhardt J. A Comprehensive Approach to Anomaly Detection in Relational Databases[A]. In: Working Conference on Data and Applications Security[C], 2005:207-221.

[3] Lee S Y, Low W L, Pei Y W. Learning Fingerprints for a Database Intrusion Detection System[A]. In: European Symposium on Research in Computer Security[C], 2002:264-280.

[4] Bertino E, Terzi E, Kamra A, et al. Intrusion detection in RBAC-administered databases[A]. In: Proceedings of the 21st Annual Computer Security Applications Conference[C], 2005:1-20.

[5] Ashish Kamra , Evimaria Terzi, Elisa Bertino. Detecting Anomalous Access Patterns in Relational Databases [J]. The International Journal on Very Large Data Bases, 2008, 17(5): 1063-1077.


以上是关于AIOps检测数据库异常操作的主要内容,如果未能解决你的问题,请参考以下文章

重磅:构建AIOps的MNIST

AIOps探索揭秘日志异常检测新方法

直播 | AIOps中异常检测的简单应用

AAAI AIOps案例:无监督多指标异常检测及诊断

AIOps中异常检测的简单应用

AIOps核心技术和算法要点