基于隐马尔可夫模型的网络入侵场景构建方法

文档序号:7945484阅读:205来源:国知局
专利名称:基于隐马尔可夫模型的网络入侵场景构建方法
技术领域
本发明涉及一种基于隐马尔可夫模型的网络攻击场景构建方法,包括报警 数据的预处理、报警数据的关联分析和入侵场景构建三个完整的阶段。
通过对入侵报警进行关联分析,进而构建入侵场景是入侵检测技术发展的 一个新方向,从2000年左右开始在入侵检测技术领域受到关注。目前已提出了 大量的分析方法,主要可以分为报警聚类方法和关联分析方法,其中关联分析 方法又可以分为基于攻击规划库的报警关联方法和基于攻击行为建模的报警关 联方法两类。
报警聚类(clustering )方法属于最初级的关联分析,通过报警属性值之间的 相似性对报警进行聚类,使得属于同一聚类的报警具有相同的特性,然后选择 一个抽象的"元报警"事件作为该聚类的代表元。在已有技术中,《通信学报》 2005年4期提供了一种BPCRISM模型,按照报警信息各个属性的数据类型将其 分为布尔型、枚举型和数值型,通过计算欧氏距离得到属性之间的差异度。计
算报警fl/e^和"/e 的上述三个属性的差异度公式为
f 一—) =(Wn|detec,r—_detec—|2 +
其中det e"乃/we 、 src户oW和AWoW分别对应于原始报警的时间戳、源端口 号和目的端口号。wde^^、 H^^,和V^^^分别为各属性在差异度计算中的权
重,由专家经验给出。
此类方法存在的问题是
不能够完全揭示出相关报警之间的因果关系,无法对报警反映的高层攻击 策略给出清晰的解释,也无法预测攻击者的目的和可能的后续攻击。
基于攻击规划库的报警关联分析方法在拥有一个完整的已知攻击规划库的 基础上,通过一系列关联分析技术来识别报警流中包含的与攻击规划库中的攻
击规划相一致的攻击场景实例。在己有技术中,《计算^l学报》2006年8期提 供了一种"基于扩展目标规划图的网络攻击规划识别算法",通过引入观察节点 以区分规划者以及识别者对动作的观察,将动作节点分化为由具体动作层和抽
背景技术
象动作层组成的层次结构,并根据抽象攻击模式在抽象攻击层面上维护与安全
状态节点相关的前提和后果条件,形成扩展目标规划图(ExtendedGoalGraph, EGG)模型,并进一步提出基于扩展目标规划图的攻击规划识别算法。其扩展 目标规划图示例如图l所示。 此类方法存在的主要问题是
基于攻击规划库的报警关联方法是基于封闭世界假说,需要一个完整的攻 击规划库作为支撑基础,但在实际环境中,由于攻击动作的多样性和攻击过程 的随意性以及新的攻击工具和技术的不断出现,使得构建一个完善的攻击规划 库极为困难。此外,由于存在并行的攻击场景,上述的各种方法对每个攻击场 景维护中间的状态,从而导致其存储代价和计算代价都非常庞大。上述两个缺 陷使得基于攻击场景库的报警关联方法难以在实际中得到广泛的有效应用。
基于攻击行为建模的报警关联方法的思想,借鉴于人工智能领域自动规划 问题中对动作的经典描述模型——STRIPS(STanford Research Institute-Problem Solver)模型,通过对攻击动作的前提条件和造成的后果进行描述,构建攻击模 型,如果一个攻击动作的后果使得另一攻击动作的前提条件得到满足,则认为 这两个攻击动作之间存在因果关系。基于攻击行为建模的报警关联算法就利用 这些因果关系将观察到的报警进行连接,构造出整个攻击场景。其中具有代表 性的分析方法为Peng Ning等在The 9th ACM Conf on Computer & Communications Security 提出的 "Constructing Attack Scenarios through
Correlation oflntrusionAlerts",该方法被用于实现他们的TIAA系统。利用该
方法定义Sadmind Buffer Overflow攻击的前提和结果如下
P(/ ^minrfSOF) = {£^对//0对(152.1.19.5),£^对//0对(152丄19.7),
In era6/e&m/ min d(l 52.1.19,5), In era歸W min《152. U 9.7)} ,脇;) = {Ga,w/ cK)"ccess(l 52.1.19.5), Gmwi oo"cc一l 52.1.19.7)}
此类方法存在的主要问题是
对所有可能的单个攻击行为进行精确描述是极其复杂的任务。此外,精确 性同时也限制了规则的灵活性,面对未知攻击,识别能力不足。

