CN112738088B - 一种基于无监督算法的行为序列异常检测方法及*** - Google Patents
一种基于无监督算法的行为序列异常检测方法及*** Download PDFInfo
- Publication number
- CN112738088B CN112738088B CN202011589236.5A CN202011589236A CN112738088B CN 112738088 B CN112738088 B CN 112738088B CN 202011589236 A CN202011589236 A CN 202011589236A CN 112738088 B CN112738088 B CN 112738088B
- Authority
- CN
- China
- Prior art keywords
- user
- sequence
- opr
- session
- behavior sequence
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2415—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/243—Classification techniques relating to the number of classes
- G06F18/24323—Tree-organised classifiers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/088—Non-supervised learning, e.g. competitive learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Biophysics (AREA)
- Computer Hardware Design (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Probability & Statistics with Applications (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种基于无监督算法的行为序列异常检测方法,该方法基于企业web***操作数据,通过用户操作的先后顺序,计算两次操作的时间间隔,根据两次操作的时间间隔是否大于预设阈值,对用户行为序列进行分割,进而训练概率后缀树模型,根据概率后缀树模型输出用户行为序列对应的概率值,将用户对应的概率值作为特征即孤立森林模型的输入,根据模型输出结果判断用户行为是否异常。
Description
技术领域
本发明涉及信息安全技术领域,具体来说是一种基于无监督算法的行为序列异常检测方法及***。
背景技术
近些年,伴随着云大物移技术的不断发展以及市场需要,各行各业的业务***飞速增长,伴随而来的网络攻击手段也呈现出多元化发展趋势,常规传统的一些安全防护措施只能起到传统的安全防护效果,这些能力在当前复杂的网络坏境下正逐步失效。如何能快速准确的挖掘出攻击威胁、恶意用户、恶意行为等也逐渐变得越来越困难。网站攻击、“薅羊毛”、窃取企业内部数据等恶意行为通过各种伪装手段,隐匿在大量正常的网络行为中,对个人、企业、社会都造成了较为严重的不良影响和极大的危害。因此需要一种能够处理海量的复杂网络日志数据,同时又能够及时准确的检测出异常行为或攻击威胁的方法。
目前用户行为序列异常检测一方面主要采用基于规则引擎的方法,结合业务经验,通过人工或半人工方式总结一系列行为序列组合,形成行为序列库,当用户行为序列不在预设的行为序列库,则属于疑似异常行为;一方面通过历史案例,总结用户行为特征,训练有监督或无监督模型,检测用户行为是否异常,或者类似于专利号CN201810668279.9中提到的通过训练历史行为模式构建Markov(马尔可夫)模型,利用模型评分用户的行为异常分值;一方面通过比较用户与用户之间行为序列的相似性,从而检测出行为序列异常的用户;另一方面类似于专利号CN201810668279.9中提到的处理方法,等时间间隔切割用户行为,统计时间片段内的用户各类行为的统计特征等,进而利用无监督模型如孤立森林,得出用户的异常分值。
基于以上论述,现有的用户行为序列异常检测方法存在些许不足,具体如下:
通过人工或半人工总结定义规则适应性较差,同时存在较大的难度。首先能总结规则的专家需要对各个***及业务都非常的了解熟悉,同时需要对可能存在的攻击方式即安全业务有一定的了解,再者需要具备较丰富的规则配置经验,需要结合用户实际应用,可操作性较差。另一方面当***更新或者业务流程发生改变,相应的规则可能需要同时更新迭代,灵活性相对较差一些。再者随着时间的累积,规则库的规则会越来越多,因为规则库可能多人参与合作,同时人员可能存在一定的流动性,从而造成规则库的可维护性较差;
通过历史已发生的案例,总结用户的行为特征构造如波动、频次等统计特征,训练有监督或无监督模型,这类模型一般只能捕捉到用户行为统计特征上的信息例如操作次数过高,操作波动较大等这类较为明显的业务统计特征,很难捕捉到行为序列的信息如行为先后的时序意义,行为组合的业务意义。现有攻击者一般都会通过各种手段如低频次操作、更换IP等,绕过通过统计特征建立的模型检测。
通过训练历史行为模式构建Markov(马尔可夫)模型,生成转移概率矩阵,计算用户的行为序列的概率,把该概率值作为判断用户行为是否异常的标准。通过该种方式虽然在一定程度上能捕捉到部分行为序列异常的用户,但是很难捕捉到预设时序窗口之外的异常行为,如预设时序窗口为1,a行为正常、ab、bc行为也正常,如果abc行为属于异常,那么该种方式构建的模型就很难捕捉到。再者一般情况下这种模型是计算整个序列的发生概率,对序列中子序列是否异常并不敏感,同时可能会受到序列长度的影响。
通过等时间间隔切割用户行为,统计时间片段内的用户各类行为的统计特征等,进而利用无监督模型如孤立森林,得出用户的异常分值或异常标签。该种方法本质上来说依然是通过构建行为上的统计特征,可能会丢失部分行为本身的业务信息等。
发明内容
本发明所要解决的技术问题在于现有技术中针对行为序列异常检测存在标签样本缺失、准确率低、误报率高等问题。
本发明通过以下技术手段实现解决上述技术问题的:
一种基于无监督算法的行为序列异常检测方法,包括以下步骤:
S01.采集企业web***操作日志,并处理得到web用户第一操作表T1_opr;
S02.基于web用户第一操作表T1_opr,获取预设周期的数据,并对该数据经过处理得到第二操作表T2_opr;所述第二操作表T2_opr至少包括字段用户USER_ID、用户相邻两次操作间隔时间对应的session值;
S03.根据USER_ID、session字段,按照时间的先后顺序,合并操作类型对应的字符编码集中的短编码,生成行为序列表T_opr_seq;
S04.基于行为序列表T_opr_seq中的行为序列字段训练预设阶数的概率后缀树模型,得到目标模型;
S05.基于步骤S01-S03,加工处理次日web***操作日志数据,获得次日用户操作行为序列表T_opr_seq_test,对行为序列表T_opr_seq_test中的行为序列字段,输入S04训练得出的目标模型,将其转换为数值序列,并统计数值序列中低于预设概率阈值的占比值ABNORMAL_LV;
S06.将所述步骤S05中得到的数值序列按照预设宽度切割,对于不足预设宽度的序列在右侧填充数值-1,从而使得每条记录的长度相同即每个用户具有相同数量的特征数;
S07.将步骤S06中处理后的等长度数据序列以及步骤S05中低于预设概率阈值的占比值ABNORMAL_LV作为每个用户的特征输入,通过孤立森林算法计算每条记录的异常分值,输出异常用户即label为-1的记录,从而实现对用户行为序列的异常检测。
本发明提供的方法属于一种无监督的方法,适应性较强,不需要过于依赖业务经验;通过“session”的思想分割用户行为序列,较符合逻辑和实际;另一方面考虑到实际应用中,大多数攻击者会将自己伪装成正常用户,通过计算整个序列的概率值或者异常行为在整个序列中的占比,可能很难检测到这部分攻击者。本方法通过将行为序列转为数值序列,进而将数值序列作为特征输入,通过孤立森林算法检测用户是否异常,不仅对整体序列异常检测有效,对局部序列异常同样敏感。
进一步的,所述步骤S01中第一操作表T1_opr至少包括以下字段:用户USER_ID,用户IP地址IP_ADDR、操作时间OPR_DATE、操作类型OPERATION_TYPE。
进一步的,所述步骤S02中session值具体计算方法为:对每个用户USER_ID,按照操作时间OPR_DATE以升序方式排序,从而形成第一序列rd1(1,2,3…n…),根据第一序列rd1计算每个用户USER_ID两次操作时间间隔即序列n+1对应的操作时间减去序列n对应的操作时间,从而生成字段操作时间间隔OPR_DUR;预设所有用户对应的session初始值为1,判断用户操作时间间隔是否小于预设阈值,如果小于预设阈值,则该条记录对应的session为当前session,如果不小于预设阈值,则该条记录对应的session为当前session值加上1,以此类推,将每条记录都对应到相应的session,从而生成操作会话标识session。
进一步的,所述步骤S03中行为序列表T_opr_seq包含字段有用户USER_ID,session,行为序列OPR_SEQ,其中行为序列OPR_SEQ字段内容为每个用户每个session内所有操作的组合。
本发明还提供一种基于无监督算法的行为序列异常检测***,包括:
数据采集模块,采集企业web***操作日志,并处理得到web用户第一操作表T1_opr;
第一数据处理模块,基于web用户第一操作表T1_opr,获取预设周期的数据,并对该数据经过处理得到第二操作表T2_opr;所述第二操作表T2_opr至少包括字段用户USER_ID、用户相邻两次操作间隔时间对应的session值;
第二数据处理模块,根据USER_ID、session字段,按照时间的先后顺序,合并操作类型对应的字符编码集中的短编码,生成行为序列表T_opr_seq;
模型训练模块,基于行为序列表T_opr_seq中的行为序列字段训练预设阶数的概率后缀树模型,得到目标模型;
比值计算模块,基于数据采集模块、第一数据处理模块、第二数据处理模块的执行过程,加工处理次日web***操作日志数据,获得次日用户操作行为序列表T_opr_seq_test,对行为序列表T_opr_seq_test中的行为序列字段,输入训练得出的目标模型,将其转换为数值序列,并统计数值序列中低于预设概率阈值的占比值ABNORMAL_LV;
数值序列切割模块,将所述比值计算模块中得到的数值序列按照预设宽度切割,对于不足预设宽度的序列在右侧填充数值-1,从而使得每条记录的长度相同即每个用户具有相同数量的特征数;
异常检测模块,将数值序列切割模块,中处理后的等长度数据序列以及比值计算模块中低于预设概率阈值的占比值ABNORMAL_LV作为每个用户的特征输入,通过孤立森林算法计算每条记录的异常分值,输出异常用户即label为-1的记录,从而实现对用户行为序列的异常检测。
进一步的,所述数据采集模块中第一操作表T1_opr至少包括以下字段:用户USER_ID,用户IP地址IP_ADDR、操作时间OPR_DATE、操作类型OPERATION_TYPE。
进一步的,所述第一数据处理模块中session值具体计算方法为:对每个用户USER_ID,按照操作时间OPR_DATE以升序方式排序,从而形成第一序列rd1(1,2,3…n…),根据第一序列rd1计算每个用户USER_ID两次操作时间间隔即序列n+1对应的操作时间减去序列n对应的操作时间,从而生成字段操作时间间隔OPR_DUR;预设所有用户对应的session初始值为1,判断用户操作时间间隔是否小于预设阈值,如果小于预设阈值,则该条记录对应的session为当前session,如果不小于预设阈值,则该条记录对应的session为当前session值加上1,以此类推,将每条记录都对应到相应的session,从而生成操作会话标识session。
进一步的,所述第二数据处理模块中行为序列表T_opr_seq包含字段有用户USER_ID,session,行为序列OPR_SEQ,其中行为序列OPR_SEQ字段内容为每个用户每个session内所有操作的组合。
本发明还提供一种处理设备,包括至少一个处理器,以及与所述处理器通信连接的至少一个存储器,其中:所述存储器存储有可被处理器执行的程序指令,所述处理器调用所述程序指令能够执行上述的方法。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求上述的方法。
本发明的优点在于:
一方面,本发明提供的方法属于一种无监督的方法,适应性较强,不需要过于依赖业务经验;一方面,通过“session”的思想分割用户行为序列,较符合逻辑和实际;另一方面考虑到实际应用中,大多数攻击者会将自己伪装成正常用户,通过计算整个序列的概率值或者异常行为在整个序列中的占比,可能很难检测到这部分攻击者。本方法通过将行为序列转为数值序列,进而将数值序列作为特征输入,通过孤立森林算法检测用户是否异常,不仅对整体序列异常检测有效,对局部序列异常同样敏感。
附图说明
图1为本发明实施例中检测方法的流程图;
图2为本发明实施例中深度为3的概率后缀树结构示意图;
图3为本发明实施例中根据概率后缀树模型转化为数值序列的示例图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本实施例提供一种基于无监督算法的行为序列异常检测方法,该方法基于企业web***操作数据,通过用户操作的先后顺序,计算两次操作的时间间隔,根据两次操作的时间间隔是否大于预设阈值,对用户行为序列进行分割,进而训练概率后缀树模型,根据概率后缀树模型输出用户行为序列对应的概率值,将用户对应的概率值作为特征即孤立森林模型的输入,根据模型输出结果判断用户行为是否异常。具体步骤如下:
S01,采集企业web***操作日志,标准化处理成web用户第一操作表T1_opr,该表包含但不限于以下字段:用户唯一标识(USER_ID),用户IP地址(IP_ADDR),操作时间(OPR_DATE)、操作类型(OPERATION_TYPE)等,将每个操作类型对应到预设单字符编码集(a、b、c、d…),此处如果操作类型较多,可使用常用汉字等扩充单字符编码集,如操作类型“whole_page_load”(操作类型名称:页面加载)对应到预设编码集中的编码“a”,操作类型“submit”(操作类型名称:提交)对应到预设编码集中的编码“b”,操作类型“down”(操作类型名称:下载)对应到预设编码集中的编码“c”,从而使得操作类型对应到短编码(SHORT_OPR_TYPE),减小内存占用同时处理较为方便。
S02,基于上述处理后的web用户第一操作表T1_opr,取预设周期(7天)的数据。本发明中假设数据中不存在类似于“session”的字段,如果原数据中存在类似于“session”字段,则该步骤可省略。对每个USER_ID,按照操作时间(OPR_DATE)以升序方式排序,从而形成第一序列rd1(1,2,3…n…),根据第一序列计算每个用户(USER_ID)两次操作时间间隔即序列n+1对应的操作时间减去序列n对应的操作时间,从而生成字段操作时间间隔OPR_DUR。预设所有用户对应的session初始值为1,判断用户操作时间间隔是否小于预设阈值(20分钟),如果小于预设阈值,则该条记录对应的session为当前session,如果不小于预设阈值,则该条记录对应的session为当前session值加上1,以此类推,将每条记录都对应到相应的session,从而生成操作会话标识session。
所述“session”,在网络应用中,web服务器会判断用户是否有会话,如果有会话,则继续使用原有的会话,如果用户没有会话,则为用户创建会话,当会话过期或被放弃后,服务器将终止该会话。本发明借鉴该思想,构建出类似于“session”的字段。
S03,根据用户(USER_ID)、session字段,按照时间的先后顺序,合并操作类型对应的字符编码集中的短编码(SHORT_OPR_TYPE),生成行为序列表T_opr_seq,表中包含以下字段:用户唯一标识(USER_ID),session,行为序列(OPR_SEQ),其中行为序列字段内容为每个用户每个session内所有操作的组合,如用户“A151”,在session为15的时候,先后进行了a,b,c,b,c几个操作,那么行为序列(OPR_SEQ)为abcbc。
S04,基于S03中生成的行为序列表T_opr_seq中行为序列字段(OPR_SEQ)字段,训练预设阶数(3阶)的概率后缀树模型。
概率后缀树是一种可变阶的马尔可夫链模型的紧凑形式,它将后缀树作为索引结构使用。当子序列构成概率后缀树后,可通过检查与树中根节点相近的点就能预测下一个行为发生的概率。简单来说,概率后缀树就是用有预测能力的子序列构造成一棵后缀树,在这棵树中,每个节点代表一个元素,在生成每个节点的同时,会统计下一个节点的整个概率分布,每条边代表一条从根节点到当前节点的路径,也就是一个入树的子序列。该模型训练的具体过程如下:
1.预设概率后缀树深度L(3);
2.初始化根节点(root),根节点的概率向量值为每个符号在序列中出现的概率,所有符号作为候选子节点集;
3.针对每一个候选子节点,计算候选子节点在子序列中出现的概率,所有符号作为新的候选子节点集;
4.对以上过程进行递归,直到当前分支上的树深度达到了预设的概率后缀树深度L或者候选子节点集为空为止。
如图2所示,图2为深度为3的概率后缀树。
S05,基于S01-S03步骤,加工处理次日web***操作日志数据,获得次日用户操作行为序列表T_opr_seq_test,对T_opr_seq_test表中的行为序列(OPR_SEQ)字段,根据S04训练出的概率后缀树模型,将其转换为数值序列,如图3所示。
同时统计数值序列中低于预设概率阈值(0.1)的占比ABNORMAL_LV,如用户“A832”的操作序列为“bbaaa”,其对应数值序列为[0.523,0.617,0.038,0.187,0.191],其中低于预设概率阈值的数值只有1个0.038,所以占比ABNORMAL_LV为0.2。
S06,鉴于每个用户每个session内操作行为序列长度存在差异性,针对S05生成的数值序列按照预设宽度(9)等宽切割,对于不足预设宽度的序列在右侧填充数值-1,从而使得每条记录的长度相同即每个用户具有相同数量的特征数:
S07,孤立森林(iForest)算法属于无参数和无监督的算法,即不需要假设数据模型也不需要有label的训练模型,能够快速处理大规模的数据。在模型构建过程中,借助于二叉树,孤立森林用一个随机超平面来切割数据空间,切一次后可以生成两个子空间即左右孩子,之后再继续用随机一个超平面来切割每个子空间,循环下去,直到每个子空间没法再切为止。直观上来讲,可以发现那些密度很高的簇需要被切很多次才会停止切割,但那些密度很低的点就会很容易很早的停到一个子空间了,最后通过计算叶子节点到根节点之间的路径长度得到每个点的异常分值,那么对于行为一致的点会被切分到一个子空间,它们到根节点的路径也是相同的即异常分值相同。将S06中处理后的等长度数据序列以及S05中低于预设概率阈值(0.1)的占比值ABNORMAL_LV作为每个用户的特征输入,通过孤立森林算法计算每条记录的异常分值,输出异常用户即label为-1的记录,从而实现对用户行为序列的异常检测。
基于上述的检测方法,本实施例还提供一种基于无监督算法的行为序列异常检测***,包括:
数据采集模块,采集企业web***操作日志,标准化处理成web用户第一操作表T1_opr,该表包含但不限于以下字段:用户唯一标识(USER_ID),用户IP地址(IP_ADDR),操作时间(OPR_DATE)、操作类型(OPERATION_TYPE)等,将每个操作类型对应到预设单字符编码集(a、b、c、d…),此处如果操作类型较多,可使用常用汉字等扩充单字符编码集,如操作类型“whole_page_load”(操作类型名称:页面加载)对应到预设编码集中的编码“a”,操作类型“submit”(操作类型名称:提交)对应到预设编码集中的编码“b”,操作类型“down”(操作类型名称:下载)对应到预设编码集中的编码“c”,从而使得操作类型对应到短编码(SHORT_OPR_TYPE),减小内存占用同时处理较为方便。
第一数据处理模块,基于上述处理后的web用户第一操作表T1_opr,取预设周期(7天)的数据。本发明中假设数据中不存在类似于“session”的字段,如果原数据中存在类似于“session”字段,则该步骤可省略。对每个USER_ID,按照操作时间(OPR_DATE)以升序方式排序,从而形成第一序列rd1(1,2,3…n…),根据第一序列计算每个用户(USER_ID)两次操作时间间隔即序列n+1对应的操作时间减去序列n对应的操作时间,从而生成字段操作时间间隔OPR_DUR。预设所有用户对应的session初始值为1,判断用户操作时间间隔是否小于预设阈值(20分钟),如果小于预设阈值,则该条记录对应的session为当前session,如果不小于预设阈值,则该条记录对应的session为当前session值加上1,以此类推,将每条记录都对应到相应的session,从而生成操作会话标识session。
所述“session”,在网络应用中,web服务器会判断用户是否有会话,如果有会话,则继续使用原有的会话,如果用户没有会话,则为用户创建会话,当会话过期或被放弃后,服务器将终止该会话。本发明借鉴该思想,构建出类似于“session”的字段。
第二数据处理模块,根据用户(USER_ID)、session字段,按照时间的先后顺序,合并操作类型对应的字符编码集中的短编码(SHORT_OPR_TYPE),生成行为序列表T_opr_seq,表中包含以下字段:用户唯一标识(USER_ID),session,行为序列(OPR_SEQ),其中行为序列字段内容为每个用户每个session内所有操作的组合,如用户“A151”,在session为15的时候,先后进行了a,b,c,b,c几个操作,那么行为序列(OPR_SEQ)为abcbc。
模型训练模块,基于S03中生成的行为序列表T_opr_seq中行为序列字段(OPR_SEQ)字段,训练预设阶数(3阶)的概率后缀树模型。
概率后缀树是一种可变阶的马尔可夫链模型的紧凑形式,它将后缀树作为索引结构使用。当子序列构成概率后缀树后,可通过检查与树中根节点相近的点就能预测下一个行为发生的概率。简单来说,概率后缀树就是用有预测能力的子序列构造成一棵后缀树,在这棵树中,每个节点代表一个元素,在生成每个节点的同时,会统计下一个节点的整个概率分布,每条边代表一条从根节点到当前节点的路径,也就是一个入树的子序列。该模型训练的具体过程如下:
1.预设概率后缀树深度L(3);
2.初始化根节点(root),根节点的概率向量值为每个符号在序列中出现的概率,所有符号作为候选子节点集;
3.针对每一个候选子节点,计算候选子节点在子序列中出现的概率,所有符号作为新的候选子节点集;
4.对以上过程进行递归,直到当前分支上的树深度达到了预设的概率后缀树深度L或者候选子节点集为空为止。
如图2所示,图2为深度为3的概率后缀树。
比值计算模块,基于数据采集模块、第一数据处理模块、第二数据处理模块的执行过程,加工处理次日web***操作日志数据,获得次日用户操作行为序列表T_opr_seq_test,对T_opr_seq_test表中的行为序列(OPR_SEQ)字段,根据S04训练出的概率后缀树模型,将其转换为数值序列,如图3所示。
同时统计数值序列中低于预设概率阈值(0.1)的占比ABNORMAL_LV,如用户“A832”的操作序列为“bbaaa”,其对应数值序列为[0.523,0.617,0.038,0.187,0.191],其中低于预设概率阈值的数值只有1个0.038,所以占比ABNORMAL_LV为0.2。
数值序列切割模块,鉴于每个用户每个session内操作行为序列长度存在差异性,针对S05生成的数值序列按照预设宽度(9)等宽切割,对于不足预设宽度的序列在右侧填充数值-1,从而使得每条记录的长度相同即每个用户具有相同数量的特征数:
异常检测模块,孤立森林(iForest)算法属于无参数和无监督的算法,即不需要假设数据模型也不需要有label的训练模型,能够快速处理大规模的数据。在模型构建过程中,借助于二叉树,孤立森林用一个随机超平面来切割数据空间,切一次后可以生成两个子空间即左右孩子,之后再继续用随机一个超平面来切割每个子空间,循环下去,直到每个子空间没法再切为止。直观上来讲,可以发现那些密度很高的簇需要被切很多次才会停止切割,但那些密度很低的点就会很容易很早的停到一个子空间了,最后通过计算叶子节点到根节点之间的路径长度得到每个点的异常分值,那么对于行为一致的点会被切分到一个子空间,它们到根节点的路径也是相同的即异常分值相同。将S06中处理后的等长度数据序列以及S05中低于预设概率阈值(0.1)的占比值ABNORMAL_LV作为每个用户的特征输入,通过孤立森林算法计算每条记录的异常分值,输出异常用户即label为-1的记录,从而实现对用户行为序列的异常检测。
本实施例还提供一种处理设备,包括至少一个处理器,以及与所述处理器通信连接的至少一个存储器,其中:所述存储器存储有可被处理器执行的程序指令,所述处理器调用所述程序指令能够执行上述的方法。
本实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求上述的方法。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种基于无监督算法的行为序列异常检测方法,其特征在于,包括以下步骤:
S01.采集企业web***操作日志,并处理得到web用户第一操作表T1_opr;
S02.基于web用户第一操作表T1_opr,获取预设周期的数据,并对该数据经过处理得到第二操作表T2_opr;所述第二操作表T2_opr至少包括字段用户USER_ID、用户相邻两次操作间隔时间对应的session值;
S03.根据USER_ID、session字段,按照时间的先后顺序,合并操作类型对应的字符编码集中的短编码,生成行为序列表T_opr_seq;
S04.基于行为序列表T_opr_seq中的行为序列字段训练预设阶数的概率后缀树模型,得到目标模型;
S05.基于步骤S01-S03,加工处理次日web***操作日志数据,获得次日用户操作行为序列表T_opr_seq_test,对行为序列表T_opr_seq_test中的行为序列字段,输入S04训练得出的目标模型,将其转换为数值序列,并统计数值序列中低于预设概率阈值的占比值ABNORMAL_LV;
S06.将所述步骤S05中得到的数值序列按照预设宽度切割,对于不足预设宽度的序列在右侧填充数值-1,从而使得每条记录的长度相同即每个用户具有相同数量的特征数;
S07.将步骤S06中处理后的等长度数据序列以及步骤S05中低于预设概率阈值的占比值ABNORMAL_LV作为每个用户的特征输入,通过孤立森林算法计算每条记录的异常分值,输出异常用户即label为-1的记录,从而实现对用户行为序列的异常检测。
2.根据权利要求1所述的一种基于无监督算法的行为序列异常检测方法,其特征在于:所述步骤S01中第一操作表T1_opr至少包括以下字段:用户USER_ID,用户IP地址IP_ADDR、操作时间OPR_DATE、操作类型OPERATION_TYPE。
3.根据权利要求1所述的一种基于无监督算法的行为序列异常检测方法,其特征在于:所述步骤S02中session值具体计算方法为:对每个用户USER_ID,按照操作时间OPR_DATE以升序方式排序,从而形成第一序列rd1(1,2,3…n…),根据第一序列rd1计算每个用户USER_ID两次操作时间间隔即序列n+1对应的操作时间减去序列n对应的操作时间,从而生成字段操作时间间隔OPR_DUR;预设所有用户对应的session初始值为1,判断用户操作时间间隔是否小于预设阈值,如果小于预设阈值,则该条记录对应的session为当前session,如果不小于预设阈值,则该条记录对应的session为当前session值加上1,以此类推,将每条记录都对应到相应的session,从而生成操作会话标识session。
4.根据权利要求1所述的一种基于无监督算法的行为序列异常检测方法,其特征在于:所述步骤S03中行为序列表T_opr_seq包含字段有用户USER_ID,session,行为序列OPR_SEQ,其中行为序列OPR_SEQ字段内容为每个用户每个session内所有操作的组合。
5.一种基于无监督算法的行为序列异常检测***,其特征在于:包括:
数据采集模块,采集企业web***操作日志,并处理得到web用户第一操作表T1_opr;
第一数据处理模块,基于web用户第一操作表T1_opr,获取预设周期的数据,并对该数据经过处理得到第二操作表T2_opr;所述第二操作表T2_opr至少包括字段用户USER_ID、用户相邻两次操作间隔时间对应的session值;
第二数据处理模块,根据USER_ID、session字段,按照时间的先后顺序,合并操作类型对应的字符编码集中的短编码,生成行为序列表T_opr_seq;
模型训练模块,基于行为序列表T_opr_seq中的行为序列字段训练预设阶数的概率后缀树模型,得到目标模型;
比值计算模块,基于数据采集模块、第一数据处理模块、第二数据处理模块的执行过程,加工处理次日web***操作日志数据,获得次日用户操作行为序列表T_opr_seq_test,对行为序列表T_opr_seq_test中的行为序列字段,输入训练得出的目标模型,将其转换为数值序列,并统计数值序列中低于预设概率阈值的占比值ABNORMAL_LV;
数值序列切割模块,将所述比值计算模块中得到的数值序列按照预设宽度切割,对于不足预设宽度的序列在右侧填充数值-1,从而使得每条记录的长度相同即每个用户具有相同数量的特征数;
异常检测模块,将数值序列切割模块,中处理后的等长度数据序列以及比值计算模块中低于预设概率阈值的占比值ABNORMAL_LV作为每个用户的特征输入,通过孤立森林算法计算每条记录的异常分值,输出异常用户即label为-1的记录,从而实现对用户行为序列的异常检测。
6.根据权利要求5所述的一种基于无监督算法的行为序列异常检测***,其特征在于:所述数据采集模块中第一操作表T1_opr至少包括以下字段:用户USER_ID,用户IP地址IP_ADDR、操作时间OPR_DATE、操作类型OPERATION_TYPE。
7.根据权利要求5所述的一种基于无监督算法的行为序列异常检测***,其特征在于:所述第一数据处理模块中session值具体计算方法为:对每个用户USER_ID,按照操作时间OPR_DATE以升序方式排序,从而形成第一序列rd1(1,2,3…n…),根据第一序列rd1计算每个用户USER_ID两次操作时间间隔即序列n+1对应的操作时间减去序列n对应的操作时间,从而生成字段操作时间间隔OPR_DUR;预设所有用户对应的session初始值为1,判断用户操作时间间隔是否小于预设阈值,如果小于预设阈值,则该条记录对应的session为当前session,如果不小于预设阈值,则该条记录对应的session为当前session值加上1,以此类推,将每条记录都对应到相应的session,从而生成操作会话标识session。
8.根据权利要求5所述的一种基于无监督算法的行为序列异常检测***,其特征在于:所述第二数据处理模块中行为序列表T_opr_seq包含字段有用户USER_ID,session,行为序列OPR_SEQ,其中行为序列OPR_SEQ字段内容为每个用户每个session内所有操作的组合。
9.一种处理设备,其特征在于,包括至少一个处理器,以及与所述处理器通信连接的至少一个存储器,其中:所述存储器存储有可被处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至4任一所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至4任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011589236.5A CN112738088B (zh) | 2020-12-28 | 2020-12-28 | 一种基于无监督算法的行为序列异常检测方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011589236.5A CN112738088B (zh) | 2020-12-28 | 2020-12-28 | 一种基于无监督算法的行为序列异常检测方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112738088A CN112738088A (zh) | 2021-04-30 |
CN112738088B true CN112738088B (zh) | 2023-03-21 |
Family
ID=75607372
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011589236.5A Active CN112738088B (zh) | 2020-12-28 | 2020-12-28 | 一种基于无监督算法的行为序列异常检测方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112738088B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113609933B (zh) * | 2021-07-21 | 2022-09-16 | 广州大学 | 一种基于后缀树的故障检测方法、***、装置及存储介质 |
CN113569949B (zh) * | 2021-07-28 | 2024-06-21 | 广州博冠信息科技有限公司 | 异常用户识别方法及装置、电子设备和存储介质 |
CN113934616B (zh) * | 2021-12-16 | 2022-03-18 | 深圳市活力天汇科技股份有限公司 | 一种基于用户操作时序判断异常用户的方法 |
CN116070206B (zh) * | 2023-03-28 | 2023-06-30 | 上海观安信息技术股份有限公司 | 一种异常行为检测方法、***、电子设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108038049A (zh) * | 2017-12-13 | 2018-05-15 | 西安电子科技大学 | 实时日志控制***及控制方法、云计算***及服务器 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9699205B2 (en) * | 2015-08-31 | 2017-07-04 | Splunk Inc. | Network security system |
US10679135B2 (en) * | 2015-11-09 | 2020-06-09 | Nec Corporation | Periodicity analysis on heterogeneous logs |
CN108154029A (zh) * | 2017-10-25 | 2018-06-12 | 上海观安信息技术股份有限公司 | 入侵检测方法、电子设备和计算机存储介质 |
US20190243743A1 (en) * | 2018-02-07 | 2019-08-08 | Apple Inc. | Unsupervised anomaly detection |
CN108985632A (zh) * | 2018-07-16 | 2018-12-11 | 国网上海市电力公司 | 一种基于孤立森林算法的用电数据异常检测模型 |
CN109829733B (zh) * | 2019-01-31 | 2023-02-03 | 重庆大学 | 一种基于购物行为序列数据的虚假评论检测***和方法 |
CN109889538B (zh) * | 2019-03-20 | 2021-09-21 | 中国工商银行股份有限公司 | 用户异常行为检测方法及*** |
CN111860872B (zh) * | 2019-06-11 | 2024-03-26 | 北京嘀嘀无限科技发展有限公司 | 用于异常检测的***和方法 |
CN110334488B (zh) * | 2019-06-14 | 2021-03-02 | 北京大学 | 基于随机森林模型的用户认证口令安全评估方法及装置 |
CN110347724A (zh) * | 2019-07-12 | 2019-10-18 | 深圳众赢维融科技有限公司 | 异常行为识别方法、装置、电子设备及介质 |
CN110570244A (zh) * | 2019-09-04 | 2019-12-13 | 深圳创新奇智科技有限公司 | 一种基于异常用户识别的热销商品构建方法和*** |
CN111275547B (zh) * | 2020-03-19 | 2023-07-18 | 重庆富民银行股份有限公司 | 基于孤立森林的风控***及方法 |
CN111814436B (zh) * | 2020-07-27 | 2023-10-17 | 上海观安信息技术股份有限公司 | 一种基于互信息和熵的用户行为序列检测方法及*** |
-
2020
- 2020-12-28 CN CN202011589236.5A patent/CN112738088B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108038049A (zh) * | 2017-12-13 | 2018-05-15 | 西安电子科技大学 | 实时日志控制***及控制方法、云计算***及服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN112738088A (zh) | 2021-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112738088B (zh) | 一种基于无监督算法的行为序列异常检测方法及*** | |
US10679135B2 (en) | Periodicity analysis on heterogeneous logs | |
Cao et al. | Machine learning to detect anomalies in web log analysis | |
CN109784042B (zh) | 时间序列中异常点的检测方法、装置、电子设备及存储介质 | |
CN111585955B (zh) | 一种http请求异常检测方法及*** | |
WO2012112944A2 (en) | Managing unwanted communications using template generation and fingerprint comparison features | |
WO2022180613A1 (en) | Global iterative clustering algorithm to model entities' behaviors and detect anomalies | |
CN110602030A (zh) | 网络入侵阻断方法、服务器及计算机可读介质 | |
CN114020735A (zh) | 安全告警日志降噪方法、装置、设备及存储介质 | |
CN113468035B (zh) | 日志异常检测方法、装置、训练方法、装置及电子设备 | |
CN113343228B (zh) | 事件可信度分析方法、装置、电子设备及可读存储介质 | |
CN114266251A (zh) | 恶意域名检测方法、装置、电子设备及存储介质 | |
CN113378161A (zh) | 一种安全检测方法、装置、设备及存储介质 | |
EP3913882A1 (en) | Method, computer program and information processing apparatus for flagging anomalies in text data | |
CN112039907A (zh) | 一种基于物联网终端评测平台的自动测试方法及*** | |
CN112183052A (zh) | 一种文档重复度检测方法、装置、设备和介质 | |
CN116187423A (zh) | 一种基于无监督算法的行为序列异常检测方法及*** | |
Clemm et al. | NETradamus: A forecasting system for system event messages | |
KR101621959B1 (ko) | 로그패턴추출장치, 로그패턴분석장치 및 그 방법 | |
CN111625825B (zh) | 一种病毒检测方法、装置、设备及存储介质 | |
CN115834156A (zh) | 一种基于web访问日志的异常行为检测方法 | |
CN111814436B (zh) | 一种基于互信息和熵的用户行为序列检测方法及*** | |
CN115146263A (zh) | 用户账号的失陷检测方法、装置、电子设备及存储介质 | |
CN111209158B (zh) | 服务器集群的挖矿监控方法及集群监控*** | |
CN114756401B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |