CN117792662A - 异常检测方法及相关装置 - Google Patents
异常检测方法及相关装置 Download PDFInfo
- Publication number
- CN117792662A CN117792662A CN202211145851.6A CN202211145851A CN117792662A CN 117792662 A CN117792662 A CN 117792662A CN 202211145851 A CN202211145851 A CN 202211145851A CN 117792662 A CN117792662 A CN 117792662A
- Authority
- CN
- China
- Prior art keywords
- field
- fields
- candidate
- subset
- determining
- 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 489
- 230000005856 abnormality Effects 0.000 title claims abstract description 114
- 238000000034 method Methods 0.000 claims abstract description 66
- 238000012549 training Methods 0.000 claims description 157
- 238000012795 verification Methods 0.000 claims description 124
- 238000012360 testing method Methods 0.000 claims description 116
- 230000000694 effects Effects 0.000 claims description 35
- 230000015654 memory Effects 0.000 claims description 25
- 230000002159 abnormal effect Effects 0.000 claims description 19
- 238000010200 validation analysis Methods 0.000 claims description 14
- 230000006872 improvement Effects 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 9
- 238000010801 machine learning Methods 0.000 abstract description 10
- 238000013135 deep learning Methods 0.000 abstract description 8
- 238000004458 analytical method Methods 0.000 abstract description 7
- 238000010276 construction Methods 0.000 abstract description 7
- 238000013461 design Methods 0.000 abstract description 7
- 230000000875 corresponding effect Effects 0.000 description 180
- 239000000523 sample Substances 0.000 description 148
- 230000008569 process Effects 0.000 description 31
- 230000006870 function Effects 0.000 description 19
- 230000008859 change Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 10
- 230000002123 temporal effect Effects 0.000 description 9
- 206010047289 Ventricular extrasystoles Diseases 0.000 description 8
- 238000005129 volume perturbation calorimetry Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000005457 optimization Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 239000013074 reference sample Substances 0.000 description 5
- 239000002131 composite material Substances 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 230000004913 activation Effects 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000012804 iterative process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000000739 chaotic effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/18—Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- 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
-
- 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/045—Combinations of networks
- G06N3/0455—Auto-encoder networks; Encoder-decoder networks
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Pure & Applied Mathematics (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Computational Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Algebra (AREA)
- Probability & Statistics with Applications (AREA)
- Operations Research (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种异常检测方法及相关装置,属于云服务技术领域。本方案无需云服务领域的相关人员手工创建安全规则,也无需人工对各种攻击模式进行深入的分析和总结,从而避免了人工创建安全规则存在的漏洞,减少了漏检和误检的情况,同时还能够提高异常检测效率。另外,本方案在相关人员具备尽可能少的甚至无需具备机器学习和深度学习的专业知识的情况下,例如模型设计和调优的相关知识,也能够实现自助地、快速搭建异常检测模型实现面向具体任务的异常检测。
Description
技术领域
本申请涉及云服务技术领域,特别涉及一种异常检测方法及相关装置。
背景技术
随着云服务技术的发展,越来越多的用户通过应用程序接口(API)对云平台进行操作和访问,以使用云平台提供的云服务。在用户使用云服务的过程中会在云平台产生大量有价值的数据,例如用户的操作数据、个人资料、商业信息等。为了保证用户使用云服务的安全性,防止攻击者通过非法操作对云平台中各类资源进行盗窃或破坏,需要对云平台中的各种操作和访问进行全面监控,以发现云平台中的潜在威胁和异常情况。
相关技术中,在云平台的服务器与连接用户端的互联网之间部署网络应用防火墙(web application firewall,WAF),通过WAF对来自于互联网的API请求进行异常检测和防护。例如,WAF根据人工创建的安全规则对API请求进行过滤和防护。这些安全规则包含一些常见的攻击模式。WAF在检测到某些API请求符合安全规则所包含的攻击模式的情况下,能够拒绝这些API请求,从而防御恶意人员通过API对云平台的攻击。
然而,基于WAF的异常检测方案需要人工手动创建安全规则,不仅费时费力,还需要人工对各种攻击模式进行深入的分析和总结,才可能达到较好的异常检测效果。另外,人工创建的安全规则难免会存在漏洞,导致上述方案存在漏检和误检的情况。
发明内容
本申请提供了一种异常检测方法及相关装置,能够降低相关人员进行异常检测的门槛,同时减少漏检和误检的情况,提高异常检测效率。所述技术方案如下:
第一方面,提供了一种异常检测方法,所述方法包括:
接收异常检测任务的配置参数,该配置参数指示样本集、测试集和候选属性字段,样本集包括云平台中用于进行参数调优的日志数据,测试集包括云平台中待进行异常检测的日志数据,候选属性字段为云平台的日志数据对应的属性字段;基于样本集和候选属性字段,从候选属性字段中确定目标属性字段,目标属性字段为用于进行异常检测任务的属性字段;基于样本集和目标属性字段,对第一检测模型的第一超参数进行调优;基于目标属性字段,通过经参数调优的第一检测模型对测试集进行异常检测,以得到测试集的异常检测结果。
本方案无需云服务领域的相关人员手工创建安全规则,也无需人工对各种攻击模式进行深入的分析和总结,从而避免了人工创建安全规则存在的漏洞,减少了漏检和误检的情况,同时还能够提高异常检测效率。另外,本方案在相关人员具备尽可能少的甚至无需具备机器学习和深度学习的专业知识的情况下,例如模型设计和调优的相关知识,也能够实现自助地、快速搭建异常检测模型实现面向具体任务的异常检测。
可选地,候选属性字段包括m个已选字段和n个待选字段,m为不小于0的整数,n为大于0的整数;基于样本集和候选属性字段,从候选属性字段中确定目标属性字段,包括:基于样本集、该m个已选字段和n个待选字段,确定该n个待选字段分别对应的字段得分,字段得分表征在该m个已选字段中添加对应的待选字段后对异常检测效果的提升程度;基于该n个待选字段分别对应的字段得分,从该n个待选字段中确定出p个待选字段,p为不大于n的正整数;将该m个已选字段和p个待选字段确定为目标属性字段。也即是,利用样本集,并通过各个待选字段对于异常检测效果的提升程度来筛选字段,从而筛选出更有价值的属性字段。
可选地,样本集包括训练子集和验证子集;基于样本集、该m个已选字段和n个待选字段,确定该n个待选字段分别对应的字段得分,包括:将该m个已选字段组成已选字段集合,将该n个待选字段组成待选字段集合,基于训练子集、已选字段集合和待选字段集合,确定待选字段集合中每个待选字段对应的互信息,互信息表征对应的待选字段与已选字段集合中所有字段之间的相关性;从待选字段集合中选择出互信息最小的k个待选字段,k为不大于n的正整数;基于训练子集、验证子集、已选字段集合和该k个待选字段,确定该k个待选字段分别对应的重建损失,重建损失表征通过对应的待选字段和已选字段集合对验证子集进行异常检测的效果;基于该k个待选字段分别对应的互信息和重建损失,从该k个待选字段中选择一个待选字段,并确定选择出的待选字段的字段得分;将选择出的待选字段从待选字段集合移入已选字段集合,返回基于训练子集、已选字段集合和待选字段集合,确定待选字段集合中每个待选字段对应的互信息的步骤,直至待选字段集合为空时,得到该n个待选字段分别对应的字段得分。也即是,利用待选字段与已选字段之间的互信息,以及待选字段对应的重建损失来筛选字段,从而筛选出更有价值的属性字段。
可选地,基于训练子集、验证子集、已选字段集合和该k个待选字段,确定该k个待选字段分别对应的重建损失,包括:对于该k个待选字段中的第一待选字段,将第一待选字段添加至已选字段集合,以得到一个候选字段集合,第一待选字段为该k个待选字段中的任一待选字段;基于训练子集和候选字段集合,确定第一待选字段对应的第二检测模型;基于验证子集和候选字段集合,通过第一待选字段对应的第二检测模型,确定第一待选字段对应的重建损失。
可选地,基于训练子集和候选字段集合,确定第一待选字段对应的第二检测模型,包括:基于候选字段集合确定训练子集的参考统计特征,训练子集的参考统计特征包括训练子集中候选字段集合包括的所有字段的数据的统计量;通过训练子集的参考统计特征训练初始检测模型,以得到第一待选字段对应的第二检测模型。
可选地,基于验证子集和候选字段集合,通过第一待选字段对应的第二检测模型,确定第一待选字段对应的重建损失,包括:基于候选字段集合确定验证子集的参考统计特征,验证子集的参考统计特征包括验证子集中候选字段集合包括的所有字段的数据的统计量;将验证子集的参考统计特征输入第一待选字段对应的第二检测模型,以得到验证子集的参考重建特征,验证子集的参考重建特征包括验证子集中候选字段集合包括的所有字段的数据的重建统计量;基于验证子集的参考统计特征和参考重建特征,确定第一待选字段对应的重建损失。
可选地,该配置参数还指示候选属性字段中每个属性字段的类别,不同类别的属性字段对应的统计量的种类存在不同。这样能够通过计算更有价值的统计量来提升异常检测效果。
可选地,第一超参数包括学习率、训练轮数和隐藏层维度。即,需要调优的第一超参数包括学习率、训练轮数和隐藏层维度这三个对模型性能影响相对较大的参数,在保证经参数优化后的第一检测模型的性能的前提下,能够提高异常检测任务的执行效率。
可选地,第一检测模型包括输入层、第一隐藏层和第二隐藏层;隐藏层维度包括第一隐藏层和第二隐藏层的维度,输入层的维度基于目标属性字段包括的字段的数量确定,第一隐藏层和第二隐藏层的维度基于输入层的维度确定。也即是,隐藏层的维度并非随意设置,隐藏层维度的搜索空间较小。
可选地,第一检测模型包括编码器、解码器和判别器,该判别器的参数包括误差阈值;基于目标属性字段,通过经参数调优的第一检测模型对测试集进行异常检测,以得到测试集的异常检测结果,包括:基于目标属性字段确定测试集的统计特征,测试集的统计特征包括测试集中目标属性字段的数据的统计量;将测试集的统计特征输入编码器,以得到测试集的编码特征;将测试集的编码特征输入解码器,以得到测试集的重建特征;将所述测试集的统计特征和重建特征输入所述判别器,以按照所述误差阈值确定所述测试集的异常检测结果。
其中,误差阈值根据多个重建损失的均值确定,该多个重建损失包括测试集中每个待测样本的统计特征与重建特征之间的误差,或者,还包括训练子集中每个训练样本的统计特征与重建特征之间的误差。也即是,误差阈值按照样本总体的平均误差来确定,能够提高异常检测的准确性。
第二方面,提供了一种异常检测装置,所述异常检测装置具有实现上述第一方面中异常检测方法行为的功能。所述异常检测装置包括一个或多个模块,该一个或多个模块用于实现上述第一方面所提供的异常检测方法。
也即是,提供了一种异常检测装置,所述装置包括:
接收模块,用于接收异常检测任务的配置参数,所述配置参数指示样本集、测试集和候选属性字段,所述样本集包括云平台中用于进行参数调优的日志数据,所述测试集包括所述云平台中待进行异常检测的日志数据,所述候选属性字段为所述云平台的日志数据对应的属性字段;
确定模块,用于基于所述样本集和所述候选属性字段,从所述候选属性字段中确定目标属性字段,所述目标属性字段为用于进行所述异常检测任务的属性字段;
参数调优模块,用于基于所述样本集和所述目标属性字段,对第一检测模型的第一超参数进行调优;
异常检测模块,用于基于所述目标属性字段,通过经参数调优的第一检测模型对所述测试集进行异常检测,以得到所述测试集的异常检测结果。
可选地,所述候选属性字段包括m个已选字段和n个待选字段,m为不小于0的整数,n为大于0的整数;
所述确定模块包括:
第一确定子模块,用于基于所述样本集、所述m个已选字段和所述n个待选字段,确定所述n个待选字段分别对应的字段得分,所述字段得分表征在所述m个已选字段中添加对应的待选字段后对异常检测效果的提升程度;
第二确定子模块,用于基于所述n个待选字段分别对应的字段得分,从所述n个待选字段中确定出p个待选字段,所述p为不大于n的正整数;
第三确定子模块,用于将所述m个已选字段和所述p个待选字段确定为所述目标属性字段。
可选地,所述样本集包括训练子集和验证子集;
所述第一确定子模块具体用于:
将所述m个已选字段组成已选字段集合,将所述n个待选字段组成待选字段集合,基于所述训练子集、所述已选字段集合和所述待选字段集合,确定所述待选字段集合中每个待选字段对应的互信息,所述互信息表征对应的待选字段与所述已选字段集合中所有字段之间的相关性;
从所述待选字段集合中选择出互信息最小的k个待选字段,所述k为不大于n的正整数;
基于所述训练子集、所述验证子集、所述已选字段集合和所述k个待选字段,确定所述k个待选字段分别对应的重建损失,所述重建损失表征通过对应的待选字段和所述已选字段集合对所述验证子集进行异常检测的效果;
基于所述k个待选字段分别对应的互信息和重建损失,从所述k个待选字段中选择一个待选字段,并确定选择出的待选字段的字段得分;
将所述选择出的待选字段从所述待选字段集合移入所述已选字段集合,返回基于所述训练子集、所述已选字段集合和所述待选字段集合,确定所述待选字段集合中每个待选字段对应的互信息的步骤,直至所述待选字段集合为空时,得到所述n个待选字段分别对应的字段得分。
可选地,所述第一确定子模块具体用于:
对于所述k个待选字段中的第一待选字段,将所述第一待选字段添加至所述已选字段集合,以得到一个候选字段集合,所述第一待选字段为所述k个待选字段中的任一待选字段;
基于所述训练子集和所述候选字段集合,确定所述第一待选字段对应的第二检测模型;
基于所述验证子集和所述候选字段集合,通过所述第一待选字段对应的第二检测模型,确定所述第一待选字段对应的重建损失。
可选地,所述第一确定子模块具体用于:
基于所述候选字段集合确定所述训练子集的参考统计特征,所述训练子集的参考统计特征包括所述训练子集中所述候选字段集合包括的所有字段的数据的统计量;
通过所述训练子集的参考统计特征训练初始检测模型,以得到所述第一待选字段对应的第二检测模型。
可选地,所述第一确定子模块具体用于:
基于所述候选字段集合确定所述验证子集的参考统计特征,所述验证子集的参考统计特征包括所述验证子集中所述候选字段集合包括的所有字段的数据的统计量;
将所述验证子集的参考统计特征输入所述第一待选字段对应的第二检测模型,以得到所述验证子集的参考重建特征,所述验证子集的参考重建特征包括所述验证子集中所述候选字段集合包括的所有字段的数据的重建统计量;
基于所述验证子集的参考统计特征和参考重建特征,确定所述第一待选字段对应的重建损失。
可选地,所述配置参数还指示所述候选属性字段中每个属性字段的类别,不同类别的属性字段对应的统计量的种类存在不同。
可选地,所述第一超参数包括学习率、训练轮数和隐藏层维度。
可选地,所述第一检测模型包括输入层、第一隐藏层和第二隐藏层;所述隐藏层维度包括所述第一隐藏层和所述第二隐藏层的维度,所述输入层的维度基于所述目标属性字段包括的字段的数量确定,所述第一隐藏层和所述第二隐藏层的维度基于所述输入层的维度确定。
可选地,所述第一检测模型包括编码器、解码器和判别器,所述判别器的参数包括误差阈值;
所述异常检测模块包括:
第四确定子模块,用于基于所述目标属性字段确定所述测试集的统计特征,所述测试集的统计特征包括所述测试集中所述目标属性字段的数据的统计量;
第一输入子模块,用于将所述测试集的统计特征输入所述编码器,以得到所述测试集的编码特征;
第二输入子模块,用于将所述测试集的编码特征输入所述解码器,以得到所述测试集的重建特征;
第三输入子模块,用于将所述测试集的统计特征和重建特征输入所述判别器,以按照所述误差阈值确定所述测试集的异常检测结果。
第三方面,提供了一种计算设备集群,所述计算设备集群包括至少一个计算设备,所述计算设备包括处理器和存储器,所述至少一个计算设备的存储器用于存储执行上述第一方面所提供的异常检测方法的程序(即指令),以及存储用于实现上述第一方面所提供的异常检测方法所涉及的数据。所述处理器被配置为用于执行所述存储器中存储的程序。所述计算设备还可以包括通信总线,该通信总线用于该处理器与存储器之间建立连接。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面所述的异常检测方法。
第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的异常检测方法。
上述第二方面、第三方面、第四方面和第五方面所获得的技术效果与第一方面中对应的技术手段获得的技术效果近似,在这里不再赘述。
附图说明
图1是本申请实施例提供的一种异常检测装置的结构示意图;
图2是本申请实施例提供的一种计算设备的结构示意图;
图3是本申请实施例提供的一种计算设备集群的结构示意图;
图4是本申请实施例提供的另一种计算设备集群的结构示意图;
图5是本申请实施例提供的一种异常检测方法所涉及的系统架构图;
图6是本申请实施例提供的一种异常检测方法的流程图;
图7是本申请实施例提供的一种确定字段得分的方法流程图;
图8是本申请实施例提供的另一种异常检测方法的流程图;
图9是本申请实施例提供的又一种异常检测方法的流程图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
当前,云服务场景中有多种类型的异常检测任务,这些异常检测任务所涉及的各种异质资源不仅数量众多,而且相互之间往往包含高度复杂的关系。对不同类型的云服务中这些资源的访问和操作,通常会在云平台上产生海量的日志数据。由于日志数据的规模极其庞大并且人工总结分析相关异常判定的规则极其困难,因此,由人工进行监测和分析相关数据,难以实现准确高效的异常检测。
现有的基于机器学习的异常检测方法在进行上述任务时存在如下两方面问题:一方面,现有方法大多有针对性地对特定类型的异常检测任务进行专门的设计和调优,没有构建具有通用性的异常检测模型;另一方面,对异常检测模型进行设计和调优的过程,十分依赖机器学习和深度学习方面的专业知识,而云服务领域的专家对这些任务往往具备丰富的业务经验,但对如何设计和调优异常检测模型并不熟悉,这使得领域专家在即使了解一些机器学习的相关算法的情况下,仍难以搭建好对具体问题行之有效的异常检测模型。
基于此,设计一套能够便于领域专家自助使用的、对云平台中相关异常检测任务具有通用性的、轻量化的、能够智能构建异常检测模型的原型系统是十分重要的,以便领域专家在具备尽可能少的机器学习和深度学习知识的情况下,能够基于该原型系统快速搭建异常检测模型以实现面向目标任务的异常检测。
本申请实施例提供一种异常检测装置,如图1所示,该异常检测装置包括:
接收模块,用于接收异常检测任务的配置参数,该配置参数指示样本集、测试集和候选属性字段,样本集包括云平台中用于进行参数调优的日志数据,测试集包括云平台中待进行异常检测的日志数据,候选属性字段为云平台的日志数据对应的属性字段;
确定模块,用于基于样本集和候选属性字段,从候选属性字段中确定目标属性字段,目标属性字段为用于进行异常检测任务的属性字段;
参数调优模块,用于基于样本集和目标属性字段,对第一检测模型的第一超参数进行调优;
异常检测模块,用于基于目标属性字段,通过经参数调优的第一检测模型对测试集进行异常检测,以得到测试集的异常检测结果。具体实现方式请参照图6实施例的相关介绍。
可选地,候选属性字段包括m个已选字段和n个待选字段,m为不小于0的整数,n为大于0的整数;
确定模块包括:
第一确定子模块,用于基于样本集、该m个已选字段和n个待选字段,确定该n个待选字段分别对应的字段得分,字段得分表征在该m个已选字段中添加对应的待选字段后对异常检测效果的提升程度;
第二确定子模块,用于基于该n个待选字段分别对应的字段得分,从该n个待选字段中确定出p个待选字段,p为不大于n的正整数;
第三确定子模块,用于将该m个已选字段和p个待选字段确定为目标属性字段。具体实现方式请参照图6实施例的相关介绍。
可选地,样本集包括训练子集和验证子集;
第一确定子模块具体用于:
将该m个已选字段组成已选字段集合,将该n个待选字段组成待选字段集合,基于训练子集、已选字段集合和待选字段集合,确定待选字段集合中每个待选字段对应的互信息,互信息表征对应的待选字段与已选字段集合中所有字段之间的相关性;
从待选字段集合中选择出互信息最小的k个待选字段,k为不大于n的正整数;
基于训练子集、验证子集、已选字段集合和该k个待选字段,确定该k个待选字段分别对应的重建损失,重建损失表征通过对应的待选字段和已选字段集合对验证子集进行异常检测的效果;
基于该k个待选字段分别对应的互信息和重建损失,从该k个待选字段中选择一个待选字段,并确定选择出的待选字段的字段得分;
将选择出的待选字段从待选字段集合移入已选字段集合,返回基于训练子集、已选字段集合和待选字段集合,确定待选字段集合中每个待选字段对应的互信息的步骤,直至待选字段集合为空时,得到该n个待选字段分别对应的字段得分。具体实现方式请参照图6实施例的相关介绍。
可选地,第一确定子模块具体用于:
对于该k个待选字段中的第一待选字段,将第一待选字段添加至已选字段集合,以得到一个候选字段集合,第一待选字段为该k个待选字段中的任一待选字段;
基于训练子集和候选字段集合,确定第一待选字段对应的第二检测模型;
基于验证子集和候选字段集合,通过第一待选字段对应的第二检测模型,确定第一待选字段对应的重建损失。具体实现方式请参照图6实施例的相关介绍。
可选地,第一确定子模块具体用于:
基于候选字段集合确定训练子集的参考统计特征,训练子集的参考统计特征包括训练子集中候选字段集合包括的所有字段的数据的统计量;
通过训练子集的参考统计特征训练初始检测模型,以得到第一待选字段对应的第二检测模型。具体实现方式请参照图6实施例的相关介绍。
可选地,第一确定子模块具体用于:
基于候选字段集合确定验证子集的参考统计特征,验证子集的参考统计特征包括验证子集中候选字段集合包括的所有字段的数据的统计量;
将验证子集的参考统计特征输入第一待选字段对应的第二检测模型,以得到验证子集的参考重建特征,验证子集的参考重建特征包括验证子集中候选字段集合包括的所有字段的数据的重建统计量;
基于验证子集的参考统计特征和参考重建特征,确定第一待选字段对应的重建损失。具体实现方式请参照图6实施例的相关介绍。
可选地,该配置参数还指示候选属性字段中每个属性字段的类别,不同类别的属性字段对应的统计量的种类存在不同。具体实现方式请参照图6实施例的相关介绍。
可选地,第一超参数包括学习率、训练轮数和隐藏层维度。具体实现方式请参照图6实施例的相关介绍。
可选地,第一检测模型包括输入层、第一隐藏层和第二隐藏层;隐藏层维度包括第一隐藏层和第二隐藏层的维度,输入层的维度基于目标属性字段包括的字段的数量确定,第一隐藏层和第二隐藏层的维度基于输入层的维度确定。具体实现方式请参照图6实施例的相关介绍。
可选地,第一检测模型包括编码器、解码器和判别器,该判别器的参数包括误差阈值;
异常检测模块包括:
第四确定子模块,用于基于目标属性字段确定测试集的统计特征,测试集的统计特征包括测试集中目标属性字段的数据的统计量;
第一输入子模块,用于将测试集的统计特征输入该编码器,以得到测试集的编码特征;
第二输入子模块,用于将测试集的编码特征输入该解码器,以得到测试集的重建特征;
第三输入子模块,用于将测试集的统计特征和重建特征输入该判别器,以按照该误差阈值确定测试集的异常检测结果。具体实现方式请参照图6实施例的相关介绍。
其中,接收模块、确定模块、参数调优模块和异常检测模块均可以通过软件实现,或者可以通过硬件实现,或者可以通过软硬件结合的方式实现。示例性的,接下来以参数调优模块为例,介绍参数调优模块的实现方式。类似的,确定模块、参数调优模块和异常检测模块的实现方式可以参考参数调优模块的实现方式。
模块作为软件功能单元的一种举例,参数调优模块可以包括运行在计算实例上的代码。其中,计算实例可以包括物理主机(计算设备)、虚拟机、容器中的至少一种。进一步地,上述计算实例可以是一台或者多台。例如,参数调优模块可以包括运行在多个主机/虚拟机/容器上的代码。需要说明的是,用于运行该代码的多个主机/虚拟机/容器可以分布在相同的区域(region)中,也可以分布在不同的region中。进一步地,用于运行该代码的多个主机/虚拟机/容器可以分布在相同的可用区(availability zone,AZ)中,也可以分布在不同的AZ中,每个AZ包括一个数据中心或多个地理位置相近的数据中心。其中,通常一个region可以包括多个AZ。
同样,用于运行该代码的多个主机/虚拟机/容器可以分布在同一个虚拟私有云(virtual private cloud,VPC)中,也可以分布在多个VPC中。其中,通常一个VPC设置在一个region内,同一region内两个VPC之间,以及不同region的VPC之间跨区通信需在每个VPC内设置通信网关,经通信网关实现VPC之间的互连。
模块作为硬件功能单元的一种举例,参数调优模块可以包括至少一个计算设备,如服务器等。或者,参数调优模块也可以是利用专用集成电路(application-specificintegrated circuit,ASIC)实现、或可编程逻辑器件(programmable logic device,PLD)实现的设备等。其中,上述PLD可以是复杂程序逻辑器件(complex programmable logicaldevice,CPLD)、现场可编程门阵列(field-programmable gate array,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合实现。
参数调优模块包括的多个计算设备可以分布在相同的region中,也可以分布在不同的region中。参数调优模块包括的多个计算设备可以分布在相同的AZ中,也可以分布在不同的AZ中。同样,参数调优模块包括的多个计算设备可以分布在同一个VPC中,也可以分布在多个VPC中。其中,所述多个计算设备可以是服务器、ASIC、PLD、CPLD、FPGA和GAL等计算设备的任意组合。
需要说明的是,在其他实施例中,接收模块可以用于执行异常检测方法中的任意步骤,确定模块可以用于执行异常检测方法中的任意步骤,参数调优模块可以用于执行异常检测方法中的任意步骤,接收模块、确定模块、参数调优模块和异常检测模块负责实现的步骤可根据需要指定,通过接收模块、确定模块、参数调优模块和异常检测模块分别实现异常检测方法中不同的步骤来实现异常检测装置的全部功能。
在本申请实施例中,无需云服务领域的相关人员手工创建安全规则,也无需人工对各种攻击模式进行深入的分析和总结,从而避免了人工创建安全规则存在的漏洞,减少了漏检和误检的情况,同时还能够提高异常检测效率。另外,本方案在相关人员具备尽可能少的甚至无需具备机器学习和深度学习的专业知识的情况下,例如模型设计和调优的相关知识,也能够实现自助地、快速搭建异常检测模型实现面向具体任务的异常检测。
需要说明的是:上述实施例提供的异常检测装置在进行异常检测时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的异常检测装置与异常检测方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本申请实施例还提供一种计算设备100。如图2所示,计算设备100包括:总线102、处理器104、存储器106和通信接口108。处理器104、存储器106和通信接口108之间通过总线102通信。计算设备100可以是服务器或终端设备。应理解,本申请不限定计算设备100中的处理器、存储器的个数。
总线102可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图2中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。总线104可包括在计算设备100各个部件(例如,存储器106、处理器104、通信接口108)之间传送信息的通路。
处理器104可以包括中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)、微处理器(micro processor,MP)或者数字信号处理器(digital signal processor,DSP)等处理器中的任意一种或多种。
存储器106可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。处理器104还可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),快闪存储器,机械硬盘(hard diskdrive,HDD)或固态硬盘(solid state drive,SSD)。
存储器106中存储有可执行的程序代码,处理器104执行该可执行的程序代码以分别实现前述接收模块、确定模块、参数调优模块和异常检测模块的功能,从而实现异常检测方法。也即,存储器106上存有用于执行异常检测方法的指令。
通信接口103使用例如但不限于网络接口卡、收发器一类的收发模块,来实现计算设备100与其他设备或通信网络之间的通信。
本申请实施例还提供了一种计算设备集群。该计算设备集群包括至少一台计算设备。该计算设备可以是服务器,例如是中心服务器、边缘服务器,或者是本地数据中心中的本地服务器。在一些实施例中,计算设备也可以是台式机、笔记本电脑或者智能手机等终端设备。
如图3所示,所述计算设备集群包括至少一个计算设备100。计算设备集群中的一个或多个计算设备100中的存储器106中可以存有相同的用于执行异常检测方法的指令。
在一些可能的实现方式中,该计算设备集群中的一个或多个计算设备100的存储器106中也可以分别存有用于执行异常检测方法的部分指令。换言之,一个或多个计算设备100的组合可以共同执行用于执行异常检测方法的指令。
需要说明的是,计算设备集群中的不同的计算设备100中的存储器106可以存储不同的指令,分别用于执行异常检测装置的部分功能。也即,不同的计算设备100中的存储器106存储的指令可以实现接收模块、确定模块、参数调优模块和异常检测模块中的一个或多个模块的功能。
在一些可能的实现方式中,计算设备集群中的一个或多个计算设备可以通过网络连接。其中,所述网络可以是广域网或局域网等等。图4示出了一种可能的实现方式。如图4所示,两个计算设备100A和100B之间通过网络进行连接。具体地,通过各个计算设备中的通信接口与所述网络进行连接。在这一类可能的实现方式中,计算设备100A中的存储器106中存有执行接收模块和确定模块的功能的指令。同时,计算设备100B中的存储器106中存有执行参数调优模块和异常检测模块的功能的指令。
图4所示的计算设备集群之间的连接方式可以是考虑到本申请提供的异常检测方法需要大量地存储数据和计算资源,因此考虑将参数调优模块和异常检测模块实现的功能交由计算设备100B执行。
应理解,图4中示出的计算设备100A的功能也可以由多个计算设备100完成。同样,计算设备100B的功能也可以由多个计算设备100完成。
本申请实施例还提供了另一种计算设备集群。该计算设备集群中各计算设备之间的连接关系可以类似的参考图3和图4所述计算设备集群的连接方式。不同的是,该计算设备集群中的一个或多个计算设备100中的存储器106中可以存有相同的用于执行异常检测方法的指令。
在一些可能的实现方式中,该计算设备集群中的一个或多个计算设备100的存储器106中也可以分别存有用于执行异常检测方法的部分指令。换言之,一个或多个计算设备100的组合可以共同执行用于执行异常检测方法的指令。
本申请实施例还提供了一种包含指令的计算机程序产品。所述计算机程序产品可以是包含指令的,能够运行在计算设备上或被储存在任何可用介质中的软件或程序产品。当所述计算机程序产品在至少一个计算设备上运行时,使得至少一个计算设备执行上述异常检测方法。
本申请实施例还提供了一种计算机可读存储介质。所述计算机可读存储介质可以是计算设备能够存储的任何可用介质或者是包含一个或多个可用介质的数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。该计算机可读存储介质包括指令,所述指令指示计算设备执行上述异常检测方法。
图5是本申请实施例提供的一种异常检测方法所涉及的系统架构图。参见图5,该系统可称为异常检测系统,该系统包括客户端和检测设备。
检测设备用于按照接收到的异常检测任务的配置参数来执行该异常检测任务。即,检测设备用于执行本申请实施例提供的异常检测方法的步骤。
客户端用于向检测设备发送异常检测任务的配置参数。示例性地,客户端在检测到配置操作的情况下,确定异常检测任务的配置参数,向该检测设备发送该配置参数。
可选地,该检测设备为图2所示的计算设备,或者包括图3/图4所示的多个计算设备。
本申请实施例描述的系统架构以及业务场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着系统架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
图6是本申请实施例提供的一种异常检测方法的流程图。以该方法应用于检测设备为例,请参考图6,该方法包括如下步骤。
步骤601:接收异常检测任务的配置参数,该配置参数指示样本集、测试集和候选属性字段,样本集包括云平台中用于进行参数调优的日志数据,测试集包括云平台中待进行异常检测的日志数据,候选属性字段为云平台的日志数据对应的属性字段。
为了在相关人员具备尽可能少的甚至无需具备机器学习和深度学习相关知识的情况下,实现通过异常检测模型来检测云平台中的异常操作和访问,在本申请实施例中,由人工配置一些无关模型设计和调优的专业参数,并提交异常检测任务的配置参数到检测设备。检测设备接收该配置参数,基于该配置参数,自动进行特征工程、模型搭建和参数调优,通过经参数调优的异常检测模型实现面向该异常检测任务的异常检测。
其中,该配置参数指示候选属性字段、样本集和测试集,样本集包括云平台中用于进行参数调优的日志数据,测试集包括云平台中待进行异常检测的日志数据。应当理解的是,云平台中的日志数据包括多种属性字段的数据,候选属性字段包括该多种属性字段中的一部分属性字段,当然也可以包括该多种属性字段中的全部属性字段。即,候选属性字段为云平台的日志数据对应的属性字段。样本集用于进行特征工程、模型搭建和参数调优。在进行特征工程的过程中,检测设备需要基于样本集从候选属性字段中筛选出目标属性字段。测试集是异常检测任务所指示的待检测数据,后续检测设备将基于目标属性字段通过经参数调优的异常检测模型对测试集进行异常检测。
在本申请实施例中,样本集包括训练子集和验证子集。该配置参数包括训练子集的起止时间、验证子集的起止时间和测试集的起止时间。上述异常检测模型基于训练子集的起止时间,从云平台的日志数据中获取训练子集,基于验证子集的起止时间,从云平台的日志数据中获取验证子集,基于测试集的起止时间,从云平台的日志数据中获取测试集。其中,训练子集和验证子集结合起来用于对异常检测模型的搭建和参数调优。
由前述可知,云服务场景中有多种类型的异常检测任务,基于此,该配置参数还指示检测对象,例如,该配置参数包括检测对象的标识,该检测对象可以是目标用户、目标服务或目标主机等。在该检测对象为目标用户的情况下,该异常检测任务用于对目标用户对云平台的操作和访问进行异常检测,样本集和测试集包括云平台中与该目标用户相关的日志数据。在该检测对象为目标服务的情况下,该异常检测任务用于对云平台中目标服务进行异常检测,样本集和测试集包括云平台中与该目标服务相关的日志数据。在该检测对此为目标主机的情况下,该异常检测任务用于对云平台中目标主机相关的操作和访问进行异常检测,样本集和测试集包括云平台中与该目标主机相关的日志数据。
训练子集包括多个训练样本,验证子集包括多个验证样本,测试集包括一个或多个待测样本。为了确定训练子集、验证子集以及测试集所包括的每个样本具体包括哪个时间段的日志数据,该配置参数还指示异常检测的时间粒度。异常检测模型基于异常检测的时间粒度,确定训练子集、验证子集和测试集分别包括的多个样本,每个样本的时间粒度等于该异常检测的时间粒度。其中,将训练子集所包括的一个样本称为一个训练样本,将验证子集所包括的一个样本称为一个验证样本,将测试集所包括的一个样本称为待测样本。
示例性地,检测对象为用户a,异常检测的时间粒度为24小时,训练子集的起止时间为2022年1月1日至6月30日,即训练子集包括这6个月中与用户a相关的日志数据,检测设备将训练子集中这6个月所包括的每24小时的日志数据确定为训练子集所包括的一个训练样本。
为了实现对上述每个样本的更细粒度的数据统计,以便通过更加精确的特征工程和模型调优来提升异常检测的性能,该配置参数还指示单条样本的时间粒度,异常检测的时间粒度为单条样本的时间粒度的整数倍。上述每个样本包括多个单条样本。检测设备基于单条样本的时间粒度,确定训练子集、验证子集和测试集分别包括的各个样本中的多个单条样本。
仍以上述示例为例,检测对象为用户a,异常检测的时间粒度为24小时,单条样本的时间粒度为1小时,检测设备将每个训练样本所包括的24小时中每个小时的日志数据确定为一个单条样本,从而得到每个训练样本所包括的24个单条样本。换种方式来讲,检测设备按照单条样本的时间粒度,将训练子集中每个小时的日志数据确定为一个单条样本,将训练子集中每24小时的24个单条样本划分为一个训练样本。
可选地,该配置参数所指示的候选属性字段包括已选字段和待选字段,已选字段是指后续对测试集进行异常检测的过程中确定用到的字段,待选字段是指在进行特征工程之前还不确定后续对测试集进行异常检测的过程中是否用到的字段。在进行特征工程的过程中,检测设备将从候选属性字段包括的所有待选字段中确定出一部分待选字段,将这部分待选字段和全部已选字段确定为目标属性字段,目标属性字段包括后续对测试集进行异常检测的过程中所需的全部字段,即目标属性字段为用于进行异常检测任务的属性字段。
在后续进行特征工程的过程中,异常检测模型通过统计的方式得到日志数据中候选属性字段的数据的统计量,基于统计量进行特征工程,候选属性字段所包括的属性字段有多个,由于不同属性字段的特性存在不同,因此,对于不同的属性字段进行统计的具体方式存在不同,这样能够得到更有价值的统计量。基于此,该配置参数还指示候选属性字段中每个属性字段的类别,不同类别的属性字段对应的统计量的种类存在不同。不同类别的属性字段具体对应哪些统计量将在下文步骤602中进行详细介绍。
在本申请实施例中,每个属性字段的类别为第一类属性或第二类属性或第三类属性或第四类属性。如表1所示,第一类属性为情景属性。例如,服务名称或服务种类等表征某具体场景的字段属于第一类属性。属于第二类属性的属性字段的取值是离散值,且取值的种类不超过种类阈值,即属于第二类属性的属性字段的取值是离散值且种类较少。通常来讲,取值有限的属性字段的所有可能取值是有顺序的。例如,状态字段属于第二类属性,状态字段的可能取值包括‘0、1、2、3’。属于第三类属性的属性字段的取值是离散值,且取值的种类超过种类阈值,即属于第三类属性的属性字段的取值是离散值且种类较多。例如,远程操作地址字段属于第三类属性,远程操作地址字段的取值可以是‘192.168.2.1’、‘192.168.1.3’等。属于第四类属性的属性字段的取值是连续值。例如,超文本传输协议(hyper text transfer protocol,HTTP)请求的总长度字段属于第四类属性。
表1
属性类别 | 分类标准 |
第一类属性 | 情景属性 |
第二类属性 | 取值为离散值且种类较少(有顺序) |
第三类属性 | 取值为离散值且种类较多 |
第四类属性 | 取值为连续值 |
作为一个示例,一条日志数据包含但不限于如下属性字段(field)的数据:time(时间戳)、userId(用户标识)、remote_addr(远程操作地址)、service_name(服务名称,也可称为服务种类或服务类型)、api_id(操作的应用标识,一种服务可提供一种或多种应用)、body_bytes_sent(操作的HTTP内容长度)、forward_flag(后端是否转发的标志)、status(状态,指示操作是否成功)、request_method(HTTP请求方法)、request_length(HTTP请求的总长度)、diff_time(响应时间)、accessModel(访问模式)、deploy_type(指示数据库类型)。其中,time用于确定每个样本所包括的日志数据,userId用于筛选用户,time和userId不作为统计对象,service_name为第一类属性,其余属性字段的类别如下。
在一些实施例中,候选属性字段中的已选字段包括remote_addr、api_id和body_bytes_sent这3个属性字段,候选属性字段中的待选字段包括forward_flag、status、accessModel、deploy_type、request_method、diff_time和request_length这7个属性字段。
除了按照属性字段的类别来确定所需计算的统计量之外,还可以根据异常检测任务是否时序相关,来确定所需计算的统计量。可选地,该配置参数还指示异常检测任务是否时序相关。在异常检测任务是时序相关的情况下,某些属性字段(如属于第二类属性和/或第三类属性的属性字段)对应的统计量还包括用户访问轮廓和/或访问轮廓相似性(也可称为访问轮廓相似度)。该内容也将在步骤602中详细介绍。
在云服务场景中,云平台中的日志数据可能存储于多台设备、多条路径下,比如,云服务a相关的日志数据存储于设备a,云服务b相关的日志数据存储于设备b,企业1的日志数据存储于路径1,企业2的日志数据存储于路径2。基于此,人工还可以配置异常检测任务相关的日志数据的存储位置。可选地,该配置参数还指示异常检测任务相关的日志数据的存储位置。异常检测模型按照该存储位置,从云平台获取样本集和测试集中的日志数据。
以上所介绍的配置参数均是云领域专家根据丰富的业务经验即可配置的,即相关人员具备尽可能少甚至无需具备专业的机器学习和深度学习知识。表2是本申请实施例提供的一种配置参数的输入信息表,按照表2即可配置出上述配置参数。
表2
为了保证异常检测任务的成功执行,检测设备在接收到异常检测任务的配置参数之后,对该配置参数进行逻辑检测,如果检测到该配置参数的逻辑异常,则检测设备反馈提示信息,以提示重新进行配置。例如,异常检测的时间粒度小于单条样本的时间粒度,或者,异常检测的时间粒度不等于单条样本的时间粒度,或者,测试集的起止时间对应的时间段与训练子集的起止时间对应的时间段有重叠,均说明该配置参数的逻辑异常。如果检测到该配置参数的逻辑正常,则检测设备继续执行步骤602。
步骤602:基于样本集和候选属性字段,从候选属性字段中确定目标属性字段,目标属性字段为用于进行异常检测任务的属性字段。
在本申请实施例中,检测设备从云平台的日志数据中获取该配置参数所指示的样本集。
例如,该配置数据包括训练子集的起止时间和验证子集的起止时间,样本集包括训练子集和验证子集,检测设备按照训练子集的起止时间,获取训练子集所包括的所有训练样本。同理,检测设备按照验证子集的起止时间,获取验证子集所包括的所有验证样本。
又如,该配置数据包括检测对象的标识、训练子集的起止时间、验证子集的起止时间、日志数据的存储位置和单条样本的时间粒度,样本集包括训练子集和验证子集,检测设备按照检测对象的标识、训练子集的起止时间、日志数据的存储位置和单条样本的时间粒度,获取训练子集包括的所有单条样本。同理,检测设备按照检测对象的标识、验证子集的起止时间、日志数据的存储位置和单条样本的时间粒度,获取验证子集包括的所有单条样本。具体实现方式也可参照步骤601中的相关描述。
在获取到样本集之后,检测设备基于样本集和候选属性字段,从候选属性字段中确定目标属性字段。即,检测设备利用样本集通过特征工程从候选属性字段中筛选出目标属性字段。
由前述可知,候选属性字段包括已选字段和待选字段,为了去除待选字段中冗余的字段,保证筛选出的目标属性字段对异常检测任务的价值,本申请实施例通过确定每个待选字段的字段得分来筛选字段。接下来将对此进行详细介绍。
在本申请实施例中,候选属性字段包括m个已选字段和n个待选字段,m为不小于0的整数,n为大于0的整数。检测设备基于样本集、该m个已选字段和n个待选字段,确定该n个待选字段分别对应的字段得分。检测设备基于该n个待选字段分别对应的字段得分,从该n个待选字段中确定出p个待选字段,p为不大于n的正整数。检测设备将该m个已选字段和p个待选字段确定为目标属性字段。其中,字段得分表征在该m个已选字段中添加对应的待选字段后对异常检测效果的提升程度。换种方式来讲,字段得分表征通过已选字段以及对应的待选字段进行异常检测的效果。
为了验证在该m个已选字段中添加对应的待选字段后对异常检测效果的提升程度,本申请实施例通过字段间的互信息与字段对应的重建损失相结合的方式来确定字段得分。接下来将结合图7来对此进行介绍。
图7是本申请实施例提供的一种确定字段得分的方法流程图。该方法包括步骤6021至步骤6026。
步骤6021:将该m个已选字段组成已选字段集合,将该n个待选字段组成待选字段集合。
步骤6022:基于训练子集、已选字段集合和待选字段集合,确定该待选字段集合中每个待选字段对应的互信息。
其中,互信息表征对应的待选字段与已选字段集合中所有字段之间的相关性。
在本申请实施例中,检测设备基于训练子集、已选字段集合和待选字段集合,确定该待选字段集合中每个待选字段对应的互信息的实现过程为:确定训练子集中已选字段集合以及待选字段集合包括的所有字段的数据的统计量;对于该待选字段集合中的第二待选字段,基于训练子集中第二待选字段以及该已选字段集合包括的所有已选字段的数据的统计量,确定多个第一互信息,该多个第一互信息包括第二待选字段与该已选字段集合中各个已选字段之间的互信息,第二待选字段为该待选字段集合中的任一待选字段;将该多个第一互信息中的最大值确定为第二待选字段对应的互信息。简单来讲,通过字段对应的统计量来计算字段之间的互信息。
在一个实施例中,训练子集中第一已选字段的数据的统计量包括R个第一统计量,训练子集中第二待选字段的数据的统计量包括S个第二统计量,第一已选字段为该已选字段集合中的任一已选字段,R和S均为大于0的整数。检测设备基于训练子集中第二待选字段以及该已选字段集合包括的所有已选字段的数据的统计量,确定多个第一互信息的实现过程包括:基于该R个第一统计量和S个第二统计量,通过多轮迭代的方式确定S个第二互信息;将该S个第二互信息的均值确定为该多个第一互信息中第二待选字段与第一已选字段之间的互信息。
其中,在第j轮迭代过程中,检测设备确定该S个第二统计量中的第j个第二统计量与该R个第一统计量所包括的(R-j+1)个第一统计量之间的互信息,以得到与该(R-j+1)个第一统计量一一对应的(R-j+1)个参考互信息,j为大于0且不大于R的整数。检测设备将该(R-j+1)个参考互信息中的最大值,确定为该S个第二互信息中的第j个第二互信息,将该(R-j+1)个第一统计量中除去与该最大值对应的第一统计量之外的(R-j)个第一统计量,确定为第j+1轮迭代过程中的(R-j)个第一统计量。
示例性地,status为一个已选字段,训练子集中status对应的统计量包括500个第一统计量,即包含500维。diff_time为一个待选字段,训练子集中diff_time对应的统计量包括300个第二统计量,即包含300维。在第1轮迭代过程中,检测设备计算diff_time的第1维与status的500维中每一维之间的互信息,以得到500个参考互信息,假设这500个参考互信息中的最大值对应status的第321维,那么检测设备将该最大值确定为diff_time的第1维与status之间的互信息,即得到第1个第二互信息,然后检测设备去掉status的第321维。在第2轮迭代过程中,检测设备计算diff_time的第2维与status的499维中每一维之间的互信息,以得到499个参考互信息,假设这499个参考互信息中的最大值对应status的第432维,那么检测设备将该最大值确定为diff_time的第2维与status之间的互信息,即得到第2个第二互信息,然后检测设备去掉status的第432维。以此类推,计算diff_time其余的298维分别与status之间的互信息后,检测设备共得到diff_time的300维分别与status之间的互信息,即得到300个第二互信息。检测设备将这300个第二互信息的均值作为diff_time与status之间的互信息。
在本申请实施例中,检测设备可按照公式(1)来计算统计量之间的互信息。在公式(1)中,I(Su;Sc)表示统计量Su与统计量Sc之间的互信息,su和sc分别表示Su和Sc的取值。P(·,·)表示联合概率分布,P(·)表示概率密度。
两个统计量之间的互信息越大,说明这两个统计量之间的关联越大,冗余信息越多,在已选字段的一个统计量的基础上添加待选字段的一个统计量对异常检测效果的贡献越小。两个统计量之间的互信息越小,说明这两个统计量之间的关联越小,冗余信息越少,在已选字段的一个统计量的基础上添加待选字段的一个统计量对异常检测效果的贡献越大。
为了便于计算,在本申请实施例中通过将取值连续的统计量进行离散化,基于离散化的统计量进行互信息的计算。其中,离散化的方法可以是基于四分位数的方法,也可以是其他方法,本申请实施例对此不作限定。
示例性地,检测设备基于四分位数的方法对取值连续的统计量进行离散化。在具体实现中,对于每种统计量,检测未识别根据全部训练样在该统计量的所有取值计算四分位数,计算出的四分位数的三个分位点依次记为Q1、Q2和Q3。记IQR=Q3-Q1,以Q1-1.5IQR、Q1、Q2、Q3、Q3+1.5IQR为分位点确定六个区间,将全部训练样本的该统计量离散化到这六个区间中,后续对于验证子集和测试子集的统计量也按照这六个区间进行离散化。
步骤6023:从该待选字段集合中选择出互信息最小的k个待选字段。
也即是,检测设备按照互信息从小到大的顺序,从该待选字段集合中选择出k个待选字段。其中,k为不大于n的正整数,更精确地,k不大于该待选字段集合所包括的字段的总数量。
在本申请实施例中,检测设备按照预设值来确定k,如果当前的待选字段集合中存在对应的互信息相同的多个待选字段,使得互信息最小的待选字段的总数量超过该预设值,则检测设备将当前的k设置为等于当前互信息最小的待选字段的总数量。如果当前的待选字段集合包括的字段的总数量小于预设值,则检测设备将当前的k设置为等于待选字段集合包括的字段的总数量,或者,将当前的k设置为待选字段集合包括的字段的总数量减去指定数值(如1),以保证k不超过该待选字段集合所包括的字段的总数量即可。
步骤6024:基于训练子集、验证子集、已选字段集合和该k个待选字段,确定该k个待选字段分别对应的重建损失。
其中,重建损失表征通过对应的待选字段和已选字段集合对验证子集进行异常检测的效果。
在本申请实施例中,检测设备基于训练子集、验证子集、已选字段集合和该k个待选字段,确定该k个待选字段分别对应的重建损失的实现过程为:对于该k个待选字段中的第一待选字段,将第一待选字段添加至已选字段集合,以得到一个候选字段集合,第一待选字段为该k个待选字段中的任一待选字段;基于该训练子集和该候选字段集合,确定第一待选字段对应的第二检测模型;基于验证子集和该候选字段集合,通过第一待选字段对应的第二检测模型,确定第一待选字段对应的重建损失。应当理解的是,在该实现过程中,检测设备能够得到与该k个待选字段一一对应的k个候选字段集合,以及与该k个候选字段一一对应的k个第二检测模型。
简单来讲,检测设备在已选字段集合中添加该k个待选字段中的任一待选字段后,基于添加了一个待选字段的已选字段集合,通过训练子集来训练得到第二检测模型,然后,通过验证子集和第二检测模型来验证在已选字段集合中添加该k个待选字段中的任一待选字段后异常检测效果的提升程度。
其中,检测设备基于该候选字段集合(即该k个候选字段集合中与第一待选字段对应的一个候选字段集合)确定训练子集的参考统计特征,训练子集的参考统计特征包括训练子集中该候选字段集合包括的所有字段的数据的统计量。检测设备通过训练子集的参考统计特征训练初始检测模型,以得到第一待选字段对应的第二检测模型。
检测设备基于该候选字段集合确定验证子集的参考统计特征,验证子集的参考统计特征包括验证子集中该候选字段集合包括的所有字段的数据的统计量。检测设备将验证子集的参考统计特征输入第一待选字段对应的第二检测模型,以得到验证子集的参考重建特征,验证子集的参考重建特征包括验证子集中该候选字段集合包括的所有字段的数据的重建统计量。检测设备基于验证子集的参考统计特征和参考重建特征,确定第一待选字段对应的重建损失。第一待选字段对应的重建损失也表征在已选字段集合中添加第一待选字段后对验证子集的参考统计特征的重建效果。
作为一个示例,检测设备按照公式(2)来确定第一待选字段的重建损失。在公式(2)中,表示第一待选字段对应的重建损失,X和/>分别表示验证子集的参考统计特征和参考重建特征,n表示验证子集包括的验证样本的总数量,m表示每个验证样本中第一待选字段以及已选字段集合包括的所有已选字段的数据的统计量的总维数,d表示该总维数中的第d维,i表示验证子集包括的单条样本的总数量。/>表示验证子集中第i个单条样本的参考统计特征包括的第d维参考统计量(即第二检测模型的输入统计量),/>表示验证子集中第i个单条样本的参考重建特征包括的第d维重建统计量(即第二检测模型的输出统计量)。
可选地,检测设备将验证子集的参考统计特征和参考重建特征进行归一化,基于验证子集的经归一化的参考统计特征和参考重建特征,确定第一待选字段对应的重建损失。示例性地,检测设备通过归一化将和/>的值域映射到区间[-1,1]。例如,对于某个单条样本在单条样本的时间粒度的统计量(如一小时粒度的统计量),基于该单条样本所属的验证样本的所有在单条样本的时间粒度的统计量(如24小时中每个小时粒度的统计量)进行归一化。对于某个验证样本在异常检测的时间粒度的统计量(如24小时粒度的统计量),基于该验证样本在所有验证样本的所有异常检测的时间粒度的统计量(如7天中每24小时粒度的统计量)进行归一化。
上述第二检测模型是一个异常检测模型,为了保证字段筛选中所使用的第二检测模型的异常检测效果,与后续对测试集进行异常检测所使用的第一检测模型的异常检测效果的相对一致性,第二检测模型与第一检测模型的结构大致相同,不同的地方包括输入层的维度可能存在不同、模型参数可能存在以下差异。例如,第二检测模型中输入层的维度是与添加上第一待选字段后的已选字段集合包括的字段的总数量相匹配的,而第一检测模型中输入层的维度是与目标属性字段所包括的字段的数量相匹配的。又如,第二检测模型的全部超参数可以是预设的,而第一检测模型的部分超参数(如下文中的第一超参数)是待调优的。
步骤6025:基于该k个待选字段分别对应的互信息和重建损失,从该k个待选字段中选择一个待选字段,并确定选择出的待选字段的字段得分。
在得到该k个待选字段分别对应的互信息和重建损失之后,检测设备将能够将互信息和重建损失结合起来确定待选字段的字段得分。
在本申请实施例中,检测设备基于该k个待选字段分别对应的互信息和重建损失,从该k个待选字段中选择一个待选字段,并确定选择出的待选字段的字段得分的实现过程为:基于该k个待选字段分别对应的互信息和重建损失,确定该k个待选字段分别对应的综合分数,将该k个待选字段中综合分数最高的待选字段确定为选择出的待选字段,将选择出的待选字段的综合分数确定为选择出的待选字段的字段得分。应当理解的是,在该实现过程中,检测设备得到与该k个待选字段一一对应的k个综合得分。
由于字段间的互信息越大,表示字段间的相关性越强,字段对应的重建损失越大(即在已选字段中添加该字段后得到的重建损失相对于不添加该字段所得到的重建损失的降幅越小),表示字段对于异常检测效果的提升越弱,因此,为了尽可能去除与已选字段之间相关性较强、且对于异常检测效果的提升较弱的待选字段,检测设备可以通过加权求和或者其他方式对该k个待选字段分别对应的互信息和重建损失进行处理,以得到该k个待选字段分别对应的综合分数。
可选地,检测设备基于该k个待选字段分别对应的互信息,确定该k个待选字段分别对应的互信息分数。互信息分数越高的待选字段对应异常检测效果的提升越大。即,互信息的大小与异常检测效果呈负相关,而互信息分数的大小与异常检测效果呈正相关。检测设备基于该k个待选字段分别对应的互信息分数和重建损失,确定该k个待选字段分别对应的综合分数。
作为一个示例,检测设备按照公式(3)来确定待选字段的互信息分数,按照公式(4)来确定待选字段的综合分数。在公式(3)和(4)中,field表示一个待选字段,I表示该待选字段对应的互信息,Score(I)表示该待选字段的互信息分数,Score(Loss)表示该待选字段对应的重建损失,Score(field)表示该待选字段的字段得分。β为可调参数,默认取值可以为1或其他数值。
Score(I)=1-(2×sigmoid(I)-1) (3)
由公式(3)可以看出,检测设备将待选字段对应的互信息通过sigmoid函数进行了归一化,即,将互信息的值域映射到了区间(0,1),通过公式(3)所得到的互信息分数的值域也是区间(0,1),某个待选字段对应的互信息分数越大,表示该待选字段对于异常检测效果的提升程度越高。
步骤6026:将选择出的待选字段从待选字段集合移入已选字段集合,返回步骤6022,直至待选字段集合为空时,得到该n个待选字段分别对应的字段得分。
即,检测设备将选择出的待选字段从待选字段集合移入已选字段集合后,如果待选字段集合不为空,则返回步骤6022,如果待选字段集合为空,则检测设备得到该n个待选字段分别对应的字段得分。
基于上文对步骤6021至步骤6026的相关介绍可知,检测设备实质上是通过多轮迭代的方式来确定该n个待选字段分别对应的字段得分。在每一轮迭代过程中得到一个待选字段的字段得分,经过n轮迭代后得到该n个待选字段分别对应的字段得分。再换种方式来讲,检测设备基于样本集和候选属性字段,从候选属性字段中确定目标属性字段的实现方式如下:
确定训练子集中该m个已选字段的数据的统计量以及该n个待选字段的数据的统计量;通过执行多轮迭代来确定目标属性字段。
其中,检测设备先将该m个已选字段组成已选字段集合,将该n个待选字段组成待选字段集合。在第i轮迭代过程中,检测设备基于训练子集中已选字段集合以及待选字段集合所包括的所有字段的数据的统计量,确定待选字段集合中每个待选字段对应的互信息,i为大于0且不大于n的整数。检测设备按照互信息从小到大的顺序,从待选字段集合中选择出k个待选字段,将该k个待选字段中的每个待选字段分别添加到已选字段集合中,以得到与该k个待选字段一一对应的k个候选字段集合。对于该k个候选字段集合中的第一候选字段集合,检测设备获取训练子集中第一候选字段集合包括的所有字段的数据的统计量,以及确定验证子集中第一候选字段集合包括的所有字段的数据的统计量,第一候选字段集合为该k个候选字段集合中的任一候选字段集合。检测设备通过训练子集中第一候选字段集合包括的所有字段的数据的统计量,训练初始检测模型,以得到第一待选字段对应的第二检测模型,第一待选字段是指该k个待选字段中与第一候选字段集合对应的待选字段。检测设备将验证子集中第一候选字段集合包括的所有字段的数据的统计量输入第二检测模型,以得到验证子集中第一候选字段集合包括的所有字段的数据的重建统计量。检测设备基于验证子集中第一候选字段集合包括的所有字段的数据的统计量和重建统计量,确定第一待选字段对应的重建损失。检测设备基于该k个待选字段中每个待选字段对应的互信息和重建损失,确定该k个待选字段中每个待选字段的综合分数。检测设备将该k个待选字段中综合分数最高的待选字段选择出来,将选择出的待选字段的综合得分确定为选择出的待选字段的字段得分,将选择出的待选字段从待选字段集合移入已选字段集合中,以得到下一轮迭代过程中的已选字段集合和待选字段集合。在最后一轮迭代完成后,检测设备得到该n个待选字段中每个待选字段的字段得分。然后,检测设备按照该n个待选字段中每个待选字段的字段得分,从该n个待选字段中确定出p个待选字段,将该m个已选字段和该p个待选字段确定为目标属性字段。
简单来讲,在每一轮迭代过程中,对当前所有待选字段进行遍历,逐一计算每个待选字段与当前所有已选字段之间的互信息,选出互信息最小的k个待选字段。然后,分别在当前所有已选字段的基础上添加这k个待选字段中的一个字段,以得到k个候选字段集合。使用训练子集和验证子集来分别验证该k个候选字段集合对应的重建效果,即分别得到这k个待选字段对应的重建损失。基于这k个待选字段分别对应的互信息和重建损失,确定这k个待选字段中各个待选字段的综合分数。按照综合分数从这k个待选字段中选出本轮迭代过程中最优的一个待选字段,将选出的待选字段从当前所有待选字段的集合移入当前所有已选字段的集合中。迭代上述过程直至当前所有待选字段的集合为空。之后,按照每轮迭代过程中所选出的待选字段的综合分数,确定出目标属性字段。
如果上述m为0,即候选字段中已选字段的数量为0,表示云平台相关人员本次未指定已选字段,则检测设备将该m个已选字段组成已选字段集合(为空),将该n个待选字段组成待选字段集合之后,在第一轮迭代过程中,基于训练子集、已选字段集合和待选字段集合,确定待选字段集合中每个待选字段对应的互信息,实现过程为:将该n个待选字段中的每个待选字段依次作为一个参考待选字段,在确定第一个参考待选字段之后,将该n个待选字段中除第一个参考待选字段之外的n-1个待选字段作为假想的已选字段集合,基于训练子集、假想的已选字段集合与第一个参考待选字段,确定第一个参考待选字段对应的互信息。在确定第二个参考待选字段之后,检测设备以同样的方式确定第二个参考待选字段对应的互信息。以此类推,在第一轮迭代过程中共得到n个参考待选字段分别对应的互信息,这n个参考待选字段分别对应的互信息即为待选字段集合中的n个待选字段分别对应的互信息。
然后,检测设备从待选字段集合中选择出互信息最小的k个待选字段。基于训练子集、验证子集、假想的已选字段集合和该k个待选字段,确定该k个待选字段分别对应的重建损失。检测设备基于该k个待选字段分别对应的互信息和重建损失,从该k个待选字段中选择一个待选字段,并确定选择出的待选字段的字段得分。检测设备将选择出的待选字段从待选字段集合移入已选字段集合。至此得到已选字段集合中的第一个已选字段。在第二轮迭代过程中,检测设备基于训练子集、已选字段集合和待选字段集合,确定待选字段集合中每个待选字段对应的互信息,按照前述方式类推,直至待选字段集合为空时,得到n个待选字段分别对应的字段得分。
在得到该n个待选字段分别对应的字段得分之后,可以通过人工决策的方式从该n个待选字段中选择p个待选字段,也可以通过自动决策的方式从该n个待选字段中选择p个待选字段,进而检测设备将该m个已选字段和该p个待选字段确定为目标属性字段。
在通过人工决策的方式选择p个待选字段的一个实施例中,检测设备发送字段得分信息,该字段得分信息包括该n个待选字段中每个待选字段的字段得分。检测设备接收字段决策信息,该字段决策信息指示p个待选字段。检测设备基于该字段决策信息,从该n个待选字段中确定出该p个待选字段。也即是,检测设备将每个待选字段的综合得分情况反馈给相关人员,由相关人员根据综合得分情况来作最终决策。
可选地,该字段得分信息还包括确定字段得分过程中所得到的每个待选字段对应的互信息(和/或互信息分数)以及重建损失。也即是,检测设备将每个待选字段对应的互信息、重建损失以及综合得分情况反馈给相关人员,由相关人员结合互信息、重建损失以及综合得分情况来作最终决策。
在通过自动决策的方式来确定目标属性字段的一个实施例中,检测设备根据预设字段数量和该n个待选字段中每个字段的字段得分,从该n个待选字段中确定出p个待选字段。其中,预设字段数量表示对测试集进行异常检测所需的属性字段的总数量,p+m等于该预设字段数量。或者,预设字段数量表示所需从该n个待选字段中选择出来的待选字段的总数量,p等于预设字段数量。
接下来对本申请实施例中属性字段对应的统计量进行介绍。
由前述可知,该配置参数还指示候选属性字段中每个属性字段的类别,不同类别的属性字段对应的统计量的种类存在不同。例如,每个属性字段的类别为第一类属性或第二类属性或第三类属性或第四类属性。这四类属性字段对应的统计量的种类存在不同。这四类属性字段的特性可参照步骤601中表1的相关介绍。
表3是本申请实施例提供的一种不同类别的属性字段与统计量之间的关系表。如表3所示,每一类属性字段对应的统计量均包括基础统计量、第一类统计量和第二类统计量。其中,属于第一类属性的属性字段对应的第一类统计量包括最大值、均值、数值标准差、信息熵和字段取值种类数。属于第二类属性的属性字段对应的第一类统计量包括最大值、均值、数值标准差、比例标准差、信息熵和字段取值种类数。属于第三类属性的属性字段对应的第一类统计量包括最大值、均值、数值标准差、比例标准差、信息熵和字段取值种类数。属于第四类属性的属性字段对应的第一类统计量包括均值和数值标准差。另外,在异常检测任务是时序相关的情况下,属于第二类属性和第三类属性的属性字段对应的统计量还包括用户访问轮廓和/或访问轮廓相似性。在表3中用‘√’表示需要计算的统计量,用‘×’表示无需计算的统计量,用‘*’表示异常检测任务为时序相关时所需计算的统计量。
表3
其中,基础统计量通过统计相应样本包括的日志数量来确定。表4是本申请实施例提供的不同类别的属性字段对应的基础统计量的含义表。以单条样本的时间粒度为1小时、异常检测的时间粒度为24小时为例,不同类别的属性字段对应的基础统计量的含义如表4所示。其中,第一类属性的基础统计量包括两种,这两种基础统计量分别对应不区分服务和区分服务这两种情况。其余三类属性的基础统计量包括一种。
表4
/>
由表4可以看出,第一类属性对应的基础统计量包括第一基础统计量和第二基础统计量,第一基础统计量包括相应样本所包括的每个单条样本中存在的每种云服务的日志数量,以及相应样本所包括的多个单条样本整体存在的每种云服务的日志数量,第二基础统计量包括相应样本所包括的每个单条样本中存在的每种云服务中每种应用的日志数量,以及相应样本所包括的多个单条样本整体存在的每种云服务中每种应用的日志数量。第二类属性、第三类属性和第四类属性对应的基础统计量包括第三基础统计量,第三基础统计量包括相应样本所包括的每个单条样本中存在的相应类别的属性字段的每种取值在每种云服务中的日志数量,以及相应样本所包括的多个单条样本整体中存在的相应类别的属性字段的每种取值在每种云服务中的日志数量。
以检测对象为用户1为例,用户1在一天内操作两种服务,包括弹性计算服务(elastic compute service,ECS)和对象存储服务(object storage service,OBS)。其中,ECS提供2种应用,OBS提供3种应用。对于第一类属性、区分服务的情况,检测设备统计用户1在这一天中的每个小时操作ECS中每种应用所产生的日志的数量,以及每个小时操作OBS中每种应用所产生的日志的数量,共得到24*(2+3)维的统计量,统计用户1在这一天中操作ECS中每种应用所产生的日志的数量,以及这一天中操作OBS中每种应用所产生的日志的数量,共得到(2+3)维的统计量。那么,对于第一类属性、区分服务的情况,检测设备共得到(24+1)*5维的基础统计量。
对于第一类属性、不区分服务的情况,检测设备统计用户1在这一天中每个小时操作ECS所产生的日志的数量,以及每个小时操作OBS所产生的日志的数量,共得到24*2维的统计量,统计用户1在这一天中操作ECS所产生的日志的数量,以及这一天中操作OBS所产生的日志的数量,共得到1*2维的统计量。那么,对于第一类属性、不区分服务的情况,检测设备共得到(24+1)*2维的基础统计量。
以用户1在使用云服务过程中产生的日志数据包括status字段的数据为例,status字段的取值范围为[0,1,2],status字段属于第二类属性。检测设备统计用户1在这一天中的每个小时内所产生的日志数据中status字段的每个取值在每种云服务下的日志的数量,共得到24*3维的统计量,统计这一天内所产生的日志数据中status字段的每个取值在每种云服务下的日志的数量,共得到1*3维的统计量。那么,对于每个属于第二类属性的字段,检测设备共(24+1)*3维的基础统计量,’3’表示status字段的字段取值种类数。
在得到基础统计量之后,检测设备基于基础统计量确定第一类统计量,即,第一类统计量基于基础统计量确定。表5是本申请实施例提供的不同类别的属性字段对应的第一类统计量的计算方式表。以单条样本的时间粒度为1小时、异常检测的时间粒度为24小时为例,在表4的基础上,不同类别的属性字段对应的第一类统计量的计算方式如表5所示。
表5
/>
表6是本申请实施例提供的不同类别的属性字段对应的第一类统计量的含义表。在表4的基础上,不同类别的属性字段对应的第一类统计量的含义如表6所示。第一类统计量中的最大值表征相应样本的基础统计量所包括的每种统计量的上界,均值表征相应样本的基础统计量所包括的每种统计量的平均状况,数值标准差表征相应样本的基础统计量所包括的每种统计量的离散程度,比例标准差表征相应样本的基础统计量所包括的每种统计量的不平衡性,信息熵表征相应样本的基础统计量所包括的每种统计量的混乱程度,字段取值种类数表征相应样本中每个属性字段的可能取值的个数。
表6
/>
以检测对象为用户1为例,用户1在一天内操作两种服务,包括ECS和OBS,其中,ECS提供2种应用,OBS提供3种应用。对于第一类属性、不区分服务的情况下,检测设备对这一天的每个小时内用户1操作这5种应用分别所产生的日志的数量进行统计,得到每个小时的基础统计量包括的5个日志数量,计算每个小时的这5个日志数量的最大值、均值、数值标准差和信息熵,以得到每个小时的第一类统计量中的一部分统计量。同理,检测设备对这一天内用户1操作这5种应用分别产生的日志的数量进行统计,得到这一天的基础统计量包括的5个日志数量,计算这一天的这5个日志数量的最大值、均值、数值标准差和信息熵,以得到这一天的第一类统计量中的一部分统计量。对于第一类属性、区分服务的情况下,检测设备统计这一天的每个小时内用户1操作ECS所产生的日志的数量以及操作OBS所产生的日志的数量,得到每个小时的基础统计量包括的另外2个日志数量,计算每个小时的这2个日志数量的最大值、均值、数值标准差和信息熵,以得到每个小时的第一类统计量中的另一部分统计量。同理,检测设备对这一天内用户1操作ECS所产生的日志的数量以及操作OBS所产生的日志的数量,得到这一天的基础统计量包括的另外2个日志数量,计算这一天的这2个日志数量的最大值、均值、数值标准差和信息熵,以得到这一天的第一类统计量中的另一部分统计量。
以用户1在使用云服务过程中产生的日志数据包括status字段的数据为例,status字段的取值范围为[0,1,2],status字段属于第二类属性。检测设备统计用户1在这一天中的每个小时内所产生的日志数据中status字段的每个取值在每种云服务下的日志的数量,得到每个小时的基础统计量中的3个日志数量,计算每个小时的这3个日志数量的最大值、均值、数值标准差、比例标准差和信息熵,以得到每个小时的第一类统计量中的一部分统计量。检测设备统计这一天内所产生的日志数据中status字段的每个取值在每种云服务下的日志的数量,得到这一天的基础统计量中的3个日志数量,计算这一天的这3个日志数量的最大值、均值、数值标准差、比例标准差和信息熵,以得到这一天的第一类统计量中的一部分统计量。
在得到第一类统计量之后,检测设备基于第一类统计量确定第二类统计量,即,第二类统计量根据第一类统计量确定,第二类统计量表征相应样本的第一类统计量所包括的每种统计量与所有样本的这种统计量之间的差异。简单来讲,第二类统计量反映单个样本距离样本总体均值的相对标准距离,也即是,反映样本在第一类统计量上与历史观测期内样本总体间的差异。
作为一个示例,检测设备按照公式(5)通过计算z分数的方式来计算第二类统计量。在公式(5)中,表示每一天或每个小时的第一类统计量中的第i个统计量,μ和σ分别表示/>的均值和数值标准差,zi表示每一天或每个小时的第二类统计量中的第i个统计量,即第一类统计量中的第i个统计量对应的第二类统计量。ns表示第一类统计量所包括的统计量的总数量,例如,按照表5来看,ns=(1*N)*(5+num(2nd_attr)*6+num(3nd_attr)*6num(4nd_attr)*2)。
由前述可知,配置参数还指示异常检测任务是否时序相关,在时序相关的情况下,属于第二类属性和第三类属性的属性字段对应的统计量还包括用户访问轮廓和/或访问轮廓相似性。其中,用户访问轮廓表征相应样本所包括的多个单条样本的日志数量变化情况、第二类属性对应的信息熵变化情况和第三类属性对应的信息熵变化情况中的一种或多种。访问轮廓相似性表征相应样本的用户访问轮廓与参考样本的用户访问轮廓之间的相似度。参考样本可以是样本集中的第一个样本,例如,训练子集中的第一个训练样本。
其中,日志数量变化情况包括每种云服务的日志数量随时间变化的情况,和/或,所有云服务的总日志数量随时间变化的情况。第二类属性对应的信息熵变化情况包括属于第二类属性的每种属性字段的每种取值在每种云服务下的信息熵随时间的变化,和/或,每种第二类属性在所有云服务下的信息熵随时间的变化。第三类属性对应的信息熵变化情况包括每种第三类属性在每种云服务中的信息熵随时间的变化,和/或,每种第三类属性在所有云服务中的信息熵随时间的变化。
示例性地,检测设备统计用户1在一天的24个小时内操作某种服务所产生的日志的数量随时间变化的情况,得到一个24维的用户访问轮廓。
检测设备按照公式(6)通过计算余弦相似度的方式来计算访问轮廓相似性。在公式(6)中,向量A和向量B分别表示两个用户访问轮廓,i表示向量中的元素下标。
检测设备按照公式(6)计算训练子集中每个训练样本的用户访问轮廓与参考样本的用户访问轮廓之间的访问轮廓相似性,共得到与训练样本的总数量相同的多个访问轮廓相似性。同理,检测设备按照公式(6)计算验证子集中每个验证样本的用户访问轮廓与参考样本的用户访问轮廓之间的访问轮廓相似性,以及测试集中每个待测样本的用户访问轮廓与参考样本的用户访问轮廓之间的访问轮廓相似性。
可选地,检测设备确定基于训练子集得到的多个访问轮廓相似性的均值和数值标准差,基于该多个访问轮廓相似性的均值和数值标准差,对基于训练子集得到的访问轮廓相似性进行归一化,以得到训练子集的归一化后的访问轮廓相似性,对基于验证子集得到的访问轮廓相似性进行归一化,以得到验证子集的归一化后的访问轮廓相似性,对基于测试集得到的访问轮廓相似性进行归一化,以得到测试集的归一化后的访问轮廓相似性。后续检测设备将归一化后的访问轮廓相似性作为相应样本的一个统计量。
作为一个示例,检测设备按照公式(7)对访问轮廓相似性进行归一化。在公式(7)中,sim(g)表示一个样本(待测样本或验证样本或训练样本)的待进行归一化的访问轮廓相似性,表示该样本的归一化后的访问轮廓相似性,μsim和σsim分别表示基于训练子集得到的多个访问轮廓相似性的均值和数值标准差。
上文对本申请实施例中属性字段对应的统计量进行了介绍。应当理解的是,以上内容并不用于限制本申请实施例,不同实施例中所需计算的统计量以及每种统计量的计算方式可以相同,也可以不同。
步骤603:基于样本集和目标属性字段,对第一检测模型的第一超参数进行调优。
检测设备在确定目标属性字段之后,基于目标属性字段确定样本集的统计特征,该样本集的统计特征包括该样本集中目标属性字段的数据的统计量。即,检测设备将样本集中目标属性字段的数据的统计量,确定为样本集的统计特征。检测设备基于样本集的统计特征,对第一检测模型的第一超参数进行调优,以得到经参数调优的第一检测模型。
在样本集包括训练子集和验证子集的实施例中,样本集的统计特征包括训练子集的统计特征和验证子集的统计特征,检测设备将训练子集所包括的目标属性字段的数据的统计量,确定为训练子集的统计特征,将验证子集中目标属性字段的数据的统计量,确定为验证子集的统计特征。检测设备基于训练子集的统计特征和验证子集的统计特征,对第一检测模型的第一超参数进行调优。
其中,第一超参数包括学习率、训练轮数和隐藏层维度。待调优的学习率、训练轮数和隐藏层维度的可能取值均有多个,检测设备按照学习率、训练轮数和隐藏层维度的各种取值的组合来设置第一检测模型的第一超参数,利用训练子集的统计特征来训练设置了不同组合的第一超参数的第一检测模型,利用验证子集的统计特征来验证经训练的第一检测模型的异常检测效果,在得到不同组合的第一超参数分别对应的异常检测效果之后,将异常检测效果最优的第一超参数组合确定为调优后的第一超参数,将调优后的第一超参数确定为经参数调优的第一检测模型的第一超参数。简单来讲,检测设备按照网络搜索的方式,遍历所有可能的第一超参数组合,以在第一超参数的搜索空间中搜索出最优的第一超参数组合。第一超参数的搜索空间为学习率、训练轮数和隐藏层维度这三个超参数的搜索空间的笛卡尔积。
在本申请实施例中,第一检测模型包括输入层、第一隐藏层和第二隐藏层(也可称为瓶颈层)。待调优的隐藏层维度包括第一隐藏层和第二隐藏层的维度。输入层的维度基于目标属性字段包括的字段的数量确定,第一隐藏层和第二隐藏层的维度基于输入层的维度确定。也即是,隐藏层的维度并非随意设置,隐藏层维度的搜索空间较小。
其中,目标属性字段包括的字段的数量越多,输入层的维度相对越高。输入层的维度还与目标属性字段包括的字段的统计量的维度相关,目标属性字段包括的字段的统计量的维度越高,即统计量的数量越多,输入层的维度相对越高。
以输入层的维度为N1,第一隐藏层的维度为N2,第二隐藏层的维度为N3为例,在一些实施例中,N1满足其中,ceil()表示向上取整,即N为不小于N1的一个2的整数次幂。在N位于第一区间的情况下,N2=N/4,N3为位于区间[8,N/8]内的2的整数次幂中的一个。在N位于第二区间的情况下,N2=N/2,N3为位于区间[4,N/4]内的2的整数次幂中的一个,第二区间内的数值均小于第一区间内的数值。
示例性地,在N为第一区间[512,4096]内的一个2的整数次幂,即N1∈(256,4096]的情况下,N2=N/4,N3的搜索空间为{8,16,32,64,128,256,512}。在N为第二区间[64,256]内的一个2的整数次幂,即N1∈(264,256]的情况下,N2=N/2,N3的搜索空间为{4,8,16,32,64}。
可选地,学习率等于其中,l为区间[0,L+1]中的一个整数,L不超过搜索点阈值。换种方式来讲,学习率的搜索空间为其中,l=0,1,…,L+1,L不超过搜索点阈值,即学习率的搜索点共有L+2个,包括学习率优化区间内的L个搜索点以及学习率优化区间的边界上的两个搜索点。其中,搜索点阈值为12、14、16等数值。
对于训练轮数来讲,通常训练轮数越多,模型越能够在训练子集上接近收敛状态,但是也容易使得训练后的模型过拟合。为了让模型收敛的同时尽量降低过拟合程度,本申请实施例中利用验证子集来测试经训练子集训练后的第一检测模型的过拟合程度。在验证子集中的日志数据没有异常的情况下,将验证子集中的所有验证样本视为正样本,当经训练的第一检测模型在验证子集上有较好的性能时,即,将验证子集中的超过预设比例的验证样本均检测为正样本时,检测设备可认为经训练的第一检测模型在没有过拟合的情况下接近收敛状态。其中,预设比例为95%、98%或99%等。
在一些实施例中,训练轮数的取值区间为[1,100],即,训练轮数的搜索空间为{1,2,3,…,100}。检测设备将训练100轮中在验证子集上的性能最优的轮数确定为调优后的训练轮数,即得到最优轮数。
在本申请实施例中,第一检测模型还包括第二超参数,第二超参数包括优化器参数、激活函数、损失函数、参数初始化方式、批处理大小和隐藏层层数。第二超参数是无需调优的超参数。例如,第二超参数是预设参数。其中,各个隐藏层的激活函数可以是Relu、sigmoid等非线性函数,输出层的激活函数可以是线性函数。
为了实现轻量级的自动异常检测,本申请实施例提供了一种基于自动编解码器的异常检测模型。即,本文中的第一检测模型和第二检测模型基于自动编解码器实现。
在本申请实施例中,第一检测模型包括串联连接的编码器和解码器,编码器包括串联连接的输入层、第一隐藏层和第二隐藏层,解码器包括串联连接的第三隐藏层和输出层。编码器的输入层与解码器的输出层的维度相同,第一隐藏层与第三隐藏层的维度相同。第二隐藏层可认为是编码器的输出层,也可认为是解码器的输入层,即,可认为第二隐藏层是编码器与解码器共用的网络层,编码器与解码器是相对称的。其中,编码器的输入层用于输入样本的统计特征,解码器的输出层用于输出样本的重建特征。
另外,第一检测模型还包括判别器,判别器的参数包括误差阈值。检测设备将样本集的统计特征输入编码器的输入层,样本集的统计特征经编码器的输入层、第一隐藏层和第二隐藏层处理之后,得到样本集的编码特征。样本集的编码特征经解码器的第三隐藏层和输出层处理后,得到样本集的重建特征。检测设备将样本集的统计特征和重建特征输入判别器,以按照误差阈值来确定样本集的重建损失。检测设备基于样本集的重建损失来对第一检测模型进行训练和超参数调优。
其中,误差阈值根据多个重建损失的均值确定,在对第一检测模型进行参数调优的过程中,该多个重建损失包括训练子集中每个训练样本的统计特征与重建特征之间的误差。例如,检测设备将该多个重建损失的均值确定为误差阈值。或者,误差阈值根据该多个重建损失的均值和标准差确定。例如,检测设备按照公式(8)来确定误差阈值(threshold)。在公式(8)中,mean(loss)和std(loss)分别表示多个重建损失的均值和标准差,α为一个预设参数,α可以为0.4、0.5、0.6等数值。
threshold=mean(loss)+α*std(loss) (8)
本文中样本的统计特征与重建特征之间的重建损失可以是均方根误差(rootmean square error,RMSE)、均方误差(mean square error,MSE)或其他形式的误差,本申请实施例对此不作限定。即,损失函数可以是RMSE函数或MSE函数或其他函数。
由上述可知,本申请实施例中需要调优的第一超参数包括学习率、训练轮数和隐藏层维度这三个对模型性能影响相对较大的参数,而对模型性能影响相对较小的第二超参数可以预先设置以加快模型的构建和参数调优,从而在保证经参数优化后的第一检测模型的性能的前提下,提高异常检测任务的执行效率。
步骤604:基于目标属性字段,通过经参数调优的第一检测模型对测试集进行异常检测,以得到测试集的异常检测结果。
在得到经参数调优的第一检测模型之后,检测设备基于目标属性字段确定测试集的统计特征,测试集的统计特征包括测试集中目标属性字段的数据的统计量。检测设备将测试集的统计特征输入经参数调优的第一检测模型,以得到该测试集的异常检测结果。
以单条样本的时间粒度为1小时,异常检测的时间粒度为24小时为例,若检测对象为用户a,测试集中的每个待测样本包括用户a在24个小时内的日志数据,那么该待测样本的异常检测结果指示用户a在该24小时内是否存在异常操作和/或异常访问行为。若检测对象为云服务a,测试集中的每个待测样本包括云服务a在24小时内的日志数据,那么该待测样本的异常检测结果指示云服务a是否在这24小时内存在异常。
在本申请实施例中,第一检测模型包括编码器、解码器和判别器,判别器的参数包括误差阈值。检测设备将测试集的统计特征输入编码器,以得到测试集的编码特征;将测试集的编码特征输入解码器,以得到测试集的重建特征。检测设备将测试集的统计特征和重建特征输入判别器,以按照误差阈值确定测试集的异常检测结果。
其中,误差阈值根据多个重建损失的均值确定,在对测试集进行异常检测的过程中,该多个重建损失包括测试集中每个待测样本的统计特征与重建特征之间的误差,或者,还包括训练子集中每个训练样本的统计特征与重建特征之间的误差。待测样本的统计特征包括待测样本中目标属性字段的数据的统计量,待测样本的重建特征是指待测样本中目标属性字段的数据的重建统计量。
图8是本申请实施例提供的另一种异常检测方法的流程图。参见图8,检测设备基于原始日志数据通过自动特征选择从候选属性字段中确定目标属性字段,也即是,自动进行特征工程以筛选候选属性字段中的待选字段,筛选出的待选字段与候选属性字段中的已选字段作为目标属性字段,筛选字段后得到特征选择后的数据,特征选择后的数据包括样本中目标属性字段的数据的统计量。检测设备对特征选择后的数据进行自动编解码,以得到样本中目标属性字段的数据的重建统计量,即输出重建结果。检测设备对特征选择后的数据与重建结果进行误差计算(如图8所示计算RMSE),以得到样本的重建损失。然后,检测设备按照误差阈值对样本的重建损失进行判别后输出样本的判别结果,即输出异常检测结果。
图9是本申请实施例提供的又一种异常检测方法的流程图。参见图9,云领域人员在客户端上配置异常检测任务的相关参数,提交配置文件(包括配置参数)到异常检测系统。异常检测系统提供有异常检测的自助化工具。云领域人员或设备按照日志规范格式对选择的原始日志数据进行规范化。自助化工具基于配置文件对规范化后的日志数据自动进行统计量计算,并基于统计量和配置的候选属性字段自动筛选字段。自助化工具自动对筛选字段后的待测样本进行异常检测,以得到异常检测结果。
综上所述,在本申请实施例中,基于简单的人工配置,即可实现对云平台中的日志数据进行异常检测。无需云服务领域的相关人员手工创建安全规则,也无需人工对各种攻击模式进行深入的分析和总结,从而避免了人工创建安全规则存在的漏洞,减少了漏检和误检的情况,同时还能够提高异常检测效率。另外,本方案无需相关人员具备机器学习和深度学习的专业知识,例如模型设计和调优的相关知识,也能够实现自助地、快速搭建异常检测模型实现面向具体任务的异常检测。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络或其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如:同轴电缆、光纤、数据用户线(digital subscriber line,DSL))或无线(例如:红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质,或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如:软盘、硬盘、磁带)、光介质(例如:数字通用光盘(digital versatile disc,DVD))或半导体介质(例如:固态硬盘(solid state disk,SSD))等。值得注意的是,本申请实施例提到的计算机可读存储介质可以为非易失性存储介质,换句话说,可以是非瞬时性存储介质。
应当理解的是,本文提及的“至少一个”是指一个或多个,“多个”是指两个或两个以上。在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
需要说明的是,本申请实施例所涉及的信息(包括但不限于用户设备信息、用户个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本申请实施例中涉及到的日志数据都是在充分授权的情况下获取的。
以上所述为本申请提供的实施例,并不用以限制本申请,凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (23)
1.一种异常检测方法,其特征在于,所述方法包括:
接收异常检测任务的配置参数,所述配置参数指示样本集、测试集和候选属性字段,所述样本集包括云平台中用于进行参数调优的日志数据,所述测试集包括所述云平台中待进行异常检测的日志数据,所述候选属性字段为所述云平台的日志数据对应的属性字段;
基于所述样本集和所述候选属性字段,从所述候选属性字段中确定目标属性字段,所述目标属性字段为用于进行所述异常检测任务的属性字段;
基于所述样本集和所述目标属性字段,对第一检测模型的第一超参数进行调优;
基于所述目标属性字段,通过经参数调优的第一检测模型对所述测试集进行异常检测,以得到所述测试集的异常检测结果。
2.如权利要求1所述的方法,其特征在于,所述候选属性字段包括m个已选字段和n个待选字段,m为不小于0的整数,n为大于0的整数;
所述基于所述样本集和所述候选属性字段,从所述候选属性字段中确定目标属性字段,包括:
基于所述样本集、所述m个已选字段和所述n个待选字段,确定所述n个待选字段分别对应的字段得分,所述字段得分表征在所述m个已选字段中添加对应的待选字段后对异常检测效果的提升程度;
基于所述n个待选字段分别对应的字段得分,从所述n个待选字段中确定出p个待选字段,所述p为不大于n的正整数;
将所述m个已选字段和所述p个待选字段确定为所述目标属性字段。
3.如权利要求2所述的方法,其特征在于,所述样本集包括训练子集和验证子集;
所述基于所述样本集、所述m个已选字段和所述n个待选字段,确定所述n个待选字段分别对应的字段得分,包括:
将所述m个已选字段组成已选字段集合,将所述n个待选字段组成待选字段集合,基于所述训练子集、所述已选字段集合和所述待选字段集合,确定所述待选字段集合中每个待选字段对应的互信息,所述互信息表征对应的待选字段与所述已选字段集合中所有字段之间的相关性;
从所述待选字段集合中选择出互信息最小的k个待选字段,所述k为不大于n的正整数;
基于所述训练子集、所述验证子集、所述已选字段集合和所述k个待选字段,确定所述k个待选字段分别对应的重建损失,所述重建损失表征通过对应的待选字段和所述已选字段集合对所述验证子集进行异常检测的效果;
基于所述k个待选字段分别对应的互信息和重建损失,从所述k个待选字段中选择一个待选字段,并确定选择出的待选字段的字段得分;
将所述选择出的待选字段从所述待选字段集合移入所述已选字段集合,返回基于所述训练子集、所述已选字段集合和所述待选字段集合,确定所述待选字段集合中每个待选字段对应的互信息的步骤,直至所述待选字段集合为空时,得到所述n个待选字段分别对应的字段得分。
4.如权利要求3所述的方法,其特征在于,所述基于所述训练子集、所述验证子集、所述已选字段集合和所述k个待选字段,确定所述k个待选字段分别对应的重建损失,包括:
对于所述k个待选字段中的第一待选字段,将所述第一待选字段添加至所述已选字段集合,以得到一个候选字段集合,所述第一待选字段为所述k个待选字段中的任一待选字段;
基于所述训练子集和所述候选字段集合,确定所述第一待选字段对应的第二检测模型;
基于所述验证子集和所述候选字段集合,通过所述第一待选字段对应的第二检测模型,确定所述第一待选字段对应的重建损失。
5.如权利要求4所述的方法,其特征在于,所述基于所述训练子集和所述候选字段集合,确定所述第一待选字段对应的第二检测模型,包括:
基于所述候选字段集合确定所述训练子集的参考统计特征,所述训练子集的参考统计特征包括所述训练子集中所述候选字段集合包括的所有字段的数据的统计量;
通过所述训练子集的参考统计特征训练初始检测模型,以得到所述第一待选字段对应的第二检测模型。
6.如权利要求4或5所述的方法,其特征在于,所述基于所述验证子集和所述候选字段集合,通过所述第一待选字段对应的第二检测模型,确定所述第一待选字段对应的重建损失,包括:
基于所述候选字段集合确定所述验证子集的参考统计特征,所述验证子集的参考统计特征包括所述验证子集中所述候选字段集合包括的所有字段的数据的统计量;
将所述验证子集的参考统计特征输入所述第一待选字段对应的第二检测模型,以得到所述验证子集的参考重建特征,所述验证子集的参考重建特征包括所述验证子集中所述候选字段集合包括的所有字段的数据的重建统计量;
基于所述验证子集的参考统计特征和参考重建特征,确定所述第一待选字段对应的重建损失。
7.如权利要求5或6所述的方法,其特征在于,所述配置参数还指示所述候选属性字段中每个属性字段的类别,不同类别的属性字段对应的统计量的种类存在不同。
8.如权利要求1-7任一所述的方法,其特征在于,所述第一超参数包括学习率、训练轮数和隐藏层维度。
9.如权利要求8所述的方法,其特征在于,所述第一检测模型包括输入层、第一隐藏层和第二隐藏层;所述隐藏层维度包括所述第一隐藏层和所述第二隐藏层的维度,所述输入层的维度基于所述目标属性字段包括的字段的数量确定,所述第一隐藏层和所述第二隐藏层的维度基于所述输入层的维度确定。
10.如权利要求1-9任一所述的方法,其特征在于,所述第一检测模型包括编码器、解码器和判别器,所述判别器的参数包括误差阈值;
所述基于所述目标属性字段,通过经参数调优的第一检测模型对所述测试集进行异常检测,以得到所述测试集的异常检测结果,包括:
基于所述目标属性字段确定所述测试集的统计特征,所述测试集的统计特征包括所述测试集中所述目标属性字段的数据的统计量;
将所述测试集的统计特征输入所述编码器,以得到所述测试集的编码特征;
将所述测试集的编码特征输入所述解码器,以得到所述测试集的重建特征;
将所述测试集的统计特征和重建特征输入所述判别器,以按照所述误差阈值确定所述测试集的异常检测结果。
11.一种异常检测装置,其特征在于,所述装置包括:
接收模块,用于接收异常检测任务的配置参数,所述配置参数指示样本集、测试集和候选属性字段,所述样本集包括云平台中用于进行参数调优的日志数据,所述测试集包括所述云平台中待进行异常检测的日志数据,所述候选属性字段为所述云平台的日志数据对应的属性字段;
确定模块,用于基于所述样本集和所述候选属性字段,从所述候选属性字段中确定目标属性字段,所述目标属性字段为用于进行所述异常检测任务的属性字段;
参数调优模块,用于基于所述样本集和所述目标属性字段,对第一检测模型的第一超参数进行调优;
异常检测模块,用于基于所述目标属性字段,通过经参数调优的第一检测模型对所述测试集进行异常检测,以得到所述测试集的异常检测结果。
12.如权利要求11所述的装置,其特征在于,所述候选属性字段包括m个已选字段和n个待选字段,m为不小于0的整数,n为大于0的整数;
所述确定模块包括:
第一确定子模块,用于基于所述样本集、所述m个已选字段和所述n个待选字段,确定所述n个待选字段分别对应的字段得分,所述字段得分表征在所述m个已选字段中添加对应的待选字段后对异常检测效果的提升程度;
第二确定子模块,用于基于所述n个待选字段分别对应的字段得分,从所述n个待选字段中确定出p个待选字段,所述p为不大于n的正整数;
第三确定子模块,用于将所述m个已选字段和所述p个待选字段确定为所述目标属性字段。
13.如权利要求12所述的装置,其特征在于,所述样本集包括训练子集和验证子集;
所述第一确定子模块具体用于:
将所述m个已选字段组成已选字段集合,将所述n个待选字段组成待选字段集合,基于所述训练子集、所述已选字段集合和所述待选字段集合,确定所述待选字段集合中每个待选字段对应的互信息,所述互信息表征对应的待选字段与所述已选字段集合中所有字段之间的相关性;
从所述待选字段集合中选择出互信息最小的k个待选字段,所述k为不大于n的正整数;
基于所述训练子集、所述验证子集、所述已选字段集合和所述k个待选字段,确定所述k个待选字段分别对应的重建损失,所述重建损失表征通过对应的待选字段和所述已选字段集合对所述验证子集进行异常检测的效果;
基于所述k个待选字段分别对应的互信息和重建损失,从所述k个待选字段中选择一个待选字段,并确定选择出的待选字段的字段得分;
将所述选择出的待选字段从所述待选字段集合移入所述已选字段集合,返回基于所述训练子集、所述已选字段集合和所述待选字段集合,确定所述待选字段集合中每个待选字段对应的互信息的步骤,直至所述待选字段集合为空时,得到所述n个待选字段分别对应的字段得分。
14.如权利要求13所述的装置,其特征在于,所述第一确定子模块具体用于:
对于所述k个待选字段中的第一待选字段,将所述第一待选字段添加至所述已选字段集合,以得到一个候选字段集合,所述第一待选字段为所述k个待选字段中的任一待选字段;
基于所述训练子集和所述候选字段集合,确定所述第一待选字段对应的第二检测模型;
基于所述验证子集和所述候选字段集合,通过所述第一待选字段对应的第二检测模型,确定所述第一待选字段对应的重建损失。
15.如权利要求14所述的装置,其特征在于,所述第一确定子模块具体用于:
基于所述候选字段集合确定所述训练子集的参考统计特征,所述训练子集的参考统计特征包括所述训练子集中所述候选字段集合包括的所有字段的数据的统计量;
通过所述训练子集的参考统计特征训练初始检测模型,以得到所述第一待选字段对应的第二检测模型。
16.如权利要求14或15所述的装置,其特征在于,所述第一确定子模块具体用于:
基于所述候选字段集合确定所述验证子集的参考统计特征,所述验证子集的参考统计特征包括所述验证子集中所述候选字段集合包括的所有字段的数据的统计量;
将所述验证子集的参考统计特征输入所述第一待选字段对应的第二检测模型,以得到所述验证子集的参考重建特征,所述验证子集的参考重建特征包括所述验证子集中所述候选字段集合包括的所有字段的数据的重建统计量;
基于所述验证子集的参考统计特征和参考重建特征,确定所述第一待选字段对应的重建损失。
17.如权利要求15或16所述的装置,其特征在于,所述配置参数还指示所述候选属性字段中每个属性字段的类别,不同类别的属性字段对应的统计量的种类存在不同。
18.如权利要求11-17任一所述的装置,其特征在于,所述第一超参数包括学习率、训练轮数和隐藏层维度。
19.如权利要求18所述的装置,其特征在于,所述第一检测模型包括输入层、第一隐藏层和第二隐藏层;所述隐藏层维度包括所述第一隐藏层和所述第二隐藏层的维度,所述输入层的维度基于所述目标属性字段包括的字段的数量确定,所述第一隐藏层和所述第二隐藏层的维度基于所述输入层的维度确定。
20.如权利要求11-19任一所述的装置,其特征在于,所述第一检测模型包括编码器、解码器和判别器,所述判别器的参数包括误差阈值;
所述异常检测模块包括:
第四确定子模块,用于基于所述目标属性字段确定所述测试集的统计特征,所述测试集的统计特征包括所述测试集中所述目标属性字段的数据的统计量;
第一输入子模块,用于将所述测试集的统计特征输入所述编码器,以得到所述测试集的编码特征;
第二输入子模块,用于将所述测试集的编码特征输入所述解码器,以得到所述测试集的重建特征;
第三输入子模块,用于将所述测试集的统计特征和重建特征输入所述判别器,以按照所述误差阈值确定所述测试集的异常检测结果。
21.一种计算设备集群,其特征在于,包括至少一个计算设备,每个计算设备包括处理器和存储器;
所述至少一个计算设备的处理器用于执行所述至少一个计算设备的存储器中存储的指令,以使得所述计算设备集群执行如权利要求1-10任一所述的方法。
22.一种计算机可读存储介质,其特征在于,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-10任一所述的方法的步骤。
23.一种计算机程序产品,其特征在于,所述计算机程序产品内存储有计算机指令,所述计算机指令被处理器执行时实现权利要求1-10任一所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211145851.6A CN117792662A (zh) | 2022-09-20 | 2022-09-20 | 异常检测方法及相关装置 |
PCT/CN2023/103993 WO2024060767A1 (zh) | 2022-09-20 | 2023-06-29 | 异常检测方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211145851.6A CN117792662A (zh) | 2022-09-20 | 2022-09-20 | 异常检测方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117792662A true CN117792662A (zh) | 2024-03-29 |
Family
ID=90387895
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211145851.6A Pending CN117792662A (zh) | 2022-09-20 | 2022-09-20 | 异常检测方法及相关装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117792662A (zh) |
WO (1) | WO2024060767A1 (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110414690A (zh) * | 2018-04-28 | 2019-11-05 | 第四范式(北京)技术有限公司 | 利用机器学习模型执行预测的方法及装置 |
CN109491860A (zh) * | 2018-10-17 | 2019-03-19 | 深圳壹账通智能科技有限公司 | 应用程序的异常检测方法、终端设备及介质 |
CN110197066B (zh) * | 2019-05-29 | 2021-04-20 | 轲飞(北京)环保科技有限公司 | 一种云计算环境下的虚拟机监控方法及监控系统 |
US11886276B2 (en) * | 2020-11-16 | 2024-01-30 | Servicenow, Inc. | Automatically correlating phenomena detected in machine generated data to a tracked information technology change |
CN112395159B (zh) * | 2020-11-17 | 2022-12-13 | 华为技术有限公司 | 一种日志检测方法、系统、设备及介质 |
CN112235327A (zh) * | 2020-12-16 | 2021-01-15 | 中移(苏州)软件技术有限公司 | 异常日志检测方法、装置、设备和计算机可读存储介质 |
-
2022
- 2022-09-20 CN CN202211145851.6A patent/CN117792662A/zh active Pending
-
2023
- 2023-06-29 WO PCT/CN2023/103993 patent/WO2024060767A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024060767A1 (zh) | 2024-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110958220B (zh) | 一种基于异构图嵌入的网络空间安全威胁检测方法及系统 | |
US11336681B2 (en) | Malware data clustering | |
US20210019674A1 (en) | Risk profiling and rating of extended relationships using ontological databases | |
CN105590055B (zh) | 用于在网络交互系统中识别用户可信行为的方法及装置 | |
Kumar et al. | Intrusion Detection System using decision tree algorithm | |
EP3549050B1 (en) | Method and computer product and methods for generation and selection of access rules | |
US20190166150A1 (en) | Automatically Assessing a Severity of a Vulnerability Via Social Media | |
CN113904881B (zh) | 一种入侵检测规则误报处理方法和装置 | |
EP4264499A1 (en) | Multimodal modelling for systems using distance metric learning | |
CN115987544A (zh) | 一种基于威胁情报的网络安全威胁预测方法及系统 | |
CN110598959A (zh) | 一种资产风险评估方法、装置、电子设备及存储介质 | |
CN117294497A (zh) | 一种网络流量异常检测方法、装置、电子设备及存储介质 | |
CN117792662A (zh) | 异常检测方法及相关装置 | |
CN117391214A (zh) | 模型训练方法、装置及相关设备 | |
CN112085590B (zh) | 规则模型的安全性的确定方法、装置和服务器 | |
CN115174193A (zh) | 基于ga算法的数据安全入侵检测方法、装置及设备 | |
CN114866297A (zh) | 网络数据检测方法、装置、电子设备及存储介质 | |
CN113326178A (zh) | 一种异常账号传播方法、装置、电子设备和存储介质 | |
CN114189585A (zh) | 骚扰电话异常检测方法、装置及计算设备 | |
CN115766293B (zh) | 一种风险文件检测方法、装置、电子设备及存储介质 | |
WO2024032032A1 (zh) | 云平台测试方法、装置、服务节点及云平台 | |
Cormode et al. | On signatures for communication graphs | |
US20240241752A1 (en) | Risk profiling and rating of extended relationships using ontological databases | |
CN116468280A (zh) | 一种风险检测预警方法、装置、计算机设备及存储介质 | |
Bozyiğit et al. | MACHINE LEARNING BASED SECURITY ANALYSIS: ALARM GENERATION AND THREAT FORECASTING |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |