买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种主机序列入侵检测方法_广东省信息安全测评中心_201910596409.7 

申请/专利权人:广东省信息安全测评中心

申请日:2019-07-03

公开(公告)日:2021-01-05

公开(公告)号:CN110334508B

主分类号:G06F21/55(20130101)

分类号:G06F21/55(20130101);G06K9/62(20060101)

优先权:

专利状态码:有效-授权

法律状态:2021.01.05#授权;2019.11.08#实质审查的生效;2019.10.15#公开

摘要:一种主机序列入侵检测方法,包括以下步骤:S1、分别对每个训练序列和每个测试序列,提取m个特征命令;S2、使用由所述训练序列和所述测试序列提取的特征命令构建特征命令集;S3、计算所述训练序列在特征命令集特征维度空间上的分布;S4、对每条测试序列提取的m个特征命令,在所述特征命令集中映射为一个新向量,形成在所述特征命令集特征维度空间上的分布向量;S5、对每串测试序列形成的向量,在所述分布中找到与之最相似k个训练命令序列,将所述k个训练命令序列对应的类型中出现次数最多的类型确定为该测试序列的判别类型。本发明提供了一种代价低、实现起来简单、综合表现好的主机序列入侵检测方法。

主权项:1.一种主机序列入侵检测方法,检测的对象主机序列是通过命令行、程序调用的操作系统底层命令序列,序列表示一连串的命令,命令表示序列中的单个命令,其特征在于,包括以下步骤:S1、对训练序列和测试序列,提取m个特征命令,m的初始取值大于等于1;其中,对序列提取m个特征命令包括:将序列转化为有向有权图G=V,E,其中V表示序列中的命令的点集合,V={V1,V2,…,Vi,…Vn|1≤i≤n},E为图中带权w的边,表示命令的上下文关系;根据下式计算命令Vi的得分: 其中,对于命令Vi、Vj,wij为序列中任意两个命令Vi和Vj之间上下文的权重,表示Vi后续的命令为Vj的次数,InVi表示后续命令为Vi的命令集,OutVj为命令Vj后续的命令集合,d为阻尼系数,取值范围为0,1,WSVj是命令Vj的得分;其中在计算各个命令得分时,给所有命令指定预设的初值,并递归计算经多次迭代直至收敛;根据以上方法计算序列中所有命令的WS值后,提取所有命令中WS值最大的m个命令;S2、使用由所述训练序列和所述测试序列提取的特征命令构建特征命令集;S3、计算所述训练序列在特征命令集特征维度空间上的分布;S4、对每条测试序列提取的m个特征命令,在所述特征命令集特征维度空间中映射为一个新向量,形成在所述特征命令集特征维度空间上的分布向量;S5、对每条测试序列形成的向量,在所述分布中找到与之最相似的k个特征命令序列,将所述k个特征命令序列对应的类型中出现次数最多的类型确定为该测试序列的判别类型,其中,计算该向量在所述分布上的k个最邻近向量,按投票原则取类别标号众数,作为该测试序列的判别类型。

