ImageVerifierCode 换一换
格式:DOCX , 页数:33 ,大小:106.02KB ,
资源ID:5089784      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-5089784.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(网络入侵取证分布式系统的设计与实现.docx)为本站会员(b****4)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

网络入侵取证分布式系统的设计与实现.docx

1、网络入侵取证分布式系统的设计与实现网络入侵取证分布式系统的设计与实现蔡 超 李 祥(贵州大学计算机软件与理论研究所)摘要:本文研究网络入侵取证,在Win32平台下设计实现了由取证机及客户端信息采集系统构成的分布式网络入侵取证系统,包括链路层以太帧的捕获子系统(从网络传输底层获取追踪、取证所必须的MAC地址,IP地址,通讯内容等详细信息),被取证机的数据采集子系统(检测核心机密文件是否被篡改,重要进程的运行情况等)等;文中对网络数据包捕获,取证系统自身保护,系统间通讯给出了多种设计方案,并做了比较和探讨。关键词:入侵取证 网络监测 取证机 Distributed System of Forens

2、ic Discovery On Computer Network Intrusion Design and Implementation Cai Chao Li XiangAbstract : With the development of information technology ,people are increasing concern on the security and safety of information. According to the theory of Computer Network Intrusion Forensic Discovery System, w

3、e designed and implemented some parts about Computer Network Intrusion Forensic Discovery System including the part of Ethernet frame capture (get the information that is important to forensic discovery such as MAC address , IP address and the content), the part collect important information and dat

4、a from the computers ( the modification of important and secret documents , the state of key process) .In the paper we design several solution about packet capture , forensic discovery system protection and communication also we compare these solutions. keyword : Intrusion Forensic Discovery , Netwo

5、rk Monitor , Forensic Discovery System引 言计算机网络入侵取证是一门针对计算机网络入侵与犯罪进行证据获取、保存、分析和出示的计算机网络技术。目前,入侵取证的模式大致可分为两种,一种是在案发后,使用技术手段对相关计算机进行取证,主要是对被损坏的文件进行恢复和分析,同时,发现相关入侵信息;另一种,是取证机进行实时监测,对连接在网络中被保护终端的状态数据进行即时监测记录,类似与飞机上使用的黑匣子,一但发生入侵行为,便可通过对记录的数据进行分析,确定攻击源。本文研究网络入侵取证,在Win32平台下设计实现了由取证机及客户端信息采集系统构成的分布式网络入侵取证系统,

6、包括链路层以太帧的捕获子系统(从网络传输底层获取追踪、取证所必须的MAC地址,IP地址,通讯内容等详细信息),被取证机的数据采集子系统(检测核心机密文件是否被篡改,重要进程的运行情况等)等;文中对网络数据包捕获,取证系统自身保护,系统间通讯给出了多种设计方案,并做了比较和探讨。一、入侵取证的意义与现状在无法有效防范网络、计算机犯罪的情况下,有效的打击网络的非法入侵者显得十分重要,计算取证技术为我们提供了手段,通过获取电子证据,寻找罪犯并将其绳之于法。计算机取证是一门针对计算机入侵与犯罪进行证据获取、保存、分析和出示的计算机网络技术。目前,入侵取证的模式大致可分为两种,一种是在案发后,使用技术手

7、段度对相关计算机进行取证,主要是对损坏的文件进行恢复和分析,同时,发觉相关使用信息;另一种,是实时监测模式的取证机,它连接在网络中随时监测记录被保护终端的状态数据,类似与飞机上使用的黑匣子,一但发生入侵行为,便可通过对记录的数据进行分析,确定攻击源,依法打击入侵者。网络入侵已成为最主要的攻击手段,网络安全一直以来都是,网络应用进一步发展的核心问题。防火墙是传统入侵防范措施,在技术理论上,现代防火墙是一种先进而复杂的基于应用层的网关,经过仔细的配置,通常能够在内、外网之间提供安全的网络防护,降低网络被攻击的风险,但实践中发现,仅仅依靠防火墙是不够的,网络入侵检测和取证系统正成为其有效的补充。有效

8、的监测、记录网络的数据包,是发现入侵行为,取证的重要手段。黑客攻击的重点通常是重要文件,例如,对网站的攻击常常是以恶意窜改网页文件的方式进行的。因此,主动监视关键文件已获取篡改迹象是入侵取证的关键。目前,国际上的入侵监测技术也正出于起步和探索阶段,同时,计算机取证还需要与相关的法律相结合,但是现行与之相关的法律尚不完善。已开发的一些取证工具有:The Coroners Toolkit“取证剖析工具”可以用于被删除文件的恢复、.TASK针对文件系统取证的命令行工具集合等软件。二、分布式网络入侵取证系统网络入侵取证系统的核心是取证机,取证机实时的获取网络数据和被取证机的各种重要信息并进行存储,并能

