搜索
查看: 71617|回复: 173
收起左侧

[讨论] 毛豆怎么做规则

  [复制链接]
柯林
发表于 2011-12-10 21:13:52 | 显示全部楼层 |阅读模式
本帖最后由 柯林 于 2011-12-21 09:43 编辑

这篇帖子应部分新手的要求,从一个老菜鸟的角度出发,从实例演示开始,探讨一下规则的制作及相关问题。
重点是授渔,方式以启发和探讨为主。最终期望是让新人知道怎么去追寻答案,不是告诉一个什么标准答案。这世界根本就不存在什么标准答案。
本文最根本的目的,在于探讨和交流,希望从一个起点开始,引发大家深入讨论各个程序的行为及规则。
水平有限,内中错误,还请大家谅解和指正。

本帖分两个篇章
初级篇:介绍一下,大家一般是怎么处理的。
中级篇:探讨一下,为什么这么做以及怎么做好。

感谢mxf147版主制成pdf文档,需要的在这里http://115.com/file/e6gxnzpd#

喜欢chm格式的在这里: 毛豆怎么做规则.part1.rar (600 KB, 下载次数: 6809)

评分

参与人数 6魅力 +1 人气 +6 收起 理由
梦中明月 + 1 很细腻
梦落红尘 + 1 学费
mxf147 + 1 精品文章
深雅爱哲 + 1 一直在等,半夜来顶!我是上次16楼的
zhangkun0214 + 1 期待完全版

查看全部评分

柯林
 楼主| 发表于 2011-12-10 21:15:56 | 显示全部楼层
本帖最后由 柯林 于 2011-12-11 13:17 编辑

【初级篇1】程序规则的做法

程序规则的做法很简单,就是回答两个问题——我允许这个程序做什么?不允许这个程序做什么?要回答好这两个问题,只需弄清一个问题——我用这程序来干什么?

以浏览器为例,我们来看一下,它的规则是如何诞生的。
请打开D+/计算机安全规则,单击“添加”,程序路径选择IE浏览器:
t tu1.png
点击“应用”之后,就会在全局规则(所有应用程序*)下面出现一条IE浏览器的规则。
双击这条规则,点击自定义,打开规则设置画面:
t tu2.png
点开“访问权限”,逐一制定各个选项方面所给予IE浏览器的权限。
1、运行一个可执行程序——AD行为
这一项,就是让你设置——允许IE调用哪些程序。
“我用IE来干什么呢?”用来上网,启动IE会打开一个新窗口,创建一个IE进程,所以要允许运行IE,如果默认浏览器不是IE,遇到某些链接需要启动默认浏览器,就要允许运行其它浏览器;要看视频,就要调用播放器;要听歌,就要调用你的音频播放器;要下载文件,就要调用你的下载工具迅雷什么的,某些页面上有聊天工具选项,当你点击它的时候,就要允许调用聊天工具(比如QQ或MSN);浏览器下载的缓存文件里,有文本文档,需要允许调用记事本,有些是加密数据需要解密要允许调用解压软件……(究竟IE浏览器会遇到哪些文件需要调用哪些程序来处理,是瞎猜的吗?当然不是,有参考依据——打开浏览器缓存看:)
2011-12-11 12 44 35.png

根据以上需求,我们已经知道,应该允许IE浏览器运行哪些程序。
点击“修改”,在“允许的应用程序”里面添加这些东东:
t tu3.png
做完了允许的,就该考虑不允许的(其它那些不允许IE浏览器调用的程序,怎么办?一是在IE的这个规则里面,直接选择阻止;二是留给全局规则去考虑)。

举一反三:其他浏览器,跟IE浏览器一样的道理,你需要它做些什么,就要允许它去调用相关的程序。
会了一个,其它的就会了,原理上都一样。譬如聊天工具QQ,运行它需要更新数据、安全检查什么的,就要允许它运行它的更新程序,安全助手……需要查看QQ邮箱,就要允许它运行浏览器……广告、新闻、不喜欢就阻止相关程序运行【程序路径添加在“被阻止的应用程序”里,或者是计算机安全规则里的“被拦截的文件”】。
下载工具也一样,要使用搜索页面、看新闻、就要允许运行浏览器……

2、进程间内存访问——AD行为
这一项,是设置允不允许IE浏览器去访问其他进程的内存。允许,可能导致的结果是,IE浏览器可以控制其他正在运行的程序。
一般认为,控制它启动的程序是可以接受的。所以,请参照第一步,把允许IE运行的程序添加到例外允许里面,把整个选项设为阻止(意即除了允许IE浏览器访问例外允许的程序的内存之外,禁止访问其他任何程序的内存):
t tu4.png
流行的观点认为,只要不影响程序的正常运行,就先阻止它访问其他进程的内存再说。这个看法对不对呢?留待中级篇里讨论。(相关问题就是,IE浏览器会访问资源管理器explorer的内存,应不应该允许呢?)
举一反三,其他程序都一样,允许它调用哪些程序,一般来说就应该允许它访问它们的内存。

3、窗口或者事件钩子——AD行为
这一项,就是设置,允不允许IE浏览器安装钩子,以及安装哪些钩子?
安装钩子,意味着程序可以中途截取和控制一些消息,这一点足以让程序做很多事——杀软截取信息,可以发现病毒木马的不轨行为,病毒木马截取信息可以窃密或控制其它程序,正常程序截取它需要的信息可以让它的某部分功能完全发挥。这是一个需要高度注意的行为。
流行的做法,允许四个钩子:
t tu5.png
举一反三,其他程序不管它,加上这四个钩子就是,对不对呢?中级篇里进行深入讨论。这里的初步看法是NO,很多程序无需安装钩子,需要安装钩子的程序所装的钩子文件不一样。一般建议监控,由弹窗来选择。如果非要不分青红皂白就按上钩子允许它加载,大概下面这个钩子文件可以允许:
%windir%\system32\msctf.dll

4、进程终止——AD行为
这一项,就是设置,允不允许IE浏览器结束其他进程,以及允许结束哪些进程?
一般来说,它自己调用的程序,允许它结束它们——也就是说,IE浏览器调用了播放器来播放视频中的内容,播放完毕,可以让IE终止播放器的运行。这个没什么好说,参看它允许运行的程序,把名单添加到“进程终止/允许的应用程序”里面,然后把该项设为阻止即可。
举一反三,管它哪个程序,允许它调用了哪些程序,也有权允许它结束它们。
(有人说,一般的程序,不应该具有结束其它进程的权限,创建进程和结束进程是由系统程序csrss.exe负责的。对不对呢?留待中级篇里探讨)

5、设备驱动程序安装——AD行为
这一项,就是设置,允不允许IE浏览器加载驱动程序。
大多数程序不需要驱动程序,无需加载,IE也不例外,所以该项上直接设为阻止即可。
举一反三,其他浏览器、各种播放器、各种下载工具、聊天工具、办公软件,无需加载什么驱动。

6、窗口消息——AD行为
这一项,是设置允不允许IE浏览器发送窗口消息。
这一项仅有测试意义,没有实际应用意义,直接选允许即可(如果全局规则该项是询问,这里保持默认的询问也行)。
举一反三,管它什么程序,除了病毒木马和专门发送消息洪水的程序,一般都设为允许。

7、受保护的com接口——AD行为
这一项,就是设置,允不允许IE访问某个com组件的接口。
这是很关键的一项,请谨慎选择,一般情况下,一个正常的程序至少应该允许访问shell.explorer.*
tu6.png
举一反三,其他程序,首先允许shell.explorer.*这个com接口,其他的,根据弹窗选择(如果你在这一项上设为了阻止,程序因此而出问题,请到日志里查看,根据日志添加它正常工作所需要访问的com接口)。
注意,一些重要的com接口请不要乱允许,特别是两个伪com接口(请查阅com的资料,了解各项的作用)。


8、受保护的注册表键——RD行为
这一项,就是设置IE浏览器可不可以访问列入监控保护的注册表(请打开“计算机安全规则/受保护的注册表键”查看)。【访问的意思,在毛豆里包含读写操作——读取、列出、创建、修改、删除】
毛豆列入受监控保护的注册表,一般都是重要的内容,是为了防毒而设立。正常程序一般很少触碰或者仅仅触碰其中的一小部分,所以,很多人不管三七二十一,一上来就选个阻止,然后根据日志慢慢的排除打磨,这方法可以一试:
tu7.png
举一反三,没什么好弄的,先阻止,需要放行的根据日志排除。
注册表部分很复杂,留待中级篇里慢慢讨论。

9、受保护的文件/目录——FD行为
这一项,就是设置程序的FD行为——允许或不允许它进行哪些文件操作(读写文件,由于毛豆防读做得粗糙,FD上的访问行为,主要是指写——创建、修改、删除文件或文件夹)
这一项的设置,根据受保护的文件来进行。默认保护了系统重要文件和目录,以及可执行文件和第三方协议驱动等(请到“计算机安全规则/受保护的文件和文件夹”里查看)
FD上的设置,主要是防止病毒创建文件或修改删除正常文件,根本的目的是保护好系统文件。所以设置的重点,是禁止一般程序访问系统重要文件和目录。
具体到IE之上,要允许它下载exe格式的安装程序,就要允许访问它的缓存目录,如果允许它把exe格式的安装文件下载到我的文档里,就要允许访问我的文档:
tu8.png
当写下禁止进行C:\Program Files\*的访问时,根据受保护的文件内容,此举将禁止创建、修改、删除C:\Program Files文件夹下的可执行文件。
举一反三,各种程序,禁止访问系统文件,这是守则。这样一设定,某些程序访问windows目录里的文本文件,创建某些ini文件到windows目录里进行修改的行为也就被阻止了,譬如迅雷、pps播放器之类,自己根据日志排除吧。

10、域名解析客户端服务——AD行为
这一项,就是设置允不允许程序使用域名解析服务。
没啥好解释的,允许上网的程序就允许,不允许上网的程序就阻止。(阻止这一项是否就一定不能上网呢?自己测试吧,事实胜于猜测)

11、内存——AD行为
这一项,就是设置允不允许程序访问物理内存。
一般程序不需要访问物理内存,只要极少数的程序需要这样做,譬如内存整理程序等。
没说的,浏览器当然是阻止。
举一反三,不用怎么举和反了,是个程序先阻止。

12、屏幕监视器——AD行为
这一项的设置,就是允不允许访问屏幕。允许了会怎样?当然是读取屏幕内容。阻止了会怎样?已知事实是截屏软件截不了屏,所以一直认为这一项是用来防止截屏的。默认规则的预定义规则里最低权限都允许这个,所以没啥说的,一般选允许,未知或病毒木马程序选阻止。(阻止之后,正常程序是否可以正常运行?自己实证)

13、磁盘——AD行为
这一项,通常理解为设置是否允许程序获取直接从底层访问磁盘的权限。允许,就可以绕开系统安全机制,任意改写磁盘文件,可以进行文件删除、修改和格式化磁盘等操作。没啥好说,一般程序不应该这样。是个程序都选阻止,一般是没错的。(金山office的word程序不允许直接访问磁盘貌似会崩溃)

14、键盘——AD行为
这一项,通常理解为设置程序是否允许监听键盘。一般来说,需要跟键盘输入打交道的程序,允许。
IE浏览器需要输入词语进行搜索,允许。(阻止浏览器访问键盘行不行?自己实证)

这样一圈弄下来,一个IE浏览器的规则就诞生了。
tu9.png

其他浏览器以及其他程序的规则,都是这么弄出来的。这样的规则变化一下,就可以成为预定义规则里的一个预设规则,用来给合适的程序授权。

提醒注意一下,根据规则流程优先级关系(自己查找教程里的说明),如果全局规则是默认的全局询问,这条新做的程序规则(IE浏览器的规则)无论是位于全局规则之上还是之下,效果都一样;如果全局规则做了相应的设置,请把新做的程序规则移到全局规则之上,以免被全局规则影响。

毛豆规则的设置,主要是设置的“访问权限”——允许这个程序干什么。
“保护设置”——对这个程序的保护,一般不进行设置,因为需要进行特别保护的程序很少,除了杀软之类极为重要的程序,一般不对它进行保护设置。

要熟练制作规则,必须熟悉规则流程优先级关系,这方面的资料请查阅论坛上的教程。
ps:新人需要掌握的东东
1、基本概念
2、各选项的含义
3、规则流程、优先级
4、相互之间的牵扯关系



柯林
 楼主| 发表于 2011-12-10 21:16:24 | 显示全部楼层
本帖最后由 柯林 于 2011-12-12 17:05 编辑

【初级篇2】分组及防火墙
●怎么分组?
其实很简单,打开默认的分组看看:
tu1.png
上图显示,组分为两类——程序和操作对象【也可以叫程序和文件】。
分组很简单,按类分组,譬如添加一个“浏览器”的程序组,把浏览器的路径添加进去就是了:
tu2.png
程序组将在“计算机安全规则”里加以引用。
【程序也可以成为操作对象,譬如内存访问中,引用的程序分组就成为了操作对象;在运行程序、结束进程等选项里面,程序分组也被引用成操作对象】
操作对象组有两个作用:
一是在受保护文件/目录里列为保护对象扩大保护范围;
二是在程序规则或者预定义规则的FD项目上加以引用:
tu3.png

怎么分组好?你爱怎么分就怎么分:
程序方面——浏览器、聊天工具、下载工具、文档办公软件……
操作对象方面——浏览器缓存,下载文件夹,私密文件……
(有人为了区分程序组与操作对象组,给操作对象加上FD之类的前缀,譬如“FD_浏览器缓存”,这法子可以参考)

怎么分组是新人常问的一个问题。流行的说法是,按类分组(如果你看过月光斑竹的《物以类聚,权以组分》,那你应该很容易理解),譬如流行规则一般分为杀毒软件组,浏览器组,聊天软件组,下载软件组……有的分组更细的,还把程序和操作对象(FD_浏览器缓存,AD_常用钩子之类)区分开来。

分组规则最经典的参考贴:http://bbs.kafan.cn/forum.php?mod=viewthread&tid=174493

程序分组,仅仅是作了美化和方便管理。
用预定义规则来给程序组套用【这个就叫授权】,仅仅是为了图方便。
【注意分组和授权的概念。授权是最关键的,分组可以说是无所谓的,就算弄个分组叫“天王老子我最大”,把系统程序、杀毒软件啥的全塞在里面,授权来个最低权限,你还是屁用没有——结果是“天王老子你最衰”】

