CN113935023A - 一种数据库异常行为检测方法及装置 - Google Patents
一种数据库异常行为检测方法及装置 Download PDFInfo
- Publication number
- CN113935023A CN113935023A CN202111068358.4A CN202111068358A CN113935023A CN 113935023 A CN113935023 A CN 113935023A CN 202111068358 A CN202111068358 A CN 202111068358A CN 113935023 A CN113935023 A CN 113935023A
- Authority
- CN
- China
- Prior art keywords
- database
- behavior
- sliding window
- data set
- sliding
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 88
- 206010000117 Abnormal behaviour Diseases 0.000 title claims abstract description 65
- 230000006399 behavior Effects 0.000 claims abstract description 139
- 239000013598 vector Substances 0.000 claims abstract description 60
- 238000000034 method Methods 0.000 claims abstract description 40
- 238000012545 processing Methods 0.000 claims abstract description 34
- 239000011159 matrix material Substances 0.000 claims abstract description 25
- 238000010606 normalization Methods 0.000 claims abstract description 9
- 238000012549 training Methods 0.000 claims description 25
- 230000002159 abnormal effect Effects 0.000 claims description 23
- 238000012360 testing method Methods 0.000 claims description 15
- 230000000694 effects Effects 0.000 claims description 11
- 238000004364 calculation method Methods 0.000 claims description 3
- 230000011218 segmentation Effects 0.000 claims description 3
- 238000010276 construction Methods 0.000 claims description 2
- 238000011160 research Methods 0.000 abstract description 8
- 238000002372 labelling Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 9
- 239000000203 mixture Substances 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000007547 defect Effects 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 239000003795 chemical substances by application Substances 0.000 description 2
- 238000007635 classification algorithm Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011217 control strategy Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种数据库异常行为检测方法及装置。方法包括:获取数据库日志数据集;利用固定窗口对每篇日志进行滑动处理,将每一个窗口内的“SQL语句”,“运行时间”和“操作时间”三个字段的内容提取出来作为一个滑窗数据库行为样本,由此得到滑窗数据库行为数据集;对滑窗数据库行为数据集中的每一个滑窗数据库行为样本的SQL语句和操作时间进行编码,形成滑窗数据库行为样本矩阵,将矩阵按列求和后,得到滑窗数据库行为向量数据集;将滑窗数据库行为向量数据集进行归一化处理后,输入到预先训练好的DAGMM数据库异常行为检测模型中,得到检测结果。本发明很好地解决了以往数据库异常行为检测研究中存在的单SQL语句检测漏洞及需要人工标注数据的问题。
Description
技术领域
本发明涉及一种基于DAGMM(Deep AutoEncoder Gaussion Mixture Model,DAGMM)的数据库异常行为检测方法,属于网络安全技术领域。
背景技术
数据是企业运行中的核心资产,很多有价值的信息蕴藏在数据之中。目前,大多数企业都将日常运行数据存储在数据库中,因此数据库成为了恶意人员重要的攻击目标之一。根据数据泄露调查报告显示,大多数数据泄露都是由企业内部人员导致的。内部人员熟悉企业内的安防检测体系,能够有效躲避检测机制;一些内部人员误操作也会对检测工作带来影响,这都给数据库异常行为检测的工作带来不小的难点与挑战。
专家对于数据库异常行为检测进行了许多研究,最初通过改进权限控制策略来抵御恶意攻击,然而这种方法只对外部授权不足情况下进行的恶意攻击有效果,而对内部授权用户的恶意行为检测效果较差;随着数据挖掘、人工智能算法的兴起,研究专家将这些技术也引入到了数据库异常检测的研究中来。
在使用人工智能算法进行数据库异常行为检测时,Karma A等人利用朴素贝叶斯分类算法,基于数据库中查询语句和返回结果构建异常检测模型;RONAO C A等人对数据库查询语句进行细粒度建模,产生表征数据库行为高维向量,然后使用PCA进行降维后输入到随机树分类算法进行异常行为检测;近年来,专家们将神经网络引入到数据库异常行为检测中。
在目前的数据库异常行为检测中,主要存在两方面问题:一是目前的研究方法大多是基于单条SQL语句进行检测的,有些内部人员熟悉检测机制能够利用多条SQL语句组合有效避开这种检测方法来达到恶意目的;二是大多数方法有监督学习方法,这种方法是基于有标签数据进行训练的,而网络系统中采集的数据库日志数据都是无标签的,无法直接利用采集到的数据库日志数据直接进行模型的训练,而人工进行数据标记耗费大量人力的同时,可能存在标记不准确的问题,导致训练的模型检测效果不理想。
发明内容
本发明的目的在于克服现有技术的不足,提供一种基于DAGMM的数据库异常行为检测模型,以解决目前应用机器学习算法进行数据库异常行为检测中存在的单条SQL语句检测缺陷和需要人工对数据进行标记才能进行模型训练的问题。
为解决上述技术问题,本发明采用以下技术方案:
一方面,本发明提供一种数据库异常行为检测方法,包括:
获取数据库日志数据集;
对所述数据库日志数据集中的每篇日志进行固定窗口滑动处理,并对每一个窗口内的SQL语句、运行时间和操作时间的数据进行提取,得到每一个对应的滑窗数据库行为样本,所有滑窗数据库行为样本构成滑窗数据库行为数据集;
对所述滑窗数据库行为数据集中的每个滑窗数据库行为样本的SQL语句和操作时间进行编码处理,得到滑窗数据库行为样本矩阵集;
将所述窗数据库行为样本矩阵集的每个滑窗数据库行为样本矩阵按列进行求和,得到滑窗数据库行为向量数据集;
将所述滑窗数据库行为向量数据集进行归一化处理后,输入到预先训练好的DAGMM数据库异常行为检测模型中,所述模型输出数据库日志数据是否异常的检测结果。
进一步地,所述获取数据库日志数据集,具体包括:
采集包含登录用户名称、主机IP信息、SQL语句、运行时间和操作时间的数据库运行日志,将采集的数据库运行日志进行汇总整理后得到数据库日志数据集。
进一步地,所述对所述数据库日志数据集中的每篇日志进行固定窗口滑动处理,包括:
设定固定窗口的长度为m条日志记录,固定步长为s,滑动时,第一窗口内的数据为第1~m条日志记录,按固定步长s滑动一次后,第二个窗口内的数据为第1+s~m+s条日志记录,依次类推,直到日志中所有的记录都在窗口内出现过。
按固定记录个数及固定步长对日志记录进行滑窗处理,例如,一篇数据库日志有100条记录,设定固定窗口的长度为10,步长为2,在滑动时,第一个窗口内的数据为日志中编号0-9的记录,按步长为2滑动一次后,第二个窗口内的数据为日志中编号为2-11的记录,以此类推。
进一步地,对所述滑窗数据库行为数据集中的每个滑窗数据库行为样本的SQL语句进行编码处理,包括:
对SQL语句按空格进行分词处理,得到一系列word,word中包含SQL指令、表名和字段名;
将SQL语句的长度整理成16个word,当SQL语句长度本身大于16时进行截断,小于16时补充“None”使其达到16;
利用历史数据库word编码表,将SQL语句中的word转换为编码。
进一步地,所述历史数据库word编码表的构建方法为:
对数据库历史SQL语句中各个word出现的次数进行统计,并按出现次数进行降序排列;按排序结果对word进行编码,出现次数越多,编码越靠前,得到历史数据库word编码表。
进一步地,对所述滑窗数据库行为数据集中的每个滑窗数据库行为样本的操作时间进行编码处理,包括:
将一日内的时间平均分为n个时间点,将所述n个时间点按时间顺序依次编码为0~n-1,找到操作时间所属的时间点,根据时间点对应的编码,对操作时间进行编码。
例如,将一日内的时间以10分钟为一个时间点,则共有144个时间点,按时间顺序编码为0-143。在编码时,将操作时间找到对应的时间点,按时间点对应的编码对操作时间进行编码即可。
进一步地,所述归一化处理的计算公式为:
其中,x'为归一化后的滑窗数据库行为向量;x为原滑窗数据库行为向量;xmax为滑窗数据库行为向量的对应维度最大值;xmin为滑窗数据库行为向量的对应维度最小值。
进一步地,所述DAGMM数据库异常行为检测模型的训练方法包括:
选取同一数据库的历史数据及人工模拟的数据库异常行为数据,并将其按8:2分为训练集T1和测试集T2;
对训练集T1和测试集T2进行固定窗口滑动、编码、求和、归一化处理得到训练集T1′和测试集T′2;
利用训练集T1′对DAGMM数据库异常行为检测模型进行训练;
利用测试集T′2对模型训练效果进行测试。
进一步地,所述的数据库异常行为检测方法,还包括:
将检测结果为异常的滑窗数据库行为向量放入预先构建的数据库异常行为表,并利用数据库异常行为表的样本和近期检测结果为正常的样本定期对DAGMM数据库异常行为检测模型进行重新训练,对模型进行更新。
另一方面,本发明提供一种数据库异常行为检测装置,包括:
获取模块,配置为获取数据库日志数据集;
滑窗处理模块,配置为对所述数据库日志数据集中的每篇日志进行固定窗口滑动处理,并对每一个窗口内的SQL语句、运行时间和操作时间的数据进行提取,得到每一个对应的滑窗数据库行为样本,所有滑窗数据库行为样本构成滑窗数据库行为数据集;
编码模块,配置为对所述滑窗数据库行为数据集中的每个滑窗数据库行为样本的SQL语句和操作时间进行编码处理,得到滑窗数据库行为样本矩阵集;
求和模块,配置为将所述窗数据库行为样本矩阵集的每个滑窗数据库行为样本矩阵按列进行求和,得到滑窗数据库行为向量数据集;
检测模块,配置为将所述滑窗数据库行为向量数据集进行归一化处理后,输入到预先训练好的DAGMM数据库异常行为检测模型中,所述模型输出数据库日志数据是否异常的检测结果。
本发明所达到的有益技术效果:
本发明首先对数据库日志中的SQL语句进行固定窗口滑窗处理;之后利用编码技术将滑窗内的SQL语句和操作时间进行编码,转化成数据库行为向量;将得到的向量输入到DAGMM数据库异常行为检测模型中,实现数据库行为异常检测。本发明中采用固定窗口滑动处理能够有效的结合窗口内多条记录中的SQL语句、运行时间和操作时间,避免了以往研究中基于单个SQL语句检测的缺陷;采用的DAGMM模型是一种无监督异常检测算法,能够有效解决过去研究中需要人工对数据进行标记才可以进行异常检测的问题。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是DAGMM模型的结构示意图;
图2是本发明实施例中的一种数据库异常行为检测方法流程示意图。
具体实施方式
下面结合具体实施例对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
如前所述,目前应用机器学习算法进行数据库异常行为检测中存在的单条SQL语句检测缺陷金额需要人工对数据进行标记才能进行模型训练的问题。
为此,本发明实施例提供了一种数据库异常行为检测方法。如图2所示,该方法包括如下步骤:
步骤1,获取数据库日志数据集;
利用日志采集工具Agent对数据库log日志进行采集,采集到的日志的每篇记录中包含用户名称(USER_NAME)、主机IP信息(HOST_IP)、SQL语句(SQL)、运行时间(EXECUTIME)和操作时间(TIME)字段,各字段的具体含义如表1所示,将采集到的日志进行汇总整理后得到数据库日志数据集Dlog。
表1日志中各字段的具体含义
字段名 | 具体含义 |
登录用户名称(USER_NAME) | 操作数据库的用户名称 |
主机IP信息(HOST_IP) | 连接数据库的IP地址 |
SQL语句(SQL) | SQL语句内容 |
运行时间(EXECUTIME) | SQL语句的运行时间 |
操作时间(TIME) | SQL语句操作的时间 |
步骤2,对所述数据库日志数据集中的每篇日志进行固定窗口滑动处理,并对每一个窗口内的SQL语句、运行时间和操作时间的数据进行提取,得到每一个对应的滑窗数据库行为样本,所有滑窗数据库行为样本构成滑窗数据库行为数据集;
在本实施例中,每个日志中大约包含10万条记录,设定固定窗口的长度为1000,步长为10,当进行滑动时,第一个滑窗内包含日志中编号0-999的记录,按步长滑动一次后,第二个窗口内包含日志中编号10-1009的记录,直到日志中所有的记录都在窗口内出现过之后,停止滑动。
之后,对一个滑窗内的1000条记录中的SQL语句、运行时间和操作时间三个字段的内容进行提取,形成一个滑窗数据库行为样本,所有窗口进行同样的字段提取后形成各自的滑窗数据库行为样本,将这些样本汇总成滑窗数据库行为数据集Dwdb;
步骤3,对所述滑窗数据库行为数据集中的每个滑窗数据库行为样本的SQL语句和操作时间进行编码处理,得到滑窗数据库行为样本矩阵集;
1)对滑窗数据库行为数据集Dwdb的每个滑窗数据库行为样本中所有记录的SQL语句进行编码,编码过程如下:
11)对SQL语句按空格进行分词处理,得到一系列word,word中包含SQL指令、表名和字段名等;
12)将滑窗数据库行为样本中的SQL语句的长度整理成16个word,当SQL语句长度本身大于16个word时进行截断,小于16个word时补充“None”使其达到均值长度;
13)利用数据库的历史word编码表,将word转换成对应的编码。
其中,SQL语句编码过程中用到的是历史word编码表,其是基于该数据库过去100个日志中的SQL语句,对这些SQL语句中各个word出现的次数进行统计,并按出现次数进行降序排列;按排序结果对word进行编码,出现次数越多,编码越靠前,由此形成数据库的历史word编码表。利用该表对滑窗数据库行为样本中的SQL语句进行编码。
本实施例中,将编码表以{“word”:编码}的字典形式存储,在字典最后加入“None”用来替换检测过程中发现的历史数据中不存在的word,构建的word编码表实例如下:{“AND”:0,“SELECT”:1,“UPDATE”:2,“FROM”:3,“WHERE”:4,……“None”:2302}。
2)对滑窗数据库行为数据集Dwdb的每个滑窗数据库行为样本中所有记录的操作时间进行编码;
本实施例中,将一日内的时间以10分钟为一个时间点,则共有144个时间点,按时间顺序编码为0-143。在编码时,将操作时间找到对应的时间点,按时间点对应的编码对操作时间进行时间编码即可。
例如,在检测中某滑动窗口中的一个记录为“16:22,SELECT*FROM USER_TABLEWHERE ID BETWEEN 1 AND 10000,1(ms)”,将操作时间“16:22:”编码为[98];SQL语句“SELECT*FROM USER_TABLE WHERE ID BETWEEN 1 AND 10000”用“None”将长度补充到16以后,编码为:[1,24,3,233,4,254,143,34,0,94,2302,2302,2302,2302,2302,2302];运行时间1ms保持不变;最终该条记录得到的编码为:[98,1,24,3,233,4,254,143,34,0,94,2302,2302,2302,2302,2302,2302,1]。
步骤4,将所述窗数据库行为样本矩阵集的每个滑窗数据库行为样本矩阵按列进行求和,得到滑窗数据库行为向量数据集;
编码后的滑窗数据库行为样本是一个矩阵,按列进行求和,得到滑窗数据库行为向量,对整个滑窗数据库行为数据集的每个滑窗数据库行为样本进行同样求和后,得到滑窗数据库行为向量数据集。
本实施例中,对每个滑窗数据库行为样本进行步骤3的编码过程后,得到一个1000×18的矩阵,将矩阵按列进行求和,得到滑窗数据库行为向量,对整个滑窗数据库行为数据集Dwdb进行同样的操作后,得到滑窗数据库行为向量数据集Dwdb'。
步骤5,将所述滑窗数据库行为向量数据集进行归一化处理后,输入到预先训练好的DAGMM数据库异常行为检测模型中,所述模型输出数据库日志数据是否异常的检测结果;
其中,将滑窗数据库行为向量数据集进行归一化处理,计算过程如下式所示:
其中,x'为归一化后的滑窗数据库行为向量;x为原滑窗数据库行为向量;xmax为滑窗数据库行为向量的对应维度最大值;xmin为滑窗数据库行为向量的对应维度最小值。
本发明在对数据库日志进行了固定时间窗口滑窗处理并对窗口内的SQL语句进行编码得到数据库行为向量后,要将行为向量输入训练完成的DAGMM数据库异常行为检测模型中进行异常检测。DAGMM是一种无监督异常检测模型,其模型总体结构如图1所示,分为编码网络和估计网络两部分,编码网络部分为深度自编码神经网络,用于得到低维向量及计算重建误差;估计网络部分用于计算高斯混合模型参数及样本似然估计值。
DAGMM模型能够将两部分结合起来实现端到端的优化过程,避免将两部分分开训练陷入局部最优值的问题。将数据库行为向量输入到编码网络部分得到低维行为向量zc和行为重构误差向量zr;将zc和zr拼接成为z作为估计网络部分的输入,经过多层神经网络的计算,得到的输出是一个softmax概率分布,代表高斯混合模型中每个高斯模型的权重概率,也就是来取代EM算法求解GMM中单高斯分布系数的分布,此过程可由式(1)-(2)表示:
p=MLN(z;θm) (1)
结合上面各式,可得样本似然估计值E(z)如式(6)所示:
DAGMM模型的目标函数如式(7)所示:
式中,第一项表示自降维网络的重构误差;第二项表示高斯混合模型的似然函数;第三项的作用是防止GMM中的协方差矩阵的对角线上的值变为0并最终导致矩阵不可逆。
在使用DAGMM模型进行数据库异常行为检测时,通过计算E(z)的值来判定行为是否为异常;E(z)的值越大说明该数据库行为越可能是异常;通过在训练过程确定先验阈值,测试中当计算的E(z)超过该阈值说明该数据库行为是异常的。
接下来,对DAGMM数据库异常行为检测模型进行训练,训练过程如下:
基于同一数据库的过去的100个日志,对这些历史日志进行同样的滑窗、编码和按列求和操作后整理成了9682个滑窗数据库行为样本作为正常样本;根据这些正常数据模拟出150条异常样本;
将所有样本混合后按8:2随机分为训练集T1和测试集T2,并且保证两个数据集中都含有正常样本和异常样本;
利用T1对DAGMM数据库异常行为检测模型进行训练,当对异常数据检测召回率超过0.85时停止训练,进行检测效果测试;
利用T2对模型检测效果进行测试,当对于异常样本检测召回率同样达到0.85后,则表示训练效果较好,可以用于数据库异常行为检测中,否则调整训练过程。
在训练好后,将滑窗数据库行为向量数据集Dwdb'进行归一化处理后输入DAGMM数据库异常行为检测模型,输出检测结果。
在进一步实施例中,前述的一种数据库异常行为检测方法,还包括:
步骤6,将检测结果为异常的滑窗数据库行为向量放入预先构建的数据库异常行为表,并利用数据库异常行为表的样本和近期检测结果为正常的样本定期对DAGMM数据库异常行为检测模型进行重新训练,对模型进行更新。
首先,构建数据库异常行为表Ab_db_Table,用于存储检测结果为异常的滑窗数据库行为向量。
其次,利用Ab_db_Table和近期检测结果为正常的滑窗数据库行为向量定期对DAGMM数据库异常行为检测模型进行重新训练,确保其对新的异常行为也能取得较好的检测效果。
基于以上实施例提出的一种数据库异常行为检测方法,包括:采用Agent对数据库中的log日志进行采集,并整理成数据库日志数据集;采用固定窗口对数据库日志进行固定窗口滑动处理,并对每一个滑窗内“SQL语句”、“运行时间”和“操作时间”的数据进行提取,得到每一个对应的滑窗数据库行为样本,将所有的滑窗提取完成后整理成滑窗数据库行为数据集;利用编码技术对滑窗数据库行为样本的SQL语句中的指令和操作时间进行编码,编码后窗口行为样本是一个矩阵,按列求和后得到窗口数据库行为向量,对所有的滑窗数据库行为样本进行同样的编码及求和后,得到滑窗数据库行为向量数据集;对数据集进行归一化处理后输入到预先训练好的DAGMM数据库异常检测模型中,得到检测结果,将检测结果为异常的数据库行为数据放入数据库异常行为表中;利用数据库异常行为表和近期检测结果为正常的数据库行为数据,对DAGMM定期重新训练,对模型进行更新。本发明利用固定窗口滑动处理及无监督异常检测模型DAGMM很好地解决了以往数据库异常行为检测研究中存在的单SQL语句检测漏洞及需要人工标注数据的问题。
在另一实施例中,本发明提供一种数据库异常行为检测装置,包括:
获取模块,配置为获取数据库日志数据集;
滑窗处理模块,配置为对所述数据库日志数据集中的每篇日志进行固定窗口滑动处理,并对每一个窗口内的SQL语句、运行时间和操作时间的数据进行提取,得到每一个对应的滑窗数据库行为样本,所有滑窗数据库行为样本构成滑窗数据库行为数据集;
编码模块,配置为对所述滑窗数据库行为数据集中的每个滑窗数据库行为样本的SQL语句和操作时间进行编码处理,得到滑窗数据库行为样本矩阵集;
求和模块,配置为将所述窗数据库行为样本矩阵集的每个滑窗数据库行为样本矩阵按列进行求和,得到滑窗数据库行为向量数据集;
检测模块,配置为将所述滑窗数据库行为向量数据集进行归一化处理后输入到预先训练好的DAGMM数据库异常行为检测模型中,所述模型输出数据库日志数据是否异常的检测结果。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上已以较佳实施例公布了本发明,然其并非用以限制本发明,凡采取等同替换或等效变换的方案所获得的技术方案,均落在本发明的保护范围内。
Claims (10)
1.一种数据库异常行为检测方法,其特征在于,包括:
获取数据库日志数据集;
对所述数据库日志数据集中的每篇日志进行固定窗口滑动处理,并对每一个窗口内的SQL语句、运行时间和操作时间的数据进行提取,得到每一个对应的滑窗数据库行为样本,所有滑窗数据库行为样本构成滑窗数据库行为数据集;
对所述滑窗数据库行为数据集中的每个滑窗数据库行为样本的SQL语句和操作时间进行编码处理,得到滑窗数据库行为样本矩阵集;
将所述窗数据库行为样本矩阵集的每个滑窗数据库行为样本矩阵按列进行求和,得到滑窗数据库行为向量数据集;
将所述滑窗数据库行为向量数据集进行归一化处理后,输入到预先训练好的DAGMM数据库异常行为检测模型中,所述模型输出数据库日志数据是否异常的检测结果。
2.根据权利要求1所述的数据库异常行为检测方法,其特征在于,所述获取数据库日志数据集,具体包括:
采集包含登录用户名称、主机IP信息、SQL语句、运行时间和操作时间的数据库运行日志,将采集的数据库运行日志进行汇总整理后得到数据库日志数据集。
3.根据权利要求1所述的数据库异常行为检测方法,其特征在于,所述对所述数据库日志数据集中的每篇日志进行固定窗口滑动处理,包括:
设定固定窗口的长度为m条日志记录,固定步长为s,滑动时,第一窗口内的数据为第1~m条日志记录,按固定步长s滑动一次后,第二个窗口内的数据为第1+s~m+s条日志记录,依次类推,直到日志中所有的记录都在窗口内出现过。
4.根据权利要求1所述的数据库异常行为检测方法,其特征在于,对所述滑窗数据库行为数据集中的每个滑窗数据库行为样本的SQL语句进行编码处理,包括:
对SQL语句按空格进行分词处理,得到一系列word,word中包含SQL指令、表名和字段名;
将SQL语句的长度整理成16个word,当SQL语句长度本身大于16时进行截断,小于16时补充“None”使其达到16;
利用历史数据库word编码表,将SQL语句中的word转换为编码。
5.根据权利要求4所述的数据库异常行为检测方法,其特征在于,所述历史数据库word编码表的构建方法为:
对数据库历史SQL语句中各个word出现的次数进行统计,并按出现次数进行降序排列;按排序结果对word进行编码,出现次数越多,编码越靠前,得到历史数据库word编码表。
6.根据权利要求1所述的数据库异常行为检测方法,其特征在于,对所述滑窗数据库行为数据集中的每个滑窗数据库行为样本的操作时间进行编码处理,包括:
将一日内的时间平均分为n个时间点,将所述n个时间点按时间顺序依次编码为0~n-1,找到操作时间所属的时间点,根据时间点对应的编码,对操作时间进行编码。
8.根据权利要求1所述的数据库异常行为检测方法,其特征在于,所述DAGMM数据库异常行为检测模型的训练方法包括:
选取同一数据库的历史数据及人工模拟的数据库异常行为数据,并将其按8:2分为训练集T1和测试集T2;
对训练集T1和测试集T2进行固定窗口滑动、编码、求和、归一化处理得到训练集T1′和测试集T′2;
利用训练集T1′对DAGMM数据库异常行为检测模型进行训练;
利用测试集T′2对模型训练效果进行测试。
9.根据权利要求1所述的数据库异常行为检测方法,其特征在于,还包括:
将检测结果为异常的滑窗数据库行为向量放入预先构建的数据库异常行为表,并利用数据库异常行为表的样本和近期检测结果为正常的样本定期对DAGMM数据库异常行为检测模型进行重新训练,对模型进行更新。
10.一种数据库异常行为检测装置,其特征在于,包括:
获取模块,配置为获取数据库日志数据集;
滑窗处理模块,配置为对所述数据库日志数据集中的每篇日志进行固定窗口滑动处理,并对每一个窗口内的SQL语句、运行时间和操作时间的数据进行提取,得到每一个对应的滑窗数据库行为样本,所有滑窗数据库行为样本构成滑窗数据库行为数据集;
编码模块,配置为对所述滑窗数据库行为数据集中的每个滑窗数据库行为样本的SQL语句和操作时间进行编码处理,得到滑窗数据库行为样本矩阵集;
求和模块,配置为将所述窗数据库行为样本矩阵集的每个滑窗数据库行为样本矩阵按列进行求和,得到滑窗数据库行为向量数据集;
检测模块,配置为将所述滑窗数据库行为向量数据集进行归一化处理后,输入到预先训练好的DAGMM数据库异常行为检测模型中,所述模型输出数据库日志数据是否异常的检测结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111068358.4A CN113935023A (zh) | 2021-09-13 | 2021-09-13 | 一种数据库异常行为检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111068358.4A CN113935023A (zh) | 2021-09-13 | 2021-09-13 | 一种数据库异常行为检测方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113935023A true CN113935023A (zh) | 2022-01-14 |
Family
ID=79275655
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111068358.4A Pending CN113935023A (zh) | 2021-09-13 | 2021-09-13 | 一种数据库异常行为检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113935023A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114584379A (zh) * | 2022-03-07 | 2022-06-03 | 四川大学 | 基于优化特征提取粒度的日志异常检测方法 |
-
2021
- 2021-09-13 CN CN202111068358.4A patent/CN113935023A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114584379A (zh) * | 2022-03-07 | 2022-06-03 | 四川大学 | 基于优化特征提取粒度的日志异常检测方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108737406B (zh) | 一种异常流量数据的检测方法及系统 | |
CN113434357B (zh) | 基于序列预测的日志异常检测方法及装置 | |
CN111914873A (zh) | 一种两阶段云服务器无监督异常预测方法 | |
CN110852856B (zh) | 一种基于动态网络表征的发票虚开识别方法 | |
CN112905421A (zh) | 基于注意力机制的lstm网络的容器异常行为检测方法 | |
CN113312447B (zh) | 基于概率标签估计的半监督日志异常检测方法 | |
CN114254716B (zh) | 一种基于用户行为分析的高危操作识别方法及系统 | |
CN112199670B (zh) | 一种基于深度学习改进iforest对行为异常检测的日志监控方法 | |
CN113342597B (zh) | 一种基于高斯混合隐马尔可夫模型的系统故障预测方法 | |
CN110956309A (zh) | 基于crf和lstm的流程活动预测方法 | |
CN111199469A (zh) | 用户还款模型生成方法、装置及电子设备 | |
CN112464281A (zh) | 基于隐私分组和情感识别的网络信息分析方法 | |
CN115242441A (zh) | 一种基于特征选择和深度神经网络的网络入侵检测方法 | |
CN114841268A (zh) | 基于Transformer和LSTM融合算法的异常电力客户识别方法 | |
CN113935023A (zh) | 一种数据库异常行为检测方法及装置 | |
Saaudi et al. | Insider threats detection using CNN-LSTM model | |
US11568308B2 (en) | Correcting bias in supervised machine learning data | |
CN110705638A (zh) | 一种利用深度网络学习模糊信息特征技术的信用评级预测分类方法 | |
CN115883424A (zh) | 一种高速骨干网间流量数据预测方法及系统 | |
CN116318786A (zh) | 一种日志审计监控方法及装置 | |
CN115618297A (zh) | 识别异常企业的方法及其装置 | |
CN114816962A (zh) | 基于attention-lstm的网络故障预测方法 | |
CN112348275A (zh) | 一种基于在线增量学习的区域生态环境变化预测方法 | |
CN117633456B (zh) | 基于自适应焦点损失的海上风电天气事件辨识方法和装置 | |
CN114818659B (zh) | 一种文本情感来源分析方法、系统及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |