CN112613032B - 基于系统调用序列的主机入侵检测方法及装置 - Google Patents

基于系统调用序列的主机入侵检测方法及装置 Download PDF

Info

Publication number
CN112613032B
CN112613032B CN202011484244.3A CN202011484244A CN112613032B CN 112613032 B CN112613032 B CN 112613032B CN 202011484244 A CN202011484244 A CN 202011484244A CN 112613032 B CN112613032 B CN 112613032B
Authority
CN
China
Prior art keywords
system call
sequence
word
call sequence
determining
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011484244.3A
Other languages
English (en)
Other versions
CN112613032A (zh
Inventor
蔡利君
王丹丹
马建刚
赵力欣
于爱民
孟丹
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.)
Institute of Information Engineering of CAS
Original Assignee
Institute of Information Engineering of CAS
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 Institute of Information Engineering of CAS filed Critical Institute of Information Engineering of CAS
Priority to CN202011484244.3A priority Critical patent/CN112613032B/zh
Publication of CN112613032A publication Critical patent/CN112613032A/zh
Application granted granted Critical
Publication of CN112613032B publication Critical patent/CN112613032B/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Telephonic Communication Services (AREA)
  • Machine Translation (AREA)

Abstract

本发明实施例提供了一种基于系统调用序列的主机入侵检测方法及装置,包括:对各系统调用序列进行深度嵌入,构建各系统调用的词嵌入向量;基于n‑gram算法将各系统调用序列切分成短序列的输入输出样本对;基于各系统调用的词嵌入向量确定的词向量矩阵和短序列的输入输出样本对,确定各系统调用之间的依赖关系;基于各系统调用之间的依赖关系确定各短序列的概率值;将各短序列的概率值确定的共现概率作为异常因子,采用阈值判断法确定各系统调用序列的检测结果;所述检测结果包括正常或异常。本实施例考虑到系统调用的全局特征,把系统调用序列看作是系统与进程之间交互的语言,对系统调用进行处理,具有很好是泛化性能,降低入侵检测误报率。

Description