发明内容
本发明的目的在于避免已有技术中存在的无法识别攻击意图、过分依赖知 识库和处理过程复杂等问题而提供一种基于隐马尔可夫模型的入侵报警关联分 析方法,重构入侵场景。该方法实现了对入侵报警进行预处理、分析以及场景 重构的完整过程。
为实现上述目的,本发明技术方案的步骤如下一种网络入侵场景构建方法,其步骤如下
1.1、 入侵报警数据预处理
利用改进的报警聚合方法对原始报警数据进行预处理首先计算原始报警 数据的报警时间、报警名、端口号和IP地址等属性之间的差异度,而后通过加 权求和的方法得到原始报警之间的整体差异度,按照报警数据的整体差异度对 原始报警数据进行聚类分析,得到超报警;
1.2、 报警关联
1.21、 描述网络攻击的隐马尔可夫模型
将预处理阶段得到的超报警序列作为隐马尔可夫模型的观察值;将攻击本
体中定义的抽象攻击作为隐马尔可夫模型的隐藏状态;
1.22、 利用改进的Viterbi算法进行关联分析,得到代表抽象入侵场景的状 态转移序列;
1.3、 通过回溯处理构建入侵场景
对这些状态转移序列按时序和逻辑约束条件进行回溯处理得到入侵场景。 原始报警数据各属性值差异度的具体计算方法如下
2.3、 报警时间
用时间窗r来表示可以聚合的报警间最大的时间间隔,即只有当公式-
满足时,才可以将两条报警信息进行聚合;
2.4、 报警名与端口号
定义如下公式计算报警名之间的差异-
1, 〃/e々打fl附e # a/eW .""7we
《鹏=〗
0, a/er( .wa膨=a/er。.""膨
当两条报警信息的报警名相同时,其差异度为0,不相同时为l; 按照报警名的差异度计算方法分别定义报警"/e^和端口号之间的差
异度计算公式为
1, a/e/*/; ./ oW # a/e .戶W 0, a/抓i./w/" = a/eW,_poW
《。"
2.3、 IP地址IP地址差异度计算方法如下
<formula>formula see original document page 9</formula> ="22 V"13 ="23 V H * "24
2.4、 原始报警整体差异度的计算方法为
<formula>formula see original document page 9</formula>
其中""/n表示参与计算的属性个数;
2.5、 利用原始报警的整体差异度和给定的阈值r,通过报警聚合,将包 含大量报警的原始报警序列〈"/外,"/^2,-,^ 〉,转换为规模较小的超报警
序列〈//>per一a/eA,//yper—a/eW2,…,i7yper一〉,其中wSw,阈值r和超
报警的语义描述存储在关联知识库中。
改进的Viterbi算法模型参数存储在关联知识库中,
输入超报警序列(9-〈/fy/ er—cr/e^,/^/ er—flf/e《,…,/^; er—cr/e《〉,状态转移 概率矩阵J,观察值概率分布矩阵S,初始概率分布向量户,关联阈值r,观 察值数量《(即超报警序列包含的超报警数),状态数N;
输出状态转移序列的集合&={&^^^};
改进的Viterbi算法
Stepl:将第一个超报警添加到栈Stack中;
Step2:判断Stack是否为空,如果为空转到Stepll;
Step3:将Stack栈顶元素出栈,附值给Ob,并执行以下操作
Delta(l)(i) = Pi(i)Bi(Ob), Phi(l)(i) =0, l<=i〈=N; Step4:判断Max(Deltal(i))〈T, 1《i《N是否成立,如果成立,
将0b之后的超报警入桟,转到St印2; Step5:执行以下操作Ob = next(Ob),
Delta (t) (j) = Max [Delta (k-l) (i)A(i, j)]b(j) (Ob), 1<
Step6:判断Max[Delta(k) (j)] < T, l<=j<=N,是否成立,如果不成立,转
到St印8;
Step7:判断Stack是否为空,如果为空,将Ob入栈,转到Step5,
不为空则直接转到Step5; Step8:执行以下操作
Phi(k) (j) = argMax [Delta(k-1) (i)A(i, j)], 1 〈= i <= N, 1 <= j <= N; Step9:判断是否最后的超报警,如果不是,转到Step5执行; Stepl0:执行以下操作
Scenario(K) = argMax[Delta(K)(i)], l<=i<= N Sceanrio(k):Phi(k+l) (Scenario (k+l), k = K-1,…,1 将Scenario添加到Sc中,转到St印2执行; Stepll:终止。
回溯处理的过程如下
4.1、 还原超报警序列
对于状态转移序列集Sc = {Sceww/o,.}中的任一状态序列Scemw/o,.,用该序
列中的状态所对应的超报警替换相应状态,得到与该状态对应的超报警序列;
4.5、 去除冗余超报警
对于每一个超报警序列〈i/j/per — a/e^ , //j^er—"/eW2 ,…,/fyper—a/erf欲〉,如 果存在超报警7/;^2/^afe^,其5*—w,和^p—恥Z (组成超报警的原始报警源
IP集合和目的IP集合),都与位于其前面的超报警的w》_ W和却—W无关(即
不存在相同的IP),则从序列中删除该超报警;
4.6、 还原原始报警序列
对于每一个超报警序列,将其中的超报警替换为满足时间约束关系的原始 报警,得到原始报警序列;
4.7、 报警序列重组
经过4.1~4.3步骤的处理,可以得到由原始报警序列组成的原始报警序列 集,记为a/ert _ & =—See"wq },其中a/eW _ Scewa〃Oi为原始报警序列
〈a/抓^/抓2,…,a/e 〉,对原始报警序列,按照如下规则进行重组-如果存在报警序歹!j or/eW —SceAwr/7'^ 禾口 a/ert—,且 a/ew — Sce"""o,. (A) , 1 S w与a/eW — (1)满足依赖关系,则将
"/ert — Sce加力o,.和"/ert — feern^^.组成新的报警序列,新的报警序列可能包含
若干个并列的分支;
如果存在报警序歹ij a/eW_Scenar,o,.和a/eW —Sce"an^., 且
a/eW—Sce朋"'c^ (")与fl/W—Scewar/o,. (t) , a/eW—Sce朋〃-0,. (& + 1), 1^<"满
足并列关系或选择关系,则将"/eW—Sce"arA和fl/eW—Scemh^.组成新的报警
序列,新的报警序列可能包含若干个并列的分支;
状态转移序列经过以上四个步骤的处理后,将得到描述网络攻击过程的入 侵场景。
本发明与已有技术相比具有以下特点
一、 本发明改进了基于属性差异度的报警聚类方法。传统的聚类方法仅仅 考虑了报警属性的数值特征,忽略了部分属性所反映出的网络攻击意义,因此 导致聚类结果与实际攻击过程存在较大的偏差。为得到理想的分析结果,本发 明对原始报警数据的各种属性进行了细致的分析,在此基础上重新定义各种属 性差异度的计算方法。通过对MIT Lincoln实验室在2000年作IDS评测时获得 的数据集LLDDOS1.0的内网数据进行实验,按照新的计算方法得出的差异度 更加准确的反映了原始报警信息之间的差异。实验结果如图5所示。对实验结 果进行分析发现,传统算法对二,三阶段报警聚合出现错误的原因是相应原始 报警的端口号数值出现了较大的跃迁。如对于第二阶段被错误聚合的报警,目 的端口号由前一报警的111变为32774,所引起的端口号差异达到0.49839,从 而导致了聚合结果出现错误。而本发明的改进聚合方法从根本上解决了这一问 题。由于改进的聚合方法可以有效地对原始报警数据进行聚合与压縮,因此, 本发明将该方法用于报警数据的预处理。
二、 本发明利用网络攻防领域的攻击本体以及隐马尔可夫模型对网络攻击 进行抽象描述,解决了对复杂网络攻击进行数学建模的问题。由于引入了攻击 本体,可以在满足合理性与完备性的前提下对网络攻击进行合理的抽象。解决 了传统关联分析方法在构建知识库时需要对大量具体攻击细节详细描述的问 题。本发明将攻击本体中定义的抽象攻击类型作为隐马尔可夫模型的状态节点, 将预处理阶段得到的超报警作为隐马尔可夫模型的观察节点,利用隐马尔可夫 模型对网络攻击过程进行建模,充分利用了隐马尔可夫模型描述的系统的统计特性与网络攻击过程相似的特点。进而将报警数据的关联分析问题转变为隐马
尔可夫模型的解码问题,使得问题的求解变得简单清晰。
三、本发明利用改进的Viterbi算法实现关联分析。由于在利用经典的 Viterbi算法求解的问题中,所有的观察值是由一个过程产生的,如图6所示。 而对于网络攻击数据,由于网络应用的并发性和网络结构的复杂性,其观察值 序列可能是由若干个不同的过程产生的,并且,观察值之间可能存在交叉现象, 如图7所示。因此,对经典的Viterbi算法进行一定的改进,以适应网络报警关 联分析问题。
利用改进的Viterbi算法对MIT Lincoln实验室在2000年作IDS评测时获得 的数据集LLDDOSl,O的内网数据进行分析,而后对分析结果进行回溯处理, 最终得到的入侵场景如图8所示。由图8所示的入侵场景可知,利用本发明的 方法重构得到的入侵场景与MIT Lincoln实验室的测试过程一致。重构场景中 的任一攻击都包含在测试过程中。模型从原始的报警序列中只关联到一个完整 的入侵场景,满足确定性与惟一性的要求。因此,本方明的方法,在克服传统 方法缺点的同时得到了理想的结果。


图l、扩展目标规划图示例。
图2、本发明的整体处理流程图。
图3、网络攻击本体示意图。
图4、改进的Viterbi算法的流程图。
图5、传统聚合算法和改进聚合算法的聚合对比结果。
图6、经典Viterbi算法适用的观察值序列示例。
图7、网络攻击观察值序列示例。
图8、改进Viterbi算法分析得到的入侵场景。
图9、描述网络攻击的隐马尔可夫模型。
具体实施例方式
本发明主要包括入侵报警数据的预处理、报警数据的关联分析和入侵场景
构建三个主要步骤,如图2所示。具体分述如下 一、报警预处理
本发明采用报警聚合的方式对原始报警进行预处理。
为了实现报警聚合,需要从IDS产生的报警信息中提取关键属性,组成原
始报警。通过计算原始报警间的差异度,实现同类报警的聚合,得到超报警。 由于原始报警各个属性值之间差别较大,分别具有不同的数据类型,在确定报
12警信息间的差异时所起的作用也不相同。因此,对各个属性应采用不同的差异 度计算方法。在得到各个属性之间的差异度后,我们通过加权求和的方法得到 原始报警之间的差异度。
各属性值差异度的具体计算方法如下
1) 报警时间考虑到攻击者为达到某一特定目的的一次攻击行为通常发
生在一个较近的时间段内,用时间窗r来表示可以聚合的报警间最大的时间间
隔,即只有当公式
满足时,才可以将两条报警信息进行聚合。
以上公式表明,时间属性是决定报警信息是否可以聚合的先决条件,只有 时间差在一定范围内的报警信息才可以进行聚合。而在报警信息整体差异度的 计算中,将不再对时间属性的数值差异进行计算。
2) 报警名与端口号报警名给出了不同报警的语义信息,其数据类型为 枚举型。由于不同的报警名之间不存在相关性,无法从不同的报警名称推导出 不同的报警间是否存在一定的联系。因此,定义如下公式计算报警名之间的差 异
《雌=
以上公式表明,当两条报警信息的报警名相同时,其差异度为0,不相同 时为1。
考虑到端口号的标识作用与报警名相同,按照报警名的差异度计算方法分 别定义报警"/eW,和"/e 端口号之间的差异度计算公式为
《"=
1, a/eWj ./ or/ # a/e .戶W
3) IP地址IP地址作为网络接口的唯一标识,具有和端口号相似的作用。 但是,不能简单的将IP地址当作枚举型变量计算其差异,因为不同的IP地址 反映了其所在网络的不同结构。IP地址差异度计算方法如下
对于任意两个IP地址/尸1("11."12."13."14)和/尸2(>721."22."23."24),差异度为"U ="21 V"12 ^22
w =rt21 vw12 =w22 vw13 #"23
"11 — W21 V "12 = W22 V= "23 V W" # "24 化=/尸2
以上公式考虑到了不同IP地址的物理位置特性,能够较好的表示不同IP 地址之间的差异。
在得到了各个属性值的差异度之后,原始报警整体差异度的计算方法为 ,,=《諫+《 "+《《
')' M扁
其中m/m表示参与计算的属性个数。
利用原始报警的整体差异度和给定的阈值r,通过报警聚合,可以将包含
大量报警的原始报警序列〈"/抓^/W2,…,fl/eW"〉,进一步转换为规模较小的超 报警序列〈i/j^e/"一a/eW!,/fy/ er一a/eW2,…,i7;v; er—fl/er/m〉,其中加S w 。这样可
极大地减轻关联分析的工作量,阈值r和超报警的语义描述将由专家经验给出,
并存储在关联知识库中。
二、报警关联
i、攻击本体描述网络攻击类型
本发明通过对网络攻击进行整体描述,在一个更高的抽象层次上对网络攻 击构建隐马尔可夫模型。对抽象的网络攻击进行建模,可以解决需要构建大量 隐马尔可夫模型和需要大量训练样本的问题。但是,为了保证抽象模型不影响 关联效果,必须对网络攻击进行合理的抽象描述,该抽象描述应该是完备的, 即组成该抽象描述的一组抽象攻击应该能够代表所有的实际网络攻击。攻击本 体的定义很好的满足这一要求。
本发明的网络攻击本体定义如图3所示。攻击本体中各叶节点的含义如下.-
Probe:探测。确定网络中的活动主机,如IP Sweep攻击;
Scam扫描。确定网络中的漏洞,如Port Scan攻击;
PrhilegeEscalation:权限提升。使入侵者获得更高的权限,如BOF攻击;
Dos/DDos:拒绝服务。阻止正常的网络服务;
Unauthorized Access:非授权的访问。对受害主机进行非法访问,如未授 权的telnet login;
Data:未授权的数据操作。对受害主机数据进行非法操作,如对数据进行
在/'
1
3/4 2/4
0篡改、删除、创建等。
实际的网络攻击行为,在网络攻击本体中作为上述节点的叶节点。上述网 络攻击本体的定义满足完备性要求,并且从攻击的行为和目的两个角度对网络
攻击进行了合理的抽象。因此,本发明将上述攻击本体定义中的叶节点作为隐 马尔可夫模型的状态。
需要指出的是,预处理阶段获得的超报警是对实际网络攻击的第一层抽象 描述,攻击本体中的叶节点是第二层抽象描述。因此,超报警应该表示为攻击 本体第三层节点的子孙节点。
2、 描述网络攻击的隐马尔可夫模型
实际的网络攻击过程与隐马尔可夫模型所表示的系统具有很大的相似性, 如图9所示。通常攻击者为达到一定的目的,会采用多种攻击方式和多个攻击 步骤。这些攻击行为按照攻击者意图的不断转移形成一个完整的攻击过程,以 实现攻击者的最终目标。对于防御者,可以通过IDS等防护系统直接获得攻击 者采取的具体攻击行为,但并不能直接获得攻击者的攻击意图。因此,可以将 IDS的报警序列作为隐马尔可夫模型的观察值序列,将攻击者的攻击意图作为 隐马尔可夫模型隐藏的状态。
通过以上说明可知,利用隐马尔可夫模型可以对网络攻击过程进行精确的 建模。在本发明的模型中,将预处理阶段得到的超报警序列作为隐马尔可夫模 型的观察值;将攻击本体中定义的抽象攻击定义为隐马尔可夫模型的隐藏状态。 按照这一假设,对报警序列进行关联分析的问题转变为求解下述问题
对于给定的隐马尔可夫模型A-CiAp),已知观察值序列
0 = {91,02,'",0,,"'07_},求状态序列15 = { 1,52,"'^,,'" }使得下式取得最大值
p(雄')p(s)= k h )fl尸fc h—,)木k)
其中j、 S、 p隐马尔可夫模型的参数,具体如下
状态转移概率矩阵。^-W, -尸^+1=^化=^);
s:观察值概率分布。B-fe^》,6,(A)-尸(v,-^k-A);
f.初始概率分布。/ =^,}, &=尸(仏=^)。
该问题属于隐马尔可夫模型应用中的解码问题,可以用Viterbi算法进行求解。
3、 利用改进的Viterbi算法进行关联分析
15为了应用隐马尔可夫模型进行关联分析,首先要确定隐马尔可夫模型的参 数。模型参数可以通过样本训练确定,但是,这需要有大量有效的训练样本, 限制了算法的应用。在发明的模型中,模型参数直接由领域专家的专家经验给 出,并将参数存储在关联知识库中,供关联算法使用。考虑到在实际应用中, 特定时间内获得的报警序列可能包含多个攻击过程,这些攻击过程之间可能相 互重叠,因此发明采用递归算法对报警序列进行关联分析。
此外,由于在利用经典的Viterbi算法求解的问题中,所有的观察值是由一 个过程产生的,如图6所示。
而对于网络攻击数据,由于网络应用的并发性和网络结构的复杂性,其观 察值序列可能是由若干个不同的过程产生的,并且,观察值之间可能存在交叉 现象。如图7所示。
因此,需要对经典的Viterbi算法进行一定的改进,以适应网络报警关联分 析问题。改进算法的输入和输出如下
输入超报警序列O = 〈7fy/7er — a/ew,, /fy/ er _ cr/ert2,…,ify/ e/" — a/ert 〉,状
态转移概率矩阵^ ,观察值概率分布矩阵s ,初始概率分布向量,关联阈值r ,
观察值数量f (即超报警序列包含的超报警数); 输出状态转移序列的集合& = (Sce朋noj;
具体的关联算法流程如图4所示。
通过该关联算法可以得到所有与输入序列相关的状态转移序列。这些状态 转移序列可以看作由抽象攻击组成的入侵场景。但是这些入侵场景并不满足确 定性和惟一性。为了得到由原始攻击组成的辦足上述性质的入侵场景,还需要 对得到的状态转移序列集进行回溯处理。
4、通过回溯处理构建入侵场景
经过关联分析,得到的是代表抽象入侵场景的状态转移序列,这些状态转 移序列包含一定的冗余信息。由原始报警组成的入侵场景中,原始报警间应该 满足以下约束关系-
1) 时序约束对于任意两个原始报警a/ew。 a/e ,如果/>,成立,则a/ew,.
与fl/er。的时间属性满足a/eWJ/we S a/e 力me o
2) 逻辑约束任意相邻的原始报警a/e^和"/w。.之间,必满足如下三种关
系[7]之一。
*依赖关系如果y》成立,则a/e《所代表的攻击是"/e;^.所代
16表的攻击实施的前提条件; *并列关系a/e《和fl/e .所代表的攻击全部成功,才是另一单
步攻击成功实施的前提,并列关系具有传递性;
*选择关系^^'和"^ 所代表的攻击中任意一个成功,即为 另一个单步攻击创造了前提,选择关系具有传递性。 因此,需要按照以上约束关系对这些状态转移序列依次进行如下处理
1. 还原超报警序列
对于状态转移序列集&= (Sce朋rZoJ中的任一状态序列&ewmv^ ,用该序
列中的状态所对应的超报警替换相应状态,从而得到与该状态对应的超报警序 列。
2. 去除冗余超报警
对于每一个超报警序列鄉戸—a/一,砂戸—fl/ert2,...,//,r — fl/eWm〉,如 果存在超报警i/^peA^a/e/Y,,其w》—s^和c^ —犯f (组成超报警的原始报警源
IP集合和目的IP集合)都与位于其前面的超报警的^p一化,和c/^一sw无关(即
不存在相同的IP),则从序列中删除该超报警。
3. 还原原始报警序列
对于每一个超报警序列,将其中的超报警替换为满足时间约束关系的原始 报警,得到原始报警序列。
4. 报警序列重组
经过以上三个步骤的处理,可以得到由原始报警序列组成的原始报警序列 集,记为a/eW—& = ^/ert—&e a/70i},其中a/erf—Scenano,为原始报警序列
〈a/e ,a/ert2,…^/ert"〉。对原始报警序列,按照如下规则进行重组
如果存在报警序列fl/ew—Scewaho,和a/eW—Scewa/v ,且
"/eW—Scera〃Oi (炎),1 S * S w与a/eW—Sce"ar/t^ (1)满足依赖关系,贝U将
feenano,.和组成新的报警序列。新的报警序列可能包含
若干个并列的分支。
如果存在报警序列of/eW Sce"ahq禾fl fl/eW Sce"ar,'o,, 且
a/er/ —&^"〃》 与a/ert —Scew"—(A) , a/eW —Scew",(A: + 1) , 1《A: < w满足并列关系或选择关系,则将"/eW—Scewa;^和a/eW—Sce朋ho^组成新的报警
序列。新的报警序列可能包含若干个并列的分支。
状态转移序列经过以上四个步骤的处理后,将得到满足确定性和惟一性要 求的入侵场景。
权利要求
1、一种基于隐马尔可夫模型的网络入侵场景构建方法,其步骤如下1.1、入侵报警数据预处理利用改进的报警聚合方法对原始报警数据进行预处理首先计算原始报警数据的报警时间、报警名、端口号和IP地址属性之间的差异度,而后通过加权求和的方法得到原始报警之间的整体差异度,按照报警数据的整体差异度对原始报警数据进行聚类分析,得到超报警;1.2、报警关联1.21、描述网络攻击的隐马尔可夫模型将预处理阶段得到的超报警序列作为隐马尔可夫模型的观察值;将攻击本体中定义的抽象攻击作为隐马尔可夫模型的隐藏状态;1.22、利用改进的Viterbi算法进行关联分析,得到代表抽象入侵场景的状态转移序列;1.3、通过回溯处理构建入侵场景对这些状态转移序列按时序和逻辑约束条件进行回溯处理得到入侵场景。
2、 根据权利要求1所述的基于隐马尔可夫模型的网络入侵场景构建方法,其特征是原始报警数据各属性值差异度的具体计算方法如下-2.1、 报警时间用时间窗r来表示可以聚合的报警间最大的时间间隔,即只有当公式Iflt/erti力附e - a/eWj .">ne| < r满足时,才可以将两条报警信息进行聚合;2.2、 报警名与端口号 定义如下公式计算报警名之间的差异<formula>formula see original document page 2</formula>当两条报警信息的报警名相同时,其差异度为0,不相同时为l;按照报警名的差异度计算方法分别定义报警"/eW,和"/eW,端口号之间的差异度计算公式为血r'=〗2.3、 IP地址IP地址差异度计算方法如下对于任意两个IP地址/尸1("11."12."13."14)和/尸2("21."22."23."24),差异度为"11"11 =M21 V "12如22 "U ="21 V"12 ="22 V"U #"23 WU =M21 VW12 =W22 V/J13 =/ 23 V !4 5* 242.4、 原始报警整体差异度的计算方法为w歸其中表示参与计算的属性个数;2.5、 利用原始报警的整体差异度和给定的阀值r,通过报警聚合,将包含大量报警的原始报警序列〈"/ert^/e^,…,^rg,转换为规模较小的超报警序列 〈ify; er—a/eW!,/fy/7^—a/eW2,".,/f3^w —a/e"附〉,其中附S",阈值T和超报警的语义描述存储在关联知识库中。
3、根据权利要求1所述的基于隐马尔可夫模型的网络入侵场景构建方法, 其特征是改进的Viterbi算法模型参数存储在关联知识库中,输入超报警序列C^〈/fy戸/ia/eM,/fy/7e/"—a/e《,…,/fy; e/"—cr/e《〉,状态转移概率矩阵J,观察值概率分布矩阵5,初始概率分布向量p,关联阈值r,观察值数量K (即超报警序列包含的超报警数),状态数N; 输出状态转移序列的集合&={&^"/^,};改进的Viterbi算法Stepl,将第一个超报警添加到栈Stack中;Step2:判断Stack是否为空,如果为空转到Stepll;Step3:将Stack栈顶元素出栈,附值给0b,并执行以下操作Delta(l)(i) = Pi (i)Bi (Ob), Phi (1) (i) 二 0, K=i<=N; Step4:判断Max(Deltal(i))〈T, 1〈-K-N是否成立,如果成立,将Ob之后的超报警入栈,转到St印2; Step5:执行以下操作Ob = next(Ob),Delta(t) (j) = Max [Delta (k-1) (i)A(i, j)]b(j) (Ob), l〈=j<=N;Step6:判断Max[Delta(k)(j)] < T, l<=j〈=N,是否成立,如果不成立,转 至lJSt印8;Step7:判断Stack是否为空,如果为空,将Ob入栈,转到Step5,不为空则直接转到Step5; Step8:执行以下操作Phi(k)(j) = argMax[Delta(k-l)(i)A(i, j)], 1 〈= i <= N, 1 <= j 〈= N; Step9:判断是否最后的超报警,如果不是,转到Step5执行; SteplO:执行以下操作Scenario(K) = argMax[Delta(K) (i)] , K=i<= N Sceanrio(k)=Phi(k+l) (Scenario (k+l), k = K-1,…,1 将Scenario添加到Sc中,转到St印2执行; Stepll:终止。
4、根据权利要求1所述的基于隐马尔可夫模型的网络入侵场景构建方法,其特征是回溯处理的过程如下4.1、 还原超报警序列对于状态转移序列集&= (Sce朋n'oJ中的任一状态序列&e""r—,用该序列中的状态所对应的超报警替换相应状态,得到与该状态对应的超报警序列;4.2、 去除冗余超报警对于每一个超报警序列〈7fypw — a/e巧,//^7er—a/eW2,...,/fy/7er—a/eW报〉,如 果存在超报警/^per—a/ert,,其《- —sw和^p一化/ (组成超报警的原始报警源 IP集合和目的IP集合),都与位于其前面的超报警的砵—w和rf*—W无关(即不存在相同的IP),则从序列中删除该超报警;4.3、 还原原始报警序列对于每一个超报警序列,将其中的超报警替换为满足时间约束关系的原始报 警,得到原始报警序列;4.4、 报警序列重组经过4.1~4.3步骤的处理,可以得到由原始报警序列组成的原始报警序列集, 记为a/err—= ^ /eW — Sce""no,}, 其中a/ert — Sce"or;q为原始报警序列〈"/ert,,"/e/^,…,a/ert"〉,对原始报警序列,按照如下规则进行重组如果存在报警序列a/eW —&e ar/o,.和a/eW—, 且a/ew—&e"fln<^(A) , 1《A:《w与a/eW — (1)满足依赖关系,则将flferf—&^"^/^和^^^一&£"^^.组成新的报警序列,新的报警序列可能包含若 干个并列的分支;如果存在报警序列a/er,—Sce朋/7《.和a/ert—Scena/vo,., 且 a/抓一 Scewa".Oy (w)与a/eW—Scewa,, a/eW 一 (A: +1) , 1 " < w满足并列关系或选择关系,则将a/ert—Scenaho,和"/erf—Sce朋r/ 组成新的报警序列,新的报警序列可能包含若干个并列的分支;状态转移序列经过以上四个步骤的处理后,将得到描述网络攻击过程的入侵 场景。
全文摘要
本发明涉及一种基于隐马尔可夫模型的网络入侵场景构建方法,它主要包括入侵报警数据的预处理、报警数据的关联分析和入侵场景构建。其中报警数据预处理的目的在于聚合冗余报警,压缩报警数据集,消除大量重复报警的影响,为报警数据关联分析做好充分的准备。本发明用攻击本体和隐马尔可夫模型对网络攻击行为进行建模,保证模型对网络攻击类型的描述和攻击过程的描述满足合理性和完备性要求。同时,将报警数据的关联分析问题转变为隐马尔可夫模型的解码问题,用改进的Viterbi算法对问题进行求解,分析结果准确度高。对于关联分析结果,按照一定的约束条件进行回溯处理,构建符合实际网络攻击过程的入侵场景。
文档编号H04L9/00GK101494535SQ20091002138
公开日2009年7月29日 申请日期2009年3月5日 优先权日2009年3月5日
发明者琢 王, 范九伦 申请人:范九伦
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1