APP下载

防火墙穿透技术及其应用探析

2015-01-28谷潇

电子设计工程 2015年19期
关键词:公网IP地址进程

谷潇

(达州职业技术学院 四川 达州 635000)

随着近年来因特网的迅猛发展与进步,使得互联网逐渐深入人们日常生活,但是网络在带给人们工作与生活便利的同时,也潜在着很大威胁。当今社会的一个热门话题就是网络安全,为避免黑客非法入侵网络,一些企业先后应用防火墙,在互联网安全保障方面,防火墙发挥着重要作用[1]。但是防火前在保护互联网安全的同时,也对多媒体技术与P2P通信的应用产生一定制约。

本研究在对防火墙原理、防火墙技术及Windows网络构架进行系统性分析的基础上,探讨防火墙穿透技术及其实际应用。

1 防火墙技术

早前防火墙只是建筑和消防领域的概念,其作用在于屏蔽火灾蔓延,因为网络防火墙的作用与其功能比较类似,因此,人们一般会以“防火墙”术语对网络内外部组件进行描述。

防火墙不仅可充当路由器,同时也可是主系统、个人主机等,专门隔绝子网或者网络中的不良服务与协议[2]。一般防火墙系统位于具有较高等级的Internet和网关连接处,只有合法数据才能通过。

2 防火墙穿透技术

2.1 防火墙穿透技术原理

一般防火墙穿透给都是通过欺骗与规避的方式实现。

1)欺骗

在配置过程中,防火墙一般会信任端口与应用程序访问互联网,对防火墙所信任的端口或应用程序进行分析,伪装自己的互联网行为为防火墙所信任的端口或者应用程序,由此,在发生自身网络行为时,就算是防火墙具有拦截功能,也会错误的认为是合格的网络通信,这样就允许该端口或应用程序通过。

2)规避

实现防火墙基于所挂接的网络接口不同,若相对防火墙而言,网络通信是透明的,则防火墙就不能对其进行拦截。例如,基于网络用户形态实现防火墙,则相对直接调用核心态接口得以实现的互联网行为,防火墙不能对其拦截,对网络通信的控制更是无稽之谈[4]。

2.2 防火墙穿透技术的实际应用

比较常用的防火墙穿透技术包括DLL远程注入技术、端口复用、系统DLL替换、套接字复制技术及底层穿透方法等。

共享DNS套接字穿透防火墙的实际应用。DNS是一个层次性的数据库,分布于世界的各个角落,存储着各种各样的信息,包括IP地址,域名和邮件服务器信息。利用DNs可以来实现穿透防火墙。尽管通过IP地址可以识别主机上的网络接口,进而访问主机,但是人们最喜欢使用的还是主机名。在TCP/IP领域中,域名系统(DNS)是一个分布的数据库,由它来提供IP地址和主机名之间的映射信息。

首先找出目标进程,也就是获取目标进程DNS的进程ID值,通过调用wTSEnumerateProoessO函数来列出所有的进程信息,并根据DNS进程的名称来获得绑定在该进程上的用户SID值,再调用LookuPAccountSid()函数得到进程用户名,最后根据DNS进程的用户名来匹配出进程ID值。

其次,由进程号确定其SocKET,并转换为自己所用"通过调用openProcesS()函数,由进程号得到句柄,再调用DuplicateHand1e()函数,复制 DNS进程句柄。

最后,用转换后的SocKET来进行数据传输。

2.3 P2P穿墙技术的实际应用

P2P是一种互联网传输技术,也称点对点技术,它依赖网络中参与者的计算能力和带宽,而并非把依赖都聚集在几台服务器上。P2P的特点是人越多的情况下,速度越快,与传统C/S架构存在本质性区别,P2P网络不存在中心节点,每一节点都可下载、分享信息及信息交流。

P2P内外网用户是怎样实现通信的?由于外网用户需要发起通信,然而内网用户会在防火墙保护下,通过一种超级节点的中介来实现穿墙技术。此外,P2P穿墙可通过隧道技术,也就是如果防火墙对某个协议进行了束缚,可通过不受限的协议封装受限的协议,接收方再通过解封措施解开。

2.4 NAT技术的实际应用

NAT技术是一种网络地址转换地址转化为合法IP地址的转换技术,目前该技术被广泛应用于Intenet接人方式及全局互联网中,NAT技术一方面能够对IP地址不足问题予以完美解决,同时还可有效避免来自互联网外部的攻击,对互联网内部的计算机进行隐藏并保护。

它主要分为基础NAT与网络地址和端口转换两大类,NAPT转换过程中,检查网络地址/端口转换器、修改包的IP地址及TCP/UDP端口信息,由此可以让更多的内部主机同时使用一个公网IP地址和外网实现通信,因此目前的互联网一般采用NAPT。

实现NAT的方式主要有3种:动态转换、静态转换Static Nat及端口多路复用。设共有3个用户A、B、C,每个用户所处NAT不同,彼此只有通过NAT才能实现通信,它们通过防火墙访问远程服务器该互联网中共有A、B、C 3个用户,处在不同的NAT之后。A、B、C 3个用户都可以通过代理进行连接,3个用户程序均开放UDP端口及其应用程序,首先A、B、C分别与服务器构建通信会话,设NAT2的UDP端口12345分配给c与服务器的会话。NAT1把自己的UDP端口12346分配给A与s的会话,NAT3的UDP端口12345分配给B与服务器的会话,此时服务器就能获得A、B、C的内网私有IP地址和端口号,以及A、B、C经各自的NAT转换后的公网IP地址和端口号。并且服务器将这个信息通知A、B、C,使A、B、C便能获得对方的IP地址及端口号信息假设B与C建立UDP连接。B向C发送包。然而NAT3会拦截倘若A向C发送UDP包,同样也会有NAT1拦截这样看来无法穿透。事实并非如此。其实A、B、C协作起来就可以在防火墙上打开一个洞口进而直接通信。如果A开始发送一个UDP信息到B、C的公网地址上,与此同时它又通过服务器中转发送了一个邀请信息给C、B,请求C、B也给A发送一个UDP信息到A的公网地址上。则A向C、B的公网IP发送的信息就在NATA上打开一个处于A的私有地址与C、B的公网地址之间的新的会话。而A、C、B能否通过公网IP和端口进行UDP通信取决于NAT是否支持发夹转换和回环转换。如果NAT支持,数据包就能正确通过公网IP和端口转发。此时A、C、B也能进行通信。

2.5 底层穿透法的实际应用

实现防火墙的方法和技术由Windows互联网框架所决定,防火墙技术层次不同,仅可以拦截分析高于该层次的数据,所以防火墙穿透技术越是在网络架构底层,就越极具通用性。所以,基于防火墙原理与设计方法,本研究主要分析NDIS-Hook防火墙穿透技术。

NDIS-Hook防火墙穿透技术的原理是对NDIS中的函数抵制予以直接替换,由此向NDIS发出请求,就能够实现自定义函数处理,相对比较简单,完成处理后向系统函数转发就可以。实现NDIS Hook的方法主要分为两种,即:PFHook与PE Hook,以下主要探讨实现PFHook的原理,再对PFHook驱动程序予以实现,并测试防火墙穿透性。

图1 PFHook实现流程Fig.1 TPFHook implementation process

表1 PF Hook防火墙穿透技术测试结果Tab.1 PF Hook firewall traversal technology test results

互联网窗口内核中,都是由一个单向协议链表对以注册协议进行维护。该单向链对所有注册过的协议抵制予以保存,在该结构中,也含有协议驱动指定的函数派发地址,比如Handler、Receive等。所有协议驱动还相对对应着一个Open NDIS Block单向链,以此对所绑定的网卡信息进行全面维护。Ndis Register Protocol受到协议驱动调用后,NDIS就会在协议链表表头放上新注册的协议,再返回这张表,因此只需对新协议进行注册,利用返回新注册协议的链表头,就能够查阅系统中的每一张协议表。然而,若想挂接派发函数,还应该挂接协议对应的BLOCK Open NDIS结构中的派发函数。文中是结合PFHook与中间层驱动使用的,利用注册假协议交替接收与发送协议链表协议中的Hook,以此对数据包进行处理,再交由原协议驱动处理函数对其进行有效处理。实现PFHook的具体流程如图1所示,PFHook防火墙穿透技术测试结果如表1所示。

3 结束语

本研究基于Windows互联网结构的分析,系统性分析与探讨防火墙技术,主要包括NDIS中间层驱动程序、TDI过滤驱动及NDIS-Hook驱动,再根据防火墙原理、特点及技术缺陷等,提出防火墙穿透技术,并探讨其实际应用,对现阶段的主流防火墙作了相关测试,结果表明其可以有效穿透防火墙。

[1]刘惠,蔡皖东,赵煜.基于NDIS的防火墙穿透通信技术研究与实现[J].微电子学与计算机,2007,12(5):145-146.LIU Hui,CAIWan-dong,ZHAO Yu.Research and implementation of NDIS firewall penetration of ICT-based[J].Microelectronics&Computer,2007,12(5):145-146.

[2]宋柳松,吴少华,周安民.木马穿透个人防火墙技术研究[J].信息安全与通信保密,2007,5(1):120-121.SONG Liu-song,WU Shao-hua,ZHOU An-min.Trojans penetrate personal firewall technology research[J].Information Security and Communications Privacy,2007,5(1):120-121.

[3]侯功华,赵远东.基于NDIS中间层的包过滤的研究与设计[J].微计算机信息,2006,4(36):125-126.HOU Gong-hua,ZHAO Yuan-dong.NDIS intermediate layer packet filtering based on research and design[J].Microcomputer Information,2006,4(36):125-126.

[4]Microsoft Corploration.Microsoft Devdoper Network MSDN Library for Windows DDK[S].Microsoft Corporation,2001:120-121.

[5]赵枫,王轶俊,薛质.基于DNS的防火墙渗透技术研究[J].信息安全与通信保密,2006,7(2):132-133.ZHAO Feng,WANG Yi-jun,XUE Zhi.DNS-based firewall penetration technology[J].Information Security and Communications Privacy,2006,7(2):132-133.

[6]商娟叶,刘静.基于防火墙的网络安全技术[J].电子设计工程,2010(6):133-135.SHANG Juan-ye,LIU Jing.Network security technology based on firewall[J].Electronic Design Engineering,2010(6):133-135.

猜你喜欢

公网IP地址进程
浅析大临铁路公网覆盖方案
铁路远动系统几种组网方式IP地址的申请和设置
公网铁路应急通信质量提升的技术应用
债券市场对外开放的进程与展望
改革开放进程中的国际收支统计
IP地址切换器(IPCFG)
如何迎接公网对讲的春天
基于SNMP的IP地址管理系统开发与应用
公安网络中IP地址智能管理的研究与思考
基于公网短信的河北省高速公路数据传输应用