基于系统调用序列的主机入侵检测方法及装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于系统调用序列的主机入侵检测方法及装置。
背景技术
近年来,计算机网络安全涉及到政治,军事,经济,科技,教育及企业,个人等各个领域,为了确保这些信息不被破坏,加大计算机网络安全的研究势在必行。基于网络和基于主机的入侵检测系统一直是网络安全研究领域的热门问题,在现代网络中,无线网络的渗透是一个持久的过程,就像其它类型的网络一样,如果外围被绕过,就只有内部安全措施站在攻击者和关键数据之间,基于主机的入侵检测系统是绕过网络外围的攻击者的最有效的方法之一。
内核层的入侵和攻击逐渐成为黑客入侵的主流技术,但是现有的入侵检测的基础数据大都是在应用层得到的,鉴于上述问题,在操作系统内核层研究入侵检测技术,精简和特征化与系统安全的数据源,是入侵检测的重要内容。因此本课题提出了一种基于系统调用的,面向内核守护进程的Linux系统入侵检测技术,此技术可以有效对抗当前不断出现的,对系统威胁最大的内核层入侵手段。
目前,系统调用的入侵检测主要分为两大方向,第一种是基于规则描述的方式,主要是通过定义一系列系统访问规则来控制系统调用的执行,实现系统访问控制;第二种是利用统计学方法,序列枚举方法,机器学习方法和深度学习方法等对系统调用序列进行分析,构造正常的系统调用行为模式库来判断异常。
基于规则的检测方法是通过定义一组规则来规定系统进程的正常或者异常行为,系统调用是进程访问系资源的接口,通过增加系统调用的访问策略是提高主机安全性的一种主要方法,ko等人通过观察特权进程的访问行为为其建立一个有限的资源访问集合,用沙箱技术限制特权进程的行为。这种方法的不足之处在于,由于Linux版本的不同会导致系统的访问控制不同,因此需要根据Linux版本更新规则库,同时,规则库需要人工建立,建立过程繁琐且困难,因此,这种检测方法受到了很大的限制。
统计学入侵检测方法主要是通过统计系统调用序列/短序列中单个系统调用出现的频率或者使用数学的方法统计出系统调用序列出现的一些规律,结果和正常的系统调用序列相差甚远的序列被认为异常。Haider等人通过统计系统调用中出现最多和最少次数的系统调用号,出现最大和最小的系统调用号甚至系统调用的奇数个数等特征及其不同的组合作为系统调用序列的特征,通过计算正常和异常系统调用特征的差异来进对系统调用序列进行判别。S.S.Murtaza等人提出将系统调用表示为内核模块的状态,分析状态交互,并通过比较正常和异常中状态出现的概率来识别异常,结果表明,该方法能够产生跟更少的假警率,并以更小的处理事件处理大的跟踪。基于统计的方法不需要入侵行为特征的先验知识,可以快速地构造词向量,不足之处在于由于位置的丢失,忽略了序列之间的依赖性,在正常建模过程中,形成的特征质量不高,导致检测效率低,误报率高。
现有的机器学习方法主要通过分类,聚类或者混合的方式构建正常行为模式来检测异常。Basant Subba等人提出了一个计算效率高的HIDS框架,该框架首先将系统调用跟踪转换为n-gram向量表示模型,然后使用降维过程来减少输入特征向量的大小。最后通过各种基于机器学习的分类器模型分析降维后的n元特征向量来识别入侵过程。最后在ADFA-LD数据集上对所提出的HIDS框架进行性能评估,结果表明,该框架能够有效地检测入侵系统进程,具有较高的准确率和较低的假阳性率。Gursel Serpen和Ehsan Aghaei等人通过使用PCA对提取的系统调用短序列进行降维表示,然后使用KNN算法对系统调用序列进行分类;Miao Xie等人通过将系统调用序列处理成固定长度的短序列,然后通过调用频率对短序列进行加权,增强正常和异常系统调用的可分性,然后使用单类SVM进行分类和检测。基于机器学习的分类方法,不足之处在于,并没有考虑到系统调用序列的语言特征,异常检测产生了较高的误报率和漏报率。
近年来,深度学习在自然语言处理(NLP)、图像处理等诸多应用中取得了显著的成功。特别是在NLP的文本分类领域,深度学习方法可以捕获系统调用的序列的上下文特征,取得了很好的效果,Kim等人使用LSTM来捕获系统调用之间的依赖关系,并使用多个LSTM共同决策来提高异常检测的准确率;Lydia Bouzar-Benlabiod等人通过采用了基于变分译码器(VED)和递归神经网络(RNN)变体的序列序列模型对系统调用进行预测,然后使用单分类器对其进行分类并在ADFA-LD数据集上进行了测试,验证了预测在入侵检测/预测任务中的优越性。R.VINAYAKUMAR等人提出了一种基于商品的高可扩展性的混合入侵检测预警系统,该框架采用带DNNs的分布式深度学习模型实时处理和分析超大规模数据。在各种IDS基准数据集上,通过与经典机器学习分类器的性能比较,综合评价DNN模型,该模型能够同时分析主机层和网络层的活动并进行异常检测。综上所述,可以看到深度学习在异常检测领域崭露头角,但是已有的方法在处理系统调用词向量的时候只考虑到了序列的局部信息,导致所生成的词向量不能很好的体现出系统调用之间的全局相关性。由此可见,一方面,现有的基于系统调用的主机入侵检测系统在特征提取时是针对单条序列进行特征提取的,因此只考虑到了系统调用序列的局部特征,并没有考虑到全局特征;另一方面,现有的系统调用入侵检测系统忽略了系统调用的语义特征,需要高度匹配才能视为正常,泛化性能差,这样会导致入侵检测系统较高的误报率。
发明内容
针对现有技术中存在的问题,本发明实施例提供一种基于系统调用序列的主机入侵检测方法及装置。
第一方面,本发明实施例提供一种基于系统调用序列的主机入侵检测方法,包括:
对各系统调用序列进行深度嵌入,构建各系统调用的词嵌入向量;
基于n-gram算法将所述各系统调用序列切分成短序列的输入输出样本对;
基于各系统调用的词嵌入向量确定的词向量矩阵和所述短序列的输入输出样本对,确定各系统调用之间的依赖关系;
基于各系统调用之间的依赖关系确定各短序列的概率值;
将各短序列的概率值确定的共现概率作为异常因子,采用阈值判断法确定各系统调用序列的检测结果;所述检测结果包括正常或异常。
进一步地,所述对各系统调用序列进行深度嵌入,构建各系统调用的词嵌入向量,具体包括:
对各系统调用序列进行深度嵌入,基于Glove词嵌入模型构建各系统调用的词嵌入向量;所述Glove词嵌入模型包括共现词嵌入和中心词嵌入。
进一步地,所述对各系统调用序列进行深度嵌入,基于Glove词嵌入模型构建各系统调用的词嵌入向量,具体包括:
构建各系统调用序列的共现矩阵;
采用第一关系模型构建词向量和所述共现矩阵的近似关系;所述第一关系如下:
其中,和/>表示最终要求解的词向量,bi和/>是两个词向量的偏置项,log(Xij)表示词向量和所述共现矩阵的近似关系,i和j表示系统调用表中的任意两个系统调用号;
采用第二关系模型构建损失函数,所述第二关系如下:
其中,f(Xij)是权重函数,使得共现频率高的单词的权重大于共现频率低的单词的权重,J表示损失函数,N表示系统调用表中的不同的系统调用号的数量;
基于AdaGrad梯度下降算法优化所述损失函数,得到满足需求的词嵌入向量。
进一步地,所述基于各系统调用的词嵌入向量确定的词向量矩阵和所述短序列的输入输出样本对,确定各系统调用之间的依赖关系,具体包括:
基于各系统调用的词嵌入向量确定的词向量矩阵和所述短序列的输入输出样本对,采用GRU和attention注意力机制确定各系统调用之间的依赖关系;其中,所述GRU为Gated Recurrent Unit算法。
进一步地,还包括:
基于第三关系模型根据链式法则,取共现概率的负对数进行异常检测;所述异常检测是指通过对负对数L施加阈值θ;所述第三关系模型如下:
其中,P(xi|x1:i-1)代表下一个值预测出现的概率,L表示异常因子,θ表示阈值,l表示输入输出样本对的数量。
进一步地,所述基于n-gram算法将所述各系统调用序列切分成短序列的输入输出样本对,具体包括:
基于n-gram算法将所述各系统调用序列切分为n个定长的短序列;
基于所述短序列构成输入输出样本对。
第二方面,本发明实施例提供了一种基于系统调用序列的主机入侵检测装置,包括:
词嵌入模块,用于对各系统调用序列进行深度嵌入,构建各系统调用的词嵌入向量;
切分模块,用于基于n-gram算法将所述各系统调用序列切分成短序列的输入输出样本对;
第一确定模块,用于基于各系统调用的词嵌入向量确定的词向量矩阵和所述短序列的输入输出样本对,确定各系统调用之间的依赖关系;
第二确定模块,用于基于各系统调用之间的依赖关系确定各短序列的概率值;
第三确定模块,用于将各短序列的概率值确定的共现概率作为异常因子,采用阈值判断法确定各系统调用序列的检测结果;所述检测结果包括正常或异常。
第三方面,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上第一方面所述的基于系统调用序列的主机入侵检测方法的步骤。
第四方面,本发明实施例还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上第一方面所述的基于系统调用序列的主机入侵检测方法的步骤。
由上述技术方案可知,本发明实施例提供的基于系统调用序列的主机入侵检测方法及装置,通过对各系统调用序列进行深度嵌入,构建各系统调用的词嵌入向量;基于n-gram算法将各系统调用序列切分成短序列的输入输出样本对;基于各系统调用的词嵌入向量确定的词向量矩阵和短序列的输入输出样本对,确定各系统调用之间的依赖关系;基于各系统调用之间的依赖关系确定各短序列的概率值;将各短序列的概率值确定的共现概率作为异常因子,采用阈值判断法确定各系统调用序列的检测结果;所述检测结果包括正常或异常。可见,本实施例考虑到系统调用的全局特征,把系统调用序列看作是系统与进程之间交互的语言,对系统调用进行处理,具有很好是泛化性能,降低入侵检测误报率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的基于系统调用序列的主机入侵检测方法的流程示意图;
图2为本发明一实施例提供的系统调用入侵检测框架示意图;
图3为本发明一实施例提供的输入输出样本对示意图;
图4为本发明一实施例提供的基于系统调用序列的主机入侵检测装置的结构示意图;
图5为本发明一实施例提供的电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。下面将通过具体的实施例对本发明提供的基于系统调用序列的主机入侵检测方法进行详细解释和说明。
图1为本发明一实施例提供的基于系统调用序列的主机入侵检测方法的流程示意图;如图1所示,该方法包括:
步骤101:对各系统调用序列进行深度嵌入,构建各系统调用的词嵌入向量。
在本步骤中,参见图2,可以理解的是,对训练集中所有的系统调用序列进行深度嵌入,获得每个系统调用的词嵌入向量。
在本步骤中,需要说明的是,本步骤提出了全局词嵌入方法,采用词嵌入的方法提取系统调用的全局特征,通过构建训练集中系统调用的共现矩阵来构建词向量,可以更好地表示各个系统调用之间的相关性,以便在后续预测时取得更好的效果。
步骤102:基于n-gram算法将所述各系统调用序列切分成短序列的输入输出样本对。
在本步骤中,可以理解的是,把系统调用序列使用n-gram方法切分成小的输入输出样本对。在本步骤中,需要说明的是,使用n-gram对系统调用序列进行数据预处理,将所述各系统调用序列切分成短序列的输入输出样本对,可见本步骤借鉴了自然语言处理领域的相关方法(n-gram),并将其应用到系统调用序列的异常检测中,把系统调用序列当作文本来处理,提出了一种基于全局的系统调用特征提取方式。
步骤103:基于各系统调用的词嵌入向量确定的词向量矩阵和所述短序列的输入输出样本对,确定各系统调用之间的依赖关系。
在本步骤中,可以理解的是,把各系统调用的词嵌入向量确定的词向量矩阵以及短序列的输入输出样本对输入到神经网络模块中进行语言建模,学习系统调用之间的远程依赖关系。
步骤104:基于各系统调用之间的依赖关系确定各短序列的概率值。
在本实施例中,可以理解的是,基于各系统调用之间的依赖关系确定各短序列的概率值。
步骤105:将各短序列的概率值确定的共现概率作为异常因子,采用阈值判断法确定各系统调用序列的检测结果;所述检测结果包括正常或异常。
在本步骤中,需要说明的是,使用短序列的共现概率作为系统调用的异常因子以提高入侵检测系统的泛化性能,降低误报率。
在本步骤中,可以理解的是,使用阈值判断法,使得低于一定阈值的判断为正常,高于阈值的序列识别为异常,降低入侵检测误报率。
由上面技术方案可知,本发明实施例针对已有的入侵检测算法对系统调用序列进行语言建模时没有考虑到系统调用的全局特征,以及模型的泛化能力差的问题提出了一种基于系统调用序列的主机入侵检测方法,把系统调用序列看作是系统与进程之间交互的语言,采用自然语言处理领域的文本处理方法对系统调用进行处理,捕获系统调用序列的全局特征,并且具有很好的泛化性能,降低入侵检测系统的误报率。
在上述实施例的基础上,在本实施例中,所述对各系统调用序列进行深度嵌入,构建各系统调用的词嵌入向量,具体包括:
对各系统调用序列进行深度嵌入,基于Glove词嵌入模型构建各系统调用的词嵌入向量;所述Glove词嵌入模型包括共现词嵌入和中心词嵌入。
在本实施例中,需要说明的是,现有的基于系统调用的主机入侵检测方法在特征提取方面主要是使用滑动窗口对局部信息进行词向量的构建,没有考虑到全局的系统调用信息,本实施例使用的Glove词嵌入模型包含了共现词嵌入和中心词嵌入,可以更好地考虑到全局和局部的信息来构造系统调用的词向量,以便于后续进行预测时可以达到更好的预测效果。
在上述实施例的基础上,在本实施例中,所述对各系统调用序列进行深度嵌入,基于Glove词嵌入模型构建各系统调用的词嵌入向量,具体包括:
构建各系统调用序列的共现矩阵;
采用第一关系模型构建词向量和所述共现矩阵的近似关系;所述第一关系如下:
其中,和/>表示最终要求解的词向量,bi和/>是两个词向量的偏置项,log(Xij)表示词向量和所述共现矩阵的近似关系,i和j表示系统调用表中的任意两个系统调用号;
采用第二关系模型构建损失函数,所述第二关系如下:
其中,f(Xij)是权重函数,使得共现频率高的单词的权重大于共现频率低的单词的权重,J表示损失函数,N表示系统调用表中的不同的系统调用号的数量;
基于AdaGrad梯度下降算法优化所述损失函数,得到满足需求的词嵌入向量。
在本实施例中,需要说明的是,i和j表示系统调用表中的任意两个系统调用号,N代表系统调用表中一共有N个不同的系统调用号,本实施主要是为了对输入的数据向量进行向量表示,更好的体现出系统调用之间的依赖关系,通常one-hot向量是高纬度的且稀疏的,训练起立比较耗时,使用适当的词嵌入方法可以得到一个低维高密度的词向量。Linux系统中一共有N个系统调用,把每一个系统调用转化成一个d维的词向量,经过词嵌入模型可以得到一个N*d的嵌入矩阵W,其中ei表示第i个系统调用的d维向量表示:
给定一个由T个系统调用组成的系统调用序列S,对于序列中的每个系统调用xi,会首先查找嵌入矩阵W,将其转化成一个实值向量ei
Si={x1,x2,x3......xT}i=1,2,3...M
现有的对系统调用序列进行词嵌入的模型中,大多是使用滑动窗口的方式对系统调用进行向量的构建,因此在构建过程中只考虑到了单个系统调用相邻的几个单词,忽略了全局的信息,Glove模型包含了共现词嵌入和中心词嵌入,能够充分考虑到系统调用的全局信息进行词向量的构建。因此,本实施使用Glove方法来对系统调用进行词嵌入向量的构建。Glove:Global vectors for word Representation(基于全局词频统计表征工具),是一种通过统计词与词之间的共现频率来得到词向量的一种非监督学习算法,实现方法如下:
1、根据语料库构建一个共现矩阵X,矩阵中的每一个元素Xij代表单词i和上下文j在固定大小的上下文窗口中共同出现的次数,两个单词在上下文窗口的距离为d,使用衰减函数decay=1/d来计算权重,距离越远的两个单词所占总计数的权重越小。
2、使用如下公式构建词向量和共现矩阵之间的近似关系:
其中和/>表示最终要求解的词向量,bi和/>是两个词向量的偏置项。
3、构建损失函数:
其中f(Xij)是权重函数,使得共现频率高的单词的权重大于共现频率低的单词的权重。当到达一定程度的时候权重为1,不再增加。
最后使用AdaGrad梯度下降算法不断的优化损失函数,得到所需要的词嵌入向量。
在上述实施例基础上,在本实施例中,所述基于各系统调用的词嵌入向量确定的词向量矩阵和所述短序列的输入输出样本对,确定各系统调用之间的依赖关系,具体包括:
基于各系统调用的词嵌入向量确定的词向量矩阵和所述短序列的输入输出样本对,采用GRU和attention注意力机制确定各系统调用之间的依赖关系;其中,所述GRU为Gated Recurrent Unit算法。
在本实施中,需要说明的是,由于系统调用序列中一条系统调用序列以及单个系统调用与一个句子和句子中的单词类似,因此,本实施把系统调用序列看作是程序和系统之间通信的语言,系统调用序列和单个系统调用分别对应自然语言中的句子和单词,使用神经网络的方式进行语言建模,捕获系统调用之间的依赖关系有助于更好地进行异常检测。在本实施中,使用双层GRU+attention注意力机制进行模型训练。也可以采用其他有效的深度学习的神经网络模型来构建模型。
在本实施例中,主要对生成的输入输出样本对进行模型训练,LSTM由于其复杂的门结构及巧妙的设计可以很好的学习到系统调用序列之间的远程依赖,相比GRU,可以记住更多的历史数据,以便于更好的预测,但是由于LSTM的门结构比较复杂,参数比较多,所以训练时间比较长,GRU作为LSTM的轻量级模型,简化了LSTM的结构,可以更快的收敛,并且在很多任务上和LSTM不分伯仲,因此本实施例使用GRU对模型进行训练。
GRU(Gated Recurrent Unit),GRU主要包括两个门控循环单元:更新门z和重置门r,更新门z用来决定应该更新多少新的信息到模型中,重置门决定应该丢弃多少历史信息。公式如下所示:
zt=σ(Wz·[ht-1,xt])
rt=σ(Wr·[ht-1,xt])
其中zt和rt表示t时刻更新门和重置门的操作,ht-1和ht分别表示t-1时刻和t时刻隐藏层的输出,xt表示t时刻的输入,σ为sigmoid激活函数。
attention注意力机制,注意力机制最早在计算机视觉领域提出,注意力机制主要是用来计算输出结果与输入之间的相关程度,给定一个查找Q(query)和一个键值对(Key-Value pairs),将query映射到正确输入的过程,输出是V中所有value的加权,其中权重是由Query和Key计算出来的,计算方法分为三步:
(1)计算Q和K之间的相似度,一般有四种方法,点乘dot product,权重General,拼接权重Concat,感知器Perceptron:
(2)对得到的相似度进行softmax归一化:
(3)对V中所有的value进行加权求和,得到attention向量:
由于注意力机制根据输入序列的重要性分配了不同的权重,与GRU结合可以达到更好的预测效果。
在上述实施例基础上,在本实施例中,还包括:
基于第三关系模型根据链式法则,取共现概率的负对数进行异常检测;所述异常检测是指通过对负对数L施加阈值θ;所述第三关系模型如下:
其中,P(xi|x1:i-1)代表下一个值预测出现的概率,L表示异常因子,θ表示阈值,l表示输入输出样本对的数量。
在本实施例中,需要说明的是,L表示根据链式法则,对每一个系统调用序列使用上述第三关系模型计算得到的异常因子,θ表示对该异常因子设定的一个阈值,l代表对单条系统调用序列使用n-gram切分之后得到的输入输出样本对的数量,因为每一条系统调用序列长度不同,所以l的值不固定。
在本实施例中,可以理解的是,设置异常检测模块,根据链式法则,使用其预测结果的负对数来计算序列成为异常的可能性,对于不可能的序列产生较高的值,对于可能的序列产生较低的值,序列异常检测就是通过对负对数似然L施加一个阈值θ,通过该阈值对测试的系统调用进行分类。
其中P(xi|x1:i-1)代表下一个值预测出现的概率,考虑到如果某个值的预测概率可能比较低,连乘后导致梯度消失的问题,本实施例给得到的概率值加1来防止这个问题的产生,将多个短序列的预测值连乘得到的就是整条系统调用序列出现的概率。
由此可见,本发明提供的基于系统调用序列的主机入侵检测方法,通过进行系统调用异常检测,通过对系统调用序列的共现概率施加阈值来判别序列是否异常,即得到共现概率的异常检测。
在上述实施例基础上,在本实施例中,所述基于n-gram算法将所述各系统调用序列切分成短序列的输入输出样本对,具体包括:
基于n-gram算法将所述各系统调用序列切分为n个定长的短序列;
基于所述短序列构成输入输出样本对。
在本实施例中,使用N-Gram方法把单条系统调用序列切分为n个定长的短序列,然后使用短序列构成输入输出样本对,作为下一步神经网络模型的输入,主要处理过程如图3所示。
为了更好地理解本发明,下面结合实施例进一步阐述本发明的内容,但本发明不仅仅局限于下面实施例。
本发明使用深度学习的方法对系统调用进行语言建模,在最后阈值设定的时候使用的链式法则得到系统调用出现的概率,同时考虑到梯度消失的问题添加了松弛变量,这样一来在异常检测过程中如果遇到如下的序列:
54 175 120 175 175 3 175 175 120 175 120 175 120 175 175 120 175 3 33 175 120 175 175 175 7 3 3 175 120 175 7 175 7 119 174 54 3 3 175 175 3 120175 175 120 175 120 120 175 175 54 140 3 175 120 175 175 175 175 175 174 7175 7 119 3 3 175 3 175 175
若某正常序列(如上)中某个值120变成了其他的相近的系统调用号,由于整条序列的共现概较大,仍然可以认为该系统调用序列是正常的,可以看到本实施例降低了异常检测的误报率。
图4为本发明一实施例提供的基于系统调用序列的主机入侵检测装置的结构示意图,如图4所示,该装置包括:词嵌入模块201、切分模块202、第一确定模块203、第二确定模块204和第三确定模块205,其中:
其中,词嵌入模块201,用于对各系统调用序列进行深度嵌入,构建各系统调用的词嵌入向量;
切分模块202,用于基于n-gram算法将所述各系统调用序列切分成短序列的输入输出样本对;
第一确定模块203,用于基于各系统调用的词嵌入向量确定的词向量矩阵和所述短序列的输入输出样本对,确定各系统调用之间的依赖关系;
第二确定模块204,用于基于各系统调用之间的依赖关系确定各短序列的概率值;
第三确定模块205,用于将各短序列的概率值确定的共现概率作为异常因子,采用阈值判断法确定各系统调用序列的检测结果;所述检测结果包括正常或异常。
本发明实施例提供的基于系统调用序列的主机入侵检测装置具体可以用于执行上述实施例的基于系统调用序列的主机入侵检测方法,其技术原理和有益效果类似,具体可参见上述实施例,此处不再赘述。
基于相同的发明构思,本发明实施例提供一种电子设备,参见图5,电子设备具体包括如下内容:处理器301、通信接口303、存储器302和通信总线304;
其中,处理器301、通信接口303、存储器302通过通信总线304完成相互间的通信;通信接口303用于实现各建模软件及智能制造装备模块库等相关设备之间的信息传输;处理器301用于调用存储器302中的计算机程序,处理器执行计算机程序时实现上述各方法实施例所提供的方法,例如,处理器执行计算机程序时实现下述步骤:对各系统调用序列进行深度嵌入,构建各系统调用的词嵌入向量;基于n-gram算法将所述各系统调用序列切分成短序列的输入输出样本对;基于各系统调用的词嵌入向量确定的词向量矩阵和所述短序列的输入输出样本对,确定各系统调用之间的依赖关系;基于各系统调用之间的依赖关系确定各短序列的概率值;将各短序列的概率值确定的共现概率作为异常因子,采用阈值判断法确定各系统调用序列的检测结果;所述检测结果包括正常或异常。
基于相同的发明构思,本发明又一实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法实施例提供的方法,例如,对各系统调用序列进行深度嵌入,构建各系统调用的词嵌入向量;基于n-gram算法将所述各系统调用序列切分成短序列的输入输出样本对;基于各系统调用的词嵌入向量确定的词向量矩阵和所述短序列的输入输出样本对,确定各系统调用之间的依赖关系;基于各系统调用之间的依赖关系确定各短序列的概率值;将各短序列的概率值确定的共现概率作为异常因子,采用阈值判断法确定各系统调用序列的检测结果;所述检测结果包括正常或异常。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分的方法。
此外,在本发明中,诸如“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
此外,在本发明中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
此外,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (9)

