《1 前言》

1 前言

容忍入侵技术 [1, 2] ( intrusion tolerance)能在故障 /入侵已发生时保证系统关键功能继续执行, 受到了越来越多的关注, 其中包括美国的 OASIS和欧洲的 MAFTIA这两个重要的研究计划。在这两个计划的支持和带动下, 有关容忍入侵技术的研究得到了迅速发展。容忍入侵技术主要分为两类, 一是先应式 ( proactive)的, 另一是反应式 ( reactive)的。先应式容侵技术假设计算环境是不可信的, 从开始就重新设计整个系统结构, 使可信的部分系统能够在不可信的环境中安全地合作, 以保证攻击发生后对系统没有太大的影响。目前先应式的容侵技术多以门槛密码技术、Byzantine协议技术等为理论基础 [3, 4] 。反应式容侵技术在检测到局部系统失效或估计到系统被攻击后, 调整系统结构, 重新分配资源, 从而达到继续服务的目的。基于反应式容侵技术的系统一般都包括一个基于风险概念的入侵预测系统、系统资源控制系统和在线的修复管理程序, 比较典型的反应式容侵系统有 ITDB数据库系统 [5] 、Internet的服务保护系统 [6] 等。先应式容侵系统不用考虑入侵, 但是需要重新设计系统, 难以和现有的设备与系统兼容;反应式容侵系统不需要重新设计系统结构, 系统的操作和连接界面也可以与原有系统保持一致, 受到具体应用场合的欢迎, 但是它依赖于由入侵预测技术构成的容忍入侵触发器。

对于入侵预测技术的研究, 面临着两方面的困难:一是入侵模型问题, 由于入侵是恶意对手的蓄意行为, 它不同于符合随机分布的故障, 很难描述和预测, 文献[1] 将入侵模型的描述与构建列为一个公开问题;二是预测方法问题, 通常入侵预测的依据是来自入侵检测系统提供的警报, 而当前的入侵检测系统拥有太高的误警率和漏警率 [7] , 对入侵预测方法提出了更高要求, 需其能在一定程度上容忍误报、漏报并根据推理给出正确的预测。

《2 入侵模型及其构建方法》

2 入侵模型及其构建方法

入侵是恶意对手的蓄意行为, 不符合随机分布规律, 基于随机分布的故障模型并不适用, 使入侵模型的描述与构建成为难题 [1] 。反应式容侵系统的入侵模型, 应立足于容侵系统本身, 把攻击者发起的不断升级的入侵行为看成系统安全状态下降的过程, 而系统安全状态的下降, 是通过攻击者针对系统操控能力的提高来体现。为此, 提出了一种基于攻击者能力的入侵模型, 该入侵模型通过攻击行为内在的逻辑联系, 以攻击者能力提升的过程来描述入侵及入侵导致的系统安全状态变迁, 使系统能及时了解自身安全状态下降, 当其下降到某一阈值时, 可以方便地启动相应的容侵机制。

《2.1 基于攻击者能力的入侵模型》

2.1 基于攻击者能力的入侵模型

文献[8, 9] 从攻击者的角度出发, 认为入侵是这些有关联的攻击步骤。笔者立足于被破坏系统, 认为入侵是攻击者获取了针对该系统的操控能力, 并根据攻击者能力不断提升 (即系统安全性逐渐降低 )的过程选用文献[10]关于攻击者能力的描述来建立入侵模型。

定义 1 攻击者所具有的针对计算机系统的操控能力 ( capability )是一个 6元组:

Capability=( Source, Target, Action, Service, Property, Credential ) ( 1 )

Capability描述了攻击者的行为能力, 表示来自 Source攻击者, 用证书 Credential, 针对 Target中 Service服务的 Property属性, 采取 Action行为。

例如 C1 = ( src, tgt, read, passwd, content, smith), 表示来自 src的攻击者, 他以 smith的证书获得了针对目标 dst的 content服务中 passwd文件的 read权限。此外, 不同的能力之间可能具有某种逻辑联系。如能力 C2 =( src, tgt, read, Allfiles, content, {smith, john}), 显然 C2 的能力比 C1 表示的能力大, 或 C2 蕴涵了 C1

定义 2 C1 和 C2 是 2个不同的攻击能力, 如果它们具有如下关系:

1) 相同的 Source, Target和 Action;

2) 相同的类型 Service和 Property;

3) C1 的 Service, Property和 Credential分别是 C2 的 Service, Property和 Credential的子集。

