网络穿透技术研究

来源:互联网 发布:数据猿公司 编辑:程序博客网 时间:2024/05/21 04:22

网络穿透

从狭义上讲是点对点的,通过检测和发掘防火墙、IDS、IPS等网络安全设备和系统存在的漏洞,采用一些特定的技术,穿透这些安全设备,从而达到对目标机器和目标网络的攻击;从广义上讲,凡是将攻击代码、隐秘数据等传到位于网络地址转换(NA=r)、防火墙、IDS/IPS等网络安全设备之后的目标主机上的技术都可以称为一种穿透。

网络穿透技术一直是近几年的研究热点,从传统的代理技术、加密隧道技术,一直到基于P2P(点对点连接或对等网络)的穿透技术【l】、匿名通信平台的运用,网络穿透技术可谓是层出不穷。以SKYPE为例,该即时通讯工具采用P2P技术,是用STUN[z]和TURN[3】的协议演变出的类似协议来探测网络拓扑结构【4】,并实现UDP连接方式下的穿透NAT,或者寻找出绕过防火墙等安全设备的路径。而以MIX[引、洋葱路由器【6】、TOR[7】技术为代表的匿名通信技术发展迅速,为穿透技术提供了新的平台。现在常出现的穿透技术示例有:(1)基于HTllP协议的隧道技术【8】:通过HTTP封装其它协议,可以达到穿透防火墙和IDS系统的检测:(2)采用流行的P2P技术:通过网络探测技术和中间节点等技术,穿越和绕过NAT代理和防火墙,使得NAT代理和防火墙如同虚设;(3)运行匿名服务机制,隐藏用户信息,动态变换代理服务器地址,使得定位、监管这些服务器变得异常困难。新技术、新平台在穿透领域的应用对以往仅利用简单流量分析、静态封堵口地址和端口的保护方法是一个严峻的挑战,因此迫切需要对这些最新的网络穿透技术进行详尽的研究,搞清楚这些技术原理、理论模型、通讯协议等,设计相应系统进行特征发现,进而分析和提炼出具体特征,防止技术滥用,力求达到万全之策。

网络信息收集【9】是攻击者进行攻击前准备信息的重要阶段。David Doldsmith和MikeD.Schiffman提出的Firewalking[10】使用类似于路由跟踪的IP数据包分析方法,来测定一个特殊的数据包是否能够从攻击者的主机传送到位于数据包过滤设备后的目标主机。

代理(Proxy)技术是我们常用的解决无法直接获取网络信息问题而采用的中转技术。Privoxylll】是一款新代理工具,它不但可以过滤信息,清除本地上网记录等,而且可以在应用层增加隐私保护。一些不法分子用它做代理在匿名通信平台(洋葱路由器、TOR等)传播一些不法信息和不负责任的言论,滥用该技术对国家和社会带来了很大的不良影响。而隧道加密技术是目前网络穿透领域常用的一种技术。许多网络穿透过程就是基于隧道加密技术,使用一些常用服务接入端口如HTTP、POP3、即时聊天工具端口,或者使用动态扫描获得的端口,或者在通讯中变化端口来避免被IPS识别、逃避防火墙的检查【12】。穿透采用的隧道技术也演变为各类协议上的隧道,带来安全问题的同时也带来了滥用的隐患。匿名通信服务【l3】是通过一定的方法将业务流中的通信关系加以隐藏,使窃听者无法直接获知或推知双方的通信关系或者通信的一方。匿名通信的一个重要目的就是隐藏通信双方的身份或者通信关系,从而实现对网络用户的个人通信隐私以及涉密通信的更好保护。但是由于缺少管理等原因,这种技术被一些不良企图的人加以利用。他们利用匿名通信平台搭建m动态变化的服务器,并提供穿透工具客户端用于访问该服务器,达到逃避网络信息安全监控。其实是打着保护隐私的旗号,从事不法的勾当,或者造谣惑众宣传邪教思想,或者留下后门程序盗取信息获得利益等,对社会和企业造成严重危害。穿透技术中匿名通信的引入加大了对其进行控制难度。

代理原理

代理服务器是介于浏览器和Web服务器之间的服务器,是接收或解释客户端连接请求,并发起到目的服务器新的连接的网络节点。它需要满足能够接收或解释客户端的请求;能够创建到服务器的新连接;能够解释服务器发来的响应;能够解释服务器的响应并将该响应回传给客户端等几个基本条件。
使用代理服务器以后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,请求Request信号会先送到代理服务器,由代理服务器取回浏览器所需要的信息并传送给浏览器。大部分代理服务器都具有缓冲的功能,就好像一个大的缓存Cache,它有很大的存储空间,不断将新取得的数据存储到本机的存储器上。如果浏览器所请求的数据在它本机的存储器上已经存在而且是最新的,那么它就不重新从Web服务器取数据,而直接将存储器上的数据传送给用户的浏览器,这样就能显著提高浏览速度和效率(速度会随着代理服务器地理
位置的不同以及网络传输情况而改变)。
代理服务器具有透明性的特点。代理服务器的使用一般可带来如下好处:一是通过代理可以访问平时不能访问的网站;二是通过代理可以加快浏览某些网站的速度;三是可以充当内部网和外部网之间的防火墙;四是减少口开销,缓解网络地址紧张;五是进行信息处理与管理,如设置用户验证、网络管理和用户计费等功能。网络穿透技术中使用的代理技术就是使用代理服务器来访问一些特定的网站,访问其内容,逃避了网络安全监管。
我们研究穿透技术的目的也是为了更好的防御非法网络穿透。

代理技术研究现状

网络代理受限于互联网应用,也是一种服务,试图通过技术手段为特定的“人群’’服务。从原始的简单代理到现在的按照用户意愿自主执行的软件模块,从简单的应用层协议代理发展到对应TCP/IP不同层次的代理模型。代理技术可分为网络接口层代理技术、P层代理技术、传输层代理技术和应用层代理技术。其中应用层代理又可分为HTTP代理、FTP代理、SMTP代理等。

网络接口层代理技术已经硬化为路由器等硬件设备一部分,用来连接异种网络。其运行在TCP/IP分层模型的子网层,简单地将报文分组改装转发。

IP层代理技术将IP层收到的口包的源和目的地址作适当改变,然后进行转发。其最有代表性的就是NAT(Network Address Translate,网络地址转换)【16】技术。NAT把内部代理地址转译成合法IP地址,从而实现内部网络主机共享Intemet连接,很好的解决公用IP地址的紧缺的问题。NAT中具体D地址复用方法是:在内部网中使用私有的虚拟地址,在边界路由器中用一个注册的真实IP地址池(IP P001)来进行地址转换,通过路由器的转换功能将内部的虚拟地址映射为相应的注册地址,使得内部主机可以与外部主机之间透明地进行通信。从网关
的出入方向上来看,NAT有入向转换(Inbound),出向转换(Outbound)和双向转换(Bi--directional)三种形式,绝大多数应用都属于入向转换形式。从转换对应关系的角度来看,NAT还可以分为静态转换和动态转换两类。总之,IP层的代理能高效的在IP网络协议上实现用户对用户的“透明传输",能支持多种应用层协议,具有很强的应用扩展性,不需理解和操纵应用层协议,对客户端所需的配置较少,但存在不能提供灵活的用户认证处理和对具体应用不能灵活控制等不足。


传输层代理改变传输层上收到的TCP包和UDP包的源和目的IP地址后,进行包转发。传输层代理有两种重要实现方案:端口重定向与客户端服务器代理。端口重定向方案是指代理服务程序监听特定TCP或者UDP端口,接收该端口连接请求。代理服务程序则使用另外的端口和IP地址发出对远程目的地的连接请求,并进行信息的转发。客户端服务器代理方案是用户的代理客户端在传输层封装数据包,并直接转发给代理服务器,代理服务器打开封装的数据包,并将数据包转发给外部网络;收到响应时,代理服务器封装数据包并转发给客户端。
新出现的SOCKS代理技术【17】是随着防火墙技术的发展而产生的,运行在应用层和传输层之间的“隔离层”上,常被滥用于网络穿透中。SOCKS代理运行在应用层和运输层之间,该协议让内部主机(使用虚拟口地址)通过SOCKS服务器来获得完全的Internet访问。SOCKS协议运行在连接内部网和Internet的双宿主机(SOCKS的服务器)上。内部网主机使用虚拟的口地址,请求访问Intemet前,需要和SOCKS服务器建立一个SOCKS信道。当客户的访问请求送至SOCKS服务器的TCP端口(一般设为1080),被服务器允许并成功对接后,客户与SOCKS服务器就进行鉴别方法的商讨和用户信息的鉴别。鉴别无误后,客户发送请求细节至SOCKS服务器。SOCKS服务器依据访问的源地址、目的地址、源端口、目的端口、用户名等信息对请求进行访问控制,以决定建立相应连接或拒绝。若是允许建立的服务则SOCKS服务器会将向客户请求的Internet主机发出请求。一旦得到响应后,SOCKS服务器再通过先前建立的SOCKS信道将数据返回给客户。为确保用户身份的合法性,在建立SOCKS信道的过程中可能有一个用户认证的过程(SOCKS5就是如此)。SOCKS技术旨在提供一种广义的代理服务,它与具体的应用无关,一个SOCKS服务器可以支持基于TCP或UDP协议的所有应用服务。


应用层代理是在TCP/IP分层模型的应用层上将收到的数据包按照某种应用协议进行分析,根据分析结果进行服务器端连接和数据包转发。应用层代理是在应用层彻底隔断通信两端的直接通信,将它们转变为应用层转发模式。应用层代理是基于应用层协议的,因此代理如果要支持某一应用层协议的转发,必须了解其在应用层上数据包的格式,对其协议进行分析,然后针对特有的包格式实现协议的代理。应用层代理技术的优势主要有灵活的访问控制和较高的安全性。灵活的访问控制表现为能记录和控制所有进出的流量,较高的安全性则是因为访问者任何时候都不能与服务器建立直接的TCP连接。应用层代理技术的不足主要是性能和对应用的透明性较低;新的应用需要添加新的程序代码,可扩展性不好。