1.一种基于系统调用序列的主机入侵检测方法,其特征在于,包括:
对各系统调用序列进行深度嵌入,构建各系统调用的词嵌入向量;
基于n-gram算法将所述各系统调用序列切分成短序列的输入输出样本对;
基于各系统调用的词嵌入向量确定的词向量矩阵和所述短序列的输入输出样本对,确定各系统调用之间的依赖关系;
基于各系统调用之间的依赖关系确定各短序列的概率值;
基于由各短序列的概率值确定的共现概率确定异常因子,并基于所述异常因子采用阈值判断法进行异常检测确定各系统调用序列的检测结果;所述检测结果包括正常或异常;
所述基于由各短序列的概率值确定的共现概率确定异常因子包括:
基于第三关系模型根据链式法则,取由各短序列的概率值确定的共现概率的负对数作为所述异常因子;所述第三关系模型如下:
其中,P(xi|x1:i-1)代表下一个值预测出现的概率,表示共现概率;L表示异常因子,l表示输入输出样本对的数量;
所述基于所述异常因子采用阈值判断法进行异常检测确定各系统调用序列的检测结果,包括:
在所述异常因子大于或等于预设阈值的情况下,确定各系统调用序列的检测结果为正常;
在所述异常因子小于预设阈值的情况下,确定各系统调用序列的检测结果为异常。
2.根据权利要求1所述的基于系统调用序列的主机入侵检测方法,其特征在于,所述对各系统调用序列进行深度嵌入,构建各系统调用的词嵌入向量,具体包括:
对各系统调用序列进行深度嵌入,基于Glove词嵌入模型构建各系统调用的词嵌入向量;所述Glove词嵌入模型包括共现词嵌入和中心词嵌入。
3.根据权利要求2所述的基于系统调用序列的主机入侵检测方法,其特征在于,所述对各系统调用序列进行深度嵌入,基于Glove词嵌入模型构建各系统调用的词嵌入向量,具体包括:
构建各系统调用序列的共现矩阵;
采用第一关系模型构建词向量和所述共现矩阵的近似关系;所述第一关系如下:
其中,和wj表示最终要求解的词向量,bi和bj是两个词向量的偏置项,log(Xij)表示词向量和所述共现矩阵的近似关系,i和j表示系统调用表中的任意两个系统调用号;
采用第二关系模型构建损失函数,所述第二关系如下:
其中,f(Xij)是权重函数,使得共现频率高的单词的权重大于共现频率低的单词的权重,J表示损失函数,N表示系统调用表中的不同的系统调用号的数量;
基于AdaGrad梯度下降算法优化所述损失函数,得到满足需求的词嵌入向量。
4.根据权利要求1所述的基于系统调用序列的主机入侵检测方法,其特征在于,所述基于各系统调用的词嵌入向量确定的词向量矩阵和所述短序列的输入输出样本对,确定各系统调用之间的依赖关系,具体包括:
基于各系统调用的词嵌入向量确定的词向量矩阵和所述短序列的输入输出样本对,采用GRU和attention注意力机制确定各系统调用之间的依赖关系;其中,所述GRU为GatedRecurrent Unit算法。
5.根据权利要求1所述的基于系统调用序列的主机入侵检测方法,其特征在于,所述基于n-gram算法将所述各系统调用序列切分成短序列的输入输出样本对,具体包括:
基于n-gram算法将所述各系统调用序列切分为n个定长的短序列;
基于所述短序列构成输入输出样本对。
6.一种基于系统调用序列的主机入侵检测装置,其特征在于,包括:
词嵌入模块,用于对各系统调用序列进行深度嵌入,构建各系统调用的词嵌入向量;
切分模块,用于基于n-gram算法将所述各系统调用序列切分成短序列的输入输出样本对;
第一确定模块,用于基于各系统调用的词嵌入向量确定的词向量矩阵和所述短序列的输入输出样本对,确定各系统调用之间的依赖关系;
第二确定模块,用于基于各系统调用之间的依赖关系确定各短序列的概率值;
第三确定模块,用于基于各短序列的概率值确定的共现概率确定异常因子,并基于所述异常因子采用阈值判断法进行异常检测确定各系统调用序列的检测结果;所述检测结果包括正常或异常;
所述装置还包括第四确定模块,用于:
基于第三关系模型根据链式法则,取由各短序列的概率值确定的共现概率的负对数作为所述异常因子;所述第三关系模型如下:
其中,P(xi|x1:i-1)代表下一个值预测出现的概率,表示共现概率;L表示异常因子,l表示输入输出样本对的数量;
所述基于所述异常因子采用阈值判断法进行异常检测确定各系统调用序列的检测结果,包括:
在所述异常因子大于或等于预设阈值的情况下,确定各系统调用序列的检测结果为正常;
在所述异常因子小于预设阈值的情况下,确定各系统调用序列的检测结果为异常。
7.根据权利要求6所述的基于系统调用序列的主机入侵检测装置,其特征在于,所述词嵌入模块,具体用于:
对各系统调用序列进行深度嵌入,基于Glove词嵌入模型构建各系统调用的词嵌入向量;所述Glove词嵌入模型包括共现词嵌入和中心词嵌入。
8.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1~5任一项所述的基于系统调用序列的主机入侵检测方法。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1~5任一项所述的基于系统调用序列的主机入侵检测方法。
CN202011484244.3A 2020-12-15 2020-12-15 基于系统调用序列的主机入侵检测方法及装置 Active CN112613032B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011484244.3A CN112613032B (zh) 2020-12-15 2020-12-15 基于系统调用序列的主机入侵检测方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011484244.3A CN112613032B (zh) 2020-12-15 2020-12-15 基于系统调用序列的主机入侵检测方法及装置

