Windows软件防火墙实现技术简述

【windows】如何通过防火墙配置实现ICMP协议通信(允许ping) 本文详细解析了Windows系统下因防火墙默认拦截导致无法Ping通的原因,并提供了两种解决方案:通过控制面板图形界面创建ICMP入站规则,以及使用Netsh命令或PowerShell进行高效配置与管理。文章旨在帮助用户快速掌握允许ICMP协议通信(即允许Ping)的实用技能,确保网络诊断与设备互访的顺畅进行。 阅读详情
本文简要介绍了目前流行的 Windows软件 防火墙的各个功能组件,及其实现方法。
Windows软件防火墙的发展概况

    从Windows软件防火墙的诞生开始,这种 安全防护产品就在跟随着不断深入的黑客病毒与反黑反毒之争,不断的进化与升级。从最早期的只能分析来源地址,端口号以及未经处理的报文原文的封包过滤防火墙,后来出现了能对不同的应用程序设置不同的访问 网络权 限的技术;近年来由ZoneAlarm等国外知名品牌牵头,还开始流行了具有未知攻击拦截能力的智能行为监控防火墙;最后,由于近来垃圾插件和流氓软件的 盛行,很多防火墙都在考虑给自己加上拦截流氓软件的功能。综上,Windows软件防火墙从开始的时候单纯的一个截包丢包,堵截IP和端口的工具,发展到 了今天功能强大的整体性的安全套件。
    接下来本文就对一个Windows软件防火墙应当拥有的这些组件进行一个简要的技术介绍。

