CN116318830A - 一种基于生成对抗网络的日志入侵检测系统 - Google Patents
一种基于生成对抗网络的日志入侵检测系统 Download PDFInfo
- Publication number
- CN116318830A CN116318830A CN202310051810.9A CN202310051810A CN116318830A CN 116318830 A CN116318830 A CN 116318830A CN 202310051810 A CN202310051810 A CN 202310051810A CN 116318830 A CN116318830 A CN 116318830A
- Authority
- CN
- China
- Prior art keywords
- log
- sample
- generator
- discriminator
- data
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/088—Non-supervised learning, e.g. competitive learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于生成对抗网络的日志入侵检测系统,通过使用基于生成对抗网络的无监督学习,避免了因为异常样本数量严重不足对训练造成的负面影响。通过使用基于LSTM/GRU的自动编码器作为生成器生成异常样本,提升了训练的有效性。使用DR分数的重构误差和判别器的判别结果,更有效的利用了生成对抗网络在判别阶段的生成器,并且综合和先前生成模型和判别模型提高了识别异常的效果。使用基于前缀树的日志解析算法,在解析过程中保留了日志时间等数据信息,在入侵检测过程中引入时间信息,提升了入侵检测的准确性。基于前缀树的数据结构压缩了词典,减少内存的占用,在大型分布式日志系统中或丰富的日志信息的场景中使入侵检测系统拥有更好的性能。
Description
技术领域
本发明涉及网络安全技术领域,尤其涉及一种基于生成对抗网络的日志入侵检测系统。
背景技术
在信息技术告诉发展的当下,网络攻击手段也在迅猛发展。传统的被动防御手段如防火墙、虚拟网、用户身份加密技术已逐渐无法抵御现如今层出不穷的攻击手段。在这种境遇下,更加可靠的防御方法的计划就应运而生了。入侵检测是主动防御技术之一,作为传统被动防御的补充,有助于快速发现网络攻击。入侵检测相较于之前的防火墙等被动防御方式,可以更快更有效的发现攻击行为。
常用于入侵检测的是日志数据,即通过日志数据进行入侵检测。日志数据包含丰富的信息,如时间戳和日志键。且日志存在隐含逻辑,类似于自然语言。系统日志是由遵循一组严格的逻辑和控制流的程序产生的,其打印逻辑由程序的代码决定。正因为日志蕴含了丰富的信息,针对日志数据的处理成为众多研究的重点。因此,可以通过对日志进行异常检测实现网络入侵检测。
日志是非结构化数据,且无统一的输出格式。对日志信息进行处理首先需要对日志进解析。一种较为有效的方法是根据源码获取日志模板。但是通常无法获取源码且该方法缺乏泛用性。常用的日志解析的方法主要有基于启发式的方法,聚类和最长公共子序列等方法。基于聚类思想的日志解析是根据日志表现出的特征,将日志划分到不同的簇中,簇内部数据相似度高,簇间的相似度低。然后根据不同的簇提取日志模板。常见的方式有SLCT(Simple Logfile Clustering Tool)方法。这种方式会根据日志中出现的高频率词进行聚类,然后再根据高频率词提取日志模板。LogMine是基于层次聚类的日志解析方法。使用正则表达式检测指定的类型并将类型替换为指定标识符,再进行聚类。另一种常见的方法是基于最长公共子序列的方法。例如,Spell,基于最长公共子序列方法。Spell假设日志源码相同的情况下打印的日志将拥有最长的公共子序列。这种方法可以实现在线日志系统的日志解析。还有基于启发式的日志解析方法。例如,AEL,使用基于相似度量的检测方法。
日志异常检测可以分为基于监督学习的异常检测和基于无监督学习的异常检测。监督学习通过标记好的数据进行训练,标记数据会表示出数据是正常还是异常。常见的方法有逻辑回归,支持向量机和决策时。与监督方式不同,无监督方式使用没有标签的数据。因为在实际环境中数据大多都是无标签的,因此,无监督学习在生产环境中的适应性更好。无监督学习常见的方法有日志聚类、PCA、关联规则挖掘。
对于日志数据的建模角度可以将日志异常检测分为基于文本特征建模的日志异常检测和基于序列建模的日志异常检测。基于文本特征建模的日志异常检测着眼于日志文本中出现的特定关键字,如“kill”,“fail”等和语义相关的关键字。基于文本特征建模会通过统计的手段用机器学习方法计算出某条日志数据正常的概率。Farshchi等人采用基于回归的分析技术来查找操作活动日志与操作活动对资源影响的相关性。陈明等人将决策树异常检测,使用决策树诊断网络中的异常。李琦等人提出了LogCluster聚类方法来识别系统中的异常,这个算法包括将日志向量化和聚类的初始化阶段,以及进行训练构建知识库的阶段。
另一种是基于序列建模的日志异常检测,将日志视为序列数据。主要分为两个方向,基于统计模型的方向和基于循环神经网络模型。循环神经网络在自然语言处理和图片语音识别方面取得了很大的成果。针对序列数据的特性,学者们将长短时记忆网络(LongShort-Term Memory,简称LSTM)、自动编码器、生成对抗网络(Generative AdversarialNetwork,简称GAN)用于异常检测。Min Du等人提出的DeepLog日志异常检测方法,利用LSTM神经网络的生成能力,根据正常数据训练网络,输出当前时刻日志键的出现概率,并和当前时刻实际的日志键进行比对来判断结果是否正常。Xiaoyu Duan等人提出基于LSTM的编码-解码器框架GAN-EDC,整个框架由基于LSTM的编码-解码器和CNN构成的判别器构成。GAN-EDC通过基于LSTM编码-解码器生成日志模板,再通过CNN将生成的日志模板和实际的日志模板进行对比判断是否异常。李丹等人针对多变量序列异常检测问题提出基于GAN的时间序列异常检测方法MAD-GAN,在GAN中使用长-短期记忆递归神经网络(LSTM-RNN)作为基本模型(即生成器和鉴别器)捕获时间序列分布的时间相关性。然而,该多元异常检测框架(MAD-GAN)没有独立处理数据流,而是考虑整个变量集,以捕获整体集合隐含的逻辑关系。
综上,现有的基于序列建模的日志异常检测技术存在以下不足之处:
1、传统算法无法适应数据不平衡的数据集。在网络系统相关的行为中,攻击行为所占的比例非常小。因此数据比例不平衡,传统的入侵检测方式很难处理这种数据不平衡的问题。
2、传统算法无法根据无标签的数据进行训练。有标签的数据非常难获取。虽然现在已经有很多专门针对入侵检测的数据集。但是出于适用性的考虑需要收集系统特定的数据。但是获取有标签的数据非常困难,一般情况只能让从业者手动打标。
3、传统算法无法识别新出现的攻击手段。攻击手段层出不穷。网络攻击手段越来越丰富,因此根据过往的攻击手段设计入侵检测系统无法识别越来越丰富的攻击。
4、传统算法识别攻击行为准确率不高,算法对攻击检测的漏检率和错误率过高。
发明内容
本发明针对现有技术上述四方面的不足,提出一种基于生成对抗网络的日志入侵检测系统,实现对网络攻击的有效检测。
为了实现上述目的,本发明提供如下技术方案:
本发明提供一种基于生成对抗网络的日志入侵检测系统,包括日志解析模块、生成器、判别器和优化器,并采用以下步骤:
S1、使用日志解析模块将日志数据解析成日志向量,使用基于LSTM/GRU的自动编码器作为生成器生成重构样本,将数据集中的正常样本作为正常样本输入检测模型中,将生成器生成的重构样本作为异常样本输入检测模型中,使用LSTM/GRU作为判别器判断当前样本是正常样本还是异常样本,并使用生成对抗网络作为优化器对检测模型进行训练;
S2、使用日志解析模块对日志数据进行解析,如果日志项解析失败,则将该日志项对应的行为视为攻击行为;如果日志项解析成功,则生成日志向量,并将向量化后的日志输入训练好的检测模型;检测模型使用生成器和判别器共同进行异常检测获得DR分数,如果DR异常分数超出阈值,则认为该日志记录了攻击行为。
进一步地,步骤S1日志解析的具体过程为:
S11、日志数据预处理:扫描待处理的日志集,用通配符替换掉日志中的IP、时间戳参数并删除特殊符号,计算日志词的词频列表,推导一个由对数个单词组成的列表,按词频降序排列;
S12、使用前缀树的方式解析日志:将一个空节点作为前缀树的根节点,将日志类型作为前缀树的第二层,再对接下来的日志文本构建前缀树,构建完成后进行剪枝,当一个节点的日志词词频不在最高的k个词中且该节点有超过l个子树点则删除该节点和该节点的所有子树,此时从根节点到叶子节点的每条路径就是一个日志键,根据日志前缀树构建一个日志键列表,给每个日志键一个唯一ID;
S13、日志向量化:根据日志键列表,对每个单独的日志项通过LCS匹配对应日志键,匹配上对应日志键后将该日志项的时间戳和参数添加入向量中,构成完整的日志向量用于训练。
进一步地,步骤S1的训练过程为:
S14、生成器生成重构样本:生成器使用两层的LSTM/GRU堆叠结构,进行运算获取包含若干个时间步隐藏状态h;首先将日志序列数据K={k1,k2,k3...,kL}输入编码器中和先前的隐藏状态进行运算获取当前状态的隐藏状态/>将隐藏状态和输入日志序列作为解码器的隐藏状态和输入运算得到重构的当前时刻日志键的/>通过计算/>和当前时刻实际的日志键k的重构误差来进行更新;
S15、判别器识别正常样本和异常样本:判别器使用单层LSTM/GRU结构,首先将日志序列数据K=(k1,k2,k3...,kL}输入判别器,再将输出结果输入一个Softmax函数中,获取该样本是正常样本或是异常样本的概率,在判别过程中将用于训练的正常样本识别为正常样本,将生成器生成的伪造样本识别为异常,并根据判别损失对判别器进行训练;
S16、步骤S14和S15交替进行,直至训练至最大轮数或收敛,使用Adam算法优化模型中的参数;
S17、根据生成器和判别器的结果对参数进行更新,根据判别器损失函数更新判别器,更新目标函数为:
根据生成器损失函数更新生成器,更新的目标函数为:
其中,m为样本集的数量,DLSTM为判别器LSTM模型,GLSTM为生成器LSTM模型。
进一步地,步骤S2日志解析的具体过程为:
S21、对每个单独的日志项通过LCS匹配对应日志键,匹配上对应日志键后将该日志项的时间戳和其他参数添加入向量中,构成完整的日志向量用于检测。
进一步地,步骤S2的检测过程:
S22、将日志序列划分为带有滑动窗口的子序列,输入生成器G,在潜在空间中找到与当前日志序列重构误差最小的潜在空间样本并计算重构误差,重构误差loss函数的计算方式为:
S23、将日志序列数据输入判别器D,计算判别器的判别误差;
S24、计算判别损失和生成器重构损失得到整体损失函数:
Lt=λRes(Xt)+(1-λ)D(Xt)
其中,Res(Xt)是将数据Xt放入残差网络中的计算损失函数,D(Xt)是将数据放入判别器网络中的损失函数;
通过子序列的异常检测损失映射回原始时间序列来计算DR分数:
lct=count(j,s∈{j+s=t})
其中,Lj,s其实就是上面的Lt;lct是j,s训练的总数,用于求平均;t∈{1,2,…,N},j∈{1,2,…,n},s∈{1,2,…,sw},其中N时间序列数,n是训练向量的维数,sw为采样的窗口大小;
S25、根据DR分数进行异常检测,当异常分数高于阈值时判定该样本为异常样本,并将和该样本相关的行为认定为攻击行为。
与现有技术相比,本发明的有益效果为:
本发明提出的基于生成对抗网络的日志入侵检测系统,通过使用基于生成对抗网络的无监督学习,避免了因为异常样本数量严重不足对训练造成的负面影响。同时通过使用基于LSTM/GRU的自动编码器作为生成器人为生成异常样本,提升了训练的有效性。使用DR分数综合生成器的重构误差和判别器的判别结果,更有效的利用了传统生成对抗网络在判别阶段无用的生成器,并且综合和先前生成模型和判别模型提高了识别异常的效果。同时使用基于前缀树的日志解析算法,在解析过程中保留了日志的时间和其他的数据信息,在进行入侵检测的过程中引入时间信息,提升了入侵检测的准确性。此外基于前缀树的数据结构压缩了词典,减少了日志键词典对内存的占用,在大型分布式日志系统中或丰富的日志信息的场景中使入侵检测系统拥有更好的性能。相比于传统的入侵检测系统,拥有更高的鲁棒性和自适应性,拥有对攻击检测更低的漏检率以及错误率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的基于生成对抗网络的日志入侵检测系统结构图。
图2为本发明实施例提供的日志向量化过程图。
图3为本发明实施例提供的堆叠LSTM/GRU自动编码生成器结构图。
具体实施方式
针对现有技术的不足,本发明提出了一种基于LSTM/GRU的生成对抗网络日志入侵检测系统。使用前缀树日志解析算法将日志数据解析成日志键和参数并对日志项向量化。采用基于LSTM/GRU的自动编码器作为生成器,使用生成对抗网络架构进行训练。使用DR异常分数进行异常检测。在训练时只使用正常数据进行训练,在测试阶段使用正常数据和异常数据进行测试计算正确率。
为了更好地理解本技术方案,下面结合附图对本发明的方法做详细的说明。
整体流程如附图1所示,首先是配置环境,该入侵检测系统适用于大型分布式日志系统,各个节点加日志数据聚合到用于处理日志信息的特定服务器中,由该服务器对日志进行持久化,和处理其他业务的服务器实现功能隔离。在进行入侵检测前需要先训练模型,在模型训练完成之后才能进行检测。然后由入侵检测系统对日志进行解析,并将对应的日志数据向量化。将向量化后的日志输入模型中进行异常检测获得DR分数,如果DR异常分数超出阈值,则认为该日志记录了攻击行为,需要根据该日志上记录的信息进行进一步的处理。接下来对该方案进行详细介绍。
一、日志解析
日志解析的过程是将非结构化的日志条目解析成结构化表示,这样就可以学习结构化数据的顺序模型。日志解析的结果是将日志文件解析成日志键和日志参数,并将二者向量化。日志键代表了源码打印日志时的常量。因为在一个系统中日志键的种类是固定的,因此解析日志的时候首先需要获取日志键,然后对日志键进行处理。
步骤一:日志数据预处理。
扫描待处理的日志集。用通配符替换掉日志中的IP,时间戳等参数并删除特殊符号。计算日志词的词频列表,推导一个由对数个单词组成的列表,按词频降序排列。
步骤二:使用前缀树的方式解析日志。
将一个空节点作为前缀树的根节点,将日志类型(INFO,WARN信息)作为前缀树的第二层,再对接下来的日志文本构建前缀树。构建完成后进行剪枝,当一个节点的日志词词频不在最高的k个词中且该节点有超过l个子树点则删除该节点和该节点的所有子树(其中k和l是自己设置的阈值,阈值的设置取决于日志系统)。此时从根节点到叶子节点的每条路径就是一个日志键(log key)。根据日志前缀树构建一个日志键列表,给每个日志键一个唯一ID。
步骤三:日志向量化。
在提取出日志模板之后,需要对日志特征进行建模,用来提取日志中有价值的信息,例如时间戳,日志等级,IP,端口号等,这些信息可以用来进行入侵检测。这一步需要将上面提取出的日志模型进行向量化表示。
根据日志键列表,对每个单独的日志项通过LCS匹配对应日志键。匹配上对应日志键后将该日志项的时间戳和其他参数(例如IP和端口号,日志等级等)添加入向量中,构成完整的日志向量用于训练。在训练节点的日志向量是有标签的,将日志向量化的过程见图2。
二、异常检测算法的训练阶段
该节点用数据集中抽取的正常样本对算法进行训练。将数据集中的正常样本作为正常样本输入模型中,并将生成器生成的异常样本输入模型中进行训练。对在迭代区间内的每个样本:
步骤一:重构样本的生成。因为训练过程只使用正常样本,异常样本由生成对抗网络的生成器生成。我们选择基于LSTM/GRU的编码器-解码器框架来构建生成模型G,整体架构利用了自动编码器的生成能力,生成器模型见附图3。整体的网络架构使用了基于堆叠LSTM/GRU的自动编码器结构。编码器用两层的LSTM/GRU堆叠结构组成,进行运算获取包含若干个时间步隐藏状态h。在将h和输入样本输入相同结构的解码器中获取重构的样本。在训练阶段首先将日志序列数据K={k1,k2,k3...,kL}输入编码器中和先前的隐藏状态进行运算获取当前状态的隐藏状态/>将隐藏状态和输入日志序列作为解码器的隐藏状态和输入运算得到生成的/>在当前的场景下k是先前的日志序列,/>是根据先前的日志序列重构的当前时刻日志键。通过计算/>和当前时刻实际的日志键k的重构误差来进行更新。生成器模型的目标是通过训练使重构误差尽可能小。
步骤二:判别器识别正常和异常样本。判别器使用单层LSTM/GRU结构。输入是一个日志向量构成的时间序列,和生成器的输入相同。并将输出结果输入一个Softmax函数中,获取该样本是正常样本或是异常样本的概率。在判别过程中需要将用于训练的正常样本识别为正常样本,将生成器生成的重构样本识别为异常样本,并根据判别损失对判别器进行训练。
步骤三:上述两个过程需要交替进行,直至训练够足够轮数或是每次训练的正确率达到较平稳的状态(该状态的判定条件需要根据多次训练的结果得出)。使用Adam算法优化模型中的参数。这里的参数是神经网络模型中的权重向量。
步骤四:根据生成器和判别器的结果对参数进行更新。根据判别器损失函数更新判别器,更新目标函数为:
根据生成器损失函数更新生成器,更新的目标函数为:
其中,m为样本集的数量,DLSTM为判别器LSTM模型,GLSTM为生成器LSTM模型。
三、异常检测识别
步骤一:日志解析。这里的处理过程和训练阶段相似,但是没有词表和前缀树构建过程。将系统收集的日志数据放入日志解析模块中,将日志解析成日志向量。如果日志项解析失败,则将该日志项对应的行为视为攻击行为。
步骤二:整个算法将多元序列划分为带有滑动窗口的子序列,窗口大小为sw。与常规的GAN框架不同,在本专利中共同使用G和D进行异常检测。判别器D的判别损失和常规GAN的判别器计算方式相同。
重构损失:生成器G生成损失通过计算重构测试样本和测试样本之间的残差得到,即对测试日志键序列Xtes的第i个子序列在潜在空间中找到一点/>使/>和测试样本/>最接近,也就是二者之间的距离最小,这一差值称为重构误差。样本在时间t的残差计算为:
对测试的日志子序列为了在生成日志序列样本中找到和它最接近的样本,需要生成大量样本,并计算每个生成的样本和测试日志子序列的相似度。通过最小化测试日志子序列与生成日志序列之间的重构误差来得到相似度最近的样本,即通过最小化误差loss直至近似收敛找到/>loss函数的计算方式为:
在潜在空间中找到与当前日志序列重构误差最小的潜在空间样本并计算重构误差。
判别损失:判别器是一个二分类模型,可以判别出真实数据和生成数据间的细微差别。训练时把正常的日志序列输入训练,这时判别器能判别的真实日志序列其实是正常的日志序列,判别器也具有检测日志序列是否正常的能力。判别器的损失为:
Dis=DLSTM(Xtes)
将日志序列数据输入判别器D,计算判别器的判别误差。
整体损失函数:综合判别器判别损失和生成器重构损失得到整体损失函数Lt=λRes(Xt)+(1-λ)D(Xt)。其中包含了生成器重构的残差损失和判别器的判别损失。GAN训练的生成器和生成器对每个测试数据的子序列会输出一个异常检测损失。通过子序列的异常检测损失映射回原始时间序列来计算DR分数。DR分数定义为:
lct=count(j,s∈{j+s=t})
其中,Lj,s其实就是上面的Lt;lct是j,s训练的总数,用于求平均;t∈{1,2,…,N},j∈{1,2,…,n},s∈{1,2,…,sw},其中N时间序列数,n是训练向量的维数,sw为采样的窗口大小。
步骤三:根据DR分数进行异常检测,进而识别攻击行为。在识别网络入侵检测的过程中,将日志序列解析出来后输入模型中,根据步骤二计算出日志序列的判别器损失和重构损失,根据上式计算DR分数。具体的DR分数需要在训练过程中指定。DR分数为一个表示阈值的定值,当异常分数高于这个阈值时会判定该样本为异常样本并将和该样本相关的行为认定为攻击行为。在训练阶段需要根据训练结果合理设置DR分数,避免出现过多的虚警。
步骤四:进行后续处理。在识别出攻击行为后,需要进行进一步的处理。比如将该攻击行为的IP查封或是将该行为记录入攻击库中。
本发明设计基于前缀树的日志解析算法,可以有效提取日志数据中的时间信息。相较于传统日志提取算法只提取日志键的缺陷,本发明使用的日志解析算法提取了日志中的时间戳和系统需要的参数。
针对日志数据一类明显的时序数据,本发明使用LSTM算法提取时序信息。其中生成器使用基于LSTM的自动编码器根据该样本前的样本重构该样本,而判别器使用LSTM判断当前样本是正常样本还是异常样本。为了保证识别的精确性,在训练阶段只需使用正常数据,在异常检测可以识别异常数据。针对在实际场景中对时间要求较高的需求,同时该算法适用于序列数据的入侵检测,在训练阶段只使用正常数据训练,测试阶段可以识别出网络攻击。
本发明引入GRU网络,加快异常检测的速度。本发明同时训练一个由GRU构成的神经网络,因为GRU相对于LSTM结构简单计算更加快速,使用GRU构成的神经网络更有利于在实际场景中进行部署。在实际训练过程中先用LSTM进行训练,找到合适的神经网络单元数量和DR分数阈值等参数。在实际进行异常检测的时候用GRU进行异常检测。
根据异常检测的特点,本发明引入DR分数进行异常检测。可以综合生成器和判别器的能力,更好的判定数据的正常或异常。
本发明使用基于LSTM/GRU的自动编码器生成对抗网络入侵检测系统,相比于传统的入侵检测系统(PCA和N-gram),拥有更高的鲁棒性和自适应性,拥有对攻击检测更低的漏检率以及错误率,结果如表1所示。
表1
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,但这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (5)
1.一种基于生成对抗网络的日志入侵检测系统,其特征在于,包括日志解析模块、生成器、判别器和优化器,并采用以下步骤:
S1、使用日志解析模块将日志数据解析成日志向量,使用基于LSTM/GRU的自动编码器作为生成器生成重构样本,将数据集中的正常样本作为正常样本输入检测模型中,将生成器生成的重构样本作为异常样本输入检测模型中,使用LSTM/GRU作为判别器判断当前样本是正常样本还是异常样本,并使用生成对抗网络作为优化器对检测模型进行训练;
S2、使用日志解析模块对日志数据进行解析,如果日志项解析失败,则将该日志项对应的行为视为攻击行为;如果日志项解析成功,则生成日志向量,并将向量化后的日志输入训练好的检测模型;检测模型使用生成器和判别器共同进行异常检测获得DR分数,如果DR异常分数超出阈值,则认为该日志记录了攻击行为。
2.根据权利要求1所述的基于生成对抗网络的日志入侵检测系统,其特征在于,步骤S1日志解析的具体过程为:
S11、日志数据预处理:扫描待处理的日志集,用通配符替换掉日志中的IP、时间戳参数并删除特殊符号,计算日志词的词频列表,推导一个由对数个单词组成的列表,按词频降序排列;
S12、使用前缀树的方式解析日志:将一个空节点作为前缀树的根节点,将日志类型作为前缀树的第二层,再对接下来的日志文本构建前缀树,构建完成后进行剪枝,当一个节点的日志词词频不在最高的k个词中且该节点有超过l个子树点,则删除该节点和该节点的所有子树,此时从根节点到叶子节点的每条路径就是一个日志键,根据日志前缀树构建一个日志键列表,给每个日志键一个唯一ID;
S13、日志向量化:根据日志键列表,对每个单独的日志项通过LCS匹配对应日志键,匹配上对应日志键后将该日志项的时间戳和参数添加入向量中,构成完整的日志向量用于训练。
3.根据权利要求1所述的基于生成对抗网络的日志入侵检测系统,其特征在于,步骤S1的训练过程为:
S14、生成器生成重构样本:生成器使用两层的LSTM/GRU堆叠结构,进行运算获取包含若干个时间步隐藏状态h;首先将日志序列数据K={k1,k2,k3...,kL}输入编码器中,并和先前的隐藏状态进行运算,获取当前状态的隐藏状态/>将当前的隐藏状态/>和输入日志序列作为解码器的隐藏状态和输入,运算得到重构的当前时刻日志键的/>通过计算/>和当前时刻实际的日志键k的重构误差来进行更新;
S15、判别器识别正常样本和异常样本:判别器使用单层LSTM/GRU结构,首先将日志序列数据K={k1,k2,k3...,kL}输入判别器,再将输出结果输入一个Softmax函数中,获取该样本是正常样本或是异常样本的概率,在判别过程中将用于训练的正常样本识别为正常样本,将生成器生成的重构样本识别为异常样本,并根据判别损失对判别器进行训练;
S16、步骤S14和S15交替进行,直至训练至最大轮数或收敛,使用Adam算法优化模型中的参数;
S17、根据生成器和判别器的结果对参数进行更新,根据判别器损失函数更新判别器,更新目标函数为:
根据生成器损失函数更新生成器,更新的目标函数为:
其中,m为样本集的数量,DLSTM为判别器LSTM模型,GLSTM为生成器LSTM模型。
4.根据权利要求1所述的基于生成对抗网络的日志入侵检测系统,其特征在于,步骤S2日志解析的具体过程为:
S21、对每个单独的日志项通过LCS匹配对应日志键,匹配上对应日志键后将该日志项的时间戳和参数添加入向量中,构成完整的日志向量用于检测。
5.根据权利要求1所述的基于生成对抗网络的日志入侵检测系统,其特征在于,步骤S2的检测过程:
S22、将日志序列划分为带有滑动窗口的子序列,输入生成器G,在潜在空间中找到与当前日志序列重构误差最小的潜在空间样本,并计算重构误差,重构误差loss函数的计算方式为:
S23、将日志序列数据输入判别器D,计算判别器的判别误差;
S24、计算判别损失和生成器重构损失得到整体损失函数:
Lt=λRes(Xt)+(1-λ)D(Xt)
其中,Res(Xt)是将数据Xt放入残差网络中的计算损失函数,D(Xt)是将数据放入判别器网络中的损失函数;
通过子序列的异常检测损失映射回原始时间序列来计算DR分数:
lct=count(j,s∈(j+s=t})
其中,Lj,s其实就是上面的Lt;lct是j,s训练的总数,用于求平均;t∈{1,2,…,N},j∈{1,2,…,n},s∈{1,2,…,sw},其中N时间序列数,n是训练向量的维数,sw为采样的窗口大小;
S25、根据DR分数进行异常检测,当异常分数高于阈值时判定该样本为异常样本,并将和该样本相关的行为认定为攻击行为。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310051810.9A CN116318830A (zh) | 2023-02-02 | 2023-02-02 | 一种基于生成对抗网络的日志入侵检测系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310051810.9A CN116318830A (zh) | 2023-02-02 | 2023-02-02 | 一种基于生成对抗网络的日志入侵检测系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116318830A true CN116318830A (zh) | 2023-06-23 |
Family
ID=86800374
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310051810.9A Pending CN116318830A (zh) | 2023-02-02 | 2023-02-02 | 一种基于生成对抗网络的日志入侵检测系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116318830A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117278322A (zh) * | 2023-11-13 | 2023-12-22 | 国家工业信息安全发展研究中心 | Web入侵检测方法、装置、终端设备及存储介质 |
CN117473275A (zh) * | 2023-12-27 | 2024-01-30 | 芯知科技(江苏)有限公司 | 一种数据中心的能耗检测方法 |
-
2023
- 2023-02-02 CN CN202310051810.9A patent/CN116318830A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117278322A (zh) * | 2023-11-13 | 2023-12-22 | 国家工业信息安全发展研究中心 | Web入侵检测方法、装置、终端设备及存储介质 |
CN117278322B (zh) * | 2023-11-13 | 2024-02-20 | 国家工业信息安全发展研究中心 | Web入侵检测方法、装置、终端设备及存储介质 |
CN117473275A (zh) * | 2023-12-27 | 2024-01-30 | 芯知科技(江苏)有限公司 | 一种数据中心的能耗检测方法 |
CN117473275B (zh) * | 2023-12-27 | 2024-03-26 | 芯知科技(江苏)有限公司 | 一种数据中心的能耗检测方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Landauer et al. | Deep learning for anomaly detection in log data: A survey | |
Azizi et al. | {T-Miner}: A generative approach to defend against trojan attacks on {DNN-based} text classification | |
CN107294993B (zh) | 一种基于集成学习的web异常流量监测方法 | |
CN112765603B (zh) | 一种结合系统日志与起源图的异常溯源方法 | |
CN116318830A (zh) | 一种基于生成对抗网络的日志入侵检测系统 | |
CN114610515A (zh) | 基于日志全语义的多特征日志异常检测方法及系统 | |
CN113918367A (zh) | 一种基于注意力机制的大规模系统日志异常检测方法 | |
Torabi et al. | A review on feature selection and ensemble techniques for intrusion detection system | |
Li | Automatic log analysis using machine learning: awesome automatic log analysis version 2.0 | |
CN116484260B (zh) | 一种基于双向时间卷积网络的半监督日志异常检测方法 | |
CN111047173B (zh) | 基于改进d-s证据理论的社团可信度评估方法 | |
Shin et al. | Comparison of anomaly detection accuracy of host-based intrusion detection systems based on different machine learning algorithms | |
Thaler et al. | Towards a neural language model for signature extraction from forensic logs | |
CN113592103A (zh) | 一种基于集成学习和动态分析的软件恶意行为识别方法 | |
Yu et al. | Anomaly detection in unstructured logs using attention-based Bi-LSTM network | |
CN108647497A (zh) | 一种基于特征提取的api密钥自动识别系统 | |
CN114416479A (zh) | 一种基于流外正则化的日志序列异常检测方法 | |
CN117874662A (zh) | 基于图模式的微服务日志异常检测方法 | |
CN117827508A (zh) | 一种基于系统日志数据的异常检测方法 | |
CN115221013B (zh) | 一种日志模式的确定方法、装置及设备 | |
CN113657443B (zh) | 一种基于soinn网络的在线物联网设备识别方法 | |
Chhabra | A System for Automatic Information Extraction from Log Files | |
Hymavathi et al. | DETECTION OF CYBER ATTACK IN NETWORK USING MACHINE LEARNING TECHNIQUE | |
Wang et al. | Imbalanced Graph-Level Anomaly Detection via Counterfactual Augmentation and Feature Learning | |
Yin et al. | Binary protocol classification based on information entropy and convolution neural network |
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 |