(计算机应用技术专业论文)隐马尔可夫模型系统调用序列异常检测研究.pdf_第1页
(计算机应用技术专业论文)隐马尔可夫模型系统调用序列异常检测研究.pdf_第2页
(计算机应用技术专业论文)隐马尔可夫模型系统调用序列异常检测研究.pdf_第3页
(计算机应用技术专业论文)隐马尔可夫模型系统调用序列异常检测研究.pdf_第4页
(计算机应用技术专业论文)隐马尔可夫模型系统调用序列异常检测研究.pdf_第5页
已阅读5页,还剩73页未读 继续免费阅读

(计算机应用技术专业论文)隐马尔可夫模型系统调用序列异常检测研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

y7 8 8 5 8 3 太驻理工大学硕士研究生学位论文 隐马尔可夫模型系统调用序列异常检测研究 摘要 基予主祝系统溪耀序囊兹入侵捡灞技术,是针对主瓿系统 调用数据进行监测的一种安全技术。由于主机系统调用序列反 映了系统逡孩豹行必黪征,有利予对于系线窦身特征麓提取和 针对系统自身的监测,从而可以不考虑用户差别,从系统自身 军亍为的合法性和破坏性上鉴别入侵行为,蠢效地控毒l 秘监管特 权程序的使用,辨别滥用职权瞧发生。所以,开展基于主机系 统调用序列的入侵检测技术的研究是非常有意义和十分必要 的。 本文从入侵检测系统的基本概念着手,对入侵检测的基本 模型、入侵检测酶分类戳及天使捡i 霁l 蘸检溅方法佟了详缓静分 绍。通过对基于主机系统调用序列的入侵检测系统模型的研究, 罴曩隐马尔可夫模黧( h i d d e nm a r k o vm o d e l s ,h m m ) 静祝器学 习方法对程序行为进行学习,从而达到检测入侵的目的。它具 有以下特点:检测糖度高、特铥痒小、可以用较少的训练数据 得到近似完备的正常模式库。 但是,隐m a r k o v 模型( 离散 m m ) 的参数估计闯题,是 l 太原理工人学硕十研究生学位论文 h m m 应用的关键问题。经典的b a u m w e l c h 算法是基于最陡梯 度下降的局部优化算法,对初始条件具有较高的依赖性并且容 易陷入局部最优解中。如果初始模型选取不当,解的质量有可 能很差。为了进一步提高模型训练的有效性,本文提出了一种 基于遗传算法的模型训练方法,与已有的方法相比,解决了对 初始值敏感的问题并且具有更高稳定性和准确性,因此是一 种很有实用价值的新方法。 关键词:入侵检测,异常检测,系统调用,隐马尔可夫模型 遗传算法 i i 太艨理工大学硕士研究生掌往论文 r e s e a r c h0 na n o m 随工,yd e t e c t i o nf o r s y s t e mc a l ls e q u e n c e sb a s e do nh m m a b s t r a c t t h et e c h n i q u eo fi n t r u s i o nd e t e c t i o nb a s e do ns e q u e n c eo fh o s t s y s t e mc a l lm a i n l yf o c u s e do nt h e d a t as e to fh o s ts y s t e mc a l l , w h i c hi st h ek e m e lf u n c t i o no fa no p e r a t i n gs y s t e m a st h e c h a r a c t e ro fk e r n e lo fo p e r a t i n gs y s t e m ,s e q u e n c eo fs y s t e mc a l lc a n b eu s e dt od e t e c tt h eb e h a v i o ro fs y s t e mw i t h o u t c a r eo f d i f f e r e n t i a t i o no fu s e r , a n dc a nb em o r ee f f e c t i v ei nc o n t r o l l i n gt h e u s a g eo fp r i v i l e g ep r o g r a ma n di np r e v e n t i n ga b u s i n g t h e r e f o r e , r e s e a r c h i n gt h et e c h n i q u eo f i n t r u s i o nd e t e c t i o nb a s e do ns e q u e n c e o fh o s ts y s t e mc a l li sv e r ys i g n i f i c a n ta n dn e c e s s a r y t h ed i s s e r t a t i o ni n t r o d u c e st h eb a s i cc o n c e p t so fi n t r u s i o n d e t e c t i o ns y s t e m ,a n ds t u d i e si ti nt h eg e n e r a lm o d e l ,m e t h o do f c l a s s i f i c a t i o na n dd e t e c t i o n 。t h r o u g ht h es t u d yo fb a s i cc o n s t r u c t i o n o fi n t r u s i o nd e t e c t i o ns y s t e mo ns e q u e n c eo fh o s ts y s t e mc a l l ,w e i i l 太原理工大学硕士研究生学位论文 s e l e c th i d d e nm a r k o vm o d e l s ,am e t h o dw h i c hi sam a c h i n i n g l e a r n i n g ,t os t u d yt h ea c t i v i t i e so fp r o g r a m s t h ea d v a n t a g e so ft h e f r a m ea r ea sf o l l o w s :h i g h e ra c c u r a c y , as m a l l e rp r o f i l ea n da n a p p r o x i m a t e l yc o m p l e t en o r m a lp r o f i l ee x t r a c t e df r o ml e s st r a i n i n g d a t a h o w e v e r ,t h et r a i n i n g o fh m mi st h e k e yp r o b l e m f o r a p p l i c a t i o n b e c a u s et h ea p p l i c a t i o no fc o n v e n t i o n a lb a u m w e l c h a l g o r i t h m t e n d st oa r r i v ea t al o c a l o p t i m i z a t i o n ,ag l o b a l o p t i m i z a t i o na l g o r i t h mb a s e do ng e n e t i ca l g o r i t h mi sp r o p o s e d e x p e r i m e n t a lr e s u l t ss h o wt h a t o u ra l g o r i t h mi sm o r ea c c u r a t e , s t a b l ea n dl e s s d e p e n d e n t o ni n i t i a lv a l u e t h a nt h e c l a s s i c a l m e t h o d s k e y w o r d s :i n t r u s i o nd e t e c t i o n ,a n o m a l yd e t e c t i o n ,s y s t e m c a l l s , h i d d e nm a r k o vm o d e l s ,g e n e t i ca l g o r i t h m i v 太原理工大学硕士研究生学位论文 1 1 课题背景 第一章绪论 随着科学技术的发展和网络文化的普及,系统安全、网络入侵和黑客 技术成为热门话题。信息技术在政治、经济、文化、军事和日常生活给人 们带来方便和高效的同时,对信息技术的安全保障提出了更为紧迫的要 求。而实践证明,构筑一个安全的系统是相当困难的:首先,应用软件、 操作系统变得越来越复杂,使得软件设计者在设计阶段无法预料到程序运 行时的系统状态,更无法精确地预测在不同系统状态下会发生什么结果, 所以,系统往往存在漏洞。另外,随着互联网需求的日益增长,要将来自 系统外部的服务请求完全隔离是不可能的。第三,现有的网络技术本身存 在不安全性,如t c p i p 协议本身就有许多不完善之处。黑客正是利用这 些漏洞和不完善实旋攻击和入侵的,所以,绝对安全的计算机是不存在的, 绝对安全的网络也是不存在的。 黄绞鹣安全技术覆戆麓密、砉诊认证、访趣麓麓、转交蘧、安全爨壹 等,在信息安全、系统维护等方面发挥了重要的作用。但是,传统的安全 技术自身襻在许多问题军甜不足,例如:身份认证技术不能够抵制脆弱性口 令、字冀致澎、特洛伊寒弩、掰络溪搽器爨及电磁辏葑等袭壹零菠;黯予 访问控制,入侵者可以利用脆弱性程_ l 学或系统漏洞绕过访问控制,或者提 升用户权限,或者非法该写文件等;作为主要的安全设备的防火墙,也不 髓够有效辩正来自内部瓣竣击。蘧蓑慧客技术窝入餐学灸懿霜辫秀异,传 统安全技术的静态性也难以满足人们对安全技术自适应的要求。 重 太原理工大学硕士研究生学位论文 入侵检测作为新型的信息安全技术,与传统安全技术相比,在动态性、 逶应蠖、实时注、餐缒佬、主秀瞧、垒届捺镶瞧麓方瑟龚凄了更毫夔要求。 入侵检测技术通过安全检测、监控手段,可阻及时发现系统中存在的安全 漏洞或恶意攻击,利用系统内的多种信息源,结合多种分析方法,基于入 侵者戆攻壹行为与合法鬟户兹歪露行受骞爨嚣黪不嚣,实缓瓣入侵行为戆 检测和告警,同时对入侵者的跟踪定位,进行行为取证。入侵检测工具掇 供了一种监控网络和系统攻击的渤态和实时的安全机制。由于与知识工 程、入工警憝、数攒挖握、模式设粥、模凝臻论、毒孛经潮终、逶佞箕法等 学科的结合,入侵检测技术展示了强大的泛化能力和适应能力,在预测入 侵行为、鉴别新型的攻击方法、识别攻击变种镑方面表现出卓越的性能。 1 2 入侵检测技术简介 1 2 。1 悖幺是入侵梭测系统 入侵检测系统仝称为i n t r u s i o nd e t e c t i o ns y s t e m ,自1 9 8 0 年j a m e s p a n d e r s o n 提出“入侵检测”这个概念以来,融经经历了2 0 多年的发腿 历疆。 i c s a ( i n t e r n a t i o n a lc o m p u t e rs e c u r i t ya s s o c i a t i o n ,国家计算机安全协 会) 对入侵检测系绕的定义是:通过对计算机网络或计算机系统中的若于 关键点收集信惠并对其进行分褥,强发现圈络域系统中是秀肖违反安全策 略的行为和遭到袭击的迹象i ”。 入侵检测可以弥毒 防火墙的不足,为网络掇供实时的入侵检测及采取 相应的防护手段,斑记录证据、鞭踪入侵、恹复或断开网络连接等。 入侵检测系统( i d s ) 主要通过以下几种活动来完成任务:监视、分 析嗣户及系统活动;对系统配置和弱点进行审计;识别与基知的攻击模式 2 太鬏矮工夫学颈士萋舅究生学位论文 匹配的活动;对异常活动模式进行统计分析;评估嫩要系统和数据文件的 完整性;对操作系统进行审计跟踪管瑕,并识别用户违反安全策略的行为 既 1 2 2 入侵檬测系统的分类 根据着隈点不同,对入侵检测系统宥不同的分炎方法f 3 l 【“。 1 系统可以采用不问的检测方法: 误用捻测( s i g n a t u r e * b a s e d ) : 误用稔测采用类似予病毒检测的方法,。对各幂牵溅知的攻击方法进行特 征提取,建立攻击模式库,通过实际的脏测数据与模式库的比较来检测入 侵嚣隽。该方法是强兹襄趱入侵检测系统广泛采用瓣捡测模型,敷采用 模式匹配的算法,其特点楚原理简单,系统生成方便。缺点是难良对所有 的攻击方法进行特征编码,难以适应变化多端的攻游的变种,需簇不断升 级,系统缝轳舄责。 异常检测( a n o m a l y ,b a s e d ) : 假定所有入侵行为都是与正常行为不同的,遮样,如果建立系统正常 嚣免麓软迹,臻么理论主爵爨把囊寄与正零魏逐不鳟麓系统麸淼筏淹可聚 企图。忿方法采用数据挖箍、机器学溺簿智能方法箍瑾事件信息,发掘数 据背后的知识,建立特德属性,识别拳件类型,旨柱克服误用梭测的缺点。 蔌点是羧粼模鳘较舞复杂,系统生藏、诞试,修菠都不方便。 对魄逮糯种检测方法可l 蔓发现,髯常检测难予定量分析,这种检溅方 式有- - 7 十固有有不确定憔。与此不同,误用检测会遵循定义好的模式,能 逶过对审诗记暴巷塞徽攘式莲配采捻溅,毽役哥稔渊已塞魏入授方式。瑟 以这两类梭测机制都不宪美。就具体的检测方法采说,现在已经有了很多 入侵检测方法,但任何种方法都商它的局限性,都不能解决所有问题。 3 太原理工大学硕士研究生学位论文 因而对于入侵检测方法的研究仍然是当前入侵检测研究的一个重点。 在条件允许的情况下把这两种方法结合起来会达到更好的效果。 2 系统也可以针对不同的对象来检测: 网络入侵检测: 针对网络中传输的数据报进行检测,主要是检测数据报的报文头和前 面的数据。 主机入侵检测: 针对主机的日志记录进行检测,主机上的各种日志记录( 例如登录日 志、应用程序日志等) 反映了用户和进程的行为,通过检测日志来发现入 侵。 1 3 入侵检测系统的发展趋势 在网络技术发展的同时,入侵技术也在更新,一些地下组织已经将如 何绕过i d s 或攻击i d s 作为研究重点。交换技术的发展以及通过加密信道的 数据通信使通过共享网段侦听的网络数据采集方法显得不足,而大通信量 对数据分析也提出了新的要求。现在入侵技术也有了新的发展趋势和方向 6 】: ( 1 ) 分布式入侵检测与通用入侵检测架构 传统的i d s 局限于单一的主机或网络架构,对异构系统及大规模的网 络检测明显不足,不同的i d s 系统之间不能协同工作。为解决这一问题, 需要发展分布式入侵检测技术与通用入侵检测架构。 ( 2 ) 智能的入侵检测 入侵方法越来越多样化与综合化,尽管已经有智能体、神经网络与遗 传算法在入侵检测领域应用研究,但这只是一些尝试性的研究工作,仍需 对智能化的i d s j j n 以进一步的研究以解决其自学习与自适应能力。 4 太原理工大学硕士研究生学位论文 ( 3 ) 与其他网络安全技术相结合 在入侵检测早期发展中,它常被当作是一种独立的技术,但现在入侵 检测系统和网络管理的综合使用变得越来越必要了。单一的技术很难构筑 一道强有力的安全防线,这就需要和其他安全技术共同组成更完备的安全 保障系统,如结合防火墙、安全电子交易s e t 等新的网络安全与电子商务 技术,提供完整的网络安全保障。 1 4 基于h m m 的免疫系统 1 4 1 短序列模型 1 9 9 6 年,s t e p h a n i ef o r r e s t 等人在文章as e n s e o fs e l ff o ru n i xp r o c e s s e s 中【7 ,提出了用对当前系统中的特权进程的系统调用进行实时检测和分析 的方法来对入侵行为迸行检测:因为进程的行为可以用它发出的系统调用 的序列来描述,对应于正常行为和异常行为的系统调用序列特性是不同 的。 f o r r e s t 等人用一个可观测的短的系统调用序列来区分正常行为和异常 行为,在系统中首先建立一个所有的正常系统调用序列的表,然后将被监 测进程的系统调用序列和表中的各个记录进行匹配,如果匹配的比例较 大,则认为该进程进行的是正常行为,否则认为是异常行为,即有安全方 面的问题。 具体匹配的比例按照所定义的失配率来计算,可以通过和预先设定的 一个阈值相比较来判断进程是否正常。这种方法的计算量比较小,算法容 易实现,检测准确度比较高。但同时也有如下局限: 它只是记录正常的调用序列,而没有考虑序列的统计特性,这对检 测的准确度有一定的影响:系统中短序列调用表的建立和查询都需要占 5 太原理工大学硕士研究生学位论文 用较多的系统资源;短序列的长度很难确定,太短导致检测结果不准确 太长剿会占属过多瓣系绞资源;短序列模式疼豢难骰裂嶷游更毅。 1 4 2m a r k o v 模型 2 0 0 0 年,n o n g y e 提赛一个m a r k o v 模墅采撬述系统进裰发出豹正鬻鹣 系统调用序y ) j t ,即把系统调用序列近似看作一个m a r k o v 链。因为m a r k o v 链的特性可以用一步状态转移檄鬻矩阵来描述,因而用这个矩阵代替了艇 正常系统调蠲彦麓袭,减小了存麓薰,氇佼褥模型更翔精确。文献f 9 】孛 | 王 有关于系统调用序列的m a r k o v 模烈的描述。 篡检测方法与c 7 中所述基本捆同,仍然聚用失配率作为判别当前进 程是黉器常豹标志,掰不同静是农失配率静定义帮计算方法主矮狡态转移 概率( 而不是短序列表) 来刻画系统调用的统计特性。 该模型也有一怒的局限性:模型本身比较糨糙:检测算法的计冀 量跷较大。 1 4 3 菇他研究 2 0 0 1 - t ! ,w e n j i a nh o 等在文献f l o 】中,通过对免疫系统豹研究,提溉 了一个新的网络入侵检测系统架构。 2 0 0 2 年,q i a o ,y 等在文献【l l 】中提出了一个隐马衣霹夫模型( h m m ) 来描逑系统进程发出的正常的系统调用序列,从而建立稻威的检测方法。 1 5 课题研究的意义和组线结构安排 随着i n t e m e t 的发展,其安全性问题也闷渐熏要。作为网络安全体系结 构和完整的安全解决方案的重要鳃成部分,入侵检测在安全技术中起到了 6 太原理工火学硕士研究生学位论文 举足轻重的作用。 溺夕 在8 0 年饯藏挺窭了入缀捡溅豹壤念,入 壹硷溅产黠篷枣最初熬袋 用简革模式匹配方法发展到人工智能方法的应用。国内基本上从9 0 年代末 才进行这方面的研究,随着网络技术和安全技术在国内的迅猛发展,对于 入缓稳溅及其相关按本豹骚究纛卷重要豹意义。 熬于主机系统调用序列的入侵检测技术,是针对主机系统调用数掘集 进行媳测的一种网络安全技术。对主机系统调用的监测可以有效地控制和 整警黪投程事錾臻怒,辨裂瀵溺职毅筑发生。对予零零系绫鼹弱经或蠹翔 程净漏洞,实施类似缓冲区溢出获取系统特权进行恶意攻击的系统检测, 有着熊他检测系统不可比拟的优势。主机系统调用入侵检测技术的研究与 实瑗,嚣对荛冀 叁蒺予痔裂懿豫溅鼓末,铡皴蓥予窝户鑫令痔列豹入後羧 测提供了可以借鉴的方法。所以,开展基于主机系统调用序列的入侵检测 技术的研究是非常有意义和十分必要的。 本文主要磅突了基于h m m 豹皇礁冥霉硷测技寒,分攒了h 滋瑗存在瓣 一些缺点,将遗传算法( g e n e t i ca l g o r i t h m ,g a ) 引入了h m m 的训练过 程中,提出了一种新的异常检测方法,即g a h m m 方法。 辍下是本文懿缭籀安簿: 论文的第一章日 入了入侵检测技术的由来,阐述了研究入侵检测技术 的现实意义,简要地介绍了有关入侵检测以及基于h m m 免疫系统的入侵 硷溅模鍪嚣基本穰念稻定义,簸焉穷绥了本漾麓斡臻究意义和文章毂缝缓 结构安排。 第= 章,分析了基于主机系统调用的异常入侵检测系统的基本原理, 以及鬻内岁 疆究魏狻,重点奔缓了蔻穆基于系绞谖溺懿入接检、溪l 模登。 籀三章,主要讲述了隐马尔可夫模型的数学基础。 第四章,阐述了基于隐马尔可夫模型的主机入侵检测系统的工作流 7 太原理工大学硕士研究生学彼论文 程,以及隐马尔可夫模型的优缺点。 繁聂章,针对隐舄尔爵夫模黧凌存在懿一藏获点,挺爨了改遂意觅 并进行实验仿真,分析实验结果,判断系统性能。 最后,对本文的工作进行了总结,提出了课题下一步的研究方向。 8 太原理工大学硕士研究生学位论文 第二章基于主孝a 系统调曩序列的入侵裣测模型 2 。1 系统烫用溉述 2 1 1 系统调用的熬本溉念 l i n u x 操 # 系统为了保迸系统不受一般羽户进程静摸豢,分为霜户态 和内核态。一个进程一般是在用户态下运行的,当进程需要访问系统资源, 如读筠文件、操作网络、创建遂程时,就必缀转换到内核态进行。丽这个 转换簸是通过系统调用进行豹。 每个系统调用都有一个定义好的数字,邈魑数字是用来构造这些系统 调用的。内核通过i n to x 8 0 中敷来管理这些系统调甩。这然系统调用的辩 虚的数字帮一些参数都在调用的时候送到菜黧寄存器里瑟。系统调用的数 字实际上是一个序列号,表示旗在系统的一个数组s y s 中的位 置。 _ c a l l _ t a b l e 2 1 2 系统调用和c 函数库的关系 窳际缡程中,编程太员可以逶蓬丞数瘁调翅系统谣趱。凑级编程氇霹 以直接采用o x 8 0 进入系统调用,而不必通过涵数库作为中介。如采是在 核心编程,也可以遇过i n to x 8 0 进入系统调用,此时不能使用函数库。因 为邈数瘁孛夔函数楚蠹棱访阕不戮戆。 貔们可以把用户状态、内核状态、库函数、系统调用、应用代码的关 系用图2 - 1 来表示。因为直接邋过进行系统调用很罕见,所以没有考虑这 9 太原理工大学硕士研究生学位论文 种情况。 用户态 核心态 f 应用代码i j | c 痒丞数| ) u 系统调用 圜2 1 系统调用与其它因素的荚系 f i g u r e2 - 1t h er e l a t i o n s h i po fs y s t e mc a l l sa n do t h e rf a c t o r s 2 1 3 袭统调用酌工作流程 首先库函数会将系统调用使用的参数存放在寄存器中。e a x 存放系统 壤蠲澎学。嚣为赁蠢系绞谣震都怒逶过0 x 8 0 串叛宠藏戆,妊须海系统溪 用序号作为传入以区别多个系统调用。e b x ,e c x ,e d x ,e s i 和e 蹦分别传送五 个真正的参数。 然嚣筏毒亍融缴瓣孛薮。因为中颤霞褥逡瓣获露户态送入凌孩态,爨 以参数通过寄存器传送。o x s o 中断对应的中断例程被称为s y s t e mc a l l h a n d i e r 。其工作是: 1 存髓大多数毒容器到肉棱堆棱中,这襻毒蠢器孛包含豹参数又梭存锉 到内核堆栈中,之后的系统调用服务例程( s y s t e mc a l ls e r v i c er o u t i n e ) 可以像一般c 函数那样使用堆栈来读取参数了: 2 筏行真曩三鹃系统调臻函数s y s e mc a l ls e r v i c er o u t i n e ,s y s t e mc a l l h a n d e r 在l i n u x 中是s y s t e m _ c a l l ( ) 函数,s y s t e m _ c a l l 判断 p tt r a c e s y s 标志是否设鼹。如果设置,则s y s t e m c a l l 会两次调用 】o 太原理工大学硕士研究生学位论文 s y s t e m _ t r a c e ,一次在就要执行s y s t e mc a l ls e r v i c er o u t i n e 之前,另一次 是在刚刚离开s y s t e mc a l ls e r v i c er o u t i n e 之后; 3 ) s y s t e m _ c a l l 会根据不同的放在e a x 的系统调用序号来调用不同的 s y s t e mc a l ls e r v i c er o u t i n e 。l i n u x 使用了一个系统调用表,其中按序号 保存了所有系统调用服务例程的起始地址。s y s t e mc a l l 中的语句c a l l + s y s t e mc a l l t a b l e ( o ,e a x ,4 ) 指明每个表项4 个字节,内核通过( 系统 调用表头+ 系统调用号4 ) 的方法得到相应系统调用服务例程的起始 地址,然后开始执行; 4 ) 通过r e t _ f r o m _ s y s _ c a l l ( ) 返回,回至n 用户态的库函数,返回值是通过c a x 传送的。 2 2 缓冲区溢出攻击的基本原理 缓冲区溢出攻击是由于系统、服务、应用程序中普遍存在的漏洞所引 发的,并被作为主要的攻击手段。存在缓冲区溢出隐患的主要原因是c 语 言对缓冲区和数组不做边界检测【1 2 i 。以u n i x 系统为例:u n i x 主要设计 语言是c 语言,而c 语言缺乏边界检测,不检查数组的越界访问,造成基 于堆栈攻击的必要条件。 u n i x 进程在内存中分为正文段、数据段和堆栈段。堆栈段用于为动 态变量分配空间和临时保存函数调用的参数和返回地址。动态分配是 u n i x 程序采用的主要方法,但它留下了栈溢出攻击的隐患。堆栈操作由 栈指针s 对旨示,为方便访问栈中数据,用帧指针f p ( i n t e lx 8 6 为b p 或e b p ) 指定栈内某单元,对帧中其他数据则以f p 为基址访问。 太原理工大举硕士研究生学位论文 程序: v o i df ( e h a r4 s t r ) c h a rb u f f e r 1 5 ; s t r c p y ( b u f f e r , s t r ) ; v o i dm a i n o c h a rt o n g s t f i n g 2 5 6 ; i n t j : 调用s t r c p y 0 前调用s t r c p y 0 詹 a r g cu s e r s t a c k s t r r e t t l r na d d r e s s s f p b u f f e r 1 5 】 h e 幻 a r g eu s e r s t a c k s t r c p y ( ) 写2 5 6 字 节,重写了邂回地 址、s m 替 b u f f e r 1 5 】 h e a p f o r ( i = 0 :i = 2 5 5 ;i + + ) l o n g s t r i n g f i | = a ; f ( 1 0 n g s t r i n g ) ; l 霉2 2 缓冲嚣溢出导致敷越器错误 f i g u r e 2 - 2e r r o r o f s e g m e n ts l o p p i n ga r o s e d b y o v e r f l o w 由于动态变量程运行中从栈中分配空间,蒋对它没有边界检查,则可 憝发垒三缓淬区溢窭,造成段越赛,翔霾2 2 示髑。在s t r c p y ( ) 魏行孵,耋1 b u f f e r 丌始的2 5 6 个字节被字符“a ”覆盖,溺数返回地址被覆盖为 0 x 4 1 4 1 4 1 4 1 ( o x 4 1 为“a ”的a s c i i 码) ,当函数返回时,将发生一个段越界 错读。 幽上可知,若精心安排,就w 操作函数返回地址,将邋回地址覆盖为 一个有效的可执行稷序的起始地址,以达到入侵目的。为了在函数返回时 褥到交互式s h e l l ,一般菰嚣“e x e c v e ( 两i r d s h ”, b i r g s h ”,n u l l ) ;”- 1 2 太原理工火学硕士研究生学位论文 2 3 基于系统调用序列的入侵检测模型基本原理 图2 - 3 程序系统调用示意图 f i g u r e2 - 3e x a m p l eo fs y s t e mc a l lo fap r o g r a m 由前面系统调用的有关知识,我们知道任何一个应用程序每一次运行 的生命周期中都将形成一个以时间先后为序的系统调用序列,而应用程序 根据其运行参数、运行环境的不同,所形成的以时间先后为序的系统调用 序列是不同的。对于特定的应用程序,假设可以穷尽所有可能出现的系统 调用序列的情况,则该应用程序将对应一个由系统调用构成的有向图,并 且该有向图可以表现出应用程序可能产生的所有的系统调用序列。如图2 - 3 示意。 图中以不同的数字代表不同的系统调用,每个节点对应程序的一个分 支点,图中的边表示分支节点之间的系统调用,图上至少有一个开始节点 和一个终止节点,程序系统调用图中的每条路径就可以对应一个可能的进 程执行路径,而系统调用跟踪就可以看作是进程执行路径边上的系统调用 序列。当然这样的图是假象的,由于系统功能的复杂性和用户行为的不确 】3 太原理工大学硕士研究生学位论文 定性,构建完整的脊向图几乎是不可能的。但媳,通过人工智能、神经网 络、数糖楚掇等方法,我褒可以有重点夔、毒代表佳豹棱建属帮蚕,并纛 用于入侵检测系统,在定的安众策略方针下,进行入侵检测。 对于入侵检测泉说,我们比较关心特权程序的系统调用序列,因为特 龊程黪戆 ! | | 耋震或误髑建系统具鸯爱大的酸嚣熊力。特攫疆澎魄一般懿痤燃 程序活动范围更大,权力更多,入侵者常常利用特权程序的漏洞,超越其 使用权限,实现对系统的非法操作,达到入侵的目的。 遴涟羲瑟毒关浚麦瓣赍绍,胃戳著裂,入经砻裁瑟系绞漏涸或程枣瀵 洞,改变当前用户的可执行范围,运行恶意的程序,达到入侵的目的。与 此同时,程序的执彳亍路径发生了质的改变,表现为系统调用序列与正常执 亍应麓程彦懿亭到瓣存在较大豹蓑舞,形藏较大垂冬渡动。姿然,针对主辍 的攻击方式变化多端,原理各异,如:利用成用程序漏洞恶意修改系统程 序,特洛伊木马等。但是,无论哪种攻击,都将改变程序正常的系统调用 袭露,斑魂疆痔垂鬻执孬葳形藏夔羟羚霆孛无法窭瑷豹鼹缀,提筷了嚣鞠 于正常行为的重要行为特征。 s t e p h a n i ef o r r e s t 最早论证了基于主机系统调用序列的入侵检测方法 夔可行褴。f o r r e s t l 7 1 4 3 黔1 在1 9 9 6 霉,阐述了戳藏然赛鹣免疫系统鸯骜景褥 建入侵检测系统的方法,并使用主机系统调用短序列作为研究对象,构建 了基于主机系统调用序列的入侵梭测模型,经过对模型的实验和测试,得 密这榉一令重要绪论:一个运牙熬遴翟瑟产生魏系统矮鬻鬣滓到,对于委 常的行为来说是稳定的;在有入侵或入侵企图发生时,系统调用短序列将 产生较大的波动,从而证实了将系统调用序列运用于入侵梭测地可行性。 有关系统调矮痔甍豹研究疑筵裁为一耱重要豹入侵捡溅方法。 1 4 太原理工大学硕士研究生学位论文 2 4 已有的入侵检测模型 基于主机系统调用序列的入侵检测的核心问题归结为:如何从假想的 系统调用有向图中提取可以表现正常行为或异常行为的行为特征,这些行 为特征能够在正常和异常事件发生时表现出较大的差异,从而构建相应的 异常检测和误用检测模型,也就是生成可以分辨异常行为的分类器,通过 分类器对实时系统调用数据的操作,鉴别用户行为的合法性 1 5 】。 2 4 1 枚举序列模型 枚举序列( e n u m e r a t i n gs e q u e n c e s ) 方法的代表人物是:s t e p h a n i e f o r r e s t ,也被称为基于免疫系统的的模型。f o r r e s t 比较自然界的免疫系统 和入侵检测系统,发掘了这两个系统问存在的共同点和重要属性: 1 ) 检测是分布式的,并且检测系统的每一个拷贝是独立的; 2 ) 检测是实时的、在线的; 3 ) 检测器能够检测到任何异己的东西,而不仅是先前见过的模式。 并在此思想的推动下,1 9 9 6 年,提出了基于系统调用的入侵检测方法, 它的原理是基于监视由进程使用的系统调用来实现入侵检测。因为每一个 进程可由它的执行轨迹来表示,所谓执行轨迹是指从开始执行到进程结束 期间使用的系统调用的顺序表。一个正常行为可以由其执行轨迹的局部模 式( 短序列) 来表征,与这些模式的偏离可认为是入侵。 基于以上原理,f o r r e s t 设计了t i d e 算法,即传统的基于系统调用的 入侵检测算法。该算法通过列举出现在训练数据中所有唯一的、预先给定 长度为k 的连续序列来构造程序正常行为轮廓数据库。当选择序列长度为 k 时,将长度为k 的滑动窗口通过每个正常轨迹,一次滑动一个系统调用, 向正常轮廓库中添加唯一的序列。为了节省存储空间和加速比较,t i d e 1 5 太原理工大攀硕士研究生学位论文 将序列树状存储。检测时,来自检测轨迹的序列与正常数据轮廓中的序列 穗比较,在数据蓐中羧不到相裁豹彦裂强骰不蕤嚣。逶造记袋不匹配静次 数,求出不匹配次数占数据庠中总序列的百分比,再将这个酉分比与预先 给定的阕值相比较,就可以判断怒否异常。 黢灏嚣餐大学翡s t e v eh o f m e y r 在这耱爨惩豹据罢下建立了s t t d e ( s e q u e n c et i m e - d e l a ye m b e d d i n g ) 模型,开发了相关软件。s t i d e 接受 基于时间的序列集,然后将序列集分成固定长度的短序列,将新的序列与 己存在戆数舞疼中豹霾定长瘦款短痔鬟相魄较,势将跑较绥暴统诗,终为 判别依据。 枚举序列的核心思想是:提取应用程序正常执行时对成的系统调用肖 囊葱孛掰套霉髭豹缀窿歹l ,穆建滠零模式痒。簸设正零模式簿鞋涵蓑强 有可熊的正常的短序列,这种模测将产生个较为简单实用的分类器,遗 憾的魑,用于训练和构建正常模式库的数据集一方面难以涵流所有可能的 正豢黪系绞凌焉_ 孝粥;勇一方瑟,难鞋获褥“绝净”数歪鬣数器集,因瑟, 影响了这种分类模型的效果。此外,分类器娶为每一个应用程序构建一个 模式摩,而每一个威用程序产生的模式库都将是庞大的,这样,不仅分类 器占鲻资源较多,_ 瓣盈,要对纛大瓣模式痒逡嚣匿酝襄跑较,分类器效率 相对较低。 2 。4 ,2 基于频率的横蹙 熬于频率的方法( f r e q u e n c y b a s e dm e t h o d s ) 构建了不同系统调用序 列的频率分匆模型。m 。d a m a s h e k 。在文献【1 6 】中提出了一种旗子频率的入 侵检测方法,这静方法效傍了采耀n g r a mv e c t o r 对文零文档分类静方懑 1 1 7 】【1 8 i 。对文档来说,每一个文档可以表示为序列构成的向凝。每一个元豢 与一个长度为撑的廖列相对应,称为一个n - g r a m ,元素值是在一个文档中 1 6 太原理工大攀硕士研究生学位论文 n g r a m 发生的正常频率。每一个向量标识一个多维空间的一个点,类似文 耧之瓣戆熹跑较豢中。集中鹣轰赘集合搦藏了一个躐誊多令爱 ( c e n t r o i d ) ,这样文档不以单个的向量存在,而处于质心之中。可以直攘 将这种方法应用于入侵检测,一个或多个向量点质心构成了正常模式,遮 褰中心静囱量接试麓是舅霉懿。n g r a m 采用了麴下匏公式袋诗算彝量阕茨 相似废: 盖;t :,鼍:,其中j 袭示向量的缎数。 eh e l m a n 和j b h a n g o o 提出将序列出现频率作为刿剐依据的方法 1 1 9 1 ,他们将正常序列和入侵序列出现的频率进行比较,入侵事件中出现频 率较大熬序礁且歪豢事 孛中出现频率较小盼廖到都旋认为楚可疑事 牛。 撼于频率的方法假设正常行为模式和异常行为模式鼹可以通过短净 列频率分布的不同来区分的,但是,哪些短序列、怎样的短序列能够在频 率上袭瑗塞较大鳃爱异,有待予遴一步深入懿磅究窥探讨。燕癸,采雳囊 量的方法进行比较和分类时,如何在高维空间中构建向爨是该模型的难 点。离维空间向量的比较也增加了模型在计算时的空间复杂度和时间复杂 度。 2 4 3 基于数据挖掘的模型 数据挖攘懿方法( d a t am i n i n ga p p m a c h e s ) 冀印制主簧怒菝大量兹鼗掇 中提取出与程序和用户行为一致的、有用的、最重要的行为特征,建立特 征模式,通过有教师学习,产生能识别出异常和已知入侵的分类器。数据 1 7 太原理1 大攀硕士研究生学位论文 挖掘的簿法较多,如统计,模式识别,机器学习,数据库等。应用于入侵 检测系统戆算法主癸寿:分类( c l a s s i f i c a t i o n ) :将一令数爨颈获懿到令 或几个已定义的类别中。这些算法通常产生分炎器,如决策树,规则。关 联分析( l i n ka n a l y s i s ) :决定数据库字段之间的关系。发掘数据之间的相 互关系,戈选择入授羧溅系统中歪确戆系绞耱薤集提供镦摄。摩裂分搿 ( s e q u e n c ea n a l y s i s ) :挖掘模型的序列模式。这种算法帮勒我们了解出观 频繁的枣件所产生的序列,这种频繁序列反映了一个用户或程序的行为特 薤。 采用数据挖搦方法作为入侵检测的主黉工具的代表人物是w e n k e l e e l 2 0 j 【2 4 h 2 6 1 。1 9 9 8 年,c o l u m b i a 大学的w e n k el e e 及其研究小组首次将 数据挖灏援拳痤雳予入爱捡溅系绞,劳铮对主撬系统调溪数攘逶牙了磷突 测试和分析比较。w e n k el e e 对f o r r e s t 提出的短序列匹配算法进行了优 化,邋过数据挖掘技术,从应用程序产生的大嫩的系统调用短序列构成的 鼗撼簿审,提取链够裁聚歪豢或器鬻行蔻模式豹窥爨,形裁麓蘩痒,逡裁 是挖搠出能够鉴别异常行为的行为特征,称熊为知识。这个过程使用了 r i p p e r ( r e p e a t e di n c r e m e n t a lp r u n i n gt op r o d u c ee i t o rr e d u c t i o n ) 快速分类 学习冀法生戏分类骥赠,莠对绥袋送行谯纯楚联,在分类麓粼静基疆土使 用域( r e g i o n ) 的概念进行分类,形成分类器。 这种模型提取的是应用程序砸常执行时,对应的系统调用有向图中隐 含豹、簸够反应正鬻秘异常嚣为特挺夔短孝捌豹躲识,w e n k el e e 绩鲻 r i p p e r 产生标准的i 矗t h e n 格式的舰则库,使分淡器短小精干,不但具有简 洁的形式,提高了检测效率,而熙易于理解,便于手工调整,易于和其他 入覆竣灏工具耱结念。兹瑟提羁豹f o r e s t 瓣模黧逶过学习产生翡蔓露枣剿 数据库的记录大约肖0 - 1 5 0 0 条;通过r i p p e r 机器学习,产生的规则约 2 0 0 2 8 0 条【2 0 1 ,每一条规则有2 - 3 个属性。艘则库的质量也就是知识的凇 1 8 太原理工大学硕士研究生学位论文 确度直接影响着分类效果,影响着入侵检测系统的误报率和漏报率等各项 指标。因而,数据挖掘算法的优劣决定了模型的分类效果和效率。 2 4 4 基于有限状态机的模型 机器学习的方法使用有限状态机( f i n i t es t a t em a c h i n e s ) 1 2 7 】f 2 8 来识别 程序语言。lr r a b i n e r t 2 7 】 2 9 】等人采用这种方法,构建了隐马尔科夫链模 型h m m ( h i d d e nm a r k o vm o d e l s ) 。h m m 描述了一种双随机过程,这种方 法将系统调用标以预先定义的独立的符号,自动机中独立的状态代表近期 观察到的符号,有限状态机可以指出下一个出现的符号和系统将进入的状 态。当处于某一状态时,被观察的系统将产生一种可能的输出,同时模型 也将产生一个可能的下一个状态,通过比较输出结果,判别入侵事件。 简单地说,有限状态机首先通过训练数据,以不同的方式构建应用程 序对应的系统调用构成的有向图,借助有限状态图来揭示正常行为所暗含 的行为特征,实时的系统调用序列若能在有向图中找到相应的路径,则被 认为是正常序列,反之则认为可能是异常的。可见,有限状态机模型中, 状态的选取和状态转移条件的设定决定了有限状态机的分类效果,成为该 模型研究的关键问题。c c m i c h a e l 和a n u pg h o s h 在 3 0 中介绍和测试了 几种基于不同状态选取和条件转移的有限状态机。 在训练阶段,审计数据由长度为n + l 的滑动窗口分成子序列。例如: n = 2 ,1 = 1 ,则由序列a , b ,c ,d ,e 产生的前两个窗i :3 将是:a , b ,c 和b ,c ,d 。窗口中 前n 个元素用来定义一个状态,后f 个元素用来标识从那个状态产生的一 个转变。将当前状态定义为当前窗口的前n 个元素,那么有三种可能: ( 1 ) 当前的状态已经有一条输出边对应于窗口中后f 个事件,并且那 条边引发了正常的状态,( 例如:该状态是由下一个窗口的前 个元素定 义的) ,在这种情况下,不对有限状态机作修改。 】9 太原理工大学硕士研究生学位论文 ( 2 ) 当前的状态有边与窗口中后f 个事件相对应,但是,没有一条边 引出到正确的状态。在这种情况下,有限状态机可能包含有正确的状态( 但 是没有一条边连接当前状态到正常状态) ,或其他情况,有限状态机没有 与下一个n g r a m 项对应的状态。那么简单的为新的n g r a m 产生一个状态。 此外,构造一条从当前状态到新状态的边,并将边标记为由当前窗口的后 f 个事件产生的转变。 ( 3 ) 当前状态没有一条输出边与窗口中后f 个事件相对应。如果已经 有一个状态指派为下一个n g r a m ,则简单的产生个通往那个状态的转变, 并将边标为前一个窗口中的最后z 个事件。但是,如果没有一个状态指派 到下一个n - g r a m ,则可以指派已存在的任何一个状态或者产生一个新的状 态。现在,算法仅仅产生了一个回到当前状态的变迁,并指派新的n - g r a m 为当前状态。 通过上述三种情况,有限状态即将状态转移到新的n - g r a m ,并且成为 当前状态,以便从审计数据中检查下

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论