封包过滤技术

     封包过滤技术是最原始的防火墙所拥有的第一种功能。但是该功能简单强大,直到现在都是任何一个防火墙必不可少的功能。       想要在网络数据包到达应用程序之前拦截之,就要在系统的网络协议栈上面安装过滤钩子。对Windows NT系列内核来说,可能安装过滤钩子的地方大致是这么几个,从高层到底层排序:SPI层(早期的天网防火墙),AFD层(资料缺乏,尚无例子),TDI层 (不少国内墙),NDIS层(ZoneAlarm,Outpost等)。越位于高层,则产品开发难度越低,但是功能越弱,越容易被攻击者所穿越。由于 NDIS层的防火墙具有功能强大,不易被穿透等优点,近来各大防火墙厂商的 趋势是选择NDIS层来做包过滤。
     目前比较流行的NDIS钩子技术有两种。一种是挂接ndis.sys模块的导出函数,从而能够在每个ndis protocol注册的时候截获其注册过程,从而替换其send(packets)handler和receive(packet)handler。这个 方法的缺点是在第一次安全之后无法立刻生效,必须要重起一次,而且要禁用的话,也必须重起。
    2004年12月的时候, www.rootkit.com上面的一名黑客发表了一篇著名的文章:“Hooking into NDIS and TDI, part 1”(http://www.rootkit.com/newsread.php?newsid=219)。这篇文章本意是为rootkit作者们提供一 种挂接底层驱动实现端口重用的方法,但是这篇文章揭示了一个全新的技术:通过动态的注册ndis假协议,可以获得ndis protocol的链表地址。得到这个地址之后就能不通过重起,就能替换并监控每个ndis protocol的send(packets)handler和receive(packet)handler,并且可以动态的卸载监控模块不需要重起。 在这篇文章出现之后,很多防火墙厂商都悄悄地对自己的产品进行了升级。目前的ZoneAlarm等产品就是 使用这种技术,可以在安装后即时发挥作用。这个例子更充分的体现了,黑客和反黑技术本来就是相辅相成的,本源同一的。
应用程序访问网络控制

    以往的防火墙只能古板的允许或者禁止整个系统去访问网络上的目标,比如允许了系统可以访问外网的http端口,就允许了所有进程,不能只控制IE等几个进程有权这样做。该技术的出现 解决了这个 问题,对每个陌生的进程都会询问客户是否允许访问网络,因此还有一定的查杀未知木马病毒的能力。
     由于NDIS里面的那些send/receive handler全都是由tdi缓冲之后再调用的,运行的上下文全都是kernel,并且不保存原先进行tdi操作的进程号,因此在封包过滤的NDIS钩子 层次无法取得进行操作的进程ID。想要解决应用程序访问网络控制的问题,就需要在tdi或者更高的层次上使用钩子。一般来说,主流是使用tdi钩子,在进 程的网络调用栈进行到tdi的TDI_CONNECT,TDI_LISTEN,TDI_RECEIVE,TDI_SET_EVENT_HANDLER等调 用时,进行进程判断和提示。
    对于winsock的应用程序来说,最重要的是主动连接请求,TDI_CONNECT;接受连接请求, TDI_SET_EVENT_HANDLER中的TDI_EVENT_CONNECT。对于udp收发,还要处理TDI_SEND_DATAGRAM, TDI_RECEIVE_DATAGRAM和TDI_SET_EVENT_HANDLER中的TDI_EVENT_RECEIVE_DATAGRAM请 求。这个时候,直接PsGetCurrentProcessId就可以得到进程号。
    tdi钩子有一个问题,就是对于 TDI_SET_EVENT_HANDLER的hook,很可能不能及时发挥作用,必须要重起以后。由于不像ndis钩子需要hook系统函数或者修改系 统数据结构,tdi钩子可以直接使用微软提供的过滤器驱动程序接口,在安装编写上要比ndis钩子简单的多, IoAttachDeviceToDeviceStack就可以了。智能行为监控

    随着防火墙的发展,现在的ZoneAlarm, Kaspersky等都发展成了所谓的“安全套件”,能够多方位的保护用户的系统。查杀未知的病毒和木马是所有防火墙厂商都非常注视的一环。在目前来说, 查杀未知病毒木马,最行之有效的方法,就是类似于ZoneAlarm,Karpasky Internet Security,Mcafee,System Safety Monitor等安全工具的智能行为监控手段。实践证明,这种智能行为监控针对未知的恶意软件有着强大的杀伤力。例如,灰鸽子无论如何加壳变形,能够躲过 杀毒软件的查杀,也不能逃避ZoneAlarm的智能行为监控;很多地下流传的没有公开的木马,放上去安装,在安装过程中也一样会报警;甚至很多0day overflow exploit在执行过程中就会报警。可以说,这个可能是目前最有前景的防火墙新技术。

    例如,一个智能行为监控模块,可以监控以下进程行为,并且判定为恶意软件或者提示用户,让用户选择是否允许:

    把自己注册成每次开机自动启动;

    装载可疑的内核驱动程序;

    注册未知的新服务;

    修改或者替换系统重要文件;

    使用raw_socket接口;

    可疑的word宏或者脚本;

    可疑的邮件附件例如可执行程序;

    安装windows消息钩子;

    创建远程线程到其他程序;

    创建受控制的傀儡进程;

    对系统API的请求来源代码和数据区在同一区域;

    监控上述的这些行为,全部都可以使用系统钩子,消息钩子和API钩子等技术来实现,洗劫这里就不详细谈了,熟悉hook的技术人员都应该知道怎么做了。

反流氓软件技术
     目前的信息安全领域,由于病毒的不可控性和黑客的技术门槛提高,黑客攻击和病毒攻击均有大幅度减少的趋势。但是一种新型的安全威胁却在日益的发展壮大,这 种很不同于传统病毒的安全威胁,就是从开始就彻底的有明确商业目的的流氓软件。这种软件为了自己的商业利益,不惜牺牲客户的权益,强行在客户的浏览器上安 装,驻留系统,强制制止用户卸载或者删除自己。这类软件也带来了非常大的麻烦,经常性地弹出广告页面,篡改用户浏览器主页,篡改用户浏览器搜索引擎,降低 用户系统 性能,更严重的是很多设计低劣的流氓软件会让用户的系统变得很不稳定,经常性的死机和重起。大量的防火墙客户对流氓软件深恶痛绝,希望防火墙能够在流氓软件安装的时候能够提示客户,给客户一个选择的机会。因此这也成了新一代防火墙应该拥有的功能模块。
     由于流氓软件不同于一般病毒木马,有着强大的商业支持,升级换代非常快,并且碍于各方面的影响,防火墙和杀毒软件不好将其作为病毒木马来查杀,否则可能会 引起法律和商业等背景关系上面的很多问题,所以比较好的一个选择,就是防火墙厂商使用行为监控方法来提示用户流氓软件的安装。

    流氓软件除了拥有普通木马或病毒的以下几个特征,

    把自己注册成每次开机自动启动;

    装载可疑的内核驱动程序;

    注册未知的新服务;

之外,还有一个很重要的特征就是劫持浏览器。以下的为了避免麻烦,均不举软件实例。    
   HKLM/Software/Microsoft/Windows/CurrentVersion/Explorer/Browser Helper Objects,这个被叫做BHO插件的东西,是最多流氓软件和ie插件的栖身之所,监控这个健值是最重要的;

    HKCU/Software/Microsoft/Internet Explorer/UrlSearchHooks,这个健值可用来劫持搜索引擎;

    HKLM/Software/Microsoft/Internet Explorer/Toolbar,很多浏览器插件也会注册在这里;

    HKCU/Software/Microsoft/Internet Explorer/Explorer Bars            HKLM/Software/Microsoft/Internet Explorer/Explorer Bars            HKCU/Software/Microsoft/Internet Explorer/Extensions                HKLM/Software/Microsoft/Internet Explorer/Extensions                 这四个键值也有流氓插件钻入的可能。
    HKLM/SOFTWARE/Microsoft/Internet Explorer/Main和    HKCU/SOFTWARE/Microsoft/Internet Explorer/Main这两个子目录下面有大量的IE首页,搜索页面等敏感信息需要保护或者提示用户,这里就不仔细说了 
Windows防火墙与网络封包截获技术源代码 Windows防火墙与网络封包截获技术这本英文原版教材对局域网/城域网技术进行了全面的探讨,既强调了基本原理,也注重在设计局域网/城域网时性能的重要性。本书还涉及了各种高速和无线局域网、与QoS相关的技术以及网络之间的互联和广域网。全书包括四个部分。第一部分提供必要的技术背景,内容包括对数据通信和网络中的一些论题简要回顾以及对协议与TCP/IP协议栈的介绍。第二部分讨论局域网的一般性问题,内容包括局域网实现过程中常用的拓扑结构和传输介质、局域网协议体系结构以及LLC的详细内容。第三部分是本书的重点,主要介绍五种相关类型的局域网,内容包括以太网、令牌环网、光纤信道局域网与无线局域网以及异步传输模式(ATM)局域网。第四部分讨论有关局域网设计的一些问题,包括用网桥进行局域网互联、网际互联、网络管理及性能考虑等问题。本书适合高等院校电子、计算机、通信类专业作为双语教学的教材,也适应专业技术人员参考。目录:第一部分 Windows网络封包的截获技术第1章 Windows网络协议架构1. 1 Windows网络协议的实现1. 2 Windows操作系统的总体架构1. 3 网络7层协议在Windows中的实现1. 4 TCP/IP协议的架构1. 5 TCP/IP协议在Windows中的实现第2章 编程环境的构建2. 1 硬件需求2. 2 软件需求2. 3 软件安装2. 4 VC6 IDE环境的设置2. 5 编译并测试Winsock示例程序2. 6 编译并测试DDK示例程序2. 6. 1 测试驱动程序示例程序2. 6. 2 编译驱动程序示例程序2. 6. 3 在VC环境下编译驱动程序第3章 用传输层过滤驱动程序截获网络封包 立即下载

相关推荐

一个简单的防火墙程序

一个简单的个人防火墙程序,该程序可以进行简单的网络安全防护。

windows文件保护_四种方法关闭Windows防火墙,有效防止病毒入侵

如果Windows防火墙干扰了网络连接,请按照以下步骤完全关闭或禁用Windows防火墙。为了保护系统免受未经授权的传入和传出连接的侵害,Windows拥有内置的防火墙管理系统。使用Windows防火墙,用户可以设置特殊规则来控制哪些可以和不能连接到网络。如果Windows防火墙无法正常工作,或者安装了第三方防火墙软件,则可以轻松禁用Windows防火墙。注意:以下的操作步骤可在Windows 1...

weixin_39748183的博客 2529

简单的网络监控软件 防火墙的设计与实现

Windows下的简单的网络监控软件的设计与实现 毕业设计

利用操作系统提供的API编写防火墙[转载]

该程序涉及到的API说明请访问微软的MSDN Library代码在C++ Builder 5编译通过*/#pragma hdrstop#include "windows.h"#include "Fltdefs.h"// 需要加载"iphlpapi.lib"//----------------------------------------------------------------------

冬天到了,春天还远吗? 1013

软件防火墙

软件防火墙 可单独禁止指定程序联网,支持快捷方式直接拖入黑名单列表执行断网操作,适合steam以及部分需要断网的破解应用。 绿色单文件版,方便携带,直接使用。

windows防火墙驱动开发源码

windows防火墙驱动开发源码,包括2个工程,一个封包过滤驱动,一个框架工程

使用windows提供的API判断防火墙开启状态

有时候在代码中我们需要检测防火墙的状态变化,就可以使用windows提供的API函数 #include <windows.h> #include <crtdbg.h> #include <netfw.h> #include <objbase.h> #include <oleauto.h> #include <stdio.h> #pragma comment( lib, "ole32.lib" ) #pragma comment(

new9232的博客 2276

Windows中最需要监听的五项安全设置

对Active Directory进行基本管理至关重要。如果用户的帐户密码太简单,能够轻易被破解,不经常更换或者根本没有设置密码,那么网络和服务器就很容易被攻击。务必正确设置这些密码值以及帐户拒绝登陆策略。那些最实用的值能够帮助你阻挡针对密码的种种攻击。同样的,以上Active Directory服务器三个组的用户权限应当妥善管理并经常监听。如果普通用户拥有服务器,计划或者域管理组的此类权限,那将很可能引发重大损失或严重问题。

微软Windows软件防火墙实现技术简述

 微软Windows软件防火墙实现技术简述  

cnrandy 的专栏 812

Mamba实战:如何用Samba框架轻松搞定RGB-D显著性检测(附避坑指南)

本文提供了基于Samba框架进行RGB-D显著性目标检测的实战指南。详细解析了从环境配置、数据预处理到模型推理与可视化的全流程,并重点剖析了多模态数据融合中的常见陷阱与调试技巧,旨在帮助开发者高效部署这一基于Mamba的先进视觉模型,规避工程实践中的典型问题。

dapp9builder的博客 615

简单初识 Material Point Method(MPM)

简单初识 Material Point Method(MPM):先介绍了Lagrangian和Eulerian,并简单介绍了MPM Method

qq_45776432的博客 7371

Windows防火墙的原理及其作用

Windows Defender

dianqicyuyan的博客 1351

用Matlab和CVX搞定原子范数最小化:一个信号处理小白的避坑实践

本文详细介绍了如何使用Matlab和CVX实现原子范数最小化(Atomic norm minimization),特别适合信号处理初学者。从CVX安装配置、核心代码解析到实战中的典型问题与解决方案,提供了全面的避坑指南。通过具体案例展示了原子范数在频率估计和DOA估计中的优势,并给出性能优化策略和可视化方法。

weixin_28731231的博客 234

SQL Server 2005在防火墙需要开启的端口

开放TCP 1433端口即可注意:Windows内置防火墙与专用防火墙软件都要开启 

kunguo的专栏 1175

手把手教你用Chrome DevTools逆向分析抖音a_bogus参数(附完整日志插桩方法)

本文详细介绍了如何使用Chrome DevTools逆向分析抖音a_bogus参数的生成逻辑,包括XHR断点定位、日志插桩追踪和加密核心逻辑解析。通过实战案例,帮助开发者掌握逆向工程技巧,应对抖音接口的动态加密变化,特别适合研究dy接口和a_bogus参数的技术人员。

weixin_27741699的博客 791

无人机避障——4DMmvRadar三维点云坐标转换到无人机坐标系(三)

无人机避障——4DMmvRadar三维点云坐标转换到无人机坐标系(三)

weixin_45390670的博客 1869

终极指南:如何禁用Windows Defender和防火墙的完整教程

你是否厌倦了Windows Defender频繁的弹窗警告?或者想要使用第三方安全软件但Windows Defender总是干扰?今天我将为你介绍一个简单而有效的方法——使用no-defender工具来禁用Windows Defender和防火墙。这个开源工具通过Windows安全中心API提供了一种巧妙的方式来管理Windows安全功能,让你可以自由选择适合自己的安全解决方案。 ## 什么是n

gitblog_00750的博客 1035

【WRF-Urban数据集】 WRF 模型城市冠层参数 GloUCP 的使用

【数据集】 WRF 模型城市冠层参数 GloUCP 的使用

WW、forever的博客 484

终极指南:如何巧妙禁用Windows Defender与防火墙

你是否曾为Windows Defender的频繁扫描而烦恼?或者因为防火墙限制导致某些软件无法正常运行?今天,我们将深入探讨一个名为`no-defender`的开源项目,它提供了一种巧妙的方法来管理Windows系统的安全防护功能。这个工具通过Windows安全中心API实现,为需要完全控制安全设置的用户提供了新的选择。 ## 为什么需要禁用Windows安全防护? Windows Defen

gitblog_00067的博客 132

FC7300 SPI MCAL配置引导

Example - QMI8A01z外设:Example - QMI8A01z外设:

舊梦的博客 260

基于 MFC C++ 的心电监测客户端

4. **报警功能**:使用 `PlaySound` 播放报警音(需准备 `alert.wav` 文件),界面显示报警状态。

寒寒豆豆软件公司的博客 95

实践四 防火墙的双机热备技术

掌握 VRRP 协议、VGMP 协议以及 HRP 协议的相关概念以及工作过程;掌握基 于 USG 系列防火墙的双机热备配置方法; 基于模拟网络环境,实现防火墙的双机热备。某企业的业务需持续提供服务,为避免网络设备及外部不可控因素导致线路中断,希望在网络出口增加冗余以增加网络的可靠性。本实验通过在网络出口位置部署两台防火墙作为网关,保证了在单机故障的情况下内部网络与外部网络之间的通信畅通。

weixin_55935823的博客 498

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

上一篇: 利用钩子技术控制进程创建
下一篇: 内核态调用Nt*函数
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值