查看: 6709|回复: 42
收起左侧

[分享] ★★★关于主防和HIPS的区别,以及一些定义,概念及一些零碎的基础知识,注释增删完毕

  [复制链接]
李白vs苏轼
发表于 2011-6-10 23:27:55 | 显示全部楼层 |阅读模式
本帖最后由 李白vs苏轼 于 2011-6-11 17:26 编辑

在这里先转一个帖子,我做了注释,并且删除了一些与本文无关的内容,增加了一些引用
希望能够静下心来,抛掉所有外界的事物看完,
该文章为09年的,
可能部分观点偏旧(还在修改中),但对大家理解这些知识还是有作用的


主动防御就是预先拦截可疑行为……

据近期科技的一次黑客行为调查中发现,有相当一部分人喜欢做免杀之类的病毒逃过杀毒软件的查杀,造成现在每天新出的成百上千的病毒很多都是“免杀”的老毒物。调查中也显示,目前查杀免杀以及新的病毒最好的方式之一就是主动防御。


我们实际指的,值得大家玩的,对病毒有效的HIPS是“主防”——主机入侵防御系统
而“主防”也是广义的主动防御(包括启发式等很多东西)的简写,由此就造成了误会。有些杀软的高级启发式主动防御离HIPS还差的远,而有些杀软的HIPS元素能否有效也值得怀疑。

记得当年曾有份关于“所谓的高启发”之说,便是有些带壳入库,有些根据IAT判断,非说自己是强虚拟机查API,是高级启发式,是神乎其神的技术,可是最终的效果说明了一切。实际上,这正是我们这个顾客市场过度商业化导致的企业过度商业化的结果,假如顾客不理性,那么企业自然乐得其成了

//这段文字为当时开始普及时的情况,可直接跳过:关于主防,关于HIPS,最近的说法很多,无非是杀软的利益集团假口质疑,而一边则不置可否或者说是不屑一顾。看得我们急啊,到底哪个适合(注意是适合,而不是更好)我呢?然而这种状况不会持续多久,很快我们就会发现,原来振振有词大骂主动防御的,会摇身一变,满城尽是行为分析,尽是主动防御!这一趋势其实早已开始萌动,不少软件商在公布下一代产品的时候开始试探:“我们将加入HIPS元素”,只不过,受到了公司自身的技术限制——他们暂时确实拿不出一个像样的传统主动防御组件,或拿不出一个普及化的智能的方案,尤其是杀软厂商,那是他们没太接触过的领域。

第一部分:浅而显的理解下HIPS

主动防御中最有生气的HIPS,从理念产生至今其实并不年轻,早在win9X时期,就有一些与微软关系密切的厂商提出这一理念。为什么要和微软关系密切呢,我妄自揣测,这正是由于主机入侵防御要涉及内核技术、开发难度大,而在当时,貌似微软还没有公布那么多关于自身系统的东西。即使在今日,开发HIPS的难度较之杀软,普遍意义上也更有要求,当然,把两者做好都不容易,甚至HIPS的后期维护和更新压力也十分KB,通常产品测试期都要beta1、beta2.。。。beta3,RE.。即使B了那么多下,有时的结果也很难让普通用户满意。

什么是主机入侵防御?我想用自己第一次理解而不是看资料略过时的思路与大家分享。

首先,众所周知,计算机有很多功能,比如您平时操作,您可以创建或删除,可以运行或结束,可以用一个程序打开另一个(比如在迅雷中打开刚下的压缩文件),所有这些打开的功能,关闭的功能,运行的功能,结束的功能,调用的功能等等,其实并不是软件本身(如迅雷)自身创造的,而是很多软件都要使用的。由此,微软在系统中放了很多类型的通道,如用于打开或关闭的,用于创建或删除的等等,而软件要实现这个功能的过程,就是指令去借用系统的通道完成特定任务的过程。

这样做有很多好处。呵呵,假如微软不给这些通道,程序开发就会变得很头大,相当于你要自己创造通道去实现每个过程。这很累,在绝大多数的公司也不可能。首先,你要和微软的关系足够好,否则你的程序会非常不稳定,其次,你还要投入大把的经费去保证在调用和被调用时的互相认知。。。总之,这就是传说中的API通道,他是系统中所有的软体乃至系统本身多数功能得以工作的前提。我们举手投足,都要经过API的转述。他是WIN的天然代码。

