




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于FIDXP的分布式入侵防御系统的设计(仅供参考)面对当前严重的网络安全问题,需要用立体防御的方法来应对.入侵检测和防火墙技术是网络安全的重要组成部分,但他们之间相互独立,不能联动起来保护网络安全.本文设计了一种安全联动协议,可以结合防火墙和入侵检测各自的优点,实现实时检测和阻断攻击,可以用来构建分布式的入侵防御系统.实验表明该协议安全有效,可以增强现有网络的保护能力.关键词:入侵检测系统,防火墙,联动协议FIDXP-based distributed intrusion detection system research and implement【Abstract】Facing the serious network security problem ,we should use dynamic system to protect the internet.Intrusion detection and firewall are important components of network security ,but they are separate and cant work with each other .this paper designed a protocol FIDXP ,it can combine the virtue of firewall and ids ,it can be used to build a distribute intrusion detection system to detect and block the attacker in realtime.The experiment show that this protocol is useful and workable.It can enhance the security level of current network . 【Key words】:intrusion detection system , firewall, interaction protocol1 引言当前网络安全状况日趋恶劣,从互联网上下载黑客攻击工具十分容易,所以现在发动一次攻击也非常简单.防火墙和入侵检测系统是目前用的最广泛的两大安全产品.防火墙(Firewall)1的主要功能是串行接入网络,以安全策略为基础,将内外网络隔离开来,对内网和外网的通信进行访问控制,对不符合访问控制策略的数据包进行丢弃.入侵检测系统(IDS)的功能主要是旁路监听受保护网络,以攻击特征库为基础,检测分析网络访问是否有攻击的内容,如果发现攻击,就进行报警和响应.IDS也具有一定的阻断连接功能,但不能有效的实现对恶意攻击的连接进行实时阻断的功能,而且无法跟其他安全设备交互,所以需要设计一种安全联动协议,使Firewall和IDS能够协同起来3,发挥IDS的检测优势和Firewall的阻断优势,共同保护网络的安全.本文将以开源的防火墙软件iptable和入侵检测软件snort为基础,设计一种安全的联动协议FIDXP(Firewall and Ids exchange protocol),构建分布式的入侵防御立体防御体系.2 系统分析与设计要构建分布式入侵防御体系,当IDS_A检测到攻击威胁时,不但需要跟FW_A进行联动,动态的添加FW_A的阻断规则.还要能够使IDS_A跟FW_B和FW_C进行联动.构成立体防御体系.结合Ids的攻击检测优势和防火墙的网络连接阻断优势,可以建立分布式的入侵防御体系.系统网络拓扑如图1所示:作者简介:刘松(1983-),男,硕士,主研方向:网络安全; E-mail:周清雷,男,教授,博士生导师,主要研究自动机理论,网络安全.图1 网络拓扑图为实现安全设备之间的信息交互,美国国防高级研究计划署(DARPA)和互联网工程任务组(IETF)的入侵检测工作组 (IDWG)发起制订了一系列建议草案4,从体系结构、API、通信机制、语言格式等方面规范IDS的标准.用于入侵检测与响应(IDR)系统之间或与需要交互的管理系统之间的信息共享.但这样的方案需要对现有的安全软件进行升级,对于大量使用开源软件snort和iptable的用户来说代价太大.Fwsnort5是另一个开源项目,其目的是将snort的检测规则转换为iptable的阻断规则,这固然结合了二者的优点,但是没有体现出动态性,一个snort跟多个iptable之间交互规则时出现困难.本文的思路如下:根据snort的报警日志,分析提炼出攻击的五元组(protocol,sip,dip,sport,dport)信息,同时根据报警的优先级别,设置一个阻断时间(blocktime),将这这六元组信息发给联动的iptable. iptable收到联动消息后,动态添加一条带有时间限制的阻断规则,当阻断时间到期后,再删除刚才添加的那条阻断规则.这样就能够结合iptable和snort各自的优点,构建一个分布式的入侵防御系统.Snort检测到攻击后会报警并且记录日志.其日志格式如下:Classification: Misc activity Priority: 3 04/13-09:55:05.849213 :4190 - :7001UDP TTL:128 TOS:0x0 ID:56560 IpLen:20 DgmLen:60 Len: 32其中Priority:3是报警的优先级,数值越大表明威胁越严重.其他字段都是本次通讯的具体协议特征.Iptable是linux中自带的一款开源防火墙,可对经过的数据包进行NAT转换、 DROP、LOG、ACCEPT和REJECT等操作.以上面snort的报警日志为例,当iptables收到snort发来的联动阻断消息之后,可将报警信息转换为如下一条iptable规则:iptables I INPUT 1 p udp s -sport 4190 d -dport 7001 j DROP为了能实现规则的时效性,需要Snort根据检测到的威胁的严重程度,将阻断的时间告诉iptable.阻断时间是报警优先级的线性函数.定义如下:BlockTime=priority*Basetime.Basetime是基准的阻断时间.报警优先级越高则阻断时间越长.到达阻断时间之后,该条规则需要被删除,否则iptable规则将无限膨胀.但是iptable本身没有动态删除规则的功能,需要安装一个ipset模块6,它在指定的一段时间到期之后,会自动删除该条iptable规则,可以实现规则的时效性,这样就不会导致iptable规则的无限膨胀.举例如下:ipset -N list iptree -timeout 180它表示对list中的地址阻断180秒,时间到期之后就会自动清除该设定.为了实现联动,需要设计一个安全健壮的联动协议,下面将介绍FIDXP协议的设计和实现.3 安全联动协议FIDXP协议要保证snort和iptable之间的安全通信,就要满足信息安全的机密性,完整性,保密性,可靠性等安全属性7.文中用到得术语定义:Ids: 联动得snort入侵检测系统.Fw: 联动iptable防火墙.msg: Ids发给Fw的联动消息.Reply: Fw回复给Ids的确认消息.seq: msg包的同步序列号.Kind: reply包的类型.Content: 联动消息体的具体内容,包括协议,地址,阻断时间.C_seqnum: Ids选择的同步序列号.S_ seqnum: Fw选择的同步序列号.Key: 预共享密钥.Auth_ct: 校验包含的内容,用于身份认证.Auth: 计算得到的HMAC校验值,用于完整性校验.Blowfish: Blowfish对称加密算法.HMAC: 带密钥得摘要算法.Blocktime: 阻断时间安全联动协议的主要交互过程是: Ids发送联动消息msg_1给Fw.Fw校验通过之后回复一个确认响应reply_1.Ids收到确认响应reply_1且校验通过,发送下一条消息msg_2,里面包含了对reply_1得确认,Fw端收到msg_2之后要判断其中是否包含对reply_1得确认,判断通过,再发送针对msg_2得确认响应reply_2给Ids.双方都要对消息进行校验和重放判断.系统运行状态如图2所示:其中si表示Ids的状态,fi表示Fw的状态.图2 系统运行图3.1 协议设计Ids将报警信息发给防火墙,如果收不到回复,就等待一段超时时间然后重发数据包.收到回复包之后,要对数据包进行身份认证和完整性校验.其中要经过跟Fw端进行同步序列号协商.其中Ids发送的消息(msg)由以下内容构成. 数据格式定义:Ids.msg = Ids.auth_ct + Ids.auth.Ids.auth_ct =Blowfish (Ids.KEY, Ids.seq + Ids.c_seqnum + Ids.s_seqnum + Ids.content), Ids.Content = ( sip , dip , sport , dport , protocol , blocktime );Ids.auth = HMAC(Ids.auth_ct + Ids.key).Fw端在指定端口监听,收到数据包之后就进行完整性验证和身份验证.还要进行重放判断.验证判断完毕,根据阻断信息,添加一条阻断策略. Fw的消息(reply)构成内容如下:Fw.reply = Fw.auth_ct + Fw.auth .Fw.auth_ct = Blowfish (Fw.KEY, Fw.kind + Fw.c_seqnum + Fw.s_seqnum ),Fw.auth = HMAC (Fw.auth_ct + Fw.key ) .联动协商和实现过程如下:初始阶段,Ids跟Fw协商一个共享密钥key.使得Ids.key = Fw.key.s1Ids发送联动消息给Fw.Ids.Content = ( sip , dip , sport , dport , protocol , blocktime );Ids.auth_ct=Blowfish(Ids.KEY,Ids.seq+Ids.c_seqnum+Ids.s_seqnum+ ds.content), Ids.auth= HMAC(Ids.auth_ct + Ids.key),Ids.msg = Ids.auth_ct + Ids.auth.s2Ids等待收到Fw发来得消息回复.f1Fw收到Ids的联动消息,用Fw.key进行身份验证和完整性检查.Auth = HMAC (Ids.auth_ct + Fw.key);Ids.auth=?=auth ;解密Ids.auth_ct得到联动消息.进行同步判断和防重放判断.Ids.s_seqnum =?= Fw.s_seqnum; Fw.c_seqnum =? Ids.c_seqnum ;验证通过,更新Fw端得同步序列号.Fw.c_seqnum = Ids.c_seqnum ; Fw.s_seqnum + ;构造响应消息发给Ids.Fw.auth_ct = Blowfish (Fw.KEY, Fw.kind+Fw.c_seqnum+ Fw.s_seqnum ),Fw.auth=HMAC(Fw.auth_ct+ w.key ) ,Fw.reply = Fw.auth_ct + Fw.auth .f2Fw等待收到Ids得回复消息s3Ids收到Fw得响应包reply,用Ids.key进行完整性验证.Auth = HMAC( Fw.auth_ct + Ids.key ); Fw.auth =?= auth ;解密Fw.auth_ct,得到Fw回复包的同步序列号,看是否同步,是否为消息重放.Ids.c_seqnum =?= Fw.c_seqnum ; Ids.s_seqnum =? Fw.s_seqnum ;验证通过,更新Ids端得同步序列号.Ids.s_seqnum = Fw.s_seqnum ; Ids.c_seqnum+ ;发送下一条消息给Fw端.f3Fw收到消息之后,先进行完整性验证,验证通过,解密数据包.判断消息是否是对上一个响应消息的确认,Fw.c_seqnum = Ids.c_seqnum ; Fw.s_seqnum + ;确认通过,更新Fw端同步序列号,发送对本次消息的确认.4 安全性分析评价一个协议的安全性,主要包括机密性,完整性,可用性,认证性等指标.下面将分析本协议的安全性.身份认证: 本协议使用预共享密钥的方式.进行通讯之前,Ids要跟Fw约定一个共享的key作为双方的共享密钥key.其中key=MAC(Ids.ip , Fw.ip);由通信双方的ip地址通过hash函数计算得出.机密性:对于传输的阻断消息内容,使用Blowfish8加密方法加密.Ids.msg = Blowfish(Ids.key , Ids.content),发给Fw之后,Fw使用同样的密钥key解密得到阻断消息,添加阻断策略.Blowfish是对称加密算法,加解密速度非常快,对于Ids和Fw这样高实时性设备来说非常重要,不能因为计算加解密消耗大量cpu时间.本协议中,每次Ids和Fw协商同步序列号时,都会选取一个随机值,更增加了破译难度.使用Blowfish加密方法,其安全性依赖于共享key的安全性.完整性:加密过后的数据,还要使用md5计算一个完整性认证尾部.auth = md5(Ids.msg , key) ;即将共享密钥key和加密后的消息密文一起计算完整性校验值.如果数据在传输中遭遇修改或破坏,接收方都能检测出来,从而拒绝接收.抗重放:初始通信阶段, Ids和Fw之间要相互通告自己随机选取的一个同步序列号,将其作为消息的一部分被加密传输.每发送完一个消息就将同步序列号加一.如果收到序列号回退的包,说明遭遇重放包,将之丢弃.当序列号加到最大导致数值回绕归零时,要重新协商同步序列号.这样每一轮的数据传输初始序列号都是不同的,更增强了抗重放特性.可用性:本协议使用UDP传输.因为Ids和Fw都是安全设备,要求有较高的数据处理性能.UDP协议是无连接协议,连接的建立、维护和终止,其开销都较TCP小很多.本协议中使用重传机制保证了UDP协议的可靠传输.由上述分析可知,本协议较好的保证了信息传输的安全性.5实验实验使用两台防火墙Fw_A和Fw_B以及两台snort即Ids_A和Ids_B.Fw使用Redhad9.0自带的iptable,Ids使用snort2.8,入侵测试程序使用x-scan3.3.为了测试该联动协议的有效性,编写了两个应用程序Ids_client和Fw_server. Fw_server是个服务器程序,监听在2010端口,通信协议使用UDP协议.Fw_server通过读取配置文件Fw.conf得到要联动的Ids的地址和预共享密钥.Fw.conf配置格式如下:Ids.ip_A key_AIds.ip_B key_BIds_client是客户端程序,通过分析snort的报警日志给Fw端发送联动消息.Ids_client也要读取配置文件Ids.conf,得到联动端的Fw地址和预共享密钥,以及设定的基础阻断时间,配置格式如下:Fw.ip_A key_A time_AFw.ip_B key_B time_B修改配置文件,使Ids和Fw之间能相互联动.对Ids_A保护的网络用x-scan扫描.如下所示:图3 x-scan扫描图示此时在Fw_A和Fw_B端,可以看到添加的阻断规则,如下图所示:图4 ipt
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025江苏南京白下人力资源开发服务有限公司招聘劳务派遣人员1人(二十六)模拟试卷及一套完整答案详解
- 2025北京市怀柔区卫生健康委员会所属事业单位招聘25人考前自测高频考点模拟试题含答案详解
- 2025广东茂名市化州市第二批就业见习岗位招聘42人模拟试卷完整答案详解
- 2025年山东文旅集团科技发展有限公司招聘模拟试卷及一套答案详解
- 2025年宁夏电力投资集团有限公司春季校园招聘开始啦考前自测高频考点模拟试题及一套参考答案详解
- 2025年河北承德辰飞供电服务有限公司招聘101人模拟试卷附答案详解(考试直接用)
- 2025年瑞昌市面向社会公开招聘“多员合一”社区工作者【27人】考前自测高频考点模拟试题有完整答案详解
- 2025年宜昌市消防救援支队政府专职消防员招聘48人考前自测高频考点模拟试题及参考答案详解
- 2025宏安集团有限公司博士后科研工作站招聘(山东)模拟试卷及答案详解(新)
- 2025河南新乡新华医院新乡市中西医结合医院招聘模拟试卷及答案详解(历年真题)
- 2026版一本英语阅读真题80篇-3年级
- 婚礼婚纱款式指南
- 高三运动会课件
- 法语幼儿教学课件1
- 钩针课件教学课件
- 淮阳豆门乡消防安全培训课件
- 海上风电场安全培训课件
- 2025版CSCO非小细胞肺癌诊疗指南解读
- 红星照耀中国第九章课件
- GB/T 13090-2025饲料中六六六、滴滴涕的测定
- (2025)学法用法考试题及答案
评论
0/150
提交评论