全文数据:一种主机序列入侵检测方法技术领域本发明属于计算机网络入侵检测领域,尤其是一种主机序列入侵检测方法。背景技术基于主机的计算机网络入侵检测领域,主要是通过主机系统调用序列简称主机序列来检测用户的异常行为。在主机序列入侵检测中,检测的对象主机序列是用户通过命令行、程序调用的操作系统底层命令序列。“序列”表示采集的一连串命令,“命令”仅表示其中单个命令。现有基于主机系统调用序列的入侵检测方法主要包括以下四类:1、基于序列化特征使用N-Gram进行序列化特征建模是较为主流的技术,该算法于1996年提出,将系统调用看作词语,把调用序列看作短语,设定k为序列长度,则窗口大小为k+1,在滑动窗口时用数据库记录每个词的后续序列集。该方法的缺陷是误报率高,且需要构建足够大的特征数据库,在ADFA数据集的实验表明,该方法虽然TPR能达到90%以上,效率较高,但误报率高达30%,降低误报率需要充分多的训练序列。2、基于文档频率统计的特征基于频率的方法包括词袋模型、TF-IDF、HMM等,以词频逆文档频率方法TF-IDF为代表,其方法是将系统调用进行向量化计算,先用TF-IDF对序列打分。在打分序列的基础上,进行SVM、KNN等算法进行分类。基于频率的特征命令提取方法缺点在于,特征的提取完全基于概率,没有基于语义特征,可能丢失重要特征。在ADFA数据集的实验表明,利用TF-IDF对序列提取少量特征命令,特征的聚集效果不明显,且计算IDF时需要耗费较多计算资源。3、基于词向量、句向量嵌入模型该方法不考虑词频,而是从词之间的相似性在高维空间上的距离层面抽取特征,即把序列训练成一个浅层神经网络,将训练集中的每个命令或每串子命令都映射到一个指定维度的向量空间中,再进行降维。这类算法缺点是计算消耗资源较大,而主机入侵检测的应用场景决定了它需要更加轻量级的算法。4、基于神经网络Ghosh等人对误用检测和异常检测使用了人工神经网络,ROC曲线表明TPR为77.3%,FPR为2.2%。Han和CHO在研究中引入了进化神经网络ENN,训练序列中正常记录和攻击数据的比例是2:1,对DARPA99数据集的实验表明使用ENN的误报率仅为0.0011%,检测率达到100%,ENN训练时间大约为1小时。采用ENN等方法易出现过拟合,而ANN的方法TPR表现不够理想。发明内容本发明的主要目的在于克服现有技术的不足,提供一种代价低、实现起来简单、综合表现好的主机序列入侵检测方法。为实现上述目的,本发明采用以下技术方案:一种主机序列入侵检测方法,包括以下步骤:S1、对训练序列和测试序列,提取m个特征命令;S2、使用由所述训练序列和所述测试序列提取的特征命令构建特征命令集;S3、计算所述训练序列在特征命令集特征维度空间上的分布;S4、对每条测试序列提取的m个特征命令,在所述特征命令集维度空间中映射为一个新向量,形成在所述特征命令集特征维度空间上的分布向量;S5、对每条测试序列形成的向量,在所述分布中找到与之最相似的k个特征命令序列,将所述k个特征命令序列对应的类型中出现次数最多的类型确定为该测试序列的判别类型。进一步地:还包括以下步骤:S6、判断m是否大于设定阈值,如果否,则将m的取值更新为m+1,再重复执行步骤S1-S5;S7、对不同m取值下的类型判别结果进行分类效果检测,以具有最佳分类效果的m取值下的判别类型作为最终判别类型。步骤S7中,以TPR和FPR作为分类效果的检测指标进行分类效果检测。步骤S1中,对序列提取m个特征命令包括:将序列转化为有向有权图G=V,E,其中V表示序列中的命令的点集合,V={V1,V2,…,Vi,…Vn|1≤i≤n},E为图中带权w的边,表示命令的上下文关系;根据下式计算命令Vi的得分:其中,对于命令Vi、Vj,wij为序列中任意两个命令Vi和Vj之间上下文的权重,表示Vi后续的命令为Vj的次数,InVi表示后续命令为Vi的命令集,OutVj为命令Vj后续的命令集合,d为阻尼系数,取值范围为0,1,WSVj是命令Vj的得分;其中在计算各个命令得分时,给所有命令指定预设的初值,并递归计算经多次迭代直至收敛;根据以上方法计算序列中所有命令的WS值后,提取所有命令中WS值最大的m个命令。优选地,d取0.85。步骤S5中,计算该向量在所述分布上的k个最邻近向量,按投票原则取类别标号众数,作为该测试序列的判别类型。步骤S5包括:S51、计算所述分布中的所有向量与测试向量之间的距离;S52、按照距离大小次序排序,例如升序排列;S53、选取与该测试向量距离最小的k个向量;S54、确定所述k个向量所在的类别的出现频次;S55、返回出现频次最高的类别作为该测试向量的预测分类。步骤S1中,m的初始取值大于等于1。一种计算机可读存储介质,存储有计算机程序,所述计算机程序可被处理器执行以实现所述方法。本发明具有如下有益效果:本发明提出了一种基于主机入侵检测系统host-basedintrusiondetectionsystem,简称HIDS的入侵检测方法,能够解决主机入侵检测系统对算法时间代价、入侵变种问题比较敏感的问题,相比现有技术是一种代价低,易于实现,综合表现好的异常检测方法,能够达到更好的特征命令提取和检测效果。本方法实施例的优点包括:1、用本方法对每个序列提取的m个特征命令具有一定的语义特征,能有效提取出具有代表性的命令,突出关键的攻击动作。2、根据本方法计算出的命令得分不依赖于训练序列,相比传统的STIDE算法,在训练样本数量少的情况下,能有效提升FPR表现。3、与传统的TF-IDF方法相比,在取较小的m值时,本方法提取特征命令所需资源更少,因为在TF-IDF算法计算IDF需要较高的复杂度。当m取较小值,假设训练序列N条,平均长度P,所有序列长度和为P*N,TF-IDF耗时达fP*N,本方法耗时为fN。4、提取的特征命令有一定的语义特征,能有效提取关键命令,而不用关心训练序列中该关键命令出现的情况,能够有效应对出现新的攻击类型以及攻击顺序被人为改变的情况。5、本方法能有效提升在样本稀疏和样本不均衡的情况下的检测表现。6、相较于TF-IDF提取方法,能有效提升特征命令提取效率;相较于STIDE方法,本发明能有效提升误报率表现。附图说明图1为本发明一种实施例的主机序列入侵检测方法流程图。图2为本发明实施例中将序列转化为有向图效果。图3为在ADFA数据集采用本发明实施例与STIDE方法的检测结果对比。图4为在ADFA数据集采用本发明实施例与TF-IDF方法提取特征数量对比。图5为在ADFA数据集采用本发明实施例与TF-IDF方法的检测耗时对比。具体实施方式以下对本发明的实施方式作详细说明。应该强调的是,下述说明仅仅是示例性的,而不是为了限制本发明的范围及其应用。参阅图1,在一种实施例中,一种主机序列入侵检测方法,包括以下步骤:S1、对训练序列和测试序列,提取m个特征命令;S2、使用由所述训练序列和所述测试序列提取的特征命令构建特征命令集;S3、计算所述训练序列在特征命令集特征维度空间上的分布;S4、对每条测试序列提取的m个特征命令,在所述特征命令集维度上映射为一个新向量,形成在所述特征命令集特征维度空间上的分布向量;S5、对每条测试序列形成的向量,在所述分布中找到与之最相似的k个特征命令序列,将所述k个特征命令序列对应的类型中出现次数最多的类型确定为该测试序列的判别类型。在优选的实施例中,本方法还包括以下步骤:S6、判断m是否大于设定阈值,如果否,则将m的取值更新为m+1,再重复执行步骤S1-S5;S7、对不同m取值下的类型判别结果进行分类效果检测,以具有最佳分类效果的m取值下的判别类型作为最终判别类型。在优选的实施例中,步骤S7中,以TPR和FPR作为分类效果的检测指标进行分类效果检测。在优选的实施例中,步骤S1中,对序列提取m个特征命令包括:将序列转化为有向有权图G=V,E,其中V表示序列中的命令的点集合,V={V1,V2,…,Vi,…Vn|1≤i≤n},E为图中带权w的边,表示命令的上下文关系;根据下式计算命令Vi的得分:其中,对于命令Vi、Vj,wij为序列中任意两个命令Vi和Vj之间上下文的权重,表示Vi后续的命令为Vj的次数,InVi表示后续命令为Vi的命令集,OutVj为命令Vj后续的命令集合,d为阻尼系数,取值范围为0,1,WSVj是命令Vj的得分;其中在计算各个命令得分时,给所有命令指定预设的初值,并递归计算经多次迭代直至收敛;根据以上方法计算序列中所有命令的WS值后,提取所有命令中WS值最大的m个命令。由本方法对每个序列提取的m个特征命令具有一定的语义特征,能有效提取出具有代表性的命令,突出关键的攻击动作出。提取的特征命令有一定的语义特征,能有效提取关键的攻击命令,而不用关心训练数据中该关键命令出现的情况,能够有效应对新的攻击类型、攻击顺序被人为改变的情况。本方法中,命令得分不依赖于训练序列,相比传统的STIDE算法,在训练样本数量少的情况下,能有效提升FPR表现。本方法能有效提升在样本稀疏和样本不均衡的情况下的检测表现。相较于TF-IDF提取方法,本方法能有效提升特征命令提取效率;相较于STIDE方法,本方法能有效提升误报率表现。在优选的实施例中,d取0.85。在优选的实施例中,步骤S5中,计算该向量在所述分布上的k个最邻近向量,按投票原则取类别标号众数,作为该测试序列的判别类型。在优选的实施例中,步骤S5包括:S51、计算所述分布中的所有向量与测试向量之间的距离;S52、按照距离大小次序排序,例如升序排列;S53、选取与测试向量距离最小的k个向量;S54、确定所述k个向量所在的类别的出现频次;S55、返回出现频次最高的类别作为该测试向量的预测分类。在一种实施例中,步骤S1中,m的初始取值大于等于1。以下结合附图进一步描述本发明具体实施例的特征和优点。在主机序列入侵检测中,检测的对象主机序列是用户通过命令行、程序调用的操作系统底层命令序列。“序列”表示一连串的命令,“命令”仅表示其中单个命令。一串序列对应一个分类结果,即“正常”还是“异常”。本发明方法可分为两大步骤:第一步是序列的特征命令提取,第二步是分类检测。第一步:特征命令提取:在主机序列上进行系统调用序列的特征命令提取。本步中,将主机序列转化为有向有权图G=V,E,V表示命令,转化为点集合,E表示命令的上下文关系,转化为图中的边。任意两个命令Vi和Vj之间上下文的权重为wij,表示Vi后续命令为Vj的次数,对于一个给定的命令Vi,InVi表示指向该命令的命令集,OutVi为命令Vi指向的命令集合。则通过如下式计算命令Vi的得分:其中,,d为阻尼系数,取值范围为0,1,代表某一特定命令指向其他任意命令的概率,通常取0.85,WSVj是命令Vj的得分。对各序列的特征命令提取过程包括:按照上述方法,计算一条序列所有命令的WS值,取WS值最大的m个命令。使用该方法计算各个命令得分时,给所有命令指定特定的初值,并递归计算直至收敛。其中,命令的得分WS是相互依赖的,所以需要多次迭代直到其收敛。以上方法体现了这样的思想:如果一个命令出现在很多命令之后,则表明这个命令较为重要;一个命令紧随着一个WS得分很高的命令,那么这个命令的WS得分会因此而提高。例如,以序列化记录一个系统调用,某一串的系统调用序列以如下的系统调用号来表示:6663642120619512066114114112522522521111111125211111252111125225225225225211252本例是以一串序列进行特征命令提取的例子该串数字是经过处理的序列,一个号表示一种命令。通过以上方法对序列命令进行转化,命令及其上下文关系形成有向图参见图2,将攻击序列转化为有向图效果。再利用WS公式计算出每个命令的得分,计算一个序列中所有命令的得分后,选择得分最高的m个命令,作为这个序列被选择的特征,从而起到降维作用。最终提取出特征命令数量m=4时的特征命令1、252、6、120,选择这四个命令是根据前面的式子计算得出这四个命令得分最高,而不用考虑该特征在训练序列中的出现频率。从图2可以看到选取的效果,这几个命令位于有向图中的关键位置,具有结构上的代表性。m可以取其他值,此处为4仅是举例。特征命令提取核心代码实现如下:输入:待提取序列sequence,特征命令数量m输出:按照WS值降序排列的特征命令第二步:分类检测1、使用训练序列和测试序列通过第一步提取的特征命令构建特征命令集S;2、计算训练序列在特征命令集S特征维度上的分布distri_train;3、对每一条测试序列提取的m个特征命令,形成在特征命令集S特征维度空间上的分布向量;4、计算该向量在分布distri_train上的k个最邻近向量,按投票原则取分类标号众数作为其分类,将分类的结果作为对该测试序列的判断结果。众数就是出现频率最大的数。步骤4中,取k个与检测目标距离最近的向量,然后从k个向量的结果标号中投票选择出现次数最多的结果。该方法通过测量不同特征值之间的距离进行分类。它的思路是:如果一个样本在特征空间中的k个最相似即特征空间中最邻近的样本中的大多数属于某一个类别,则该样本也属于这个类别。具体步骤可以包括:1、计算分布distri_train中的所有向量与测试向量之间的距离;2、按照距离递增次序排序;3、选取与测试向量距离最小的k个向量;4、确定前k个向量所在的类别的出现频次;5、返回前k个向量出现频次最高的类别作为该测试向量的预测分类。在一个具体实施例中,本方法包括如下步骤:1、数据处理和初始化。混淆不同类别数据,随机取90%用于训练;初始化m=1。2、对所有训练序列和测试序列,分别利用特征命令提取算法extract构建m个特征命令。特征命令提取算法包含第一步的所有过程,包括:对序列命令进行转化,形成有向图,利用WS公式计算出每个命令的得分,然后取m个得分最高的命令。3、用所有特征命令构建特征命令集S。4、计算训练序列在特征命令集S上的分布distri_train。5、对每个测试序列提取的m个特征命令,在特征命令集S中映射为一个新向量V,形成在特征命令集S特征维度空间上的分布向量。6、通过KNN分类判定序列类型:对每个测试序列形成的向量V在distri_train中找到距离最近k个的特征命令序列,k个序列对应的类型中,最多的类型即为该测试序列的判别类型。7、根据m当前值,评估分类结果的TPR和FPR。TPR和FPR是分类效果的检测指标。在二分类问题中,用TPR、FPR能更准确地衡量模型分类结果。TPR是真正例率,表示当前分到正样本中真实的正样本所占所有正样本的比例;FPR是假正例率,表示当前被错误分到正样本类别中真实的负样本所占所有负样本总数的比例。TPR越接近1、FPR越接近0,表示效果越好。8、当m预设上限所有序列中,不同命令数的最小值,退出;否则m自增1,重复步骤2。9、根据不同m取值下表现最佳的TPR和FPR,确定最终的m取值。实验结果实验在ADFA-LD数据集进行。ADFA数据集是澳大利亚国防学院对外发布的一套主机级入侵检测系统的数据集合,被广泛应用于入侵检测类产品的测试中。数据集内已经将各类系统调用完成了特征化,并对攻击类型进行了标注。在ADFA-LD数据集对本方法进行验证,取90%为训练序列,剩余10%为测试序列。实验表明,利用ADFA-LD数据集中同样数据的测试,证明在有效性、效率等方面,本方法比传统方法有明显的优势。在本实验中,一般m取5、k取1时可获得最佳特征,此时TPR达92%,FPR约1.9%。有效性方面:与传统STIDE的效果TPR约90%,FPR约30%相比,本方法能有效提升检出率、减少误报率。参见图3,在ADFA数据集采用本方法与STIDE方法的检测结果对比。结果显示,本方法检出率优于STIDE方法,且误报率远低于传统STIDE方法。处理效率方面:当m取最佳值5时,本方法比TF-IDF方法效率提升3倍以上。虽然二者表现接近,但由于本方法比TF-IDF所需的特征数量更小,比TF-IDF的特征维度更低。参见图4,当m=5时,两种方法检测表现一致且均为最佳,但本方法共取特征命令89个,TF-IDF共取特征命令139个。而且,本方法可省去率计算IDF的额外开销,因此在总体耗时方面较TF-IDF方法有了大幅提升。参见图5,结果显示,当m=5时,两种方法表现一致且最佳,但本方法耗时仅需TF-IDF耗时的30%。以上内容是结合具体优选的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,其还可以对这些已描述的实施方式做出若干替代或变型,而这些替代或变型方式都应当视为属于本发明的保护范围。

