CN1649312A - 基于序列模式挖掘的程序级入侵检测系统和方法 - Google Patents

基于序列模式挖掘的程序级入侵检测系统和方法 Download PDF

Info

Publication number
CN1649312A
CN1649312A CN 200510056935 CN200510056935A CN1649312A CN 1649312 A CN1649312 A CN 1649312A CN 200510056935 CN200510056935 CN 200510056935 CN 200510056935 A CN200510056935 A CN 200510056935A CN 1649312 A CN1649312 A CN 1649312A
Authority
CN
China
Prior art keywords
sequence
seq
system call
training
module
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.)
Granted
Application number
CN 200510056935
Other languages
English (en)
Other versions
CN1333553C (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.)
Beijing Capitek Co, Ltd.
Original Assignee
BEIJING SHOUXIN SCIENCE AND TECHNOLOGY Co Ltd
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 BEIJING SHOUXIN SCIENCE AND TECHNOLOGY Co Ltd filed Critical BEIJING SHOUXIN SCIENCE AND TECHNOLOGY Co Ltd
Priority to CN 200510056935 priority Critical patent/CN1333553C/zh
Publication of CN1649312A publication Critical patent/CN1649312A/zh
Application granted granted Critical
Publication of CN1333553C publication Critical patent/CN1333553C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种基于序列模式挖掘的程序级入侵检测系统和方法,该系统由控制模块、数据采集和预处理模块、训练模块、存储模块、检测模块、检测结果输出模块组成,配置在需要监控的服务器上。该系统采用基于数据挖掘的异常检测技术,通过监控网络服务器中特权程序的运行情况来检测网络中的各种攻击活动;即以特权程序运行时所产生的系统调用作为审计数据,利用数据挖掘技术中的序列模式表示一个特权程序的正常行为,根据序列的支持度或可信度在训练数据中挖掘正常序列模式,并建立相应的正常序列模式库;检测时通过将当前序列模式和正常序列模式进行比较和匹配来识别攻击行为,以便引起网络安全管理员的密切注意和采取相应的处理措施来保证安全。

Description

基于序列模式挖掘的程序级入侵检测系统和方法
技术领域
本发明涉及一种用于计算机网络安全的基于序列模式挖掘的程序级入侵检测系统和方法,属于网络信息安全技术领域。
背景技术
随着计算机网络的迅速普及和各种网络新业务的不断兴起,网络安全问题已经逐渐渗透到政治、军事、财政、经济、产业、文化、教育等社会生活各个领域,并且变得越来越严峻。近年来,网络安全事件数量不断上升,尤其是近两三年呈现出急剧增长的趋势。由于计算机网络系统的各个部分在设计、运行和使用过程中都会存在某些漏洞,而且,目前还没有经济可行的办法能够完全消除这些隐患,因而有效的入侵检测技术成为保证网络安全的必不可少的手段。入侵检测系统(IDS,Intrusion Detection Systems)是继防火墙、数据加密等传统安全保护措施后的新一代网络安全产品,它是通过监控计算机网络系统的状态、行为以及系统的使用情况,来检测系统中发生的各种入侵和攻击行为。随着国内网络应用的进一步扩展,包括政府、军队、企事业单位在内的社会各个方面,都将对IDS产生很大的需求;所以,研制具有自主知识产权的高性能IDS是当前的迫切需要。
与诸如防火墙、数据加密、认证鉴权等高度成熟的网络安全技术相比,目前的入侵检测技术还存在相当多的缺陷,主要是检测准确率比较低,检测速度较慢,自学习能力不强。
目前的入侵检测技术主要分为三类:误用检测、异常检测和混合检测。误用检测是将已知的攻击行为表示为一种模式或特征,并将攻击模式(特征)存储在知识库中,检测时通过将被监测系统或用户的实际行为模式与攻击模式之间的匹配来判断是否存在入侵(本发明中,将“入侵”和“攻击”作为同义词使用);误用检测的关键是如何描述和表示攻击行为,以及如何提高数据采集和模式匹配的速度和效率。目前商用的IDS多数采用误用检测技术,这种技术对已知攻击有很强的检测能力,其缺点是知识库需要不断更新,而且难以检测出未知的、新出现的攻击方式。异常检测是对系统或用户的正常行为(轮廓)进行分析和表示,并建立关于正常行为的知识库,检测时如果被监测系统或用户的实际行为较大程度地偏离了其正常行为(轮廓),则认为有入侵存在。异常检测的优点是不需要过多有关系统缺陷的知识,具有较强的适应性,能够检测出未知或新出现的攻击方式,其主要缺点是虚警率较高。混合检测是将误用检测和异常检测综合在一起的检测技术,通常具有更好的检测性能,但在实际应用中这种技术较为复杂。
根据审计数据的来源,入侵检测系统IDS可分为主机型、网络型和混合型三种系统。主机型IDS通过分析主机中的审计数据(如操作系统的审计记录、系统日志等)来检测入侵,这种系统所监控的对象一般是单个主机(服务器)。网络型IDS的审计数据则来自网络上的原始数据包,该类系统通常担负着保护一个网段的任务。混合型IDS能够同时分析来自主机和来自网络的审计数据,一般采用分布式结构,这种IDS通常用于保护异构或大型的网络系统。
近年来,利用计算机软件系统中特权程序的漏洞实施攻击已经成为一种相当普遍的入侵方式。特权程序(如Unix系统中以Root权限运行的程序)一般具有较高的权限,入侵者可以利用这些程序在设计过程中遗留下来的漏洞和缺陷,获得整个系统的控制权,进而实施攻击,这将会严重威胁到整个系统的安全。目前,这类攻击方式和工具越来越多;例如,Finger服务程序中的一个缺陷可以使攻击者利用“缓冲区溢出”的方法,欺骗服务程序执行攻击者安排的恶意代码。近年来,通过监视特权程序的运行情况来发现和识别入侵行为已成为主机型IDS的主要检测手段之一。现有的研究表明,一个特权程序在正常运行时所产生的系统调用序列是基本一致的;但是,当程序不正常运行时(即程序遭受攻击、被篡改或执行不经常执行的程序分枝等),它所产生的系统调用序列与正常运行时的序列有较为明显的差异。
本发明涉及的入侵检测系统IDS是一种通过监视特权程序的运行情况来检测入侵的主机型IDS,该系统采用基于数据挖掘的异常检测技术。数据挖掘(DM,data mining)是指从大量的、不完全的、有噪声的、模糊的数据中,提取未知的、有效的、可用的信息。数据挖掘与传统的数据分析(例如查询、报表、联机应用分析)的本质区别在于数据挖掘是在没有明确假设的前提下去挖掘信息。数据挖掘所得到的信息具有预先未知性、有效性和可用性三个主要特征。数据挖掘通常包括三个步骤:数据准备、挖掘、结果解释和评价。
参见图1,介绍数据挖掘的三个常规步骤。其中数据准备工作一般包括数据选择(date selection)、数据预处理(data preprocessing)和数据变换(datatransformation)。数据选择的目的是确定挖掘任务的操作对象,即目标数据(target data);在不同的应用领域,目标数据的结构和内容不尽相同,可能是关系数据库、面向对象数据库、时态数据库、文本数据、Web数据、图像和视频数据等。数据预处理包括消除噪声、数据类型转换、消除重复纪录等。数据变换的目的通常是消减数据维数(即从初始特征中找出真正有用的特征,以减少数据挖掘时所要用到的特征或变量个数),或者将数据变换成挖掘算法能够处理的形式。在挖掘阶段,首先要明确数据挖掘的任务和目的,在此基础上选择相应的算法,并实施挖掘操作;数据挖掘的任务主要包括数据总结、分类、聚类、相关性分析、偏差分析等;确定数据挖掘算法是挖掘工作的核心,在选择算法时,除了要考虑挖掘任务和实际运行系统的要求之外,还应考虑所处理的数据的特点。结果解释和评价的操作可由用户或者机器完成;这个阶段的主要工作是对挖掘阶段得出的结果进行解释、评价和处理,例如将结果转换为用户易懂的另一种表示,判断挖掘出的模式是否满足要求,剔除冗余或无关的模式,将挖掘结果可视化。图中上端带有箭头的连线表示:其中每个步骤都可以通过上端连线跳至其后面的任何一个步骤,因为对于一次具体的数据挖掘操作而言,该图中的某个或某些步骤是可以省略的。
数据挖掘技术主要有序列模式挖掘、关联规则挖掘、模糊聚类、回归分析、粗糙集等等。本发明涉及的入侵检测系统IDS采用了序列模式挖掘技术。
发明内容
有鉴于此,本发明的目的是提供一种基于序列模式挖掘的程序级入侵检测系统和方法,该系统为软件产品,配置在所要监控的网络服务器上;采用基于数据挖掘的异常检测技术,通过监控网络服务器中特权程序的运行情况来检测网络中的各种攻击活动。该系统以特权程序运行时所产生的系统调用(systemcall)作为审计数据,利用数据挖掘技术中的序列模式表示一个特权程序的正常行为,根据序列的支持度(support)或可信度(confidence)在训练数据中挖掘正常序列模式,并建立相应的正常序列模式库;进行检测时通过将当前序列模式和正常序列模式进行比较和匹配来识别攻击行为,从而引起安全管理员的密切注意和采取相应的处理措施。
为了达到上述目的,本发明提供了一种基于序列模式挖掘的程序级入侵检测系统,该系统配置在需要监控的网络服务器上,利用特权程序运行时所产生的系统调用作为审计数据,通过监控网络服务器中特权程序的运行情况,采用基于数据挖掘的异常检测技术来检测网络服务器中是否发生入侵;其技术方案是该系统包括有下述组件:
控制模块,负责设置系统的工作状态和各种参数,并对数据采集和预处理模块、训练模块、检测模块和整个系统的运行进行控制;
数据采集和预处理模块,负责从服务器中获取原始的训练数据或审计数据,即程序运行过程中所产生的系统调用,并将这些原始训练数据或审计数据进行预处理,滤除系统调用的参数后,分别送入训练模块或检测模块,用于训练或检测;
训练模块,负责利用训练数据进行训练,建立正常序列模式库;
存储模块,用于存储训练模块所建立的正常序列模式库,并在检测时,供检测模块进行检索比较;
检测模块,负责利用审计数据进行检测,产生包括但不限于判决值和/或报警信息的检测结果;
检测结果输出模块,负责显示检测模块产生的判决值,并根据检测模块的报警信息对攻击行为进行报警。
为了达到上述目的,本发明还提供了一种基于序列模式挖掘的程序级入侵检测方法,该方法包括下列操作步骤:
(1)系统启动;
(2)系统等待工作信息和指令的输入时,由控制模块设置系统的工作状态和工作参数,以便在此后输入“开始工作”指令后,由控制模块自动查看系统的设置情况,分别进入两种不同工作状态:如果系统被设置为训练状态,执行后续步骤;如果系统被设置为检测状态,则跳转执行步骤(7);
(3)数据采集和预处理模块从预先设定的数据接口输入原始训练数据,并对该原始训练数据进行预处理后,将其输出至训练模块;
(4)训练模块从控制模块读取步骤(2)中设置的训练方案,如果设置为第一种训练方案,执行后续步骤;如果设置为第二种训练方案,跳转执行步骤(6);
(5)训练模块利用训练数据,根据第一种训练方案进行训练,建立正常序列模式库,并将该序列模式库存入存储模块后,向控制模块发送“训练结束”的消息,结束训练工作,跳转执行步骤(7);
(6)训练模块利用训练数据,根据第二种训练方案进行训练,建立正常序列模式库,并将该序列模式库存入存储模块后,向控制模块发送“训练结束”的消息,结束训练工作;
(7)控制模块自动查看步骤(2)中所设置的检测方案,如果设置为第一种检测方案,执行后续步骤;如果设置为第二种训练方案,跳转执行步骤(9);
(8)系统按照第一种检测方案进行检测工作:先由数据采集和预处理模块实时地从服务器中获取原始审计数据并对其进行预处理,再由检测模块按照第一种检测方案对预处理后的审计数据进行实时分析,生成至少包括判决值和/或报警信息的检测结果,检测结果输出模块实时显示该检测判决值,并根据报警信息对攻击行为进行报警,结束检测操作;
(9)系统按照第二种检测方案进行检测工作:先由数据采集和预处理模块实时地从服务器中获取原始审计数据并对其进行预处理,再由检测模块按照第二种检测方案对预处理后的审计数据进行实时分析,生成至少包括判决值和/或报警信息的检测结果,检测结果输出模块实时显示该检测判决值,并根据报警信息对攻击行为进行报警,结束检测操作。
所述步骤(2)中,如果系统的工作状态被设置为训练状态,需要设置的工作参数有两种,分别为:
第一种训练方案、最小支持度minsup和最小可信度minconf;或
第二种训练方案、序列长度的个数W、序列长度l(1)、l(2)、......、l(W)和最小支持度minsup(1)、minsup(2)、......、minsup(W),其中l(j)是第j个序列长度,minsup(j)是第j个最小支持度,j是区间[1,W]中的自然数;
如果系统的工作状态被设置为检测状态,需要设置的工作参数有两种,分别为:第一种检测方案、窗长度和判决门限;或
第二种检测方案、窗长度和判决门限。
所述步骤(4)中的原始训练数据是系统要监控的某个特权程序在历史上正常运行时所产生的M个含有参数的系统调用流,M为大于或等于1的自然数,其中每个系统调用流是该特权程序在历史上一次正常运行过程中所产生的、按照时间顺序排列的多个系统调用,且每个系统调用流中的系统调用都含有参数;
所述步骤(8)和(9)中的原始审计数据是被监控的特权程序在被监控时间内所产生的一个含有参数的系统调用流,该系统调用流是按照时间顺序排列的多个系统调用,且其中每个系统调用都含有参数。
所述步骤(4)和(9)与(10)中对原始训练数据和原始审计数据分别进行的预处理都是将系统调用流中每个系统调用的参数滤除,并将滤除参数后的系统调用按照原有的时间顺序进行排列;所述步骤(4)中,M个含有参数的系统调用流经过预处理后,分别成为不含参数的系统调用流:R1、R2、......、RM,其中Ri是第i个不含参数的系统调用流,i是区间[1,M]中的自然数,且Ri中包含有ri个系统调用,表示为(s1 i,s2 i,......,sr 1 i),其中的sj i是该系统调用流中按时间顺序排列的第j个系统调用;预处理后的用作训练数据的M个系统调用流中系统调用的总个数r=r1+r2+......+rM
所述步骤(5)中训练模块利用训练数据,根据第一种训练方案进行训练,建立正常序列模式库的具体步骤如下:
(51)由M个系统调用流R1、R2、......、RM生成M个系统调用序列流S1、S2、......、SM,其中Si表示由Ri生成的系统调用序列流,且 S i = ( Seq 1 i , Seq 2 i , . . . . . . , Seq r i - 1 i ) , 式中Seqj i是按时间顺序排列的第j个系统调用序列,且 Se q j i = ( s j i , s j + 1 i ) , 即每个系统调用序列由2个按照时间顺序排列的系统调用组成,也就是每个系统调用序列的长度都为2;
(52)计算M个系统调用序列流S1、S2、......、SM中每个系统调用序列的支持度和可信度;其中支持度和可信度分别定义如下:
对于一个长度为2的序列 Seq = ( s i * , s j * ) , 其中si *和sj *分别表示一个确定的系统调用, Seq = ( s i * , s j * ) 的支持度等于该序列在M个系统调用序列流S1、S2、......、SM中的出现次数除以S1、S2、......、SM中的序列总数,即support(Seq)=number(Seq)/(r-M);式中number(Seq)表示序列 Seq = ( s i * , s j * ) 在S中的出现次数,r-M为M个系统调用序列流S1、S2、......、SM中序列的总个数,support(Seq)表示序列 Seq = ( s i * , s j * ) 的支持度,支持度support(Seq)用于描述序列 Seq = ( s i * , s j * ) 在S1、S2、......、SM中的出现概率;
对于一个长度为2的序列 Seq = ( s i * , s j * ) , 其中si *和sj *分别表示一个确定的系统调用, Seq = ( s i * , s j * ) 的可信度等于该序列在M个系统调用序列流S1、S2、......、SM中的出现次数除以S1、S2、......、SM中第一个系统调用是si *的序列的出现次数;这里,将S1、S2、......、SM中第一个系统调用是si *的序列表示为 Se q * = ( s i * , s * ) , 其中s*表示任意系统调用,则有:序列 Seq = ( s i * , s j * ) 的可信度confidence(Seq)=number(Seq)/number(Seq*),式中number(Seq*)为序列 Se q * = ( s i * , s * ) 在S1、S2、......、SM中的出现次数;可信度confidence(Seq)用于描述序列流S1、S2、......、SM中序列的第一个系统调用为si *的前提下,第二个系统调用为sj *的条件概率;
(53)从控制模块中读取步骤(2)中所设置的参数:最小支持度minsup和最小可信度minconf;
(54)将M个系统调用序列流S1、S2、......、SM中支持度大于或等于minsup的序列提取出来,构成满足支持度要求的序列模式库;如果支持度大于或等于minsup的序列共有K个,分别记为Seq* 1,Seq* 2,......,Seq* K,K是小于或等于自然数r-M的自然数,则满足支持度要求的序列模式库Ωs={Seq* 1,Seq* 2,......,Seq* K};
(55)将M个系统调用序列流中可信度大于或等于minconf的序列提取出来,构成满足支持度要求的序列模式库;如果可信度大于或等于minconf的序列共有L个,分别记为Seq+ 1,Seq+ 2,......,Seq+ L,L是小于或等于自然数r-M的自然数,则满足支持度要求的序列模式库Ωc={Seq+ 1,Seq+ 2,......,Seq+ L};
(56)选取同时满足支持度要求的序列模式库Ωs和满足可信度要求的序列模式库Ωc的交集Ωb,则有Ωb=Ωs∩Ωc;该Ωb即为该步骤(5)中训练模块所要建立的正常序列模式库。
所述步骤(6)中训练模块利用训练数据,根据第二种训练方案进行训练,建立正常序列模式库的具体步骤如下:
(61)从控制模块中读取步骤(2)中所设置的参数:序列长度的个数W和序列长度l(1)、l(2)、......、l(W),其中l(j)是第j个序列长度,j是区间[1,W]中的自然数;
(62)由训练数据R1、R2、......、RM中的每个系统调用流,分别生成W个序列长度不同的系统调用序列流:Si1、Si2、......、SiW,其中Sij表示由Ri生成的序列长度为l(j)的系统调用序列流,且 S ij = ( Se q 1 ij , Se q 2 ij , . . . . . . , Se q r 1 - l ( j ) + 1 ij ) , 式中Seqk ij表示Sij中按时间顺序排列的第k个长度为l(j)的系统调用序列,且 Se q k ij = ( s k i , s k + 1 i , . . . . . . , s k + l ( j ) - 1 i ) ; 即由正常行为训练数据可以生成M×W个系统调用序列流,其中序列长度为l(j)的系统调用序列流有M个:S1j、S2j、......、SMj;也就是该M个系统调用序列流构成的训练子集Sj={S1j,S2j,......,SMj},在该训练子集中共有r-M×l(j)+M个长度为l(j)的系统调用序列;在该步骤操作中,训练模块生成的训练子集共有W个,该W个训练子集分别由不同长度的系统调用序列构成;
(63)按照自然数j从1到W的顺序,分别计算训练子集Sj={S1j,S2j,......,SMj}中每个系统调用序列的支持度;所述用于描述序列Seqj在训练子集Sj中出现概率的支持度support(Seqj)的定义如下:
一个长度为l(j)的序列Seqj的支持度等于该序列在训练子集Sj中的出现次数除以Sj中的序列总数,即support(Seqj)=number(Seqj)/(r-M×l(j)+M),式中number(Seqj)表示序列Seqj在训练子集Sj的M个系统调用序列流S1j、S2j、......、SMj中的出现次数;
(64)从控制模块中读取步骤(2)中所设置的W个最小支持度minsup(1)、minsup(2)、......、minsup(W),其中minsup(j)是针对训练子集Sj中长度为l(j)的序列而设置的第j个最小支持度;
(65)将训练子集Sj中支持度大于或等于minsup(j)的序列提取出来,构成满足支持度要求的序列模式库Ω(j);如果Sj中支持度大于或等于minsup(j)的序列共有K(j)个,分别记为Seq1 j*、Seq2 j*、......、SeqK(j) j*,则满足支持度要求的序列模式库 Ω ( j ) = { Se q 1 j * , Se q 2 j * , . . . . . . , Se q K ( j ) j * } , 从而得到W个满足支持度要求的序列模式库Ω(1)、Ω(2)、......、Ω(W);该W个满足支持度要求的序列模式库即是该步骤(6)中训练模块所要建立的正常序列模式库Ω={Ω(1),Ω(2),......,Ω(W)}。
所述步骤(8)中系统按照第一种检测方案进行检测工作的具体步骤如下:
(81)数据采集和预处理模块实时地从服务器中获取被监控的特权程序在被监控时间内所产生的系统调用流,并对该系统调用流进行预处理后成为不含参数的包含 r个系统调用的系统调用流 R=( s1, s2,......, s r ),其中 sk表示按时间顺序排列的第k个系统调用,k是区间[1, r]中的自然数;该系统调用流中的各个系统调用按照时间顺序依次被输出至检测模块;
(82)检测模块由系统调用流 R=( s1, s2,......, s r )生成系统调用序列流S=( Seq1, Seq2,......, Seq r-1 ),其中 Seqi=( si, si+1)是按时间顺序排列的第i个系统调用序列,S中每个系统调用序列的长度都为2,i是区间[1, r-1]中的自然数;
(83)检测模块将 S中的每个系统调用序列与步骤(56)中建立的正常序列模式库Ωb中的序列进行匹配比较;同时,对于S中的每个系统调用序列 Seqi,进行如下计算:如果 Seqi∈Ωb,则class( Seqi)=1;如果 S ‾ e q i ∉ Ω b , 则class( Seqi)=0;也就是说,如果 Seqi与正常序列库Ωb中的某个序列相同,则class( Seqi)=1,否则,class( Seqi)=0;经过上述运算后,得到序列(class( Seq1),class( Seq2),......,class( Seq r-1 )),其中class( Seqi)表示序列 Seqi的类别,如果class( Seqi)=1,则表明 Seqi是正常序列;如果class( Seqi)=0,则表明 Seqi是异常序列;
(84)检测模块从控制模块中读取步骤(2)中所设置的第一种检测方案的窗长度,然后对序列(class( Seq1),class( Seq2),......,class( Seq r-1 ))进行加窗处理,得到判决值: D ( k ) = 1 w Σ i = k - w + 1 k class ( S ‾ e q i ) , 式中,D(k)表示系统调用序列Seqk对应的判决值,w表示步骤(2)中所设置的第一种检测方案的窗长度,且w≤k≤ r-1,k的增长步长为1;系统调用序列流 S=( Seq1, Seq2,......, Seq r-1 )中第w个系统调用序列及其后面的每个系统调用序列都分别对应一个判决值;
(85)检测模块从控制模块中读取步骤(2)中所设置的第一种检测方案的判决门限,并利用该判决门限和判决值D(k)对被监控的特权程序的“当前行为”做出判决;具体判决方法为:如果D(k)大于或等于判决门限,将被监控的特权程序的“当前行为”判为正常行为,否则,将其判为攻击或入侵行为;
上述步骤(81)至步骤(85)中,被监控程序所执行的系统调用或系统调用流的获取、序列的生成与匹配、判决值的计算以及对程序行为的判决都是同步进行的。
所述步骤(9)中系统按照第二种检测方案进行检测工作的具体步骤如下:
(91)数据采集和预处理模块实时地从服务器系统中获取被监控的特权程序在被监控时间内所产生的系统调用流,并对该系统调用流进行预处理后成为不含参数的包含 r个的系统调用的系统调用流 R=( s1, s2,......, s r ),其中 sk表示按时间顺序排列的第k个系统调用,k是区间[1, r]中的自然数;该系统调用流中的各个系统调用按照时间顺序依次被输出至检测模块;
(92)检测模块从控制模块中读取训练状态下步骤(2)中所设置的参数:序列长度的个数W以及序列长度l(1)、l(2)、......、l(W),其中l(j)是第j个序列长度,j是区间[1,W]中的自然数;
(93)对于系统调用流 R=( s1, s2,......, s r )中第l(W)个系统调用之后的每个系统调用 sk,检测模块以 sk为终点组成W个长度分别为l(1)、l(2)、......、l(W)的系统调用序列,该W个序列分别表示为 Seqk 1、 Seqk 2、......、 Seqk W,其中 Seqk j是长度为l(j)的系统调用序列,即 S ‾ e q k j = ( s ‾ k - l ( j ) + 1 , s ‾ k - l ( j ) + 2 , . . . . . . , s ‾ k ) , j是区间[1,W]中的自然数;
(94)对于以 sk为终点组成的W个系统调用序列 Seqk 1、 Seqk 2、......、 Seqk W,检测模块按照自然数j从1到W的顺序,依次将 Seqk j同步骤(65)中建立的序列模式库Ω(j)进行比较:如果满足 S ‾ e q k j ∈ Ω ( j ) , 则class( sk)=1;否则,class( sk)=0;也就是说,如果W个序列 Seqk 1、 Seqk 2、......、 Seqk W中有一个序列与步骤(65)中建立的正常序列库Ω={Ω(1),Ω(2),......,Ω(W)}中的某个序列相同,则class( sk)=1,否则,class( sk)=0;经过上述运算得到序列(class( sl(W),class( sl(W)+1),......,class( s r )),其中class( sk)表示系统调用 sk所对应的程序行为的类别:如果class( sk)=1,则表明 sk所对应的程序行为是正常行为;如果class( sk)=0,则表明 sk所对应的程序行为是异常行为;
(95)检测模块从控制模块中读取步骤(2)中所设置的第二种检测方案的窗长度,然后对序列(class( sl(W)),class( sl(W)+1),......,class( s r ))进行加窗处理,得到系统调用 sk对应的判决值: D ( k ) = 1 w Σ i = k - w + 1 k class ( s ‾ i ) , 式中,w表示
步骤(2)中所设置的第二种检测方案的窗长度,且w+l(W)-1≤k≤ r,k的增长步长为1;系统调用流 R=( s1, s2,......, sr)中第w+l(W)-1个系统调用及其后面的每个系统调用都分别对应一个判决值;
(96)检测模块从控制模块中读取步骤(2)中所设置的第二种检测方案的判决门限,并利用该判决门限和判决值D(k)对被监控特权程序的“当前行为”做出判决;具体判决方法为:如果D(k)大于或等于判决门限,将被监控特权程序的“当前行为”判为正常行为,否则,将其判为攻击或入侵行为;
上述步骤(91)至步骤(96)中,被监控程序所执行的系统调用或系统调用流的获取、序列的生成与匹配、判决值的计算以及对程序行为的判决都是同步进行的。
本发明是一种基于序列模式挖掘的程序级入侵检测系统和方法,与现有的一些主机型IDS有较大的不同;本发明的特点和优点主要在于:
(1)与目前的一些商用主机型IDS相比较,本发明系统的突出特点是在训练模块中集成了两种可选的训练方案,并在检测模块中集成了两种可选的检测方案;这虽然增加了系统的复杂度,但增强了系统的工作灵活性,扩大了系统的应用范围。在对检测速度和检测效率要求较高的检测环境中,可以采用第一种训练方案和第一种检测方案;而在对检测准确度要求较高的检测环境中,则可以采用第二种训练方案和第二种检测方案。
(2)本发明系统具有很强的实用性和可操作性。该系统可以灵活配置在需要监控的网络服务器上,不再需要额外的硬件;它能够检测到网络服务器中特权程序的异常情况,而这种异常通常意味着入侵和攻击行为,进而使安全管理员识别网络系统中发生的各种攻击活动。
(3)在采用第一种训练方案和第一种检测方案的情况下,本发明的检测方法利用长度为2的系统调用序列表示一个特权程序的各种正常行为模式(即只考虑系统调用流中相邻两个系统调用之间的相关性)。同现有的检测方法相比,该方法需要存储的正常序列模式的数据量较小,检测中进行序列匹配时所需的运算量也比较小,所以对主机资源的占用较少,检测速度比较快。实际试验应用中的检测结果表明,在监控某些较为简单的特权程序(如Login程序)时,采用第一种训练方案和第一种检测方案能够获得很高的检测效率。
(4)在采用第二种训练方案和第二种检测方案的情况下,本发明的检测方法利用多种长度不同的系统调用序列表示一个特权程序的各种正常行为模式,这样虽然会增加系统的数据存储量和检测中的运算量,但是提高了程序行为模式表示的准确性,从而较大程度地提高了检测准确率。实际试验应用中的检测结果表明,在监控较为复杂的特权程序(如Sendmail程序)时,采用第二种训练方案和第二种检测方案能够获得很高的检测准确率。
(5)很多主机型IDS在训练阶段所采用的训练样例通常要求既有正例,又有反例。本发明的检测方法在训练时只需要正例(即特权程序在正常运行时所产生的系统调用数据),而不需要反例,大大降低了训练数据收集的难度,扩展了系统的应用范围。系统在对原始训练数据和原始审计数据进行预处理时,滤除了系统调用的参数,使得预处理后的数据更加便于处理和存储,也减小了系统在训练阶段所要存储的数据量。另外,本发明的检测方法在进行检测时,采用了“全序列比较”的匹配方式。同一些现有的主机型入侵检测系统相比,这种序列匹配方法可以减小检测中的运算工作量,从而降低对系统所在主机的资源的消耗。
(6)本发明系统具有较强的通用性和良好的可扩展性,系统中的各个模块的功能和相互关系也适用于基于其它检测方法的、以系统调用为审计数据的程序级IDS。
附图说明
图1是数据挖掘的一般步骤示意图。
图2是本发明系统的结构组成示意图。
图3是本发明系统的检测方法流程图。
图4是本发明系统在实施试验中检测结果输出模块显示的判决值曲线图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
参见图2,介绍本发明一种基于序列模式挖掘的程序级入侵检测系统的组成结构。该系统为软件产品,即每个模块均由相应的程序单元组成,配置在需要监控的服务器上,利用特权程序运行时所产生的系统调用作为审计数据,通过监控网络服务器中特权程序的运行情况,采用基于数据挖掘的异常检测技术来检测网络服务器中是否发生入侵。该系统由控制模块、数据采集和预处理模块、训练模块、存储模块、检测模块、检测结果输出模块组成。
系统中控制模块负责对整个系统的运行进行控制,通过该模块可以设置系统的工作状态和工作参数;数据采集和预处理模块负责从服务器中获取原始的训练数据或审计数据(即程序运行过程中所产生的系统调用),并对原始训练数据或审计数据进行预处理(滤除系统调用的参数)后,分别送入训练模块或检测模块,用于训练或检测;训练模块的工作是利用训练数据进行训练,建立正常序列模式库;存储模块用于存储训练模块所建立的正常序列模式库,以供检测时,该序列模式库可供检测模块进行检索匹配;检测模块利用审计数据进行检测工作,产生检测结果(判决值和报警信息);检测结果输出模块负责显示检测模块产生的判决值,并根据检测模块的报警信息对攻击行为进行报警。
本发明系统共有两种工作状态,分别是训练状态和检测状态。在训练状态下,系统有两种可选的训练方案,分别是第一种训练方案和第二种训练方案;相应地,在检测状态下,系统也有两种可选的检测方案,分别是第一种检测方案和第二种检测方案。需要说明的是:系统在进行检测之前必须预先进行训练,而且,第一种训练方案同第一种检测方案相对应,第二种训练方案同第二种检测方案相对应。即如果训练时设置的是第一种训练方案,检测时只能设置为第一种检测方案;如果训练时设置的是第二种训练方案,检测时也只能设置为第二种检测方案。此外,可以利用两种训练方案进行两次训练,这样系统在检测时就可以选择两种检测方案中的任意一种进行工作;不过,这种做法会使系统的数据存储量增大。
参见图3,介绍本发明系统的工作流程:
(1)系统启动。
(2)系统等待工作信息和指令的输入时,由控制模块设置系统的工作状态和工作参数,设置完毕后可输入“开始工作”的指令;系统接收到该指令后,由控制模块自动查看系统的设置情况,分别进入两种不同工作状态:如果系统被设置为训练状态,执行后续步骤;如果系统被设置为检测状态,则跳转执行步骤(7)。
如果系统工作状态被设为训练状态,需要设置的工作参数有两种,分别为:
第一种训练方案、最小支持度minsup和最小可信度minconf;或第二种训练方案、序列长度的个数W、序列长度l(1)、l(2)、......、l(W)和最小支持度minsup(1)、minsup(2)、......、minsup(W),其中l(j)是第j个序列长度,minsup(j)是第j个最小支持度,j是区间[1,W]中的自然数;
如果系统的工作状态被设置为检测状态,需要设置的工作参数有两种,分别为:第一种检测方案、窗长度和判决门限;或第二种检测方案、窗长度和判决门限。
如果系统启动后具有缺省的工作状态和工作参数,即上一次运行时所设置的工作状态和工作参数;如果不需要更改这些缺省设置,则可直接输入“开始工作”的指令,使系统进行相应状态的工作。
(3)数据采集和预处理模块从预先设定的数据接口输入原始训练数据,并对该原始训练数据进行预处理后,将其输出至训练模块;
所谓原始训练数据是系统要监控的某个特权程序在历史上正常运行时所产生的若干个系统调用流,其中每个系统调用流是该特权程序在历史上一次正常运行的过程中所产生的、按照时间顺序排列的多个系统调用。而且,每个系统调用流中的系统调用都含有参数。为分析方便,本发明假设原始训练数据中的系统调用流共有M个(M是大于或等于1的自然数)。所谓对原始训练数据进行预处理是将每个系统调用流中各个系统调用的参数滤除,并将滤除参数后的系统调用按照原有的时间顺序进行排列。M个含有参数的系统调用流分别经过预处理后成为M个不含参数的系统调用流:R1、R2、......、RM,其中Ri表示第i个系统调用流,i是区间[1,M]中的自然数,且Ri中包含有ri个系统调用,即:s1 i,s2 i,......,sr1 i,其中的sj i是该系统调用流中按时间顺序排列的第j个系统调用;预处理后的用作训练数据的M个系统调用流中系统调用的总个数r=r1+r2+......+rM。上述M个系统调用流R1、R2、......、RM代表了系统要监控的特权程序在历史上的正常行为。
(4)训练模块从控制模块读取步骤(2)中设置的训练方案,如果设置为第一种训练方案,执行后续步骤;如果设置为第二种训练方案,跳转执行步骤(6);
(5)训练模块利用训练数据,根据第一种训练方案进行训练,建立正常序列模式库,并将该序列模式库存入存储模块后,向控制模块发送“训练结束”的消息,至此,训练工作结束;跳转执行步骤(7);该步骤的具体操作内容如下:
(51)由M个系统调用流R1、R2、......、RM生成M个系统调用序列流S1、S2、......、SM,其中Si表示由Ri生成的按照时间顺序排列的系统调用序列流,且 S i = ( Se q 1 i , Se q 2 i , . . . . . . , Se q r i - 1 i ) , 其中Seqj i是按时间顺序排列的第j个系统调用序列(1≤i≤M,1≤j≤ri-1), Se q j i = ( s j i , s j + 1 i ) , 即每个系统调用序列由2个按照时间顺序排列的系统调用组成或每个系统调用序列的长度都为2。
(52)计算M个系统调用序列流S1、S2、......、SM中每个系统调用序列的支持度和可信度;其中支持度和可信度分别定义如下:
对于一个长度为2的序列 Seq = ( s i * , s j * ) , 其中si *和sj *分别表示一个确定的系统调用, Seq = ( s i * , s j * ) 的支持度等于该序列在M个系统调用序列流S1、S2、......、SM中的出现次数除以S1、S2、......、SM中的序列总数,即support(Seq)=number(Seq)/(r-M);式中number(Seq)表示序列 Seq = ( s i * , s j * ) 在S中的出现次数,r-M为M个系统调用序列流S1、S2、......、SM中序列的总个数,support(Seq)表示序列 Seq = ( s i * , s j * ) 的支持度,支持度support(Seq)用于描述序列 Seq = ( s i * , s j * ) 在S1、S2、......、SM中的出现概率;
对于一个长度为2的序列 Seq = ( s i * , s j * ) , 其中si *和sj *分别表示一个确定的系统调用, Seq = ( s i * , s j * ) 的可信度等于该序列在M个系统调用序列流S1、S2、......、SM中的出现次数除以S1、S2、......、SM中第一个系统调用是si *的序列的出现次数;这里,将S1、S2、......、SM中第一个系统调用是si *的序列表示为 Se q * = ( s i * , s * ) , 其中s*表示任意系统调用,则有:序列 Seq = ( s i * , s j * ) 的可信度confidence(Seq)=number(Seq)/number(Seq*),式中number(Seq*)为序列 Se q * = ( s i * , s * ) 在S1、S2、......、SM中的出现次数;可信度confidence(Seq)用于描述序列S1、S2、......、SM中的第一个系统调用为si *的前提下,第二个系统调用为sj *的条件概率;
(53)从控制模块中读取步骤(2)中所设置的参数:最小支持度minsup和最小可信度minconf;
(54)将M个系统调用序列流S1、S2、......、SM中支持度大于或等于minsup的序列提取出来,构成满足支持度要求的序列模式库;如果支持度大于或等于minsup的序列共有K个,分别记为Seq* 1,Seq* 2,......,Seq* K,K是小于或等于自然数r-M的自然数,则满足支持度要求的序列模式库Ωs={Seq* 1,Seq* 2,......,Seq* K};
(55)将M个系统调用序列流中可信度大于或等于minconf的序列提取出来,构成满足支持度要求的序列模式库;如果可信度大于或等于minconf的序列共有L个,分别记为Seq+ 1,Seq+ 2,......,Seq+ L,L是小于或等于自然数r-M的自然数,则满足支持度要求的序列模式库Ωc={Seq+ 1,Seq+ 2,......,Seq+ L};
(56)选取同时满足支持度要求的序列模式库Ωs和满足可信度要求的序列模式库Ωc的交集Ωb,则有Ωb=Ωs∩Ωc;该Ωb即为该步骤(5)中训练模块所要建立的正常序列模式库。
(6)训练模块利用训练数据,根据第二种训练方案进行训练,建立正常序列模式库,并将该序列模式库存入存储模块后,向控制模块发送“训练结束”的消息,至此,训练工作结束;训练模块第二种训练方案的具体操作内容如下:
(61)从控制模块中读取步骤(2)中所设置的参数:序列长度的个数W和序列长度l(1)、l(2)、......、l(W),其中l(j)是第j个序列长度,j是区间[1,W]中的自然数;
(62)由M个训练数据R1、R2、......、RM中的每个系统调用流,分别生成W个序列长度不同的系统调用序列流:Si1、Si2、......、SiW,其中Sij表示由Ri生成的序列长度为l(j)的系统调用序列流(这里1≤j≤W,1≤i≤M),且 S ij = ( Se q 1 ij , Se q 2 ij , . . . . . . , Se q r i - l ( j ) + 1 ij ) , 式中Seqk ij表示Sij中按时间顺序排列的第k个长度为l(j)的系统调用序列,且 Se q k ij = ( s k i , s k + 1 i , . . . . . . , s k + l ( j ) - 1 i ) ; 这样,由正常行为训练数据可以生成M×W个系统调用序列流,其中序列长度为l(j)的系统调用序列流有M个:S1j、S2j、......、SMj;为分析方便,假设该M个系统调用序列流构成的训练子集为Sj={S1j,S2j,......,SMj},在该训练子集中共有r-M×l(j)+M个长度为l(j)的系统调用序列;在该步骤操作中,训练模块生成的训练子集共有W个,该W个训练子集分别由不同长度的系统调用序列构成;
(63)按照自然数j从1到W的顺序,分别计算训练子集Sj={S1j,S2j,......,SMj}中每个系统调用序列的支持度,该支持度support(Seqj)用于描述序列Seqj在训练子集Sj中出现概率,其定义如下:
一个长度为l(j)的序列Seqj的支持度等于该序列在训练子集Sj中的出现次数除以Sj中的序列总数(1≤j≤W),即support(Seqj)=number(Seqj)/(r-M×l(j)+M),式中number(Seqj)表示序列Seqj在训练子集Sj的M个系统调用序列流S1j、S2j、......、SMj中的出现次数;
(64)从控制模块中读取步骤(2)中所设置的W个最小支持度minsup(1)、minsup(2)、......、minsup(W),其中minsup(j)是针对训练子集Sj中长度为l(j)的序列而设置的第j个最小支持度(1≤j≤W);
(65)对于1≤j≤W,将训练子集Sj中支持度大于或等于minsup(j)的序列提取出来,构成满足支持度要求的序列模式库Ω(j);假设Sj中支持度大于或等于minsup(j)的序列共有K(j)个,分别记为Seq1 j*、Seq2 j*、......、SeqK(j) j*,则满足支持度要求的序列模式库 Ω ( j ) = { Se q 1 j * , Se q 2 j * , . . . . . . , Se q K ( j ) j * } , 这样,可以得到W个满足支持度要求的序列模式库Ω(1)、Ω(2)、......、Ω(W),其中Ω(j)表示从训练子集Sj中提取出的序列构成的序列模式库(1≤j≤W)。该W个满足支持度要求的序列模式库即是该步骤(6)中训练模块所要建立的正常序列模式库Ω={Ω(1),Ω(2),......,Ω(W)}。
(7)控制模块自动查看步骤(2)中所设置的检测方案,如果设置为第一种检测方案,执行后续步骤;如果设置为第二种训练方案,跳转执行步骤(9);
(8)系统按照第一种检测方案进行检测工作:先由数据采集和预处理模块实时地从服务器中获取原始审计数据并对其进行预处理,再由检测模块按照第一种检测方案对预处理后的审计数据进行实时分析,生成至少包括判决值和/或报警信息的检测结果,检测结果输出模块实时显示该检测判决值,并根据报警信息对攻击行为进行报警,结束检测操作;
该步骤(8)和步骤(9)中的原始审计数据是被监控的特权程序在被监控时间内所产生的系统调用流,该系统调用流是按照时间顺序排列的多个系统调用,其中的每个系统调用都含有参数。这两个步骤中对原始审计数据进行的预处理是将系统调用流中每个系统调用的参数滤除掉,成为不含参数的系统调用流;再将滤除参数后的系统调用按照原有的时间顺序进行排列。
检测模块按照第一种检测方案进行的检测操作包括下列具体步骤:
(81)数据采集和预处理模块实时地从服务器中获取被监控的特权程序在被监控时间内所产生的系统调用流,并对该系统调用流进行预处理后成为不含参数的包含r个系统调用的系统调用流 R=( s1, s2,......, s r ),其中 sk表示按时间顺序排列的第k个系统调用,k是区间[1, r]中的自然数;该系统调用流中的各个系统调用按照时间顺序依次被输出至检测模块;
(82)检测模块由系统调用流 R=( s1, s2,......, s r )生成系统调用序列流S=( Seq1, Seq2,......, Seq r-1 ),其中 Seqi=( si, si+1)是按时间顺序排列的第i个系统调用序列, S中每个系统调用序列的长度都为2,i是区间[1, r-1]中的自然数;
(83)检测模块将 S中的每个系统调用序列与步骤(56)中建立的正常序列模式库Ωb中的序列进行匹配比较;同时,对于 S中的每个系统调用序列 Seqi,进行如下计算:如果 Seqi∈Ωb,则class( Seqi)=1;如果 S ‾ e q i ∉ Ω b , 则class( Seqi)=0;也就是说,如果 Seqi与正常序列库Ωb中的某个序列相同,则class( Seqi)=1,否则,class( Seqi)=0;经过上述运算后,得到序列(class( Seq1),class( Seq2),......,class( Seq r-1 )),其中class( Seqi)表示序列 Seqi的类别,如果class( Seqi)=1,则表明 Seqi是正常序列;如果class( Seqi)=0,则表明 Seqi是异常序列;
(84)检测模块从控制模块中读取步骤(2)中所设置的第一种检测方案的窗长度,然后对序列(class( Seq1),class( Seq2),......,class( Seq r-1 ))进行加窗处理,得到判决值: D ( k ) = 1 w Σ i = k - w + 1 k class ( S ‾ e q i ) , 式中,D(k)表示系统调用序列Seqk对应的判决值,w表示步骤(2)中所设置的第一种检测方案的窗长度,且w≤k≤ r-1,k的增长步长为1;系统调用序列流 S=( Seq1, Seq2,......, Seq r-1 )中第w个系统调用序列及其后面的每个系统调用序列都分别对应一个判决值;
(85)检测模块从控制模块中读取步骤(2)中所设置的第一种检测方案的判决门限,并利用该判决门限和判决值D(k)对被监控的特权程序的“当前行为”做出判决;具体判决方法为:如果D(k)大于或等于判决门限,将被监控的特权程序的“当前行为”判为正常行为,否则,将其判为攻击或入侵行为;
这里,被监控特权程序的“当前行为”是相对于 Seqk而言的,它是指被监控特权程序执行的以 Seqk为终点的w个“系统调用序列”,即 Seqk-w+1、Seqk-w+2、......、 Seqk,也是指被监控特权程序执行的以 sk+1为终点的w+1个“系统调用”,即 sk-w+1、 sk-w+2、......、 sk+1
上述步骤(81)至步骤(85)中,被监控程序所执行的系统调用或系统调用流的获取、序列的生成与匹配、判决值的计算以及对程序行为的判决都是同步进行的。也就是在被监控的特权程序执行完w个系统调用后,它每再执行完一个新的系统调用,检测系统就可以生成一个新的系统调用序列,然后将该序列同序列模式库进行匹配,进而得到一个(新的)判决值,并对被监控特权程序的“当前行为”做出一次判决。
(9)系统按照第二种检测方案进行检测工作:先由数据采集和预处理模块实时地从服务器中获取原始审计数据并对其进行预处理,再由检测模块按照第二种检测方案对预处理后的审计数据进行实时分析,生成至少包括判决值和/或报警信息的检测结果,检测结果输出模块实时显示该检测判决值,并根据报警信息对攻击行为进行报警,结束检测操作。
该步骤(9)中检测模块按照第二种检测方案进行检测的具体步骤如下:
(91)数据采集和预处理模块实时地从服务器系统中获取被监控的特权程序在被监控时间内所产生的系统调用流,并对该系统调用流进行预处理后成为不含参数的包含 r个的系统调用的系统调用流 R=( s1, s2,......, s r ),其中 sk表示按时间顺序排列的第k个系统调用,k是区间[1, r]中的自然数;然后,该系统调用流中的各个系统调用按照时间顺序依次被输出至检测模块;
(92)检测模块从控制模块中读取训练状态下步骤(2)中所设置的参数:序列长度的个数W以及序列长度l(1)、l(2)、......、l(W),其中l(j)是第j个序列长度,j是区间[1,W]中的自然数;
(93)对于系统调用流 R=( s1, s2,......, s r )中第l(W)个系统调用之后的每个系统调用 sk(l(W)≤k≤ r),检测模块以 sk为终点组成W个长度分别为l(1)、l(2)、......、l(W)的系统调用序列,该W个序列分别表示为 Seqk 1、 Seqk 2、......、Seqk W,其中 Seqk j是长度为l(j)的系统调用序列,即 S ‾ e q k j = ( s ‾ k - l ( j ) + 1 , s ‾ k - l ( j ) + 2 , . . . . . . , s ‾ k ) , j是区间[1,W]中的自然数;
(94)对于以 sk为终点组成的W个系统调用序列 Seqk 1、 Seqk 2、......、 Seqk W,检测模块按照自然数j从1到W的顺序,依次将 Seqk j同步骤(65)中建立的序列模式库Ω(j)进行比较:如果存在一个j(1≤j≤W),使得 S ‾ e q k j ∈ Ω ( j ) , 则class( sk)=1;否则,class( sk)=0;也就是说,如果W个序列 Seqk 1、 Seqk 2、......、Seqk W中有一个序列与步骤(65)中建立的正常序列库Ω={Ω(1),Ω(2),......,Ω(W)}中的某个序列相同,则class( sk)=1,否则,class( sk)=0;经过上述运算得到序列(class( sl(W),class( sl(W)+1,......,class( s r )),其中class( sk)表示系统调用 sk所对应的程序行为的类别:如果class( sk)=1,则表明 sk所对应的程序行为是正常行为;如果class( sk)=0,则表明 sk所对应的程序行为是异常行为;
(95)检测模块从控制模块中读取步骤(2)中所设置的第二种检测方案的窗长度,然后对序列(class( sl(W),class( sl(W)+1),......,class( s r ))进行加窗处理,得到系统调用 sk对应的判决值: D ( k ) 1 w Σ i = k - w + 1 k class ( s ‾ i ) , 式中,w表示
步骤(2)中所设置的第二种检测方案的窗长度,且w+l(W)-1≤k≤ r,k的增长步长为1;系统调用流 R=( s1, s2,......, s r )中第w+l(W)-1个系统调用及其后面的每个系统调用都分别对应一个判决值;
(96)检测模块从控制模块中读取步骤(2)中所设置的第二种检测方案的判决门限,并利用该判决门限和判决值D(k)对被监控特权程序的“当前行为”做出判决;具体判决方法为:如果D(k)大于或等于判决门限,将被监控特权程序的“当前行为”判为正常行为,否则,将其判为攻击或入侵行为;这里,被监控特权程序的“当前行为”是相对于 sk而言的,它是指被监控特权程序执行的以 sk为终点的w个系统调用 sk-w+1、 sk-w+2、......、 sk
需要指出,在上述步骤(91)至步骤(96)中,被监控程序所执行的系统调用(流)的获取、序列的生成与匹配、判决值的计算以及对程序行为的判决都是同步进行的。也就是在被监控特权程序执行完w+l(W)-2个系统调用后,它每再执行完一个新的系统调用,检测系统就可以以该系统调用为终点组成W个(新的)系统调用序列,然后进行序列匹配,进而得到一个(新的)判决值,并对被监控特权程序的“当前行为”做出判决。
下面通过一个试验应用的实施例来说明本发明的实施情况。在该应用实施例中,本发明程序级入侵检测系统配置在某网站的一个Sendmail邮件服务器上,用于检测针对该服务器的各种攻击活动。该试验实施例包括两个应用实施例,第一个实施例中系统的工作状态被设为训练状态,第二个实施例中系统的工作状态被设为检测状态。
先介绍该系统进行训练的实施例的操作步骤如下:
步骤1:启动系统。
步骤2:用户配置系统的工作状态和工作参数:将系统的工作状态设为训练状态,将训练方案设为第二种训练方案,将序列长度的个数W设为3,将3种序列的长度分别设为l(1)=2,l(2)=3,l(3)=4,将3个最小支持度分别设为minsup(1)=0.00005,minsup(2)=0.00002,minsup(3)=0.00001。
步骤3:控制模块自动查看对系统工作状态的设置情况,发现系统的工作状态被设为训练状态,于是执行步骤4。
步骤4:数据采集和预处理模块将原始训练数据从指定的数据接口输入,然后对原始训练数据进行预处理,并将预处理后的训练数据输出至训练模块。原始的训练数据共有13个系统调用流(即M=13),共包含289193个系统调用(即r=289193);这13个系统调用流的数据量相差较大,其中最大的系统调用流含有183018个系统调用,占总数量的一半以上,而最小的系统调用流仅含有170个系统调用。原始的训练数据经预处理后成为13个不含参数的系统调用流,这些系统调用流都被输出至训练模块。
步骤5:训练模块从控制模块读取步骤2中所设置的训练方案,发现训练方案被设为第二种训练方案,于是执行步骤6。
步骤6:训练模块利用训练数据,根据第二种训练方案进行训练,建立正常序列模式库,并将该序列模式库存入存储模块,最后向控制模块发送“训练结束”的消息。在该步骤操作中,由训练数据(13个系统调用流)所产生的长度为2、3、4的系统调用流中的序列分别有289180、289167、289154个,其中互不相同的序列分别有168、259、316个,而支持度分别大于或等于0.00005、0.00002、0.00001的序列(即满足支持度要求的序列)分别有57、144、316个,训练模块所建立的正常序列模式库Ω={Ω(1),Ω(2),Ω(3)}即由这些序列组成,其中Ω(1)、Ω(2)、Ω(3)中的序列分别有57、144、316个。
再介绍该系统进行检测的实施例的操作步骤如下:
步骤1:启动系统。
步骤2:用户配置系统的工作状态和工作参数:将工作状态设为检测状态,将检测方案设为第二种检测方案,将窗长度设为20,将判决门限设为0.85。
步骤3:控制模块自动查看对系统工作状态的设置情况。发现系统的工作状态被设为检测状态,于是执行步骤4。
步骤4:控制模块自动查看步骤2中所设置的检测方案。发现检测方案被设为第二种检测方案,于是执行步骤5。
步骤5:系统按照第二种检测方案进行检测工作。这时,数据采集和预处理模块会实时地从主机系统中获取原始审计数据并对其预处理;检测模块则按照第二种检测方案对预处理后的审计数据进行实时分析,生成检测结果(判决值和报警信息);检测结果输出模块实时地显示检测模块生成的判决值,并根据检测模块的报警信息对攻击行为进行报警。系统在进行检测工作中,Sendmail邮件服务器遭受了一次sccp攻击(sccp攻击脚本能够利用特殊的命令行选项使sendmail将一个电子邮件消息附加到某个文件上,本地用户利用该脚本可获得根路径);检测系统在工作中共做了2909次判决,其中报警的次数(将sendmail特权程序的行为判为攻击行为的次数)为304次。需要指出,由于在Sendmail邮件服务器遭受攻击期间sendmail程序的行为只在某些时间段内出现了异常,所以检测系统在2909次判决中只进行了304次报警。图4为该系统在检测工作中检测结果输出模块显示(输出)的判决值曲线;在该判决值曲线中,当判决值低于判决门限0.85时,检测系统就会报警。由以上检测结果可见,本发明系统能够成功实现对攻击行为的检测。
总之,本发明的试验实施的实施例是成功的,实现了发明目的。

Claims (9)

1、一种基于序列模式挖掘的程序级入侵检测系统,该系统配置在需要监控的网络服务器上,利用特权程序运行时所产生的系统调用作为审计数据,通过监控网络服务器中特权程序的运行情况,采用基于数据挖掘的异常检测技术来检测网络服务器中是否发生入侵;其特征在于:所述系统包括有:
控制模块,负责设置系统的工作状态和各种参数,并对数据采集和预处理模块、训练模块、检测模块和整个系统的运行进行控制;
数据采集和预处理模块,负责从服务器中获取原始的训练数据或审计数据,即程序运行过程中所产生的系统调用,并将这些原始训练数据或审计数据进行预处理,滤除系统调用的参数后,分别送入训练模块或检测模块,用于训练或检测;
训练模块,负责利用训练数据进行训练,建立正常序列模式库;
存储模块,用于存储训练模块所建立的正常序列模式库,并在检测时,供检测模块进行检索比较;
检测模块,负责利用审计数据进行检测,产生包括但不限于判决值和/或报警信息的检测结果;
检测结果输出模块,负责显示检测模块产生的判决值,并根据检测模块的报警信息对攻击行为进行报警。
2、一种权利要求1的基于序列模式挖掘的程序级入侵检测系统的检测方法,其特征在于:所述系统的检测方法包括下列操作步骤:
(1)系统启动;
(2)系统等待工作信息和指令的输入时,由控制模块设置系统的工作状态和工作参数,以便在此后输入“开始工作”指令后,由控制模块自动查看系统的设置情况,分别进入两种不同工作状态:如果系统被设置为训练状态,执行后续步骤;如果系统被设置为检测状态,则跳转执行步骤(7);
(3)数据采集和预处理模块从预先设定的数据接口输入原始训练数据,并对该原始训练数据进行预处理后,将其输出至训练模块;
(4)训练模块从控制模块读取步骤(2)中设置的训练方案,如果设置为第一种训练方案,执行后续步骤;如果设置为第二种训练方案,跳转执行步骤(6);
(5)训练模块利用训练数据,根据第一种训练方案进行训练,建立正常序列模式库,并将该序列模式库存入存储模块后,向控制模块发送“训练结束”的消息,结束训练工作,跳转执行步骤(7);
(6)训练模块利用训练数据,根据第二种训练方案进行训练,建立正常序列模式库,并将该序列模式库存入存储模块后,向控制模块发送“训练结束”的消息,结束训练工作;
(7)控制模块自动查看步骤(2)中所设置的检测方案,如果设置为第一种检测方案,执行后续步骤;如果设置为第二种训练方案,跳转执行步骤(9);
(8)系统按照第一种检测方案进行检测工作:先由数据采集和预处理模块实时地从服务器中获取原始审计数据并对其进行预处理,再由检测模块按照第一种检测方案对预处理后的审计数据进行实时分析,生成至少包括判决值和/或报警信息的检测结果,检测结果输出模块实时显示该检测判决值,并根据报警信息对攻击行为进行报警,结束检测操作;
(9)系统按照第二种检测方案进行检测工作:先由数据采集和预处理模块实时地从服务器中获取原始审计数据并对其进行预处理,再由检测模块按照第二种检测方案对预处理后的审计数据进行实时分析,生成至少包括判决值和/或报警信息的检测结果,检测结果输出模块实时显示该检测判决值,并根据报警信息对攻击行为进行报警,结束检测操作。
3、根据权利要求2所述的基于序列模式挖掘的程序级入侵检测系统的检测方法,其特征在于:所述步骤(2)中,如果系统的工作状态被设置为训练状态,需要设置的工作参数有两种,分别为:
第一种训练方案、最小支持度minsup和最小可信度minconf;或
第二种训练方案、序列长度的个数W、序列长度l(1)、l(2)、......、l(W)和最小支持度minsup(1)、minsup(2)、......、minsup(W),其中l(j)是第j个序列长度,minsup(j)是第j个最小支持度,j是区间[1,W]中的自然数;
如果系统的工作状态被设置为检测状态,需要设置的工作参数有两种,分别为:第一种检测方案、窗长度和判决门限;或
第二种检测方案、窗长度和判决门限。
4、根据权利要求2所述的基于序列模式挖掘的程序级入侵检测系统的检测方法,其特征在于:所述步骤(4)中的原始训练数据是系统要监控的某个特权程序在历史上正常运行时所产生的M个含有参数的系统调用流,M为大于或等于1的自然数,其中每个系统调用流是该特权程序在历史上一次正常运行过程中所产生的、按照时间顺序排列的多个系统调用,且每个系统调用流中的系统调用都含有参数;
所述步骤(8)和(9)中的原始审计数据是被监控的特权程序在被监控时间内所产生的一个含有参数的系统调用流,该系统调用流是按照时间顺序排列的多个系统调用,且其中每个系统调用都含有参数。
5、根据权利要求4所述的基于序列模式挖掘的程序级入侵检测系统的检测方法,其特征在于:所述步骤(4)和(9)与(10)中对原始训练数据和原始审计数据分别进行的预处理都是将系统调用流中每个系统调用的参数滤除,并将滤除参数后的系统调用按照原有的时间顺序进行排列;所述步骤(4)中,M个含有参数的系统调用流经过预处理后,分别成为不含参数的系统调用流:R1、R2、......、RM,其中Ri是第i个不含参数的系统调用流,i是区间[1,M]中的自然数,且Ri中包含有ri个系统调用,表示为(s1 i,s2 i,......,srt i),其中的sj i是该系统调用流中按时间顺序排列的第j个系统调用;预处理后的用作训练数据的M个系统调用流中系统调用的总个数r=r1+r2+......+rM
6、根据权利要求2所述的基于序列模式挖掘的程序级入侵检测系统的检测方法,其特征在于:所述步骤(5)中训练模块利用训练数据,根据第一种训练方案进行训练,建立正常序列模式库的具体步骤如下:
(51)由M个系统调用流R1、R2、......、RM生成M个系统调用序列流S1、S2、......、SM,其中Si表示由Ri生成的系统调用序列流,且 S i = ( Seq 1 i , Seq 2 i , . . . . . . , Seq r i - 1 i ) , 式中Seqj i是按时间顺序排列的第j个系统调用序列,且 Seq j i = ( s j i , s j + 1 i ) , 即每个系统调用序列由2个按照时间顺序排列的系统调用组成,也就是每个系统调用序列的长度都为2;
(52)计算M个系统调用序列流S1、S2、......、SM中每个系统调用序列的支持度和可信度;其中支持度和可信度分别定义如下:
对于一个长度为2的序列 Seq = ( s i * , s j * ) , 其中si *和sj *分别表示一个确定的系统调用, Seq = ( s i * , s j * ) 的支持度等于该序列在M个系统调用序列流S1、S2、......、SM中的出现次数除以S1、S2、......、SM中的序列总数,即support(Seq)=number(Seq)/(r-M);式中number(Seq)表示序列 Seq = ( s i * , s j * ) 在S中的出现次数,r-M为M个系统调用序列流S1、S2、......、SM中序列的总个数,support(Seq)表示序列 Seq = ( s i * , s j * ) 的支持度,支持度support(Seq)用于描述序列 Seq = ( s i * , s j * ) 在S1、S2、......、SM中的出现概率;
对于一个长度为2的序列 Seq = ( s i * , s j * ) 其中si *和sj *分别表示一个确定的系统调用, Seq = ( s i * , s j * ) 的可信度等于该序列在M个系统调用序列流S1、S2、......、SM中的出现次数除以S1、S2、......、SM中第一个系统调用是si *的序列的出现次数;这里,将S1、S2、......、SM中第一个系统调用是si *的序列表示为 Seq * = ( s i * , s * ) , 其中s*表示任意系统调用,则有:序列 Seq = ( s i * , s j * ) 的可信度confidence(Seq)=number(Seq)/number(Seq*),式中number(Seq*)为序列 Seq * = ( s i * , s * ) 在S1、S2、......、SM中的出现次数;可信度confidence(Seq)用于描述序列流S1、S2、......、SM中序列的第一个系统调用为si *的前提下,第二个系统调用为sj *的条件概率;
(53)从控制模块中读取步骤(2)中所设置的参数:最小支持度minsup和最小可信度minconf;
(54)将M个系统调用序列流S1、S2、......、SM中支持度大于或等于minsup的序列提取出来,构成满足支持度要求的序列模式库;如果支持度大于或等于minsup的序列共有K个,分别记为Seq* 1,Seq* 2,......,Seq* K,K是小于或等于自然数r-M的自然数,则满足支持度要求的序列模式库 Ω s = { Seq * 1 , Seq * 2 , . . . . . . , Seq * K } ;
(55)将M个系统调用序列流中可信度大于或等于minconf的序列提取出来,构成满足支持度要求的序列模式库;如果可信度大于或等于minconf的序列共有L个,分别记为Seq+ 1,Seq+ 2,......,Seq+ L,L是小于或等于自然数r-M的自然数,则满足支持度要求的序列模式库Ωc={Seq+ 1,Seq+ 2,......,Seq+ L};
(56)选取同时满足支持度要求的序列模式库Ωs和满足可信度要求的序列模式库Ωc的交集Ωb,则有Ωb=Ωs∩Ωc;该Ωb即为该步骤(5)中训练模块所要建立的正常序列模式库。
7、根据权利要求2所述的基于序列模式挖掘的程序级入侵检测系统的检测方法,其特征在于:所述步骤(6)中训练模块利用训练数据,根据第二种训练方案进行训练,建立正常序列模式库的具体步骤如下:
(61)从控制模块中读取步骤(2)中所设置的参数:序列长度的个数W和序列长度l(1)、l(2)、......、l(W),其中l(j)是第j个序列长度,j是区间[1,W]中的自然数;
(62)由训练数据R1、R2、......、RM中的每个系统调用流,分别生成W个序列长度不同的系统调用序列流:Si1、Si2、......、SiW,其中Sij表示由Ri生成的序列长度为l(j)的系统调用序列流,且 S ij = ( Seq 1 ij , Seq 2 ij , . . . . . . , Seq r i - l ( j ) + 1 ij ) , 式中Seqk ij表示Sij中按时间顺序排列的第k个长度为l(j)的系统调用序列,且 Seq k ij = ( s k i , s k + 1 i , . . . . . . , s k + l ( j ) - 1 i ) ; 即由正常行为训练数据可以生成M×W个系统调用序列流,其中序列长度为l(j)的系统调用序列流有M个:S1j、S2j、......、SMj;也就是该M个系统调用序列流构成的训练子集Sj={S1j,S2j,......,SMj},在该训练子集中共有r-M×l(j)+M个长度为l(j)的系统调用序列;在该步骤操作中,训练模块生成的训练子集共有W个,该W个训练子集分别由不同长度的系统调用序列构成;
(63)按照自然数j从1到W的顺序,分别计算训练子集Sj={S1j,S2j,......,SMj}中每个系统调用序列的支持度;所述用于描述序列Seqj在训练子集Sj中出现概率的支持度support(Seqj)的定义如下:
一个长度为l(j)的序列Seqj的支持度等于该序列在训练子集Sj中的出现次数除以Sj中的序列总数,即support(Seqj)=number(Seqj)/(r-M×l(j)+M),式中number(Seqj)表示序列Seqj在训练子集Sj的M个系统调用序列流S1j、S2j、......、SMj中的出现次数;
(64)从控制模块中读取步骤(2)中所设置的W个最小支持度minsup(1)、minsup(2)、......、minsup(W),其中minsup(j)是针对训练子集Sj中长度为l(j)的序列而设置的第j个最小支持度;
(65)将训练子集Sj中支持度大于或等于minsup(j)的序列提取出来,构成满足支持度要求的序列模式库Ω(j);如果Sj中支持度大于或等于minsup(j)的序列共有K(j)个,分别记为Seq1 j*、Seq2 j*、......、SeqK(j) j*,则满足支持度要求的序列模式库 Ω ( j ) = { Seq 1 j * , Seq 2 j * , . . . . . . , Seq K ( j ) j * } ; 从而得到W个满足支持度要求的序列模式库Ω(1)、Ω(2)、......、Ω(W),;该W个满足支持度要求的序列模式库即是该步骤(6)中训练模块所要建立的正常序列模式库Ω={Ω(1),Ω(2),......,Ω(W)}。
8、根据权利要求2所述的基于序列模式挖掘的程序级入侵检测系统的检测方法,其特征在于:所述步骤(8)中系统按照第一种检测方案进行检测工作的具体步骤如下:
(81)数据采集和预处理模块实时地从服务器中获取被监控的特权程序在被监控时间内所产生的系统调用流,并对该系统调用流进行预处理后成为不含参数的包含 r个系统调用的系统调用流 R=( s1, s2,......, s r ),其中 sk表示按时间顺序排列的第k个系统调用,k是区间[1, r]中的自然数;该系统调用流中的各个系统调用按照时间刘页序依次被输出至检测模块;
(82)检测模块由系统调用流 R=( s1, s2,......, s r )生成系统调用序列流S=( Seq1, Seq2,......, Seq r-1 ),其中 Seqi=( si, si+1)是按时间顺序排列的第i个系统调用序列, S中每个系统调用序列的长度都为2,i是区间[1, r-1]中的自然数:
(83)检测模块将 S中的每个系统调用序列与步骤(56)中建立的正常序列模式库Ωb中的序列进行匹配比较;同时,对于 S中的每个系统调用序列 Seqi,进行如下计算:如果 Seqi∈Ωb,则class( Seqi)=1;如果 S ‾ eq i ∉ Ω b , 则class( Seqi)=0;也就是说,如果 Seqi与正常序列库Ωb中的某个序列相同,则class( Seqi)=1,否则,class( Seqi)=0;经过上述运算后,得到序列(class( Seq1),class( Seq2),......,class( Seq r-1 )),其中class( Seqi)表示序列 Seqi的类别,如果class( Seqi)=1,则表明 Seqi是正常序列;如果class( Seqi)=0,则表明 Seqi是异常序列;
(84)检测模块从控制模块中读取步骤(2)中所设置的第一种检测方案的窗长度,然后对序列(class( Seq1),class( Seq2),......,class( Seq r-1 ))进行加窗处理,得到判决值: D ( k ) = 1 w Σ i = k - w + 1 k class ( S ‾ eq i ) , 式中,D(k)表示系统调用序列Seqk对应的判决值,w表示步骤(2)中所设置的第一种检测方案的窗长度,且w≤k≤ r-1,k的增长步长为1;系统调用序列流 S=( Seq1, Seq2,......, Seq r-1 )中第w个系统调用序列及其后面的每个系统调用序列都分别对应一个判决值;
(85)检测模块从控制模块中读取步骤(2)中所设置的第一种检测方案的判决门限,并利用该判决门限和判决值D(k)对被监控的特权程序的“当前行为”做出判决;具体判决方法为:如果D(k)大于或等于判决门限,将被监控的特权程序的“当前行为”判为正常行为,否则,将其判为攻击或入侵行为;
上述步骤(81)至步骤(85)中,被监控程序所执行的系统调用或系统调用流的获取、序列的生成与匹配、判决值的计算以及对程序行为的判决都是同步进行的。
9、根据权利要求2所述的基于序列模式挖掘的程序级入侵检测系统的检测方法,其特征在于:所述步骤(9)中系统按照第二种检测方案进行检测工作的具体步骤如下:
(91)数据采集和预处理模块实时地从服务器系统中获取被监控的特权程序在被监控时间内所产生的系统调用流,并对该系统调用流进行预处理后成为不含参数的包含r个的系统调用的系统调用流 R=( s1, s2,......, s r ),其中 s k 表示按时间顺序排列的第k个系统调用,k是区间[1, r]中的自然数;该系统调用流中的各个系统调用按照时间顺序依次被输出至检测模块;
(92)检测模块从控制模块中读取训练状态下步骤(2)中所设置的参数:序列长度的个数W以及序列长度l(1)、l(2)、......、l(W),其中l(j)是第j个序列长度,j是区间[1,W]中的自然数;
(93)对于系统调用流 R=( s1, s2,......., sr)中第l(W)个系统调用之后的每个系统调用 sk,检测模块以 sk为终点组成W个长度分别为l(1)、l(2)、......、l(W)的系统调用序列,该W个序列分别表示为 Seqk 1、 Seqk 2、......、 Seqk w,其中 Seqk j是长度为l(j)的系统调用序列,即 S ‾ eq k j = ( s ‾ k - l ( j ) + 1 , s ‾ k - l ( j ) + 2 , . . . . . . , s ‾ k ) , j是区间[1,W]中的自然数;
(94)对于以 sk为终点组成的W个系统调用序列 Seqk 1、 Seqk 2、......、 Seqk W,检测模块按照自然数j从1到W的顺序,依次将 Seqk j同步骤(65)中建立的序列模式库Ω(j)进行比较:如果满足 S ‾ eq k j ∈ Ω ( j ) , 则class( sk)=1;否则,class( sk)=0;也就是说,如果W个序列 Seqk 1、 Seqk 2、......、 Seqk W中有一个序列与步骤(65)中建立的正常序列库Ω={Ω(1),Ω(2),......,Ω(W)}中的某个序列相同,则class( sk)=1,否则,class( sk)=0;经过上述运算得到序列(class( sl(w)),class( sl(w)+1),......,class( s r )),其中class( sk)表示系统调用 sk所对应的程序行为的类别:如果class( sk)=1,则表明 sk所对应的程序行为是正常行为;如果class( sk)=0,则表明 sk所对应的程序行为是异常行为;
(95)检测模块从控制模块中读取步骤(2)中所设置的第二种检测方案的窗长度,然后对序列(class( sl(W)),class( sl(W)+1),......,class( s r ))进行加窗处理,得到系统调用 sk对应的判决值: D ( k ) = 1 w Σ i = k - w + 1 k class ( s ‾ i ) , 式中,w表示步骤(2)中所设置的第二种检测方案的窗长度,且w+l(W)-1≤k≤ r,k的增长步长为1;系统调用流R=( s1, s2,......., s r )中第w+l(W)-1个系统调用及其后面的每个系统调用都分别对应一个判决值;
(96)检测模块从控制模块中读取步骤(2)中所设置的第二种检测方案的判决门限,并利用该判决门限和判决值D(k)对被监控特权程序的“当前行为”做出判决;具体判决方法为:如果D(k)大于或等于判决门限,将被监控特权程序的“当前行为”判为正常行为,否则,将其判为攻击或入侵行为;
上述步骤(91)至步骤(96)中,被监控程序所执行的系统调用或系统调用流的获取、序列的生成与匹配、判决值的计算以及对程序行为的判决都是同步进行的。
CN 200510056935 2005-03-23 2005-03-23 基于序列模式挖掘的程序级入侵检测方法 Active CN1333553C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200510056935 CN1333553C (zh) 2005-03-23 2005-03-23 基于序列模式挖掘的程序级入侵检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200510056935 CN1333553C (zh) 2005-03-23 2005-03-23 基于序列模式挖掘的程序级入侵检测方法

Publications (2)

Publication Number Publication Date
CN1649312A true CN1649312A (zh) 2005-08-03
CN1333553C CN1333553C (zh) 2007-08-22

Family

ID=34876796

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200510056935 Active CN1333553C (zh) 2005-03-23 2005-03-23 基于序列模式挖掘的程序级入侵检测方法

Country Status (1)

Country Link
CN (1) CN1333553C (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100407164C (zh) * 2006-04-20 2008-07-30 上海浦东软件园信息技术有限公司 带有虚地址空间属性的软件行为描述、获取与控制方法
CN101976313A (zh) * 2010-09-19 2011-02-16 四川大学 基于频繁子图挖掘的异常入侵检测方法
CN101252578B (zh) * 2008-04-02 2011-05-11 电子科技大学 基于固有子序列模式分解的主机入侵检测方法
CN102647409A (zh) * 2012-01-13 2012-08-22 哈尔滨工业大学 基于Android智能手机的应用程序行为状态转换模式识别方法
CN102768638A (zh) * 2012-05-18 2012-11-07 北京工业大学 基于状态转移图的软件行为可信性检测方法
CN103583061A (zh) * 2011-06-10 2014-02-12 皇家飞利浦有限公司 网络中的恶意攻击的避免
CN104318435A (zh) * 2014-09-25 2015-01-28 同济大学 电子交易过程用户行为模式检测的免疫方法
CN104933272A (zh) * 2014-03-17 2015-09-23 国家电网公司 一种防窃电分析的方法及装置
CN106459962A (zh) * 2014-06-06 2017-02-22 三菱丽阳株式会社 改良型腈水合酶
CN106778279A (zh) * 2015-11-25 2017-05-31 阿里巴巴集团控股有限公司 漏洞挖掘方法及装置
CN108600258A (zh) * 2018-05-09 2018-09-28 华东师范大学 一种面向综合电子系统自生成白名单的安全审计方法
CN109222926A (zh) * 2018-06-19 2019-01-18 江苏峰汇智联科技有限公司 一种用于监测身体状态的智能设备
CN110198299A (zh) * 2019-03-07 2019-09-03 腾讯科技(深圳)有限公司 一种入侵检测方法和装置
CN115378702A (zh) * 2022-08-22 2022-11-22 重庆邮电大学 一种基于Linux系统调用的攻击检测系统

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100407164C (zh) * 2006-04-20 2008-07-30 上海浦东软件园信息技术有限公司 带有虚地址空间属性的软件行为描述、获取与控制方法
CN101252578B (zh) * 2008-04-02 2011-05-11 电子科技大学 基于固有子序列模式分解的主机入侵检测方法
CN101976313A (zh) * 2010-09-19 2011-02-16 四川大学 基于频繁子图挖掘的异常入侵检测方法
CN101976313B (zh) * 2010-09-19 2012-09-26 四川大学 基于频繁子图挖掘的异常入侵检测方法
CN103583061A (zh) * 2011-06-10 2014-02-12 皇家飞利浦有限公司 网络中的恶意攻击的避免
US10178123B2 (en) 2011-06-10 2019-01-08 Philips Lighting Holding B.V. Avoidance of hostile attacks in a network
CN102647409B (zh) * 2012-01-13 2015-02-11 哈尔滨工业大学 基于Android智能手机的应用程序行为状态转换模式识别方法
CN102647409A (zh) * 2012-01-13 2012-08-22 哈尔滨工业大学 基于Android智能手机的应用程序行为状态转换模式识别方法
CN102768638A (zh) * 2012-05-18 2012-11-07 北京工业大学 基于状态转移图的软件行为可信性检测方法
CN102768638B (zh) * 2012-05-18 2015-04-29 北京工业大学 基于状态转移图的软件行为可信性检测方法
CN104933272A (zh) * 2014-03-17 2015-09-23 国家电网公司 一种防窃电分析的方法及装置
CN104933272B (zh) * 2014-03-17 2018-01-02 国家电网公司 一种防窃电分析的方法及装置
CN106459962A (zh) * 2014-06-06 2017-02-22 三菱丽阳株式会社 改良型腈水合酶
CN104318435A (zh) * 2014-09-25 2015-01-28 同济大学 电子交易过程用户行为模式检测的免疫方法
CN106778279A (zh) * 2015-11-25 2017-05-31 阿里巴巴集团控股有限公司 漏洞挖掘方法及装置
CN106778279B (zh) * 2015-11-25 2020-05-15 阿里巴巴集团控股有限公司 漏洞挖掘方法及装置
CN108600258A (zh) * 2018-05-09 2018-09-28 华东师范大学 一种面向综合电子系统自生成白名单的安全审计方法
CN109222926A (zh) * 2018-06-19 2019-01-18 江苏峰汇智联科技有限公司 一种用于监测身体状态的智能设备
CN109222926B (zh) * 2018-06-19 2021-07-09 苗珍录 一种用于监测身体状态的智能设备
CN110198299A (zh) * 2019-03-07 2019-09-03 腾讯科技(深圳)有限公司 一种入侵检测方法和装置
CN110198299B (zh) * 2019-03-07 2021-08-17 腾讯科技(深圳)有限公司 一种入侵检测方法和装置
CN115378702A (zh) * 2022-08-22 2022-11-22 重庆邮电大学 一种基于Linux系统调用的攻击检测系统
CN115378702B (zh) * 2022-08-22 2024-04-02 重庆邮电大学 一种基于Linux系统调用的攻击检测系统

Also Published As

Publication number Publication date
CN1333553C (zh) 2007-08-22

Similar Documents

Publication Publication Date Title
CN1649312A (zh) 基于序列模式挖掘的程序级入侵检测系统和方法
CN1649311A (zh) 基于机器学习的用户行为异常检测系统和方法
US9590880B2 (en) Dynamic collection analysis and reporting of telemetry data
US7171337B2 (en) Event-based automated diagnosis of known problems
US20130085970A1 (en) Intelligent intent detection from social network messages
CN1694454A (zh) 主动式网络安全漏洞检测器
CN111290916A (zh) 大数据监控方法、装置、设备及计算机可读存储介质
US9372776B2 (en) Monitoring user activity and performance of computerized devices
CN101923617A (zh) 一种基于云的样本数据库动态维护方法
WO2020190753A1 (en) Graph analysis of time-series cluster data
CN111753303B (zh) 一种基于深度学习和强化学习的多粒度代码漏洞检测方法
CN114338188B (zh) 一种基于进程行为序列分片的恶意软件智能云检测系统
CN114757468B (zh) 一种面向流程挖掘中流程执行异常的根源分析方法
CN1588880A (zh) 基于聚类与关联的网络安全报警系统
CN110795346A (zh) 产品监控方法、装置、设备及可读存储介质
CN1878322A (zh) 故障定位的方法及装置
CN110879771A (zh) 一种基于关键词序列挖掘的用户异常检测的日志分析系统
CN110176276B (zh) 生物信息分析流程化管理方法及系统
CN101056210A (zh) 一种网络集中管理平台上的事件处理系统和方法
CN1892615A (zh) 带有虚地址空间属性的软件行为描述、获取与控制方法
CN110955894A (zh) 一种恶意内容检测方法、装置、电子设备及可读存储介质
CN114629711B (zh) 一种针对Windows平台特种木马检测的方法及系统
Li et al. Event block identification and analysis for effective anomaly detection to build reliable HPC systems
US20080046416A1 (en) Dynamic program support links
CN1818857A (zh) 计算机程序识别的方法和系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee

Owner name: BEIJING CAPITEK CO, LTD.

Free format text: FORMER NAME: BEIJING SHOUXIN SCIENCE AND TECHNOLOGY CO., LTD.

CP03 Change of name, title or address

Address after: 100015 Beijing City, Chaoyang District Road No. 5

Patentee after: Beijing Capitek Co, Ltd.

Address before: 100016 Beijing city Chaoyang District Dongzhimen Road No. 5

Patentee before: Beijing Shouxin Science and Technology Co., Ltd.