企业内部用户异常行为检测方法和装置
技术领域
本发明涉及网络安全技术领域,尤其涉及企业内部用户异常行为检测方法和装置。
背景技术
全球企业每年因为内部用户蓄意破坏或无意失职导致的损失所占比重越来越大,内部威胁日益成为企业安全关注的重点。攻击者来自企业内部,攻击往往发生在工作时间,恶意行为嵌入在大量正常数据中,增加了数据挖掘分析的难度;同时攻击者往往具有组织安全防御机制的相关知识,可以采取措施规避安全检测。然而,内部威胁攻击模式多样,获取攻击样本成本高、难度大,人工判定异常工作量大、识别准确率低,当前较为成熟的有监督的机器学习方法,无法有效利用企业历史数据进行用户行为建模。
目前流行的标签式用户行为画像方法,针对以上数据进行统计建模,并通过学习历史数据中统计数值的大小,为用户贴标签,确定判别阈值,进而实现对新数据的异常性进行判定和打分。该方法过度依赖人工特征提取,且只能利用小部分统计性行为数据,大量细节信息被忽略,导致形成的行为模型缺细节、不全面,极大的影响了用户异常行为的判定准确率。
申请号为CN201710668128.9的发明提出了一种基于用户行为相似度的的行为检测方法,通过获取当前用户与其他用户之间的行为相似度,计算当前用户的当前行为的概率值,依据概率值,对所述当前行为进行检测。该发明中用户相似度的计算基于统计同一时间段内发生该行为的用户一共有多少人,以及当前一共有多少用户,分别统计在不同的网络环境下,每个用户的每个行为各发生了多少次这些简单的统计数据,忽略了大量行为细节信息。
综上,目前企业内部用户异常行为检测存在如下问题:
1.用户行为特征的确定和提取过度依赖人工,所提取特征多为简单的统计性信息,忽略大量的用户行为细节信息。
2.当前流行的互联网中贴标签式的用户行为画像方法,对网站访问量等基本数据进行统计、分析,从中发现用户访问网站的规律,此类方法适合于业务经营和商业推荐等领域,在内部威胁检测领域无法发挥作用。
发明内容
针对上述问题,本发明提出了企业内部用户异常行为检测方法和装置,使用非监督的机器学习方法,能够充分利用企业中无标注的历史行为日志数据构建用户行为模型,提高了异常行为检测的准确率,降低了误报率和漏报率,为检测企业内部威胁提供了有效手段。
为了实现上述目的,本发明采用以下技术方案:
企业内部用户异常行为检测方法,包括以下步骤:
步骤1:将企业内部用户的历史行为日志数据按照用户ID划分为不同的数据流,针对不同行为对应的历史行为日志数据,在解析过程中,进行不同的处理,将每条历史行为日志数据解析为一个五元组;
步骤2:为解析后的历史行为日志数据建立索引,存储到全文搜索引擎数据库中,作为初始搜索的基础数据,当接收到新的行为日志数据时,通过搜索新的行为日志数据对应的五元组提取对应的行为细节信息,检索每个行为细节信息在历史行为中出现的频率及时间节点信息,完成新行为与历史行为的比对,将文字型日志数据转化为数值型向量,利用转化为数值型向量的历史行为日志数据构建用户行为模型;
步骤3:根据行为间的时间间隔将解析后的历史行为日志数据划分为不同的行为短序列,将划分好的行为短序列根据相似性聚类,将同一类中的短序列定义为同一业务状态,用类名称代替该类中的所有短序列作为观测变量,利用观测变量训练隐马尔可夫模型,通过隐马尔可夫模型预测观测变量对应的隐藏的业务状态,进行业务状态间的转移预测,进而预测业务状态间的转移概率;
步骤4:通过用户行为模型得到行为的异常得分,通过行为的异常得分及企业内部用户历史行为日志数据中各个业务逻辑的状态转移概率计算新行为序列的异常得分,判定新行为序列是否异常。
进一步地,所述行为包括:登录活动、外部设备访问活动、电子邮件收发活动、网页浏览活动及文件读写活动。
进一步地,所述用户历史行为日志数据包括:登录活动数据、外部设备访问活动数据、电子邮件收发活动数据、网页浏览活动数据及文件读写活动数据。
进一步地,所述五元组为<timestamp,userid,deviceid,activity,attribute>,其中,timestamp、userid、deviceid、activity、attribute为五元组对应的行为细节信息;timestamp为时间戳,userid为用户ID,deviceid为设备ID,activity为活动名称,attribute为活动属性。
进一步地,所述进行不同的处理包括:
在电子邮件发送活动中,将收件人信息加入活动属性;在电子邮件接收活动中,将发件人信息加入活动属性;
在文件读写活动中,将路径和文件名加入活动属性;
在网页浏览活动中,将URL信息加入活动属性;
登录活动和外部设备访问活动不包含属性数据,将活动属性设为空。
进一步地,所述利用转化为数值型向量的历史行为日志数据构建用户行为模型包括:将转化为数值型向量的同一用户的历史行为日志数据按发生的时间顺序进行排序,以固定的时间窗口划分为不同的行为块,利用每一个行为块中的转化为数值型向量的历史行为日志数据训练非监督学习模型,得到多个分类器,所述非监督学习模型为一分类支持向量机;保存时间最近的v个数据块形成的分类器集合M={M1,M2,…,Mv},构成非监督模型集群,所述非监督模型集群即为用户行为模型。
进一步地,所述步骤4包括:
步骤4.1:通过用户行为模型得到行为的异常得分,所述行为的异常得分为非监督模型集群中的所有分类器的平均值;
步骤4.2:通过行为的异常得分及历史行为日志数据中各个业务逻辑的状态转移概率计算新行为序列的异常得分,计算新行为序列的异常得分:
S为新行为序列{a21,a22,…,a2m}的异常得分,S∈(0,1),且S的值越小,新行为序列的异常程度越高;行为序列{a11,a12,…,a1n}构成观测状态x1,x1对应隐藏的业务状态y1,P12表示隐藏的业务状态y1向y2转移的概率;si为行为a2i的异常得分,i∈[1,m];
步骤4.3:根据历史行为异常得分设定异常得分阈值,根据新行为序列的异常得分S和异常得分阈值判定新行为序列是否异常,当S小于异常得分阈值时,判定为异常行为,向企业内部安全运维人员发出警报信息;当S大于异常得分阈值时,判定为正常行为,将当前行为日志数据存储至全文搜索引擎数据库,以更新用户行为模型。
企业内部用户异常行为检测装置,包括:
行为日志获取和预处理模块,用于将企业内部用户的历史行为日志数据按照用户ID划分为不同的数据流,针对不同行为对应的历史行为日志数据,在解析过程中,进行不同的处理,将每条历史行为日志数据解析为一个五元组;
行为细节建模模块,用于为解析后的历史行为日志数据建立索引,存储到全文搜索引擎数据库中,作为初始搜索的基础数据,当接收到新的行为日志数据时,通过搜索新的行为日志数据对应的五元组提取对应的行为细节信息,检索每个行为细节信息在历史行为中出现的频率及时间节点信息,完成新行为与历史行为的比对,将文字型日志数据转化为数值型向量,利用转化为数值型向量的历史行为日志数据构建用户行为模型;
业务状态转移预测模块,用于根据行为间的时间间隔将解析后的历史行为日志数据划分为不同的行为短序列,将划分好的行为短序列根据相似性聚类,将同一类中的短序列定义为同一业务状态,用类名称代替该类中的所有短序列作为观测变量,利用观测变量训练隐马尔可夫模型,通过隐马尔可夫模型预测观测变量对应的隐藏的业务状态,进行业务状态间的转移预测,进而预测业务状态间的转移概率;
恶意行为评分判别模块,用于通过用户行为模型得到行为的异常得分,通过行为的异常得分及企业内部用户历史行为日志数据中各个业务逻辑的状态转移概率计算新行为序列的异常得分,判定新行为序列是否异常。
进一步地,所述行为日志获取和预处理模块具体还用于:
在电子邮件发送活动中,将收件人信息加入活动属性;在电子邮件接收活动中,将发件人信息加入活动属性;
在文件读写活动中,将路径和文件名加入活动属性;
在网页浏览活动中,将URL信息加入活动属性;
登录活动和外部设备访问活动不包含属性数据,将活动属性设为空。
进一步地,所述行为细节建模模块具体还用于:
将转化为数值型向量的同一用户的历史行为日志数据按发生的时间顺序进行排序,以固定的时间窗口划分为不同的行为块,利用每一个行为块中的转化为数值型向量的历史行为日志数据训练非监督学习模型,得到多个分类器,所述非监督学习模型为一分类支持向量机;保存时间最近的v个数据块形成的分类器集合M={M1,M2,…,Mv},构成非监督模型集群,所述非监督模型集群即为用户行为模型。
进一步地,所述恶意行为评分判别模块包括:
行为异常得分获得模块,用于通过用户行为模型得到行为的异常得分,所述行为的异常得分为非监督模型集群中的所有分类器的平均值;
新行为异常程度判定模块,用于通过行为的异常得分及历史行为日志数据中各个业务逻辑的状态转移概率计算新行为序列的异常得分,计算新行为序列的异常得分:
S为新行为序列{a21,a22,…,a2m}的异常得分,S∈(0,1),且S的值越小,新行为序列的异常程度越高;行为序列{a11,a12,…,a1n}构成观测状态x1,x1对应隐藏的业务状态y1,P12表示隐藏的业务状态y1向y2转移的概率;si为行为a2i的异常得分,i∈[1,m];
异常行为判断模块,用于根据历史行为异常得分设定异常得分阈值,根据新行为序列的异常得分S和异常得分阈值判定新行为序列是否异常,当S小于异常得分阈值时,判定为异常行为,向企业内部安全运维人员发出警报信息;当S大于异常得分阈值时,判定为正常行为,将当前行为日志数据存储至全文搜索引擎数据库,以更新用户行为模型。
与现有技术相比,本发明具有的有益效果:
通过基于搜索的行为特征向量自动提取方法,免除了人工提取特征的麻烦,能够充分利用用户行为日志数据中的每一个行为细节信息,并能够从多角度确定各个行为细节信息在历史行为中的出现频率。解决了现有技术中用户行为模型细节缺失的问题。
利用集成学习的常态行为非监督机器学习建模方法,充分利用集成学习技术的优势,能够提高建模的健壮性和稳定性,有效降低了单模型中数据过拟合导致的误报、漏报问题带来的影响,并能够随着时间推移学习用户行为模型变化,实现了用户行为模型的在线更新,有效解决了单模型更新不及时带来的检测准确率降低的问题。
采用基于业务逻辑的状态转移预测方法,充分利用用户业务的有限性和稳定性,通过历史行为日志数据中各个业务状态的转移概率,预测新行为在业务状态转移时的可能性大小。该方法能够提高用户违规操作、用户身份盗用或身份伪装等问题的检测准确率。
恶意行为评分判别模块基于融合行为细节建模模块和业务状态转移预测模块的预测结果进行评分,通过学习历史行为日志数据确定评分阈值,进而判定新行为的异常程度。对于异常行为,能够及时向企业安全管理员发出报警信息,方便采取预防措施和后续的用户行为人工诊断。
本发明提高了异常行为检测的准确率,降低了误报率和漏报率,为检测企业内部威胁提供了有效手段。
附图说明
图1为本发明实施例的企业内部用户异常行为检测方法的基本流程图。
图2为本发明实施例的企业内部用户异常行为检测方法的用户活动按发生时间顺序排序流程示意图。
图3为本发明实施例的企业内部用户异常行为检测方法的评分过程流程示意图。
图4为本发明另一实施例的企业内部用户异常行为检测方法的不同用户在不同的时间间隔下活动的异常得分图。
图5为本发明实施例的企业内部用户异常行为检测方法的预测异常得分图。
图6为本发明实施例的企业内部用户异常行为检测装置的结构示意图。
图7为本发明另一实施例的企业内部用户异常行为检测装置的结构示意图。
具体实施方式
下面结合附图和具体的实施例对本发明做进一步的解释说明:
实施例一:
如图1所示,本发明的一种企业内部用户异常行为检测方法,包括以下步骤:
步骤S101:将企业内部用户的历史行为日志数据按照用户ID划分为不同的数据流,针对不同行为对应的历史行为日志数据,在解析过程中,进行不同的处理,将每条历史行为日志数据解析为一个五元组。
步骤S102:为解析后的历史行为日志数据建立索引,存储到全文搜索引擎数据库中,作为初始搜索的基础数据,当接收到新的行为日志数据时,通过搜索新的行为日志数据对应的五元组提取对应的行为细节信息,检索每个行为细节信息在历史行为中出现的频率及时间节点信息,完成新行为与历史行为的比对,将文字型日志数据转化为数值型向量,利用转化为数值型向量的历史行为日志数据构建用户行为模型。
步骤S103:根据行为间的时间间隔将解析后的历史行为日志数据划分为不同的行为短序列,将划分好的行为短序列根据相似性聚类,将同一类中的短序列定义为同一业务状态,用类名称代替该类中的所有短序列作为观测变量,利用观测变量训练隐马尔可夫模型,通过隐马尔可夫模型预测观测变量对应的隐藏的业务状态,进行业务状态间的转移预测,进而预测业务状态间的转移概率。
步骤S104:通过用户行为模型得到行为的异常得分,通过行为的异常得分及企业内部用户历史行为日志数据中各个业务逻辑的状态转移概率计算新行为序列的异常得分,判定新行为序列是否异常。
实施例二:
本发明的另一种企业内部用户异常行为检测方法,包括以下步骤:
步骤S201:将企业内部用户的历史行为日志数据按照用户ID划分为不同的数据流,针对不同行为对应的历史行为日志数据,在解析过程中,进行不同的处理,将每条历史行为日志数据解析为一个五元组;
为保证合法用户有效访问受保护资源、防止非法用户非授权访问、保留用户行为记录进行违规追查,日志分析和审计成为实现保护企业信息安全、监控内部用户行为合规性的重要手段。在审计系统中,部署在企业内部的各类传感器会不断记录用户操作行为,并生成相关日志,存储至日志服务器。用户登录、外部设备访问、电子邮件收发、网页浏览、文件读写行为,是企业审计用户行为使用的最基本数据。相比网络流量、电能消耗数据,这五类日志数据采集方便、可理解性强。
用户行为日志中包含但不限于登录(login)、外部设备访问(device)、电子邮件收发(e-mail)、网页浏览(web)、文件读写(file)这五类活动。则用户行为日志数据包括:登录活动数据、外部设备访问活动数据、电子邮件收发活动数据、网页浏览活动数据及文件读写活动数据。解析每一条数据可以得到时间戳(timestamp)、用户ID(userid)、设备ID(deviceid)、活动名称(activity),部分活动可能包含更多的信息,统称为活动属性(attribute),例如电子邮件包含收件人、发件人、邮件内容。
首先将历史行为日志数据按照用户ID划分为不同的数据流。针对不同活动的属性,在解析过程中,需要进行一定的处理。例如,在电子邮件发送活动中,将收件人信息加入活动属性;在电子邮件接收活动中,将发件人信息加入活动属性;在文件读写活动中,将路径和文件名加入活动属性;在网页浏览活动中,将URL信息加入活动属性;登录活动和外部设备访问活动不包含属性数据,将活动属性设为空(None)。
最终,每一条行为日志数据可以解析为一个5元组:
<timestamp,userid,deviceid,activity,attribute>
其中,timestamp、userid、deviceid、activity、attribute为五元组对应的行为细节信息。
步骤S202:为解析后的历史行为日志数据建立索引,存储到全文搜索引擎数据库中,作为初始搜索的基础数据,当接收到新的行为日志数据时,通过搜索新的行为日志数据对应的五元组提取对应的行为细节信息,检索每个行为细节信息在历史行为中出现的频率及时间节点信息,完成新行为与历史行为的比对,将文字型日志数据转化为数值型向量,利用转化为数值型向量的历史行为日志数据构建用户行为模型。
企业审计日志中用户行为数据本身没有分类标注,且通过人工核查的方法很难及时、准确地判断其威胁性。有监督的机器学习方法无法处理此类无标注数据。本发明充分利用搜索引擎技术的优势,通过搜索的方式,实现对用户行为日志数据的特征提取和细节补足。
全文搜索引擎技术是目前主流搜索引擎广泛应用的技术,它通过扫描文章中的每一个词,对每个词建立索引,指明该词在文章中出现的次数和位置。当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果即时反馈给用户。
将搜索引擎技术作为联系用户历史行为和新行为的桥梁,把用户历史行为日志数据建立索引,存储到全文搜索引擎数据库中,充当初始搜索的基础数据,当新的行为数据到来时,检索该行为中每个细节信息在历史行为中的出现的频率、时间节点信息。在充分提取行为细节信息的基础上,完成新行为与历史行为的比对工作,将文字型日志数据转化为便于机器学习算法处理的数值型向量。
例如,新行为日志中有这样一条记录,2017年10月12日08:12:10用户U在设备D上访问网页https://www.demo.com/this/is/a/test.jsp。通过步骤S201将该记录解析为五元组(2017-10-12 08:12:10,U,D,WWW_VISIT,[demo.com,this,is,a,test])。随后,搜索用户U在设备D上活动与用户U所有活动的比例,搜索07:42到08:42这个时间段内用户U在设备D上活动与用户U在设备D所有活动的比例,搜索用户U在设备D上访问网页与用户U在设备D所有活动的比例,搜索07:42到08:42这个时间段内用户U在设备D上访问网页活动与用户U在设备D所有访问网页活动的比例,搜索用户U在设备D上访问demo.com与用户U在设备D上所有网页访问活动的比例。按照上述方式,搜索五元组中所有有意义的排列组合方式与历史行为日志数据的比例,形成一个描述该行为记录的包含全细节的数值型向量。
利用集成学习的常态行为非监督机器学习建模方法,充分利用集成学习技术的优势,能够提高建模的健壮性和稳定性,有效降低了单模型中数据过拟合导致的误报、漏报问题带来的影响,并能够随着时间推移学习用户行为模型变化,实现了用户行为模型的在线更新,有效解决了单模型更新不及时带来的检测准确率降低的问题。
如附图2所示,将用户某项活动按发生的时间顺序排序,以某固定时间窗口(例如7天)为一个单位划分为不同的行为块。为能够较全面描述一段时间内的用户行为,尽量做到每一个行为块中包含用户工作日和休息日的行为日志数据。利用每一个行为块中的数据训练非监督学习模型,得到多个分类器,所述非监督学习模型为一分类支持向量机。保存时间最近的v个数据块形成的分类器集合M={M1,M2,…,Mv},构成非监督模型集群,作为用户行为模型。
步骤S203:根据行为间的时间间隔将解析后的历史行为日志数据划分为不同的行为短序列,将划分好的行为短序列根据相似性聚类,将同一类中的短序列定义为同一业务状态,用类名称代替该类中的所有短序列作为观测变量,利用观测变量训练隐马尔可夫模型,通过隐马尔可夫模型预测观测变量对应的隐藏的业务状态,进行业务状态间的转移预测,进而预测业务状态间的转移概率。
基于时间阈值的用户行为划分,将用户行为数据流根据行为间的时间间隔划分为不同的行为短序列,使用非监督的机器学习聚类方法,将相似行为短序列定义为同一业务状态,保证了用户业务状态的有限性,为后续预测状态转移概率提供数据基础。
在现实生活中,用户处理的业务流程不同,产生的行为序列也会存在差异。在进行业务切换时,用户行为的间隔时间比业务进行时的间隔时间长。基于以上情况,本发明假设相同业务状态中用户行为间隔时间Δ小于阈值θ,在业务状态发生切换时,Δ>θ。根据时间间隔阈值θ可以将用户行为序列流划分为多个具有先后顺序的短序列。
相同的业务状态,用户的行为序列应大致相同。为保证观测值的有限性,将划分好的短序列根据相似性聚类,作为一种可实施方式,采用k-means算法进行聚类,相似性函数采用Pearson相关系数。相似的短序列被聚到同一类中,于是,在进行业务状态转移预测时,可以用类名称代替该类中的所有短序列作为观测变量,X={x1,x2,…,xm},其中xi∈X表示第i时刻的观测值。
基于业务状态的转移预测,充分利用用户业务的有限性和稳定性,通过学习行为历史日志数据中各个业务状态的转移概率,预测新行为在业务状态转移时的可能性大小。该方法能够提高用户违规操作、用户身份盗用或身份伪装问题的检测准确率。
例如,利用观测变量序列训练隐马尔可夫模型,预测隐藏的业务状态变量{y1,y2,…,yn},其中yi∈Y表示第i时刻的业务状态,进而预测状态变量间的转移概率。
步骤S204:通过用户行为模型得到行为的异常得分,通过行为的异常得分及企业内部用户历史行为日志数据中各个业务逻辑的状态转移概率计算新行为序列的异常得分,判定新行为序列是否异常。
用户行为评分过程如附图3所示,图中行为序列{a11,a12,…,a1n}构成观测状态x1,x1对应隐藏的业务状态,即隐状态y1;P12表示隐状态y1向y2转移的概率;OCSVMs为非监督模型集群;当新序列{a21,a22,…,a2m}到来时,可以得到P12。对于每一个行为a2i,利用训练好的非监督模型集群可以得出该行为的异常得分si,si的值为非监督模型集群的所有分类器的平均值,i∈[1,m];最终,新行为序列的异常得分为:
S∈(0,1),且S的值越小,新行为序列的异常程度越高。
当隐状态y1向y2转移的概率很大,且行为序列中的活动为用户历史常做活动时,异常得分S值趋近于1。反之,当隐状态y1向y2转移的概率很小,或行为序列中出现历史罕见活动,S值趋近于0。
设定异常得分阈值,根据设定的得分阈值判定新行为是否为异常行为;当S小于异常得分阈值时,判定为异常行为,向安全运维人员发出警报信息,方便采取预防措施和后续的人工诊断,去除异常行为后,将最近时间时间窗口内的所有该用户该类活动记录训练新的非监督模型Mv+1,并将Mv+1加入到集群M中,同时剔除M1,保持M中有时间最近的v个数据块形成的分类器;判定为正常行为时,将当前行为数据存储至全文搜索引擎数据库,以更新用户行为模型。
作为一种可实施方式,选取ElasticSearch全文搜索引擎作为行为特征向量自动提取方法的技术支撑,选取一分类支持向量机作为用户行为常态建模的非监督学习分类器,选取隐马尔科夫模型作为实现基于业务逻辑的状态转移预测方法的技术方法。
ElasticSearch是一个基于Apache Lucence的开源的实时分布式搜索和分析引擎,能够以极高的速度处理大规模数据,可以实现稳定、可靠、快速的实时搜索,是当前流行的企业级搜索引擎。
随机选取某军工企业中两名因窃取机密信息离职用户的历史行为日志数据,作为验证该发明有效性的数据输入。经过事后人工分析,对两名用户的行为数据进行了分析,确认两名用户在前90天的数据中不包含攻击数据。验证过程中选取前90天的数据作为训练数据,提取正常用户行为画像,剩下410天的数据作为测试数据。测试过程中,当用户行为判定为正常后,也会被加入到正常数据中,用于充实和更新正常用户画像。
根据该企业安全分析人员介绍,用户LMP和CDH,涉及两个完全不同的内部威胁场景。用户LMP从某天开始浏览求职网站,向竞争单位发出求职申请,并在他离开公司之前,使用可移动存储设备偷窃公司数据。用户CDH登录其他用户的机器找寻机密文件信息,将找到的机密文件通过Email发送到私人邮箱中。两用户所有活动中包含的恶意行为如表1所示。
表1内部威胁场景中恶意行为信息表
在划分观测序列时,不同的时间间隔对序列长短、序列数量以及序列划分的有效性会产生不同的影响。为选取合理的时间间隔,保证该发明在完成部署后发挥最佳作用,在其他实验参数固定的情况下,分别对2min、5min、10min的时间间隔进行验证。图4展示了两个不同用户在不同的时间间隔下,14天活动的异常得分分布情况。可以看出,当时间间隔为2min时,序列划分数量比5min、10min时要多,且得分分布较散,此时异常得分均值分别为0.37和0.205,方差分别为0.073和0.037。时间间隔为10min时,序列数量急剧减少,一个序列中包含的活动数量增加,但当一天中用户活动数量较少时,不能很好的表现用户工作状态的转换情况,此时得分的均值分别为0.228和0.069,方差分别为0.039和0.008。综上比较,最终选择5min为合理的活动序列划分时间间隔,此时得分的均值分别为0.217和0.151,方差分别为0.027和0.034。
将5min作为活动观测序列的划分间隔,进行后续验证。用训练好的用户行为模型预测剩下的410天中的活动,得到附图5中的异常得分图。从图5可以看出,随着时间的推移,每个活动的异常得分趋于平稳,由于隐马尔可夫模型中部分隐状态的转换概率较小,图中存在少部分活动得分小于1×10-4。
选取不同的得分阈值作为异常行为的评判标准,训练模型的检测效果也会有所不同,如表2所示。
表2不同阈值下系统效果表
在实际工作中,不同的企业对查全率和查准率的要求不同。在安全级别较高的企业中,漏报恶意行为会引起较大损失,该类企业更倾向于高查准率。一般企业中,当异常行为排查难度大时,高误报会加大安全工程师的工作量,降低正常员工的满意度和工作积极性,该类企业更倾向于高查全率。企业可以根据自身特征选择合适的得分阈值。从表2中,可以得出,用户LMP、用户CDH、整体均在得分阈值为10E-7时取得最大F1得分,F1得分是对查准率和查全率的一个有机融合,是一种常用的验证模型检测效果的指标。
实施例三:
如图6所示,本发明的一种企业内部用户异常行为检测装置,包括:
行为日志获取和预处理模块301,用于将企业内部用户的历史行为日志数据按照用户ID划分为不同的数据流,针对不同行为对应的历史行为日志数据,在解析过程中,进行不同的处理,将每条历史行为日志数据解析为一个五元组;
行为细节建模模块302,用于为解析后的历史行为日志数据建立索引,存储到全文搜索引擎数据库中,作为初始搜索的基础数据,当接收到新的行为日志数据时,通过搜索新的行为日志数据对应的五元组提取对应的行为细节信息,检索每个行为细节信息在历史行为中出现的频率及时间节点信息,完成新行为与历史行为的比对,将文字型日志数据转化为数值型向量,利用转化为数值型向量的历史行为日志数据构建用户行为模型;
业务状态转移预测模块303,用于根据行为间的时间间隔将解析后的历史行为日志数据划分为不同的行为短序列,将划分好的行为短序列根据相似性聚类,将同一类中的短序列定义为同一业务状态,用类名称代替该类中的所有短序列作为观测变量,利用观测变量训练隐马尔可夫模型,通过隐马尔可夫模型预测观测变量对应的隐藏的业务状态,进行业务状态间的转移预测,进而预测业务状态间的转移概率;
恶意行为评分判别模块304,用于通过用户行为模型得到行为的异常得分,通过行为的异常得分及企业内部用户历史行为日志数据中各个业务逻辑的状态转移概率计算新行为序列的异常得分,判定新行为序列是否异常。
实施例四:
如图7所示,本发明的另一种企业内部用户异常行为检测装置,包括:
行为日志获取和预处理模块401,用于将企业内部用户的历史行为日志数据按照用户ID划分为不同的数据流,针对不同行为对应的历史行为日志数据,在解析过程中,进行不同的处理,将每条历史行为日志数据解析为一个五元组;
行为细节建模模块402,用于为解析后的历史行为日志数据建立索引,存储到全文搜索引擎数据库中,作为初始搜索的基础数据,当接收到新的行为日志数据时,通过搜索新的行为日志数据对应的五元组提取对应的行为细节信息,检索每个行为细节信息在历史行为中出现的频率及时间节点信息,完成新行为与历史行为的比对,将文字型日志数据转化为数值型向量,利用转化为数值型向量的历史行为日志数据构建用户行为模型;
业务状态转移预测模块403,用于根据行为间的时间间隔将解析后的历史行为日志数据划分为不同的行为短序列,将划分好的行为短序列根据相似性聚类,将同一类中的短序列定义为同一业务状态,用类名称代替该类中的所有短序列作为观测变量,利用观测变量训练隐马尔可夫模型,通过隐马尔可夫模型预测观测变量对应的隐藏的业务状态,进行业务状态间的转移预测,进而预测业务状态间的转移概率;
恶意行为评分判别模块404,用于通过用户行为模型得到行为的异常得分,通过行为的异常得分及企业内部用户历史行为日志数据中各个业务逻辑的状态转移概率计算新行为序列的异常得分,判定新行为序列是否异常。
所述行为日志获取和预处理模块401具体还用于:
在电子邮件发送活动中,将收件人信息加入活动属性;在电子邮件接收活动中,将发件人信息加入活动属性;
在文件读写活动中,将路径和文件名加入活动属性;
在网页浏览活动中,将URL信息加入活动属性;
登录活动和外部设备访问活动不包含属性数据,将活动属性设为空。
所述行为细节建模模块402具体还用于:
将转化为数值型向量的同一用户的历史行为日志数据按发生的时间顺序进行排序,以固定的时间窗口划分为不同的行为块,利用每一个行为块中的转化为数值型向量的历史行为日志数据训练非监督学习模型,得到多个分类器,所述非监督学习模型为一分类支持向量机;保存时间最近的v个数据块形成的分类器集合M={M1,M2,…,Mv},构成非监督模型集群,所述非监督模型集群即为用户行为模型。
所述恶意行为评分判别模块404包括:
行为异常得分获得模块4041,用于通过用户行为模型得到行为的异常得分,所述行为的异常得分为非监督模型集群中的所有分类器的平均值;
新行为异常程度判定模块4042,用于通过行为的异常得分及历史行为日志数据中各个业务逻辑的状态转移概率计算新行为序列的异常得分,计算新行为序列的异常得分:
S为新行为序列{a21,a22,…,a2m}的异常得分,S∈(0,1),且S的值越小,新行为序列的异常程度越高;行为序列{a11,a12,…,a1n}构成观测状态x1,x1对应隐藏的业务状态y1,P12表示隐藏的业务状态y1向y2转移的概率;si为行为a2i的异常得分,i∈[1,m];
异常行为判断模块4043,用于根据历史行为异常得分设定异常得分阈值,根据新行为序列的异常得分S和异常得分阈值判定新行为序列是否异常,当S小于异常得分阈值时,判定为异常行为,向企业内部安全运维人员发出警报信息;当S大于异常得分阈值时,判定为正常行为,将当前行为日志数据存储至全文搜索引擎数据库,以更新用户行为模型。
以上所示仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。