基于BiGAN与OTSU的内部用户行为检测方法
技术领域
本发明涉及用户行为异常检测领域,尤其涉及一种基于BiGAN与OTSU的内部用户行为检测方法。
背景技术
目前近年来,由于内部用户恶意操作所引发的安全事故屡屡发生,而且由于内部用户大多拥有对系统的访问权限、了解内部网络的漏洞、掌握核心资料,所以内部攻击往往比外部攻击导致的损失更加严重。所以内部用户行为检测逐渐受到国内外研究学者的高度重视。目前在内部用户行为检测领域已取得了一定的研究成果,但仍存在有不足与待加强之处。
对于内部用户行为检测中,由于用户行为数据存在数据量少、正负样本数量不均衡、时序依赖性的特点,导致传统异常检测方法在内部用户行为检测中的准确率、误报率受到影响。
发明内容
本发明的目的在于提供一种基于BiGAN与OTSU的内部用户行为检测方法,旨在解决现有技术中的传统异常检测方法在内部用户行为检测中的准确率低、误报率较高以及异常阈值选取较多依赖先验知识的技术问题。
为实现上述目的,本发明采用的一种基于BiGAN与OTSU的内部用户行为检测方法,包括如下步骤:
获取用户行为原始日志数据,并将所述用户行为原始日志数据按照不同用户分别提取指定的时间单位长度内的行为特征并统计其操作频率,并对所提取的特征进行数据处理;
经数据预处理后的数据分为训练数据和待检测数据,训练数据经过BiGAN网络进行训练,训练结果得到正常行为模型;
基于训练后的所述正常行为模型,计算用户待检测数据的重构误差与判别器误差得到异常得分,之后应用OTSU算法自动选取阈值,获得检测结果。
其中,提取指定的时间单位长度的行为特征并统计其频率特征具体包括:
单位时间内在工作时间内或者单位时间内在工作时间外登录系统的次数、单位时间内工作时间内或者单位时间内工作时间外连接可移动设备次数等16个特征。
其中,对所提取的特征进行数据处理的步骤中:
对所提取的特征做归一化处理。
其中,所述BiGAN网络由编码器、生成器、判别器组成。
其中,应用OTSU算法自动选取阈值的标准为:
根据图像的灰度性质,将图像切分为目标和背景;
在背景和目标差别大时,其两部分之间的类间方差就大;
当错分背景或者错分目标会导致差别变小;
其中,经数据预处理后的数据分为训练数据和待检测数据,训练数据经过BiGAN网络进行训练,训练结果得到正常行为模型的步骤中:
只选取用户的正常行为数据作为BiGAN网络的训练输入,训练完成后的BiGAN网络的所述生成器部分只能生成与正常行为数据相似的数据,而所述判别器部分判别输入数据是否为正常行为数据。
本发明的一种基于BiGAN与OTSU的内部用户行为检测方法,针对用户行为数据量少、正负样本分布不均衡的问题,结合BiGAN网络在小样本数据生成领域的优秀效果,提出了基于BiGAN的用户行为检测检测模型,并考虑了用户行为数据存在的时间序列特性,使用GRU作为GAN网络的生成器。针对传统异常检测方法中异常阈值选取困难、依赖先验知识的问题,结合OTSU算法在图像分割领域具有效率高、准确性好的优点,提出使用OTSU作为用户行为异常检测中阈值的自动选取方法。以此提高异常检测方法在内部用户行为检测中的准确率,并降低误报率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的基于BiGAN与OTSU的内部用户行为检测方法的步骤流程图。
图2是本发明的基于BiGAN与OTSU的内部用户行为检测方法的模块框架图。
图3是本发明的BiGAN的原理图。
图4是本发明的实验结构分析图。
图5是本发明的用户正常行为模型构建流程图。
图6是本发明的用户行为检测的流程图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
请参阅图1至图6,本发明提供了一种基于BiGAN与OTSU的内部用户行为检测方法,包括如下步骤:
S1:获取用户行为原始日志数据,并将所述用户行为原始日志数据按照不同用户分别提取指定的时间单位的行为特征并统计其频率特征,并对所提取的特征进行数据处理;
S2:经数据预处理后的数据分为训练数据和待检测数据,训练数据经过BiGAN网络进行训练,训练结果得到正常行为模型;
S3:基于训练后的所述正常行为模型,计算用户待检测数据的重构误差与判别器误差得到异常得分,之后应用OTSU算法自动选取阈值,获得检测结果。
在本实施方式中,提取指定的时间单位长度的行为特征并统计其频率特征具体包括:
单位时间内在工作时间内或者单位时间内在工作时间外登录系统的次数、单位时间内工作时间内或者单位时间内工作时间外连接可移动设备次数等16个特征。
对所提取的特征进行数据处理的步骤中:
对所提取的特征做归一化处理。
所述BiGAN网络由编码器E、生成器G、判别器D组成。
应用OTSU算法自动选取阈值的标准为:
根据图像的灰度性质,将图像切分为目标和背景;
在背景和目标差别较大时,其两部分之间的类间方差就大;
当错分背景或者目标会导致差别变小;
其中,类间方差最大的时候就是目标和背景分割最好的情况,即此时的阈值为最佳阈值。
经数据预处理后的数据分为训练数据和待检测数据,训练数据经过BiGAN网络进行训练,训练结果得到正常行为模型的步骤中:
只选取用户的正常行为数据作为BiGAN网络的训练输入,训练完成后的BiGAN网络的所述生成器G部分只能生成与正常行为数据相似的数据,而所述判别器D部分判别输入数据是否为正常行为数据。
所述编码器E:提取真实数据的隐变量为E(x);
生成器G:将随机噪声生成为生成数据G(z);
判别器D:相比与原始GAN网络只从数据空间(x,G(z))鉴别真假,BiGAN则从数据空间和潜在空间(x,E(x))和(G(z),z)中进行鉴别。E(x)为编码器输出,G(z)为生成器输出;
BiGAN网络的目标优化函数:
minG,EmaxDV(D,G,E)=Ex~px[Ez~pE(·|x)[logD(x,z)]]+Ez~pz[Ex~PG(·|z)[log(1-D(x,z))]]。
其中,x代表原始数据,z表示随机潜变量,pG(x|z)pZ(z)和pE(z|x)pX(x)分别为生成器和编码器的联合概率分布。
所述OTSU算法原理:
设:w0:前景点所占比例;
w1:背景点所占比例,w1=1-w0;
u0:前景灰度均值;
u1:背景灰度均值;
u:全局灰度均值,u=w0*u0+w1*u1;
则g:类间最大方差,g=w0(u0-u)*(u0-u)+w1(u1-u)*(u1-u);
目标函数g反映了前景和背景的差值,差值越大,前景与背景差别越大,则此时t就为最佳阈值。
具体的基于BiGAN与OTSU的内部用户行为检测方法架构主要分为三大部分,数据处理模块、用户正常行为模型构建模块、用户行为检测模块,其框架图2所示。
数据处理模块
数据处理主要实现对原始日志进行处理。本发明将数据按照不同的用户分别选定指定的时间单位长度计算其频率特征,如单位时间内在工作时间内或者单位时间内在工作时间外登录系统的次数、单位时间内工作时间内或者单位时间内工作时间外连接可移动设备次数等,以此来作为描述用户行为模式的特征,最后对所提取的特征做归一化处理。
用户正常行为模型构建模块
该模块选取在小样本数据生成领域中有着优秀效果的BiGAN网络作为构建用户正常行为模式的模型。其中BiGAN网络相比于普通的GAN网络,增加了一个编码器,在保留原始GAN的随机生成数据的功能,同时编码器可以对数据进行有效的特征提取,提高生成数据的质量。
用户行为检测模块
该模块基于训练好的正常行为模型,通过计算待检测数据的重构误差与判别器误差得到异常得分,最后应用OTSU算法自动选取阈值,从而达到检测结果。
其中,BiGAN相比于普通的GAN网络,增加了一个编码器,在保留原始GAN的随机生成数据的功能的同时,编码器可以对数据进行有效的特征提取,从而提高了生成数据的质量。BiGAN的结构图如图3所示:
所述BiGAN网络由编码器E、生成器G、判别器D组成。
所述编码器E:提取真实数据的隐变量为E(x);
生成器G:将随机噪声生成为生成数据G(z);
判别器D:相比与原始GAN网络只从数据空间(x,G(z))鉴别真假,BiGAN则从数据空间和潜在空间(x,E(x))和(G(z),z)中进行鉴别。E(x)为编码器输出,G(z)为生成器输出;
BiGAN网络的目标优化函数:
minG,EmaxDV(D,G,E)=Ex~px[Ez~pE(·|x)[logD(x,z)]]+Ez~pz[Ex~PG(·|z)[log(1-D(x,z))]]。
其中,x代表原始数据,z表示随机潜变量,pG(x|z)pZ(z)和pE(z|x)pX(x)分别为生成器和编码器的联合概率分布。
BiGAN在加入编码器后,相比原始GAN具有了学习数据深层特征表示的能力。原始GAN中,D接收输入样本,并将其学习到的隐空间层的表示作为相关任务的特征表示。当G生成了真实数据时,D只能预测生成数据的真实性,但是无法学习有意义的中间表示。同时在异常检测阶段,基本的GAN网络仍要迭代寻找最佳的z来找到最低的重建误差,导致检测效率低,而BiGAN在检测阶段可以直接使用训练好的编码器E代替寻找那个z,因此,本文创新使用BiGAN来作为用户行为检测模型,并创新性的将GRU用作BiGAN的生成器,解决传统GAN网络难以处理时序数据的难点问题。
OTSU算法:最大类间方差法(OTSU)是一种自适应的确定阈值的方法。它的主要思想是根据图像的灰度性质,将图像切分为目标和背景。在背景和目标差别较大时,其两部分之间的类间方差就大。当错分背景或者目标会导致差别变小。因此,类间方差最大的时候就是目标和背景分割最好的情况,即此时的阈值为最佳阈值。
所述OTSU算法原理:
设:w0:前景点所占比例;
w1:背景点所占比例,w1=1-w0;
u0:前景灰度均值;
u1:背景灰度均值;
u:全局灰度均值,u=w0*u0+w1*u1;
则g:类间最大方差,g=w0(u0-u)*(u0-u)+w1(u1-u)*(u1-u);
目标函数g反映了前景和背景的差值,差值越大,前景与背景差别越大,则此时t就为最佳阈值。
其中,True Positives,TP(真阳性):预测为正样本,实际为正样本
False Positives,FP(假阳性):预测为正样本,实际为负样本
True Negatives,TN(真阴性):预测为负样本,实际为负样本
False Negatives,FN(假阴性):预测为负样本,实际为正样本
准确率(Accuracy)=(TP+TN)/(TP+TN+FP+FN)
查准率(Precision)=(TP)/(TP+FP)
误报率(FPR)=FP/(FP+TN)
召回率(Recall)=TP/(TP+FN)
F1(F-Measure,综合评价指标)=(2*P*R)/(P+R)
本文主要从准确率、召回率、误报率进行对比分析:实验中选取DBN+OCSVM、GRU+attention、与BiGAN+OSTU作比较,实验结果如图4所示,由图4的对比实验可知,本文提出的BiGAN+OSTU在准确率上与GRU+attention的效果差不多,而在召回率和误报率指标上均优于DBN+OCSVM和GRU+attention两种方法,实现了用户行为异常检测对于异常行为的高检测率且还有较低的误报率。
具体实施例为:
数据处理
实验采用内部威胁检测领域中广泛使用的CMU-CERT内部用户行为数据集r5.2版本作为实验数据来源。该数据集卡内基·梅隆大学的CERT部门提出的内部威胁测试数据集,其模拟了三类主要的内部攻击行为数据:内部欺诈、系统破坏、信息窃取,以及大量的正常行为数据。CERT数据集由多个文件组成,这些文件包含组织中员工行为的日志。logon.csv,http.csv,email.csv,device.csv,psychometric.csv包含登录,注销,网站访问,电子邮件,将文件复制到可移动磁盘,连接可移动磁盘和断开连接的时间和行为,有关员工心理测验的分数,以及一个包含用户职位,部门,工作期和参与项目的LDAP文件。本文采用其中的logon.csv,http.csv,email.csv,device.csv以及file.csv文件。
首先,设定用户的工作时间为08:00到18:00,然后以天为单位长度统计其行为,计算其在单位时间长度内每种类型行为的操作次数,如单位时间内在工作时间内或者单位时间内在工作时间外登录系统的次数、单位时间内工作时间内或者单位时间内工作时间外连接可移动设备次数、是否登录危险网站16个特征。特别地针对某天只有登录或者注销行为,说明这一天的行为是上一天行为的连续,故把注销行为前发生的行为与上一天合并计算。提取的行为特征如下表所示:
用户行为检测
基于BiGAN与OTSU的内部用户异常行为检测中的主要分为正常行为模型构建阶段和检测阶段。
正常行为模型构建阶段:
由于用户行为数据存在数据量少、样本分布不均衡(异常数据较少)的特点,传统的神经网络通常需要大量的数据进行训练,所以本章选取在小样本数据生成领域中有着优秀效果的BiGAN网络作为构建用户正常行为模式的模型。用户正常行为模型构建流程图如图5所示:
如图6所示,训练好的正常行为模型只能生成正常的行为数据,所以在遇到异常数据时不能很好的生成,故可以通过将异常得分A作为异常判断的根据,最后并应用OTSU算法自动选取异常阈值,达到检测的结果。
设待检测的数据为x,其异常得分为A(x),A(x)计算公式如下所示:
A(x)=αL(D)+(1-α)L(G)
1)L(G):代表重构误差,利用生成模型,来判断x跟真实数据的差异,是数据空间层面的误差计算,计算公式如下:
LG=||x-G(E(x))||1
E(x)表示数据x经过编码器E的输出,G(E(x))表示生成器根据E(x)生成的数据,L(G)表示求这两个数据之间的误差。由于用户正常行为数据与异常行为数据的差别较小,这里的误差计算方式采用对数据变化较敏感的余弦相似度来计算误差。
2)L(D):从判别器的角度来确定x跟真实样本的差异,选取的是判别器中间层的表示来计算误差是隐空间层面的误差计算,计算公式如下:
L(D)=||fD(x,E(x))-fD(G(E(x)),E(x))||1
fD表示判别器的中间层输出,L(D)表示求(x,E(x))和(G(E(x)),E(x)))之间的误差,这里也是用余弦相似度作为误差计算方法。
3)A(x):异常得分,通过将L(G)、L(D)加权求和计算得到异常得分A(x),α代表权值。
在通过BiGAN计算得出异常得分后,将使用OTSU算法对异常得分进行阈值分割,基于OTSU的异常阈值划分算法步骤如下:
输入异常得分score{s1,s2,…,sn},并初始化阈值t为0;
从初始阈值开始循环递加1计算出不同阈值下的类间最大方差g;
将类间最大方差g赋值给t,t就是算法最后返回的最佳阈值。
根据BiGAN计算出的异常得分与OTSU计算出的异常阈值,基于BiGAN与OTSU的内部用户行为检测实现步骤如下:
输入待检测行为数据D(d1,d2,…,dn);
待检测数据通过BiGAN计算得到异常得分score{s1,s2,…,sn};
将得到的异常得分通过OTSU计算得到异常阈值t;
判断异常得分是否大于异常阈值,如果是则为异常行为,否则为正常行为。
综上所述本发明提供的一种基于BiGAN与OTSU的内部用户行为检测方法,通过实验证明,基于BiGAN与OTSU算法的内部用户行为检测方法可以在少量数据样本的情况下生成正常行为,并且让BiGAN网络消化了时序数据,同时使用OTSU算法能够实现阈值的自动选取,最后的检测结果表明该方法提高了用户行为检测的准确率和召回率,并有很低的误报率。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。