Publications (2)

Publication Number Publication Date
CN112613032A CN112613032A (zh) 2021-04-06
CN112613032B true CN112613032B (zh) 2024-03-26

Family

ID=75240953

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011484244.3A Active CN112613032B (zh) 2020-12-15 2020-12-15 基于系统调用序列的主机入侵检测方法及装置

Country Status (1)

Country Link
CN (1) CN112613032B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115378702B (zh) * 2022-08-22 2024-04-02 重庆邮电大学 一种基于Linux系统调用的攻击检测系统
CN115859277B (zh) * 2023-02-07 2023-05-02 四川大学 一种基于系统调用序列的主机入侵检测方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110192204A (zh) * 2016-11-03 2019-08-30 易享信息技术有限公司 通过多个语言任务层级处理数据的深度神经网络模型
CN110532378A (zh) * 2019-05-13 2019-12-03 南京大学 一种基于主题模型的短文本方面提取方法
CN110598207A (zh) * 2019-08-14 2019-12-20 华南师范大学 一种词向量获取方法、装置及存储介质
CN111209168A (zh) * 2020-01-14 2020-05-29 中国人民解放军陆军炮兵防空兵学院郑州校区 一种基于nLSTM-self attention的日志序列异常检测框架
CN112016312A (zh) * 2020-09-08 2020-12-01 平安科技(深圳)有限公司 数据关系抽取方法、装置、电子设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110192204A (zh) * 2016-11-03 2019-08-30 易享信息技术有限公司 通过多个语言任务层级处理数据的深度神经网络模型
CN110532378A (zh) * 2019-05-13 2019-12-03 南京大学 一种基于主题模型的短文本方面提取方法
CN110598207A (zh) * 2019-08-14 2019-12-20 华南师范大学 一种词向量获取方法、装置及存储介质
CN111209168A (zh) * 2020-01-14 2020-05-29 中国人民解放军陆军炮兵防空兵学院郑州校区 一种基于nLSTM-self attention的日志序列异常检测框架
CN112016312A (zh) * 2020-09-08 2020-12-01 平安科技(深圳)有限公司 数据关系抽取方法、装置、电子设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
LSTM-BASED SYSTEM-CALL LANGUAGE MODELING AND ROBUST ENSEMBLE METHOD FOR DESIGNING HOST-BASED INTRUSION DETECTION SYSTEMS;Gyuwan Kim 等;cs.CR;20161006;第1-12页 *