●防火墙规则
防火墙规则说简单很简单,一般用默认规则即可,至多稍微修改下。
要复杂也很复杂,从防火墙设置到全局规则再到应用程序规则以及端口分组、地址分组,一大堆。
(端口分组及地址分组与D+部分的程序和文件分组一样,都是为了引用。防火墙规则里是把端口分组与地址分组在全局规则与应用程序规则里的具体规则中加以引用)
如何简单设置一下防火墙规则?选个隐身模式设置一下即可。默认规则,基本不用设置,外网用户至多添加一点拦截共享端口连入的全局规则。
如何让VPN正常连接?默认规则,隐身模式选2,有需要连入的VPN端口允许即可。
如何让局域网共享顺利实现?默认规则,隐身模式选2,当有局域网用户需要连入你的计算机查阅共享文件时,按防火墙的提示,允许system进程接受共享端口的连入即可。
如果你需要详细控制每个程序的访问,旧版毛豆(5.8以前),默认规则添加一条询问所有程序TCP/UDP出入的应用程序规则即可;新版本可能需要使用“自定义规则”并删除原先配置的应用程序里的所有规则。
防火墙规则如果要详细设置,建议参考伊修的防火墙规则;局域网共享用户可以参考抓抓的局域网共享规则。

外网用户只是简单设置一下,可以参考如下设置:
tu4.png

玩防火墙了解一下基本常识——出站(连出)先经过应用程序规则的过滤再到全局规则;入站(连入)先经过全局规则的过滤再到应用程序规则。
一般不用更改“防火墙行为设置/高级设置”里面的内容,除非特别需要。譬如,在需要高安全连接的场合,譬如专线连接等,可以勾选“执行协议分析”来确保数据包的安全可靠,一般不建议使用这个增加系统负担的功能。不恰当的设置可能带来问题,譬如,某些地区,电信供应商使用分片传输,勾选“阻止分片IP数据包”可能导致网络故障。

如果想多了解一些防火墙方面的常识,请到网上搜索这些关键字——端口大全,OSI模型,报文格式,TCP/IP协议大全,RFC文档

评分

参与人数 1人气 +1 收起 理由
c287432622 + 1 这个我需要。谢了~

查看全部评分

柯林
 楼主| 发表于 2011-12-10 21:16:44 | 显示全部楼层
本帖最后由 柯林 于 2011-12-12 16:22 编辑

【中级篇1】相关问题

一切规则的起点,来源于你的需要。你要什么程度的安全,就会诞生什么样的规则——严厉的,宽松的,宽严结合的,变态的……
无论是什么样的规则,都是为了防毒的需要。HIPS列出防御的项目,是针对病毒木马恶意程序而设立。如果电脑中有病毒木马恶意程序,就会触犯相关的规定。换句话说,电脑中如果只有正常程序,安全的正常程序,这些列为监控的项目,可以忽略。也就是说,正常程序做这些,一般都是正常的,比如加驱、安装钩子、访问其它进程内存等,都是正常的行为。所以宽松规则(包括新版智能规则)一般都会放过正常的安全的程序,只把目标对准病毒木马恶意程序,重点放在未知文件上。
正常程序和病毒程序是有区别的,病毒程序的一些典型行为,譬如直接访问操作系统内核、直接底层磁盘访问、内存侵入、注入钩子、远程线程侵入等非常手段,正常程序一般比较少。如果一个正常程序忽然有了这些高危的动作,应当引起警惕,检查一下是否被病毒感染或注入。
世事无绝对,必须具体分析具体处理。一个人拿把刀把人家的肚皮切开,如果是医生给人动手术是正常行为,如果是歹徒残害他人性命就是恶意行为,不能仅凭拿刀子切肚皮就说这是恶意行为,不分对象一概而论是幼稚的做法。当然,拿刀切肚皮是个严重的事情,需要高度注意,医生也可能变凶手,世事无绝对。这就是说,不能单凭选项说事,必须看对象,而我们做规则所瞄准的对象是——病毒。
概而言之,我们使用HIPS以及制定规则,目标是病毒,是按照“假设这是一个病毒,我们应该怎么办”的思路来考虑的。由此推导,如果这是一个正常的程序,它的绝大部分行为,我们一般采取排除的方针,只对少数高危的部分,采取监控、限制乃至阻止。某些人对个别程序比较怀疑的,把它的一些原本可以当作正常行为处理的东东也列入了监控防御范围,从各种可能被利用和突破的地方对它进行严厉的限制,这就是所谓反流氓。
OK,如果是一个安全的正常程序,我们要用的程序,那我们就排除它;剩下的未知程序,我们就按照“可能这是一个病毒”的方针来处理。这两方面结合起来,就是所有HIPS规则的基本指导思想和流行套路——排除安全,卡住威胁!
如何把这种风行天下的HIPS玩法化入到具体的规则制作之中?让我们从方案到具体的规则来梳理一遍,看看有哪些东西是我们可以探讨的。

●方案问题
讨论规则经常会提到方案——怎么实现既定的安全目标。有人不管三七二十一,先从程序规则开始做起,做完程序规则,再来考虑全局规则;有人反其道而行之,一上来就做全局规则,然后才考虑常用软件的例外排除问题。这里面无所谓谁对谁错,关键是规则的尺度——宽与严。
严厉规则时常被人推崇,“全局阻止+例外允许”的方法广为流行,很多人认为它能实现最大的安全。究竟能实现多大的安全,或者从另一个角度说究竟有多大的漏洞,不是单纯看全局规则阻止了什么,还要看例外允许了什么。有人为了追求零弹窗而扩大例外允许,其安全程度,其实比新版智能易用规则的“安全文件放行”高不了多少,个别处理不好的可能还不如智能易用规则。
相比之下,3x版本采用的全局询问——不管是已知程序还是未知程序,一律弹窗询问由用户选择,是最灵活的办法,也是HIPS标准的流行做法——全局监控,由有经验的用户放行正常程序的行为,阻止病毒木马恶意程序等未知程序的行为。
如果采用全局监控的默认方式,具体的程序规则(譬如浏览器的规则)上面,不好设死的项目可以不理,交全局规则弹窗询问,这对于一程序一规则非常实用,但对于分组引用规则就可能有问题,影响零弹窗的实现。

●“误杀”问题
有人为了追求高安全,采用全局阻止的方式,某种情况下这是一种变态的规则,排除不够就会导致程序失去反应,系统死机、蓝屏、重启等故障(特别是在扩展了FD和RD保护内容的情况下,譬如某些人直接添加两个*),这就是“误杀正常程序的正常行为的”问题。
当你兴奋于全局阻止的威力的时候,请考虑一下,该排除的有没有排除干净?如果没有排除干净就启用疯狂模式,那真是摆明想尝尝死机蓝屏的滋味。个人意见,请慎用,譬如文档处理正进行到一半,图纸正要画完……一个死机,哭都没地方找去。如果是服务器使用,一个重启就够悲催的。一句话,特殊行业重要程序,谨慎处理和打磨。

●火候问题
什么时候可以来个极端严厉一刀杀(全局阻止)?答案很简单,在你排除干净系统程序和安软等重要程序的时候就可以。否则,死机、蓝屏等各种问题可能就会到来。为什么默认规则会采用全局询问+预先排除系统最主要的进程为规则模式,为什么不给你个一刀杀的严厉规则?

