(计算机应用技术专业论文)基于xen的入侵检测服务研究.pdf_第1页
(计算机应用技术专业论文)基于xen的入侵检测服务研究.pdf_第2页
(计算机应用技术专业论文)基于xen的入侵检测服务研究.pdf_第3页
(计算机应用技术专业论文)基于xen的入侵检测服务研究.pdf_第4页
(计算机应用技术专业论文)基于xen的入侵检测服务研究.pdf_第5页
已阅读5页,还剩64页未读 继续免费阅读

(计算机应用技术专业论文)基于xen的入侵检测服务研究.pdf.pdf 免费下载

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

文档简介

太原理工大学硕士研究生学位论文 i 基于 xen 的入侵检测服务研究 摘 要 互联网的日益普及以及各种互联网技术的快速发展使得网络安全问题 成为现今网络所要面临的一大难题。网络中的入侵行为主要是入侵者试图 危害资源的完整性、保密性和可用性的活动集合。入侵包括企图攻击或实 际攻击一个信息系统。由于入侵检测能有效弥补传统防御技术的缺陷,保 证内部网络和主机的安全,近年来得到了学术界和业界的广泛关注。而随 着入侵检测系统研究和应用范围的日益广泛,也造成了对其本身攻击方法 的日益成熟。 然而,不同体系结构的入侵检测系统由于设计思想不同,决定了其优 点与缺点并存、健壮性和脆弱性同在的性质。如果将入侵检测系统置于被 监控主机之上,其对主机上的检测能力较强;但其作为被监控主机的一个 部件或进程存在,容易受到入侵者的破坏。另一方面,如果将入侵检测系 统放置在网络中,它的抗攻击能力将会更强,但是对主机的监控能力就相 对下降,攻击者比较容易绕过入侵检测系统的检测。 虚拟机技术再次成为人们研究的热点, 并逐渐成为计算机世界一个非常 重要的概念。随着虚拟机监控器在安全领域的应用,针对现存入侵检测系 统存在的问题,本文提出一个运行于虚拟机监控器之上的入侵检测系统。 因为虚拟机监控器处于操作系统和硬件之间,从而使得这个入侵检测系统 位于监控所有对操作系统的入侵事件的最佳位置,并处于一个独立于操作 系统之外的受保护的空间内,增强了入侵检测系统的独立性、健壮性和检 测能力,是传统的基于主机和基于网络的入侵检测系统优点的完美结合。 本文主要做了以下工作: (1)深入分析虚拟机技术的发展、现状、实际应用以及虚拟机技术的 分类;阐述了入侵检测技术的分类及各自的优缺点;介绍了 xen 的特点、 配置过程以及基于 xen 的各虚拟系统的体系结构。提出了一种在虚拟机监 控器基础上的入侵检测体系结构,并对各个功能模块作了详细说明分析。 (2)本文在分析基于系统调用序列入侵检测系统原理及现有系统调用 序列采集方法的基础上,实现了在虚拟环境下对虚拟机上的操作系统中运 行的程序所产生的系统调用序列的采集。 太原理工大学硕士研究生学位论文 i i (3)通过测试,证明了本文提出的入侵检测体系虽然对系统资源造成 了一定的影响,但与保证了入侵检测系统较高的安全性相比其影响可以忽 略;同时,入侵检测系统仍然可以有效地工作。通过与一般计算环境下系 统资源利用率的对比,证明了本文所提出的结构模型在实际应用中的可行 性。 总之,本文描述了一种使用虚拟机来增强入侵检测系统安全性的结构 模型。本课题的基本原理是通过一个位于虚拟机之外的入侵检测系统来监 控虚拟操作系统中进程的状态。入侵检测所使用的数据由虚拟机监控器来 采集并由位于物理机器上的入侵检测系统来分析。虚拟机上的进程不能够 访问检测系统,入侵者也就不能对检测系统造成破坏。实验证明,这种设 想是合理的,也必将为提高入侵检测系统自身的安全性做出贡献。 关键字:网络安全,入侵检测,虚拟机监视器,系统调用 太原理工大学硕士研究生学位论文 i i i research on intrusion detection services based on virtual machine monitor xen abstract with the popularization of internet and fast development of various internet techniques, network security has become a critical problem of today s network system. intrusion into network is an aggregation of activities by intruders who attempt to damage the completeness, confidentiality and usability of resources. intrusion can be divided into two types, i.e. attempting to attack and actual attack an information system. since intrusion detection can effectively compensate the disadvantages of traditional defense techniques and guarantee the safeness of internal network and host, it has attracted general attentions from academe and industry fields. with the increasing research and more general application of intrusion detection system, the attacking to intrusion detection system itself has developed rapidly. however, because of different designing principles, differently structured intrusion detection systems share a common characteristic, i.e. the co- existence of merit and defect, toughness and frangibility. on one hand, if an intrusion detection system is installed into a host which is to be monitored, the former will have strong detection capability to the later; meanwhile, as one part or one process of the host, the intrusion detection system is easy to be destroyed by intruder. on the other hand, if the intrusion detection system is placed in network, it will have stronger attack resistance ability but weaker monitoring capability to the host; as a result, it will be relatively easier for intruder to evade the examine of intrusion detection system. once again virtual machine technique becomes the focus of people s research object, and gradually develops to a very important concept in computer world. with virtual machine monitor being applied in security field, this paper proposes an intrusion detection system running in virtual machine monitor 太原理工大学硕士研究生学位论文 i v against the existing problems in intrusion detection system. as virtual machine monitor is in between operating system and hardware, the intrusion detection system is located on a best position to monitor all the intrusion events against operating system, as well as in an independent and protected space beyond operating system. it is the perfect combination of traditional host- based and network- based intrusion detection systems (hids description about classification of intrusion detection techniques and their advantages and disadvantages; introduction on characteristics and configuration of xen, as well as structures of various virtual machine systems based on xen; proposal of a intrusion detection system structure which is based on virtual machine monitor, including the detailed instruction and analysis of each function model. (2) grounded on the analysis about principle of system call serial based intrusion detection system and existing system call serial collection method, the collection of system call serials generated from process running in virtual machine operation system under virtual environment is actualized in this paper. (3) by test, it is proven that the intrusion detection system proposed in this paper effects system resource in some extent, but the former does work effectively. it is also proven by experiments that the security of hids is greatly improved. by comparing with system resources utilization under common computer environment, the feasibility of practical application of structure model proposed in this paper is proven. to sum up, this paper describes a structure model which utilizes virtual machine to reinforce the security of intrusion detection system. its fundamental principle is to monitor the state of processes running in a virtual operation system through an intrusion detection system located out of the virtual machine. the data used in intrusion detection are collected by virtual machine monitor and analyzed by intrusion detection system installed in essential computer. 太原理工大学硕士研究生学位论文 v processes in virtual machine cannot access the detection system; as a result, an intruder will have no chance to destroy the detection system. it is proven by experiments that this assumption is reasonable and it will definitely contribute to improvement of security of intrusion detection system itself. key words: network security, intrusion detection, virtual machine monitor, system call 声 明 本人郑重声明:所呈交的学位论文,是本人在指导教师的指导下,独立进行研究所 取得的成果。除文中已经注明引用的内容外,本论文不包含其他个人或集体己经发表或 撰写过的科研成果。对本文的研究做出重要贡献的个人和集体,均己在文中以明确方式 标明。本声明的法律责任由本人承担。 论文作者签名: 日期: 关于学位论文使用权的说明 本人完全了解太原理工大学有关保管、使用学位论文的规定,其中包括: 1学校有 权保管、并向有关部门送交学位论文的原件与复印件; 2学校可以采用影印、缩印或其 它子复制手段复制并保存学位论文; 3学校可允许学位论文被查阅或借阅;4学校可以 学术交流为目的,复制赠送和交换学位论文; 5学校可以公布学位论文的全部或部分内 容(保密学位论文在解密后遵守此规定) 。 作者签名: 日期: 导师签名: 日期: 太原理工大学硕士研究生学位论文 1 第一章 绪论 本章主要介绍了课题研究的背景和意义,分析了国内外入侵检测技术的研究现状和 进展,介绍了全文的内容安排和主要工作。 1.1 课题研究背景 入侵检测(intrusion detection)技术是网络安全解决方案的一个重要组成部分,当 计算系统的服务遭到攻击时,入侵检测系统可以用来增强系统的安全性1。当前,对于 入侵检测的研究已经取得了相当的进展,无论是在入侵检测系统的体系结构上还是在检 测方法上都在向多样化发展:系统结构上,从原来的单机发展为分布式系统;检测方法 上,从最初简单的匹配到现在多种分析方法并存。尽管入侵检测技术已经取得了一些进 展,但是还远不成熟:现有的商业产品还停留在初级阶段;而研究项目虽然已经取得了 一些进展,但也仍处于不断的尝试之中;入侵检测系统本身的安全性还有待提高。总的 来说,入侵检测技术的研究仍具有极其重要的意义。 另一方面,虚拟机(virtual machine, vm)技术再次成为人们研究的热点,并逐渐 成为计算机世界一个非常重要的概念2。 虚拟计算机的概念最早由 ibm 公司在上世纪六 七十年代提出,并将其运用于 vm/370 系统中。之后的发展起起伏伏,一度由于分时操 作系统的出现而处于停滞状态。上世纪九十年代随着 java 虚拟机的推出,尤其是之后 vmware 公司 vmware esx server 和 vmware workstation虚拟机的推出,使的对虚拟机 技术的研究再次成为处理器设计人员、软件设计人员、服务器设计人员和网络安全设计 人员的热门研究课题。 将虚拟机这个概念引入到安全领域,应用其某些显著的特点改善入侵检测系统的安 全性,阻止入侵者对入侵检测系统的攻击,或许能起到事半功倍的效果。目前,很多关 于这方面的研究已经展开。 1.2 课题的国内外研究现状 网络安全是一门涉及计算机科学、网络技术、密码技术、通信技术、信息安全技术、 应用数学、信息论、数论等多种学科的综合性学科。网络安全是指网络系统的硬件、软 件及系统中的数据受到保护,不因偶然的或者恶意的原因而遭到破坏、泄露、更改,系 统能连续可靠地正常运行,网络服务不被中断。网络安全从其本质上来说就是网络上的 太原理工大学硕士研究生学位论文 2 信息安全。从广义上来说,凡是涉及到网络上信息的保密性、完整性、可用性、真实性 和可控性的相关技术和理论都属于网络安全的研究领域。 随着网络技术的发展,网络环境变得越来越复杂,对于网络安全来说,单纯的防火 墙技术以不能满足需求,并且暴露出明显的不足和弱点:如无法解决安全后门的问题, 不能阻止网络内部攻击,不能提供实时入侵检测能力,对病毒束手无策等。这种情况下, 就需要提出更多、更强大的主动策略和方案来增强网络系统的安全性。其中一个卓尔有 效的解决途径就是采用入侵检测技术。入侵检测系统可以有效弥补防火墙的不足,提供 了及时的入侵检测功能及相应的防护手段,如记录证据、跟踪入侵、恢复或断开网络连 接等,这就引发了人们对入侵检测技术的研究热情3。 目前,国内外对虚拟机研究最多的是将虚拟机作为服务器时对其性能进行改进的研 究,另一个方面就是基于虚拟机的蜜罐技术的研究。而将虚拟机技术应用于入侵检测技 术的研究相对比较少。不过,随着虚拟机技术的日益普及及网络化的发展,虚拟机在网 络安全领域的应用必将提上日程。 基于虚拟机的入侵检测,可以通过移植主机上的已经成熟的技术来实现,对于入侵 检测技术,一般都移植到虚拟机管理器上,但这就涉及到一个问题,即进程或功能的迁 移,这个方向也是虚拟机现在研究的比较多的一个方向。但是,由于虚拟机本身技术的 原因,比如直接位于硬件上的虚拟机管理器,如:xen,vmware esx等,都必须与硬 件打交道,如果要修改代码,必须对虚拟机的原理,编写方式,体系结构等都有详细的 了解,这让许多人都望而却步;另一方面,由于虚拟机的商业化,有些技术并不公开, 如 vmware,要研究这种虚拟机的网络安全,就显的更加困难。 1.3 本文的主要研究内容 目前,各种入侵检测系统被广泛应用于检测系统的安全,而对于入侵检测系统的广 泛研究和应用使得人们研究对抗入侵检测系统的技术也日趋成熟。攻击或绕开入侵检测 系统都能够导致其失效。通过对恶意行为进行伪装可以绕开 ids;而对 ids 的攻击包括 篡改 ids 或其信任的部件,从而阻止 ids 检测或向系统报告恶意行为。因此,入侵检测 系统的安全性对于保证系统安全就显的异常重要。 当前,基于主机的入侵检测系统(host- based ids, hids)和基于网络的入侵检测系 统(network- based ids, nids)都存在一些不足之处:1、hids 是作为被监控系统的一 个进程或部件存在的,因此,它的优点就是对被监控系统的可见性较高。但是缺点同样 明显:hids 需要安装在被保护的主机上,这样很容易被获得管理员权限的入侵者破坏 太原理工大学硕士研究生学位论文 3 掉。2、nids 安装在网络中,它的抗攻击能力将会更强,但是对主机的监控能力就相对 下降,攻击者比较容易绕过入侵检测系统的检测。 考虑到 xen半虚拟化虚拟机的高性能,以及其开放源代码的巨大发展潜力4,本文 采用 xen 作为系统平台,对基于 xen 的虚拟机实例之间的通信以及数据采集进行了深 入研究,并在此基础上提出了一个基于 xen的入侵检测体系结构,克服了以上所述的传 统的入侵检测系统的缺点。 1.4 论文结构 本文主要围绕基于 xen的主机入侵检测系统进行研究,主要内容安排如下: 第一章介绍课题研究的背景、意义以及主要的研究内容。 第二章通过对国内外入侵检测技术资料的收集、调查、整理和研究,对入侵检测技 术做出了比较全面的概述,并分析了现有系统存在的优势和缺点,进而明确了论文的研 究方向。 第三章介绍了虚拟化技术的种类、发展及应用,详细论述了将虚拟机应用于安全领 域的优势。 介绍了虚拟机监控器关键技术以及本体系结构所用到的虚拟机 xen的定义、 优势及安装过程和引导过程。 第四章在深入分析了 xen 的接口技术的基础上,设计了基于 xen 的主机入侵检测 系统的模型,并详细描述了模型的各个模块及实现方式。 第五章通过对主机资源占用率的测试、系统功能性测试以及安全性分析,证明了本 体系结构可以有效地工作,并且具有很高的效率。 最后,第六章对全文进行概括性的总结,提出了未解决的问题以及今后要做的工作 重点。 太原理工大学硕士研究生学位论文 4 第二章 基于系统调用的主机入侵检测概述 2.1 入侵检测的定义及分类 2.1.1 入侵检测的定义 顾名思义,入侵是指任何企图危害资源的完整性、保密性和可用性的活动集合。入 侵包括企图攻击或实际攻击一个信息系统。 例如: 恶意的黑客对网络系统进行非法访问、 收集漏洞信息、窃取敏感数据,以及网络内部用户超越其权限进行非法操作。那么,入 侵检测就是指通过从计算机网络或计算机系统中的若干关键点收集信息,并对其进行分 析,从中发现网络或系统中是否存在违反安全策略的行为和遭到攻击的迹象。 入侵检测系统(intrusion detection syetem,ids)从功能上可以分为三个组成部分: 即数据采集部分,数据分析部分和入侵响应部分,入侵检测的一般模型如图 2- 1 所示。 其中,数据采集中的数据源(审计数据)主要包括主机数据和网络数据,主机数据主要 来自主机上的各种审计记录和日志文件;网络数据一般是指网络上传输的数据包,通常 采用网络监听的方式获得。数据分析的方法需要根据审计数据的特点以及具体的检测对 象和检测需求来确定。入侵响应是指对分析到的入侵行为采取的防范措施,主要有阻断 攻击,影响进而改变攻击的进程,对入侵者进行反击等。 2.1.2 入侵检测的分类 按系统所监测的对象分类有如下三种入侵检测系统:基于主机的入侵检测系统、基 于网络的入侵检测系统和分布式入侵检测系统(distributed ids,dids)5。 基于主机入侵检测系统通常是安装在被检测的主机之上,主要是对该主机的系统审 数 据 采 集 数据 数据 数 据 分 析 结 果 处 理 事件 事件 图 2- 1:入侵检测模型 fig.2- 1:intrustion detection mode 太原理工大学硕士研究生学位论文 5 计日志进行智能分析和判断。通过提取被保护系统的审计踪迹和系统日志等运行数据并 进行入侵分析来实现入侵检测的功能。基于主机的入侵检测系统不对网络数据包或扫描 配置进行检查,而是对系统日志的大量数据进行整理。系统可以精确地判断入侵事件, 并对入侵事件立即进行反应;还可以根据不同的操作系统特点判断应用层的入侵事件。 基于主机的入侵检测系统面临的主要困难是:收集数据的代价、充足的数据、协调性、 每个节点都必须拥有一个传感器以及系统开销问题。 基于网络的入侵检测系统是通过网络监视来实现数据提取。基于网络的入侵检测系 统通常由多个单一功能目标的监测器组成,它们被放置在网络的不同位置,监听并分析 网络数据包,并向中央控制台报告入侵。由于监测器只是运行入侵检测系统,他们也更 加容易保证安全。而且,监测器常被设计成在一种“ 隐秘” 的运行方式下运行,以使攻击 者更加难以发现它们的存在和确定它们的位置。基于网络的入侵检测系统一般都放置在 比较重要的网段内,不停地监视网段中的各种数据包。对每一个数据包或可疑的数据包 进行特征分析。如果数据包与系统内置的某些规则吻合,入侵检测系统就会发出警报甚 至直接切断网络连接。 分布式入侵检测系统可以检测针对分布式网络的攻击,并且该系统也可以使用分布 式的方法来检测分布式的攻击。关键技术为监测信息的协同处理与入侵攻击的全面信息 提取。 基于主机和基于网络的入侵检测系统都存在一些缺陷,下面分别对它们进行分析: (1)基于主机的入侵检测系统,由于被安装在被保护主机上,所占用的资源不能太 多,从而大大限制了所采用的检测方法及处理性能。具有以下缺陷: 1、资源局限:系统本身有限的软硬件资源不足; 2、操作系统局限:不同于nids,厂商可以自己定制一个足够安全的操作系统来保 证 hids 自身的安全。但这种做法会使ids受到所在主机上操作系统自身安全性的限 制,如果所在系统被攻破,hids将很快被清除。如果hids为单机,则它基本上只能检 测不成功的攻击,如果hids为传感器/控制台结构,就会面临与hids同样的那些问题; 3、系统日志限制:hids可通过监测系统日志来发现可疑的行为,但有些程序的系 统日志不够详细,甚至没有日志,还有一些入侵行为不会被程序记录到系统日志中。如 果系统没有安装第三方日志系统,则系统自身的日志系统很快会受到入侵者的攻击或修 改,而入侵检测系统通常并不支持第三方的日志系统。如果hids不能实时检查系统日 志,则攻击者利用自动化工具进行的攻击,将完全可能在检测间隔中完成所有的攻击过 程,并清除在系统日志中留下的痕迹; 太原理工大学硕士研究生学位论文 6 4、修改系统核心能够骗过文件检查:如果入侵者修改系统核心,则可以骗过基于 文件一致性检查的工具。这种情况类似于某些病毒,当它们受到检查或者跟踪的时候, 会将原来的文件或者数据提供给检查工具或者跟踪工具,从而逃避检测; 5、网络检测局限:主机入侵检测系统除了检测自身的主机以外,根本不检测网络 上的情况。对入侵行为的分析的工作量将随着主机数量增加而增加。 (2)基于网络的入侵检测系统是从网络中获取数据包并加以分析,从而检测出未授 权行为或异常状况。它具有以下缺陷: 1、网络负荷与拓扑局限:由于共享式hub进行的网络监听,将给网络安全带来极 大的威胁,所以现在的网络尤其是高速网络基本上都采用交换机,从而给nids的网络 监听带来困难。而一般的交换机在负载较大的时候,监听端口的速度赶不上其它端口的 速度,会导致交换机丢包。此外,对于一个较复杂的网络而言,通过精心的发包,可以 导致nids与受保护主机收到的包的内容或者顺序不同,从而绕过 nids 的监测。 2、检测方法:nids常用的检测方法有特征检测、异常检测、状态检测、协议分析 等,虽然实际的商用入侵检测系统大都同时采用几种检测方法,但仍有较大局限性。 nids 不能处理加密后的数据,如果数据在传输中被加密,即使对简单的替换也难以处 理,采用ssh、https、带密码的压缩文件等手段,都可以有效地躲避nids的检测。例 如,nids难以检测重放攻击、中间人攻击,对网络监听也无能为力,此外目前还难以 有效地检测ddos攻击。 3、 协议局限: 对于应用层的协议, 一般的nids只是简单处理了如http、 ftp、 smtp 等常见情况,尚有大量的协议没有处理,也不大可能全部处理,直接针对一些特殊协议 或者用户自定义协议的攻击,都能很好地绕过nids的检查,例如 http 攻击变体和 telnet 攻击变体。 2.2 系统调用的相关理论研究 通常,在操作系统的核心中都设置了一组用于实现各种系统功能的子程序(过程), 也就是系统在其内核里内建的函数,这些函数可以用来完成一些系统级别的功能,操作 系统将它们提供给用户,让用户调用这些子程序,称之为系统调用(system calls)。它 是各种外层应用软件与工具的基础,本质上是应用程序请求操作系统 内核完成某种功能的过程调用,是用户(应用程序)和操作系统内核的沟通渠道。 太原理工大学硕士研究生学位论文 7 2.2.1 操作系统的分层与保护机制 在linux系统中,操作系统分层结构如图2- 2所示: linux内核提供了一个与计算机硬件等价的虚拟计算机平台。它抽象了许多硬件细 节,程序可以以某种统一的方式进行数据处理,而程序员则可以避开许多硬件细节。从 另一个角度讲,内核是一个资源的管理者,在它的帮助下,用户可以采用某种易于理解 的方式组织自己的数据,完成自己的工作并和其他人共享资源。 系统调用是用户程序和linux内核的接口,用户程序可以通过系统调用陷入到linux 内核执行相关的功能和操作,可以使用操作系统提供的有关设备管理、输入/输出系统、 文件系统和进程控制、通信以及存储管理等方面的功能,而不必了解系统程序的内部结 构和有关硬件细节,从而起到减轻用户负担和保护系统以及提高资源利用率的作用。 在linux系统中,每个用户进程都可以访问 4gb的线性地址空间 6。其中 0 x00000000- 0 xbfffffff的3gb空间为用户态空间,用户态进程可以直接访问。从 0 xc0000000- 0 x3ffffffff的1gb空间为内核态空间,存放内核访问的代码和数据,用户态 进程不能直接访问。当用户进程通过中断或系统调用访问内核态空间时,会触发0 x86的 特权级转换,即从用户态切换到内核态。 用户空间是用户所启动的进程在内存中的执行位置,包括了除了核心空间之外,所 有可供使用的内存空间。在用户进程之间,linux提供了完备的保护措施,以避免进程 间相互干扰,只有核心程序才有存取其它进程的用户空间的权利。当一个进程在此存储 空间执行时,该进程被称为用户模式下作业,处于用户态。 系统的核心空间是含有系统一切核心代码的内存空间。linux系统是多用户任务系 统,同一时间为一个以上的用户服务,也同时存在多个进程。因此,系统资源可能由多 编译程序 文本编辑器 连接程序 shell命令解释器 系统调用接口 核心程序 驱动程序 硬件设备 ftp telnet http 图 2- 2:linux 操作系统分层图 fig.2- 2: layers of linux os 太原理工大学硕士研究生学位论文 8 个进程共享。为了使各个进程能正常地运行,linux系统使用系统调用提供核心服务。 当进程启动后,它多半是执行本身的程序代码,进程处于用户态。如果这个进程调用一 个系统调用,那么它立刻变成核心进程,并具有执行内核服务程序的权利。在此时该进 程在核心程序模式下作业,处于核心态。 0 x86 cpu为每个任务提供了四种特权级,它们分别是0级、1级、2级和3级。其中0 级是最高特权级,3级是最低特权级。linux内核代码运行在最高特权级,而用户代码则 工作在最低特权级。 用户程序进入内核空间, 硬件上最终是由cpu发出中断指令来实现。 2.2.2 系统调用的定义 系统中的资源都由操作系统统一管理。在linux系统中,操作系统分层为用户层与 系统内核层。系统内核包括硬件设备、驱动程序、核心程序、系统调用接口等四个层次。 在操作系统的外层或用户程序中,凡是与资源有关的操作(如分配内存,进行i/o传输 等)都必须通过某种方式向操作系统提出服务请求,并由操作系统代为完成。因此操作 系统必须提供某种形式的接口,以便让外层软件通过这种接口使用系统提供的各种功 能,这种接口就称为内核层的最上层:系统调用接口。 系统调用可以看成是用户(或系统程序)在程序一级请求操作系统为之服务的一种 手段,是系统中真正被所有进程都使用的内核通信方式。一般情况下进程是不能够存取 系统内核的。它不能存取内核使用的内存段,也不能调用内核函数,cpu的硬件结构保 证了这一点。只有系统调用是一个例外。进程使用寄存器中适当的值跳转到内核中事先 定义好的代码中执行。在intel结构的计算机中,这是由中断0 x80实现的。 系统调用是内核和用户编程的唯一接口。系统调用的命令与c语言库函数都频繁的 使用了各种系统调用,系统调用是各种外层应用软件与工具实现的基础。用户程序最常 用的fork()、open()、read()、write()、exit()、exeeve()等函数和操作实际上都是通过系统 调用来执行的。 2.2.3 linux系统调用的执行流程 linux内核对系统调用接口的编程代码已经非常成熟,通过分析这些源代码可以了 解内核编程的特点,并掌握它的工作原理。 对系统调用的初始化也即对int0 x80的初始化。系统启动时,汇编子程序 setup_idt(arch/i386/kernel/head.s)准备了一张256项的idt表,由start_kernel()(init/main.c)、 trap_init()(arch/i386/kernel/traps.c) 调 用 的 c 语 言 宏 定 义 set_system_gate(0 x80 , 太原理工大学硕士研究生学位论文 9 long orig_eax, eax; 太原理工大学硕士研究生学位论文 4 1 int status; int insyscall = 0; child = fork(); if(child = 0) ptrace(ptrace_traceme, 0, null, null); execl(/bin/ls, ls, null); else while(1) ptrace(ptrace_syscall,child,0,0); wait( if(wifexited(status) break; orig_eax = ptrace(ptrace_peekuser, child, 4 * orig_eax, null); printf( %ld , orig_eax); ptrace(ptrace_syscall, child, null, null); wait( return 0; void init_daemon(void) int pid; int i; if(pid=fork() return; else if(pid0) 太原理工大学硕士研究生学位论文 4 2 return; setsid(); if(pid=fork() return; else if(pid0) return; for (i=0;idata_ps.dat 该操作将跟踪ps执行得到的系统调用序列保存在名为data_ps.dat的文本中,为了区 分ps带不同参数的操作,本文在采集到的每个系统调用号前加上每次程序运行所产生的 进程号来进行标记。 接下来,本文利用得到的序列构建正常行为模式库,即将长序列划分为固定长度的 短序列。根据stide算法思想,这个过程要考虑短序列的长度这一参数的影响,这里假 定该值为6,使用的命令如下: 太原理工大学硕士研究生学位论文 4 6 stide d our_data.db a l 6 v aof “ %pt%st%dn” data_ps.dat 该命令将文件data_ps.dat 的数据按照格式 “ %pt%st%dn” 以长度为6的短序列存 储到文件our_data.db中,存储结构为树,其比较算法的时间复杂度为o(nlogn)。 创建包含描述ps程序正常运行的短序列集合的文件后,我们可以用其来判断当前的 ps程序是否已被rootkit木马化。通过对当前运行的ps程序所产生的系统调用序列进行采 集并将该序列作为待测薛烈用input_ps.dat文件保存,测定该序列的命令如下: stide d our_data.db f 20 l 6 c run3.config data_ls.txt。 然后使用命令./stide d /root/our_data.db f 20 l 10 c run3.config /root/ data_ls.txt, 该命令是将 data_ls.txt 中的数据与/root/our_data.db 中的数据进行比较, 结果如图 5- 1 所 示: 从运行结果中可以看出:number of anomalies=0,percentage anomalous=0,即,异 常条数为 0,异常百分比为 0,从而可知两个文件中的数据完全相同,说明 ls 程序并未被 入侵,且在 xen环境下采集的系统调用序列是正确的。证明了将入侵检测系统引入 xen 中是完全可行的。 (2)对sendmail数据集的测试: 为了验证本文提出的体系结构检测的准确性和有效性,作为比较,我们把newz_ids 和传统的stide在系统设置了一定的参数条件下进行了比较,并对结果进行了分析。实验 采用sendmail进程产生的2000个正常系统调用序列作为实验数据形成一个正常的系统调 用库,然后采用800个正常系统调用和异常系统调用混合序列进行测试,其中newz_ids 选取系统调用序列长度值为6,传统stide选取同样的长度。newz_ids的检测结果如图5- 2 所示。获得的结果如下表所示: 从表5- 1的测试结果比较我们可以看到,newz_ids和传统stide在误报、漏报、准确 率上完全相同。说明newz_ids系统并未因为引入了xen而导致检测性能的下降和功能的 改变。 图 5 - 1 :运行结果 fig.5- 1: result of running 太原理工大学硕士研究生学位论文 4 9 表 5- 1 测试结果 table 5- 1 the result of testing 检测到异常事件 误检 漏检 准确率 newz_ids 173 24 27 91 stide 173 24 27 91 5.3 性能分析 评价一个新的体系性能的主要指标有以下几个: (1) 对系统的资源占用 任何一个新的体系都会占用主机的一部分资源,从而对主机的性能造成影响。在本 文提出的基于 xen入侵检测系统中, 我们要将客户操作系统中的采集到的系统调用序列 通过共享内存传输到特权域操作系统中,因而会占用主机的系统(内存、 cpu等)资源, 在负载较重的主机上,这个问题会更加突出;减少资源占用,提高检测效率也就显得更 加重要。 图 5 - 2 :运行结果 fig.5- 2: the result of testing 太原理工大学硕士研究生学位论文 5 0 (2) 安全性 安全性评价是指对系统存在的危险性进行定性和定量分析,确认系统发生危险的可 能性及其严重程度,提出必要的控制措施,以寻求最低的事故率、最小的事故损失和最 优的安全效益30。安全性的高低直接影响到了系统的优劣,入侵检测系统的安全性尤为 重要,如果入侵检测系统遭到破坏,将直接影响到了操作系统的安全。 评价一个新的体系性能的指标还包括系统的可扩展性、 互动性、 通信的健壮性等等。 建立一个基于 xen虚拟机的入侵检测系统体系结构, 需要在物理机器上额外安装一 个 xen 并在其上运行一定数量的虚拟机,由于 xen 安装在操作系统之上,因而会占用 一定的主机资源(内存、cpu 等等) ,而运行在虚拟机中的技术系统如果负载较重,假 如是服务器,虚拟环境对于主机资源的占用问题就会更加突出,这样,运行一个 xen以 及其上的虚拟机所占用主机的一部分资源以及因此而对主机的性能造成影响,本质上就 是入侵检测系统对主机资源的占用。如果这个虚拟环境占用大量的主机资源,相对于该 环境对入侵检测系统安全性能的提高, 我们配置一个基于 xen的入侵检测体系结构就失 去意义。 (3) 检测准确度 准确地识别入侵行为是对入侵检测系统的基本要求。 入侵检测系统的检测准确度可 以通过误报率(false alarm rate)和检测概率(detection rate)两个指标来反映。误报率 是指正常行为被错误判为入侵行为的概率,检测概率则是指入侵行为被正确判为入侵行 为的概率31。如果在虚警概率相同的情况下,一个入侵检测系统的检测概率比另一个系 统的检测概率高,则认为前者具有更高的检测准确度。 虚警概率和检测概率是相互制约的;检测概率越高,虚警概率一般也会越高。过高 的虚警概率会影响一个入侵检测系统的可用性32。 入侵检测研究中的一个关键问题就是 在保证虚警概率处于可接受范围内的前提下尽可能地提高检测概率。 5.3.1 安全性分析 原型较好地实现了本文提出的安全设计目标,即攻击者很难破坏原型,用户域的重 新部署简单、迅速。 攻击者破坏xen是困难的,原因如下: (1)同现代操作系统提供的操作系统与用户进程间的隔离相比,xen提供了在xen 和虚拟机间更好的隔离。xen提供的超级调用少于20个,而现代操作系统,例如,linux 提供了数百个系统调用给用户进程。因此,恶意的vm破坏xen是更困难的。 太原理工大学硕士研究生学位论文 5 1 (2)xen远比现代操作系简单的多。xen 3.0有3000040000行源代码,它的简单 性是由于它没有设备驱动程序,网络协议栈,文件系统以及其他设施,例如,linux中 的/dev/kmem和可加载内核模块,攻击者能使用它们破坏linux内核。 (3)domain0域负责创建和管理用户域,并且运行newz_ids进程,这对于原型的 安全是至关重要的。在运行domain0域xenolinux0内核时,只允许domain0域用tcp / ip 协议栈访问自己(domain0域管理软件要用此功能),因此,攻击者很难从互联网上破 坏domain0域。xen也提供了在domain0域和用户域间的强隔离,即它们有各自隔离的物 理内存、硬盘空间和文件系统。因此,即使用户域已经被攻破,要破坏用

温馨提示

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

评论

0/150

提交评论