(计算机系统结构专业论文)网络攻防模拟平台及防火墙的设计与实现研究.pdf_第1页
(计算机系统结构专业论文)网络攻防模拟平台及防火墙的设计与实现研究.pdf_第2页
(计算机系统结构专业论文)网络攻防模拟平台及防火墙的设计与实现研究.pdf_第3页
(计算机系统结构专业论文)网络攻防模拟平台及防火墙的设计与实现研究.pdf_第4页
(计算机系统结构专业论文)网络攻防模拟平台及防火墙的设计与实现研究.pdf_第5页
已阅读5页,还剩51页未读 继续免费阅读

(计算机系统结构专业论文)网络攻防模拟平台及防火墙的设计与实现研究.pdf.pdf 免费下载

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

文档简介

摘要 摘要 网络的发展对网络安全技术( 包括网络防御技术和网络攻击技术) 的研究提 出了更高的要求。本文总结了网络安全技术的基本原理和一些常见的开放源码网 络安全工具,存此基础上提出了网络攻防平台及其总体结构框架,实现了网络攻 防f 台的虚拟网络环境;重点介绍了总体结构框架中虚拟防火墙的原理和技术以 及网络攻防平台的使用情况,包括防火墙规则的制订与解析、防火墙的安全策略 与检测流程、网络数据流的生成、网络拓扑的建立和各个网络设备的运行情况等。 该网络攻防平台的提出和实现使得网络安全技术研究的两个方面:网络防御 技术研究和网络攻击技术研究可以结合在一个环境中进行,也使得网络攻防味理 的研究更自n 直观。本文的工作无论对于网络安全研究还是网络安全的教学演示都 有重要的意义。 关键词:网络安全网络攻防平台防火墙 a b s t r a c t 2 _ j _ _ _ - _ _ _ 一一一 a b s t r a c t t h ed e v e l o p m e n to fn e t w o r kr e q u i r e sm o r ed e l i b e r a t er e s e a r c h e so nn e t w o r ks e c u r i t y t e c h n o l o g i e s ( i n c l u d i n gn e t w o r ka t t a c k i n gt e c h n o l o g ya n d n e t w o r kd e f e n s et e c h n o l o g y ) t h e p r i n c i p l e sa n ds o m e f a m i l i a ro p e ns o u r c et o o l so fn e t w o r ks e c u r i t yt e c h n o l o g i e sa r e s u m m a r i z e d b a s e do nw h i c hap l a t f o r mo fn e t w o r ka t t a c k i n g & d e f e n s ea n d i t s a r c h i t e c t u r ea r ep r e s e n t e da n dav i r t u a ln e t w o r ke n v i r o n m e n ti sa l s oi m p l e m e n t e d t h e p r i n c i p l ea n dt e c h n o l o g yo f t h ev i r t u a lf i r e w a l lo ft h ea r c h i t e c t u r ea n dt h eu s a g eo ft h e p l a t f o r m o fn e t w o r k a t t a c k i n g & d e f e n s e a r e e x p l a i n e d i n d e t a i l i n c l u d i n g t h e c o n s t i t u t i o na n dt h e p a r s i n go ft h e f i r e w a l l r u l e s ,t h es e c u r i t y s t r a t e g i e s a n dt h e d e t e c t i n gp r o c e s s o ft h ef l r e w a l l ,t h e g e n e r a t i o n o ft h en e t w o r kd a t a f o w , t h e e s t a b l i s h m e n to ft h en e t w o r k t o p o l o g y , t h eu s a g eo fe v e r yn e t w o r kd e v i c ea n d s oo n t h ep r e s e n t a t i o na n dt h ei m p l e m e n t a t i o no ft h ep l a t f o r mo fn e t w o r ka t t a c k i n g & d e f e n s ee n a b l et h et w oa s p e c t so ft h er e s e a r c ho fn e t w o r ks e c u r i t yt e c h n o l o g i e s ,t h a ti s t h er e s e a r c ho fn e t w o r ka t t a c k i n gt e c h n o l o g ya n dt h er e s e a r c ho fn e t w o r kd e f e n s e t e c h n o l o g y ,t ob ec o m b i n e di na ni d e n t i c a le n v i r o n m e n ta n dm a k et h er e s e a r c ho ft h e p r i n c i p l eo f n e t w o r ka t t a c k i n g d e f e n s em o r ei n t u i t i o n i s t i c t h i sp a p e r sw o r ki so f g r e a ti m p o r t a n c e i nb o t ht h er e s e a r c ha n dt h e t e a c h i n go f n e t w o r ks e c u r i t y k e y w o r d :n e t w o r ks e c u r i t y p l a t f o r mo fn e t w o r k a t t a c k i n g d e f e n s e f i r e w a l l 声明 y6 9 5 6 3 4 创新性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果:也不包含为获得西安电子科技大学或 其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做 的任何贡献均已在论文中作了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名:趟力日期:地蹦! 趔 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究 生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。本人保证毕 业离校后,发表论文或使用论文工作成果时署名单位仍然为西安电子科技大学。 学校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全 部或部分内容,可以允许采用影印、缩印、或其它复印手段保存论文。( 保密的论 文在解密后遵守此规定) 本人签名 导师签名 日期:丑! 堕:1 2 旦 日期:童2 q s :厶坌曼 舡著_ 速豫酵 笙二雯堕堡 ! 第一章绪论 1 1 课题的背景 近十年来网络技术取得了飞速的发展,网络的规模越来越巨大,人们对于阿 络的依赖程度也是越来越高。于是网络安全问题就成为人们在研究和使用网络时 需要重点解决的一个问题。网络安全问题从宏观上来看可分为关于网络上的攻击 方面的问题和关于对网络上的攻击进行防御的问题两个方面。 随着网络技术本身和应用于网络的技术的不断发展,网络攻击和防御两者此 消彼长、互相促进,并且由于网络规模的不断增大和网络体系结构的r 趋复杂, 攻击和防御的成本日益增大,更严重的是网络上的攻击有泛滥之势。 一段时问以来网络安全技术的研究主要集中在防御技术的研究方面,为了做 到知己知彼,百战不殆,也应该深入的研究网络攻击技术,搞清楚各种网络攻击 技术的原理。总的来说,对于网络安全研究人员来螅应该把二者结合起来进行研 究,把二者鼍于同一种环境下迸行研究。 但是这方面工作在当前还存在定的局限性,主要是受网络仿真工具和网络 安全工具的局限比较大。虽然现有的网络仿真工具比较多,典型的有o p n e t 、n s 2 、 o m n e t 、c n e t 等,它们要么是对网络的通信情况进行仿真模拟,要么是对网络协 议进行仿真模拟。但是对于网络安全的研究,尤其是对于网络上的具体的攻击和 防御的仿真和模拟以及对于攻击和防御结合在一起进行的研究更是有很大的局 限。另外,虽然网络上现有的安全工具比较多,例如开放源代码的l i b p c a p 、l i b n e t , l i b d n e t 等网络安全工具函数库,但是它们过于零散,只能完成一些单一的任务, 并且不具备针对函数库本身进行二次开发的能力。 基于以上原因需要开发个具有二次开发能力的,集成度较高的网络攻击 与防御的( 模拟) 平台。 1 2 本文研究的目的和意义 本文的目的在于对网络技术和网络安全技术进行研究的基础上提出一个相对 完善的网络攻防模拟平台的结构框架,并实现这样个可以模拟小型规模网络内 的攻击与防御又可以进行真实的网络攻击和防御的网络攻防模拟平台。 我们给予这个网络攻防模拟平台三个既定的目标: 1 它应该是一个真实的网络攻防工具( 平台) 。部署到主机必后能够对实际 网络中的其他主机发起攻击,并向用户汇报攻击的结果和效果;同时能够对来自 2网络攻防模拟平台及防火墙的设计与实现研究 网络上其他机器的攻击进行防御,并向用户做出报警等处理。 2 它应该是一个网络攻击与防御的模拟演示平台。在单机上模拟出基本的网 络节点和设备,然后在这个模拟的网络环境中演示网络攻击与防御的基本原理以 及网络攻防的过程,并用可视化的结果呈现出来。 3 它能够为网络安全研究人员提供一个简单易用的平台。利用这个平台,研 究人员可以按照自己的设计来组织攻击序列,然后对攻击的结果和中间的状态信 息进行统计处理,验证自己的入侵检测算法和模型等。 这个平台可以提供给以下几类用户使用: 一般用户:把这个平台当作一个集成了多个基本网络安全工具的工具软件来 使用,只简单的使用一下这个平台中的攻击程序和防御程序。 开发用户:因为平台提供了可供用户调用的函数库,高级开发用户可以调用 相关的函数进行二次开发,形成新类型的攻击等。这些新类型的攻击作为插件挂 接在平台上,可以供开发它的用户以及其他用户使用。 研究人员:在平台上根据自己的设计重放已有的攻击,并按照自己所提出的 防御部署方法进行防御,检验自己的方法的正确性和有效性。 教学人员:在平台所构建的虚拟网络中演示网络攻击的过程和网络防御的效 果,侧重于网络攻防技术原理的演示与说明。 此平台的建立会有三方面的意义:给网络安全研究人员提供一个研究和仿真 网络攻击与网络防御的平台;给入侵检测研究人员提供一个检验新的入侵检测算 法的测试平台:给网络安全教学人员提供一个方便、形象的网络攻击与防御具体 实旌过程的演示平台。 1 3 本文主要工作及结构安排 将网络上的攻击与防御结合起来放在个平台上进行研究是一项比较新的内 容。本文对于网络攻击与防御的模拟和研究做了以下工作: l 、设计了网络攻防模拟平台的框架; 2 、实现了网络攻防模拟平台的虚拟网络环境; 3 、实现了网络攻防模拟平台上的防火墙模块: 4 、基于此平台进行了一些应用性的研究。 本论文的章节结构安排如下: 第一章简要的介绍了本文研究的背景,以及研究的目的和意义等: 第二章介绍了网络攻击与防御的基本原理,以及现有的一些开放源代码的网 络安全工具。 第三章详细介绍了网络攻防平台的设计思路和设计原理,并进一步说明了网 第一章绪论 络攻防平台的能够提供使用的接口,最后给出了网络攻防平台的使用流程。 第四章介绍了防火墙技术的基本原理,说明了网络攻防平台中虚拟防火墙模 块的实现细节,包括虚拟防火墙的设计思路,防火墙规则的设计、解析,虚拟防 火墙在平台中的工作原理和工作过程等。 第五章介绍了攻防平台的具体的使用方法和步骤,演示了虚拟防火墙在平台 中的保障作用。 第六章就本文研究的内容做出全面的总结,客删地指出本文的优势和不足, 指出下一步需要开展的工作。 本章简要介绍了论文的课题背景;指出了文章研究的目的和意义;说明了文 章的主要研究内容并且给出了文章结构的详细安排。 第三皇堕丝堕堕垦堡塑茎墼塑塑塞全三垦 三 g g - 章网络攻防原理和开放源码安全工具 2 1 网络攻防原理介绍 自从有了网络,就有了网络安全的问题,并且网络上的安全问题随着网络技 术的发展变得越来越棘手。自从有了网络,网络上的攻击与防御之间的相互对抗 就没有停止过。网络攻击与防御的关系就是矛和盾的关系,正所谓道高一尺,魔 高一丈。我们既要研究网络上的攻击技术,更要研究网络上的防御技术。 2 i 1 网络攻击技术 网络攻击大致可以分为这样几类:被动探测、主动探测、渗透和攻击。 l 、被动探测 被动探测主要是指数据包侦听( p a c k e ts n i f f i n g ) 。数据包的侦听有时又被称为 网络嗅探。以太网中是基于广播方式传送数据的,所有的物理信号都会被传送到 每一个主机节点。此外,网卡可以被设最成混杂模式( p r o m i s c u o u s ) ,这种模式下, 无论监听到的数据帧目的地址如何,网卡都能接收到。我们知道,t c p i p 协议栈 中的应用协议大多数都是基于明文在网络上传输的,这些明文数据中,往往包含 像密码、帐号等这些非常敏感的信息,如果进行数据包的侦听,很容易得到这些 敏感信息。网络数据包的侦听所关心的信息也主要有以下几种:口令、各种帐号、 机密或敏感的信息数据还有底层的协议信息。 数据包侦听是最早出现的,也是最常用的网络探测手段和技术。当然,数据 包探测也有一定的局限性,比如它只能在局域网的冲突域中进行监听,或者是在 两个点到点连接的中间节点上进行监听。 2 、主动探测 主动探测主要有端口扫描( p o r ts c a n n i n g ) 、i p 终了( i pe x p i r y ) 、搡作系统类 型探测等。 ( 1 ) 端口扫描:扫描就是对计算机系统或者其他网络设备进行安全相关的检 测,以找出安全隐患和可利用的漏洞。一个端口就是一个潜在的通信通道,也就 是一个入侵的通道。对目标计算机进行端口扫描,能得到许多有用的信息。进行 扫描的方法很多,可以是手工进行扫描,也可以用端口扫描软件进行,后者更常 见。在手工进行扫描时,需要熟悉各种命令,而且要能够对命令执行后的输出进 行分析。而许多扫描器软件都有分析数据的功能。通过端口扫描,可以得到许多 有用的信息,从而发现系统的安全漏洞。 !旦竺丝堕丝型兰鱼墨堕丝塑塑丝盐皇塑塑塑 扫描通常采用两种策略,包括被动式策略和主动式策略。所谓被动式策略就 是基于主机之上,对系统中不合理的设置、脆弱的口令以及其他与安全规则抵触 的对象进行检查。而主动式策略是基于网络的,它通过执行一些脚本文件,模拟 对系统的进行攻击的行为,并汜录系统的反应,从而发现其中的漏洞。利用被动 式策略扫描策划能够为系统安全扫描。利用主动式策略扫描称为网络安全扫描。 扫描的对象一般有三类: 第一类,操作系统安全扫描; 第二类,数据库安全扫描; 第三类,网络安全扫描( 针对于网络服务、应用程序、网络设备和网络协议 等) 。 ( 2 ) i p 终了技术:i p 终了技术主要是用来探测网络路由,也就是绘制从扫描 主机到目的主机的网络路由图;具体的实现主要是通过不断设置发送i p 数据报的 r t l 值;t t l ( t i m et o1 i r e ) 主要是用来控制i p 数据报在网络中的生存时间;网 络管理人员和安全人员可以利用i p 终了技术来明确网络中的任何两台主机之间的 路出,该项技术是建立在1 i b p c a p 和l i b n e t 组件之上的。该技术的工作原理是: 首先发送传输层数据报到目的主机并且设置t t l 为i ,在收到返回之后在将t t l 的 值增l ,这样循环发送,直到收到目的主机的返回;数据报在网络中的传递过程中, 每经过一个路由器,t t l 值自动减1 ,如果在未到达目的主机之前减到0 ,则路由 器丢弃数据报,并且返回一个i c m p 错误数据报给发送主机,通知发送主机数据报 超时;这时发送主机就知道了数据报终了( e x p i r y ) 的路由地址。 ( 3 ) 操作系统的探测:许多漏洞是与系统相关的,而且往往与相应的某个版 本对应:从操作系统或者应用系统的具体实现中发掘出来的攻击手段都需要辨识 系统;操作系统的信息还可以与其他信息结合起来,比如漏洞库,或者社会诈骗( 社 会工程,s o c i a le n g i n e e r i n g ) 。 一些端口服务的提示信息,例如t e l n e t 、h t t p 、f t p 等服务的提示信息;t c p i p 栈指纹:d n s 都有可能泄漏出o s 系统。可以通过获取足够的信息来辨识操作系 统的类另0 甚至操作系统内核的版本。最常用到的就是栈指纹辨识技术,栈指纹识 别技术是利用t c p i p 协议栈实现上的特点来辨识一个操作系统,它的技术导向是 可辨识的o s 的种类,包括哪些操作系统,结论的精确度,细微的版本差异是否能 识别等。有些工具可供使用如c h e c k o s ,b ys h o k ;q u e s o ,b ys a v a g e ;n m a p ,b y f y o d o r 等。 栈指纹辨别技术又可分为主动栈指纹识别技术和被动栈指纹识别技术。主动 栈指纹识别技术的原理是寻找不同操作系统之间在处理网络数据包上的差异,并 且把足够多的差异组合起来,以便精确地识别出一个系统的o s 版本。它的使用需 要定义一种配! 嚣语言或者格式。具体方法是给一个开放的端口发送f i n 包,有些 第二章网络攻防原理和开放源码安全工具 i 操作系统有回应,有的没有回应,对于非正常数据包的反应。比如,发送一个包 含未定义t c p 标记的数据包,然后根据t c p 连接的序列号风格寻找仞始序列号之 间的规律。这些标志有( 1 ) a c k 值:有些系统会发送回所确认的t c p 分组的序 列号,有些会发回序列号加l 。( 2 ) t c p 初始化窗口:有些操作系统会使用一些固 定的窗口大小。( 3 ) d f 位( d o n tf r a g m e n tb i t ) :某些操作系统会设置i p 头的d f 位来改善性能。通过对这些信息的分析就可以确定该系统类型甚至内核版本。被 动栈指纹识别技术和主动栈指纹识别方法类似,不是向目标系统发送分组,而是 被动监测网络通信,以确定所用的操作系统。如根据t c p i p 会话中的几个属性: t t l 、窗口大小、d f 、t o s 等。 3 、渗透和攻击技术 渗透和攻击的技术相对来说比较多,有拒绝服务攻击、口令猜测攻击、网络 欺骗类型攻击、会话劫持攻击、缓冲区溢出攻击等。这些攻击主要是利用网络系 统的漏洞、网络协议的一些设计缺陷以及编写软件程序代码时留下的可被利用的 软件错误,从而发起的对于网络和网络上主机、路由器等关键设备甚至防火墙、 入侵检测系统等安全防御软件的恶意的破坏。其具体的原理和技术会因攻击的方 式和被攻击的网络的具体环境而不同。 2 1 2 网络防御技术 网络防御技术主要有防火墙技术、入侵检测技术和数据加密技术等。 l 、防火墙技术 防火墙技术是保障网络安全最常用的技术之一,是网络安全的第一道屏障, 保障网络安全的第一个措施往往是安装和应用防火墙。合理地使用防火墙有利于 提高网络抵抗黑客攻击的能力和系统的安全性。 防火墙用来在安全内部网络( 可信任网络) 和外部不可信任网络之间的安全 连接的一个设备或一组设备,提供内部网络和i n t e r n e t 之间安全连接的单点存在。 防火墙具有这样的性质:从里向外和从外向里的数据都必须经过防火墙,这是通 过物理上阻塞所有不经过防火墙的局域网访问来实现的;只有被认可的通信量, 通过本地安全策略进行定以后,才能通过防火墙;防火墙本身不可穿透,这就隐 含使用了一个装有安全操作系统的可信任系统。因此,相对来说防火墙技术是网 络防御所最经常使用的,而且是最容易实现的技术。 2 、入侵检测技术 入侵检测技术的实旋是靠入侵检测系统( i n t r u s i o nd e t e c t i o ns y s t e m ) 来 完成的。入侵检测系统顾名思义就是对入侵行为的发觉。入侵检测是防火墙的合 理补充,帮助系统对付网络入侵,扩展了系统管理员的安全管理能力( 包括安全 网络攻肪模拟平台及肪火墙的设计与实现研究 审计、监视、进攻识别和响应) ,提高了信息安全基础结构的完整性。它从计算机 网络系统中的若干关键点收集信息,并分析这些信息,看看网络中是否有违反安 全策略的行为和遭到袭击的迹象。入侵检测系统被认为是防火墙之后的第二道安 全闸门,在不影响网络性能的情况下能对网络进行检测,从而提供对内部入侵、 外部入侵和误操作时的实时保护。 对一个成功的入侵检测系统来讲,它不但可使系统管理员时刻了解网络系统 ( 包括程序、文件和硬件设备等) 的任何变更,还能给网络安全策略的制定提供 指南。更为重要的是,它应该管理、配置简单,从而使非专业人士非常容易地获 得网络安全。而且,入侵检测的规模还应该根据网络威胁、系统构造和安全需求 的改变而改变。入侵检测系统在发现入侵后,会及时做出响应,包括切断网络连 接、记录事件和报警等。 入侵检测系统主要有以下功能:监控、分析用户和系统的活动;检查系统配 置的漏洞:评估关键系统和数据文件的完整性:识别入侵的活动模式并向网管人 员报警;对异常活动的统计分析;操作系统审计跟踪管理,识别违反政策的用户 活动:评估重要系统和数据文件的完整性。 3 、数据加密技术 网络上的数据加密技术能够大大的提高数据通信的安全性。计算机网络安全 主要涉及传输中的数据和存储中的数据安全,它要求防止攻击者非法地获悉数据 与修改数据。为此需要做到数据的保密性和完整性,可通过现代密码学解决以上 存在的问题。 密码学不仅是编码与破译的学问,而且包括密钥的管理安全、留议设计安全、 单向散列函数、数字签名与认证、鉴别技术等内容。密码学涉及以下基本概念: 明文:信息的原始形式( 记为p ) 。 密文:明文经过变换加密后的形式( 记为c ) 。 加密:由明文变成密文的过程( 记为e ) 。加密通常是由加密算法来实现的。 解密:由密文还原成明文的过程( 记为d ) ,解密通常是由解密算法来实现的。 密钥:为了有效地控制加密和解密算法的实现,在其处理过程中要有通信双 方掌握的专门信息参与,这种专门信息称为密钥( k e y ,记为k ) 。 图2 1 示意了传统的保密通信原理。 ( 秘密信道) 图2 1 传统的保密通信原理 蔓三至旦塑些堕垦里塑茎墼塑塑窒全三垦 网络上的数据加密包括两方面的内容通信加密和文件加密,通信加密是指在 传输过程中的数据加密,文件加密是指将存储的数据进行加密。按通信层次划分 又可分为三个层次:结点加密、链路加密和端到端加密。节点加密是指o s i 模型 的一、二层( 物理层和链路层) 数据加密,仅对报文加密;链路加密是指链路层 进行数据加密,对数据和协议信息加密;端到端加密是指六、七层( 表示层和应 用层) 加密,面向网络高层主体加密,协议信息不加密。 任何加密系统应满足的基本要求有:密码系统是容易使用的;加、解密必须 对所有密钥均有效;密码系统的安全性仅仅依赖密钥的保密,而与算法无关。数 据加密常用的算法有传统密钥加密算法、对称密钥加密算法和公开密钥加密算法。 数据加密技术对于网络安全是极为重要的。 2 2 开放源码安全工具介绍 基于l if l u x 环境的丌放源码安全工具目前有很多,它们的很多的设计思想都 值得网络攻防模拟平台的学习和借鉴。其中一部分网络攻防模拟平台的设备类的 实现要用到一些这样的函数库,另外虚拟网络环境的构建也要用到这些刀:源函数 库。 常见的开放源码的网络安全工具大概有以下几类:l i b p c a p 、l i b n e t 、l i b d n e t 和o p e n s s l 等。 1 、l i b p c a p :主要功能是在网络上抓取数据。l i b p c a p 中得p c a p 就是p a c k e t c a p t u r e 得缩写。l i b p c a p 提供了三个功能,即:( i ) 及时数据包捕获( 1 i r ep a c k e t c a p t u r e ) “2 ) 数据包过滤( p a c k e tf i l t e r ) :( 3 ) 数据包存入文件( o f f l ir ec a p t u r e f i l e ) 。在l i b p c a p 中提供了c 语言的a p i ,可以方便地获取到实现以上功能的函 数。函数可以大致分为以下几类:初始化函数;抓包函数:过滤函数:存储函数: 辅助函数:错误处理函数。 2 、l i b n e t :主要的功能是生成网络数据包。它也提供了很多c 语言的a p i 米 完成网络数据包的生成等任务。l i b n e t 的主要功能函数类型有:( 1 ) 初始化包内 存( i n i t i a l i z ep a c k e tm e m o r y ) ;( 2 ) 初始化网络接口( i n i t i a l i z ep a c k e t m e m o r y ) ;( 3 ) 创建包( b u i l dt h ep a c k e t ) ;( 4 ) 计算包校验和( p e r f o r mp a c k e t c h e c k s u m s ) :( 5 ) 写包( w r i t et h ep a c k e t ) ;( 6 ) 清除( c l e a nu p ) 等。 3 、l i b d n e t :该库类型为c 语言函数库,低级别的网络事务处理程序。l i b d n e t 主要针对用户对于内核a r pc a c h e 和路由表的访问而提供给一些简单的、高级别 的、方便的接口。主要表现在下面八个方面: ( 1 ) 健壮的网络地址操作; ( 2 ) 内核a r pc a c h e 的查找和操作; 网络攻防模拟平台及防火墙的设计与实现研究 ( 3 ) 内核路由表的查找和操作: ( 4 ) 网络接口的查找和操作; ( 5 ) 网络防火墙规则的操作; ( 6 ) 以太网帧和i p 包的发送; ( 7 ) 二迸制缓冲区的操作; ( 8 ) 随机数的操作。 l i b d n e t 在处理低级别的面向网络的参数方面极其有用。 4 、o p e n s s l :主要功能有实现s s l 和t l s 协议;对称密码操作( 密码,消息 摘要) ;对称密码操作( 数字签名,封装) :p k i ,包括o c s p ,x 5 0 9 认证。o p e n s s l 包含两个库:s s l t l s 库( 1 i b s s l 。幻和密码库( 1 i b c r y p t o a ) 。鉴于s s l t l s 库的输出 函数非常多。它支持的加密算法很多:对称密码b l o w f i s h 、c a s td e s 、i d e a 、 r c 2 、r c 4r c 5 ;非对称密码d s a 、d h 、r s a :消息杂凑h m a c 、m d 2 、m d 4 、 m d 5 、m d c 2 、r i p e m d 、s h a 、s h a l 。 2 3 小结 本章描述了两个方面的问题:网络上常见的攻击与防御的原理和一些开放源 代码的函数库。对于网络攻防原理又分别介绍了常见的攻击技术和常见的防御技 术,其中常见的攻击技术包括被动探测、主动探测和渗透与攻击,常见的防御技 术有防火墙技术、入侵检测技术和数据加密技术。最后,简要的介绍了几个常用 的网络安全工具函数库l i b p c a p 、l i b n e t 、l i b d n e t 、0 p e n s s l 等。 第三章网络攻防平台总体设计及实现 l l 第三章网络攻防模拟平台总体设计及实现 3 1 网络攻防模拟平台的框架设计 整个攻防平台按照分层的思想来设计,每一层的功能相对单一而且明确。将 平台划分为五个功能层,分别是:控制层、虚拟网络设备层、公用接口层、中问 层和底层函数库。攻防平台框架如图3 1 所示: 控女倔 j 网络控制梗块il 设备控制模块l1 用户接口模块l l 国佥q 图= 竺 j o 用接口屠 网络接口显示接口 ll li l 些塑擎堕鲞型l 中问定 r 一4 i 通用的冈络攻防函数库i j 显示类库f 1 f l t b e t 等第三方函数库i + l 网络选柽转换嚣 ll 底层曲廖 li 操作幕统自带l | 梗拟 ii 基本显示 i! 网络函数库”网络函数库i 函数库 图3 1 髓络攻防平台分层框架图 各层的功能分别介绍如下: 1 、控制层:控制层主要负责整个平台的初始化、各个模块的初始化,在运行 过程中对各个模块进行控制,并提供一些用户接口供高级用户使用。这一层包括 三个具体的模块:网络控制模块、设备控制模块和用户接口模块。 2 、虚拟网络设备层:主要用于在单机上模拟局域网时的情况,对局域网上的 各种设备进行模拟。模拟网络中所有的数据的传输均由平台内部来完成,并不与 网络攻防模拟平台及防火墙的漫计与实现研究 真实网络发生关系,但是从用户的角度来看跟真实网络是一样,而且可以根掘用 户的需求为用户提供多个网络层次的数据( 例如可提供以太帧、i p 包、t c p 包、 u d p 包等) 。需要在单机上模拟出主机、集线器、路由器、防火墙、网线等基本的 网络设备。各网络设备的实现细节和它们之间的关系在后面介绍。 3 、公用接口层:公用接口分为网络接口和显示接口。“网络接口”将网络层 的功能封装起来,为上层调用提供统一的接口。“显示接口”为上一层提供一些必 要的显示函数。 4 、中阳j 层:对底层的系统函数和基本库进行封装所形成的函数库,用户利用 它们进行二次_ 丌:发。这些函数库主要包括这样几大类:成型的攻防类库、通用的 网络攻防函数库、第三方函数库( l i b n e t 、l i b p c a p 、l i b d n e t 、o p e n s s l 等) 、网络 转换函数以及显示类函数库。 5 、底层函数库:操作系统或者网络协议自有的函数和系统调用,主要有这样 几类:操作系统自带函数库、模拟网络函数库、基本显示函数库和系统调用。 3 2 攻防平台的初始化和使用的流程 l 、初始化流程:平台的使用首先需要对其进行初始化,初始的操作是出平台 自己来完成的,平台的初始化流程图3 2 所示: 初始化开始 读入用户设定 初抬化虚拟网络ll 初始化单一主机 设置网路接口为 虚芏8 l 网络接口 设置网络接口为 真实网络接口 初始化显示梗块 二二 激括网络设备 【韧始化结柬) 、 图3 2 攻防平台的初始化流程图 第三章网络攻防平台总体设计及实现 】3 - _ _ 一。 读入用户设定实际上是读入用户的配置文件,读取用户预先对网络的定 义以及设定的有关参数的解析。 判断是否为模拟根据配置文件中的相关内容判断用户是选择使用“模拟 模式”还是“真实模式”。“模拟模式”是用户的所有网络操作均在平台上模拟实 现,不与现实网络发生联系;“真实模式”是用户的操作直接作用于真实的网络。 真实环境是指实际的网络环境,局域网或者因特网。 模拟环境是指在单机上模拟的网络环境。 2 、平台使用的流程: ( 1 ) 编写相应的程序: 如果用户需要在虚拟网络中或者真实网络中实现自定义的网络行为,那么就 要为每一个设备按照一定的规则编写相应的程序,每个程序记录在一个特定规则 的文件中,在配置文件中提供程序文件和设备的关联。对于每一个程序文件,用 户都相当于在一台独立的真实主机上进行开发。这样,只需更改配置文件,用,、 就可以很方便的在虚拟网络和真实网络中切换,而不必修改执行功能的代码。如 果用户想利用一些已经成型的攻击或者防御方法,平台也提供了一些现成的功能 模块,只需简单的将已有的程序文件与和所需要的设备简单的关联即可,详细觅 下一步。 ( 2 ) 填写配置文件: 配置文件用来记录用户所选网络类型、所选网络设备的数量种类、网络的拓 扑结构以及每个网络设备所对应的程序文件等。网络类型是指用户所需要的是虚 拟网络还是真实网络,虚拟网络可以选择多个网络设备,并将其连接组成网络。 每一个网络设备对应一个文件,文件用来存储用户需要执行的程序。一般用户不 需要更改网络设备所对应的文件,采用默认值,高级用户可以自定义网络设备, 以满足不同层次用户的需要。网络拓扑结构是网络虚拟设备的连接成网络的依据, 控制台根据拓扑结构来构建和初始化网络。 ( 3 ) 编译并运行: 在完成编写程序文件和配置文件后,用户就可以通过命令运行平台来观察结 果了。这些命令主要是些操作系统( 如l i n u x 系统) 提供的编译命令。 3 3 1 网络接口 3 3 攻防平台主要接口的介绍 设计攻防平台的初衷是为用户提供一个方便快捷的模拟工具,但是便利性和 灵活性是相互矛盾的,增强便利性就会牺牲灵活性,增强灵活性会牺牲便利性。 ! !旦竺些堕垡型王鱼墨堕盔塑塑堡生皇兰堡竺壅一一 为此,平台提供了多层次的接口来解决这个问题,用户可以根据需要来在便利性 和灵活性之间做出适合自己的选择。多层次的构架也给平台提供了极大的可扩展 性。下面介绍平台的网络接口: ( 1 ) 成型的攻防类库: 这个类库为用户提供了一些近乎于成型攻击或者检测方法的接口,是网络接 口中最高层的接口,用户只需要简单的设置几个参数并调用它们就可以了。这一 层接口适合于教学和检验用途,例如要检验一种新的入侵检测方法,可以直接调 用攻击接口来产生攻击。 ( 2 ) 通用的网络攻防函数库: 这一层提供一些公用的网络攻防函数,比上一层具有更强的灵活性,可以由 用户来组织使用,以产生用户需要的攻击或防御。 ( 3 ) l i b n e t 等第三方函数库: 现有的有些网络工具和网络安全开源函数库有着很好的功能。网络攻防平台 充分的利用了这些开源函数库。为此,平台使用了一些第三方开发的网络函数库, 如l i b n e t 、l i b p c a p 、l i b d n e t 、o p e n s s l 等,将这些作为网络攻防平台网络接口的 例数第二层。 ( 4 ) 网络转换器: 这一层对于用户来说是透明的,目的是产生个虚拟环境,以增强程序的通 用性。这一层封装了真实网络和虚拟网络,也就是说对于这一层以上的网络函数 不用知道也不会知道它所针对的是虚拟网络还是真实网络。这样,用户就不必为 虚拟网络和真实网络分别编写代码,同一段代码即可实现两种功能。 ( 5 ) “操作系统的网络函数库”和“虚拟的网络函数库”: 操作系统的网络函数库就是操作系统本身提供的底层的未经第三方封装的函 数。虚拟网络函数库是平台中将要开发的函数库,用来模拟操作系统网络函数, 与操作系统的网络函数尽可能的保持一致。这样用户在上层开发的时候就不用考 虑虚拟网络和真实网络的区别了,为用户节约大量的时间。 3 3 2 虚拟网络设备接口 在单机上进行攻防模拟的时候,构造一个虚拟的网络是必须的。在构造一个 虚拟的网络时可能用到的网络设备有主机、路由器、防火墙、集线器等等。这些 设备在虚拟的网络中既有一些相同的转发处理数据的功能,也有各自特有的功能。 主机:主机在网络中的功能可能多种多样,它是最不确定的,考虑到本平台 的功能,可将主机上所具有的功能简单分为:数据包的发送、数据包的接收、产 生攻击、进行防御这四大功能。为了实现这些功能,需要给主机定义一定的属性, 第三章网络攻防平台总体设计及实现 i5 使它能在虚拟环境中实现这些功能。这些属性主要包括网络i p 、网卡的 i a c 地址、 以及它的连接拓扑结构。另外主机还应该有自己的一些特有的属性例如操作系统 的类型、操作系统内核的版本等。 路由器:路由器的功能相对而言,比较固定,就是将到达本路由器的数据包, 通过查看路由表,把它们按照一定的路径传递到目的地。为了实现虚拟网络中的 路由器,必须考虑的属性有i p 地址、路由器中的路由表的形成和维护以及路山器 的路由算法等。 防火墙:防火墙在网络中的功能除了转发数据以外,其最重要的功能就是按 照事先制订的策略对到来的数据包进行检测,并做出相应的处理。所以为了对防 火墙进行模拟,必须考虑到让防火墙具有的属性有防火墙的类型、结构,防火墙 的过滤策略、检测算法等。 集线器:集线器的功能比较简单,它就是将到来的数掘通过广播的方式,向 所有在本集线器上连接的主机发送,若不属于本集线器的范围,就将它转发给另 一个集线器。在构造一个集线器的时候,必须考虑的属性有与本集线器连接的主 机情况、与本集线器级连的另个集线器的情况。 按照面向对象的思想来看待这些不同的网络设备。由于每个网络设备部具有 一些固定的网络功能,所以在实现网络攻防平台时可以将各个网络设备当作一个 对象来对待。如对于主机,可以将其发送数据和接受数据的功能固定在此对象内, 然后用户可以通过设置或者编程,将攻击和防御工具放到此主机上。对于路由器, 它在网络中的功能比较固定,可以将它设置为一个具有转发数据的功能的对象。 对于防火墙,也可将它也具体化为一个对象,将此对象放置在虚拟网络环境中后, 可以通过点击此防火墙,对此防火墙对象的策略进行设鼍,主要是可以对防火墙 的属性例如防火墙的检测策略进行一定的修改等。 在将每个网络设备都设置为一个对象后,用户就可以通过编写网络拓扑结构 文件来构成虚拟的网络环境,在此网络环境的基础上就可以进行网络攻防的模拟。 3 3 3 显示接口 这一部分的功能主要是提供对攻击和防御的过程和结果的图表或文本的显示 功能,它位于虚拟网络设备层之下,向虚拟设备提供显示功能,建立在一些更底 层的显示函数之上。显示接口的层次和调用关系是设备层调用显示接口,显示接 口调用系统显示函数。 显示的结果和形式可以分为三类,第一类是单纯的文本显示,类似于向控制 台输出文本信息,以滚动的方式显示攻击和防御过程和结果的一些数据;另二类 是图表方式的显示,图表可以是动态的也可以是静态的,动态的如二维的曲线图 网络攻防模拟平台及防火墙的设计与实现研究 纵坐标代表的变量随横坐标( 如时间) 的变化动态变化,静态的如一些统计的柱 状图和饼状图;第三类是文件显示,就是将信息记录到文件中,以长期保存后供 后续分析( 前两种显示方式中的数据都可以存放到文件中) a 显示接口实际是封装了一些系统的显示函数,也可以是用户开发的。基于系 统函数开发了一些针对特定攻击和防御的常用显示函数。所有这些函数集合在一 起,以舰定的格式和形式向设备提供基本的显示功能,设备随时可以调用它们。 无论是文本的还是图表的显示,在攻击或防御过程当中,用户可以通过用鼠标单 击设备或其他方式调用相应的显示函数,显示相应的信息。例如在模拟协议三次 握手的时候,在两台模拟的主机上,用户可以单击主机然后在弹出的窗口中以滚 动文本的方式显示该主机收发数据包的信息,也可以动念的以图形的方式显示数 据包在两台主机之间的传输过程( 以图像代表数据,形象的显示数据在主机之间 的传输) ,无论对于文本格式的显示还是图表格式的显示,用户都可以将显示的结 果以文件的形式保存下来,并可以形成最终的报告,报告包括文本的和图表的数 据,用以向用户提供模拟的结果或检验的结果。 3 。4 攻防平台的应用分类 网络攻防模拟平台主要为用户提供了两方面应用,一是针对现实中的真实网 络,二是针对虚拟网络环境下的模拟仿真。在系统中,所支持的攻击、防御都可 以在真实的网络下使用,这时的应用就如同一个真实的网络攻击或防御工具,来 达到攻击远程主机或防御远程主机攻击的目的。也可以在一台计算机模拟一个网 络环境通过对虚拟网络中的网络设备的配置以达到检验攻击与防御效果的目的 或者从教学的角度演示攻击与防御的过程和原理。 3 4 1 攻击工作部分 该平台为攻击做了一些准备工作,使用户可以在此平台上直接或者稍加编码 便可以实现一些简单的攻击或者模拟攻击。目的是让使用者明白攻击原理以便更 好地对攻击进行防御。攻击可以分为主动攻击和被动攻击。在主动攻击部分,主 要是通过底层库中提供的发包函数,使用户可以发送i p 层的数据包,与远程主机 建立连接,接受远程反馈,从而实现一些探测网络的信息的功能,比如端口扫描、 i p 终了、路由跟踪、探测主机操作系统信息等。被动攻击主要是通过侦听局域网 上的数据包,获取流经本地网络的数据包,然后对获取的数据包进行分析,提取 有用的信息,比如获取发送数据包主机的i p 地址和m a c 地址,根据m a c 中的前三 位o u i ( o r g a n i z a t i o n a l l yu n i q u ei d e n t i f i e r ) 标签来确定该主机使用的网卡的信 第三章网络攻防平台总体设计及实现 息等。所列举的这些并不是全部,而是一些基础性的工作,任何网络的攻击和防 御都是基于这些基础性东西之上的,用户可以将主动发包和被动接收数据包相结 合,在此基础上进行开发,实现一个完整有效的攻击或防御系统。 3 4 2 防御工作部分 防御部分的工作与攻击部分类似通过对系统底层的函数( 通常是一些抓取 网络数据包的函数) 进行封装形成完备的防御函数库提交给用户。用户通过调用 此防御函数库,并进行简单的编码就可以构建一个具体的防御系统,其中主要包 含的技术环节有:i p 分片重组、t c p 流重组、端口扫描监测、防火墙技术等。例 如将平台的工作重点放在为用户构建入侵检测系统( i d s ) 时提供尽可

温馨提示

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

评论

0/150

提交评论