●解药问题
如果非要弄个极端严厉一刀杀,怎么办?不想自找麻烦的话,那就给点“解药”。譬如说,全局什么都阻止,还加上“秒杀”的内容,没规则的程序怎么办?以系统程序为例,不是说给几个开机以后常驻的进程做了规则就完事,开关机需要用到的进程,以及某些时候需要某种功能须调用的相关系统进程,它们没规则,都被全局规则给杀了,那还怎么玩?粗放型处理,直接一个C:\WINDOWS\system32\*.exe配以基本权限了事;精细型处理,可以建一个“系统次要程序”组,把需要使用的系统程序(system32下面一大堆)添加进去,给这个程序组一个合适的权限。应用程序规则同样的处理,不是说弄个主要程序(譬如C:\Program Files\Mozilla Firefox\firefox.exe)的规则就完事,还要考虑其他程序(譬如C:\Program Files\Mozilla Firefox\plugin-container.exe)不被阻止或秒杀。
极端严厉一刀杀,既杀别人又杀自家,好好考虑吧。

●精细程度
规则究竟需要做到哪个精细程度?新版默认规则采用宽松的做法——安全文件一律放行。流行的极端严厉一刀杀,要精细到底的话,需要把所有要用的程序都排除(一般人的计算机里面,估计是三五百个程序吧),要不要这样?如果采用一程序一规则的做法,是只管主要程序就行,还是所有程序都给规则?这些问题,自己考虑和选择。

●正常程序的限制
正常程序的行为要不要限制,限制到哪个程度?有人只要能用,管它日志里一大堆阻止,抱着“保证了安全就行”的念头,究竟好不好?程序限制成“老牛拉破车”与“堵上了所有可能”之间应该如何取舍和平衡?

●规则类型
不管哪种HIPS,不管是谁做的规则,真要按类型分,只有两种。
实战型:根据病毒的行为,进行针对性的防护,规则定型来源于大量病毒测试。除了官方默认规则,一般此类规则较少。
书呆子型:管你七三二十一的,根据自己的阅读经验和参考对象,逻辑上没有问题的,就化作规则定型。论坛流行的规则,十有八九都是这一类。
(你的规则真的有用吗?从年头测到年尾,把流行病毒都测一遍看吧)

●方法问题
怎么样保证计算机的安全?一般的流行思维是,管住病毒木马未知程序,就OK,如果你要更进一步,问“安全程序怎么办?万一它发疯怎么办?”如果你想到这一层,想要消灭所有可能存在的隐患,那么安全的程序也就列入了你的规划。虽然这种方式制定出来的规则实际当中可能根本就没什么意义,但是理论上确实是最高的安全机制——不但防住了病毒,连正常程序发疯的机会也不给。你真的需要弄到这般地步?

●版本问题
HIPS的每个版本可能都有变化,有些是大的变化,离开版本去谈论或照搬规则是不行的。譬如说,3x的经典手动型版本,默认的安全模式下,全局询问,有触犯就会弹窗询问。到了带沙盘的新版(特别是5.8)上,默认的
安全模式,在启用沙盘的情形下,对于安全的文件,如果没有明确的规则规定必须阻止,全局规则的询问根本就不问,这种情况下要想弹窗询问,可能需要关闭沙盘乃至调到疯狂模式。

●漏洞问题
安静不代表安全,零弹窗不代表零漏洞。一个外表再怎么漂亮的规则,如果为了通用而留下一些漏洞,那就是弊端。制作规则及评判规则需要考虑漏洞问题。譬如说,浏览器的规则,为了让IE浏览器可以下载exe格式的文件,我们在规则的FD项上允许IE访问自己的缓存目录,也就是可以在C:\Documents and Settings\Administrator\Local Settings\Temporary Internet Files里创建exe等可执行文件,万一下了一个病毒到里面,万一IE把它给激活了?这就有个漏洞。为了弥补这个漏洞,我们在IE规则里的第一项——运行一个程序里,添加例外规则,阻止IE运行*\Local Settings\Temporary Internet Files\* 就算IE下载再多的病毒到缓存里,也没办法执行它,让它们变成“尸体”。
再譬如说,为了通用,规则规定,除了“禁止访问‘重要的文件/目录’”之外允许访问“受保护的文件和文件夹”,这里面就有个漏洞——仅仅防止了对windows目录的写入,没有防止其它目录的写入,以及对可执行文件的修改。如果一个程序获得了这样的权限,逻辑上来说,它可以任意修改C:\Program Files里的可执行文件,可以任意修改其他盘上的可执行文件。你可以争辩说,一个正常程序不发疯,怎么会这样做?是的,现实当中,感染性病毒一般是自己执行修改可执行文件的操作,很少有控制其它程序去执行修改操作的。如果,相关的漏洞在全局规则上有,那真是失败,表面实现了零弹窗的安静,实际上给病毒留下了方便之门,比默认的全局监控都不如。
某些规则为了通用,采用了路径放行的办法,譬如说%windir%\system32\*.exe给个某某权限的放行规则,如果,我说的是如果,一个病毒到了system32下,它也就获得了相应的权限,比起新版的未知程序一律隔离,乃至于比起3x版本默认的无规则程序一律询问来说,都不如,都是个大漏勺。你也许抗辩说,只要我守住FD入口,禁止病毒创建文件到system32下,不就行了?是的,HIPS规则是4D一体,这方面存在漏洞的,可以由另一方面弥补。但是,逻辑上较真一下,采用路径放行的规则,天生具有缺陷,比起新版“验证文件”的方式来说,其实还差了一点。
如何避免规则中出现漏洞乃至致命的漏洞,是制作规则的过程中必须注意的问题。

●分组问题
如果以我的角度来看,怎么分组都不好。分组的目的是便于通用,但是同一个类型的程序里面,各个程序的行为未必相同,要通用就要取一个平衡,这就是所谓的“为易用而损失安全性”。譬如说,分了一个浏览器组,IE、火狐、谷歌、搜狗、世界之窗……什么浏览器都往里面塞,别的不说,单说一个FD行为——文件读写,为了套用后没有阻碍,每个浏览器允许读写的文件目录,都加在了规则里面,从逻辑分析上来说,这就导致了“滥权”——IE可以读写火狐的目录,火狐可以读写谷歌的目录……逻辑上较真一下,这就叫扯鸟蛋。当然,你可以分辨说,正常情况之下,绝不会发生这种情况,每个程序只会读写自己的目录,除非它发了疯。实际情况当然如你所说,由此也就顺便证明了新版智能性的安全依据——既然每个正常程序在正常情况之下不会做越界的事情,验证为安全的程序我不管它,它不也是安分守己的吗,除非它发了疯。
如果非要说说哪种分组方式最好,我个人的观点是,一个程序一个分组的方式最好。除非你要制作通用规则放出来给别人用,否则,你自己用的话,根本就没有多少程序,毫无必要把所有的同类程序集中到一个分组里。尽量分得细是最好的。譬如,浏览器-IE一个组,浏览器-搜狗一个组……这样细分,不但可以在各组里分别放上它的升级更新、辅助程序外,而且在对该程序组授权的时候,可以规定得最细最清楚。
其实从最高安全性的角度来说,根本就不用分组,也不用做什么“预定义规则”,一个程序一条规则是最安全最精致的做法——程序行为的授权可以做到最细。
(如果你不了解系统程序的具体行为,就不要删掉默认规则给你弄好的系统程序分组来玩什么一程序一规则,这游戏要玩就在自己装的软件上玩就行了)