权利要求:1.一种主机序列入侵检测方法,其特征在于,包括以下步骤:S1、对训练序列和测试序列,提取m个特征命令;S2、使用由所述训练序列和所述测试序列提取的特征命令构建特征命令集;S3、计算所述训练序列在特征命令集特征维度空间上的分布;S4、对每条测试序列提取的m个特征命令,在所述特征命令集特征维度空间中映射为一个新向量,形成在所述特征命令集特征维度空间上的分布向量;S5、对每条测试序列形成的向量,在所述分布中找到与之最相似的k个特征命令序列,将所述k个特征命令序列对应的类型中出现次数最多的类型确定为该测试序列的判别类型。2.如权利要求1所述的主机序列入侵检测方法,其特征在于,还包括以下步骤:S6、判断m是否大于设定阈值,如果否,则将m的取值更新为m+1,再重复执行步骤S1-S5;S7、对不同m取值下的类型判别结果进行分类效果检测,以具有最佳分类效果的m取值下的判别类型作为最终判别类型。3.如权利要求2所述的主机序列入侵检测方法,其特征在于,步骤S7中,以TPR和FPR作为分类效果的检测指标进行分类效果检测。4.如权利要求1至3任一项所述的主机序列入侵检测方法,其特征在于,步骤S1中,对序列提取m个特征命令包括:将序列转化为有向有权图G=V,E,其中V表示序列中的命令的点集合,V={V1,V2,...,Vi,...Vn|1≤i≤n},E为图中带权w的边,表示命令的上下文关系;根据下式计算命令Vi的得分:其中,对于命令Vi、Vj,wij为序列中任意两个命令Vi和Vj之间上下文的权重,表示Vi后续的命令为Vj的次数,InVi表示后续命令为Vi的命令集,OutVj为命令Vj后续的命令集合,d为阻尼系数,取值范围为0,1,WSVj是命令Vj的得分;其中在计算各个命令得分时,给所有命令指定预设的初值,并递归计算经多次迭代直至收敛;根据以上方法计算序列中所有命令的WS值后,提取所有命令中WS值最大的m个命令。5.如权利要求4所述的主机序列入侵检测方法,其特征在于,d取0.85。6.如权利要求1至5任一项所述的主机序列入侵检测方法,其特征在于,步骤S5中,计算该向量在所述分布上的k个最邻近向量,按投票原则取类别标号众数,作为该测试序列的判别类型。7.如权利要求6所述的主机序列入侵检测方法,其特征在于,步骤S5包括:S51、计算所述分布中的所有向量与测试向量之间的距离;S52、按照距离大小次序排序;S53、选取与测试向量距离最小的k个向量;S54、确定所述k个向量所在的类别的出现频次;S55、返回出现频次最高的类别作为该测试向量的预测分类。8.如权利要求1至7任一项所述的主机序列入侵检测方法,其特征在于,步骤S1中,m的初始取值大于等于1。9.一种计算机可读存储介质,其特征在于:存储有计算机程序,所述计算机程序可被处理器执行以实现根据权利要求1至8任一项所述方法。

百度查询: 广东省信息安全测评中心 一种主机序列入侵检测方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。