CN113190842B - 使用深度递归神经网络的上下文感知特征嵌入和序列日志数据的异常检测 - Google Patents

使用深度递归神经网络的上下文感知特征嵌入和序列日志数据的异常检测 Download PDF

Info

Publication number
CN113190842B
CN113190842B CN202110514951.0A CN202110514951A CN113190842B CN 113190842 B CN113190842 B CN 113190842B CN 202110514951 A CN202110514951 A CN 202110514951A CN 113190842 B CN113190842 B CN 113190842B
Authority
CN
China
Prior art keywords
sequence
network
feature vectors
log
rnn
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
Application number
CN202110514951.0A
Other languages
English (en)
Other versions
CN113190842A (zh
Inventor
H·哈吉米尔萨德
G-T·周
A·布朗斯沃德
N·阿格尔沃
P·钱德拉谢卡
K·R·尼亚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oracle International Corp
Original Assignee
Oracle International Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Oracle International Corp filed Critical Oracle International Corp
Priority to CN202110514951.0A priority Critical patent/CN113190842B/zh
Publication of CN113190842A publication Critical patent/CN113190842A/zh
Application granted granted Critical
Publication of CN113190842B publication Critical patent/CN113190842B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/213Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
    • G06F18/2136Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on sparsity criteria, e.g. with an overcomplete basis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/213Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
    • G06F18/2137Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on criteria of topology preservation, e.g. multidimensional scaling or self-organising maps
    • G06F18/21375Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on criteria of topology preservation, e.g. multidimensional scaling or self-organising maps involving differential geometry, e.g. embedding of pattern manifold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • G06F18/24133Distances to prototypes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/088Non-supervised learning, e.g. competitive learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/16Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using machine learning or artificial intelligence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/121Timestamp

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及使用深度递归神经网络的上下文感知特征嵌入和序列日志数据的异常检测。本文提供了用于基于序列预测将网络流量或操作日志的特征进行上下文嵌入以进行异常检测的技术。在实施例中,计算机具有检测异常网络流的预测性递归神经网络(RNN)。在实施例中,RNN将表示日志消息的稀疏特征向量按上下文转码为密集特征向量,该密集特征向量可以是预测性的或被用于生成预测性向量。在实施例中,图嵌入改善日志踪迹的特征嵌入。在实施例中,计算机从相关日志消息中检测独立的踪迹并对其进行特征编码。这些技术可以通过对网络分组流、日志消息和/或日志踪迹的上下文感知特征嵌入进行异常分析来检测恶意活动。

Description

使用深度递归神经网络的上下文感知特征嵌入和序列日志数 据的异常检测
本申请是国际申请日为2019年7月23日、国家申请号为201980067519.2、发明名称为“使用深度递归神经网络的上下文感知特征嵌入和序列日志数据的异常检测”的进入中国国家阶段的PCT申请的分案申请。
相关申请的交叉引用
以下相关参考文献的全部内容通过引用并入:
·Juan Fernandez Peinador等人于2018年9月5日提交的标题为“MALICIOUSACTIVITY DETECTION BY CROSS-TRACE ANALYSIS AND DEEP LEARNING”的美国专利申请No.16/122,398。
·Zhou Guang-Tong Zhou等人于2018年9月5日提交的标题为“MALICIOUSNETWORK TRAFFIC FLOW DETECTION USING DEEP LEARNING”的美国专利申请No.16/122,664。
·Marc Lanctot等人于2017年5月19日提交的标题为“MEMORY-EFFICIENTBACKPROGATING THROUGHH TIME”的W.I.P.O.专利申请No.PCT/US2017/033698;
·Daniel Neil等人于2016年11月9日提交的标题为“MEMORY CELL UNIT ANDRECURRENT NEURAL NETWORK INCLUDING MULTIPLE MEMORY CELL UNITS”的美国专利申请No.15/347,501;
·Jun Zhang等人于2014年12月2日提交的标题为“AUTO-ENCODER ENHANCEDSELF-DIAGNOSTIC COMPONENTS FOR MODEL MONITORING”的美国专利申请No.14/558,700;以及
·Christopher M.Bishop的“EXACT CALCULATION OF THE HESSIAN MATRIXFORTHE MULTI-LAYER PERCEPTRON”,发表在Neural Computation 4第4期(1992年)第494-501页上。
技术领域
本公开涉及序列(sequence)异常检测。本文给出的是用于基于序列预测将网络流量或操作日志的特征进行上下文(contextual)嵌入以进行异常检测的技术。
背景技术
对于诸如企业和云数据中心之类的基于网络的系统,网络安全是一项重大挑战。这些系统是复杂且动态的,并且在不断演化的网络环境中运行。虽然从网络安全的角度来看越来越重要,但是分析主机之间流动的大量数据以及流量所伴随的分布式处理已超出人类安全专家的工作量。在一些方面,用一些技术或多或少都无法管理流量和活动分析。
网络数据的基本表示是作为网络分组承载的未经处理(raw)网络流量。大多数恶意活动发生在TCP/IP网络模型的应用层中,其中应用在主机之间传递网络分组的流。恶意活动的证据可以或多或少隐藏在分组的网络流内。
大多数现有的工业解决方案充分利用基于规则或签名的技术来检测网络流中的恶意活动。一些技术要求安全专家全面检查已知的恶意流,以从中提取规则或签名。如果新流与任何现有规则或签名匹配,那么它被检测为恶意流。基于规则或签名的技术具有三个明显的缺点:(i)它们只能检测已知的恶意活动;(ii)模式和规则常常很难泛化并且因此经常错过略有改变的恶意活动;以及(iii)对人类安全专家的参与有很大的要求。
幸运的是,大多数网络设备(诸如服务器、路由器和防火墙)以文本日志消息的形式总结了在设备上发生的活动和事件。例如,在Linux服务器上,操作系统为与安全相关的活动(如登录、注销、文件访问等)编写auditd(审核demon)日志。这些操作日志中或多或少隐藏着恶意活动的证据。
日志分析涉及来自各种来源的大量日志数据,即使对于小公司以及尤其是对于具有多个域孤岛、多个外部接口、多个中间件层以及调度和自组织活动的潜在混淆混合的大型企业都是如此。因此,手动日志分析可能是徒劳的。日志数据的大多数条目是无趣的,这使得通读它们像大海捞针一样。此外,手动日志分析取决于人类操作者进行分析的专业知识。
基于规则的日志过滤和分析要求针对每种已知类型的恶意行为的手工制定且易于发生人为错误的规则。该规则集限于已知攻击,并且可能难以手动维持随时间推移的演变以适应新类型的恶意行为。
即使在机器学习的辅助下,手动工作也可以保留。选择信息性、判别性和独立性特征是用于建立有效的分类机器学习模型的关键步骤。特征常常是从个体(individual)日志消息中提取的,因此忽略它们之间所有可能的相互关系并丢失上下文信息。因此,机器学习模型的有效性可能受到严重阻碍。在个体日志消息上训练模型可能误导模型去尝试独立地检测异常日志消息,而不是跨多个日志消息或网络分组的异常活动。
诸如Splunk之类的工具可以为Windows和Linux日志(诸如审计日志)提供搜索和探索能力。Splunk可以预测数值字段(线性回归)、预测类别字段(逻辑回归)、检测数值离群值(分布统计)、检测类别离群值(概率测量)、预测时间序列和聚类数值事件。这种工具的有效使用要求对上下文有深入的了解,条件是用户只能为每个搜索查询选择有限数量的日志消息字段。但是,日志消息解析是静态的,并且是为仪表板工具而非安全工具量身定制的。因此,Splunk无法发现不同日志消息字段或甚至日志消息之间的关系。
弹性(ELK)堆栈是日志收集、转换、规范化和可视化框架,包括对用户选择的日志消息字段的集合进行时间序列分析。ELK的有效使用需要对问题和应用上下文有深入的了解,因为ELK用户的任务是设置时间序列分析管线并分析结果。遗憾的是,诸如ELK之类的工具容易产生误报,这必须由域专家用户过滤掉。
总体而言,Splunk和ELK都附带有检测工具,这些检测工具是静态的并且几乎没有学习能力或没有学习能力。因此,Splunk和ELK的适用性受到限制,因为任何新鲜数据都会触发对整个数据集(Splunk)或最后一个分析窗口(ELK)的重新分析。因此,这两种工具都无法将日志消息关联到有意义的组中,因此会丢失上下文和检测恶意事件的机会。
结构化日志主要由键-值对构成,诸如用于类别字段。在典型的机器学习中,类别/状态变量通常是经由一位有效编码(one-hot encoding)进行向量化的。因此,取决于日志消息中类别字段的总数及其相关联的值,结果所得的特征向量可以非常大,但同时稀疏。另一方面,不存在太多在结果向量中编码的语义或上下文信息。例如,在一位有效编码向量空间中,具有更多共同点的两个状态(例如,字段值)与完全独立的两个状态等距。
需要一种嵌入模型,其不仅提供密集且缩减的特征向量,而且还提供具有更多语义的优化向量。需要新技术,这些新技术不同于对个体日志消息起作用的基本模型或者通过对功能求和或求平均值来简单地将信息聚合到日志消息中。一方面,对于日志消息之间的相互关系有影响的许多网络攻击情形,个体日志消息分析非常薄弱。另一方面,诸如求平均之类的启发式方法忽略序列数据中的一些重要信息,诸如日志消息的排序。
附图说明
在附图中:
图1是描绘实施例中的示例计算机的框图,该示例计算机具有检测异常网络流的预测性递归神经网络(RNN);
图2是描绘实施例中的使用预测性RNN来检测异常网络流的示例过程的流程图;
图3是描绘实施例中的通过对稀疏的未经处理特征向量进行转码来生成密集特征向量的示例计算机的框图;
图4是描绘实施例中的用于通过对稀疏的未经处理特征向量进行转码来生成密集特征向量的示例过程的流程图;
图5是描绘实施例中的警告异常网络流的示例计算机的框图;
图6是描绘实施例中的用于警告异常网络流的示例过程的流程图;
图7是描绘实施例中的使用RNN的递归拓扑来生成分组异常分数的示例计算机的框图,可以从该分组异常分数合成流异常分数;
图8是描绘实施例中的用于使用RNN的递归拓扑来生成分组异常分数的示例过程的流程图,可以从该分组异常分数合成流异常分数;
图9是描绘实施例中的基于给定通信协议的通用分组的分解(anatomy)来稀疏地对特征进行编码的示例计算机的框图;
图10是描绘实施例中的由计算机配置和训练的示例RNN的框图;
图11是描绘实施例中的具有RNN的示例计算机的框图,该RNN将表示日志消息的稀疏特征向量按上下文(contextually)转码为可以预测或用于生成预测性向量的密集特征向量;
图12是描绘实施例中的用于使用RNN将表示日志消息的稀疏特征向量按上下文转码为用于生成预测性向量的密集特征向量的示例过程的流程图;
图13是描绘实施例中的用于根据上下文对相同的稀疏特征向量不同地进行密集编码的示例过程的流程图;
图14是描绘实施例中的具有训练线束(harness)以改善密集编码的示例计算机的框图;
图15是描绘实施例中的用于改善密集编码的训练线束的示例过程的流程图;
图16是描绘实施例中的表示在一个或多个互操作计算机上发生的计算机系统活动的示例活动图的示意图;
图17是描绘实施例中的使用图嵌入来改善日志跟踪的特征嵌入的示例计算机的框图;
图18是描绘实施例中的用于图嵌入以改善日志跟踪的特征嵌入的示例过程的流程图;
图19是描绘实施例中的包含相关踪迹(trace)的示例日志的框图,可以从该相关踪迹创建时间上修剪的子图;
图20是描绘实施例中的示例计算机的框图,该示例计算机具有可训练的图嵌入器和可训练的异常检测器,可训练的图嵌入器生成上下文特征向量,而可训练的图嵌入器消耗上下文特征向量;
图21是描绘实施例中的从相关的日志消息中检测独立踪迹并对其进行特征编码的示例计算机的框图;
图22是描绘实施例中的用于从相关日志消息中检测独立踪迹并对其进行特征编码的示例过程的流程图;
图23是描绘实施例中的示例日志的表格图,该示例日志包含半结构化操作(例如,诊断)数据,可以从中解析和提取日志消息及其特征;
图24是图示可以在其上实现本发明的实施例的计算机系统的框图;
图25是图示可以被用于控制计算系统的操作的基本软件系统的框图。
具体实施方式
在下面的描述中,出于解释的目的,阐述了许多具体细节以便提供对本发明的透彻理解。但是,将显而易见的是,可以在没有这些具体细节的情况下实践本发明。在其它情况下,以框图形式示出了众所周知的结构和设备,以避免不必要地混淆本发明。
本文根据以下概要来描述实施例:
1.0总体概述
2.0示例计算机
2.1网络分组
2.2特征提取和编码
2.3递归神经网络
3.0异常检测过程
4.0上下文编码
4.1特征嵌入的好处
4.2非监督式训练
5.0上下文编码过程
6.0网络流警报
6.1异常分数
6.2未来的证明
7.0警报过程
8.0序列预测
8.1分组异常分数
9.0序列预测过程
10.0分组分解
10.1网络流解复用
11.0训练
12.0嵌入记录的特征
13.0日志特征嵌入过程
14.0上下文编码含义
15.0训练线束
15.1用于重构的解码
15.2测得的误差
16.0利用重构的训练
17.0活动图
18.0图嵌入
18.1修剪
18.2日志踪迹
19.0图嵌入过程
20.0踪迹聚合
21.0可训练的异常检测
22.0踪迹组成
22.1组成准则
23.0踪迹检测过程
24.0声明式踪迹检测
24.1声明式规则
24.2示例操作
25.0机器学习模型
25.1人工神经网络
25.2用于神经网络的说明性数据结构
25.3反向传播
25.4深度上下文概述
26.0硬件概述
27.0软件概述
28.0云计算
1.0总体概述
本文提供了用于基于序列预测将网络流量或操作日志的特征进行上下文嵌入以进行异常检测的技术。这些技术可以通过对网络分组流、日志消息和/或日志跟踪的上下文感知特征嵌入进行异常分析来检测恶意活动。
在实施例中,计算机具有检测异常网络流的预测递归神经网络(RNN)。计算机生成与网络分组的序列对应的实际密集特征向量的序列。实际密集特征向量的序列的每个特征向量表示网络分组的序列中的相应网络分组。RNN基于实际密集特征向量的序列来生成表示网络分组的序列的预测的密集特征向量的序列。基于预测的密集特征向量的序列来处理网络分组的序列。
在实施例中,RNN将表示日志消息的稀疏特征向量按上下文转码为密集特征向量,该密集特征向量可以是预测性的或用于生成预测性向量。计算机如下按照相关日志消息的序列来处理每个日志消息。从日志消息中提取特征,以生成表示特征的稀疏特征向量。稀疏特征向量作为激励输入施加到编码器RNN的相应步骤中。从编码器RNN输出相应的嵌入式特征向量,该嵌入式特征向量基于特征和在相关日志消息的序列中较早出现的一个或多个日志消息。处理从编码器RNN输出的一个或多个嵌入式特征向量,以确定应当在相关日志消息的序列中出现的预测的下一个相关日志消息。
在实施例中,图嵌入改善日志踪迹的特征嵌入。计算机接收独立特征向量。每个独立特征向量按上下文发生如下。独立特征向量表示相应的日志踪迹。相应的日志踪迹表示相应的单个动作。相应的日志踪迹基于由相应的单个动作生成的一个或多个日志消息。相应的日志踪迹指示一个或多个网络身份。
图嵌入需要生成所连通图的一条或多条边,该连通图包含从由特定独立特征向量表示的特定日志踪迹生成的特定顶点。每条边连接连通图的两个顶点,这两个顶点是由两个相应的日志踪迹生成的,这两个相应的日志踪迹由两个相应的独立特征向量表示。两个相应的日志踪迹指示相同的网络身份。基于独立特征向量生成嵌入式特征向量,这些独立特征向量表示从中生成连通图的顶点的日志踪迹。基于嵌入式特征向量,特定的日志踪迹被指示为异常。
在实施例中,计算机从相关的日志消息中检测独立的踪迹并对其进行特征编码。从每个日志消息中提取键-值对。基于其键-值对满足分组准则的日志消息的子集来检测表示单个动作的踪迹。基于来自日志消息的子集中的键-值对来生成表示踪迹的可疑特征向量。基于包括可疑特征向量的一个或多个特征向量,异常检测器指示可疑特征向量是异常的。
2.0示例计算机
图1是描绘实施例中的示例计算机100的框图。计算机100具有检测异常网络流的预测性递归神经网络(RNN)。计算机100可以是一个或多个计算机,诸如嵌入式计算机、个人计算机、机架服务器(例如,刀片、大型机、虚拟机)或能够执行人工神经网络(ANN)(诸如具有双曲函数、微分方程和诸如乘法之类的矩阵运算)的任何计算设备。示例ANN实施方式和技术将在下面的“人工神经网络概述”部分中进行讨论。
图1示出了从左向右流动的数据,数据变换发生在工作流的每个阶段。序列110、130和150可以作为数据结构驻留在计算机100的随机存取存储器(RAM)内。原始(original)序列110包含在网络流中顺序出现的网络分组121-123。网络流可以在两个计算机(未示出)之间形成对话或其它流。
2.1网络分组
网络分组是传输的最小单元,诸如网络层的协议数据单元(PDU),诸如互联网协议(IP)数据报或数据链路层的数据帧(诸如以太网帧)。分组121-123中的每一个是或曾经是实况(live)分组,该分组横穿由网络元件监视的网络链路(未示出)。在实施例中,计算机100是分组121-123通常流经的实况网络路由内的网络元件。例如,计算机100可以是交换机、路由器、网桥、中继器或代理。
在实施例中,计算机100是在分组121-123的路由之外的实况网络元件。例如,网络流可以被分叉/拆分/发送以或多或少实时地将分组121-123的副本馈送给计算机100,同时原始分组进一步在拆分的相反分叉下传输。在实施例中,计算机100是离线的,使得实况网络流不可用,并且先前记录了原始序列110以进行延迟的(例如,调度的)分析。例如,原始序列110可以持久地假脱机(spool)到文件或数据库中。
在实施例中,网络流发生在同时包含多个流的网络流量内。例如,可以对数据链路进行多路复用(例如,在时间上,诸如具有时隙)。例如,分组121-123在原始序列110内看起来是连续的,但是在实况传输期间它们可能已经与其它流的其它分组(未示出)交织了。
在实施例中,计算机100接收混合流并将它们解开(即,解复用)为个体流,以进行记录和/或分析。例如,每个分组可以带有可以一起识别流的发送者的标识符和接收者的标识符。每个分组可以带有附加标识符(诸如用于会话、应用、账户或委托人(例如,最终用户)),也可能需要这些附加标识符来识别流。因此,个体分组可以与相同或不同的流相关。在实施例中,计算机100接收解开(即,分离)的流或仅接收一个流。在任何情况下,原始序列110和分组121-123都是同一个(例如,未缠结)流的一部分。
2.2特征提取和编码
在操作中,计算机100将原始序列110直接或间接地转换成观察到的(observed)序列130,该序列以递归神经网络(RNN)170接受作为输入刺激的格式表示分组121-123。分组121-123中的每一个可以被单独地转换成相应的特征向量141-143。在所示的实施例中,特征向量141-143被密集地编码,使得特征向量的大部分或所有位表示网络分组的有意义的属性。但是,密集编码不需要是离散的,使得特定的位总是表示特定的特征。
在实施例中,特征提取和编码被用于从原始序列110直接生成观察到的序列130,诸如利用预定义的语义映射。在实施例中,中间编码(未示出)发生在原始序列110和观察到的序列130之间,诸如稀疏特征编码。稀疏编码和后续的密集转码在本文后面讨论。
2.3递归神经网络
在操作中,专门对网络流进行编码的观察到的序列130,并且RNN 170消耗观察到的序列130。与常规ANN不同,RNN是有状态的。RNN自然适合于分析相关项目的序列,包括识别序列内项目的有趣排序。因此,RNN自然地实现上下文分析,这对于识别异常可以至关重要。例如,即使流的所有分组单独看起来是正常,网络流也可能是异常的。例如,分组的一种排序可以是异常的,而同一分组的另一种排序可以是正常的,这可以是训练RNN 170以促进检测的内容。
在操作中,RNN 170输出预期与原始序列110中的下一个分组的特征向量观察到的序列130匹配的预测的序列(predicted sequence)150的预测的下一个特征向量。对于观察到的序列,诸如130,RNN 170输出对应的预测的序列150。计算机100可以将特征向量序列130和150彼此进行比较以检测它们是否匹配(例如,按位),从而实现上下文敏感性,诸如结合关于周围(即,时间上或语义上相关的)分组的信息,而不只是隔离中的当前分组。
例如,当用分组121的实际特征向量141激活时,RNN 170可以生成预测特征向量162作为由实际特征向量142表示的下一个分组122的预测的下一个特征向量。因此,可以基于先前的分组序列(例如,121)来预测分组122。计算机100可以检测到特征向量142与162不匹配,并且由此识别出网络流是异常的,因为发生了与期望的分组不同的分组。RNN的操作将在本文后面进一步讨论。示例RNN实施方式和技术将在下面的“深度上下文概述”部分中进行讨论。
RNN 170可以具有基于神经元分层和重复单元(即,细胞)的各种内部体系架构,其中每个细胞由一些专门的和经特殊布置的神经元组成,诸如具有长短期记忆(LSTM)网络。在Python实施例中,诸如Keras之类的第三方库可以提供具有或不具有LSTM的RNN。在Java实施例中,deeplearning4j可以被用作第三方库。在C++实施例中,可以使用TensorFlow。在实施例中,图形处理单元(GPU)或其它单指令多数据(SIMD)基础设施(诸如向量处理器)可以提供对RNN 170的训练和/或生产使用的硬件加速。
3.0异常检测过程
图2是描绘实施例中的使用预测性RNN来检测异常网络流的计算机100的流程图。参考图1来讨论图2。
步骤202生成与网络分组的序列对应的实际密集特征向量的序列。例如,计算机100最初接收网络分组121-123的原始序列110(或获得其副本)。可以批量获得网络分组121-123,或者自然地,分组可以以各种时延单独到达。原始序列110直接或间接地被转换成实际密集特征向量141-143的观察到的序列130,这些特征向量以RNN 170接受为输入激励的格式表示分组121-123。在实施例中,每个网络分组被单独地转化成相应的实际密集特征向量。
在步骤204中,RNN基于实际密集特征向量的序列来生成表示网络分组的序列的预测的密集特征向量的序列。例如,RNN 170输出预测的密集特征向量161-163的预测的序列150。密集编码的特征向量的优点包括ANN的加速和尺寸减小,这将在下面的“特征嵌入的好处”部分中进行讨论。
在步骤206中,基于预测的密集特征向量的序列来处理网络分组的序列。例如,可以将预测的序列150与观察到的序列130进行比较。可以将每个预测的密集特征向量161-163单独地与相应的实际密集特征向量141-143进行比较。序列内密集特征向量的任何个体失配或多个失配都可以指示异常。因此,可以基于序列内密集特征向量的初始子序列来检测异常。例如,可以在接收网络分组123之前检测密集特征向量142与162之间的异常失配。
可以基于预测的序列150是否异常来进一步处理原始序列110。例如,计算机100可以发出警报、对原始序列110执行进一步的分析和/或监视、隔离原始序列110、终止网络连接、或锁定账户。如果预测的序列150不是异常的,那么原始序列110可以被中继到原始预期的接收者。
4.0上下文编码
图3是描绘实施例中的示例计算机300的框图。计算机300通过对稀疏的未经处理特征向量进行转码来生成密集特征向量。计算机300可以是计算机100的实施方式。
特征编码可能影响回归的准确性,诸如异常检测。朴素、简单或直截了当的编码(诸如稀疏特征编码)倾向于将所有特征都视为同等重要,这无法消除来自未经处理数据(诸如网络分组和流)的噪声。例如,一些特征可能只是让人分心,这可能意味着所谓的“维度灾难”,这可能造成过度拟合。
中间序列350的未经处理特征向量361-363是相应网络分组321-323的稀疏直接编码。稀疏编码的优点是证明在转码为用于下游深度分析的密集编码之前从稀疏编码开始(诸如通过RNN(未示出))是合理的。稀疏编码的主要优点是它可以进行转码并且不需要进行大量的(例如,熟练的)设计。例如,稀疏编码不需要了解特征之间的自然(并且可能反直觉的)关系。实际上,在稀疏编码期间可以或多或少地避免诸如特征选择之类的高级技术。稀疏编码的技术和机制将在下文中针对图9进行讨论。
4.1特征嵌入的好处
编码到减小的(即,更密集的)空间中可能是有损的,这实际上可以是有利的,诸如维度减小。如果嘈杂的特征不被强调(例如,丢失),并且重要的特征被强调(例如,被放大或至少被保留),那么有损的密集编码实际上可以提高异常检测的准确性。例如,未经处理特征向量361可以包含数千个特征。而密集特征向量341可以仅包含数百个最有趣的特征。因此,从容易获得的稀疏的中间序列350到优化的密集的观察到的序列330的转码可以提高消耗观察到的序列330的RNN(未示出)的准确性。这种转码由编码器390执行。
编码器390将每个未经处理特征向量361-363单独(即,一次一个)转码为相应的密集特征向量341-343。因为转码不需要考虑时间上下文(即,流的多个分组之间的关系),所以编码器390可以是无状态的。在实施例中,编码器390包括人工神经网络(ANN),诸如用于深度学习的多层感知器(MLP)。在所示的实施例中,编码器390具有至少神经层371-372的堆叠,相邻层的神经元被完全连接以用于深度学习。更多的层和连接有助于MLP识别更多的模式以及模式之间的微妙区别。从这个意义上讲,深度意味着许多层(未示出)。
与中间序列350的稀疏编码相比,观察到的序列330的密集编码可以实现多种性能改进。密集编码可以强调语义上下文(诸如特征之间的关系)该语义上下文可以与离散的(即,分离的)特征同等重要或更重要。密集编码可以强调特征选择,诸如不强调(例如,丢弃)嘈杂的特征。
诸如当特定特征取决于诸如特征的组合之类的上下文是相关的或不相关的时,上下文和特征选择可以相交。因此,密集编码可以具有标签(即,表示特征和值的组合的符号)的最佳词汇表,虽然密集(即,减少了),但实际上基于复杂的和/或大量的启发式方法,这些启发式方法暗示了ANN的静态连接权重。
4.2非监督式训练
在监督式训练期间,可以向(神经或非神经)可训练的编码器390给予预定义的标签。遗憾的是,标签是特定于域和应用的。因此,就研发(R&D)时间和专业知识而言,定义标签可能是昂贵的设计工作。理论上,可以存在无限的变化和/或种类的可能异常,包括训练期间未知的异常。标记所有可能的异常可能是不可能的。幸运的是,通过对编码器390进行非监督式训练,可以避免先验标记。本文讨论的所有机器学习模型都适用于非监督式训练。
在实施例中,编码器390是自动编码器,其是被训练为编码器/解码器(编解码器)的非监督式深度学习MLP(或多个专用MLP的堆栈)。编解码器将MLP解码器堆叠在MLP编码器的下游。在实施例中,编码器390仅是自动编码器的MLP编码器层。例如,可以将自动编码器作为完整的MLP堆栈进行训练或再训练,然后分解成层的子集以隔离编码器MLP,以进行编码器390的生产部署。在本文稍后讨论的实施例中,自动编码器被拆分为编码器390和解码器,然后在编码器390的下游和解码器的上游堆叠(即,插入)预测性RNN。
在自动编码器的非监督式训练期间,用于密集编码的词汇自发地出现并被学习。归因于编解码器可以被配置用于(尤其是用于训练)的反馈回路,自动编码器学习密集的词汇表(即,或多或少没有噪声和填补),但不一定是最密集的。对于自动编码器,最优性基于准确性,其中密度可以是重要因素,但并非唯一如此。密集编码、转码和自动编码将在本文后面进一步讨论。自动编码器的示例实施方式和技术(包括训练)将在下面的“深度训练概述”部分中进行讨论。
5.0上下文编码过程
图4是描绘实施例中的计算机300通过对稀疏的未经处理特征向量进行转码来生成密集特征向量的流程图。参考图3来讨论图4。
在步骤402之前或期间,接收网络分组321-323的原始序列310。步骤402生成与网络分组的序列对应的实际未经处理特征向量的序列。例如,网络分组321-323被直接编码为中间序列350的相应稀疏的未经处理特征向量361-363。稀疏编码的技术和机制将在下文中针对图9进行讨论。
步骤404将实际未经处理特征向量的序列编码为实际密集特征向量的序列。例如,编码器390可以是自动编码器(如本文稍后论述)或者是将每个未经处理特征向量361-363单独(即,一次一个)转码为相应的密集特征向量341-343的其它MLP。
步骤406是示例性的。除了在步骤406中描绘的动作之外,其它实施例可以代替地执行替代动作。步骤406将实际密集特征向量的序列作为输入刺激应用于预测性RNN,诸如用于异常检测。例如,观察到的序列330也可以是应用于图1中的RNN 170以生成预测的序列150的观察到的序列130,该预测的序列150可以与观察到的序列130/330进行比较以进行异常检测。
6.0网络流警报
图5是描绘实施例中的示例计算机500的框图。计算机500警告异常的网络流。计算机500可以是计算机100的实施方式。
计算机500包含专用MLP的完整堆栈505。虽然完整堆栈505实际上并未检测到异常,但它确实进行了可以促进下游异常检测的序列预测,如下所示。
完整堆栈505基本上由它们之间的转码器561-562和RNN 570组成。转码器561-562一起串联地用作编解码器,以在内部使用密集编码的完整堆栈505与提供并预期未经处理的(即,稀疏的)编码的计算机500的其余部分之间进行调解。数据如下流入和流出完整堆栈505。
计算机500将网络分组511-512的原始序列510稀疏编码为实际未经处理特征向量521-522的中间序列520,编码器561将其转码为实际密集特征向量331-332的观察到的序列530。RNN 570消耗观察到的序列530,该RNN 570响应性地生成预测的密集特征向量541-542的预测的序列540,解码器562将其反向转码回预测的未经处理(即,稀疏)特征向量551-552的预期序列550。
在实施例中,原始序列510被缓冲或以其它方式记录,使得数据可以作为来自原始序列510的一批向量被变换并沿着示出的回路路径传送到预期序列550。在(例如,流传输)实施例中,每个个体网络分组或对应的特征向量被单独地变换并沿着示出的数据路径传送。例如,分组511可以遍历示出的数据路径,以在下一个分组实际存在(即,由源网络元件生成和输出)之前将预期的下一个分组的预测的特征向量输出到预期序列550中。对于实时到达计算机500的每个分组,完整堆栈505可以已经对这个分组进行了预测(即,未经处理特征向量),该预测可以被用于通过比较来评估实际接收到的分组的可疑程度。
6.1异常分数
异常检测可以如下发生。计算机500可以将预测的预期序列550与实际接收到的中间序列520进行比较。序列520与550之间的内容差可以被测量为异常分数580。本文的后面是将每个预测的未经处理特征向量与对应的实际未经处理特征向量单独进行比较并使用诸如均方误差之类的技术来计算异常分数580的实施例。
如果异常分数580超过阈值590,那么检测到异常并且可以发出警报595。警报595可以被记录和/或以交互方式向人工网络管理员发出。警报595可以立即或延迟分析安全问题和隐患。警报595可以自动或间接地引起安全干预,该干预可以在涉及违规网络流的一方、应用或计算机上施加各种对策,诸如审核、增加的监视和/或中止权限或能力。
在逐步地(即,随着每个分组到达)分析网络流的流传输实施例中,可以在接收或分析整个分组流之前越过阈值590。例如,流的分组的子序列可能足以检测异常。因此,实况对策可以实时发生,诸如触发更深层的分析或监视,诸如深度分组检查,或终止可疑网络连接。
警报595可以包含有关异常、有问题的分组、原始序列510或有关可疑网络流的元数据的详细信息。警报595至少指示异常,该异常通常表示网络攻击(例如,入侵)。取决于其复杂程度(例如,层的深度),对于各种类型或样式的攻击,RNN 570做出的预测可以有所不同(即,异常)。在实施例中,RNN 570针对一种、一些或所有种类的攻击做出不同的预测,包括超文本传输协议(HTTP)拒绝服务(DoS)、蛮力安全外壳(SSH)或简单网络管理协议(SNMP)反射放大。
6.2未来的证明
由于对于或多或少的通用分组序列预测的非监督式训练,RNN 570可以帮助揭示在训练RNN 570时可能不存在的新型攻击期间出现的异常。因此,基于监督的训练或规则库,RNN 570可以实现超越竞争对手技术的多功能性。因此,RNN 570或多或少可以成为未来的证明,因为其具有示出不熟悉模式的自然趋势,这是固有地令人惊讶的。
因为RNN 570的多功能性,RNN 570可以在生产环境中用于分析有些不透明的应用的网络流。例如,即使发出网络流量的应用是缺少源代码和/或文档或不熟悉的黑匣子(即,不透明)应用,RNN 570仍然有效。
而且由于RNN 570的多功能性,RNN 570可以被放置在网络拓扑的各个角落。例如,RNN 570可以驻留和/或分析发生在防火墙外部或非军事区(DMZ)内部的流。RNN 570可以实时分析第三方之间的流,诸如用于由运营公司进行中间人检查,可能是通过端口镜像或线缆拆分。
可以使用诸如分组捕获(pcap)和/或基于终端的Wireshark(TShark)之类的工具来获得分组。分组捕获文件可以由诸如传输控制协议转储(tcpdump)之类的工具发出。可以根据本文中的技术来分析包含来自这些工具中的任何工具的记录分组的文件,诸如用于异常检测。
7.0警报过程
图6是描绘实施例中的计算机500警告异常网络流的流程图。参考图5来讨论图6。
在步骤602之前或期间,RNN 570生成预测的密集特征向量541-542的预测的序列540,其表示已预测的网络分组511-512的原始序列510。步骤602通过对预测的密集特征向量的序列进行解码来生成预测的未经处理特征向量的序列。例如,解码器562可以是将每个密集特征向量541-542单独(即,一次一个)转码为相应的预测的未经处理特征向量551-552的自动解码器(每个自动编码器,如本文稍后讨论的)或其它MLP。
基于实际未经处理特征向量的序列和预测的未经处理特征向量的序列,步骤604为网络分组的序列生成异常分数。例如,计算机500可以将所预测的预期序列550与实际接收的中间序列520进行比较。序列520与550之间的内容差可以被测量为异常分数580。本文的后面是将每个预测的未经处理特征向量与对应的实际未经处理特征向量单独进行比较并使用诸如均方误差之类的技术来计算异常分数580的实施例。
步骤606还基于异常分数来处理网络分组的序列。例如,当异常分数580超过阈值590时,检测到异常,这可以使得提高警报595。如果网络分组511-512的原始序列510不是异常的,那么可以正常地处理原始序列510,诸如通过将序列510中继给下游消耗者。
8.0序列预测
图7是描绘实施例中的示例计算机700的框图。计算机700使用RNN的递归拓扑来生成分组异常分数,可以根据该分组异常分数来合成流异常分数。计算机700可以是计算机100的实施方式。
RNN 720包含多个递归步骤,诸如721-723。每个递归步骤可以包含具有一定数量的选通状态的MLP(未示出),根据控制门,这些选通状态是有状态的神经排列,可以按需锁存或擦除。例如,选通状态可以基于长短期记忆(LTSM)。每个递归步骤721-723与顺序的时间步长对应,诸如对于网络流的每个分组有一个。在实施例中,RNN 720具有与最长预期网络流中的分组一样多的递归步骤,该网络流通常具有少于100个分组。
RNN 720以两种方式(未示出)感知上下文(即,序列)。首先,选通状态促进有状态的(即,历史敏感的)处理。其次,前一个递归步骤通知(即,激活)其连续的下一个递归步骤,从而通过逻辑时间累积和传播历史。例如,递归步骤721可以具有激活递归步骤722的连接(未示出)。因此,每个递归步骤(第一步721除外,因为它没有先前的步骤)从以下两个源接收输入:a)对应的观察到的特征,诸如712,以及b)通过先前的递归步骤进行的交叉激活。
交叉激活促进潜在地跨所有递归步骤(例如,整个流)累积和传播历史记录,使得当前(例如,最后一个)分组的处理可能受到流中的一些或所有先前分组的影响。RNN 720适用于各种实现递归的内部实施方式拓扑。在实施例中,每个递归步骤具有其自己的MLP。在各种实施例中,每个步骤的MLP具有:a)其自己的个性化的连接权重,或b)所有步骤共享的权重的副本。在实施例中,所有步骤共享相同的MLP,使得步骤之间的交叉激活要求在共享的MLP内呈现循环的后向(即,反向)边缘。
不管RNN 720的内部拓扑如何,作为黑匣子的RNN 720的输入和输出都如下操作。实际序列710的每个观察到的特征711-713包括密集特征向量,该密集特征向量作为刺激输入被应用于相应的递归步骤721-723。例如,观察到的特征711可以表示网络流的第一分组(未示出)。同样,递归步骤721可以是RNN 720的第一递归步骤。因此,观察到的特征711被应用于递归步骤721。
实际序列710可以是一对(未示出)不同地编码的并行序列,诸如稀疏/未经处理序列和对应的经转码的密集序列。密集序列的密集特征向量被应用于递归步骤721-723。
同样,预测的序列730可以是一对(未示出)并行序列,诸如预测的密集序列和对应的解码的稀疏序列。RNN 720输出密集序列。例如,递归步骤721输出预测的特征731。水平线将观察到的特征712与预测的特征731相关,这暗示了偏斜(skew)。
例如,预测的特征731是预测的序列730中的第一向量,而相关的观察到的特征712是实际序列710中的第二向量。这是因为(从第一分组生成的)第一预测实际上预测了下一个(即,第二个)分组。这个偏斜在图7中被明确地描绘,但是在本文的示出了没有偏斜的输入和输出向量的并行序列的其它图(例如,图1)中可以暗示(即,未示出)。
将观察到的特征712与预测的特征731相关的水平线表暗示:可以比较向量712和731,并且在不异常的情况下应当或多或少地匹配。偏斜的含义如下。每个序列710和730的一个向量是不相关的并且不能与对应的向量相比。这包括输入序列710的第一个向量711和输出序列730的最后一个向量733。这是因为RNN 720:a)不预测第一个分组,并且b)输出完全是推测性的(即,虚构的)最后一个预测,因为例如当网络流结束时,不存在实际的下一个分组要接收。
8.1分组异常分数
如水平线所示,所有其它向量均要成对进行相关和比较。每个个体比较都需要一对相反的向量,诸如与731比较的712。诸如根据预测误差计算(诸如均值平方),可以测量每个比较的适合度(即,紧密度)或缺乏适合度作为分组异常分数,诸如741-742。例如,如果向量712与731最相似,并且向量713与732是发散的(即,差异的),那么分组异常分数742将超过分组异常分数741。
即使个体分组异常评分可以清楚地指示哪个个体分组更令人惊讶,个体分组异常分数在操作级别上也无需具有可操作安全性关联。对于可操作安全性,重要的是流异常分数750,它将分组分数741-742积分到总分数中,该总分数反映整个网络流是否异常。不同的实施例可以使用分组异常分数741-742的各种数学积分来得出流异常分数750。例如,分数750可以是分数741-742的最大值(或最小值)或均值。
9.0序列预测过程
图8是描绘实施例中的计算机700使用RNN的递归拓扑来生成分组异常分数的流程图,可以从该分组异常分数合成流异常分数。参考图7来讨论图8。
对于实际密集特征向量的序列(诸如实际序列710)的每个特征向量,重复步骤801-804。步骤801将当前特征向量应用于递归步骤的序列中的对应递归步骤。例如,观察到的特征711作为刺激输入被应用于RNN 720的递归步骤721。因为RNN 720是有状态的,因此递归步骤721-723可以在不同时间接收它们相应的输入,诸如顺序地并且可能被各种时延分开。
在步骤802中,对的递归步骤输出下一个预测的密集特征向量,该下一个预测的密集特征向量近似于在实际密集特征向量的序列中在当前特征向量之后出现的下一个实际密集特征向量。换句话说,RNN 720可能在实际接收下一个向量之前就预测序列中的下一个向量。例如,递归步骤721生成预测的特征731,作为预期的观察到的特征712的近似值,而不管是否实际上已经接收到观察到的特征712。
将实际密集序列与预测的密集序列进行比较的实施例可以跳过步骤803,诸如当序列710和730都密集时。诸如当序列710和730都是未经处理/稀疏的时,将实际未经处理/稀疏序列与预测的未经处理/稀疏序列进行比较的实施例(如图8中所示)不应当跳过步骤803。例如,示为序列710和730的内容实际上各自可以是一对序列(未示出),其中一个是未经处理/稀疏的,另一个是密集的,该对中的一个序列是从另一个序列转码的,如在本文其它地方讨论的。
例如,RNN 720可以是接受密集向量作为输入并生成密集向量作为输出的唯一部件。但是,计算机700的其余部分可以预期未经处理/稀疏向量。因此,步骤803通过对下一个预测的密集特征向量进行解码来生成预测的未经处理特征向量的序列中的下一个预测的未经处理特征向量。例如,解码可以在递归步骤721和预测的特征731之间发生。同样,编码可以在观察到的特征711和递归步骤721之间发生。
步骤804将下一个预测的未经处理特征向量与下一个实际的未经处理特征向量进行比较,以生成用于下一个实际分组的个体异常分数。实施例可能需要在执行步骤804之前等待下一个实际的未经处理特征向量到达。例如,将预测的特征731与观察到的特征711进行比较以生成分组异常分数741。
在对序列中的每个特征向量执行步骤804之后,已经计算出给定网络流的所有分组异常分数741-742。如果分组异常分数741-742的个体分数过高(即,即使尚未接收到一些实际序列710和/或尚未计算一些分组异常分数,也清楚地指示异常),那么实施例可以停止重复步骤801-804并且跳过步骤805。
步骤805基于个体分组异常分数来计算网络流的总体异常分数。例如,流异常分数750可以是分组异常分数741-742的算术和。虽然仅示出了两个分组异常分数,但是流可以具有许多分组和分组分数。
如果流异常分数750是增量计算的,诸如在不同时间计算每个分组异常分数时,诸如在分组作为流实时到达并由各种时延分开时,那么实施例可以维持/更新流异常分数750作为特定网络流期间的运行总计。实施例可以在每次流量异常分数750的更新期间检测流量异常分数750是否超过阈值(未示出)。因此,在实施例中,可以在所有实际序列710已经到达之前将实际序列710检测为异常。
10.0分组分解
图9是描绘实施例中的示例计算机900的框图。计算机900基于给定通信协议的一般分组的分解来稀疏地对特征进行编码。计算机900可以是计算机系统100的实施方式。
未经处理特征向量940或多或少是来自分组910的数据的直接编码。虽然被示为不符合任何特定协议,但是通常预期分组910符合给定的通信协议。各种实施例预期分组910是互联网协议(IP)、传输控制协议(TCP)、用户数据报协议(UDP)、超文本传输协议(HTTP)或简单网络管理协议(SNMP)的数据报。
在未示出的实施例中,通过从分组910中复制单个位串来填充未经处理特征向量940。在实施例中,复制的位的单个串从分组910的第一位开始。在实施例中,未经处理特征向量940具有固定尺寸(即,位的量)。在实施例中,复制的位的单个串被填补或截断以匹配未经处理特征向量940的固定尺寸。
在预期给定协议的分组的实施例中,分组910包含预定义的字段,诸如有效载荷929,以及协议元数据,诸如报头字段920-928。在具有特征的语义映射的实施例中,分组910的特定字段在未经处理特征向量940内的特定偏移量处被编码为特定语义特征。
通常,为未经处理/稀疏特征向量中的每个编码的特征保留特定的固定位子集。例如,分组910具有作为分组报头字段的目的地地址921,该目的地地址921被直接复制到稀疏特征向量940的字节5-8中。在实施例中,每个图例1950忽略无关字段(即,不被编码到未经处理特征向量940中),诸如校验和922。由于计算机900能够以离散字段或整个未经处理字节串的形式从所有分组910提取内容,所以本文给出的技术可以实现、补充或以其它方式与深度分组检查结合,可能伴随端口镜像或线缆拆分。
在实施例中,根据数据转换或数据变换而不是诸如具有数值范围归一化(诸如单位(即,0-1)范围)或压缩年份(诸如被编码为零年的1970)的直接副本,将分组910的字段编码为未经处理特征向量940。在实施例中,分组910可以包含具有枚举值的类别字段,诸如928。例如,类别928可以具有字符串文字的值范围,该字符串文字可以作为密集整数或稀疏位图编码到未经处理特征向量940中(诸如利用一位有效编码,其在值范围内为每个文字保留一位)。
一位有效编码由位图960例示,该位图将类别928编码为未经处理特征向量940的字节14-15。例如,如果类别928是月并且值是四月(即,一年中的第四个月),那么位图960的位4被设置并且位1-3和5-12被清除。自然排序(即,可排序)的类别(例如,日历上的月)应当被编码为整数以保留排序。例如,可以将十二个月中的一个编码为半字节(即,具有16个可能值的4位整数)。自然无序的类别(诸如调色板的颜色)应当进行一位有效编码。
10.1网络流解复用
在解开多个交织的网络流的实施例中,报头字段的组合可以识别流。例如,流可以通过其一对端点来识别。例如,目的地地址921和目的地端口924的组合可以识别目的地端点,而分组910的其它(例如,类似)字段识别源端点。在实施例中,端点标识符由网络堆栈的传输层使用,使得端点标识符在网络或互联网络内是唯一的。在实施例中,分组报头字段920-921和923-924识别链路层(即,当前跳)端点。在实施例中,分组报头字段920-921和923-924识别作为多跳(即,存储和转发)路由的原始端点和最终端点的传输层端点。
在实施例中,网络流在两个端点之间是双向的,使得RNN(未示出)为预测而消耗或发出的分组序列(未示出)和对应的特征向量序列包括在相反方向上流动的分组,诸如具有网络往返、诸如用于请求/响应、诸如用于客户端/服务器、诸如用于HTTP、SSH或telnet。作为有状态的RNN,可以很好地容忍往返所固有的网络时延。可以促进(例如,双向)流解复用的分组的协议元数据字段包括源IP地址、目的地IP地址、源端口、目的地端口、协议标记和/或时间戳。
11.0训练
图10是描绘实施例中的示例RNN 1000的框图。RNN 1000由计算机(未示出)配置和训练。RNN 1000可以是图1的RNN 170的实施方式。
在生产部署之前,应当对RNN 1000进行训练。RNN 1000用多个神经层(诸如1011-1012)的堆栈来实现深度学习。每个神经层包含许多神经元。例如,神经层1011包含神经元1021。虽然未示出,但是每个神经元具有测量神经元被激发(即,被激活)的程度的激活值。
相邻层通过许多神经连接(诸如1030)互连。每个连接具有经学习的(即,在训练期间的)权重,该权重指示连接的重要性。例如,连接1030的权重为1040。每个连接基于源神经元的激活值和连接的权重将数值从一层中的神经元单向传递到下一层中的神经元。
例如,当计算神经元1021的激活值时,连接1030根据权重1040缩放该激活值,然后将缩放后的值递送到神经元1022。虽然未示出,但是相邻层通常进行丰富的互连(例如,完全连接),使得每个神经元有许多连接进出,并且神经元的激活值基于通过源自上一层的神经元的连接递送到神经元的缩放值的总和。
RNN 1000的配置具有两组属性,分别是权重(诸如1040)和超参数(诸如1050)。在训练期间配置(即,学习)权重。在训练之前配置超参数。超参数的示例包括RNN 1000中神经层的计数,以及每个隐藏(即,内部)层的隐藏单元(即,神经元)的计数。RNN 1000的尺寸与RNN 1000中的层或神经元数量成比例。准确性和训练时间与RNN 1000的尺寸成比例。
RNN 1000可以具有数十个超参数,其中每个超参数具有很少或数百万个可能的值,使得超参数及其值的组合可能难以处理。例如,为RNN 1000优化超参数可以是非确定性多项式(NP)难,这很重要,因为次优超参数值可以显著增加训练时间或显著降低准确性,并且手动调谐超参数是非常缓慢的过程。各种第三方超参数优化库可以用于超参数自动调谐,诸如Bergstra的针对Python的hyperopt,以及可以用于C++、Matlab或Java的可从别处获得的其它库。
在训练期间,将用示例网络流激活RNN 1000。训练无需被监督,诸如用已知为异常的一些流和已知为非异常的其它流。代替地,训练可以是非监督式的,使得预测的下一个分组与流的实际下一个分组的比较足以计算训练的误差,即使在从不知道该流是否实际上是异常的情况下也可以计算。训练期间的误差造成连接权重(诸如1040)被调整。用于最优调整的技术包括反向传播和/或梯度下降,如以下“深度训练概述”部分中所讨论的。RNN 1000的有状态(即,递归)拓扑可能阻碍典型的反向传播,而专门的技术(诸如随时间的反向传播)更适合训练RNN 1000。
当测得的误差降至阈值以下时,训练可以结束。在训练之后,RNN 1000或多或少基本上可以很好地被表示为经学习的连接权重的二维矩阵。在训练之后,可以将RNN 1000部署到生产环境中,作为网络异常检测器(诸如用于入侵检测)的一部分。
12.0嵌入记录的特征
如以上所讨论的,网络分组分析提供了监视计算机系统使用情况的方法。但是,网络流量并不涵盖可能发生的全部计算机系统活动。例如,计算机病毒可以执行可疑活动,这些活动全部在受感染的主机本地进行,并且不会发出网络流量。但是,计算机可以记录作为各种操作消息的日志消息,诸如语义丰富的诊断消息,以进行诸如功能和/或安全性的调试和/或审核之类的取证。
每个日志消息或多或少地详细记录为实现粗粒度动作而发生的多个活动中的细粒度计算机活动。例如,shell命令可以执行高级工作,诸如列出文件系统目录。列表命令可以检索有关目录中多个文件中每个文件的元数据,并在单独的文本行上输出每个文件的元数据,该文本行可以显示在命令的显示终端中。
每行文本可以被记录为日志消息。日志消息可以假脱机(即,顺序记录)到文本文件,或作为记录存储在关系数据库表中。日志消息可以流传输,或缓冲或刷新到标准输出(stdout),因此适用于I/O重定向和/或进程间管线。
图11是描绘实施例中的示例计算机1100的框图。计算机1100具有RNN,该RNN将表示日志消息的稀疏特征向量按上下文转码为可以是预测性的或用于生成预测性向量的密集特征向量。计算机1100可以是计算机100的实施方式。
图11探索了两个附加的概念。首先,是用于密集特征编码和预测的深度学习适用于控制台日志消息而不是网络分组的见解。其次,是从稀疏向量到密集向量的转码可以包括上下文状态。因此,密集编码可以受向量排序和向量之间的数据依赖性的影响,这在本文前面已经介绍过,并将在下面进行进一步讨论。
计算机1100处理日志消息(诸如1111-1113),而不是网络分组。每个日志消息或多或少详细记录了为实现粗粒度动作而发生的多个活动中的细粒度计算机活动。例如,shell命令可以执行高级工作,诸如列出文件系统目录。列表命令可以检索有关目录中多个文件中每个文件的元数据,并在单独的文本行上输出每个文件的元数据,该文本行可以显示在命令的显示终端中。
在一些实施例中,每个文本行可以被记录为日志消息。在其它实施例中,仅将列表命令记录为日志消息,并且不记录文本行。在实施例中,原始日志序列1110的日志消息被假脱机(即,顺序记录)到文本文件。在实施例中,原始日志序列1110的日志消息作为记录存储在关系数据库表中。在实施例中,原始日志序列1110被刷新(即,流传输)到标准输出(stdout),并且适合于I/O重定向和/或管线。
每个水平虚线箭头描绘用于一个日志消息的数据流,因为它的数据被传送和变换以实现从原始日志序列1110到密集序列1140的转换。日志消息的数据可以分解成特征。例如,日志消息可以包含会话或事务的标识符,该标识符可以是一个特征。如图所示,第一日志消息1111被编码到稀疏特征向量1121中,该稀疏特征向量1121被应用于编码器RNN 1130的递归步骤1131,该编码器RNN 1130用作转码器以生成密集特征向量1141。
日志消息1111-1112可能是相同的。因为稀疏编码是无状态的(例如,基于规则的),所以日志消息1111优先于日志消息1112并没有影响。无状态稀疏编码导致相同的消息被相同地稀疏编码,在这种情况下,稀疏特征向量1121-1122也将是相同的。例如,日志消息1111可以由非递归的神经编码器(未示出)(诸如具有前馈MLP)编码为稀疏特征向量1121。在实施例中,编码器MLP的相邻神经层被完全连接。
但是,由于编码器RNN 1130,从稀疏序列1120到密集序列1140的转码是有状态的。因此,这里的转码是上下文敏感的,因为编码器RNN 1130具有有状态的神经电路系统(例如,LSTM),并且因为编码器RNN 1130的每个递归步骤交叉激活相邻的下一个递归步骤。例如,递归步骤1132从稀疏特征向量1122和递归步骤1131两者都接收激活。在实施例中,RNN1130具有与最长预期原始日志序列1110中的日志消息一样多的递归步骤。
上下文(即,有状态的)转码的结果可能是违反直觉的。例如,即使稀疏特征向量1121-1122可以是相同的,它们也可以被不同地转码。例如,它们对应的密集特征向量1141-1142可以不同。
即使日志消息1111-1112几乎相同但不是绝对相同,密集序列1140仍可以具有其它编码技术无法实现的上下文编码。例如,日志消息1111可以具有比1112多一些特征的默认值(例如,null(空)、零、负一、空串)。重要的环境(即,上下文)信息可以被编码为密集序列1140,诸如日志消息是在具有更多默认值的几乎相同的消息之前还是之后,或者这两个几乎相同的消息是相邻还是被(一个或多个)其它消息分开。
虽然未示出,但是密集序列1140可以被用作预测性附加RNN(未示出)的输入,诸如已经针对本文的先前附图讨论的。该预测性附加RNN可以比本文之前的示例实现更准确的预测,因为序列1140的转码后的向量不仅密集,而且上下文相关。
在未示出的实施例中,RNN 1130既是编码器RNN又是预测性RNN,并且不存在附加的RNN。例如,在偏斜的情况下,密集向量1141可以代替地是下一个日志消息1112的预测。
原始序列1110被示为由日志消息组成。在实施例中,原始序列1110代替地包含网络分组。本文讨论的编码、预测和异常检测同样适用于日志消息和网络分组。例如,在应用日志记录和网络通信的单独实践领域中,序列异常检测可以是重要的安全技术。
13.0日志特征嵌入过程
图12是描绘实施例中的计算机1100使用RNN将表示日志消息的稀疏特征向量按上下文转码为用于生成预测性向量的密集特征向量的流程图。参考图11来讨论图12。
对于相关日志消息的序列(诸如原始日志序列1110)中的每个日志消息重复步骤1202、1204和1206。步骤1202从日志消息中提取每个特征以生成表示特征的稀疏特征向量。例如,第三方日志解析器(未示出)(诸如Splunk、Scalyr、Loggly或Microsoft Log Parser)可以从日志消息1111-1113中的每个日志消息中提取未经处理值。
如本文其它地方所讨论的,可以将日志消息的提取出的特征稀疏地编码为稀疏特征向量。例如,日志消息1111的特征被编码为稀疏特征向量1121。提取出的类别特征可以是一位有效编码的,例如针对图9讨论的。
基于稀疏特征向量,步骤1204激活编码器RNN的相应步骤。例如,稀疏特征向量1121作为激励输入被应用于编码器RNN 1130的递归步骤1131。
在步骤1206中,编码器RNN输出基于当前日志消息和在相关日志消息的序列中较早出现的日志消息的特征的相应的嵌入式特征向量。例如,递归步骤1133基于稀疏特征向量1123作为对递归步骤1133的直接输入而生成密集特征向量1143,并且还基于基于先前稀疏特征向量1121-1122的先前递归步骤1131-1132的内部状态的交叉激活来生成密集特征向量1143。因此,在上下文中,基于原始日志序列1110的多个日志消息,将特征嵌入密集特征向量1143中。
在对原始日志序列1110中的每个日志消息执行步骤1206之后,已经生成了一些密集序列1140。如本文中其它地方已经描述的,步骤1208可以批量或增量地处理密集/嵌入式特征向量,以确定可能在相关日志消息的序列中出现的预测的下一个相关日志消息。例如,密集序列1140可以作为激励输入被应用于预测性RNN(未示出)以预测序列中的下一个日志消息。例如,可以将密集特征向量1141应用于预测性RNN的第一个递归步骤,以生成预期与下一个密集特征向量1142匹配/近似的下一个预测的密集特征向量(未示出),其可以被用于检测密集特征向量1142是否在上下文上是异常的。
14.0上下文编码含义
图13是描绘实施例中的根据上下文不同地密集编码的相同的稀疏特征向量的流程图。参考图11-12来讨论图13。
图13是特定场景的示例,它是图12的一般场景的特殊化。例如,对于相同的日志消息序列,相同的过程可以执行图12-13的处理步骤。
步骤1302和1304处理序列的第一日志消息。步骤1306和1308或多或少对序列的第二日志消息执行相同的处理。因此,在图13中,针对图12中的每个日志消息重复的步骤1202、1204和1206(例如,控制循环)被代替地示为针对两个相邻日志消息中的每个展开为单独的步骤的循环。
特别地,步骤1302可以是针对第一日志消息的步骤1202。步骤1304可以是针对第一日志消息的步骤1204和1206。步骤1306可以再次是针对第二日志消息的步骤1202。步骤1308可以再次是针对第二日志消息的步骤1204和1206。
描绘展开循环的目的是为了说明或多或少相同的日志消息可以具有不同的嵌入(即,上下文编码),因为它们出现在不同的消息序列中或相同序列中的不同位置,可能彼此相邻。步骤1302提取第一日志消息的特征并将其编码为第一稀疏特征向量。例如,解析器可以从日志消息1111中的每个日志消息中提取特征值。日志消息1111的特征被编码为稀疏特征向量1121。
步骤1304将第一稀疏特征向量嵌入到第一密集特征向量中。特征嵌入是上下文的,使得稀疏特征向量的序列内的消息序列和位置影响特征嵌入。例如,编码器RNN 1130如何将稀疏特征向量1121嵌入到密集特征向量1141中取决于稀疏特征向量1121处于稀疏序列1120中并且是该序列中的第一向量,在这种情况下,编码器RNN 1130最近被重置并且尚未累积任何内部状态。
步骤1306从第二日志消息中提取每个特征以生成第二稀疏特征向量。因为稀疏编码不是上下文的,所以每个日志消息都可以单独进行稀疏编码(即,不考虑其它日志消息)。例如,日志消息1111-1112的稀疏编码独立发生。因为在这个示例中日志消息1112与日志消息1111相同,所以即使日志消息1111-1112在没有相互了解的情况下被独立转码,它们的稀疏编码也相同。因此,当日志消息1111-1112相同时,稀疏特征向量1121-1122相同。
但是,用上下文编码(即,特征嵌入)不会保留身份。在步骤1308中,编码器RNN输出第二嵌入式特征向量,该第二嵌入式特征向量基于特征和在相关日志消息的序列中较早出现的一个或多个日志消息。例如,与日志消息1111不同,日志消息1112不是序列中的第一个,并且编码器RNN 1130自此已经积累了影响特征嵌入的一些内部状态。因此,即使日志消息1111-1112相同并且稀疏特征向量1121-1122相同,密集特征向量1141-1142也不同。
15.0训练线束
图14是描绘实施例中的示例计算机1400的框图。计算机1400具有训练线束以改善密集编码。计算机1400可以是计算机100的实施方式。
在生产中部署时,计算机1400具有或多或少从左向右流动的预测管线(即,根据图例1490所示的白框)。该管线包含堆叠的RNN 1410和1430的深度(即,许多层)经训练的层,它们分别执行密集编码和预测以计算异常分数1450。编码器RNN 1410可以将日志消息(未示出)的稀疏特征向量(未示出)转码为密集序列1420的密集向量(未示出),该密集序列1420被应用于预测器RNN 1430。
15.1用于重构的解码
训练编码器RNN 1410的潜在障碍可能是,随着时间的反向传播需要太多的层(RNN1410+1430),以致无法正确调整印象。可以代替地用包含解码器RNN 1460的训练线束(即,阴影块)来提高尤其是对于编码器RNN 1410的训练准确性和加速度,该训练线束将密集序列1420的密集向量转换回稀疏向量。训练线束无需部署到生产中。
可以将由解码器RNN 1460生成的重构的未经处理(即,稀疏)向量(诸如1465)与原始的未经处理向量(例如,1451-1452)进行比较,并由编码器RNN 1410消耗,以计算测量RNN1410(和1460)的准确性的重构损失1470。例如,在所示的实施例中,原始的未经处理向量1452包含会话类型和事务类型作为一位有效编码的类别特征。例如,会话类型是具有三个互斥的可能值的类别特征,例如,在原始的未经处理向量1452中,设置了用于会话类型的三个值的中间值(以圆圈圈出)。
15.2测得的误差
在训练期间,两个管线(即,RNN 1430和1460)消耗密集序列1420。每个管线具有其自己的误差函数,使得重构损失1470测量当前日志消息的编码准确性,并且预测损失1440测量下一个日志消息的预测准确性。可以基于比较密集序列1420的原始的和重构的未经处理向量来计算重构损失1470。例如,可以将重构的未经处理向量1465与原始的未经处理向量1452进行比较。在实施例中,重构的未经处理向量1465内的值是概率性的,使得一个原始值“1”通过接近“1”的概率来近似,诸如如圆圈中所示的“0.81”。同样,可以基于比较密集序列1420的原始向量与预测的向量来计算预测损失1440。损失1440和1470中的两者或任一者可能需要计算和积分(例如,求和)序列中每个向量的各个损失。例如,未经处理/稀疏或密集向量的各个损失可以通过原始序列与预测的序列的对应向量(未示出)之间的比较来测量(诸如针对图7所讨论的)。
损失1440和1470两者都可以向管线的RNN提供相关的反馈。在实施例中,损失1440和1470被集成到组合的训练损失1480中,该组合的训练损失1480被用于通过RNN 1410、1430和1460的完整堆栈的反向传播,这应当增加诸如1420的序列的密集编码的适合度。损失1440和1470可以被求和或加权平均以计算训练损失1480。
异常分数1450可以指示给定的日志消息序列,(诸如从其生成密集序列1420的日志消息序列)有多奇怪(即,非预期)。在生产中,可以没有训练线束。因此,异常分数1450基于预测损失1440。在未示出的实施例中,为序列的每个实际日志消息计算个体消息异常分数,并且对这些分数进行积分(例如,平均)以计算异常分数1450。
当异常分数1450超过阈值(未示出)时,可以生成警报。例如,异常分数1450可以被用于检测和警告各种潜在问题,诸如在线安全入侵或物联网(IoT)故障。在检测到IoT故障的情况下,计算机1400分析来自潜在的许多IoT设备的远程遥测消息的中央日志。中央日志记录可能需要解开(即,解复用),使得密集序列1420仅包含用于特定IoT设备的特征向量。密集序列1420还可以被限制为日志消息的特定子序列,诸如与相同(子)活动(例如,踪迹)相关的日志消息,如本文后面所讨论的。
16.0利用重构的训练
图15是描绘实施例中的改善密集编码的训练线束的流程图。参考图14来讨论图15。图15图示了训练的行为,其中一些行为可能也在生产中发生或可能不在生产中发生。这些行为包括解码、测量重构损失和反向传播。
基于嵌入式特征向量,步骤1502激活解码器RNN以将嵌入式特征向量解码为重构的稀疏特征向量,该稀疏特征向量近似于表示日志消息的特征的原始的稀疏特征向量。例如,密集序列1420可以具有密集特征向量作为日志消息1451-1452的上下文嵌入。解码器RNN 1460可以将密集序列1420的密集向量解码回表示原始的未经处理向量1452的重构的未经处理向量(诸如1465)。
步骤1504将原始的稀疏特征向量与重构的稀疏特征向量进行比较以计算重构损失。理想地,原始的与重构的稀疏特征向量是相同的,在这种情况下,重构损失1479为零。例如,重构损失1470可以是原始的与重构的稀疏特征向量中的对应数值字段之间的差的绝对值之和。
步骤1506将预测误差与重构误差求和以计算训练误差。例如,预测器RNN 1430可以输出与实际密集序列1420不同的预测的序列,其被测量为预测损失1440。同样,重构损失1470是对于相同的日志消息序列在神经拓扑内其它地方观察到的损失的可比较度量。将损失1440和1470进行算术求和,以计算指示总体准确性的总训练损失1480。
步骤1508反向传播训练误差。随时间的反向传播可以被用于穿透深度神经层以影响深度学习。在实施例中,当训练损失1480下降到阈值以下或不能改善(即下降)至少阈值量时,实现收敛并且训练停止。
17.0活动图
图16是描绘实施例中的示例活动图1600的图。活动图1600表示在一个或多个互操作计算机上发生的计算机系统活动。
活动图1600中的每个顶点表示日志踪迹。日志踪迹是在同一动作期间生成的以及关于同一动作生成的日志消息的紧密相关的子序列。例如,在观察到的动作期间,可以将一连串的日志消息附加到消息日志,诸如控制台日志文件。消息日志可以由软件应用直接生成,或者由应用委派给结构化的日志记录框架(诸如用于Unix的系统记录器(syslog)或审核守护进程(auditd))。
例如,auditd有时可以针对用户的一次登录发出十条日志消息,这可以是一个踪迹。讨论踪迹检测(即,将多个日志消息司法(forensically)关联到单个踪迹中),并且可以是本文后面的活动图的正交问题。例如,一些实施例可以分析活动,但是不分析踪迹,反之亦然。在这个示例中,活动图1600中的每个顶点可以表示多个日志消息,但是仅一个日志踪迹。
日志记录框架可以聚合来自多个过程、应用和/或计算机的日志。日志记录框架可以将语义特征插入日志消息中,并根据可调谐的详细程度、消息特征或附加准则来抑制记录或调整一些消息的格式。一些遥测框架(诸如Orbitz的Graphite)可以用作远程日志假脱机(即,遥测和归档)框架。日志记录框架可以或多或少地提供对踪迹检测的支持,诸如利用某种形式的显式(例如,文本修饰)分界。
每个日志消息可以包含用于多个语义特征的值。同样,每个日志踪迹可以包含用于多个语义特征的值,这些语义特征可以从踪迹的日志消息的特征中提取或以其它方式导出。踪迹可以根据其(一个或多个)特征值的一致性来相互关联。
例如,踪迹可以是相互关联的,诸如在可疑脚本执行动作(即,踪迹)的序列以实现恶意目标的情况下。踪迹可以与计算机、网络地址(诸如IP地址)、会话、事务、连接、应用、web浏览器、shell、登录、账户、主体、最终用户、或计算机或计算机网络中的代理的其它抽象相关。这样的代理可以被概括为网络身份,每个网络身份具有网络标识符,该网络标识符可以被用于将相关的日志消息合并为日志踪迹,如本文稍后所讨论的。
如图所示,两个顶点(即,踪迹)之间的连接表示两个踪迹是相关的,诸如通过特征值的一致性。如图所示,可以标记连接以揭示该连接下面的哪个(哪些)一致特征以及哪个值是一致的。例如,活动图1600的登录、文件访问和注销顶点通过在相同用户John上一致(即,通过其关联)的边(即,连接)互连,作为相同特征的相同值。但是,文件访问和数据传送顶点通过不同种类的特征相关。
实际上,利用带有许多特征的冗长装饰的日志消息,踪迹可以变得错综复杂地相互关联,从而使踪迹一起形成或多或少连接的活动图1600。踪迹之间的边提供了丰富的拓扑上下文,可以利用这些拓扑上下文来实现来自活动图1600的每个踪迹的上下文特征编码。例如,登录本身可能不是可疑的,在这种情况下,对登录进行编码的任何特征向量也不会被孤立地视为可疑。但是,在相关踪迹的某种模式的上下文中登录实际上可能是可疑的(即,异常)。
潜在的问题是,虽然具有拓扑连接性,但许多边在上下文上可能或多或少不相关。例如,给定特定顶点(诸如文件访问踪迹(示出在活动图1600的中心)),活动图1600的许多或大部分(即,未标记的边和顶点)或多或少不相关(即,噪声)。(相对于文件访问踪迹)实际相关的只是带标签的边和顶点的子图。因此,文件访问踪迹可以嵌入到高度相关的子图中,这是图嵌入的本质,作为特征(例如,踪迹)的上下文编码的序言。
定义相关子图的范围可能需要通过选择满足相关性准则(诸如带有特定特征和/或值的)的边来彻底修剪活动图1600。另一个相关性准则可能需要遍历范围(即,从文件访问顶点开始的多条边的遍历路径的最大半径)。
18.0图嵌入
图17是描绘实施例中的示例计算机1700的框图。计算机1700使用图嵌入来改善日志踪迹的特征嵌入。计算机1700可以是计算机100的实施方式。
日志踪迹是在同一动作期间生成的日志消息的紧密相关的子序列。例如,在观察到的动作1713期间,将如日志踪迹1733所示的一系列日志消息附加到日志1720,该日志消息可以是控制台日志文件。
日志1720中的每个日志踪迹都可以被稀疏或密集地编码为原始踪迹特征向量,诸如1751-1757。每个原始向量1751-1757包含特征的编码值,诸如网络身份。踪迹1733表示用于一个活动的日志消息。穿过日志踪迹1733的水平箭头描绘了从踪迹1733到原始向量1753到嵌入式踪迹向量1763的数据流,包括变换和传送,所有这些都表示观察到的动作1713的记录或编码。
平行于通过踪迹1733的水平箭头的是其它水平箭头,这些水平箭头表示其它日志踪迹在某种程度上相似的数据流。即使未示出,每个水平箭头也都有其自己观察到的动作,该动作在日志1720中引起其自己的日志踪迹。因此,日志1720具有许多踪迹,每条踪迹可能具有多个日志消息。取决于实施例,并且虽然日志1720被示为包含离散的踪迹(例如,1733),但是日志1720可以替代地仅包含必须从中推断出踪迹的日志消息。踪迹检测将在本文后面进一步讨论。
可疑过程、脚本或交互式会话可以执行或多或少相关的许多活动(诸如1713)。当相同特征或一组特征的值匹配时,可以识别相关踪迹。例如,原始向量1752-1753和1755-1756是相关的,因为它们具有55作为相同的网络身份。例如,网络身份可以包括(一个或多个)字段,诸如:用户名、计算机主机名、互联网协议(IP)地址,或会话或事务的标识符。
每个原始向量1751-1757可以是穷举逻辑图1740中的顶点,该顶点可以被实际构造或可以不被构造(例如,在计算机1700的RAM中)。相关的原始向量被示出通过边连接。例如,边1771连接与相同网络身份55相关的原始向量1752-1753。原始向量可以与其它种类的特征相关。例如,边1774连接与不是网络身份的特征(未示出)相关的原始向量1755和1757。
18.1修剪(pruning)
图嵌入是子图1740的构造,作为用于给定踪迹(诸如由原始向量1753表示)的上下文。连接子图1740,使得所有顶点1752-1753和1755-1756可彼此直接或间接地(即,通过多边路径)到达。虽然不一定完全连接(即,子图1740的所有顶点可以彼此直接相邻),但连接意味着子图1740的所有顶点具有到当前焦点的顶点(即,当前正按上下文编码的顶点)(诸如1753)的某条遍历路径。图嵌入和踪迹检测可以是正交问题。一些实施例可以在没有图嵌入的情况下执行踪迹检测,反之亦然。
修剪子图1740,使得从子图1740中排除不满足踪迹检测准则的边。例如,原始向量1755和1757共享不满足踪迹检测准则的相同踪迹特征值,使得从子图1740中排除(即,修剪)边1774。标识符或其它值可能太常见而无用。例如,相同的踪迹特征值可以是在很多(例如,大多数)踪迹中出现的非常常见的值,这将定义(例如,几乎)与穷举图1740一样大的子图,这太大以至于无法与上下文编码相关。在实施例中,常见的标识符被排除构成边。
18.2日志踪迹
虽然未示出,但是可训练算法(例如,深度学习算法,诸如RNN或非监督式人工神经网络)也可以基于在子图1740中出现的踪迹的原始向量1752和1755-1756将原始踪迹向量1753按上下文编码为嵌入式踪迹向量1763(即,与踪迹1733相关的踪迹)。例如,原始向量1752-1753和1755-1756中的每一个都可以被应用于RNN的相应步骤,以使RNN生成嵌入式踪迹向量1763。
志1720内的踪迹可以重叠(诸如在其组成的日志消息交织的情况下。交织通常由并发而引起,诸如由于多线程、对称或其它多处理(SMP)(诸如多核)或向同一整合(即,聚合)日志1720流传输日志消息的分布式计算机。因此,踪迹检测可能需要将日志消息解开(即,解复用)为分离的踪迹。
踪迹重叠的结果是,在日志1720内的同一点处可以正在进行多条踪迹(例如,实况)。因此,用于踪迹检测的逻辑应当检测多个踪迹,或者具有多个并发的踪迹检测逻辑实例(例如,计算线程),每个实例检测不同的踪迹。例如,子图1740可以是从图1740同时构造和/或处理的多个子图中的一个。
在实施例中,日志消息可以仅是一个踪迹的一部分,并且子图不重叠(即,共享一些顶点/踪迹)。在这种实施例中,上下文编码器RNN(未示出)的每个步骤(即,折叠)可以为子图中的每个相应原始向量生成分离的嵌入式踪迹向量。例如,RNN不仅从子图1740生成嵌入式踪迹向量1763,而且还从RNN的相应步骤同时为相应的原始向量1752和1755-1756生成分离的嵌入式踪迹向量。
在实施例中,计算机1700使用第三方Python工具来进行图嵌入(即,子图定义和上下文特征编码),诸如用于TensorFlow的GraphSAGE、DeepWalk或Node2Vec。DeepWalk水平缩放。TensorFlow可以用GPU加速,并且在用于在网页中进行部署的JavaScript中也可用。
19.0图嵌入过程
图18是描绘实施例中的图嵌入以改善日志踪迹的特征嵌入的流程图。参考图17来讨论图18。
步骤1802接收独立特征向量,每个特征向量表示相应的日志踪迹。例如,日志1720具有诸如1733之类的踪迹,这些踪迹被编码为原始特征向量1751-1757。在实施例中,原始特征向量1751-1757被稀疏编码,这维持离散字段(即,特征),使得原始向量可以根据特定字段的匹配值而相关。
步骤1804生成连通图的边,该连通图包含从由特定独立特征向量表示的特定日志踪迹生成的特定顶点。例如,原始向量1753可以是特征向量,该特征向量是图嵌入的当前焦点。根据(一个或多个)特定字段的匹配值,其它原始向量可以与原始向量1753直接或间接地相关。
过滤准则可以指定哪些字段应当匹配,以在修剪的连通子图1740中包括原始向量。例如,可以基于根据过滤准则的匹配来创建定义修剪的连通子图1740的边1771-1773。因此,修剪的连通子图1740是原始向量1753的图嵌入。
步骤1806基于独立特征向量来生成嵌入式特征向量,该独立特征向量表示从其生成连通图的顶点的日志踪迹。例如,可以基于修剪的连通子图1740将原始向量1753转码为嵌入式踪迹向量1763。因此,嵌入式踪迹向量1763是原始向量1753的图嵌入(即,上下文编码)和密集转码。
因此,嵌入式踪迹向量1763可能比原始向量1753包含更多的信息,当然包含更多的相关信息。例如,嵌入式踪迹向量1763中的不在原始向量1753中的额外信息(即,上下文)可以导致准确的警报与假否定之间的差异。上下文相关性可以通过由经训练的图嵌入器(未示出)(诸如本文讨论的MLP或RNN)进行嵌入进行最大化。
步骤1808描绘了图嵌入之后的可能的进一步处理。未示出的实施例可以代替地在步骤1808处执行替代处理。基于嵌入式特征向量,步骤1808指示特定日志踪迹是异常的。
例如,计算机1700可以生成除1740之外的其它修剪的连通子图,作为来自日志1720的其它踪迹子集的图嵌入。这些图嵌入的序列可以激活预测性RNN(未示出),该RNN输出可以与原始序列进行比较以检测异常的预测的序列。日志1720的多个修剪的连通子图(诸如子图1740)可以重叠,使得它们共享顶点(原始向量)。
在实施例中,修剪的连通子图1740内的每个原始向量是相应的分离子图内的中心顶点。例如,原始向量1752可以是略微重叠子图1740的不同修剪的连通子图(未示出)的中心顶点。
在实施例中,修剪的连通子图不重叠,并且每个原始向量恰好出现在一个修剪的连通子图中。例如,原始向量1752-1753和1755-1756中的每一个仅出现在修剪的连通子图1740中。修剪的连通子图1740可以作为针对所有原始向量1752-1753和1755-1756的图嵌入来操作,在这种情况下,从修剪的连通子图1740生成除嵌入踪迹向量1763之外的附加嵌入式踪迹向量(未示出)。
20.0踪迹聚合
图19是描绘实施例中的示例日志1900的框图。计算机从日志1900中的相关踪迹创建时间上修剪的子图。虽然日志1900被示为存储踪迹1-9,但是本文针对图19描述的时间修剪技术可以应用于网络分组或日志消息的序列,而不是踪迹。
图修剪旨在通过缩小踪迹的上下文(即,相关踪迹)以仅包括语义上接近的踪迹(即,子图)来提高特征相关性。除了修剪内容(即,语义)外,还可以对子图进行时间修剪。例如,踪迹1-9可以是时间序列事件,使得对日志1900的内容进行时间排序(例如,自然地被假脱机处理),使得可以按照踪迹1-9的所示排序沿着时间线对日志1900的内容进行排序。
例如,踪迹1首先出现,并且踪迹9最后出现。在实施例中,踪迹可以具有时间戳,诸如时间1-9,诸如每个踪迹的第一个或最后一个日志消息(未示出)的时间戳。如图所示,踪迹1-9是有序的,但不一定在时间上等距。例如,时间1-2之间的持续时间可以不同于时间2-3之间的持续时间。例如,时间1-2可以同时发生。
子图修剪期间可以施加固定时间量或踪迹的时间窗口。例如,根据图例1950,当前仅将踪迹3-7视为包含在同一子图中。每个子图可以具有其自己的时间窗口。
在所示的实施例中,如果将踪迹3识别为开始新的子图(例如,当接收到踪迹3时),并且将所有时间窗口的尺寸设置为包括五个时间单位或踪迹,那么将创建子图的窗口以涵盖时间3-7或踪迹3-7。在实施例中,时间窗口跨越至少一整天,这可以是资源密集的,因为时间窗口也可以或多或少地作为用于缓冲实时踪迹和/或日志消息的保留窗口来操作。
在具有以踪迹代替时间测得的时间窗口的实施例中,子图中的踪迹的最大数量不超过窗口的尺寸。无论如何测量窗口,踪迹特征语义都可以提供附加子图包含准则,使得子图的窗口中只有踪迹3-7中的一些才有资格实际包含在子图中(未示出)。
在不同的实施例中(也示出),时间窗口可以伸展(即,时间或踪迹扩展)以容纳更大的子图。根据图例1950,到目前为止,窗口在子图的末尾可以是个小的窥孔,使得每当将另一个踪迹添加到子图时,窥孔就会滑动(即,移位),这类似于本文后面描述的max_gap。例如,如图所示,可以接收踪迹5,并且作为两个时间单位或踪迹尺寸的窥视孔覆盖应当在踪迹5之后出现并且可能尚未被接收的踪迹6-7。
例如(未示出),如果接收到踪迹6并且满足要包括在与踪迹5相同的子图中的语义准则,那么2单位窗口可以从时间/踪迹6-7滑动到时间/踪迹7-8。如果滑动窗口过去了(即,没有任何(一个或多个)覆盖的踪迹符合子图包括的资格),那么当前子图的填充将关闭(即,完成),并且窗口当前覆盖的踪迹将被包括在(一个或多个)其它子图中。
21.0可训练的异常检测
图20是描绘实施例中的示例计算机2000的框图。计算机2000具有生成上下文特征向量的可训练的图嵌入器,以及消耗上下文特征向量的可训练的异常检测器。计算机2000可以是计算机1700的实施方式。虽然时间窗口2010示出了踪迹2021-2025,但是本文中针对图20描述的异常检测技术可以应用于日志消息或网络分组的序列,而不是踪迹。
时间窗口2010中的踪迹2021-2025的子集满足语义相关性准则,包括踪迹2021、2023和2025,这些踪迹最初被编码为相应的原始向量2031、2033和2035,可训练的图嵌入器2060将其转码为相应的嵌入式踪迹向量2041,2043和2045。可训练的图嵌入器2060可以包括深度学习算法,诸如RNN或非监督式人工神经网络,诸如针对图17所讨论的。
可训练的异常检测器2050学习如何决定(如图所示,是或否)嵌入式踪迹向量2041、2043和2045的序列是否异常。取决于实施例,将嵌入式踪迹向量2041、2043和2045递增地(即,顺序地)或者或多或少地同时应用于可训练的异常检测器2050。例如,可以将嵌入式踪迹向量2041、2043和2045级联起来,以创建组合的特征向量,该组合的特征向量将应用于可训练的异常检测器2050。
在实施例中,可训练的异常检测器2050包括以下中的至少一个非神经算法:主成分分析(PCA)、隔离森林(iForest)、或一类支持向量机(OCSVM)。PCA因其易于配置和使用以及可预测的(即稳定的)性能而广受欢迎。iForest通过基于次采样的优化计算而高效地操作,并避免了计算上昂贵的数学运算(诸如距离或密度)。OCSVM速度快、容忍噪声并具有非监督式训练。下面在“机器学习概述”部分中讨论基于可训练的人工智能(AI)的示例神经和非神经实施方式。
可训练的异常检测器2050可以包括深度学习算法,诸如RNN或非监督式人工神经网络,诸如针对图17讨论的。在实施例中,可训练的异常检测器2050是具有非监督式训练的自动编码器,如针对图3所讨论的。
22.0踪迹组成
图21是描绘实施例中的示例计算机2100的框图。计算机2100从相关的日志消息中检测独立的踪迹并对其进行特征编码。在本文的前面,讨论了基于特征一致性和时间窗口的事件聚合,以将多个日志踪迹合并到图19-20的子图中。图21-23具有更细粒度的未经处理的输入,使得将多个日志消息合并到日志踪迹中,并且将更详细地讨论时间和语义合并的准则。
在实施例中,计算机2100可以生成计算机2000所消耗的踪迹向量作为用于图嵌入的输入。例如,图21的可疑特征向量2140可以随后用作图20的原始向量2031。
日志(未示出)可以包含许多日志消息,诸如2131-2133。通过将每个消息解析为键-值对,从日志消息中提取特征。例如,日志消息2131具有键-值对,其中会话ID作为键,而XYZ作为值。
计算机2100可以使用诸如Splunk之类的第三方日志解析器(未示出)来解析日志消息2131-2133并提取键-值对。在实施例中,日志解析器以诸如可扩展标记语言(XML)、逗号分隔值(CSV)、JavaScript对象符号(JSON)、YAML或Java对象序列化之类的序列化格式来编码和输出键-值对。
22.1组成准则
过滤准则2110指定其中日志消息2131-2133的子集可以合并为一个踪迹(诸如2120)的一个或多个场景。每个指定的场景识别一个或多个特征,这些特征的实际值应当与踪迹中的所有日志消息匹配。例如,日志消息2131-2132可以合并到踪迹2120中,因为过滤准则2110指定了将会话ID和时区识别为特征的场景,同一踪迹中的所有日志消息都应对该特征共享相同的值。在该情况下,虽然未示出,但是日志消息2132具有与日志消息2131相同的会话ID和时区值。而日志消息2133的会话ID和/或时区可以具有不同的值,或者可以缺少这些键中的一个或两个,使得日志消息2133不被合并到踪迹2120中。
过滤准则2110可以指定其它场景,诸如合并具有相同颜色的日志消息。即使日志消息2131-2132不共享相同的颜色,也可以将日志消息2131-2132合并到踪迹2120中,只要日志消息2131-2132满足过滤准则2110的不同场景即可。
基于本文的技术,踪迹2120可以被密集或稀疏地编码为可疑特征向量2140。可训练的异常检测器2150可以分析可疑特征向量2140,以确定踪迹2120是否异常。在实施例中,可训练的异常检测器2150分析附加踪迹的特征向量(未示出),以决定可疑特征向量2140是否异常,诸如根据本文的上下文技术。针对图22-23更详细地讨论根据过滤准则2110的踪迹检测。
23.0踪迹检测过程
图22是描绘实施例中的来自相关日志消息的独立踪迹的检测和特征编码的流程图。参考图21讨论图22。
步骤1802从每个日志消息中提取键-值对。例如,日志消息2131-2133中的每个日志消息可以被独立地解析为各种键-值对。键-值对可以以各种格式中的一种或多种存储在存储器中,诸如散列表或其它关联数据结构和/或稀疏特征向量。
步骤1804基于其键-值对满足过滤准则的日志消息的子集来检测表示单个动作的日志踪迹。换句话说,(不一定是相邻的)一组(即,踪迹)日志消息被识别为与执行单个观察到的动作(未示出)有关。因此,日志踪迹(诸如2120)比个体日志消息具有更粗的粒度,这促进上下文编码。因此,可以将作为日志消息的序列起源的日志抽象为更有意义的多个踪迹,其中每个踪迹由一个或多个日志消息组成。
踪迹不重叠并且不共享日志消息。因此,一个日志消息恰好属于一个踪迹。因此,在踪迹内的日志消息和在日志内的踪迹(未示出)有相当严格的包含(即,嵌套)层次结构。
步骤1806基于来自日志消息的踪迹子集的键-值对来生成表示日志踪迹的可疑特征向量。例如,踪迹2120的日志消息2131-3132可以被嵌入(即,按上下文编码)为密集的可疑特征向量2140。
基于包括可疑特征向量的特征向量,异常检测器在步骤2208中指示可疑特征向量是异常的。例如,可训练的异常检测器2150可以按上下文分析包括踪迹2120的相关踪迹的嵌入/密集特征向量的序列,以检测可疑特征向量2140是否异常。例如,预测性RNN(未示出)可以预测特征向量的序列,包括与或不与可疑特征向量2140匹配的对应的预测的特征向量。可训练的异常检测器2150可以决定(是或否)可疑特征向量2140已经或尚未以阈值的准确度被近似预测。
24.0声明式踪迹检测
图23是描绘实施例中的示例日志2300的框图。日志2300包含半结构化操作(例如,诊断)数据,从中可以解析并提取日志消息及其特征。日志2300可以是包含日志消息的(例如,时间)序列的实况数据流、日志文件、电子表格或数据库表,这些日志消息最初被输出到驻留在一个或多个主机计算机上的一个或多个软件应用的一个或多个控制台。
日志2300被描绘为表格,其中每一行表示日志消息,每一列表示字段(即,特征)。日志2300左侧的踪迹和偏移量列是声明性的,并且实际上在日志2300中不存在。偏移量列唯一地识别每个日志消息,并且可以是文件或流中的文本行号、数据库记录/行号、或文件或流中的字节偏移量(在这种情况下,偏移量会单调增加,但可以是不连续的(不同于所示出的))。
特征(即,列)可以具有特定于应用的语义(例如,价格),或者可以表示明确显示在(一个或多个)日志消息中的元数据。例如,主机字段可以指示哪个服务器计算机生成日志消息,或者哪个客户端计算机使得服务器计算机生成日志消息。日志2300可以整合由许多服务器计算机生成的日志消息。
踪迹列指示将哪些日志消息合并到同一踪迹中。例如,踪迹A由日志消息0-2组成。踪迹可以重叠(即,具有交织的日志消息)。例如,即使相邻的日志消息11和13属于踪迹C,日志消息12也属于踪迹D。
24.1声明式规则
应用各种逻辑规则来决定将哪些日志消息合并到哪些踪迹中,诸如以下。如果规则适用于本文讨论的有趣的合并场景,那么满足规则的相关日志消息的相关特征值在黑框上描绘。日志消息0-31根据以下规则合并进踪迹A-I。
每个特征(即,用于键-值对的相同键)都呈现维度(即,自由度),其可以被用于将日志消息合并到踪迹中。规则(例如,图21上的过滤准则2110)可以为任意(例如,特定于应用的)特征或预定义且可重用(即,跨多个应用)的特定种类的特征指定过滤器。过滤规则的示例集合可以是:
node_filter:“node=”
entity_filter:“*pid=”
time_window_filter:(min_duration:10s,max_duration:60s,max_gap:10s)
exclude_filter:“exclude=”
nomatch_heuristic:“closest active trace”
上面示例中的每种过滤器都具有预定义的语义和可配置的(一个或多个)属性。例如,预定义节点过滤器,以识别多个日志消息都涉及同一个服务器(或客户端)计算机。节点过滤器可以被配置为使用日志2300的节点特征(偶然发生在主机字段中)来检测日志消息的主机计算机。例如,日志消息10-11涉及不同的主机计算机,因此不会合并到同一踪迹中。
预定义实体过滤器,以识别多个日志消息都涉及相同的操作实体,诸如相同的用户、主体、客户、账户或会话。特征名称可以带通配符,诸如带星号或正则表达式。此外,同一特征可以出现在多个字段中。例如,*pid可以匹配日志消息4的字段X中的pid,也可以匹配日志消息8的字段Z中的spid。
预定义time_window_filter,以识别多个日志消息是同时发生的。time_window_filter具有各种可配置的属性。可将min_duration属性配置为:在当前正被合并的踪迹还不包含时间间隔至少为min_duration的第一个和最后一个日志消息的情况下,通常阻止将相邻日志消息隔离到分离的踪迹中。因此,普通踪迹的长度至少为min_duration。
max_duration属性限制踪迹的第一个日志消息和最后一个日志消息之间可以有多少时间间隔。因此,普通踪迹不超过max_duration。
即使在min_duration和max_duration范围内,时间约束也可以使得将日志消息隔离到分离的踪迹中。例如,max_gap属性指定踪迹内任何两个相邻日志消息之间的最长时间。因此,max_gap是踪迹检测器可以等待另一个日志消息追加到当前踪迹的最长记录。
过滤规则可以具有优先级,使得即使日志消息可以满足多个规则,实际上也只能应用一个规则。预定义exclude_filter以在满足时抢占所有其它规则。基于过滤规则的以上示例集合,日志2300可以被解释如下,包括如下操作的exclude_filter。
24.2示例操作
日志消息0-2在字段X(其是日志2300的列)中被标记为排除。字段X可以自然出现在最初生成其的日志消息中。在实施例中,字段X是合成的,使得日志解析器将字段X插入到最初不包含字段X的一些或所有日志消息中。可以根据各种准则来选择日志消息进行修饰(即,合成字段插入)。例如,可以记录保持活动的心跳,然后将其标记为已排除。在所示的实施例中,将相邻的被排除的日志消息合并到同一隔离的踪迹(诸如A)中。
在未示出的实施例中,相邻的被排除的日志消息被隔离(即,从相邻踪迹中排除),并且仅在它们的被排除值匹配时才合并为同一踪迹。例如,日志消息0-2中的每一个具有不同的被排除值,因此,日志消息0-2中的每一个将具有其自己的踪迹(即,用于三个被排除的日志消息的三个分离的踪迹)。
日志消息3与实体过滤器不匹配或与任何过滤器(即,过滤规则)不匹配。在实施例中,对于仅具有一个消息的踪迹存在偏置(bias)。因为对于主机1没有活动的踪迹(被排除的踪迹A除外),所以日志消息3存储在用于不匹配的消息的临时踪迹(未示出)中,直到出现匹配的日志消息或满足time_window_filter为止。在实施例中,临时踪迹中的不匹配的消息可以最终被重新指派给先前或后续的相邻踪迹,其可以被配置有不匹配预定义的规则,如以上示例规则中所示。例如,日志消息4及时到达以产生用于消息4的踪迹B。日志消息3从临时踪迹移到踪迹B。
在这个示例中,几乎任何踪迹都可以是临时的。例如,由于有实体过滤器,因此消息5-6最初被放入与字段Y中具有不同pid的消息4不同的踪迹(未示出)中。但是,消息8很快到达,其字段Y-Z指示pid 10和20个属于同一踪迹。因此,消息5-6从其临时踪迹移到踪迹B。实体匹配可以是可传递的。例如,消息8-9的组合指示pid10和30匹配,即使没有单独的日志消息建议这样做。因此,消息3-10属于踪迹B。
当从日志消息11-31生成踪迹C-1时,记住并使用pid 10、20和30之间的相关性。在实施例中,一对pid的每个相关可以在持续时间之后到期。例如,pid最终可以被重用于不相关的实体。同样,max_gap准则可以防止一些相邻消息被合并到同一踪迹中。例如,虽然有相邻的消息23-24,但踪迹G-H相隔一秒以上,如时间戳字段中的毫秒所指示的,该间隔太长以至于无法根据max_gap合并到同一踪迹中。
25.0机器学习模型
使用特定的机器学习算法来训练机器学习模型。一旦被训练,就将输入应用于机器学习模型以进行预测,该预测在本文中也可以被称为预测输出或输出。
机器学习模型包括模型数据表示或模型工件(artifact)。模型工件包括参数值,这些参数值在本文中可以被称为theta值,并且由机器学习算法将其应用于输入以生成预测输出。训练机器学习模型需要确定模型工件的theta值。theta值的结构和组织取决于机器学习算法。
在监督式训练中,训练数据被监督式训练算法用来训练机器学习模型。训练数据包括输入和“已知的”输出。在实施例中,监督式训练算法是迭代过程。在每次迭代中,机器学习算法都将模型工件和输入应用于生成预测输出。使用目标函数计算预测的输出与已知的输出之间的误差或方差。实际上,目标函数的输出基于迭代中模型工件的特定状态来指示机器学习模型的准确度。通过应用基于目标函数的优化算法,可以调节模型工件的theta值。优化算法的示例是梯度下降。可以重复迭代,直到实现期望的准确度或满足某个其它准则为止。
在软件实施方式中,当将机器学习模型称为接收输入、执行和/或生成输出或预测时,执行机器学习算法的计算机系统处理将模型工件应用于输入,以生成预测的输出。计算机系统处理通过执行被配置为引起算法执行的软件来执行机器学习算法。
机器学习(ML)擅长的问题类别包括聚类、分类、回归、异常检测、预测和降维(即,简化)。机器学习算法的示例包括决策树、支持向量机(SVM)、贝叶斯网络、诸如遗传算法(GA)之类的随机算法以及诸如人工神经网络(ANN)之类的连接主义拓扑。机器学习的实施方式可以依赖于矩阵、符号模型以及分层和/或关联的数据结构。最佳种类机器学习算法的参数化(即,可配置)实施方式可以在开源库中找到,开源库诸如Google的用于Python和C++的TensorFlow或佐治亚理工学院的用于C++的MLPack。Shogun是开源C++ML库,其带有用于若干编程语言(包括C#、Ruby、Lua、Java、Matlab、R和Python)的适配器。
25.1人工神经网络
人工神经网络(ANN)是在对由有向边互连的神经元系统进行高级别建模的机器学习模型。在分层前馈神经网络的上下文中描述神经网络的概述。其它类型的神经网络共享下面描述的神经网络的特点。
在诸如多层感知器(MLP)之类的分层前馈网络中,每一层包括一组神经元。分层的神经网络包括输入层、输出层和被称为隐藏层的一个或多个中间层。
输入层和输出层中的神经元分别被称为输入神经元和输出神经元。隐藏层或输出层中的神经元在本文中可以被称为激活神经元。激活神经元与激活功能相关联。输入层不包含任何激活神经元。
从输入层和隐藏层中的每个神经元出发,在后续的隐藏层或输出层中存在指向激活神经元的一条或多条有向边。每条边与权重相关联。从神经元到激活神经元的边表示从神经元到激活神经元的输入,如由权重调节的。
对于神经网络的给定输入,神经网络中的每个神经元具有激活值。对于输入节点,激活值只是该输入的输入值。对于激活神经元,激活值是激活神经元的相应激活函数的输出。
从特定节点到激活神经元的每条边表示特定神经元的激活值是激活神经元的输入,即激活神经元的激活函数的输入,如由边的权重调节的。因此,后续层中的激活神经元表示特定神经元的激活值是对激活神经元的激活函数的输入,如由边的权重调节的。激活神经元可以具有指向激活神经元的多条边,每条边表示来自源起源神经元的激活值(如由边的权重调节的)是激活神经元的激活函数的输入。
每个激活神经元与偏置相关联。为了生成激活节点的激活值,将神经元的激活函数应用于加权的激活值和偏置。
25.2用于神经网络的说明性数据结构
神经网络的工件可以包括权重和偏置的矩阵。训练神经网络可以迭代地调节权重和偏置的矩阵。
对于分层的前馈网络以及其它类型的神经网络,工件可以包括边W的一个或多个矩阵。矩阵W表示从层L-1到层L的边。假设层L-1和L中节点的数量分别为N[L-1]和N[L],那么矩阵W的维度为N[L-1]列和N[L-1]行。
用于特定层L的偏置也可以存储在具有N[L]行的一列的矩阵B中。
矩阵W和B可以作为向量或数组存储在RAM存储器中,或以逗号分隔的值集合存储在存储器中。当工件被持久存储在持久性存储装置中时,矩阵W和B可以以压缩和/串行化形式或其它合适的持久性形式存储为逗号分隔的值。
应用于神经网络的特定输入包括每个输入节点的值。特定输入可以被存储为向量。训练数据包括多个输入,每个输入被称为样本集合中的样本。每个样本包括每个输入节点的值。样本可以存储为输入值的向量,而多个样本可以存储为矩阵,矩阵中的每一行是一个样本。
当将输入应用于神经网络时,将为隐藏层和输出层生成激活值。对于每一层,激活值可以存储在矩阵A的一列中,该矩阵A对于层中的每个节点具有一行。在用于训练的向量化方法中,激活值可以存储在矩阵中,该矩阵对于训练数据中的每个样本具有一列。
训练神经网络要求存储和处理附加矩阵。优化算法生成用于调节权重W和偏置B的矩阵的导数值的矩阵。生成导数值可以使用并要求存储在计算每一层的激活值时生成的中间值的矩阵。
节点和/或边的数量确定了实现神经网络所需的矩阵的尺寸。神经网络中节点和边的数量越少,矩阵和存储矩阵所需的存储器就越小。此外,更少数量的节点和边减少了应用或训练神经网络所需的计算量。更少的节点意味着在训练期间需要计算的激活值越少和/或需要计算的导数越少。
用于实现神经网络的矩阵的特性与神经元和边对应。矩阵W中的单元格表示从L-1层到L层中的节点的特定边。激活神经元表示包括激活函数的该层的激活函数。L层中的激活神经元与矩阵W中用于L层和L-1层之间的边的权重的行以及矩阵W中用于L层和L+1层之间的边的权重的列对应。在执行神经网络期间,神经元还与存储在用于该层的矩阵A中并由激活函数生成的一个或多个激活值对应。
ANN服从于数据并行化的向量化,这可以利用向量硬件,诸如单指令多数据(SIMD),诸如利用图形处理单元(GPU)。矩阵分区可以实现水平缩放,例如利用对称多处理(SMP),诸如利用多核中央处理单元(CPU)和/或多个协处理器(诸如GPU)。ANN内的前馈计算可以在每个神经层只有一步的情况下发生。基于前一层的激活值的加权传播来计算一层中的激活值,使得(诸如利用for循环的相应迭代)针对每个后续层顺序地计算值。分层强加了不可并行化的计算顺序。因此,网络深度(即,层数)可以造成计算时延。深度学习需要赋予具有多层的多层感知器(MLP)。每一层实现数据抽象,而复杂的(即,具有若干输入的多维)抽象则需要实现级联处理的多层。基于可重用矩阵的ANN的实施方式和用于前馈处理的矩阵运算在神经网络库中很容易获得并且可并行化,神经网络库诸如Google的用于Python和C++的TensorFlow、用于C++的OpenNN以及哥本哈根大学的快速人工神经网络(FANN)。这些库还提供模型训练算法,诸如反向传播。
25.3反向传播(backpropagation)
ANN的输出可以或多或少是正确的。例如,识别字母的ANN可能会将I误认为是L,因为这些字母具有相似的特征。正确的输出可以具有(一个或多个)特定的值,而实际的输出可以具有稍不同的值。可以根据损失函数将正确输出与实际输出之间的算术或几何差异测量为误差,使得零表示无误差(即,完全准确)的行为。对于任何层中的任何边,正确输出与实际输出之间的差异是增量值。
反向传播需要通过ANN的层向ANN内的所有连接边以不同的数量向后分发误差。误差的传播造成对边权重的调节,这取决于每条边上的误差的梯度。通过将边的误差增量乘以上游神经元的激活值来计算边的梯度。当梯度为负时,边对网络贡献的误差的幅度越大,边的权重应当减少越多,这就是负加强。当梯度为正时,正加强需要增加其激活会减少误差的边的权重。边权重根据边的梯度的百分比进行调节。梯度越陡,调节越大。并非所有边权重都调节相同的量。随着模型训练以附加的输入样本继续进行,ANN的误差应当下降。当误差稳定(即,停止减少)或消失在阈值以下(即,接近零)时,训练可以停止。ChristopherM.Bishop在相关参考文献“EXACT CALCULATION OF THE HESSIAN MATRIX FOR THE MULTI-LAYER PERCEPTRON”中教导了用于前馈多层感知器(MLP)的示例数学公式和技术,包括矩阵运算和反向传播。
模型训练可以是监督式的,或者是非监督式的。对于监督式训练,对于训练集中的每个示例已经知道期望的(即,正确的)输出。训练集是通过(例如,人类专家)预先为每个示例指派类别标签来配置的。例如,用于光学字符识别的训练集可以具有各个字母的模糊照片,并且专家可以根据示出哪个字母预先标记每张照片。如上面所解释的,误差计算和反向传播发生。
因为需要在训练期间发现期望的输出,所以涉及更多的非监督式模型训练。非监督式训练可以更容易采用,因为不需要人类专家来预先标记训练示例。因此,非监督式训练节省人力。实现非监督式训练的自然方式是利用自动编码器,它是一种ANN。自动编码器用作具有两个层集合的编码器/解码器(编解码器)。第一层集合将输入示例编码为在模型训练期间需要被学习的浓缩代码。第二层集合对浓缩代码进行解码,以重新生成原始输入示例。两个层集合作为一个组合的ANN一起进行训练。误差被定义为原始输入与解码时重新生成的输入之间的差异。在充足训练之后,解码器或多或少确切地输出原始输入。
对于每个输入示例,自动编码器都依赖于浓缩代码作为中间格式。中间浓缩代码最初不存在,而是仅通过模型训练而出现,这可能与直觉相反。非监督式训练可以基于非预期相关性的特征和区别来实现中间编码的词汇表。例如,在监督式训练期间使用了哪些示例和哪些标签可以取决于人类专家对问题空间的理解有些不科学(例如,传闻)或不完整。但是,非监督式训练则或多或少地完全基于统计趋势来发现合适的中间词汇表,该统计趋势由于通过重新生成解码而产生的内部反馈来以充足训练可靠地收敛到最优性。在标题为“AUTO-ENCODER ENHANCED SELF-DIAGNOSTIC COMPONENTS FOR MODEL MONITORING”的相关美国专利申请No.14/558,700中教导了自动编码器的实现和集成技术。该专利申请将监督式或非监督式ANN模型提升为第一类对象,其服从于诸如模型开发期间(诸如训练期间)的监视和治理的管理技术。
25.4深度上下文概述
如上所述,ANN可以是无状态的,使得激活的定时或多或少与ANN行为无关。例如,识别特定字母可以孤立地发生而没有上下文。更复杂的分类可以或多或少地取决于附加的上下文信息。例如,瞬时输入的信息内容(即,复杂性)可以小于周围上下文的信息内容。因此,语义可以基于上下文而发生,诸如跨输入的时间序列或输入示例内的扩展模式(例如,复合几何形状)。已经出现了使深度学习成为上下文的各种技术。一种一般策略是上下文编码,其将刺激输入及其上下文(即,周围/相关细节)打包到可以应用于ANN以进行分析的相同(例如,密集)编码单元中。用于上下文编码的一种形式是图形嵌入,它构造并修剪(例如,限制其范围)相关事件或记录的逻辑图(例如,在时间或语义上)。图嵌入可以被用作上下文编码和对ANN的输入刺激。
隐藏状态(即,存储器)是用于(尤其是时间上的)序列处理的强大ANN增强。排序可以促进预测和操作异常检测,这可以是重要的技术。递归神经网络(RNN)是有状态的MLP,其以拓扑步骤布置,可以或多或少地作为处理流水线的阶段来操作。在折叠/卷起的实施例中,所有步骤都具有相同的连接权重,并且对于所有步骤可以共享单个一维权重向量。在递归实施例中,只有一个步骤将其输出中的一些再循环回到递归实现排序的该一个步骤。在展开/打开的实施例中,每个步骤可以具有不同的连接权重。例如,每个步骤的权重可以出现在二维权重矩阵的相应列中。
可以将输入的序列同时或顺序地应用于RNN的相应步骤,以引起对整个序列的分析。对于序列中的每个输入,RNN基于序列中的所有先前输入来预测下一个顺序输入。RNN可以预测或以其它方式输出已经接收到的几乎所有输入序列以及尚未接收到的下一个顺序输入。自己预测下一个输入可以是有价值的。将预测的序列与实际接收(和应用)的序列进行比较可以促进异常检测。例如,基于RNN的拼写模型可以预测在逐字母读取单词时U跟在Q后面。如果实际跟在Q后面的字母不是预期的U,那么检测到异常。
与由各个神经元组成的神经层不同,RNN的每个递归步骤都可以是由细胞(cell)组成的MLP,每个细胞包含一些专门布置的神经元。RNN细胞作为存储器的单元操作。RNN细胞可以由长短期记忆(LSTM)细胞实现。LSTM布置列神经元的方式不同于触发器中如何布置晶体管,但是LSTM和数字逻辑的共同目标是专门布置有状态的几个控制门。例如,神经存储器细胞可以具有输入门、输出门和遗忘(即,重置)门。与二进制电路不同,输入门和输出门可以传导由细胞保留的(例如,单位归一化的)数值,也作为数值。
与其它MLP相比,RNN具有两个主要的内部增强函数。第一个是局部化的存储器细胞,诸如LSTM,它涉及微观细节。另一个是递归步骤的交叉激活,这是宏观的(即,总体拓扑)。每个步骤接收两个输入并输出两个输出。一个输入是按输入序列从项目进行的外部激活。另一个输入是可以嵌入来自一些或所有先前步骤的细节的相邻先前步骤的输出,这实现了顺序历史(即,时间上下文)。另一个输出是序列中的预测的下一个项目。用于RNN和LSTM的示例数学公式和技术在标题为“MEMORY CELL UNIT AND RECURRENT NEURALNETWORK INCLUDING MULTIPLE MEMORY CELL UNITS”的相关的美国专利申请No.15/347,501中教导。
复杂的分析可以通过所谓的MLP堆栈来实现。示例堆栈可以将RNN夹在上游编码器ANN和下游解码器ANN之间,上游编码器ANN和下游解码器ANN中的二者或任一者可以是自动编码器。堆栈在MLP之间可以具有扇入和/或扇出。例如,RNN可以直接激活两个下游ANN,诸如异常检测器和自动解码器。自动解码器可能仅在模型训练期间存在,诸如用于监视训练的可见性或用在用于非监督式训练的反馈回路中。RNN模型训练可以使用一段时间内的反向传播,这是与普通反向传播相比可以为RNN模型实现更高准确度的技术。使用通过时间的反向传播来训练RNN模型的示例数学公式、伪代码和技术在标题为“MEMORY-EFFICIENTBACKPROGATING THROUGHH TIME”的相关的W.I.P.O专利申请No.PCT/US2017/033698中教导。
26.0硬件概述
根据一个实施例,本文描述的技术由一个或多个专用计算设备实现。专用计算设备可以是硬连线的以执行这些技术,或者可以包括数字电子设备(诸如被持久地编程为执行这些技术的一个或多个专用集成电路(ASIC)或现场可编程门阵列(FPGA)),或者可以包括被编程为根据固件、存储器、其它存储装置或组合中的程序指令执行这些技术的一个或多个通用硬件处理器。这种专用计算设备还可以将定制的硬连线逻辑、ASIC或FPGA与定制编程相结合,以实现这些技术。专用计算设备可以是台式计算机系统、便携式计算机系统、手持设备、联网设备或者结合硬连线和/或程序逻辑以实现这些技术的任何其它设备。
例如,图24是图示可以在其上实现本发明实施例的计算机系统2400的框图。计算机系统2400包括总线2402或用于传送信息的其它通信机制,以及与总线2402耦合以处理信息的硬件处理器2404。硬件处理器2404可以是例如通用微处理器。
计算机系统2400还包括耦合到总线2402用于存储将由处理器2404执行的信息和指令的主存储器2406,诸如随机存取存储器(RAM)或其它动态存储设备。主存储器2406还可以用于存储在执行由处理器2404执行的指令期间的临时变量或其它中间信息。当存储在处理器2404可访问的非瞬态存储介质中时,这些指令使计算机系统2400成为被定制以执行指令中指定的操作的专用机器。
计算机系统2400还包括耦合到总线2402用于存储用于处理器2404的静态信息和指令的只读存储器(ROM)2408或其它静态存储设备。提供存储设备246(诸如磁盘或光盘)并耦合到总线2402用于存储信息和指令。
计算机系统2400可以经由总线2402耦合到显示器2412(诸如阴极射线管(CRT)),用于向计算机用户显示信息。包括字母数字键和其它键的输入设备2414耦合到总线2402,用于将信息和命令选择传送到处理器2404。另一种类型的用户输入设备是光标控件2416(诸如鼠标、轨迹球或光标方向键),用于将方向信息和命令选择传送到处理器2404并用于控制显示器2412上的光标移动。这种输入设备通常在两个轴(第一轴(例如,x)和第二轴(例如,y))上具有两个自由度,这允许设备指定平面中的位置。
计算机系统2400可以使用定制的硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑(它们与计算机系统相结合,使计算机系统2400成为专用机器或将计算机系统2400编程为专用机器)来实现本文所述的技术。根据一个实施例,响应于处理器2404执行包含在主存储器2406中的一个或多个指令的一个或多个序列,计算机系统2400执行本文的技术。这些指令可以从另一个存储介质(诸如存储设备246)读入主存储器2406中。包含在主存储器2406中的指令序列的执行使得处理器2404执行本文所述的处理步骤。在替代实施例中,可以使用硬连线的电路系统代替软件指令或与软件指令组合。
如本文使用的术语“存储介质”是指存储使机器以特定方式操作的数据和/或指令的任何非瞬态介质。这种存储介质可以包括非易失性介质和/或易失性介质。非易失性介质包括例如光盘或磁盘,诸如存储设备246。易失性介质包括动态存储器,诸如主存储器2406。存储介质的常见形式包括例如软盘、柔性盘、硬盘、固态驱动器、磁带或任何其它磁数据存储介质、CD-ROM、任何其它光学数据存储介质、任何具有孔图案的物理介质、RAM、PROM和EPROM、FLASH-EPROM、NVRAM、任何其它存储器芯片或盒式磁带。
存储介质不同于传输介质但可以与传输介质结合使用。传输介质参与在存储介质之间传送信息。例如,传输介质包括同轴线缆、铜线和光纤,包括包含总线2402的导线。传输介质也可以采用声波或光波的形式,诸如在无线电波和红外数据通信期间生成的那些波。
各种形式的介质可以参与将一个或多个指令的一个或多个序列携带(carry)到处理器2404以供执行。例如,指令最初可以在远程计算机的磁盘或固态驱动器上携带。远程计算机可以将指令加载到其动态存储器中,并使用调制解调器通过电话线发送指令。计算机系统2400本地的调制解调器可以在电话线上接收数据并使用红外发送器将数据转换成红外信号。红外检测器可以接收红外信号中携带的数据,并且适当的电路系统可以将数据放在总线2402上。总线2402将数据携带到主存储器2406,处理器2404从该主存储器2406检索并执行指令。由主存储器2406接收的指令可以可选地在由处理器2404执行之前或之后存储在存储设备246上。
计算机系统2400还包括耦合到总线2402的通信接口2418。通信接口2418提供耦合到网络链路2420的双向数据通信,其中网络链路2420连接到本地网络2422。例如,通信接口2418可以是集成服务数字网(ISDN)卡、线缆调制解调器、卫星调制解调器或者提供与对应类型的电话线的数据通信连接的调制解调器。作为另一个示例,通信接口2418可以是局域网(LAN)卡,以提供与兼容LAN的数据通信连接。还可以实现无线链路。在任何此类实现中,通信接口2418都发送和接收携带表示各种类型信息的数字数据流的电信号、电磁信号或光信号。
网络链路2420通常通过一个或多个网络向其它数据设备提供数据通信。例如,网络链路2420可以提供通过本地网络2422到主计算机2424或到由互联网服务提供商(ISP)2426操作的数据设备的连接。ISP 2426进而通过全球分组数据通信网络(现在通常称为“互联网”2428)提供数据通信服务。本地网络2422和互联网2428都使用携带数字数据流的电信号、电磁信号或光信号。通过各种网络的信号以及网络链路2420上并通过通信接口2418的信号(其将数字数据携带到计算机系统2400和从计算机系统2400携带数字数据)是传输介质的示例形式。
计算机系统2400可以通过(一个或多个)网络、网络链路2420和通信接口2418发送消息和接收包括程序代码的数据。在互联网示例中,服务器2430可以通过互联网2428、ISP2426、本地网络2422和通信接口2418发送对应用程序的所请求代码。
接收到的代码可以在被接收到时由处理器2404执行,和/或存储在存储设备246或其它非易失性存储器中以供稍后执行。
27.0软件概述
图25是可以用于控制计算系统2400的操作的基本软件系统2500的框图。软件系统2500及其部件(包括它们的连接、关系和功能)仅仅是示例性的,并且不意味着限制(一个或多个)示例实施例的实现。适于实现(一个或多个)示例实施例的其它软件系统可以具有不同的部件,包括具有不同的连接、关系和功能的部件。
提供软件系统2500用于指导计算系统2400的操作。可以存储在系统存储器(RAM)2406和固定存储装置(例如,硬盘或闪存)246上的软件系统2500包括内核或操作系统(OS)2510。
OS 2510管理计算机操作的低级别方面,包括管理进程的执行、存储器分配、文件输入和输出(I/O)以及设备I/O。表示为2502A、2502B、2502C...2502N的一个或多个应用可以被“加载”(例如,从固定存储装置246传送到存储器2406中)以供系统2500执行。意图在计算机系统2400上使用的应用或其它软件也可以被存储为可下载的计算机可执行指令集,例如,用于从互联网位置(例如,Web服务器、app商店或其它在线服务)下载和安装。
软件系统2500包括图形用户界面(GUI)2515,用于以图形(例如,“点击”或“触摸手势”)方式接收用户命令和数据。进而,这些输入可以由系统2500根据来自操作系统2510和/或(一个或多个)应用2502的指令来操作。GUI 2515还用于显示来自OS 2510和(一个或多个)应用2502的操作结果,自此用户可以提供附加的输入或终止会话(例如,注销)。
OS 2510可以直接在计算机系统2400的裸硬件2520(例如,(一个或多个)处理器2404)上执行。可替代地,管理程序或虚拟机监视器(VMM)2530可以插入在裸硬件820和OS2510之间。在这个配置中,VMM 2530充当OS 2510与计算机系统2400的裸硬件2520之间的软件“缓冲”或虚拟化层。
VMM 2530实例化并运行一个或多个虚拟机实例(“客人(guest)机”)。每个客人机包括“客人”操作系统(诸如OS2510),以及被设计为在客人操作系统上执行的一个或多个应用(诸如(一个或多个)应用2502)。VMM 2530向客人操作系统呈现虚拟操作平台并管理客人操作系统的执行。
在一些实例中,VMM 2530可以允许客人操作系统(OS)如同它直接在计算机系统2400的裸硬件2520上运行一样运行。在这些实例中,被配置为直接在裸硬件2520上执行的客人操作系统的相同版本也可以在VMM 2530上执行而无需修改或重新配置。换句话说,VMM2530可以在一些情况下向客人操作系统提供完全硬件和CPU虚拟化。
在其它实例中,客人操作系统可以被专门设计或配置为在VMM 2530上执行以提高效率。在这些实例中,客人操作系统“意识到”它在虚拟机监视器上执行。换句话说,VMM2530可以在一些情况下向客户操作系统提供半虚拟化。
计算机系统进程包括硬件处理器时间的分配,以及存储器的分配(物理和/或虚拟),其中存储器的分配用于存储由硬件处理器执行的指令、用于存储由硬件处理器执行指令所生成的数据、和/或用于在计算机系统进程未运行的情况下在硬件处理器时间的分配之间存储硬件处理器状态(例如,寄存器的内容)。计算机系统进程在操作系统的控制下运行,并且可以在计算机系统上执行的其它程序的控制下运行。
28.0云计算
本文一般地使用术语“云计算”来描述计算模型,该计算模型使得能够按需访问计算资源的共享池,诸如计算机网络、服务器、软件应用和服务,并且允许以最少的管理工作或服务提供商交互来快速提供和释放资源。
云计算环境(有时称为云环境或云)可以以各种不同方式实现,以最好地适应不同要求。例如,在公共云环境中,底层计算基础设施由组织拥有,该组织使其云服务可供其它组织或公众使用。相反,私有云环境一般仅供单个组织使用或在单个组织内使用。社区云旨在由社区内的若干组织共享;而混合云包括通过数据和应用可移植性绑定在一起的两种或更多种类型的云(例如,私有、社区或公共)。
一般而言,云计算模型使得先前可能由组织自己的信息技术部门提供的那些职责中的一些代替地作为云环境内的服务层来递送,以供消费者(根据云的公共/私人性质,在组织内部或外部)使用。取决于特定实现,由每个云服务层提供或在每个云服务层内提供的部件或特征的精确定义可以有所不同,但常见示例包括:软件即服务(SaaS),其中消费者使用在云基础设施上运行的软件应用,同时SaaS提供者管理或控制底层云基础设施和应用。平台即服务(PaaS),其中消费者可以使用由PaaS的供应者支持的软件编程语言和开发工具,以开发、部署和以其它方式控制它们自己的应用,同时PaaS提供者管理或控制云环境的其它方面(即,运行时执行环境下的一切)。基础设施即服务(IaaS),其中消费者可以部署和运行任意软件应用,和/或提供处理、存储装置、网络和其它基础计算资源,同时IaaS提供者管理或控制底层物理云基础设施(即,操作系统层下面的一切)。数据库即服务(DBaaS),其中消费者使用在云基础设施上运行的数据库服务器或数据库管理系统,同时DbaaS提供者管理或控制底层云基础设施和应用。
给出上述基本计算机硬件和软件以及云计算环境是为了说明可以用于实现(一个或多个)示例实施例的基本底层计算机部件。但是,(一个或多个)示例实施例不必限于任何特定的计算环境或计算设备配置。代替地,(一个或多个)示例实施例可以在本领域技术人员鉴于本公开将理解为能够支持本文给出的(一个或多个)示例实施例的特征和功能的任何类型的系统体系架构或处理环境中实现。
在前述说明书中,已经参考许多具体细节描述了本发明的实施例,这些具体细节可能因实施方案而不同。因此,应当在说明性而不是限制性的意义上看待说明书和附图。本发明范围的唯一且排他的指示以及申请人意在要作为本发明范围的是以由本申请产生的一组权利要求的具体形式的所产生权利要求的字面和等同范围,包括任何后续的校正。

Claims (27)

1.一种方法,包括:
生成与网络分组的序列对应的实际密集特征向量的序列,其中实际密集特征向量的序列的每个特征向量表示网络分组的序列中的相应网络分组;
递归神经网络(RNN)基于实际密集特征向量的序列来生成表示网络分组的序列的预测的密集特征向量的序列;
基于预测的密集特征向量的序列来处理网络分组的序列,
其中:
生成实际密集特征向量的序列包括:
生成与网络分组的序列对应的实际未经处理特征向量的序列,以及
将实际未经处理特征向量的序列编码为实际密集特征向量的序列;
实际未经处理特征向量的序列的每个特征向量具有比实际密集特征向量的序列的对应特征向量更多的位。
2.如权利要求1所述的方法,其中对实际未经处理特征向量的序列进行编码包括至少通过人工神经网络(ANN)的第一神经层进行处理,该第一神经层完全连接到所述ANN的第二神经层。
3.如权利要求2所述的方法,其中ANN包括自动编码器。
4.如权利要求1所述的方法,其中:
所述方法还包括通过对预测的密集特征向量的序列进行解码来生成预测的未经处理特征向量的序列;
预测的未经处理特征向量的序列的每个特征向量具有比预测的密集特征向量的序列的对应特征向量更多的位;
所述处理网络分组的序列包括:
基于实际未经处理特征向量的序列和预测的未经处理特征向量的序列,为网络分组的序列生成异常分数;
基于异常分数来处理网络分组的序列。
5.如权利要求4所述的方法,其中为网络分组的序列生成异常分数包括将实际未经处理特征向量的序列与预测的未经处理特征向量的序列进行比较。
6.如权利要求4所述的方法,其中:
RNN包括递归步骤的序列;
RNN生成预测的密集特征向量的序列包括对于实际密集特征向量的序列的每个当前特征向量:
将当前特征向量输入递归步骤的序列的对应递归步骤;
由所述对应递归步骤生成下一个预测的密集特征向量,该下一个预测的密集特征向量近似于在实际密集特征向量的序列中在当前特征向量之后出现的下一个实际密集特征向量;
通过对所述下一个预测的密集特征向量进行解码来生成预测的未经处理特征向量的所述序列的下一个预测的未经处理特征向量;以及
将下一个预测的未经处理特征向量与实际未经处理特征向量的所述序列的下一个实际未经处理特征向量进行比较,以生成针对网络分组的序列的下一个实际分组的个体异常分数;
针对网络分组的序列的异常分数基于为实际未经处理特征向量的序列生成的个体异常分数。
7.如权利要求4所述的方法,其中针对网络分组的序列的异常分数基于以下中的至少一种统计数据:最小值、最大值、或者算术或几何平均值。
8.如权利要求4所述的方法,其中所述基于异常分数来处理网络分组的序列包括警告网络攻击。
9.如权利要求8所述的方法,其中警告网络攻击包括检测到异常分数超过阈值。
10.如权利要求8所述的方法,其中网络攻击包括以下中的至少一个:HTTP拒绝服务、蛮力安全外壳(SSH)或SNMP反射放大。
11.如权利要求1所述的方法,其中实际未经处理特征向量的序列的每个特征向量基本上由固定量的位组成。
12.如权利要求11所述的方法,其中从由所述特征向量表示的网络分组的序列的相应网络分组中复制固定量的位。
13.如权利要求1所述的方法,其中实际未经处理特征向量的序列的每个特征向量包括从所述特征向量表示的网络分组的序列的相应网络分组中获得的多个语义特征。
14.如权利要求13所述的方法,其中所述多个语义特征包括所述相应网络分组的协议元数据。
15.如权利要求14所述的方法,其中所述协议元数据包括以下中的至少一个:源IP地址、目的地IP地址、源端口、目的地端口、协议标记或时间戳。
16.如权利要求1所述的方法,其中RNN包括长短期记忆(LSTM)网络。
17.如权利要求1所述的方法,其中网络分组的序列符合以下中的至少一个协议:互联网协议(IP)、传输控制协议(TCP)、用户数据报协议(UDP)、超文本传输协议(HTTP)或简单网络管理协议(SNMP)。
18.如权利要求1所述的方法,其中网络分组的序列的每个分组包括以太网帧。
19.如权利要求1所述的方法,其中网络分组的序列是双向的。
20.如权利要求1所述的方法,还包括基于识别特定的一对传输层端点计算机从网络流量中提取网络分组的序列。
21.如权利要求20所述的方法,其中提取网络分组的序列还基于识别所述特定的一对传输层端点计算机的特定的一对网络端口。
22.如权利要求1所述的方法,还包括由RNN在训练期间进行无监督学习。
23.如权利要求1所述的方法,其中:
RNN包括神经元之间的连接权重;
该方法还包括梯度下降,以在训练期间优化所述连接权重。
24.如权利要求1所述的方法,还包括:
在训练之前根据超参数来配置RNN;
在配置RNN之前自动调谐超参数。
25.如权利要求24所述的方法,其中:
RNN包括多个神经层;
所述超参数包括以下中的至少一个:所述多个神经层中的层的计数或每层隐藏单元的计数。
26.一种或多种非暂态计算机可读介质,存储一个或多个指令序列,所述一个或多个指令序列在由一个或多个处理器执行时,使得执行如权利要求1-25中任一项所述的方法。
27.一种设备,包括:
一个或多个处理器;以及
存储器,耦合到所述一个或多个处理器并且包括存储在其上的指令,所述指令在由所述一个或多个处理器执行时,使得执行如权利要求1-25中任一项所述的方法。
CN202110514951.0A 2018-09-05 2019-07-23 使用深度递归神经网络的上下文感知特征嵌入和序列日志数据的异常检测 Active CN113190842B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110514951.0A CN113190842B (zh) 2018-09-05 2019-07-23 使用深度递归神经网络的上下文感知特征嵌入和序列日志数据的异常检测

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US16/122,505 2018-09-05
US16/122,505 US11218498B2 (en) 2018-09-05 2018-09-05 Context-aware feature embedding and anomaly detection of sequential log data using deep recurrent neural networks
PCT/US2019/043107 WO2020050920A1 (en) 2018-09-05 2019-07-23 Context-aware feature embedding and anomaly detection of sequential log data using deep recurrent neural networks
CN202110514951.0A CN113190842B (zh) 2018-09-05 2019-07-23 使用深度递归神经网络的上下文感知特征嵌入和序列日志数据的异常检测
CN201980067519.2A CN112840355A (zh) 2018-09-05 2019-07-23 使用深度递归神经网络的上下文感知特征嵌入和序列日志数据的异常检测

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201980067519.2A Division CN112840355A (zh) 2018-09-05 2019-07-23 使用深度递归神经网络的上下文感知特征嵌入和序列日志数据的异常检测

Publications (2)

Publication Number Publication Date
CN113190842A CN113190842A (zh) 2021-07-30
CN113190842B true CN113190842B (zh) 2024-02-13

Family

ID=67544419

Family Applications (3)

Application Number Title Priority Date Filing Date
CN202110516260.4A Pending CN113190843A (zh) 2018-09-05 2019-07-23 使用深度递归神经网络的上下文感知特征嵌入和序列日志数据的异常检测
CN202110514951.0A Active CN113190842B (zh) 2018-09-05 2019-07-23 使用深度递归神经网络的上下文感知特征嵌入和序列日志数据的异常检测
CN201980067519.2A Pending CN112840355A (zh) 2018-09-05 2019-07-23 使用深度递归神经网络的上下文感知特征嵌入和序列日志数据的异常检测

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202110516260.4A Pending CN113190843A (zh) 2018-09-05 2019-07-23 使用深度递归神经网络的上下文感知特征嵌入和序列日志数据的异常检测

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201980067519.2A Pending CN112840355A (zh) 2018-09-05 2019-07-23 使用深度递归神经网络的上下文感知特征嵌入和序列日志数据的异常检测

Country Status (4)

Country Link
US (1) US11218498B2 (zh)
EP (1) EP3847585A1 (zh)
CN (3) CN113190843A (zh)
WO (1) WO2020050920A1 (zh)

Families Citing this family (84)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11615285B2 (en) 2017-01-06 2023-03-28 Ecole Polytechnique Federale De Lausanne (Epfl) Generating and identifying functional subnetworks within structural networks
US10929722B2 (en) * 2017-05-19 2021-02-23 Nec Corporation Anomaly detection in streaming networks
US11120368B2 (en) 2017-09-27 2021-09-14 Oracle International Corporation Scalable and efficient distributed auto-tuning of machine learning and deep learning models
US11176487B2 (en) 2017-09-28 2021-11-16 Oracle International Corporation Gradient-based auto-tuning for machine learning and deep learning models
US11544494B2 (en) 2017-09-28 2023-01-03 Oracle International Corporation Algorithm-specific neural network architectures for automatic machine learning model selection
US11972343B2 (en) 2018-06-11 2024-04-30 Inait Sa Encoding and decoding information
US11663478B2 (en) 2018-06-11 2023-05-30 Inait Sa Characterizing activity in a recurrent artificial neural network
US11893471B2 (en) 2018-06-11 2024-02-06 Inait Sa Encoding and decoding information and artificial neural networks
US11169514B2 (en) * 2018-08-27 2021-11-09 Nec Corporation Unsupervised anomaly detection, diagnosis, and correction in multivariate time series data
US11082438B2 (en) 2018-09-05 2021-08-03 Oracle International Corporation Malicious activity detection by cross-trace analysis and deep learning
US11451565B2 (en) 2018-09-05 2022-09-20 Oracle International Corporation Malicious activity detection by cross-trace analysis and deep learning
US11620525B2 (en) * 2018-09-25 2023-04-04 Advanced Micro Devices, Inc. Dropout for accelerated deep learning in heterogeneous architectures
US11568133B2 (en) * 2018-12-11 2023-01-31 Intuit Inc. Method and apparatus for detecting anomalies in mission critical environments
US20200204571A1 (en) * 2018-12-19 2020-06-25 AVAST Software s.r.o. Malware detection in network traffic time series
US11521132B2 (en) * 2019-02-12 2022-12-06 Nec Corporation Method and system for adaptive online meta learning from data streams
JP7175216B2 (ja) * 2019-02-15 2022-11-18 ルネサスエレクトロニクス株式会社 異常検知装置、異常検知システム、異常検知方法
US11652603B2 (en) 2019-03-18 2023-05-16 Inait Sa Homomorphic encryption
US11569978B2 (en) 2019-03-18 2023-01-31 Inait Sa Encrypting and decrypting information
US10951649B2 (en) * 2019-04-09 2021-03-16 Arbor Networks, Inc. Statistical automatic detection of malicious packets in DDoS attacks using an encoding scheme associated with payload content
US11606258B2 (en) * 2019-04-23 2023-03-14 Red Hat, Inc. Determining network topology based on packet traffic
KR20200141812A (ko) * 2019-06-11 2020-12-21 삼성전자주식회사 뉴럴 네트워크를 이용하여 이상 신호를 감지하는 방법 및 장치
US11601339B2 (en) * 2019-09-06 2023-03-07 Hewlett Packard Enterprise Development Lp Methods and systems for creating multi-dimensional baselines from network conversations using sequence prediction models
US11599799B1 (en) * 2019-09-17 2023-03-07 Rockwell Collins, Inc. Digital signal processing with neural networks
US20210089656A1 (en) * 2019-09-19 2021-03-25 Raytheon Company Real-time adaptive intrusion detection methods and apparatus
US11567850B2 (en) * 2019-10-01 2023-01-31 Salesforce, Inc. Detecting application events based on encoding application log values
US11818145B2 (en) * 2019-12-09 2023-11-14 International Business Machines Corporation Characterizing user behavior in a computer system by automated learning of intention embedded in a system-generated event graph
US11580401B2 (en) 2019-12-11 2023-02-14 Inait Sa Distance metrics and clustering in recurrent neural networks
US11797827B2 (en) * 2019-12-11 2023-10-24 Inait Sa Input into a neural network
US11816553B2 (en) 2019-12-11 2023-11-14 Inait Sa Output from a recurrent neural network
US11651210B2 (en) 2019-12-11 2023-05-16 Inait Sa Interpreting and improving the processing results of recurrent neural networks
US11847559B2 (en) * 2020-03-04 2023-12-19 HCL America, Inc. Modifying data cleansing techniques for training and validating an artificial neural network model
US11831606B2 (en) * 2020-04-29 2023-11-28 Kyndryl, Inc. Dynamically managing firewall ports of an enterprise network
US11537498B2 (en) * 2020-06-16 2022-12-27 Microsoft Technology Licensing, Llc Techniques for detecting atypical events in event logs
EP3933699A1 (en) * 2020-06-30 2022-01-05 Siemens Aktiengesellschaft A computer-implemented method and apparatus for automatically annotating columns of a table with semantic types
US11429352B2 (en) 2020-07-01 2022-08-30 International Business Machines Corporation Building pre-trained contextual embeddings for programming languages using specialized vocabulary
US20220019887A1 (en) * 2020-07-14 2022-01-20 International Business Machines Corporation Anomaly detection in network topology
US11947627B2 (en) * 2020-07-28 2024-04-02 International Business Machines Corporation Context aware anomaly detection
US11533217B2 (en) 2020-07-31 2022-12-20 Hewlett Packard Enterprise Development Lp Systems and methods for predictive assurance
CN111932010B (zh) * 2020-08-10 2023-09-22 重庆大学 一种基于骑行上下文信息的共享单车流量预测方法
CN112309112B (zh) * 2020-09-10 2021-10-29 浙江工业大学 一种基于GraphSAGE-GAN的交通路网数据修复方法
US20220100725A1 (en) * 2020-09-28 2022-03-31 Jpmorgan Chase Bank, N.A. Systems and methods for counteracting data-skewness for locality sensitive hashing via feature selection and pruning
WO2022070278A1 (ja) * 2020-09-29 2022-04-07 楽天グループ株式会社 異常判定システム、異常判定方法及びプログラム
US11989657B2 (en) 2020-10-15 2024-05-21 Oracle International Corporation Automated machine learning pipeline for timeseries datasets utilizing point-based algorithms
US20220172037A1 (en) * 2020-11-30 2022-06-02 International Business Machines Corporation Proactive anomaly detection
US11513930B2 (en) 2020-12-03 2022-11-29 International Business Machines Corporation Log-based status modeling and problem diagnosis for distributed applications
US11403326B2 (en) 2020-12-03 2022-08-02 International Business Machines Corporation Message-based event grouping for a computing operation
US11243835B1 (en) 2020-12-03 2022-02-08 International Business Machines Corporation Message-based problem diagnosis and root cause analysis
US11995562B2 (en) 2020-12-03 2024-05-28 International Business Machines Corporation Integrating documentation knowledge with log mining for system diagnosis
US11599404B2 (en) 2020-12-03 2023-03-07 International Business Machines Corporation Correlation-based multi-source problem diagnosis
US11797538B2 (en) 2020-12-03 2023-10-24 International Business Machines Corporation Message correlation extraction for mainframe operation
US11474892B2 (en) 2020-12-03 2022-10-18 International Business Machines Corporation Graph-based log sequence anomaly detection and problem diagnosis
US11451670B2 (en) 2020-12-16 2022-09-20 Oracle International Corporation Anomaly detection in SS7 control network using reconstructive neural networks
US11449517B2 (en) 2020-12-22 2022-09-20 Oracle International Corporation Kernel subsampling for an accelerated tree similarity computation
CN112667464A (zh) * 2020-12-22 2021-04-16 国网甘肃省电力公司 一种信息系统状态智能化分析方法、系统及设备
CN112634620B (zh) * 2020-12-24 2021-11-30 东南大学 基于Encoder-Decoder深度神经网络的路网动态交通分配方法
US20220210171A1 (en) * 2020-12-29 2022-06-30 IronNet Cybersecurity, Inc. Systems and methods for detecting malicious network traffic using multi-domain machine learning
US20220222695A1 (en) * 2021-01-13 2022-07-14 Mastercard International Incorporated Content communications system with conversation-to-topic microtrend mapping
US20220229903A1 (en) * 2021-01-21 2022-07-21 Intuit Inc. Feature extraction and time series anomaly detection over dynamic graphs
US11704386B2 (en) 2021-03-12 2023-07-18 Oracle International Corporation Multi-stage feature extraction for effective ML-based anomaly detection on structured log data
CN113553245B (zh) * 2021-05-20 2022-04-19 中国海洋大学 结合双向切片gru与门控注意力机制日志异常检测方法
CN113420291B (zh) * 2021-07-19 2022-06-14 宜宾电子科技大学研究院 基于权重集成的入侵检测特征选择方法
US11818219B2 (en) * 2021-09-02 2023-11-14 Paypal, Inc. Session management system
US20230104757A1 (en) * 2021-10-01 2023-04-06 Oracle International Corporation Techniques for input classification and response using generative neural networks
US20230134620A1 (en) * 2021-10-28 2023-05-04 Jpmorgan Chase Bank, N.A. Method and system for real-time analytic of time series data
CN114243799B (zh) * 2022-01-05 2023-11-07 国网浙江省电力有限公司宁波供电公司 基于分布式电源的深度强化学习配电网故障恢复方法
CN114444485B (zh) * 2022-01-24 2023-06-06 四川大学 一种云环境网络设备实体识别方法
US20230237150A1 (en) * 2022-01-26 2023-07-27 Dell Products L.P. Structured data flow identification for proactive issue detection
GB202202046D0 (en) * 2022-02-16 2022-03-30 British Telecomm Anomaly detection
US20230275912A1 (en) * 2022-02-25 2023-08-31 Microsoft Technology Licensing, Llc Graph-based analysis of security incidents
WO2023178467A1 (en) * 2022-03-21 2023-09-28 Qualcomm Incorporated Energy-efficient anomaly detection and inference on embedded systems
FR3136917A1 (fr) * 2022-06-17 2023-12-22 Orange Détection d’anomalies pour la maintenance applicative de dispositifs
CN114860673B (zh) * 2022-07-06 2022-09-30 南京聚铭网络科技有限公司 基于动静结合的日志特征识别方法及装置
CN115270125A (zh) * 2022-08-11 2022-11-01 江苏安超云软件有限公司 Ids日志分类预测方法、装置、设备及存储介质
CN115348184B (zh) * 2022-08-16 2024-01-26 江苏商贸职业学院 一种物联网数据安全事件预测方法及系统
CN115456789B (zh) * 2022-11-10 2023-04-07 杭州衡泰技术股份有限公司 基于交易模式识别的异常交易检测方法及其系统
CN115834334A (zh) * 2022-11-28 2023-03-21 贵州电网有限责任公司 一种设备故障检测方法、装置、设备及存储介质
CN115617694B (zh) * 2022-11-30 2023-03-10 中南大学 基于信息融合的软件缺陷预测方法、系统、设备及介质
US11934523B1 (en) * 2022-12-01 2024-03-19 Flexxon Pte. Ltd. System and method for securing data files
CN115795351B (zh) * 2023-01-29 2023-06-09 杭州市特种设备检测研究院(杭州市特种设备应急处置中心) 一种基于残差网络和2d特征表示的电梯大数据风险预警方法
CN116011505B (zh) * 2023-03-15 2024-05-14 图灵人工智能研究院(南京)有限公司 基于特征对比的多模块动态模型训练方法、装置
CN115987689B (zh) * 2023-03-20 2023-06-27 北京邮电大学 一种网络入侵检测方法及装置
CN116743636B (zh) * 2023-08-14 2023-10-31 中国电信股份有限公司 异常数据的检测方法、装置、电子设备及计算机可读介质
CN117540304B (zh) * 2024-01-10 2024-05-17 山东盈和新材料科技有限公司 一种粘合剂生产数据处理方法
CN117914629B (zh) * 2024-03-18 2024-05-28 台州市大数据发展有限公司 一种网络安全检测方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108089962A (zh) * 2017-11-13 2018-05-29 北京奇艺世纪科技有限公司 一种异常检测方法、装置及电子设备

Family Cites Families (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020169735A1 (en) 2001-03-07 2002-11-14 David Kil Automatic mapping from data to preprocessing algorithms
US8438120B2 (en) 2007-04-25 2013-05-07 Nederlandse Organisatie Voor Toegepast-Natuurwetenschappelijk Onderzoek Tno Machine learning hyperparameter estimation
CN101727447A (zh) * 2008-10-10 2010-06-09 浙江搜富网络技术有限公司 基于url的正则表达式的生成方法和装置
US8495429B2 (en) * 2010-05-25 2013-07-23 Microsoft Corporation Log message anomaly detection
US9020871B2 (en) 2010-06-18 2015-04-28 Microsoft Technology Licensing, Llc Automated classification pipeline tuning under mobile device resource constraints
GB2502531A (en) 2012-05-29 2013-12-04 Ibm De-serializing a source object to a target object
US20140101117A1 (en) 2012-10-10 2014-04-10 Salesforce.Com, Inc. Methods and systems for managing records in an on-demand system
US9773041B2 (en) 2013-03-06 2017-09-26 Oracle International Corporation Methods and apparatus of shared expression evaluation across RDBMS and storage layer
WO2014138468A1 (en) * 2013-03-07 2014-09-12 Prostim Labs, Llc Fracturing systems and methods for a wellbore
US9904893B2 (en) * 2013-04-02 2018-02-27 Patternex, Inc. Method and system for training a big data machine to defend
CN104144063B (zh) * 2013-05-08 2018-08-10 朱烨 基于日志分析和防火墙安全矩阵的网站安全监控报警系统
US9330362B2 (en) 2013-05-15 2016-05-03 Microsoft Technology Licensing, Llc Tuning hyper-parameters of a computer-executable learning algorithm
CN104239158A (zh) * 2013-06-07 2014-12-24 Sap欧洲公司 用于自动分析和链接错误日志的分析引擎
US11501042B2 (en) 2014-03-24 2022-11-15 Imagars Llc Decisions with big data
EP2945113A1 (en) 2014-05-14 2015-11-18 Cisco Technology, Inc. Audience segmentation using machine-learning
US10496927B2 (en) 2014-05-23 2019-12-03 DataRobot, Inc. Systems for time-series predictive data analytics, and related methods and apparatus
US10069900B2 (en) 2014-08-05 2018-09-04 Oracle International Corporation Systems and methods for adaptive thresholding using maximum concentration intervals
US20160092516A1 (en) 2014-09-26 2016-03-31 Oracle International Corporation Metric time series correlation by outlier removal based on maximum concentration interval
US11836746B2 (en) 2014-12-02 2023-12-05 Fair Isaac Corporation Auto-encoder enhanced self-diagnostic components for model monitoring
US10565520B2 (en) 2015-03-12 2020-02-18 Accenture Global Solutions Limited Feature extraction for machine learning
CN107428433A (zh) 2015-03-27 2017-12-01 菲利普莫里斯生产公司 具有含有切口的隔片的用于消费制品的容器
US10366096B2 (en) * 2015-04-03 2019-07-30 Oracle International Corporation Method and system for implementing a log parser in a log analytics system
US20160358099A1 (en) 2015-06-04 2016-12-08 The Boeing Company Advanced analytical infrastructure for machine learning
US20170083827A1 (en) 2015-09-23 2017-03-23 Qualcomm Incorporated Data-Driven Accelerator For Machine Learning And Raw Data Analysis
US9928155B2 (en) * 2015-11-18 2018-03-27 Nec Corporation Automated anomaly detection service on heterogeneous log streams
US20170295068A1 (en) * 2016-04-06 2017-10-12 Omni Al, Inc. Logical network topology analyzer
CN105975604B (zh) * 2016-05-12 2017-10-03 清华大学 一种分布迭代式数据处理程序异常检测与诊断方法
EP3446260B1 (en) 2016-05-20 2019-09-25 DeepMind Technologies Limited Memory-efficient backpropagation through time
KR20180003123A (ko) 2016-06-30 2018-01-09 삼성전자주식회사 메모리 셀 유닛 및 메모리 셀 유닛들을 포함하는 순환 신경망
US20180060220A1 (en) 2016-08-23 2018-03-01 Linkedin Corporation Fixture plugin for product automation
US10318405B2 (en) 2016-08-24 2019-06-11 International Business Machines Corporation Applying consistent log levels to application log messages
US10313422B2 (en) * 2016-10-17 2019-06-04 Hitachi, Ltd. Controlling a device based on log and sensor data
IL257381A (en) 2017-02-06 2018-03-29 Neural Algorithms Ltd System and method for automatically building data models
CN107391353B (zh) * 2017-07-07 2020-07-28 西安电子科技大学 基于日志的复杂软件系统异常行为检测方法
US10664196B2 (en) 2017-07-14 2020-05-26 Clipchamp Ip Pty Ltd Random access file management
US11397887B2 (en) 2017-09-26 2022-07-26 Amazon Technologies, Inc. Dynamic tuning of training parameters for machine learning algorithms
US11120368B2 (en) 2017-09-27 2021-09-14 Oracle International Corporation Scalable and efficient distributed auto-tuning of machine learning and deep learning models
US11176487B2 (en) 2017-09-28 2021-11-16 Oracle International Corporation Gradient-based auto-tuning for machine learning and deep learning models
US11544494B2 (en) 2017-09-28 2023-01-03 Oracle International Corporation Algorithm-specific neural network architectures for automatic machine learning model selection
CN108055152B (zh) * 2017-12-11 2020-11-06 国网河南省电力公司信息通信公司 基于分布式服务日志的通信网络信息系统异常检测方法
US11120127B2 (en) 2017-12-27 2021-09-14 Nec Corporation Reconstruction-based anomaly detection
US20190244139A1 (en) 2018-02-02 2019-08-08 Oracle International Corporation Using meta-learning for automatic gradient-based hyperparameter optimization for machine learning and deep learning models
JP7184078B2 (ja) * 2018-04-19 2022-12-06 日本電気株式会社 ログ分析システム、ログ分析方法及びプログラム
US20190370695A1 (en) * 2018-05-31 2019-12-05 Microsoft Technology Licensing, Llc Enhanced pipeline for the generation, validation, and deployment of machine-based predictive models
US11321133B2 (en) 2018-06-08 2022-05-03 International Business Machines Corporation Determining an allocation of stage and destage tasks by using a machine learning module
WO2020005895A1 (en) 2018-06-25 2020-01-02 Nasdaq, Inc. Systems and methods of windowing time series data for pattern detection
US11271939B2 (en) 2018-07-31 2022-03-08 Splunk Inc. Facilitating detection of suspicious access to resources
US11451565B2 (en) 2018-09-05 2022-09-20 Oracle International Corporation Malicious activity detection by cross-trace analysis and deep learning
US11082438B2 (en) 2018-09-05 2021-08-03 Oracle International Corporation Malicious activity detection by cross-trace analysis and deep learning
US11048727B2 (en) 2018-09-10 2021-06-29 Ciena Corporation Systems and methods for automated feature selection and pattern discovery of multi-variate time-series
US11341281B2 (en) 2018-09-14 2022-05-24 International Business Machines Corporation Providing differential privacy in an untrusted environment
US11710034B2 (en) 2019-02-27 2023-07-25 Intel Corporation Misuse index for explainable artificial intelligence in computing environments
US11562278B2 (en) 2019-05-16 2023-01-24 Siemens Aktiengesellschaft Quantum machine learning algorithm for knowledge graphs
US20200364585A1 (en) 2019-05-17 2020-11-19 Oracle International Corporation Modular feature extraction from parsed log data
US10832087B1 (en) 2020-02-05 2020-11-10 Sas Institute Inc. Advanced training of machine-learning models usable in control systems and other systems

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108089962A (zh) * 2017-11-13 2018-05-29 北京奇艺世纪科技有限公司 一种异常检测方法、装置及电子设备

Also Published As

Publication number Publication date
CN112840355A (zh) 2021-05-25
WO2020050920A1 (en) 2020-03-12
CN113190843A (zh) 2021-07-30
US11218498B2 (en) 2022-01-04
US20200076841A1 (en) 2020-03-05
CN113190842A (zh) 2021-07-30
EP3847585A1 (en) 2021-07-14

Similar Documents

Publication Publication Date Title
CN113190842B (zh) 使用深度递归神经网络的上下文感知特征嵌入和序列日志数据的异常检测
US11451565B2 (en) Malicious activity detection by cross-trace analysis and deep learning
US11082438B2 (en) Malicious activity detection by cross-trace analysis and deep learning
Pan et al. Detecting web attacks with end-to-end deep learning
US11630826B2 (en) Real-time processing of a data stream using a graph-based data model
EP3716110B1 (en) Computer-security event clustering and violation detection
EP3716111B1 (en) Computer-security violation detection using coordinate vectors
US10686830B2 (en) Corroborating threat assertions by consolidating security and threat intelligence with kinetics data
US10949178B1 (en) Method and system for decomposing a global application programming interface (API) graph into an application-specific API subgraph
US20210385251A1 (en) System and methods for integrating datasets and automating transformation workflows using a distributed computational graph
US10614226B2 (en) Machine learning statistical methods estimating software system's security analysis assessment or audit effort, cost and processing decisions
EP3627375A1 (en) Persistent word vector input to multiple machine learning models
US11546380B2 (en) System and method for creation and implementation of data processing workflows using a distributed computational graph
US11394604B2 (en) Closed-loop automation of a managed network
Turaga et al. Design principles for developing stream processing applications
Huang et al. Protocol reverse-engineering methods and tools: A survey
US20230082829A1 (en) Pipelineable and parallelizable streaming parsers for querying structured data-interchange information
Roudjane et al. Detecting trend deviations with generic stream processing patterns
Ren et al. Dmnaed: A novel framework based on dynamic memory network for abnormal event detection in enterprise networks
US20240214396A1 (en) Cyber threat information processing apparatus, cyber threat information processing method, and storage medium storing cyber threat information processing program
US20240214406A1 (en) Cyber threat information processing apparatus, cyber threat information processing method, and storage medium storing cyber threat information processing program
Goodman Streaming Temporal Graphs
Vallentin Scalable network forensics
Yulevich et al. Anomaly detection algorithms on IBM InfoSphere streams: Anomaly detection for data in motion
Shi et al. Unconstrained Feature Model and Its General Geometric Patterns in Federated Learning: Local Subspace Minority Collapse

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