●安全问题的各方因素:计算机安全,不是靠一个顶尖软件或牛皮规则来包打天下,而是由很多因素所构成。操作系统、软件、兼容性、漏洞、bug、0day、系统干净程度、个人习惯、相关知识、警觉性、安全意识……都可能决定和影响电脑的安全。

●综合考虑
如何实现一个完美的防御方案?是一程序一规则,还是分组套用?是例外放行+全局询问,还是例外放行+全局阻止?需不需要多道过滤?……制作一套满意的规则,除了个人的脾性喜好之外,需要综合考虑各种因素,看你需要哪个级别的安全,看哪种方法能够完美地实现你的意图。
柯林
 楼主| 发表于 2011-12-10 21:17:01 | 显示全部楼层
本帖最后由 柯林 于 2011-12-13 22:24 编辑

【中级篇2】防御项目初步探讨

1、运行程序
执行一个程序、运行一个程序、调用一个程序、创建一个进程、执行一个可执行文件……这些五花八门的说法,都是说的运行程序——父进程启动一个子进程。
一切问题的根源,都由运行程序开始。对于未知程序或已知为样本的程序,禁止执行它,不就什么问题都没有?这就是禁运党的做法。不运行,当然是安全的,而其本身则无所谓防住没防住——根本就没有程序行为产生,讨论什么行为防御?
这一项上可供探讨的部分,主要是防止病毒文件的执行和调用系统自带的危险程序。
病毒喜欢藏身的地方,常见的有浏览器缓存,系统备份文件目录、回收站、磁盘根目录……为了避免激活和执行病毒程序,很多人都喜欢在全局规则里规定——禁止运行IE缓存*\Temporary Internet Files\*以及系统备份目录?:\System Volume Information\*  默认规则自带禁止运行?:\Recycle?\*的规则。防止U盘病毒运行,在组策略或其它HIPS可以用一条规则——禁止执行?:\*.*来防范,在毛豆上这样写就代表所有磁盘根目录起直到任意子目录下的带后缀名的可执行程序,是不行的,一般是直接写U盘路径(譬如I:\*)禁运,结果就是整个U盘上的程序都禁止被其它程序来运行。【通过禁运U盘路径是否就能防止U盘病毒?自己实证——找各种名声响亮的U盘病毒来进行测试,如果怕中毒,没虚拟机或沙盘的可以用个安全程序比如记事本程序改为病毒同名文件来测试】
为了防止自己误操作激活病毒,还得在explorer.exe的规则里阻止运行病毒藏身的目录。
如何禁止病毒程序被启动执行?除了上面说的禁止所有程序去运行它外,还有两种方法:一是给病毒路径超低权限,譬如给予U盘路径I:\*“被隔离的应用程序”这么个预定义规则,那么,无论你怎样点击I盘上的程序,也是没用的;二是全局秒杀,在使用秒杀机制的规则中,凡是没有明确规则授予运行权限的,由全局规则直接秒杀【在秒杀规则中根本不用什么黑名单,不在白名单的直接完蛋】
系统自带的一些危险程序,比如格式化磁盘工具format.com等,如果被病毒调用,就会让你的磁盘完蛋。再比如杀进程工具taskkill.exe和ntsd.exe ,如果被病毒调用,可以用来结束其他程序的进程。再比如可以用来执行删除等dos操作的cmd.exe程序,被病毒调用可以做坏事……诸如此类的问题,通常会被做规则的人所考虑,翻阅一下EQ规则及HIPS教程,会有一大堆被阻止执行的系统程序,像Ftp.exe、at.exe、net.exe……要不要考虑这些?对于旧版的默认规则来说,全局监控下,如果有病毒调用这些危险程序,会弹窗让你选择;对于新版智能规则来说,病毒自动进了沙盘,无需费神,譬如病毒bat执行时,cmd.exe继承病毒的权限进了沙盘,如果病毒是脚本文件vbs,则cscript.exe或wscript.exe一样继承病毒权限进了沙盘,虚拟化操作保证了实机的安全。只有在纯粹D+规则玩严厉规定的规则中,才会考虑这个禁运问题,流行做法是把这些东东开列一串黑名单进行阻止。全局这样一阻止,就影响到了程序安装。比如程序安装卸载时,经常会用到cmd.exe,如果安装程序要添加或停止服务,就需要用到net.exe……程序安装问题一直是纯粹D+规则的软肋。
程序之间相互调用等问题,特别是系统程序之间的调用,请查阅HIPS教程的相关资料。
全局规则如果阻止运行所有程序*,属于变态严厉的做法,请考虑“解药”问题。

2、访问内存
访问其他进程内存,通常被看作是可以注入其他进程——控制目标程序。读取进程内存一般来说没什么危险,改写进程内存就是严重事件,意味着可以放入恶意代码去让傀儡执行。毛豆读写不分,访问其他进程内存,也包含着改写其他进程内存在内。有鉴于此,毛豆玩家对此一直严防死守,除了杀软等极度可信的程序,一律禁止访问其他进程的内存。问题真的那么可怕吗?不妨退一步想,一个正常的程序访问了另一个正常程序的内存,就会发生灾难了吗?比如说,允许IE浏览器访问了资源管理器的内存,是不是IE就会命令资源管理器去修改重要的系统文件?要发生这种事件,起码要有一个先决条件——IE被病毒所控制。
正常情况之下,一个安全的程序访问另一个安全程序的内存,逻辑上无法证明就会发生恶意事件。仅仅为了以防万一而一棍子打死,是不是有点草木皆兵?还是真的有可能?谁有样本和实例,申明一下。无样本无说服力,纯粹空论是没用的。
病毒去访问一个正常程序的内存,会发生灾难。一个安全软件访问其他进程的内存,道理上不应该是安全的吗?你安装了360或者金山的卫士,它们去访问杀软或者毛豆的内存,不是应该允许吗?
新版智能规则不在这些问题上纠缠,凡是验证为安全的程序,放行其行为,管你爱干啥干啥。

3、安装钩子
这一项大概是新人或基础薄弱的菜鸟比较头大的地方之一,有兴趣的请参阅http://www.360doc.com/relevant/3870220_more.shtml
钩子究竟是啥东东?看点网摘资料——
“钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。
钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。
钩子也可以理解为WINDOWS留给我们的后门,比如你想控制键盘,在DOS时代很简单通过INT即可,而WINDOWS时代不允许我们直接操作硬件;由于WINDOWS是消息驱动,所以我们可以拦截键盘消息以达到控制键盘的目的。但是控制自己进程的消息固然很简单,要控制所有进程消息要利用钩子了。将钩子函数放在DLL中,所有的有关键盘的消息都必须经过钩子函数过滤,这样你就可以为所欲为了。”

