个人防火墙论文
个人防火墙论文(精选6篇)
个人防火墙论文 第1篇
1 首页状态
首页状态显示防火墙实施防护状态, 可以实时监控查看当日拦截的钓鱼、挂马网站以及拦截的网络攻击情况, 包括攻击次数, 拦截次数等数据。还可以选择安全级别和工作模式, 安全级别越高, 网络防火墙对用户计算机的防护性能越好, 防护级别也就越高, 更能有效的保护用户计算机的私人信息和数据。同时, 在流量图中还可以显示出接收和发送的数据速度、活动程序以及攻击信息, 用户通过流通数据的大小可以发现是否存在异常数据上传下载, 从活动程序中也可以很轻松的发现是否存在异常的程序在运行, 从而及时的保护用户计算机的数据安全, 提高用户警惕性。如图1所示。
2 网络安全设置策略
该策略用于用于开启实时监控功能。网络安全设置中包括应用程序网络访问监控、IP规则设置、网络攻击拦截、恶意网址拦截、ARP欺骗防御以及对外攻击拦截和网络数据保护。在网络监控列表中可以对以上功能进行设置, 开启后可以有效地防护用户计算机。如图2所示。
3 网络防护设置
网络防护中有一项程序网络控制, 在程序联网规则中可以对应用程序进行网络访问权限设置, 有允许, 拒绝和自定义三种选择, 如用户不需要某种程序对网络有访问权限, 可设置成拒绝即可, 也可以自己添加一些应用程序, 想要对某些应用程序放开网络访问权限的话, 在状态栏里设置成允许就可以了。当然, 用户自己也可以自定义一些自己想要的设置。如图3所示。
网络攻击拦截中有很多网络攻击类型的选项, 一般默认情况下都是选择的, 用户可以不用进行设置。
恶意网址拦截一项是对一些带有恶意木马, 病毒的网站进行拦截, 用户如需要对一些网站进行拦截的话, 只需要把该网址添加到黑名单里即可。当然也可以设置一些白名单, 就是不用拦截的网址可以添加进去。同时还可以添加保护程序, 如“c:program filesinternet e xplore rie xplore.e xe”。
ARP欺骗防御系统, 一般建议在局域网里需要开启保护, 可以有效的防止其他用户客户端进行恶意的ARP攻击。
4 IP规则设置
该设置用于设置各项例外规则。在IP规则设置中, 包含了很多设置项, 包括域名解析, 各种协议等, 进行正确的设置可以保障用户终端计算机的网络安全和数据安全。如图4所示。
例如, ICMP协议是一种面向无连接的协议, 用于传输出错报告控制消息, 它是一个非常重要的协议, 对于网络安全具有极其重要的意义。它是Internet控制报文协议, 它是TCP/IP协议族里的一个子协议, 用于在IP主机和路由器之间传递控制信息。所谓控制消息是指, 网络通不通、主机是否可达、路由是否可用等本身的消息。
ICMP协议本身的特点决定了它非常容易被用于网络上的路由器和主机。例如, 在1999年8月海信集团悬赏50万人民币测试防火墙的过程中, 其防火墙遭受到的ICMP攻击达334050次之多, 占整个攻击总数90%以上!可见ICMP协议的重要性不容忽视。所以正确的配置防火墙的策略是非常重要的。那么, 我们应该如何设置ICMP协议呢?怎样才能让自己的计算机遭受到最少的攻击和伤害呢?下面讲述几种常见的方法以供参考。
第一种, 在路由器上对ICMP数据包进行带宽限制, 将ICMP占用的带宽限制在一定的范围内, 这样就保证的即使有ICMP攻击, 它所占用的带宽也是非常有限的, 不会对整个网络造成重大的影响。
第二种方法是在主机上设置ICMP数据包的处理规则, 最好是设定拒绝所有的ICMP数据包。
当然, 如果你想选择放行ICMP数据包的话也是可以的, 但要进行一些其他的设置才能有效的防止ICMP的攻击。如你可以在防火墙里设置“防御ICMP攻击”和“防止别人用ping探测”就可以了。建议广大计算机用户设置成默认强制拒绝所有ICMP数据包, 除了出站的ICMP Echo Repuest、出站的ICMP Source Quench、进站的TTL Exce e de d和进站的ICMP De s tination Unre achble之外, 所有的ICMP类型都应该被阻止。
5端口设置
计算机用户可以在端口设置项中设置自己的端口需求, 需要哪些端口就可以放开哪些端口, 不需要的可以进行禁止操作。这样即可以方便自己需要的端口访问, 有可以关闭不必要的端口, 可以很好的防止网络攻击者利用多余的端口号对用户计算机进行攻击。用户可以从本地和远程两个方面进行设置。如图5所示。
根据提供服务类型的不同, 端口分为两种。一种是TCP端口, 一种是UDP端口。计算机之间相互通信的时候, 分为两种方式, 一种是发送信息后, 可以确认信息是否到达, 也就是有应答的方式, 这种方式大多采用TCP协议。一种是发送以后就不管了, 不去确认信息是否送达, 这种方式大多采用UDP协议。所以对应这两种协议的服务提供的端口, 也就分为TCP端口和UDP端口。
如果攻击者使用软件扫描目标计算机, 得到目标计算机打开的端口, 也就了解了目标计算机提供了哪些服务, 而提供服务就可能有服务软件的漏洞。如果计算机的端口打开太多, 而管理者不知道的话, 那么有两种情况:一种是提供了服务而管理者没有注意, 比如安装IIS的时候, 软件就会自动增加很多服务, 而管理员可能没有注意到。一种是服务器被攻击者安装木马, 通过特殊的端口进行通信。这两种情况都很危险, 说到底, 就是管理员不了解服务器提供的服务, 减少了安全系数。
因此, 一定要正确的设置端口的开放, 避免攻击者对计算机信息进行非法窃取。建议一般在局域网内部时, 可以在防火墙上把所有的端口都默认关闭, 然后在IP白名单里把需要访问的目标计算机的IP地址添加进去, 这样就能有效的保证了需要的端口打开, 而不需要的多余端口都关闭, 很好的阻止了非法份子的入侵。
6结束语
瑞星个人防火墙设置出最强保护墙 第2篇
A、依次点击『开始』-『所有程序』-『瑞星全功能安全软件』或『瑞星个人防火墙』,启动『瑞星全功能安全软件』或『瑞星个人防火墙』。
B、点击『瑞星全功能安全软件』或『瑞星个人防火墙』主界面『设置』菜单-切换到『网络监控』选项卡,如下图,勾选“开机启用”『恶意网址拦截』功能。
C、切换至『恶意网址拦截』选项卡,如下图,勾选『启用家长保护』功能,
D、点击『高级』按钮,弹出高级功能设置界面,如下图,勾选『禁止收看网络视频』功能。
E、勾选该功能后,再次访问该视频新闻,不能正常播放。
个人防火墙论文 第3篇
计算机网络技术的飞速发展为用户提供了方便的远程资源共享和电子数据传输等服务。我们在享受互联网带来的方便与快捷的同时,也要面对互联网开放带来的新挑战。网络安全技术逐渐成为IT人员关注和研究的热点。防火墙是位于计算机和网络之间的中介系统,它能够防止非法入侵者进行攻击,并通过检测、限制、修改跨越防火墙的数据流,尽可能地屏蔽网络内部结构、信息和运行情况,以实现网络安全的保护。
本文将重点讨论Windows操作系统下的个人防火墙技术。它有很多优点:能对公共网络中的单个系统提供保护;不需要额外的硬件资源就能增加对系统的保护;它的价格相对来说十分便宜。
1 个人防火墙功能模块
个人防火墙主要包括网络数据包处理、安全规则和日志三大功能模块。
网络数据包处理模块处理网络上所有往来的信息,个人防火墙会检查所有信息包中的包头信息,并按照用户所设定的安全过滤规则过滤信息包。可见,个人防火墙核心技术是实现在Windows操作系统下的网络数据包拦截。
防火墙的安全规则就是对计算机所使用的局域网、互联网的内制协议进行设置,使网络数据包处理模块可以根据设置对网络数据包进行处理,从而达到系统的最佳安全状态。由于在防火墙软件中,安全规则的设置和数据包的处理一般是分两个模块完成的,因此在防火墙软件的实现上就涉及到了这两个模块之间的信息交互。
日志记录着防火墙软件监听到的一切事件,比如入侵者的来源、协议、端口、时间等等。日志的实现比较简单,本文中对日志的实现将不做过多讨论。
2 个人防火墙设计与实现
通过上面对个人防火墙功能模块的分析可知,个人防火墙在实现上主要解决的问题是:网络数据包拦截、安全规则设置模块和数据包处理模块的信息交互。下面将对这两个问题分别加以讨论。
2.1 网络数据包拦截
如图1所示的Windows网络分层结构,它提供了拦截网络数据包的基本思路。总的来说,要拦截Windows下的网络数据包可以在两个层面进行:用户态(user-mode)和内核态(kernel-mode)。
在用户态下进行数据包拦截最致命的缺点就是只能在Winsock层次上进行,而无法处理网络协议栈中底层协议的数据包。因此,这些方法并不适合个人防火墙。
在内核态下进行网络数据包拦截有以下四种方法:TDI Filter Drive、Win2k Filter-Hook Driver 、NDIS Hook Driver 、NDIS中间层驱动程序(Intermediate Driver)。由于NDIS是Microsoft 和3Com公司开发的网络驱动程序接口规范的简称,它支持如下三种类型的网络驱动程序:微端口驱动程序、中间层驱动程序和协议驱动程序。其中中间层驱动介于协议层驱动和小端口驱动之间,其功能非常强大,可以提供多种服务,能够截获所有的网络数据包,过滤微端口驱动程序,实现特定的协议或其他诸如数据包加密、认证等功能。因此,该技术极其适合个人防火墙所采用。下面就对微软提供的一个中间层驱动范例进行分析,讨论如何实现个人防火墙的功能。
2.2 微软范例:Passthru
Passthru是Microsoft在其推出的免费驱动开发工具DDK(Driver Development Kits)中提供的一个中间层驱动源代码范例。它可以帮助开发人员迅速掌握中间层驱动程序的实现方法。Passthru工作在网络层和媒体接入控制层之间,实现了对网络数据包的底层截获。只要在Passthru基础上进行适当的修改,就可以实现各种各样的应用。
2.2.1 Passthru 发送数据流程
图2为Passthru的发送数据包流程图。
协议驱动层调用NdisSend向下层发送数据报文;Passthru的MPSend例程根据上层传下来的数据报文分配MyPacket,调用NdisSend发送到下层;当下层Miniport driver发送完成MyPacket以后,会调用NdisMSendComplete;NDIS接着调用passthru的PtSendComplete,在这个函数里释放MyPacket,并且通知上层去释放它们的packet。
通过上面的流程分析可以看出,个人防火墙对本机内部向外部网络发的数据包的截获、分析及处理可以在Passthru的MpSend函数中实现。
2.2.2 Passthru接收数据流程
图3为Passthru接收数据包的流程图。
Passthru数据接收的路线比较复杂,这里仅对目前大多数网卡接收数据包的处理过程进行介绍。
底层驱动通知上层已经收到数据报文;在PtReceive中直接调用NdisMEthIndicateReceive等函数通知NDIS;当底层驱动收到了一个完整的数据报文,它会调用NdisMEthIndicateReceive-Complete,然后NDIS会调用中间层的PtReceiveComplete;中间层驱动的PtReceiveComplete同样会调用NdisMEthIndicateReceiveComplete,通知NDIS收包完毕;当上层协议驱动得知底层已经收到了完整的数据报文以后,可能会调用NdisTransferData,要求下层把剩余的数据传上来;上步的调用会导致NDIS调用中间层的MPTransferData例程。在该例程中,做同样的调用NdisTransferData;当底层驱动做好了一个完整的packet,它会调用NdisTransferDataComplete;同样在Passthru的PtTransferDataComplete中,会作出同样的调用。
通过上面的流程分析可以看出,个人防火墙对来自外部网络的数据包的截获、分析及处理,可以在Passthru的PtReceive函数中实现。
2.3 设备驱动程序和应用程序的通信
个人防火墙不仅要实现对网络数据包的截获,还要在分析数据包后,根据安全规则对数据包进行处理,并且将这些事件记入日志。由于安全规则设置和日志的记录一般是由一个具有人机界面的应用程序来完成,因此,要实现个人防火墙还必须实现设备驱动程序和应用程序的信息交互。
设备驱动程序和应用程序之间的通信包括应用程序传送数据给设备驱动程序和设备驱动程序给应用程序发送消息两个方面。前者实现较为容易,后者实现远比前者复杂。其中最常用的是事件方式,下面将对其进行重点的介绍。
在事件方式下,应用程序首先创建一个事件,然后将该事件句柄传给设备驱动程序,接着创建一个辅助线程,等待事件的有信号状态,自己则接着干其它事情。设备驱动程序获得该事件的句柄后,将它转换成能够使用的事件指针,并存储起来以便后面使用。当设备驱动程序有事件告诉应用程序时就将事件设置为有信号状态,这样应用程序的辅助线程即可马上知道这个消息并进行相应的处理。
3 小 结
本文针对目前日益严重的网络安全问题,提出并实现了基于NDIS技术的个人防火墙技术。在分析了个人防火墙的主要功能模块后,重点讨论了实现这些功能模块的主要技术:网络数据包拦截技术以及设备驱动程序和应用程序的通信技术等。目前,这些技术已经在项目中实现并使用正常。
摘要:所有基于Windows操作系统的个人防火墙核心技术在于网络数据包拦截技术。通过分析、比较Windows环境下网络数据包拦截技术,最终设计并实现了基于NDIS(Network Driver Interface Specification)技术的个人防火墙。
关键词:防火墙,NDIS,中间程序驱动,网络安全
参考文献
[1]Microsoft Corporation.Microsoft Windows2000Driver Development Kit.2000.
[2]朱雁辉.Windows防火墙与网络封包截获技术.北京:电子工业出版社,2002.
[3]李信然,赵宏,马士军.基于防火墙的网络入侵检测系统.东北大学学报,2001.
[4]林立志.基于Windows的TCP/IP编程.清华大学出版社.
个人防火墙论文 第4篇
防控新冠病毒,要发挥党员战疫作用。陈希部长在电视电话会议上强调:“要把党的强大政治优势、组织优势和密切联系群众优势转化为疫情防控工作优势,做到哪里有疫情、有群众,哪里就有党组织坚强有力的领导,哪里就有党员的先锋模范作用”。面对疫情,更能考验党员的初心和使命,党员同志要积极行动起来,在疫情面前不退缩,响应党的号召,在疫情防控的一线义无反顾,在党和人民需要的时刻冲锋在前,用实际行动诠释一名共产党员的责任与担当,坚守岗位,担当作为,保障人民群众生命安全和身体健康。
防控新冠病毒,要坚持行动防疫自觉。陈希部长在电视电话会议中强调,形式主义、官僚主义是打赢疫情防控阻击战的大敌。许多基层干部面对“表格防疫”“会议防疫”分身乏术,面对与病毒较量的重要时期,要着力解决形式主义、官僚主义突出问题,把基层干部从一些无谓的事务解放出来,调动基层干部的积极性,让基层干部轻装上阵、全力以赴,把更多精力投入到疫情防控第一线,更好地打赢这场疫情防控阻击战。
个人防火墙论文 第5篇
关键词:防火墙,接口,过滤,模块
0 引言
随着Internet不断的发展和普及,网络信息安全问题越来越受到人的关注,时常让人担忧。攻击者利用计算机硬件、软件、网络设备等安全漏洞进行攻击。攻击事件一旦发生就可能导致有关的服务中断、重要商业信息失窃、研究机构的重要数据丢失甚至涉及到国家机密等,其灾难性后果不言而喻。防火墙是网络信息安全的主要技术手段之一,个人防火墙得到了广泛应用。
由于防火墙涉及系统文件SYS、动态连接库DLL和用户界面应用程序EXE,因此,不同进程间数据共享就变得至关重要。DLL安装在应用程序和驱动程序之间,为上层应用程序提供网络连接服务。
DLL与EXE及其它调用它的进程都需要共享控管规则数据,但这些数据都不是固定长度的,因此选用了内存映射的方法。此外,由于DLL和SYS都是对截获的封包缓冲区进行操作,如采用全局变量则会降低模块的独立性,而采用内存映射正好解决了这一问题。
1 数据共享
因为Windows2000不允许应用层的程序直接访问系统内存的地址空间,为了在EXE,DLL和SYS之间共享内存,实现内存共享的原理是:首先用驱动程序(SYS)申请内存空间,SYS中申请的内存在系统地址空间(>=0x80000000),为了让EXE和DLL能够访问这个空间,需要将系统地址空间映射到用户地址空间(<0x80000000),具体的步骤是:
(1)在SYS中申请内存空间,代码如下:
SystemVirtualAddress=MmAllocateContiguousMemory(Number Of Bytes,HighestAcceptableAddress);
(2)申请一个MDL结构,代码如下:
Mdl=IoAllocateMdl(SystemVirtualAddress,NumberOfBytes,FALSE,FALSE,NULL);
(3)在MDL结构中标识内存页
(1)如果申请内存时使用了非分页池(non-paged pool),使用下面的代码:
Mm Build Mdl ForNonPagedPool(Mdl);
(2)如果申请内存时使用了分页池(paged pool),使用下面的代码:
Mm Probe And Lock Pages(Mdl,KernelMode,IoWriteAccess);
(4)将锁定的内存页映射到应用层(EXE或DLL)的用户地址空间,代码如下:
User Virtual Address=Mm Map Locked Pages(Mdl,UserMode);
上面的4个步骤可以在DriverEntry或者DispatchRoutine中运行。
释放内存大致是执行与上面相反的过程。步骤如下:
(1)在用户进程上下文环境中执行下面的代码,解除到用户地址空间的映射:
Mm UnmapLockedPages(UserVirtualAddress,Mdl);
(2)如果使用MmProbleAndLockPages锁定了内存空间,使用下面的代码解锁:
Mm Unlock Pages(Mdl);
(3)释放MDL,代码如下:IoFreeMdl(Mdl);
(4)释放系统空间,代码如下:
MmFreeContiguousMemory(SystemVirtualAddress);
或者:ExFreePool(SystemVirtualAddress);
在上述四个步骤中,第一步必须在用户进程上下文环境中执行,2,3,4步可以在DriverEntry或者DispatchRoutine中运行。
2 EXE与DLL之间的接口
NETLAB.EXE与NETLAB.DLL主要需要进行控管规则数据和封包数据的共享,另外需要一些其它辅助操作。它之间的接口函数为XfIoControl,此函数在NETLAB.DLL的TCPIPDOG.CPP模块。
NETLAB.EXE通过LoadLibrary打开NETLAB.DLL,然后通过Get Proc Address得到XfIoControl函数的地址,以后NETLAB.EXE便通过XfIoControl函数完成与NETLAB.DLL的通信。XfIoControl支持的操作如下:
(1)控制代码:IO_CONTROL_SET_NETLAB_PROCESS_ID
参数含义:Io Control->DWord:进程ID
Io Control->DWord2:进程完整路径指针
(2)控制代码:IO_CONTROL_SET_WORK_MODE
参数含义:IoControl->Byte:总工作模式
(3)控制代码:IO_CONTROL_GET_SESSION_FILE_HANDLE
参数含义:IoControl->DWord:返回封包缓冲区的地址
作用:NETLAB.EXE从NETLAB.DLL得到封包缓冲区的地址,由于内存映射文件不同进程映射的地址不同,所以此参数不能真正作为地址来用,只是用来区分NETLAB.DLL是否成功创建了封包缓冲区,等于0表示否定,大于0表示肯定。
3 SYS与DLL、EXE之间的接口
驱动程序模块或者NETLABPCK.SYS与NETLAB.EXE和NETLAB.DLL之间主要需要进行控管规则数据、封包数据、网上邻居名字列表等数据的共享,另外需要一些其它辅助操作。它们之间的接口函数为OnW32DeviceIoControl,此函数在NETLABPCK的NETLABPCK.C模块。
NETLAB.EXE通过CreateFile打开NETLABPCK.SYS,然后通过DeviceIoControl完成与NETLABPCK的通信。
Typedef struct tagIOCTLParams{
DWORD dioc_IOCtICode;
PVOID dioc_InBuf;DWORD dioc_c_cblnBuf;PVOID dioc_OutBuf;
DWORD dioc_c_bOutBuf;
}IOCTLPARAMS,*PIOCTLPARAMS
设备输入输出处理函数为OnW32Deviceiocontrol(PIOCT LPARAMS,p Vtools D),根据pVtoolsD->dioc_IOCtICode不同而进行不同操作,具体分为以下情况:
(1)控制代码:IOCTL_NETLABPCK_MALLOC_ACL_BUFFER
参数含义:
p Vtools D->dioc_In Buf:指向DWORD的指针,需要申请的控管规则内存空间大小。
(2)控制代码:IOCTL_NETLABPCK_FREE_ACL_BUFFER
作用:NETLAB.EXE通知NETLABPCK释放为控管规则申请的内存空间。
(3)控制代码:IOCTL_NETLABPCK_GET_BUFFER_POINT
参数含义:
pVtoolsD->dioc_dioc_OutBuf:指向PACKET_BUFFER_POINT结构的缓冲区指针,用来返回封包缓冲区的地址、读/写缓冲区的索引地址和封包缓冲区能容纳封包记录的最大个数。
作用:NETLAB.EXE通过这个控制代码,从NETLABPCK取得封包缓冲区的地址。封包缓冲区由NETLABPCK生成和维护,NETLAB.EXE负责提取信息并用来显示、询问、报警和保存日志。
(4)控制代码:IOCTL_NETLABPCK_DELETE_SPI_PORT
参数含义:
p Vtools D->dioc_In Buf:指向WORD类型的指针,保存要删除的SPI端口。
作用:NETLAB.DLL通过NETLABPCK删除共享内存的端口列表。当经过NETLAB.DLL过滤的端口完成通信而释放时,通过这个控制代码删除共享内存的端口列表,告诉驱动程序,这个端口已经不再被NETLAB.DLL过滤,驱动程序需要负责对这个端口进行过滤。
(5)控制代码:IOCTL_NETLABPCK_GET_NAME_FROM_IP
参数含义:pVtoolsD->dioc_InBuf:要查询的IP地址;
p Vtools D->dioc_Out Buf:用来返回查询得到的网上邻居名字。
作用:FITLER.EXE通过这个控制代码,从IP地址查询得到网上邻居的名字。
4 总结
随着Internet技术的发展,网络安全将会面临更加严峻的挑战。本文从技术角度出发,对防火墙内部主要模块间的通讯技术进行了详细的分析和介绍,希望能对不同的用户提供参考。
参考文献
[1]Keith E.Strassberg,Richard J.Gondek,Gary Rollie等著.李昂等译.防火墙技术大全.北京:机械工业出版社.2003.
[2]Terry William Ogletree著.李之棠等译.防火墙的原理与实施.北京:电子工业出版社.2001.
[3]博嘉科技.LINUX防火墙技术探秘.北京:国防工业出版社.2002.
个人防火墙论文 第6篇
关键词:Windows构架,防火墙,网络封包拦截技术
引言
随着网络技术的迅速发展, 网络安全问题日益突出, 个人防火墙得到广泛应用。文章通过介绍防火墙的发展、防火墙种类及Windows构架下个人防火墙技术, 提出了基于Windows构架网络数据包拦截的个人防火墙设计。
1 防火墙介绍
1.1 防火墙的发展
防火墙是实现内外网络的隔离, 以保护内网免受外部网络的非法入侵而造成损害。防火墙发展共经历了四个阶段:
第一个阶段:静态包过滤防火墙。采用包过滤技术, 网络访问和数据过滤完全依赖于路由器, 且过滤规则完全由路由器提供。这类防火墙处理快速, 但过滤规则简单不能够拦截到较低层的数据, 但实现了数据包过滤[1]。
第二个阶段:防火墙用户化, 提供给用户可实现数据过滤功能的套件。相比第一代防火墙, 它是工作在电路层的防火墙, 仍采用包过滤技术。用户需要做系统的配置, 对用户提出较高的要求[2]。
第三个阶段:应用层防火墙, 采用纯软件的方式实现, 安全性大有提高。它提供了很好的操作界面, 不需要用户进行复杂的系统配置, 因此这类防火墙深受用户喜欢[3]。
第四个阶段:具有安全操作系统的防火墙, 防火墙本身就具有自己的操作系统, 尽管它的核心技术仍然是数据包过滤技术, 但是它采用自适应的代理技术, 使防火墙有一定的自我适应能力, 在安全性上较前面各阶段的防火墙有了进一层的突破[4]。
防火墙的四个发展阶段从本质上讲就是静态包过滤和动态包过滤两个主要阶段。
1.2 防火墙种类
防火墙为实现对内部网络的保护, 工作在以太网与内部网之间, 通过过滤和阻挡有害的网络数据, 进而保护内部网络免损害。
从技术上运用上防火墙可分为包过滤技术、应用代理网关技术及状态检测技术三类[1], 下面分别介绍这三类防火墙技术:
1.2.1 包过滤技术
第一、二代防火墙均采用这种技术, 核心在于对数据包的处理分析以及应用程序处理规则的设置。工作时将网络数据包进行拦截后与静态的安全规则进行对比分析, 判断是否应该对此程序或数据包放行。
1.2.2 应用代理网关技术
防火墙将内网与Internet直接通信桥梁彻底隔断。只要设置好过滤规则, 危险的数据包是不可能传到内网中去。此类防火墙需用户进行系统配置, 且其安全策略的设置相当繁琐, 处理速度较慢。
1.2.3 状态检测技术
状态检测技术采用对数据包动态的过滤完成对传输层数据通信的控制。传输的所有数据包, 先按照静态规则进行比对分析, 如放行, 防火墙仍保持对数据包跟踪, 此后如发现数据包内容与之前拦截数据包记录的状态表内容不一致时, 系统自动将这个数据包丢弃。此类技术实现对数据包全程跟踪, 多次安全考核。较前面两种应用范围更广, 但存在处理较慢的毛病。
2 Windows个人防火墙及与网络封包拦截
2.1 Windows个人防火墙简介
Windows个人防火墙是根据Windows网络协议架构, 通过在操作系统中插入Hook程序的方式, 对所有网络通信的数据进行检查分析, 并将危险的信息过滤掉。Windows个人防火墙的由防火墙进程、驱动程序和过滤规则集组成。驱动程序是防火墙核心, 实现对网络数据的拦截、分析及应用程序的询问等工作;过滤规则集则定义一些安全规则, 实现数据包过滤放行与否的原则[3]。
2.2 WINDOWS网络封包拦截技术
网络封包拦截技术是Windows构架系统的个人防火墙的技术核心。WINDOWS系统构架下数据拦截只能在应用层和核心层上进行。应用层网络封包拦截有基于Winsock 2 SPI技术, 核心层网络封包拦截有基于NDIS中间层驱动程序、基于NDIS-HOOK钩子驱动和基于TDI过滤驱动程序。下面对这四种采取不同技术的防火墙作比较:
2.2.1 基于Winsock2SPI技术:
SPI技术程序能够获得Winsock进程通信的详情, 通过嵌入自己的处理函数来完成数据流加密等用户程序自定义的处理, 但由于SPI仅实现对基于Winsock的数据包进行拦截, 对传输层的通信数据包无能为力无法拦截TCP/IP数据包, 因而有一定的局限性。
2.2.2 基于TDI过滤驱动程序:
通过TDI接口数据封包拦截, 同时拦截应用程序通信交互的接口中所要发送的通信数据包。对通讯数据包的分析, 可以防止不明应用程序对本机的攻击。但系统中TDI接口位于第四层, 对网络层的数据通信无法实现拦截。
2.2.3 基于NDIS过滤钩子程序:
通过编写钩子程序将自己的处理函数嵌入Microsoft的NDIS接口规范中, 实现网络数据拦截。仅能实现“钓鱼”拦截, 安全性较差。
2.2.4 基于NDIS中间层驱动程序:
此拦截技术可以截获所有的网络通信数据包, 在底层上完成数据包的交互, 但截获的数据包分析复杂, 可读性差, 实际应用少。这种技术却具有较高的安全性。
拦截技术各有长短, 单靠某一种拦截技术设计出来的防火墙往往达不到需要的安全级别。如费尔个人防火墙采用了SPI、NDIS-HOOK驱动程序两种拦截技术。尽管Windows构架下网络封包拦截技术多样, 要想研究出更为理想的个人防火墙就须在拦截技术上扬长避短, 多种技术相结合方式进行。
4 个人防火墙设计
基于Windows系统的国外比较出色的PC防火墙有卡巴斯基、麦咖啡、诺顿等等;我们国家比较出色的有瑞星、江民、天网、360等。下文个人防火墙设计进行描述。
4.1 系统功能分析
文章所设计防火墙是在应用层进行封包截获, 基于Winsock 2SPI技术, 主要实现以下功能:
(1) 实现计算机实时保护, 免被非法程序的攻击; (2) 完成应用程序的处理具有记忆功能, 对同一个或同一类型的应用程序处理动作统一; (3) 实现应用程序的入网操作进行分析过滤; (4) 记录应用程序联网动作及处理方案、数据通信等详情的日志记录文件; (5) 即时通报非法外在攻击, 并做出处理动作;总的说来, 此系统是基于Windows用户封包截获技术的基础下提出的, 其核心功能是应用层网络封包拦截。
4.2 系统流程图
防火墙系统包括三个方面:防火墙进程 (.exe) 、防火墙驱动程序 (.vxd或者.sys) 及防火墙安全控制规则集。工作流程如图1所示。
由上述工作流程图可知, 系统详细功能模块如图2所示。
主模块实现应用程序安装 (包括卸载) 、用户注册、安全规则编辑、安全规则设置、防火墙系统工作模式设置、日志读写、日志记录及其文件处理及显示功能;控管规则文件实现与主模块中的安全规则编辑进行交互;日志文件模块实现与主模块中的读写日志文件进行交互;驱动程序模块是实现系统的核心。它由主模块引导执行, 包含:网络数据包封包过滤模块、安全控管规则模块、工作模式模块及生成日志模块。这些模块与主模块交互以完成相应的工作。
4.3 监控界面
个人防火墙系统应用程序监控界面如图3所示, 用户可以看到当前正在与互联网连接访问的应用程序的进程, 可以清楚的此进程的路径、远端IP及端口、本机端口等信息。
5 结束语
文章首先对防火墙的发展和种类进行了介绍, 并对在各阶段其实现技术上的差异进行分析比较结合Windows个人防火墙原理和网络封包拦截技术, 提出了一种基于Windows构架下网络数据包拦截技术的个人防火墙的实现方案。
参考文献
[1]陈琪, 屈光, 高传善.Windows单机版防火墙包过滤多种方案比较与实现[J].计算机应用与软件, 2005 (5) :114-116.
[2]谢辉.包过滤技术在个人安全防御系统的研究与实现[D].西安:西安科技大学计算机学院, 2006.
[3]蔡思飞.包过滤主机防火墙技术的研究[D].太原:太原理工大学, 2006.
个人防火墙论文
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。