则称 C2 蕴涵 C1, 或者 C1 可由 C2 推出, 记为 C2C1

由于入侵是系统安全性不断下降即攻击者能力不断提升的过程, 可以用图 1的基于攻击者能力的状态转移过程作为入侵模型, 图 1中的节点 S是攻击者的能力的集合, 边 a表示攻击。在初始状态 S0 ={ }, 攻击者发起攻击行为 a1, 获得能力 C1, 进入状态 S1 ={C1};在具备了发起攻击 a3 的准备条件 C1 之后, 实施 a3 攻击, 获取新的能力 C3, 进入状态 S3 ={C1, C3 };而在通过 a2 获得能力 C2 之后, S2 和 S3 的并集{C1, C2, C3 }构成了发动 a4 攻击的准备条件, 发动 a4 攻击, 获取新能力 C4 状态转移到 S4 = {C1, C2, C3, C4 }, ……

《图 1》

图 1 基于攻击者能力的入侵模型

Fig.1 Intrusion model based abilities of attackers

定义 3 基于攻击者能力的入侵模型是一个状态转移图, 图 1中状态节点是攻击者能力的集合, 攻击者能力由定义 1给出;图 1中的边由导致状态转移的攻击行为或其触发的警报组成。

由图 1可知, 任何一个攻击行为的发起, 都需要一定攻击能力作为准备条件, 同时, 该攻击行为发生以后, 又获得了新的攻击能力, 给后续的攻击提供准备。也就是说, 任何一个攻击行为必须与两个能力状态相对应, 一个是发起该攻击的初始状态, 是该攻击能成功发起的先决条件;另一个是该攻击奏效后的结果状态, 包含了该攻击所获取的新能力。为此, 用超警报来描述警报与这两个能力的关联。

定义 4 一个超警报 ( hyper_alert )由 3 部分组成:

Hyper_alert = ( Alert, Prerequisite, Consequenc e) ( 2 )

其中, Alert表示该攻击发生时的 IDS警报, 由一个 4 元组构成, Alert = ( name, time, source, target ), 它的组元 name是警报名称 ; time本身也是一个 2元组 time = ( begin, end ), 分别表示该警报所表示攻击行为的发起时间和结束时间;组元 source, target分别表示攻击行为的来源和攻击目标。 Prerequisite表示 Alert产生之前必须具备的先决条件, 是能力的合取; Consequence是 Alert所表示的攻击奏效后, 攻击者具有的能力的合取。

超警报的定义包含了警报发生前必须具备的条件和将产生的后果, 给后续处理提供了有力帮助。

根据超警报和入侵模型的定义可知, 由于攻击者在当前能力状态的基础上发动攻击, 攻击行为成功后, 下一个状态中的能力显然包含前一个状态中的所有能力。

引理 1 超警报 Hyper_alert= ( Alert, Prerequisite, Consequence) 具有 ConsequencePrerequisite。

定义 1 以基于攻击者能力的状态转移图, 形象具体地描述了一个入侵事件, 如果将该入侵事件中警报和攻击事件看成变量, 则该状态转移图描述了一个入侵行为模式。在已知此入侵模式的情况下, 可以用超警报来描述这个模式。但是, 没有先验的入侵模型, 只能根据 IDS提供的警报流, 发现入侵事件并自适应模仿攻击者的逻辑构建入侵模型。

《2.2 入侵模型与元攻击及其构建方法》

2.2 入侵模型与元攻击及其构建方法

为发现入侵模式, 将 IDS提供的警报流转化为超警报流, 并从中寻找这些超警报间的逻辑关联。

定义 5 一个元攻击 ( Meta_attack )是一个 3元组

Meta_attack={H_set, C_set, time} ( 3 )

其中 H_set是关联在一起的超警报集合, C_set是集合 H_set中所有超警报获取的能力的集合, time= ( begin, end )是一个 2元组, begin是 H_set中所有超警报开始时间的最小值, end是 H_set超警报结束时间中的最大值。

元攻击的定义已经将图 1所示的攻击模型中节点集 (能力状态 )和边集 (警报 )以及节点与边之间的对应关系做了描述, 因此, 由 IDS警报构建入侵模型的问题, 可以转化为如何由超警报流构建元攻击的问题。

定义 6 2个超警报 h1 =( A1, Pre1, Cons1 ) 和 h′=( A′, Pre′, Cons′)之间满足

A1_ Time_end < A′_Time_begin  ( 4 )