“钩子的分类
  一. 按事件分类,有如下的几种常用类型
  (1) 键盘钩子和低级键盘钩子可以监视各种键盘消息。
  (2) 鼠标钩子和低级鼠标钩子可以监视各种鼠标消息。
  (3) 外壳钩子可以监视各种Shell事件消息。比如启动和关闭应用程序。
  (4) 日志钩子可以记录从系统消息队列中取出的各种事件消息。
  (5) 窗口过程钩子监视所有从系统消息队列发往目标窗口的消息。
  此外,还有一些特定事件的钩子提供给我们使用,不一一列举。

  二. 按使用范围分类,主要有线程钩子和系统钩子
  (1) 线程钩子监视指定线程的事件消息。
  (2) 系统钩子监视系统中的所有线程的事件消息。因为系统钩子会影响系统中所有的应用程序,所以钩子函数必须放在独立的动态链接库(DLL)
中。这是系统钩子和线程钩子很大的不同之处。”
“钩子特别是系统钩子会消耗消息处理时间,降低系统性能。只有在必要的时候才安装钩子,在使用完毕后要及时卸载。”【综合征患者应该考虑一下】

通过这些粗浅的钩子常识介绍,新人大致知道钩子是个啥东东,也顺便知道,并不是“安装钩子”就是“天塌下来”的事情,关键要看是谁安装它?杀软之类的程序安装钩子,监视系统中的异动,是正常行为。ATI显卡的服务进程安装显卡钩子以监视屏幕,是正常行为。病毒安装钩子来窃密,灰鸽子安装钩子来隐藏自身,这些就是恶意行为。UUSee网络电视的播放器安装自己目录下的一个ocx文件作钩子,正常情况下也应该看作正常行为。QQ安装钩子QQ.exe,正常与否?某些版本的系统,资源管理器会安装钩子explorer.exe,正常还是异常?问题得看装的是啥钩子,为了实现什么目的?

默认规则自带四个允许安装的钩子文件,啥意思?
%windir%\system32\shell32.dll——风云论坛 小李探花的回答:"shell32.dll是Windows外壳Shell相关应用程序接口动态链接库文件。意即可以通过此挂钩在IE浏览器启动时可执行指定的外部程序或文件代码。有鉴于此,有些恶意程序可能通过此挂钩隐身运行或劫持浏览器,但某些系统或正常软件功能的实现也可能需要使用到它。一般情况下建议保留!"
%windir%\system32\msctf.dll——微软高级文字服务动态链接库文件,禁止这个,论坛发帖方面的一些功能就用不了。
%windir%\system32\browseui.dll——使用资源管理器里面的“后退、前进、搜索、停止、刷新”等按钮功能。
%windir%\system32\ieframe.dll——使用IE浏览器里面的“后退、前进、搜索、停止、刷新、网页进度动画、Tab、Tab关闭”等按钮功能。
此外,常用的钩子还有游戏相关的两个:
支持DirectInput输入的动态链接钩子(游戏必备) %windir%\system32\dinput.dll
支持DirectInput输入的动态链接钩子(游戏必备) %windir%\system32\dinput8.dll
为求通用而在全局规则中允许安装钩子 %windir%\system32\*.dll属于太宽泛了,虽然,只要保证system32下不被创建病毒的钩子文件可保安全,问题是病毒使用系统本身提供的钩子文件来做坏事又如何?默认的全局监控钩子安装是最好的处理机制。同样的,全局允许安装钩子?:\Program Files\*\*.dll也是属于太宽泛了。
监控并禁止未知程序安装钩子,是一般玩HIPS的基本守则。至于程序安装钩子后实现了什么,以及安装的那个钩子文件究竟要干什么?只能由高手及专家去解答。
实际问题,安装了360卫士之后,它安装钩子到毛豆上,应不应该允许?

4、结束进程
这一项的防御目标,是防止病毒结束一些应用程序的进程。譬如说,已知实例,某些病毒会结束浏览器的进程,然后启动一个假冒或者带毒的浏览器进程(比如病毒创建了一个指向恶意链接地址的浏览器快捷方式,结束浏览器进程,执行那个快捷方式,就会链接到恶意网址);某些病毒进入计算机之后,会关闭杀软、防火墙等安全程序;某种病毒会结束输入法进程后启动一个假冒输入法的病毒进程……这种情况之下,禁止未知程序结束其他进程,就能起到遏制作用。
这一项的另一个应用,是在测试之中,用来防止测试对象结束保护对象,以证明HIPS有效牛叉。实际作用和意义究竟有多大?
已知程序之中,杀软、HIPS、系统的任务管理器和杀进程工具,都有较强的结束其他进程的功能。windows系统负责创建进程和结束进程的csrss.exe也是其中之一。
在实际应用中,资源管理器以及一些应用程序,可能也会发出结束其他进程的动作,这个究竟是合法还是非法?如果,阻止了它的这一动作,而实际应用并无特别明显的影响,是否意味着这样的选择是正确的?程序结束自己创建的子进程,究竟是由程序本身来完成,还是发送消息让csrss.exe来完成?这个问题由大家去根究。
顺便扯出的问题,要不要对所有正常的程序也进行限制,防止它去非法结束别的进程?回答这一问题,可以从两个方面来考虑:正常程序是否具有任意结束其他进程的本性?病毒是否会通过该程序去结束其他进程,有样本和实例吗?

5、安装驱动
新人要了解安装驱动是最危险的行为之首,除了听闻“加驱之后就无法无天,可与HIPS平起平坐”这句话外,请了解一下ring3与ring0方面的基本常识。
是否加了驱就死定了?这得看加的是什么驱,驱动程序的作用是什么。譬如说,声卡驱动就是负责声音设备的正常运行的,怎么着它也不会去干坏事,甚至除了声音设备之外,它都不会去干涉其它设备或程序,有什么危害?反之,如果是一个恶意的驱动程序,它的代码就设定了它要搞破坏做坏事的,加载之后真是死得难看,就像HIPS测试中加了驱就拦截不到后续的动作。
问题回到前面的扯鸟蛋部分——正常程序加载需要的驱动实现正常的功能,完全是安全又合法的事!病毒程序加载恶意驱动实现病毒行为,那是高度危险!
问题的问题,一个程序,加载了驱动,我完全不知道它有什么目的和行为,譬如某些游戏,咋办?放行还是阻止?如果你对编程比较了解和熟悉,你可以分析驱动程序,一般人大概只能选择——如果你信任该程序,就放行,如果不信任,最好别装。
程序的恶意行为,是由驱动程序单独完成,还是由驱动程序提供通道让主程序执行恶意代码去实现?这个问题交给高级用户去研究,普通用户就不用管了。

6、消息发送
在拦截消息洪水的测试中,选择这一项,可以成功实施拦截。在实际应用当中,差不多是毫无意义。那么多的消息类型,究竟该拦截哪一种?没有具体选择。就算是同一种消息,每秒多少次算是构成消息洪水?没有阈值可以设定。如果说该项真有实际意义,大概只有在沙盘机制中,当沙盘处于较高的安全防护等级的时候,隔离在沙盘内的病毒或恶意程序,可能会被禁止或限制向沙盘外的程序发送消息洪水。实情如何,需要实证。感兴趣的可以自己去下载消息洪水测试程序或者样本进行测试。

