查看: 359|回复: 6
收起左侧

[讨论] 尝试用火绒保护Windows防火墙规则,看来没那么容易

[复制链接]
闪电战
发表于 昨天 17:54 | 显示全部楼层 |阅读模式
Windows防火墙有个很让人诟病的不足
什么应用软件都可以自己往里面添加允许规则,比如腾讯QQ、Steam
(其实这个规则是针对传入连接,大部分程序并不需要接受传入连接,也就不需要添加允许规则)
Windows从XP开始到现在,对自带墙的规则库都几乎没有任何保护(UAC勉强算一个,但很多软件,特别是安装程序,本身就要触发UAC提权)

手头有台电脑装的火绒,正好研究一下用自定义防护功能保护一下系统墙的规则库
最理想的结果,当然是各种第三方应用程序无法自作主张往里面添加规则
但需要接收传入连接的程序触发询问弹窗、或者用户自己添加规则时能正常操作

系统墙的规则库在注册表中的位置倒是很好找
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\FirewallRules

直接在火绒的自定义防护里添加一条规则,禁止对此处的修改
然后看看会发生什么

很不幸,根据火绒的报警来看,无论是程序触发弹窗、用户自行添加例外规则、第三方程序擅自修改规则,还是重置防火墙按钮,都是C:\Windows\System32\services.exe调用C:\Windows\System32\svchost.exe修改FirewallRules里面的值,火绒是不可能分辨哪些操作是用户指定,哪些是第三方程序自作主张


还是有那么点幸运,发现弹窗允许后,Windows添加的规则在注册表中的值都是以TCP Query User或UDP Query User开头,而第三方程序自行添加的规则直接是命名为诸如{4691BCF2-A46C-438E-82B1-8CF036F8B174}这样

所以还是有办法实现保护规则的目的,即禁止创建名字格式为{*}的值

注册表:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\FirewallRules\{*}
保护的动作:修改
发起程序那四行可以全部填*,或者
发起程序:C:\Windows\System32\svchost.exe
发起程序命令行:C:\Windows\system32\svchost.exe -k LocalServiceNoNetworkFirewall -p
发起程序父进程:C:\Windows\System32\services.exe
父进程命令行:C:\Windows\System32\services.exe
这样也行

美中不足是,通过高级安全Windows防火墙、允许应用通过防火墙创建的规则也是{*}这种值名,也会被拦截,所以要手动添加规则时,得先把自定义防护关了
不过好歹自带墙的触发弹窗能正常生效不是?虽然不是完美结果,也可以算实现了80%的目标吧

有一点很奇怪,测试aria2、QQ、Steam++等软件触发的弹窗,允许后都能正常创建规则
唯独Steam的弹窗,允许后创建的规则还是{*}这样的(第一张图里最上面两个值就是Steam),因此第一次运行Steam得把自定义防护关了,规则正常创建后再打开,不然运行一次Steam,自带墙就会询问一次



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x
noname114514
发表于 昨天 19:12 | 显示全部楼层
本帖最后由 noname114514 于 2025-12-2 20:26 编辑

火绒不是国内杀毒软件吗,你发国外这边干啥。。。(编辑:哦移动了,没事了)
smarts
发表于 昨天 20:41 | 显示全部楼层
保护Windows防火墙规则不是可以安装第三方软件如freefirewall吗
DeepSeek
发表于 昨天 21:20 | 显示全部楼层
这种拦截注册表的,用专业的HIPS软件会比较合适,比如用冰盾,支持RPC溯源,可以定位到是谁发起的注册表修改。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x
闪电战
 楼主| 发表于 昨天 22:04 | 显示全部楼层
DeepSeek 发表于 2025-12-2 21:20
这种拦截注册表的,用专业的HIPS软件会比较合适,比如用冰盾,支持RPC溯源,可以定位到是谁发起的注册表修 ...

因为本来就装着火绒作为安全软件,一个附带的效果

你看我发的
溯源都没有用,不管是第三方程序篡改还是系统墙询问用户,还是用户手动添加例外
都是services.exe调用svchost.exe
除非能再往上追溯一两层进程树,才可能区分
DeepSeek
发表于 昨天 22:44 | 显示全部楼层
闪电战 发表于 2025-12-2 22:04
因为本来就装着火绒作为安全软件,一个附带的效果

你看我发的

跟进程树没有关系的,往上多少层都一样。因为防火墙都是svchost.exe这个进程去修改的,这个的父进程是services.exe。
第三方进程修改防火墙,是通过发送RPC命令给svchost.exe去修改注册表,如果不支持RPC溯源,那么只能是火绒上面的显示。
如果支持RPC溯源,那么就会有两个进程,一个发起进程(QQ安装包),一个实际操作进程(这个是svchost.exe)。看上面的截图的明白了。这种就可以直接识别是哪个进程发起的修改。
闪电战
 楼主| 发表于 昨天 22:52 | 显示全部楼层
DeepSeek 发表于 2025-12-2 22:44
跟进程树没有关系的,往上多少层都一样。因为防火墙都是svchost.exe这个进程去修改的,这个的父进程是ser ...

嗯,刚才没仔细看
先研究一下冰盾,如果能够比较好的智能化,就装上试试
现在没精力鼓捣纯手动HIPS了
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2025-12-3 03:18 , Processed in 0.083608 second(s), 4 queries , Redis On.

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表