如果 Pre′Cons1 则称 h1 是 Ha′的必要准备, 简称为准备, 记为 h1 Prep for h′;当超警报集合 { hi | hi = ( Ai, Prei, Cons), i=1, 2, …, n }满足

Cons1 Cons2 Consn Pre′ ( 5 )

Cons1 Cons2 Consn 不能蕴涵 Cons′ ( 6 )

则称{ hi | i=1, 2, …, n }中 n个超警报构成 h′的充分准备。

在 IDS提供的警报中, 由于多传感器的应用, 常常出现针对同一个攻击的多个报警, 为此需要进行警报融合和聚类。

假设 1 任何一个入侵模型中, 入侵者都不会采取重复的多样性的行动去获取已有的攻击能力。

对同一个攻击者来说, 当他已经具有能力状态 S时, 没有必要在此状态下继续发动一些不能获得更多能力的攻击, 因为这样的攻击除了浪费精力和暴露自己, 没有任何意义。至于一些类似 IP伪装的欺骗性攻击, 在实验中, 根据定义 1将另行构建入侵模型, 这些欺骗性攻击最终都会被关联算法当成虚警排除。根据假设 1, 那些不能给攻击者提供新的能力的警报信息往往是由于多点检测和网络延迟造成的误报和重复报警, 在关联过程中直接滤去。此外, 输入警报流是按照时间顺序对操作员汇报, 因此一个新输入的超警报 h, 其开始时间总是大于上一条警报信息的结束时间。

算法 1 警报关联算法

Step 1 判断 h是否可以加入已存在的某个元攻击 M中。该元攻击的 C_set中元素的合取蕴涵 H_Consequence, 若存在, 则采用选择 3 处理 ;若不存在, 转 Step 2。

Step 2 判断 H_Prerequisite是否为空, 若为空, 用选择 1处理, 若不为空则转 Step 3。

Step 3 判断元攻击 M中是否存在一个或多个超警报联合能构成 h的充分准备, 即是否存在 M满足 M的 C_set中元素的合取蕴涵 H_Prerequisite, 若有, 转选择 2, 若没有, 转 Step 4。

Step 4 元攻击合并算法。以 H_Prerequisite为搜索条件, 判断是否存在多个元攻击, 其 C_set的合取蕴涵 H_Prerequisite, 若有, 合并这些元攻击成为新的 M, 转 Step 5;若没有, 用选择 1处理。

Step 5 判断该新合并的元攻击 C_set中元素的合取是否蕴涵 H_Consequence, 若是, 采用选择 4 处理, 若不是, 采用选择 2处理。

选择 1 创建新的元攻击将 h加入 H_set, 将 H_Consequence加入 C_set, 确定时间戳;跳出, 接受新输入的超警报, 转 Step 1。

选择 2 将 h加入已有元攻击将 h放入相应M的 H_set, 同时将 H_Consequence放入 C_set, 更改 M的时间戳 ; 跳出, 接受新的超警报, 转 Step 1。

选择 3 丢弃警报信息基于假设 1, 此为无效或者重复报警, 直接丢弃 ;跳出, 接受新输入的超警报, 转 Step 1。

在 Step 4 中, 对于一些确实发生的警报, 虽然 IDS提供警报信息显示不具备该攻击发生的充分准备条件, 只能认为是传感器或网络故障, 发生了漏检, 为此创建新的M, 可忽略掉前面的漏检信息, 继续关联后续警报, 并构建攻击模型。

《2.3 元攻击与入侵模型的一致性》

2.3 元攻击与入侵模型的一致性

由于元攻击本身就是对入侵模型的形式化描述, 因此, 元攻击与入侵模型之间是可以相互转化的, 从而证明了可以用算法 1 构建入侵模型;此外, 由于这种转化是唯一的, 从而证明了元攻击与入侵模型的一致性问题。

元攻击聚集了输入警报流中的关联超警, 但是, 这种聚合只是简单的聚集, 没有显式表示这些超警报所代表的攻击之间的逻辑联系。

定义 7 如果 M ={ H_set, C_set, time}是一个元攻击,

R ={ ( <h1 , h2> | h1 Prep for h2 ) ( h1, h2 ∈ H_set) } ( 7 )

则称 R为元攻击 M上准备关系。

定理 1 元攻击 M上的准备关系是拟序关系。

证明对于任意的元攻击 M, 假设 R是定义在 M上准备关系, 可证 R满足 :

1) 反自反性。对于任意的 h1 ∈ M, 显然, A1_Time_begin<A_Time_end, 所以不满足 A1_Time_end<A1_Time_begin, 从而不可能有 h1, h1 ∈ R, 其中 A1_Time_begin和 A1_Time_end分别是超警报 h1 中组元 Alert的开始时间和结束时间;

2) 反对称性。对于任意的 h1, h2 ∈ R, 由定义 6, A1_Time_end<A2_Time_begin, 由于 A2_Time_begin< A2_Time_end, 所以不可能满足 A2_Time_end<A1_Time_begin, 从而不可能有 h2, h1∈ R;

3) 可传递性。对于任意的 h1, h2 ∈ R, h2, h3∈ R, 由定义 6, A1_Time_end<A2_Time_begin且 A2_Time_end<A3_Time_begin, 从而 A1_Time_end<A3_Time_begin;又由定义 6, Pre2 Cons1 且 Pre3Cons2, 由引理 1 可得 Cons2Pre2, 所以 Pre3Cons1, 从而根据定义 6 有 h1, h3 ∈ R, 其中, Prei和 Cons分别是超警报 hi 的 Prerequisite和 Consequence。

综合上述 3点可得, M上的准备关系 R是拟序关系。

定义 8 R是定义在元攻击 M上的准备关系, h1, h2 ∈ R, 且不存在 M中的超警报 h3 同时满足 h1, h3∈ R和 h3, h2 ∈ R, 则称 h1 是 h2 的直接准备。集合

COV( M ) ={ h1, h2 |h1, h2∈ R, 且 h1 是 h2 的直接准备 } ( 8 )

称为 M上准备关系 R的一个覆盖。

引理 2 对一个元攻击 M, 存在且仅存在一个关于准备关系的覆盖。

证明从存在性和唯一性两方面来证明。

1) 对于任意一个元攻击 M, 按照定义可构建其上的准备关系 R, 和关于该准备关系 R的覆盖 COV ( M) 。所以, 一个元攻击存在关于超警报准备关系的覆盖。

2) 假设有 2个集合 COV1 和 COV2 都是元攻击M的覆盖, 然而对于任意的<h1, h2> COV1, 由 <h1 , h2 >∈ COV1 知, <h1, h2>∈ R且不存在 M中的超警报 h3, 同时满足 <h, h2>∈ R和<h1, h2>∈ R, 而由覆盖的构造方法知, 必然有 <h, h2>∈COV2;同理, 对于任意的 <h1, h2>∈ COV2, 必然有<h1, h2>∈ COV1, 因此 COV1 =COV2 。从而每个元攻击的覆盖是唯一的。

由此可知, 对于一个元攻击 M, 有且仅有一个与之对应的覆盖。

由引理 2可知, 存在唯一的覆盖和元攻击对应, 可以将元攻击 M转化成与它唯一对应的覆盖 COV ( M), 然后通过 COV( M)构建入侵模型。

算法 2 入侵模型构建算法

Step 1 任选一个属于 M的超警报 h, 将 h的准备条件 Pre作为状态节点放在平面上, 将它的结束状态 Cons节点放在 Pre1 节点的右边, 并用从左到右的有向弧 h连接 2个状态节点。

Step 2 对于已存在的有向弧 h, 如果存在 < h1, h>∈ COV( M), 则 h1 的准备条件 Pre1 作为状态节点放在 Pre的左边, 画一条从 Pre1 到 Pre的有向弧 ;如果存在 < h, h>∈ COV( M), 则 h1 的结束能力 Cons1 作为状态节点放在 Cons的右边, 画一条从 Cons到 Cons1 的有向弧。

Step 3 重复进行 Step 2, 直到穷尽元攻击 M中所有的超警报。

引理 3 对一个元攻击 M, 必存在一个基于状态转移的入侵模型, 且同一个元攻击的不同入侵模型是同构的。

证明

1) 存在性。对于给定的元攻击 M, 由引理 2可以构建与之唯一对应的关于准备关系的覆盖 COV ( M), 采用算法 2, 可获得入侵状态转移模型。

2) 唯一性。对于同一个元攻击的多个入侵状态转移模型, 由于其节点集 C_set是相同的, 边集 H_set也是相同的;节点与边的对应关系由 H_set中的元素 (超警报 )所确定, 而相同的集合 H_set的元素必定也是完全相同的。所以, 这些属于同一个元攻击的多个入侵状态转移模型是同构。

定理 2 元攻击 M、相应的覆盖 COV( M)和基于攻击者能力状态转移的入侵模型之间存在一一对应关系。

证明

1) 对于给定的元攻击 M, 由引理 2, 可找到唯一存在的 COV(M) ;

2) 由引理 3, 可以构建与之唯一对应的入侵状态转移模型 ;

3) 对于同一个元攻击的多个入侵状态转移模型, 初始化一个元攻击模型 M={H_set, C_set, Time}, 把入侵模型中所涉及到的边 (超警报 )放入 H_set、状态节点所包含的能力等放入集合 C_set, 然后找到开始时间和结束时间确定时间戳 Time, 该 M 唯一存在, 且和入侵模型一致。

综上所述, 可得到图 2描述的入侵模型和元攻击之间的转换关系, 元攻击 M通过 COV( M)可求得入侵模型, 而入侵模型可以形式化描述为元攻击, 因此这三者之间存在着一一对应关系。

《图 2》

图 2 元攻击与入侵模型的转化关系

Fig.2 Transform between meta-attack and intrusion model

《3 混合式贝叶斯网络入侵预测方法》

3 混合式贝叶斯网络入侵预测方法

由于贝叶斯网络可根据观察到的片断、琐碎的现象推理出具有合理的因果联系, 完整而全面的描述整个事件的过程, 即构建良好的贝叶斯网络既能补充一些未观察到而又实际发生的现象, 还可以预测未来, 合理地推出主体未来可能采取的动作。这种能力用于入侵预测, 可以弥补入侵检测系统漏检造成的攻击行为信息丢失, 又可预测未来的攻击行为, 为容侵系统的快速主动响应提供判断依据。

《3.1 混合式贝叶斯网络模型》

3.1 混合式贝叶斯网络模型

对于图 1 的入侵模型, 虽然在不同的参数情况以及攻击模式下, 即使采集到的警报信息相同, 攻击者采取的攻击行为以及该行为对系统的安全状态影响也有所不同。但是, 这里仍然蕴涵着一定的统计特征, 可以用贝叶斯网络进行特征统计与预测。

笔者提出一种新的混合式贝叶斯网络, 来描述定义 1中的入侵模型, 如图 3所示。网络结构分为安全状态和攻击行为两层, 定义 1中的状态节点置于安全状态层, 定义 1中所表示的攻击转化为攻击行为层节点。图 3中不同的层中节点之间的连接类型不同, 在层内, 同种节点间的连接为连续连接 ;在层间不同节点间的连接为收敛连接。

《图 3》

图 3 混合式贝叶斯网络

Fig.3 Hybrid bayesian network

定义 9 混合式贝叶斯网络由节点和连接组成, 其节点分为状态节点和行为节点两类, 连接方式分为连续连接和收敛连接两类。

1) 状态节点 S表示系统的安全状态, 是攻击者能力的集合, 攻击者能力由定义 1给出。

2) 行为节点 a是攻击行为集合, 该集合中任一成员 al, j 奏效后, 都会使得系统安全状态转移到 Sl, 或 Sl+1等后续安全状态。

3) 状态节点间是连续连接, 而行为节点到状态节点的连接为收敛连接。

根据图 3, 安全状态层的节点 Sl 表示攻击者具备的对系统的操控能力, 即系统安全遭受的破坏 ;安全状态之间的连接为连续连接, 如果不知道连接中变量的状态, 证据可以在连续连接中传送。已知 Sl 发生, 会增加对 Sl+1的信念;已知 Sl+1发生可确信状态 S已经发生。但是, 已知 Sl+1后, 再发生 Sl 将不会增加对 Sl+2的信念, 即安全状态 Sl 和 Sl+2是依赖的, 收到关于 Sl+1的证据时, 变成独立的。更形象的说, 安全状态层的有向连接反映了安全状态逐步下降的过程, 当确信系统安全状态已处于 Sl 时, 更加相信攻击者即将发动攻击, 使得自己具有 Sl+1以及其以后的状态所表示的能力;然而, 当得知攻击者已经具有某能力后, 再知道它以前曾经拥有的攻击能力, 对预测未来的攻击是没有任何影响的。即系统安全状态与其先辈节点 (曾经经历过的安全状态 ) 相关, 而在已知其父节点 (前一个状态 )时, 则与其他先辈无关, 在原理上符合假设 1。

攻击行为层的节点 al 表示攻击模型中的边集, 即来自入侵检测系统的表示攻击者行为的警报信号集合, 该集合中有 l个代表警报信号的节点 al, j( j =1, …, ln), 当这些警报所代表的攻击行为奏效后, 系统安全状态立即下降至 Sl。从而, al中攻击奏效后, 系统安全状态将处于 S或者比 S更不安全的状态 Sk( k>l) 。攻击行为集合 a中任一节点与al+1中任意节点之间都具有连续连接, 其意义同前面对安全状态节点中连续连接的描述。 al中任意 2 个节点 al, j和 al, k( j, k=1, …, ln)与它可获得的下一个状态 Sl之间的跨层连接是收敛连接。即如果关于 Sl的状态一无所知, 那么 Sl的任意 2个双亲节点 (可以获得 Sl的任意 2 个攻击行为 al, j和 al, k) 是独立的, 即 al, j的知识对 al, k没有影响, al, k的知识对 al, j也没有影响。但是, 如果 Sl的状态已知了, 那么 al, j和 al, k就变成了条件依赖的。对其中一个攻击的信念上升时, 对另一个的信念就会下降, 这同样和假设 1相符。

《3.2 联合概率分布计算》

3.2 联合概率分布计算

如果给定父节点, 可以计算出每个子节点的条件概率分布。如果被观察节点没有父节点, 那么就使用先验值作为条件概率分布。图 1 中如果 l>j 状态 Sl时攻击者所拥有的能力会包含 Sj状态下攻击者所拥有的能力, 但是, 考虑到当攻击者拥有相应能力, 进入状态 Sl后, 不能再认为处于状态 Sj, 就像一个人经过童年进入中年后, 不能再认为他处于童年状态一样, 为此, 假设这些状态 {S0, S1, …, Sm } 构成系统安全状态空间Ω的理想完备划分, 即

定义以下变量:

1) 变量的状态集合 S={ S0, S1, …, Sm }, S0 表示初始安全状态, S1表示在目的变量的状态集合中第 1 个系统安全状态 ;

2) 者为达到攻击能力 Sk而采取的攻击步骤 ak 奏效后, 攻击者将拥有攻击能力 Sk, 即系统的安全状态下降为 Sk;

3) k={ S0, a1, a2, …, a}表示系统从初始状态 S0 开始发动的攻击 a1, a2, …, ak一段长度为 k的攻击序列 ;

4) l-1, l, k( k=1, 2, …, ln) 表示在长度为 m的一条攻击序列中, 在第 l-1个安全状态下, 攻击者转而采取攻击行为 al, k的转移概率 ;

5) 表示事件空间, 即完备的攻击行为的事件空间。

根据图 3 中混合式贝叶斯网络, 关于状态与攻击的信念, 可以得到如下的形式化的基本规则:

1) 达到同一状态的所有攻击发生的信念和记为

2) 对某一状态 Sl, 能进入该状态的所有攻击发生的信念和为 1, 即

3) 当观察到 al, k时, 进入 Sl状态的概率增加 ;

4) 当系统安全状态在 Sl-1时, 信念值 P( al )和 P( Sl )要增大。

对于某个从初始状态 S0 开始的攻击序列 Ak = { a1, a2, …, a}中, 由于攻击 al的成功, 意味着系统进入状态 Sl, 记为

由贝叶斯网络中蕴涵的马尔可夫假设, 可得

于是有

这里 ( Sl |Ak-1 )表示 Sl是 Ak-1的目的或攻击者希望获得的能力, 或系统安全将下降到的状态 ;( ak | Sl, ak-1 )表示在攻击者使用 ak-1处于状态 Sl-1后, 下一步采取攻击行为 ak进入 Sl的概率。此时, 由全概率公式得

再由条件概率公式得

这就得到了贝叶斯后验概率公式, 保证了基于贝叶斯网络推理的正确性。

《4 实验描述》

4 实验描述

为验证模型及预测算法的有效性, 使用 MIT LincolnLab提供的 DARPA2000入侵检测攻击场景数据集 LLDOS1.0, 测试所提出的入侵模型以及基于该模型的入侵预测算法的性能。 LLDOS1.0中包含了一个完整的攻击序列, 主机探测、端口扫描、系统入侵、安装木马, 利用被控主机发起 DDOS攻击。在测试中, 每一个数据集包在 3 h内采集到评测网络的 DMZ和内部网的数据流量, 背景流量来自 DARPA99给出的不含攻击的训练数据, 通过 Net poke软件实施攻击重放, 将这些流量导向 RealSecure6.0等网络 IDS, 利用这些 IDS充当传感器, 将警报数据传向容侵系统的触发系统。

