扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
HIPS(程序动作拦截器)规则割裂防护体系
HIPS,英文“Host Intrusion Prevent System”的缩写,国内通常翻译为“基于主机的入侵防御系统”,翻译很拗口,其实HIPS通俗来说就是程序动作(API)拦截器,作用就是对程序运行中调用的危险API进行拦截,经用户自行判断确认后手工选择阻止或是放行。HIPS的防护一般分为三个防护体系:AD(Application Defend)应用程序防御体系、RD(Registry Defend)注册表防御体系、FD(File Defend)文件防御体系。它通过可定制的规则对本地的运行程序、注册表的读写操作、以及文件读写操作进行判断并允许或禁止。
正是因为HIPS对程序调用危险的API非常敏感,所以使用HIPS软件阻止程序调用危险API,可以起到一定程度的安全防护作用。关于行为控制在熊猫烧香肆虐时期的突出表现,就不用多说了,一战成名。
既然HIPS有这么多的优点,为什么只能在少数高端玩家手里把玩,而没有向全社会普及推广呢?很多朋友一谈到HIPS的缺点就归结到易用性上,其实呢,易用性只是表象。所谓HIPS配置复杂度较高,对用户要求较高,弹框数量较高的三高问题,核心在于HIPS的监控理念是有缺陷的。前面也提到,HIPS监控的对象是危险API,所以通过阻止危险API调用就可以保护系统安全。这个HIPS的核心理念,乍一听是很有道理的,但是如果深入推敲,则发现其核心思想是存在着严重逻辑混乱的。
Win32 API是微软公司公开提供的应用程序接口,供广大Windows用户开发应用程序与系统进行交互操作。所以从本质上讲,API并没有好坏之分,也没有善恶之别。而如果单以安全角度来论,乱用某些API可能会对系统安全造成隐患,所以HIPS将这些API定义为“危险API”加以监控并向用户报警。这里特别要注意弄清这些“危险API”的真正含义,大量的病毒木马经常使用这些危险API,但是使用这些API的程序并不见得就是病毒木马。危险API和病毒木马之间的逻辑关系,属于必要非充分条件,因为所有的API都是微软公开提供的,所有程序都可以正常的进行调用。
HIPS正是把危险API和病毒木马的逻辑关系搞反了,HIPS把所有危险API的调用一律报警,而正常程序也需要调用这些API,所以才造成了上面提到的配置复杂度较高,对用户要求较高,弹框数量较高的三高问题。
现在,有部分厂商为了提高HIPS的易用性,为了扩大软件的市场份额,居然用了一种非常极端的方法——为HIPS配置明文规则(白名单),这样表面上看起来会使得HIPS的弹框率大幅度下降,但是实际上则使用户处于非常危险的状况之下,黑客可以非常轻松地利用明文规则轻易突破HIPS的3D保护!
如果一个网马,运行后生成A.gho(实为可执行文件),由于规则中允许创建和运行.gho文件,那么HIPS的防护体系就被轻易突破了……
结论:HIPS本来是安全的,虽然存在着频繁虚警的问题,但是其对于每一个潜在危险API调用都进行报警拦截,所以整体安全性是很有保证的。但是,HIPS规则(白名单)的使用,则彻底将HIPS的安全基石毁于一旦,在HIPS严密的防护体系中硬生生割裂出一条黑客高速公路!
HIPS确实需要改进,但是并不是这种简单的单一程序动作规则。行为控制安全产品只有将各种程序动作进行综合监控,即监控一系列确有意义的程序行为,才能从根本上彻底扭转其易用性差的问题。不过,如果HIPS增加了复杂的各种动作之间的相关性复合逻辑规则,那就不再是HIPS了,变成了现在大家习惯于叫做主动防御型安全产品,比如微点主动防御软件、卡巴斯基主动防御模块等等。
防火墙规则越多越好么?
很多朋友都热衷于下载各种各样的防火墙规则包,试图把自己电脑保护的更安全一些。首先,我们要肯定两点,一是朋友们普遍具有了一些信息安全意识,自发地主观地追求主动保护自己电脑的安全;二是朋友们对我们常用的防火墙软件有了一些感性的认识,认识到包过滤型防火墙只是一个工具,要靠规则包才能完成安全防护。但是防火墙规则真的是越多越好么?下面我们就来一起分析一下这个问题。
我们常用的防火墙其主要功能原理是包过滤机制,什么是包过滤呢?我们都知道网络上的数据传输并不是连续进行的,而是分割成一个数据包一个数据包分别传输。包过滤防火墙的意思就是鉴别发送和传输的每一个数据包,看他们是否和防火墙规则相匹配,按照规则的设定,规则上允许放行的就放行,不允许放行的就把数据包抛弃(相当于阻断了该网络连接)。包过滤防火墙判断的主要依据就是每个数据包的源IP地址和端口,目的IP地址和端口,协议类型(如TCP、UDP、ICMP、IGMP等),TCP六个标志位等等。
因为包过滤防火墙对每一个数据包都要按照防火墙规则顺序比对规则,所以我们说防火墙规则数量越少,比对规则消耗的时间就会越小,防火墙的效率就越高,消耗的CPU资源就越低;体现在网速上就是规则越少对网速的影响会越小,也就是网速会越快。所以我们说在同等效力的情况下,包过滤防火墙的规则数量应该是越少越好。
有的朋友可能会去实际做实验,尝试不同数量规则包对网络速度的影响,结果很可能会是看不出有明显的影响。为什么会这样呢?因为我们目前的网络条件属于低速网络,我国主流的ADSL上网,速率不过512K-2M,数据包比对的工作量相对于我们目前主流电脑G级主频的CPU来说,并不算是太繁重的任务。所以对一般的ADSL用户来说,并没有明显感觉到规则包数量对系统和网速的影响。有兴趣的局域网用户可以去尝试一下,带宽越大,差异会越明显,这也就是企业硬件防火墙为了保证效率,需要严格限制规则数量的主要原因。
我的杀毒软件为什么是下等?
网上流传着一个测试软件杀毒的方法,以此来评判杀毒软件的优劣,摘录如下:
欧洲防病毒协会提供的测试代码
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
测试方法:
1.鼠标右键点击桌面空白处,创建一个“文本文档”。
2.将下面这段测试代码复制到“文本文档”里,保存,然后可以直接右键点击这个文本文档,用杀毒软件扫描,也可以等一会,如果你的杀毒软件还行,会自动报毒并将该文本删除,那就可以初步放心了。
测试原理:
该段代码是欧洲计算机防病毒协会开发的一种病毒代码,其中的特征码已经包含在各种杀毒软件的病毒代码库里,所以可以用做测试病毒扫描引擎。
测试等级:
特等:复制完代码后便提示内存有病毒
优等:刚保存完就提示病毒(或者直接删除)
中等:保存后几秒提示病毒(或者直接删除)
下等:需自己启动病毒扫描查杀才提示病毒(或者直接删除)
劣等:无论怎么扫描都无法提示病毒(或者直接删除)
这是网络上一篇比较严重的以讹传讹的文章,貌似有根有据,其实则完全曲解了杀毒软件的特征码扫描技术。特别是最后的几个等级的判断标准,更是混淆了概念和实际应用,产生了很不好的负面影响。下面我们一起来讨论一下谬误究竟在哪里。
第一,这段代码正如它的名称,仅仅是杀毒软件特征码检测技术的测试代码,不具有实际意义。有兴趣的朋友可以做这么一个实验,如果在保存测试代码的那个文本文件中随意添加几个字符,再用杀毒软件扫描会怎么样?我试了三种情况,在开头添加、在中间添加、在末尾添加。结果只有在末尾添加的情况,杀毒软件还会报警。测试结果正好反映出了特征码扫描技术的发展历史。早期的杀毒软件特征码检测技术,就是使用和这段测试代码类似的连续特征字符串。结果就像我们做的那三个小测试一样,漏报现象十分严重稍加变化就无法识别。所以,现如今主流的杀毒软件特征码检测技术多采用的是拾取多个不连续特征字符串的技术。因此,我们说这段测试代码并不适合做杀毒软件的性能检测。
第二,关于五个等级的判断标准,其实是对特征码实时监控技术的一种误解。先简单说一下特征码实时监控技术,特征码实时监控其实就是对特征码扫描技术的一种应用拓展。但是实时监控与扫描的应用场合不同,实时监控特别注重一个效率问题,也就是要将杀毒软件对用户操作电脑的影响降到最低。所以实时监控中一般使用了如下几种优化方案:一、默认只扫描程序文件,因为程序文件对用户的威胁最大,忽略那些非重要文件类型,减少工作量;二、默认不开启一些耗费系统资源的扩展功能,譬如不扫描压缩文件;三、使用精简版的病毒特征库,因为特征码扫描的速度是与特征库的数量成反比的,病毒库越小实时监控效率越高。这个道理很容易理解,特征码扫描技术鉴定一个文件是否为病毒,理论上就是将该文件和特征库中的所有特征方案进行比对,所以特征库数量越大,理论上扫描识别的速度就越慢效率越低,当然实际应用中是不会做全库比对的,而是要使用优化算法来竭力减少比对工作量,提高运行效率。
据此,我们就能分析出该文章中所谓五个等级背后的真实原因了:
特等:复制完代码后便提示内存有病毒——并不能说明其特等,只能说明该杀毒软件有内存监控技术,并且内存实时监控特征库中包含有这段测试代码。
优等:刚保存完就提示病毒(或者直接删除)——并不能说明其优等,只能说明该杀毒软件的文件实时监控引擎监控了文本文档,并且文件实时监控特征库中包含有这段测试代码。这里要特别说一点,由于文本文档不具有任何意义的破坏性,所以大多数杀毒软件的文件实时监控引擎的默认设置并不监控文本文档。
中等:保存后几秒提示病毒(或者直接删除)——这个等级的真实原因同于上面的优等,但是为何杀毒软件会保存几秒后提示?我认为这个等级属于原作者的杜撰,不具有任何意义。如果在系统正常运行的情况下出现这种比较严重的滞后性问题,应属于杀毒软件程序效率的缺陷。
下等:需自己启动病毒扫描查杀才提示病毒(或者直接删除)——并不能说明其下等,只能说明该杀毒软件的文件实时监控引擎不监控文本文档,或是文件实时监控特征库中不包含有这段测试代码,但是其文件扫描特征库中包含有这段测试代码。
劣等:无论怎么扫描都无法提示病毒(或者直接删除)——并不能说明其劣等,只能说明该杀毒软件的文件实时监控引擎不监控文本文档,或是文件实时监控特征库中不包含有这段测试代码,同时其文件扫描特征库中也不包含有这段测试代码。
综上,该文章中的判断标准是不能准确评判杀毒软件能力的,杀毒软件的反应效果与其当前设置的实时监控参数密切相关,所以用上述方法测试实时监控的反应来评判一款杀毒软件的优劣是不科学的不具有公信力的。
主动防御电脑病毒并非天方夜谭
作者:刘旭
近日,反病毒领域展开的反病毒产业发展趋势大讨论引起了各方关注。一方面,杀毒软件厂商承认当前反病毒技术落后于病毒是不争的事实,另一方面,又用病后就医的逻辑解释传统的滞后杀毒方法。那么,主动防御新病毒的道路究竟是否可行?反病毒领域能否实现重大突破?
长期以来,人们把杀毒软件作为最主要的反 病毒工具,杀毒软件几乎成了所有反病毒产品的代名词,杀毒软件赖以生存的“特征值扫描技术”也几乎成了所有反病毒技术的代名词。正因如此,杀毒软件对新病毒的防范始终滞后于病毒出现的重大缺陷,似乎成为既合情又合理的逻辑,导致人们普遍认为反病毒产品不可能主动防御新病毒,甚至有人认为,想研制一种主动防御的反病毒产品,就如同要为一种未知的疾病制作特效药一样异想天开。
焦点一:人能否发现新病毒
杀毒软件本身基本上不能发现新病毒,是众所周知的客观事实。但是,如果人不能发现新病毒,同为自然人的反病毒公司研发人员也就不可能发现新病毒,由此带来的问题是,杀毒软件每天升级的是什么,反病毒公司每次宣称发现的新病毒又是谁来发现的?回答是肯定的,人可以发现新病毒。新病毒一定是人通过相应的方法判断出来的。
焦点二:人如何判断新病毒
从上个世纪八十年代病毒出现后,反病毒技术就有两种思路,一种是采用静态扫描方式,即特征值扫描技术,另一种采用动态分析方法。特征值扫描是目前国际上反病毒公司普遍采用的查毒技术。其核心是从病毒体中提取病毒特征值构成病毒特征库,杀毒软件将用户计算机中的文件或程序等目标,与病毒特征库中的特征值逐一比对,判断该目标是否被病毒感染。反病毒公司把捕获到并已处理的病毒称为已知病毒,否则就称为未知病毒。只有采用特征值扫描技术时,才区分已知和未知病毒。
业界常常有人用人类病毒的医治来解释计算机病毒防范。然而,与生物界的病毒复杂性不同,计算机病毒是人编写的,远比生物界的病毒简单。计算机病毒概念是人依据程序行为来定义的,因此识别病毒的另一种方法是采用动态分析,直接通过程序的行为判断它是否是病毒。
尽管杀毒软件主要采用静态扫描方式,但是反病毒公司发现新病毒并不是采用静态扫描方式,而恰恰是采用动态分析方法。即便是反病毒公司收集到可疑程序时,也不能确定是不是新病毒,为了做出准确判断,必须先运行可疑程序,然后再根据程序的行为判断是否是病毒。
焦点三:识别新病毒有多难
反病毒领域从未向业界公开过一个“秘密”——虽然病毒越来越多,但真正有创意的、技术上有突破的病毒很少,不到总数的1%。而且这类病毒通常是概念病毒,一般破坏性不大。绝大多数病毒都是模仿其他病毒编写的,这些病毒的传播、感染、加载、破坏等行为特点都可以从已经存在的病毒找到,一个计算机本科毕业生经过短期培训,通常都可胜任人工识别这类新病毒的工作。因此人工识别绝大多数新病毒,并不是一件很难的事。
焦点四:病毒主动防御是否可行
在反思国际国内反病毒领域的思维模式的基础上,笔者认为,将现有病毒的行为进行分析、归纳、总结,通过对反病毒专家分析判断新病毒的经验科学提炼,实现软件自动识别病毒是可行的。
例如,我们定义这样一条病毒判断规则:如果MSN接收的某个文件运行后,模拟键盘或鼠标动作,自动点击MSN的“发送文件”命令,把它或它的生成物自动发送给其他MSN联系人,则这个文件就是MSN蠕虫病毒。
此规则可用于发现“性感烧鸡”MSN蠕虫病毒,以及所有采用这种传播方式的MSN蠕虫病毒,而不论该病毒是什么时候编的,也不论是已知的还是未知的。
十多年来,反病毒技术的研究主要禁锢于特征值扫描法,很少对病毒主动防御技术进行深入的探讨和研究。从反病毒领域的实践和计算机技术的发展趋势可以看出,开发病毒主动防御系统不仅是可能的,而且是可行的。因此,跳出传统技术路线,尽快研制以行为自动监控、行为自动分析、行为自动诊断为新思路的主动防御型产品,从根本上克服现有杀毒软件的重大缺陷,建立主动防御为主、结合现有反病毒技术的综合防范体系,实现反病毒技术的革命性飞跃和反病毒产业的升级,是全球反病毒领域共同面临的巨大挑战,具有极现实的信息安全急迫性。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者