论文部分内容阅读
随着信息与网络技术的发展,以及这些技术在军事领域的不断渗透,计算机网络已成为连接未来信息化战场的枢纽。对计算机的攻击,能够获得大量宝贵的情报以及达到其它武器系统所不能及的效果。因此对以计算机为基础的网络攻击与防护就自然成为军事领域密切关注的问题。网络隐蔽通道技术是一种被广泛应用的网络攻击技术。该技术利用网络通信数据作为载体进行秘密通信。一般而言,防火墙和入侵检测系统上的安全策略在防止非法程序利用正常的通信途径窃取信息方面是有效的,但是却不能有效地防止非法程序利用那些本来不是用于通信目的的途径来进行通信。而网络隐蔽通道技术则能够使用来传递信息的信息通道以违反安全策略的方式运行,可以一定程度上穿透防火墙和躲避入侵检测。因此网络隐蔽通道在网络通信数据中无处不在、无时不在。虽然网络隐蔽通道可以构建在TCP/IP模型的各层上(物理层、网络层、传输层、应用层),但是由于应用层天然的优势-相对于其它层而言,应用层的数据,可被代理服务器改动的空间较小;在应用层上构建隐蔽通道所要求的权限较小-所以,越来越多的隐蔽通道构建于该层之上。在应用层上,可被利用来构建隐蔽通道的协议主要有超文本传输协议(HTTP Hypertext Transfer Protocol)、简单邮件传输协议(SMTP Simple Mail Transfer Protocol)、域名解析系统(DNS Domain Name System)。由于HTTP下的隐蔽通道不容易被检测和屏蔽并且具有较高的带宽,故本文以HTTP下的隐蔽通道为研究对象,设计并实现了一种应用于Microsoft Windows操作系统环境下的新的HTTP隐蔽通道技术。该技术以HTTP协议为载体,通过利用Windows消息机制来控制拥有网络访问权限的应用程序,进而构建网络隐蔽通道,并对通道中的数据进行加密传输,以达到穿透防火墙和躲避入侵检测的目的。本文的主要内容如下:首先,本文详细研究了HTTP协议报文的内容,对于HTTP协议有了全面深入的了解;在此基础上,本文给出了构建HTTP隐蔽通道的三种通用模型(简单HTTP模型、代理模型、CGI模型)和四种常用的方法(GET方法、HEAD方法、POST方法、PUT方法)。接着,本文深入地研究了Windows系统的消息组成和消息的种类,并进一步研究了整个消息处理的机制:从消息的产生、发送、接收、到最后的处理。然后,本文选择“简单的HTTP模型”作为本文要实现的HTTP隐蔽通道的模型,并采用GET方法作为该隐蔽通道的实现方法,利用Windows消息机制来劫持拥有网络访问权限的应用程序;采用C++和Ruby作为编程语言,分别在Microsoft Windows XP和Red Hat Linux Fedora Core 4实现了该隐蔽通道的客户端和服务端。最后,本文搭建了以Snort作为入侵检测系统,Symantec AntiVirus+SkyNet作为软件防火墙的一个测试平台,对本文实现的这个隐蔽通道进行了相关方面的测试,并利用测试结果对该隐蔽通道的性能进行了分析。通过本文的工作,希望能够对防火墙和IDS系统今后的研究,提供新的方向。