//这段定义好好理解下:API是一套用来控制Windows的各个部件(从桌面的外观到为一个新进程分配的内存)的外观和行为的一套预先定义的Windows函数.用户的每个动作都会引发一个或几个函数的运行以告诉Windows发生了什么。远程过程调用(RPC)、标准查询语言(SQL)、文件传输 、信息交付是他的基本类型,这里就不多做叙述。我们最需要牢记的一点是,所有程序,包括病毒,都要告诉win你的程序发生了哪些事件或要求执行那些特定操作,由API达成需要的功能。而对API的处理存在静态与动态的不同,正是HIPS与杀软的最大区别,也是我说了这么多废话的原因所在。

//这段文字也很重要,要特别仔细的理解:好了,回到主动防御,大家可以看看COMODO的API HOOK的SSDT表。所谓HOOK,就是个过滤器,被加了HOOK的API通道(为了理解好,以后我就直称“通道”了),无论任何程序要通过它实现相应功能,都会被COMODO监视,您可以选择是否拦截或放行。可以看到,有管理创建文件通道的过滤器,有管理结束进程的过滤器,有管理。。。。。这些正是病毒达成功能的必经之路,来个AURORUN.INF类的EXE吧,他屁颠屁颠的跑到创建文件的通道那里准备创建实体,于是COMODO就会报未知AUTORUN.INF文件——如果我们设置规则为不许建立这个问题,那么COMODO就会完全不给他面子,如果我们放行,他又会去找运行文件的通道那里报到,A:“我要运行!”,COMODO:“你是不可能滴!

//关于hook,我(是我,不是作者 呵呵)在这里摘抄一点网上找到的解释,因为属于重要的部分:
钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。  钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。

这就是HIPS里AD的最浅显原理,但是,要做个完全拦截不漏的HIPS并不容易。首先,通道何其多也,HOOK放在哪些也不是随便来的。如果都来HOOK过滤。。。。因为兼容等问题,是要影响系统正常运行的。如果放几个,也会可能漏过病毒新使用的方法。而且,开发驱动的稳定性也在一定程度上影响HIPS的能力。此外,除了这种监视拦截,还有多种因素会影响病毒,最重要的是HIPS的易用,控制弹框。不少同学用了卡巴却把HIPS关闭,说实话,真是一种浪费,也不划算,如果你肯用点时间学学,当策略都建立了,你可能安全无问题的度过更多很多的时间。//这里就特别强调弹窗的问题

对于API的检测,HIPS是动态的,直接针对行为的他占用必然更少。而杀软则多少要使用点虚拟技术,相应的结果是占用多。由于API包含在代码内——你要自己的软件借用那些,您得先标注告诉系统不是。杀软的强虚拟机查API就是在代码中找高危的API或API组合或API与其他名称的组合。这里捎带两点,稍微上样点的杀软都是通过给病毒定义特征码的办法,在病毒代码中找关键的、通用的、难回避更改的部分,定义为特征码,下次看到杀软也就认识了。杀软的强虚拟机,只是个类似CPU的东西,他是不分析行为的,他看运算的代码中是否和特征码相符。这一点,以后将在“所谓的主动防御”中再加叙述。

杀软是代码级的,是静态的,这就造成了他的易用——不许点框,也造成了他的越来越明显的弱势。ROOTKIT技术在发展,有时杀软甚至无法发现病毒文件是否出现过。。。而代码级的启发式,面对很多免杀的方法都很无助。虽然目前免杀的水平层次不一,但是不能否认,一定情况下,一个菜鸟学会免杀一些启发技术在新的环境下不及格的杀软(实际上及格的没几个),最多一个小时,少则20分种,比如公爵,上海一哥这些冉冉升起的新星们。//(这个我也不认识,呵呵)

无论是做好的杀软还是HIPS,都需要克服很多梗阻,在这个意义上,我们对于他们的开发者都抱有一种起码的感激。//(对后面的文字做了删除)

第二部分  主动防御

既然有主机入侵防御,说实话,我也认为现在看HIPS比杀软来说是更有前途的事物,那么又何来所谓的主动防御呢?正如当年所谓的高级启发式。主动防御这个词将来抑或现在实际上是宽义的,多少被误解了被滥用的。比如把静态的查API算作行为分析,比如仅仅断章取义添加一点HOOK来拦截少数通道,这一些其实就是哗众取宠的手段,对用户来说带不来多少安全性的演进。还有一些甚至是老一代的HIPS或者一些新而无意义的噱头,这一些因为种种原因,可能很难达到“主动”的完满要求,只能由所谓而形容了。