9、对数据进行分析得出最终结论。取证机上应包含高性能网络监听部分用于获取网络数据源,监测网络中的全部活动;客户机信息采集部分接收、保存来自客户机信息收集器的各种信息;数据分析部分帮助网络管理员根据记录分析入侵行为。被取证机上包含信息收集器用于收集包括重要文件访问、篡改等重要的系统信息,并将其发回取证机。网络物理结构框架如图: 网络入侵取证系统的流程如下(适当加点文字说明):三、网络入侵取证系统的设计及技术要点下面讨论网络入侵取证系统的原理,实现网络入侵取证系统中的主要模块。3.1网络数据采集实现网络监听技术可以有效捕获网络数据包是实现网络监测,入侵检测,入侵取证的系统的基石。使用网络监听技术可以发

10、现入侵并对入侵者进行追踪定位,在对网络犯罪进行侦查取证时获取有关犯罪行为的重要信息,成为打击网络犯罪的有力手段。3.1.1网络监听的基本原理以太网数据传输是通过广播实现的,将要发送的数据包发往连接在一起的所有主机,包中包含着应该接收数据包主机的正确地址,只有与数据包中目标地址一致的那台主机才能接收。但是,当主机工作监听模式下,无论数据包中的目标地址是什么,只要经过自己网络接口,主机都将接收。当网络中的两台主机通信的时候,源主机将写有目的的主机地址的数据包发向目的主机。TCP/IP协议中数据包从IP层交给数据链路层,而网络接口是不会识别IP地址的,因此在网络接口数据包又增加了一部分以太帧头的信息

11、。在帧头中有两个域,分别为只有网络接口才能识别的源主机和目的主机的物理地址,这是一个与IP地址相对应的48位的MAC地址。当数据帧到达一台主机的网络接口时,正常情况下,网络接口读入数据帧,如果数据帧中携带的物理地址是自己的或者是广播地址,则将数据帧交给上层协议软件,也就是IP层,否则就将这个帧丢弃。对于每一个到达网络接口的数据帧,都要进行这个过程。然而,当主机工作在监听模式下,所有的数据帧都将被交给上层协议软件处理。常用的以太网卡支持以下工作模式:广播模式、多播模式、直接模式和混杂模式。网卡在设置为广播模式时,它将会接收所有目的地址为广播地址的数据包,一般所有的网卡都会设置为这个模式。网卡在设

12、置为多播模式时,当数据包的目的地址为多播地址,而且网卡地址是属于那个多播地址所代表的多播组时,网卡将接纳此数据包,即使一个网卡并不是一个多播组的成员,程序也可以将网卡设置为多播模式而接收那些多播的数据包。网卡在设置为直接模式时,只有当数据包的目的地址为网卡自己的地址时,网卡才接收它。网卡在设置为混杂模式时,它将接收所有经过的数据包,这个特性是编写网络监听程序的关键。3.1.2 用Libpcap软件包实现数据分组的捕获Libpcap(其Windows版本为Winpcap)是一种与系统无关,采用分组捕获机制的分组捕获函数库,用于访问数据链路层。Libcap在不同的平台上采用统一的编程接口,使用li

13、bcap编写的程序可自由的跨平台使用。Windows并未提供内置的分组捕获机制,这一功能由应用系统提供,Winpcap使用BPF虚拟机(NPF)补充了这一机制。NPF在Windows 95/98/ME中以VXD文件的方式实现,在windows2000中以SYS文件的方式实现。由于Libpcap的平台无关性及其优异的性能,下面将论述基于Libpcap的高性能网络监听器的实现。3.1.3 Libpcap的体系结构Libcap接口支持基于BSD数据过滤器(BPF)的数据过滤机制。Winpcap是基于NPF机制的,NPF于BPF最大的不同在于采用的内核缓存的形式不同。Libpcap是基于程序员的角度设

14、计的,它帮助程序员实现了应用程序与操作系统内核的接口。Libpcap提供了一组强大而高效的函数来实现数据包的捕获,同时提供了用户数据缓存用于存储来自与内核的数据包,有效防止应用程序进入系统内核管理的存储区域,提高程序的健壮性。基于BSD的Libpcap结构Libpcap由二十多个C程序文件组成,按功能大致分为以下几个部分:1) 打开,读取设备,设置过滤部分2) 编译、优化、调试过滤部分3) 脱机方式监听部分4) 本地网络设置检测部分5) 主控程序及版本部分3.1.4 Libpcap数据包捕获程序流程1. 获取本地设备信息。通过函数pcap_lookupdev寻找系统中可用的网络接口设备,返回一