Also Published As

Publication number Publication date
CN112613032A (zh) 2021-04-06

Similar Documents

Publication Publication Date Title
Chawla et al. Host based intrusion detection system with combined CNN/RNN model
Lu et al. Detecting anomaly in big data system logs using convolutional neural network
Xue et al. Malware classification using probability scoring and machine learning
CN109918505B (zh) 一种基于文本处理的网络安全事件可视化方法
JP2022141931A (ja) 生体検出モデルのトレーニング方法及び装置、生体検出の方法及び装置、電子機器、記憶媒体、並びにコンピュータプログラム
CN113297571B (zh) 面向图神经网络模型后门攻击的检测方法和装置
CN111915437A (zh) 基于rnn的反洗钱模型的训练方法、装置、设备及介质
CN112613032B (zh) 基于系统调用序列的主机入侵检测方法及装置
Tao et al. A network intrusion detection model based on convolutional neural network
CN113691542B (zh) 基于HTTP请求文本的Web攻击检测方法及相关设备
CN117461032A (zh) 异常检测系统及方法
CN111400713B (zh) 基于操作码邻接图特征的恶意软件族群分类方法
Chen et al. Malicious URL detection based on improved multilayer recurrent convolutional neural network model
Agrawal et al. Robust neural malware detection models for emulation sequence learning
CN116432184A (zh) 基于语义分析和双向编码表征的恶意软件检测方法
CN117134969A (zh) 基于扩散生成对抗网络和改进白鲸优化的入侵检测算法
Silivery et al. A model for multi-attack classification to improve intrusion detection performance using deep learning approaches
WO2021244105A1 (zh) 一种特征向量维度压缩方法、装置、设备、介质
Sheng et al. Network traffic anomaly detection method based on chaotic neural network
US20210365771A1 (en) Out-of-distribution (ood) detection by perturbation
Xue Research on network security intrusion detection with an extreme learning machine algorithm
Fu et al. A Novel Deep Intrusion Detection Model Based On a Convolutional Neural Network.
Lu et al. PhilaeX: explaining the failure and success of AI models in malware detection
Osamor et al. Deep learning-based hybrid model for efficient anomaly detection
CN114139153A (zh) 基于图表示学习的恶意软件可解释性分类方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant