摘 要 在机安全领域,特别是安全领域,对计算机系统进行脆弱性检测十分重要,其最终目的就是要指导系统管理员在“提供服务”和“保证安全”这两者之间找到平衡。本文首先介绍了基于隐马尔可夫模型(HMM)的
入侵检测系统(IDS)框架,然后建立了一个计算机系统运行状况的隐马尔可夫模型,最后通过实验论述了该系统的工作过程。通过仅仅考虑基于攻击域知识的特权流事件来缩短建模时间并提高性能,从而使系统更加高效。实验表明,用这种方法建模的系统在不影响检测率的情况下,比传统的用所有数据建模大大地节省了模型训练的时间,降低了误报率。因此,适合用于在计算机系统上进行实时检测。
入侵检测; 隐马尔可夫模型(HMM); 特权流; 系统安全; 网络安全; 脆弱性
1 引言 计算机网络的出现使得独立的计算机能够相互进行通信,提高了工作效率。 然而,人们在享受网络带来的种种方便、快捷服务的同时,也不得不面临来自网络的种种威胁——
黑客入侵、计算机病毒和拒绝服务攻击等等。 早在主机终端时代,
黑客攻击就已经出现,当时
黑客的主要攻击对象还主要是针对单个主机。 而计算机病毒也不是网络出现后的新鲜产物,在独立的PC 时代它已经开始通过各种途径传播。 然而网络为上面两种攻击提供了更多的攻击对象、更新的攻击方式,从而也使得它们危害性更大。近年来,随着互联网的迅速,
黑客、病毒攻击事件越来越多。 按照检测方法,
入侵检测可以分为两类:误用检测和异常检测。 (1)误用检测:收集非正常操作的行为特征,建立相关的特征库,当监测的用户或系统行为与库中的记录相匹配时,系统就认为这种行为是
入侵。 (2)异常检测:首先正常操作应该具有的特征(用户轮廓),当用户活动与正常行为有重大偏离时即被认为是
入侵。误用检测需要已知
入侵的行为模式,所以不能检测未知的
入侵。异常检测则可以检测未知的
入侵。基于异常检测的
入侵检测首先要构建用户正常行为的统计模型,然后将当前行为与正常行为特征相比较来检测
入侵。 文章提出了基于隐马尔可夫模型(HMM)的
入侵检测系统(IDS),它是一种异常检测技术。因此,不仅可以检测已知的
入侵,而且还可以检测未知的
入侵。更重要的是,它通过仅仅考虑基于攻击域知识的特权流事件来大大缩短建模时间并提高检测性能。因此,更加适合用于在计算机系统上进行实时检测。
2 计算机脆弱性
在研究计算机脆弱性的过程中,对于“计算机脆弱性”(computer vulnerability) 这个词组的精确定义争论很大,下面是众多被广泛认可的定义中的两个。 1) 1996 年Bishop 和Bailey 给出的关于“计算机脆弱性”的定义
[1]: “计算机系统是由一系列描述构成计算机系统的实体的当前配置的状态(states) 组成,系统通过应用状态变换( state transitions) (即改变系统状态) 实现计算。 从给定的初始状态使用一组状态变换可以到达的所有状态最终分为由安全策略定义的两类状态: 已授权的(authorized) 或者未授权的( unauthorized) 。 ” “脆弱(vulnerable) 状态是指能够使用已授权的状态变换到达未授权状态的已授权状态。 受损(compromised) 状态是指通过上述方法到达的状态。攻击(attack) 是指以受损状态结束的已授权状态变换的顺序。 由定义可得,攻击开始于脆弱状态。 ” “脆弱性(vulnerability) 是指脆弱状态区别于非脆弱状态的特征。广义地讲,脆弱性可以是很多脆弱状态的特征;狭义地讲,脆弱性可以只是一个脆弱状态的特征……” 2) Longley D.,Shain M.,Caelli W.对于“计算机脆弱性”的解释是这样的
[2]: (1) 在风险管理领域中,存在于自动化系统安全过程、管理控制、内部控制等事件中的,能够被渗透以获取对信息的未授权访问或者扰乱关键步骤的弱点。 (2) 在风险管理领域中,存在于物理布局、组织、过程、人事、管理、
硬件或软件中的,能够被渗透以对自动数据处理(ADP) 系统或行为造成损害的弱点。 脆弱性的存在本身并不造成损害。 脆弱性仅仅是可能让ADP 系统或行为在攻击中受损的一个或者一组条件。 (3) 在风险管理领域中,任何存在于系统中的弱点和缺陷。 攻击或者有害事件,或者危险主体可以用于实施攻击的机会。 (4) 在信息安全领域中,被评价目标所具有的能够被渗透以克服对策的属性或者安全弱点。 从上面的两个定义我们得出一个计算机脆弱性的简单定义:计算机脆弱性是系统的一组特性,恶意的主体(攻击者或者攻击程序) 能够利用这组特性,通过已授权的手段和方式获取对资源的未授权访问,或者对系统造成损害。
3 系统结构
基于隐马尔可夫模型的
入侵检测系统主要有审计数据预处理器、过滤器和基于HMM 的分类器三部分组成,如图1 所示。

图1 基于HMM的
入侵检测系统 审计数据预处理器负责将原始审计记录转变为分析引擎可以接受的标准格式。过滤器负责决定哪些审计事件是适合系统的、哪些审计数据字段对系统分析来说是充分有用的。基于HMM 的分类器负责对过滤后的数据进行分类,产生检测结果。 整个系统的工作过程分为两个阶段:训练阶段和检测阶段。在训练阶段,根据已知的正常审计数据和异常审计数据来训练分类器,并得出相应的参数。在检测阶段,预处理器将审计数据转换成标准格式,再通过过滤器得到充分有用的数据,然后通过基于HMM 的分类器进行分类,从而区分出正常行为和
入侵行为。
4 隐马尔可夫模型
马尔可夫模型是一个离散时域有限状态自动机,隐马尔可夫模型(HMM)是指这一马尔可夫模型的内部状态外界不可见,外界只能看到各个时刻的输出值。
[4]隐马尔可夫模型本质上是一种双重随机过程有限状态自动机,其中的双重随机过程是指满足Markov分布的状态转换Markov 链以及每一状态的观察输出概率密度函数,共两个随机过程。 设X
i是一个随机变量,它表示时刻t 系统的状态,其中t=0,1,2,…。用HMM 建模系统正常行为特征需做出如下两个假设:P(X
i+1=i
t+1|X
/t=i
t,X
i-1=i
t-1,…,x
0=i
0)=P(X
i+1=i
t+1|X
t=i
t (1)P(X
i+1=i
t+1|X
t=i
t)=P(X
i+1=j|X
t=i)=P
ij (2) 对每个t 和所有的状态都成立。其中P
ij表示系统在时刻t处于状态的条件下,在时刻t+1处于状态j的概率。等式(1)说明在时刻t+1 系统状态的概率分布只与时刻t 时的状态有关,而与时刻t以前的状态无关。等式(2)说明由时刻t 到时刻t+1的状态转移与时间无关。 如果系统有有限数目的状态:1,2…,s,则HMM可以用转移概率矩阵P和初始概率分布Q来定义:

(3)

(4) 其中q
i是系统在时刻0时处于状态i的概率,并且:

(5) 给定状态序列X
t-k,...,X
t在时刻t-k,...,t出现的联合概率表示为:P(X
t-k,…,X
t)=

(6) 训练数据提供了在时刻t=0,1,...N-1时刻状态X
0,X
1,X
2,...X
N-1的观察值,HMM的转移概率矩阵和初始概率分布通过学习训练数据来得到。由训练数据计算转移概率矩阵和初始概率分布如下:P
ij=N
ij/N
i (7) q
i=N
i/N (8) 其中N
ij表示X
t在状态i、X
t+1在状态j的观察值对(X
t,X
t+1)的数目,N
t表示X
t在状态i、X
t+1在任何状态的观察值对(X
t,X
t+1)的数目,N
i表示X
t在状态i的数目,N表示观察值总数。
5 正常行为建模
为了检测
入侵,通常使用两类数据来捕捉机和中的行为:网络通信数据和审计踪迹数据(审计数据)。在研究中,采用的是SUn 微系统公司开发的Solsris作系统的审计数据,重点考虑的是攻击主机的
入侵。Solsris操作系统的基本安全模块(BSM)有大约284 个不同类型的审计事件。对每种类型的事件,BSM 审计记录包括如下信息:事件类型、用户ID、组ID、进程ID、会话ID、访问的系统对象等。在研究中,仅仅抽取了事件类型信息,这是审计事件的最关键的特征之一。另外,通过审计事件的连续流来捕捉用户行为,每种审计事件由事件类型来表征。 主机的正常行为和
入侵行为都是由计算机操作序列组成的,这些操作序列引发了审计事件序列。因此,如果把审计事件发生的时间作为HMM 的离散时间点,把各种审计事件看作主机的可能状态,那么主机的行为就可以用隐马尔可夫模型来描述。为了检测
入侵,需要构造主机的长期正常行为特征,将最近过去的主机行为与长期正常行为特征相比较来检测重要的区别。基于训练数据集合中的正常审计事件流,用公式(7)和(8)计算转移概率矩阵P 和初始概率分布Q 来构造正常行为的隐马尔可夫模型,由这个模型来表征主机正常行为的特征。 用长度为N的滑动窗口对审计事件的连续流进行扫描,以观察当前时间t 的过去N个审计事件:E
t-N+1,…,E
t其中E表示事件。假设N=15,则对时刻t在窗口中的审计事件E
t-14,…,E
t通过观察每个审计事件的类型来获得出现在窗口状态X
t-14,…,X
t序列,其中X
t是审计事件E
i对应的状态(审计事件类型)。用P 和Q 计算状态序列 X
t-14,…,X
t在正常使情况下出现的概率(即正常行为特征的HMM支持状态序列X
t-14,…,X
t的概率)如下:P(X
t-14, …,X
t)=

(9) 用HMM 来构造一个分类器,由分类器来区分正常行为和
入侵行为。假设给定一个阈值 μ,用公式(6)求得某状态序列的概率记为 η",则分类器可定义:如果 η≥μ ,该状态序列是正常的,否则是
入侵的。
6 实验仿真及结果分析
6.1 阈值 μ 的确定
评价
入侵检测系统的检测性能主要有两个指标:检测率和误报率。检测率是被检测到的攻击占攻击总数的百分比。误报率是系统正常数据中误认为是攻击的百分比。预期的
入侵检测系统必须有高的
入侵检测率和低的误报率。 阈值 μ 的大小直接决定了
入侵检测系统的检测性能。如果增大阈值,则
入侵检测率将提高,但误报率也会提高。相反,如果减小阈值,则误报率将降低,但
入侵检测率也会降低。所以,选择阈值时,应该在
入侵检测率和误报率之间折衷考虑。
6.2 结果分析
实验中,用c++语言实现了隐马尔可夫模型的学习算法和推导算法。分别用所有数据和特权变化数据两种方法来建模主机正常行为的隐马尔可夫模型,并比较哪种方法能够产生更好的性能。为测试两种建模方法的运行时间性能,程序执行了30次,用time 命令记录了shell 执行结果。表1 列出了实验的结果。表1 运行时间性能比较
建模方法 状态数目 序列长度 序列数目 时间戳 |
5 20 767194 4小时58分所有数据 15 30 767187 6小时31分 |
5 20 5943 25.8秒特权变化数据 15 30 5805 55.9秒 |
为了比较两种建模方法的性能,对系统进行了20 次攻击。在
入侵检测率为100%的情况下,分别取不同的状态数目和序列长度并调整阈值来得到其误报率。表2 是其中具有代表性的部分结果。从表2可以看出,在实验中,用特权流变化的数据建模时,当状态数目为10、状态序列长度为30 时,其性能是最好的。而且,这种情况下的误报率(0.599%)远低于用所有数据建模时性能最好的误报率(1.5978%)。表2 检测性能比较
建模方法 状态数目 序列长度 HMM 阀值 务报率 |
5 20 9.86E-54.1 6.698%特权变化数据 15 25 1.05E-64.9 2.4001% 10 30 7.98E-82.1 0.599% |
5 20 1.12E-91.8 4.198%所有数据 10 20 3.46E-94.0 1.5978% 15 30 9.75E-120.1 11.987% |
7 结论
计算机系统的脆弱性检测经历了从手动检测到自动检测的阶段,目前正在由局部检测向整体检测,由基于规则的检测方法向基于模型的检测方法发展,由单机检测向分布式检测发展
[7-9 ] 。 在计算机安全应用领域,常常要求对一个计算机网络进行脆弱性评估。 要使评估结果完整准确,必须考虑到计算机网络不是一个独立的、静态的系统,而是一个具有分布、动态特点的系统。 不仅要考虑其空间的整体性,也要考虑其时间的持续性。 保证网络系统的安全,不是保证某一主机一时的安全,而是要保证整个系统长期的安全。 由于计算机系统的脆弱性存在,本文提出了基于隐马尔可夫模型的脆弱性
入侵检测系统,并比较了用所有数据和用特权变化的数据两种建模方法的性能。实验表明,用特权流变化的数据建模与传统的用所有数据建模相比,不仅误报率更低,而且大大节省了训练时间。随着训练数据的增加,用特权流变化的数据建模将表现出更好的性能,大大降低了计算开销。更加适合用于在计算机系统上进行实时检测。
1 Bishop M. ,Bailey D. . A critical analysis of vulnerability taxonomies. Department of Computer Science , University of California at Davis : Technical Report CSE296211 , 19962 Longley D. , Shain M. , Caelli W. . Information Security :Dictionary of Concepts , Standards and Terms. New York :Macmillan , 19923 Beizer B. . Software Testing Techniques. 2nd edition. International Thomson Computer Press , 19904 卢坚,陈毅松,孙正兴等。基于隐马尔可夫的音频自动分类[J]。软件学报,2002;13(8)5 Baldwin R. W. . Kuang : Rulebased security checking. Programming Systems Research Group , Lab for Computer Science , MIT : Technical Report , 19946 Zerkle D. , Levitt K. , Net Kuang : A multi host configuration vulnerability checker. In : Proceedings of the 6th USENIX Security Symposium , San Jose , CA , 19967 Humphries , Jeffrey W. et al . . Secure mobile agents for network vulnerability scanning. In : Proceedings of 2000 IEEE Workshop on Information Assurance and Security , West Point ,NY, 2000 , 19~258 Qu G. et al . . A framework for network vulnerability analysis. In : Proceedings of IASTED International Conference Communications , Internet and Information Technology (CIIT 2002) ,St . Thoams , Virgin Islands , 2002 , 289~2989 Hariri S. et al . . Vulnerability analysis of faults/ attacks in network centric systems. In :Proceedings of the ISCA 16th International Conference on Parallel and Distributed Computing Systems ( PDCS 2003) , 2003 , 256~261