7、com
要了解com方面的相关知识,请搜索COM、DCOM、系统组件这些关键词。
允许com接口访问,程序通过使用系统中注册好的组件,实现相应的功能。譬如,动用LocalSecurityAuthority.SystemTime可以修改系统时间。
毛豆默认自带的com监控项目,都是比较重要的,容易被病毒利用的,要防止未知程序的访问。其中两组“伪com接口”,本身不属于com组件,毛豆把它们归到com组里,这与毛豆的设计有关,我们无需根究,知道它们比较重要就行了。
新手要想知道com的用法,请参考此帖http://bbs.kafan.cn/forum.php?mod=viewthread&tid=650628了解一下相关com组件的作用。
com要不要添加*进行全方位的保护?个人意见是没必要,把默认规则提供给你的com接口准确应用到每个地方,就算OK了。
要了解这些com究竟有什么用途和危害,请参阅此文:http://www.cnblogs.com/xh831213/archive/2006/02/10/328089.html

8、文件操作
FD作为入口防御的首选,被部分HIPS玩家所追捧。理论上讲,防住病毒创建文件入本机,后续的问题全没了,连禁运都不必谈。
HIPS的行事作风,历来都是——你让我监控哪些东西,我就看住它们!你没让我监控的东西,我就当作什么都没看见。要想让FD规则起作用,首先要看“受保护的文件和文件夹”里把哪些东西列为了监控项目,整个FD的操作,都是通过对比受保护文件来进行的。
FD规则对于默认规则来说很简单——监控:有程序想要访问受保护文件,就弹窗询问。对于要打磨一套弹窗少少的分组规则来说,就是一件费神的事情:要让程序正常运行,就要允许一些目录或文件的操作,允许不当,就会留下漏勺,限制得过于严厉,程序又没法顺利运行,综合平衡,不简单。FD上留下的漏洞,需要从别的方面来补救。譬如说,浏览器可以下载任何文件到缓存目录,乃至于临时文件夹*\Local Settings\Temp里,为了防止下载到病毒启动它,就需要在浏览器的规则或者全局规则里堵漏——禁止运行浏览器缓存目录和*\Local Settings\Temp\*  3D方面的相互补充与配合,是制作规则时常用的手段。
FD方面要扯开来说,说上几大篇也说不完。简单来说,这方面需要考虑的无非是——1、防止病毒创建病毒文件和改写系统文件及全盘感染可执行文件。2、神经一点的做法,防止常用程序去动系统文件。3、允许程序访问它的目录和文件,比如缓存目录、数据存放目录、公共目录、下载文件的目录……4、杀毒软件是特例,可以访问所有的文件,以便清除或删除染毒文件。
如何知道一个程序有哪些目录或文件是它应该访问的?可以用一些工具测试。譬如新版的沙盘,把程序在里面运行,打开沙盘去看看,明明白白。至于是不是都要允许,请根据自己的想法进行选择。
FD上有话题的一个,是要不要加全局防护?对于新版沙盘机制而言,加FD全局保护很简单,不影响日常应用,只会影响沙盘内的程序。对于纯粹D+规则而言,加FD全局保护是一个极度疯狂的举动,无数的东东需要排除,一般人就算了,建议增加重点文件的保护即可。
文件操作上值得注意的一个是设备路径的问题,包括了命名管道,譬如默认规则自带\Device\NamedPipe\atsvc等。有兴趣的,请参考秘书、抓抓、月光斑竹的规则,里面有命名管道的详细资料。
默认规则的CPS方案里,自带一个Windows Sockets Interface的文件组,用来代替部分防火墙的功能,是一个ND行为,归入FD范畴。将这一组文件列入保护的用户,请把需要上网的程序放行。禁止访问这组文件,是否就一定上不了网?自己测试。一般来说,绝大多数程序使用Sockets的方式进行网络通信,少部分程序使用管道。就算过了FD这一关,还有个防火墙在后面把关,不用担心。
需要更多FD方面的资料的,请参考论坛上发布的规则,请到大区搜寻资料——譬如EQ的教程和规则,或者组织爱好者把每个程序拉出来讨论清楚。

9、注册表操作
这又是一个让不少人头大的地方。如果你使用默认规则,使用默认的注册表监控项目,其实很简单,除了杀软、注册表整理工具、系统自带的注册表程序譬如C:\WINDOWS\regedit.exe等,其他的,是个程序都选阻止,一般没有问题,顶多个别程序需要排除一点点,要说误杀,也只会误杀安装程序——安装程序需要访问一些自启动的项目,一些重要的项目,譬如安装服务,譬如CLSID等。(允许C:\WINDOWS\regedit.exe完全访问注册表,需要注意漏洞问题——要指定或者监控有哪些程序可以运行regedit.exe,否则病毒或者恶意程序把你的注册表搞得天翻地覆。顺便注意一下dos命令修改注册表的问题)
默认保护的各项注册表,究竟有什么作用,限于篇幅,这里就不扯了,有兴趣的请到大区参考这篇帖子http://bbs.kafan.cn/forum.php?mod=viewthread&tid=940257,或者网上去下这本书“《精通注册表修改与编程》郝强”。
自动启动项目——除了安装程序和个别程序之外,谁会动这个?
COMODO键——除了comodo,谁有权动?
IE键——除了自己(explorer调用rundll32)修改IE主页等操作之外,一般不需要任何程序来动它。
重要键——除了安装程序,日常使用大概也就只有*\SOFTWARE\Classes\*\shell*和*\SOFTWARE\Classes\.*\*影响文件关联的改动(譬如播放器关联影音文件,浏览器关联网页文件,图片处理软件关键图片文件……)解决的办法,可以列出需要允许的关联项目进行允许,余者阻止或监控,也可以临时禁用D+进行关联;另一种思路是把重要的文件关联(譬如exe、bat、txt文件的关联)列出黑名单进行全局阻止外,其他的放行或监控。
如果觉得默认的不够强,可以自己补充。进一步的补强注册表监控项目之后,需要排除正常程序的正常访问。譬如,默认的保护,只把IE菜单里面的IE起始页等常被病毒冻手动脚的部分列入监控,如果你要改成*\SOFTWARE\Microsoft\Internet Explorer\Main*乃至于*\SOFTWARE\Microsoft\Internet Explorer*那你得自己解决排除的问题,其他的同理类推。
注册表要不要加*进行全局保护?对于纯粹D+规则来说,这是个绝对疯狂的做法。对于新版沙盘机制来说,加不加都一样,未知程序进了沙盘,禁止访问受保护的注册表项目。如果是手动入沙,重定向后全部虚拟化,跟纯粹D+弄全局保护要获得的效果是一样的——禁止对注册表进行任何实机的改变。
随便玩玩,用默认的即可。自己折腾,弄懂注册表的所有键值的含义和作用之后,你高兴怎么玩怎么玩。

10、域名解析服务
这一项没多大好说,就是允许不允许程序使用域名解析服务的问题。需要联网的程序就允许,不需要联网的程序就不允许。这一项究竟是说的允许程序自身的域名解析服务,还是允许程序使用系统代{过}{滤}理的域名解析服务?不知道,有兴趣的自己追究。
这一项与防火墙上的允许访问域名解析服务器,有什么不同?防火墙上的设置,是允不允许访问域名服务器的53端口,是一个ND行为;这一项,是允不允许获取域名解析的权限,是一个AD行为。如果要排先后,从逻辑上来说,应该是此项在前——程序获取域名解析的权限之后,才会采取进一步的行动,发出数据包,向远程的域名解析服务器发出查询请求,让它返回包含正确的域名与IP对应的数据包以供使用。