//下面这些内容有一定的时间了,和现在的情况有很大的区别,大家主要是看其中的技术分析及解释就行了(特别注明),像瑞星新版已经进步了很多
首先出场的是大名鼎鼎的瑞星2008,其实,个人对于国内杀软没有明显的排斥,毕竟如大家所说,“好”与“好用”有时是没有共通性的。瑞星08的主动防御是和加拿大的某公司有关系的,以后的09估计也是一样。也许是出于易用的考虑,瑞星把一个主动防御的整体做了阉割就放了上来。关键是还大言不惭的说“超越传统的主防”“监控比HIPS更安全”。那好,我们来看看他如何安全。
瑞星2008使用了最原始也是最易恢复的HOOK过滤,他所能拦截的的确用防止远程注入(ZwCReateThread等),拦截正规驱动挂载(ZwLoadDriver),拦截注册表操作(ZwSetValueKey),保护进程不被结束(ZwTerminateProcess)以及拦截鼠标模拟和全局钩子等。这个主动防御可以说都属过时的技术,监控也非常不足,主要表现在就是特别容易被突破:自我保护太差,只要拿掉NtTerminateProcess,使用任务管理器就可以将其结束。最可笑的是,他居然也不拦截隐藏写入注册表,现在的木马完全可以突破。可见这种主防对于现在常见的穿透技术也没有免疫,网络上现成的代码即可突破了。这样的东西,只能算小用了一点主动的皮毛,对用户来说还真是不负责。
瑞星显摆完了,这是技术不足而追新失败的例子。而有些软件,则是停留在以往的辉煌上,并且还做梦想搭上新车。之所以把这个帖子发在这个版,就是希望大家有所了解。多余的话就不说了。这一类的办法就是搞简单的文字游戏偷换概念,尤其是在行为分析这一意义上。
前文已说,HIPS的意义在于其的行为分析是动态的。而启发式杀软不过是强虚拟机查API,这就造成了不同的效果:后者可以用很多的办法绕过,还是代码分析。启发式杀毒是强势但还是可怜很大程度上系于开发者的能力//删除了较大一部分内容,因为对于本文的目的没啥用处
主动防御更类似于程序行为拦截,内核级、行为级。而启发式查API,虽然也能算是一种静态的行为分析,但效果却差了很多,这一点如果您能看到现在,差不多就可以理解了,一个简单的例子,免杀对NOD32有效,NOD32免杀不难,而对于HIPS你怎么免杀他呢,他压根没有特征库或病毒库。


第三部分   从主动防御中做适合选择

无论厂商怎么表现,可以用简单的方法保证自己真正OK的的高手恐怕寥寥,因此选择就成了一个必然的问题。在这方面,便是求“适合”而不是求“最好”的问题了。而现实中的所谓高手们往往会犯一些非技术的错误。即在推荐安软时要么执迷于杀软、HIPS其中一类而排斥其他,要么就是基于一个推论:需要杀软的人永远是不安全的,非常不安全。因此得出的结局往往不能让大家满意。

主动防御与杀软的关系其实如下:在病毒与安全的较量中,HIPS类暂时处于上风,而杀软则需要变革。在主动防御与杀软的整合中,立足于行为而不是代码是杀软商需要转变的思路,无论是hips,智能hips还是沙盘,都比继续像以前那样搞文字游戏有趣。即使不与主动防御整合,过硬的动态启发式技术依然能有过硬的产品,这一点不必强求,但目前寥寥无几。易用性上虽然HIPS在长足进步,但尚要照顾习惯。处于这些原因,希望我们这些用户能够在听到“XX杀软要整合HIPS啦”或者“XXhips就是比杀软强”乃至“XXHIPS居然不行啊”的时候,都抱有一丝理性:HIPS如杀软一样,层次不齐,只不过目前HIPS厂商还未遇到技术倒退,未像一些杀软那样早已开始堕落。
用连岳的一句话做个总述:常识都是简单的,没有复杂的常识,所以问答的存在基础就是需要跟一个具体的人对话,它只解决一个人的问题,并希望对旁观者提供一种思维储备,它不应该追求解决所有人的问题。解决任何现实问题,都不必用“复杂的现实”作为目的,只能回归点对点的接触。这一段话,给经常要帮个小忙推荐一下安软的你我共勉。
  
HIPS的分类繁多,除了有门槛的规则式之外,沙盘、智能HIPS可以说比很多杀软操作都简单,占用很小的资源,发挥很大的作用,而杀软本身,也有一些顶尖的尚待我们发觉的品牌。但是不要指望杀软厂商能整合出多好的杂交产品,他们已有的用户群要求他们必然要普及化,而他们的现有技术对开发主动防御的益处远不如防火墙厂商,因此他们的产品必然还是种普及但不一定合用的结局,譬如卡巴8的offiice bug、譬如不少卡fans仍知8安全的多但还要关闭HIPS。这也是常识,而他却是复杂世界的一部分。