15、个表示网络适配器的字符串。2. 打开设备开始监听会话通过函数pcap_open_live()建立监听会话。Pcap_t *pcap_open_live(char *device,int snaplen,int promisc,int to_ms,char *ebuf)其中:device为上一步中所提到的网络适配器的字符串,snaplen定义监听程序所捕获的最大字节数,promisc定义是否将网络适配器设置为混杂模式。to_ms定义读操作的时间。Ebuf函数调用失败时返回错误信息字符串。3. 设置过滤条件编辑过滤字符串,设置过滤器,制定要捕获的主机、协议等,可以有效的捕获指定类型的数据。通过函数

16、pcap_compile将过滤字符串编译为二进制。常用的过滤字符串有“host 210.40.7.129”表示捕获主机210.40.7.129收发的数据帧,“tcp” 表示捕获协议类型为TCP的数据帧,“port 20” 表示捕获目的或源端口是20的数据帧等等,很多过滤字符串还能进行组合。由pcap_setfilter()函数进行内核过滤器的设置生效。 4. 执行捕获循环 每捕获一个数据包后就调用用户的回调函数对数据包进行处理,以上功能可通过调用以下两个函数实现pcap_dispatch,pcap_loop,它们的功能基本相同,唯一的差别在于pcap_loop在读取超时时不会返回。3.1.5

17、监听程序性能的调整在需提高监听程序性能时可做以下相应调整。1 调整用户级缓存。通过修改pcap_open_live()函数的源代码并重新编译后来调整用户级缓存。2 调整函数pcap_open_live()中的读操作等待时间值。通常出于效率可将该值设置的比较大;但当对响应时间要求比较高时,应将该值改小。3 设置严格的过虑条件。4 在基于WIN32平台,winpcap中还可以通过函数pcap_setbuff()来设置内核缓存,通常情况,要取得较好的性能应设置较大的内核缓存。3.1.6 数据帧的协议解析捕获后的数据帧经过解析才能得到我们想要的信息,如作为网络监听所需要的数据帧的源地址,目的地址,协议

18、类型等信息。解析的过程是将数据帧中的数据按不同协议进行分析提取。首先,要按照不同协议数据组织格式定义效应数据类型,下面根据以太网网数据帧的格式及TCP/IP协议栈定义相关数据类型。定义以太帧的头部数据类型:typedef struct UCHAR DestMac6; UCHAR SrcMac6; UCHAR Etype2;ETHHEADER;注意网络接口卡驱动程序会负责计算效验和,并取走帧中的前同步字符和效验字段。根据IP数据包的封装格式定义IP头部的相应数据类型:typedef struct UCHAR header_len:4; UCHAR version:4; UCHAR tos:8;

19、/ type of service USHORT total_len:16; / length of the packet USHORT ident:16; / unique identifier USHORT flags:16; UCHAR ttl:8; UCHAR proto:8; / protocol ( IP , TCP, UDP etc) USHORT checksum:16; UCHAR sourceIP4; UCHAR destIP4;IPHEADER;可根据以上示例定其他协议的相应数据结构。3.1.7网络监听程序实例以下将通过作者利用Winpcap及MFC开发的网络入侵取证系统

20、的网络数据包捕获部分,来进一步阐述利用libpcap开发网络监听程序的方法。以下仅分析程序的监听部分。1 数据类型定义为了实现捕获数据的解析定义了相关数据类型:(在文件decode.h中定义)/定义协议类型名称char *Proto = Reserved, ICMP, IGMP, GGP, IP, ST, TCP, UCL, EGP, IGP, BBN-RCC-MON, NVP-II, PUP, ARGUS, EMCON, XNET, CHAOS, UDP, MUX, DCN-MEAS, HMP, PRM, XNS-IDP, TRUNK-1, TRUNK-2, LEAF-1, LEAF-2,

21、RDP, IRTP, ISO-TP4, NETBLT,MFE-NSP, MERIT-INP, SEP, 3PC, IDPR, XTP, DDP, IDPR-CMTP, TP+, IL, SIP, SDRP, SIP-SR, SIP-FRAG, IDRP, RSVP, GRE, MHRP, BNA, SIPP-ESP, SIPP-AH, I-NLSP, SWIPE, NHRP, unassigned, unassigned,unassigned, unassigned, unassigned, unassigned,any host internal protocol, CFTP, any lo