11、物理内存
物理内存一般情况下是由系统掌控,不应该由程序直接访问的。程序要使用物理内存,须向系统申请,由系统分配一个虚拟的内存空间,最终用映射操作的方式来完成虚拟到实体的转换。由于一些病毒喜欢使用直接访问物理内存的方式,这一项被敏感化,其实一些特殊的程序,比如杀软,比如HIPS,比如资源管理器,比如内存整理优化工具,允许访问物理内存是正常的行为,不是恶意行为。要了解更多有关物理内存攻防战的资料,请到网上搜索。

12、访问屏幕
监视屏幕内容,读取与复制,最直接的作用,就是截屏。通过截屏,一些木马可以获取用户的帐号和密码。这一项的设立,主要是针对截屏类木马而设立的。正常程序也有截屏行为,譬如专门的截屏软件,譬如QQ附带的截屏功能,譬如谷歌与火狐浏览器安装插件之后也可以截屏,播放器可以截取播放画面,游戏可以截取游戏画面……这都是正常行为。病毒木马截取屏幕究竟是先安装一个钩子来截取还是直接截取,感兴趣的请找样本来测试,事实最有发言权。
如果禁止这一项,是否会影响程序的正常功能,譬如连窗口都不正常?对此有疑问有兴趣的,可以通过实测来根究。

13、底层磁盘访问
正常的操作,程序一般是不进行底层磁盘访问的,对磁盘文件的访问,相关的磁盘读写操作,是由程序通知系统,由系调用专门负责磁盘操作的子系统去完成。程序直接绕过系统自己去进行磁盘读写操作,一般被看作是恶意行为,可能的后果,就是可以任意改写磁盘上的文件,比如删除或修改文件,乃至格式化。有鉴于此,一般情况下,管它什么程序,选阻止,似乎是没错的。然而,事情总有例外,资源管理器允许该行为,可以使用右键菜单上的格式化操作,磁盘清理和碎片整理程序,应该允许这一项。国内一些不规范的程序,会有此项的要求,允许还是拒绝?
禁止资源管理器对该项的请求,是不是就不能完成格式化操作?能够完成,是说明毛豆抽风,还是此项拦截能力有漏?

14、访问键盘
有人把这一项叫做键盘监听,有人把这项叫作访问键盘。不管怎么个叫法,这一项的设立,是防止病毒木马监听键盘输入来盗号。根据大多数实例,木马要通过监听键盘来盗号,通常会先安装一个键盘钩子,通过钩子的中途截取,获取相关的信息。有没有不安装钩子直接访问键盘的?不知道,有知情的请提供样本信息。
正常程序,需要跟键盘打交道的,比如浏览器、聊天工具、播放器、文档处理软件(包括记事本程序)、游戏等,都需要允许这一项。如果禁止这些程序使用这一项,程序还能不能完成文字输入或键盘控制?自己实证。

初步的探讨,只能就这些肤浅的层面,与新人逛一圈,获得一点直观认识,要更深入的了解,更专业的解释,请向论坛上搞专业研究的高手、专家请教,或者百度谷歌。
篇末回首,你是清楚还是糊涂?你是安心还是恐怖?
“使用HIPS,任何行为都别想逃过我的眼睛,任何程序都别想逃过我的控制!”有人这么宣传,有人也这么确信。真的吗?真的一切尽在自己的掌控中吗?如果你不是高手——熟悉编程、熟悉系统、熟悉病毒行为、熟悉黑客手段的高手,那可未必。最简单的问题,程序加载了一个驱动,你用HIPS仅仅是监控到它加载了一个驱动而已,怎么判定它是不是坏东西?难道就凭加载驱动,就说它是病毒或等同于病毒?再比如,程序安装了一个钩子,你怎么判定?难道说,大多数正常程序不需要安装钩子,安装钩子的一定不是好东西?它加载了驱动后究竟做了什么,安装了钩子后究竟干了什么?HIPS用户有几个可以明明白白地回答?一般人可能会结合其他方面进行粗略的判断——譬如有没有修改系统文件,有没有修改可执行文件,有没有在注册表里添加开机启动、添加服务、修改文件关联等,大致判断它有没有病毒行为或恶意倾向,但是,如果它根本就没有这些“危险举动”,你如何判断。譬如,它要是加载了驱动,直接把你盘上的文件复制了上传,如果使用驱动级传送,除了抓包分析,一般的防火墙根本就检测不到,无从拦截,你的那一堆监控分析判断有什么用?如果它是一个“聪明”的东东,安装在本机上的程序毫无异样,接受远程指令后才搞事,你咋办?如果它已经加了驱,安装了钩子,你用HIPS也是抓瞎。诸如此类的问题,只有高手才能解决,我等菜鸟只能傻眼。但是,切莫因此患上高度恐安妄想症,正常情况下,计算机世界就像我们的日常世界一样,是太平的,安全的,不是那么恐怖,毫无安全可言,就像现实世界中,你抬眼之处遍地是恶性犯罪事件秒秒钟上演,可能吗,哪里有?
安全,是一个总体上处于安全状态而局部发生波动的现状,不要自己吓自己,疑心生暗鬼,也不要大大咧咧,自以为是,良好的习惯加上高度的警觉,配上一个像样的安防体系,通常来说,你有百分之九十以上的机会位于安全状态中。

看完中级篇的粗浅讨论,你是否有点启发?如果问两个这样的小问题——如何用毛豆来保护上网安全?如何用毛豆来防止盗号?你会怎么回答?

结语:通过使用HIPS,我们看到了,计算机安全真是既简单又复杂。说到简单,随便用个厉害点的东东,咔咔做两个规则卡住,问题解决。说到复杂,很多东西飘忽不定,看似明确,其实你什么都没抓住,你抓住的只是个表面。要想真正掌控一切,你只有去深入研究。
dopod2009
发表于 2011-12-10 21:17:20 | 显示全部楼层
果断抢一个位置
柯林
 楼主| 发表于 2011-12-10 21:17:43 | 显示全部楼层
大致上就这个鸟样,希望可以让新人受到一些启发。
文中所言,不是什么狗屁的金科玉律,只是一个菜鸟肤浅的看法,贴出来是与大家交流探讨。

这篇帖子解决了什么问题?什么都没有解决,仅仅是给出了一个可能的方向,让新人去追寻。
进一步的发展,把每个程序或软件拉出来一个一个地讨论清楚,还得靠大家共同来完成。
jgfhy
发表于 2011-12-10 21:55:16 | 显示全部楼层
柯林 发表于 2011-12-10 21:17
大致上就这个鸟样,希望可以让新人受到一些启发。
文中所言,不是什么狗屁的金科玉律,只是一个菜鸟肤浅的 ...

就是需要这样的,这样听得懂,感谢分享。
我现在知道怎么看日志排除了
yestersummer
发表于 2011-12-10 23:01:09 | 显示全部楼层
卡位学习!
olda
发表于 2011-12-10 23:06:09 | 显示全部楼层
比较详细。真的。。。。。。。。。。。。
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

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

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 苏ICP备07004770号 ) GMT+8, 2019-11-15 10:04 , Processed in 0.119583 second(s), 22 queries .

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