//以下言论为该贴的网友评论(仅代表他们的观点)

    公爵:
    现在呢启发式杀毒一般有两种一个就是老外一种用的代码启发式另一种呢就是国内杀软广泛采用的主动防御。特征码的核心呢是定位到每个程序的代码上来看是不是符合特征库(因此特征库和病毒库一样也需要经常的更新)如果符合就判别为病毒像NOD32这种杀软呢就抛弃了代码特征库改由病毒库代替因此误杀相对能控制到一个很小的值但并不是没有,国内搞启发类杀毒搞的最好的就是微点(虽然它不是杀软)微点走的是行为特征路线因此判别未知病毒要比靠特征码判别的杀软来的厉害(而且特征码不需要经常更新)但误杀呢要高于特征码启发式杀毒。打个比方看到有个有个人买了把菜刀那这个人是歹徒呢还是纯粹买回家切菜呢?因此判别程序是不是病毒并不是那么容易的还要牵扯到病毒库内病毒特征码的定义、采用的硬性脱壳呢还是动态脱壳。总而言之杀软是一个很系统性的工程。未来启发式杀毒的走向总的来说会走行为路线,不管如何任何技术都有两面性关键还是靠我们自己啊。


    上海一哥:
   其实杀软和病毒之间是一对永恒的矛盾体,他们之间也在互相学习对方的技术和长处!有些技术大家都是共通共用的。行为识别提高了对尚未捕获的定向样本识别能力。但对于AV的另外一块短板,即病毒制造者可以通过不断测试寻找逃避的方法,杀软依然无能为力。
   逃避行为检测的方式,同样可以是主动的。一种是类似Anti-AV的模块,直接将行为检测模块摘掉,而另一种模式则更为,病毒在执行过程中发现有行为判别模块时,则不走入病毒的正常行为分支。
   在VMWare开始流行不久,毒客们就注意到了AVER采用这种东西来观察病毒的行为。因此,他们编写了一段识别VMWare环境的例程,如果发现VMWare就安静的退出,从而使病毒分析工程师难以观察病毒的表现。
   完美的技术从来不曾存在,我们也从未见过针对网络这个复杂的系统完备而又可实施的解决方案。因此,看一种安全技术是否有价值的方式,并不在于是否无懈可击,而在于其能够带来的安全效果与其所付出的代价。其实我们所使用的任何安全手段都只是为了让入侵者和病毒制造者付出更大的代价,其实并不能从根本上解决安全问题!           

评分

参与人数 2人气 +2 收起 理由
挥泪斩情思 + 1 小白学习了
悟心之道 + 1 “名自命也从口从夕”,命名“优先律”

查看全部评分

镜湖
发表于 2011-6-10 23:34:41 | 显示全部楼层
楼主要是对毛豆说你是主动防御,那毛豆都会跟你急。
帅就是帅
发表于 2011-6-10 23:36:14 | 显示全部楼层
好长。。。。。支持湿人个~

其实在我看来hips算“被防”
李白vs苏轼
 楼主| 发表于 2011-6-10 23:36:53 | 显示全部楼层
帅就是帅 发表于 2011-6-10 23:36
好长。。。。。支持湿人个~

其实在我看来hips算“被防”

我也这么觉得 整个被动来着
年下
发表于 2011-6-10 23:52:50 | 显示全部楼层
本帖最后由 年下 于 2011-6-11 00:04 编辑

大半夜了还能学习一下


hips像是”被防“,病毒都打上来了,才进行防御~

那么杀软不就是像是”主动“了嘛~在病毒程序运行之前先扫一遍,病毒还没有开始攻击就被扫出来了(当然也可能扫不出来)
这貌似挺让人头痛~哪个才是主动的呢
xxqqwx
发表于 2011-6-10 23:54:08 | 显示全部楼层
来支持了。
yyyyhh123
发表于 2011-6-10 23:56:27 | 显示全部楼层
先顶一下  慢慢看
轻巧夺命
发表于 2011-6-11 00:02:01 | 显示全部楼层
楼主写了这么多,辛苦了。
李白vs苏轼
 楼主| 发表于 2011-6-11 00:04:21 | 显示全部楼层
轻巧夺命 发表于 2011-6-11 00:02
楼主写了这么多,辛苦了。

不是 出自某大牛的手
我做一些小注释和 修改 删除
轻巧夺命
发表于 2011-6-11 00:06:06 | 显示全部楼层
李白vs苏轼 发表于 2011-6-11 00:04
不是 出自某大牛的手
我做一些小注释和 修改 删除

那天爬楼看那个帖子,解释半天故意装不懂,看得我蛋疼。
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

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

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-11-26 07:37 , Processed in 0.143025 second(s), 17 queries .

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

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