22、cal network, SAT-EXPAK, KRYPTOLAN, RVD, IPPC, any distributed file system, SAT-MON, VISA, IPCV, CPNX, CPHB, WSN, PVP, BR-SAT-MON, SUN-ND, WB-MON, WB-EXPAK, ISO-IP, VMTP, SECURE-VMTP, VINES, TTP, NSFNET-IGP, DGP, TCF, IGRP, OSPFIGP, Sprite-RPC, LARP, MTP, AX.25, IPIP, MICP, SCC-SP, ETHERIP, ENCAP, an

23、y private encryption scheme, GMTP;typedef struct /定义以太帧的头部数据类型 UCHAR DestMac6; UCHAR SrcMac6; UCHAR Etype2; ETHHEADER;typedef struct /IP头部的数据类型 UCHAR header_len:4; UCHAR version:4; UCHAR tos:8; / type of service USHORT total_len:16; / length of the packet USHORT ident:16; / unique identifier USHORT

24、flags:16; UCHAR ttl:8; UCHAR proto:8; / protocol ( IP , TCP, UDP etc) USHORT checksum:16; UCHAR sourceIP4; UCHAR destIP4; IPHEADER;typedef struct /定义端口数据类型用于解析TCP和UDP中的源端口和目的端口 USHORT srcPort; USHORT decPort;PORT;2 监听和解析过程的实现pcap_t* fp;UINT listen(LPVOID Param ) bpf_u_int32 mask; bpf_u_int32 net; CS

25、tring strerr; struct bpf_program filter; char ebufPCAP_ERRBUF_SIZE; char *adapter; if (!m_continue) fp=NULL;return 0; tt= sizeof(Proto) / sizeof(char *); / 1.查找本地网络适配器 adapter=(char*)pcap_lookupdev(ebuf); pcap_lookupnet(adapter,&net,&mask,ebuf); if(adapter = NULL) strerr.Format(PCAP error:%s,ebuf);

26、MessageBox(NULL,strerr,NULL,0); return 1; / 2.建立监听会话 / Note: the adapter may not proper adapter! fp = pcap_open_live(adapter, 2000, 1, 20, ebuf); char f_app250; for (int i=0;i250;i+) f_appi=0; filter_app.TrimLeft(); filter_app.TrimRight(); strcpy(f_app,(LPCSTR)(filter_app);/filter_app为全局字符变量,在其他部分设定

27、 /表示过滤规则字符串。 if(fp = NULL) strerr.Format(PCAP error:%s,ebuf); MessageBox(NULL,strerr,NULL,0); return 1; if(pcap_datalink(fp) != DLT_EN10MB) /返回数据链路层的类型 MessageBox(NULL,Not Ethernet 10MB adapter!,NULL,0); pcap_close(fp); return 1; pcap_compile(fp,&filter,f_app,0,0); pcap_setfilter(fp,&filter);/,0,net

28、 / 3.建立捕获循环 pcap_loop(fp, 0, dispatcher_handler, NULL);/ dispatcher_handler为数据包处理回调函数 / 4.关闭设备. pcap_close(fp); fp=NULL; return 0;3 数据包处理回调函数。函数将解析后得到后的信息,显示在对话框中的ListView控件中,并将全部数据帧的内容以十六进制显示在文本框中。void dispatcher_handler(u_char *,const struct pcap_pkthdr *header, const u_char *pkt_data) if (!m_cont

29、inue) :AfxEndThread(CREATE_SUSPENDED ); CGuicapDlg * m_dlg=dynamic_cast(:AfxGetApp()-GetMainWnd(); ETHHEADER *eth_header = (ETHHEADER *)pkt_data;/解析数据包的以太帧头部 CTime t = CTime:GetCurrentTime();/获取当前时间 CString item; item.Format(%02d:%02d:%02d,t.GetHour(),t.GetMinute(),t.GetSecond(); m_dlg-m_list.Insert

30、Item(0, item, -1); item.Format(%ld,header-len); m_dlg-m_list.SetItemText(0, 1, item); if (header-len = ETHHEADERSIZE)/ 解析数据包的IP头部 IPHEADER *ip_header=(IPHEADER *)(pkt_data+14); if (ip_header-proto 99) strcpy(strType ,IP/UNKNOWN); else strcpy(strType, Protoip_header-proto);/ 解析出协议类型 item.Format(%02X-%02X-%02X-%02X-%02X-%02X, eth_header-DestMac0, eth_header-DestMac1, eth_header-DestMac2, eth_header-DestMac3, eth_header-DestMac4, eth_header-Des

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2