为达到系统入侵的目的, 通常攻击者采取 5个步骤:地址扫描、端口扫描、口令文件获取、口令破解和登陆系统, 对于系统中某主机而言, 其安全状态逐渐下降, 依次为初始安全状态 ( S0 ) 、地址被探测 ( S1 ) 、端口及相应服务被探测 ( S2 ) 、口令文件被获取 ( S3 ) 、口令被破解 ( S4 )以及系统被控制 ( S5 ), 其入侵过程的混合式贝叶斯网络如图 4所示。

《图 4》

图 4 系统入侵过程的混合式贝叶斯网络表示

Fig.4 HyBN for intrusion process

在网络推理过程中, 为保证

对处于初始状态的系统, 设置信度为 P( S0 ) =1, P(Sl) =0 ( l=1, …, 5), 如果发现集合 al中警报 alj使得攻击序列 Al-1成为 Al, 表明攻击者已实施相关攻击, 则系统安全状态已下降至 Sl, 也有可能有攻击行为未被发现或即将实施, 而系统状态已经或将处于 Sl+1或 Sl+2。为此, 当 l<m-1时, 采用P( Sk| Al) =

在 l=m-1时, 采用

进行信度更新。

在具体的实验中, 信度由 P( S0 ) =1开始, 当攻击导致安全状态变化时, 采用式 ( 18 ) 、式 ( 19 )进行信度更新。依次为 P( S1|A1 ) =1/2, P( S2|A1 ) =1/3, P(S3|A1 ) =1/6, 且记 P(S0|A1 ) =0, 表示系统已不可能回到最初的安全状态 ;此时, 若又有警报表明 a2 中攻击已奏效, 则第二次转变为 P( S0|A2 ) =0, P(S1|A2 ) =0, P( S2|A2 ) =3 /4, P( S3|A1 ) =1/5, P(S4|A1 ) =1/20。这样赋值, 有一定的事实依据, 首先 l值越大, P( Sl|A)的初值越大, 攻击者已完成一个攻击序列中前面的准备环节越多, 且正在发动下一个环节的攻击, 成功的概率会更大;同样, 随着 l值增大, 攻击的危险级别越高, 但对攻击者发动此类攻击的难度也在增大, 因而 P( Sk|A) ( k>l)越来越小。当有少量的警报发生时, 可根据贝叶斯网络中的连接方式进行信度调整。

在应用中, 根据系统要求的安全级别来设定阈值, 通过判断系统安全状态的信度是否超过该阈值来决定是否需要采用响应措施。实验中分别在 DMZ和内部网释放了 89 和 60 次攻击, RealSecure 分别产生了 891和 922个警报, 这些警报包含了大量的虚警和重复报警, 根据最大概率是否超过阈值来预测该系统的下一步安全状态, 并将实时预测结果和正确报警所确定的真实状态相比较, 验证算法的可行性。实验过程中发现 0.81是一个较好的阈值, 此时得到的预测结果较为理想。

由于尚不具有统一的系统平台、测试数据集以及定义在其上的类似于预测率的衡量指标, 一些相关的研究工作都未曾给出可比较的结果。Cheung [9] 和 Ning [11]的警报关联方法需要 2 ~ 180 s 的离线处理, 才能发现被漏报的信息 ;而基于混合式贝叶斯网络的入侵预测方法可以在线预测后一个攻击行为对系统安全可能造成的影响, 所得到的预警信息均在 RealSecure警报来临之前, 能达到提前预测的功能。由于目的是给容侵系统提供更多的响应时间, 从这个意义上看, 基于混合式贝叶斯网络的入侵预测方法, 具有更好的效果。

《5 相关工作比较》

5 相关工作比较

与本文相关的主要工作有警报关联 [8 ~ 10] 、入侵预测 [11 ~ 13] 。文献 [8 ~ 10]中的警报关联工作与入侵模型构建工作相类似, 文献 [8 ~ 10] 重在关注攻击行为的内部关联, 而 HyBN入侵模型是为反应式容侵系统提供预测和决策依据, 关注攻击行为对系统造成的影响。为此 HyBN的算法构建的是基于攻击者能力的入侵模型, 通过状态变迁反映系统安全状态的下降过程。此外, 给出了相关证明, 从理论上保障了该模型构建方法的可行性。

关于入侵预测的工作, Ramasubramanian [12] 旨在讨论针对数据库的异常行为, 通过统计发现入侵行为的规律, 从而提供预测依据, 从本质上说, 这些工作依然是基于异常行为的入侵检测方法。 Qin [13] 对攻击树进行统计分析, 找出攻击规划模型, 并通过规划模型使用因果网络进行警报预测 ;Wang [14] 使用队列图进行警报关联, 然后根据队列图, 预测攻击者的下一步攻击行为。由于尚不具有统一的系统平台、测试数据集, 从而无法从实验的角度提供 HyBN 方法与这两类方法的比较。

举例说明如下, 如图 4所示的系统入侵过程中, 如果地址探测、端口扫描、获取口令文件、口令破解和登陆系统 5个步骤中, 攻击者为使得系统安全状态转移到 SL (L=1, …, 5), 以此可以有 3, 4, 2, 3, 1种攻击方式可供选择, 如图 5所示, 则攻击者可选择使用 3 ×4 ×2 ×3个攻击场景中的任意一个场景, Qin [13]的攻击树匹配方法需要对这 72个入侵场景进行逐一匹配, Wang [14] 的方法则如图 6所示, 分为 5个阶段进行预测, 整个过程中有 3 +4 +2 +3 = 12种选择, 相对于 Qin [13] 的方法具有了很大的改进。而对 HyBN方法来说, 只需要判断处于 5个安全状态中的哪一个即可, 如图 4所示, 推理的结果更为简单, 由于安全状态迁移在时间上的不可逆性, 复杂度为 4 +3 +2 +1 =10。

《图 5》

图 5 入侵过程的场景关联图

Fig.5 Intrusion scenario by correlating alerts

《图 6》

图 6 入侵过程的队列图

Fig.6 Queue for intrusion process

定理 3 设入侵过程中系统共有 m个安全状态, 分别为 S1, S2, …, Sm, 可获得状态 Sl的攻击行为集合为 aj, 则该入侵过程可以选择个攻击场景, 队列图方法中共有种可能的预测结果, 而混合式贝叶斯网络中共有l可能的预测结果。其中 al 是集合 al的模, 表示其中攻击行为的数目。

为了讨论和分析的方便, 在定理 3中假设集合 ai中都有相同数量的攻击, 则可以得出如下推论 :

推论 1 设基于攻击者能力的入侵模型中共有 m个中间状态, 分别为 S1, S2, …, Sm, 可获得状态 Sl的攻击行为集合为 al, 又设 |al| =n, 即集合 al 中都有相同数量的攻击, 则共有 nm 个可能的攻击场景, 而使用队列图需要 nm次预测, 使用混合式贝叶斯网络需要次预测。

假设入侵过程中有 5个攻击步骤, 即 m =5;在具体的情况下, 每个步骤可以有多种攻击方式, 在实际情形中, 还可以通过变换源地址而形成新的警报信号, 从而攻击手段 n可以有多种选择, 通常会较大。图 7给出了 3种算法随 n从 1增大到 6时匹配空间增长的情况, 通过对比, 很容易看出, 在 m固定时, Qin [13] 的攻击树匹配方法匹配的次数与攻击场景数相等, 随着 n的增长而呈 O( n5 )增长 ;Wang [14] 的队列图匹配方法随 n呈线形增长;而 HyBN方法不因为 n的增长而变化。同理, 由推论 1可知, 若固定 n, 则 Qin [13]的攻击树匹配方法随着 m的增长而呈指数增长 ;Wang [14] 的队列图匹配方法和 HyBN方法随 m呈线形增长。这和第 4节实验提供的数据相吻合。

《图 7》

图 7 m = 5时 3种方法的复杂度比较

Fig.7 Complexities of three methods with m = 5

《6 结语》

6 结语

为给反应式容侵系统提供响应依据, 研究适用于容侵系统的入侵预测方法。采用基于攻击者能力的入侵模型, 将入侵描述为攻击者能力不断提高、系统安全状态不断下降的过程, 有利于为容侵系统提供触发引擎 ;提出了构建该入侵模型的方法, 并给出了该构建方法是可行性的理论证明。在入侵模型的基础上, 提出了一种混合式贝叶斯网络 ( HyBN)模型及相应的联合概率分布计算方法;在相关信度更新算法的支持下, 实验证实了所提出算法的可行性, 分析表明了该算法具有大大低于同类工作的时间复杂度。

《致谢》

致谢 

感谢博士后合作导师顾冠群院士、罗军舟教授及实验室研究生在论文完成阶段的帮助, 感谢解放军信息工程大学电子技术学院郭渊博博士在入侵模型方面提供的启发。