【读书小结】—— Kaspersky anti-virus engine technology

(对这曾被称为神一般的杀软有很大的好奇,无奈能力有限,暂时只能看官方文章了解下。)

Kaspersky anti-virus engine technology(文章就不帖资源了,直接Google就能找到了)大致介绍了三大块内容:反病毒引擎的好坏判断、卡巴反病毒的主要技术、卡巴新版本引擎5.012的新技术。

开头部分,大概介绍了下反病毒引擎,就是反病毒产品的核心,一个用来发现和处理恶意代码的模块。而对于引擎能提供的安全保护等级,主要依靠引擎的组织架构、检测方法还有和启发式技术这三个方面的的整体结合程度。

一、对于好坏引擎,卡巴给出了六条标准:

1、病毒检测质量:可以映射出引擎的effectiveness,可以通过一些独立的测试样本来看其跟踪监控能力。

2、启发式检测的级别:是否有能力发现新的未知的威胁。同时,也许考虑到误报情况。

3、误报率:误报率不仅会使用户对该启发式检测丧失信息,而且可能会放过一些真正的病毒。

4、从压缩、存档、加壳文件中检测出恶意代码:要求引擎支持脱壳技术,可以检测很多变种病毒,节省时间与金钱(否则就需要病毒分析师去慢慢分析了)。

5、更新的规模和频率:简单直接,可以更好的抵制最新的威胁。

6、引擎自身的更新:(理解为健壮性)。

二、然后开始介绍卡巴的反病毒技术,或者是反病毒界的基本技术吧

基本方法大概就是对病毒恶意代码基本的检测、多态病毒的特殊检测技术、对复杂对象的处理能力、病毒特征码及其更新的技巧。然后结合实际大概就可以简单理解为特征码查杀、启发式技术、压缩文件等的处理、病毒特征码的提取及运用技巧。下面就继续翻译具体点的内容。

1、特征码分析(Signature analysis):特征码是用来区别不同片段恶意代码的一段字符序列。好处:速度快,可以一个特征码检测到多个威胁。但是,签名至少需要22-40个bytes才能对恶意代码进行可靠的检测(一般反病毒产品为了提高检测能力都超过64bytes)。这样就会导致病毒库规模变大。而且,由于很多现代恶意代码都采用高级语言编写(C++、Delphi、VB等),如果特征码选取涉及到其运行时库的话,容易找出误报。

2、校验和(Checksumming):特征码分析的一种变种,基于CRC校验。为了克服特征码分析的庞大病毒库和误报情况而发展起来的。同时计算特征码位置及特征码做校验。不过比较花时间。

3、检测多态病毒技术(Techniques for detecting polymorphic viruses):自加密和多型被应用到病毒上面,导致了无法追踪其特征码。多态病毒是指在躲避特定字符串检测复制代码时,自我改变代码。所以,用上面提到的常规的检测是无法识别变种的。多态病毒可以通过用包含解密器里的命令随机集合的非常规key来加密病毒的关键代码部分,或者通过改变自身的可执行代码内容。当然,还有其它的方法实现多态。(多态病毒≠新型未知病毒)为了检测多态病毒,就有下面的检测技术:

a、脱壳(Reduced masks):如果病毒运用的不是高级的加密方法,可以从加密代码中找出加密的key然后获取静态代码。

~b、出名的明码文本密码技术(Known plaintext  cryptanalysis):通过病毒源码和已知的加密方法,可以获取出key。相比解密器,需要的内存少运行快。最大的困难是逆向算法分析吧。

c、统计分析(Statistical analysis):通过统计处理器命令的使用信息来判断是否为感染病毒。这种方法比较适用于解码器的操作码比较单一的病毒(比较操作码使用频率即可检测出来)。但是对于另一种家族的病毒则无能为力。这些病毒几乎使用了所有操作码,并且每次感染都会动态更换,所以很难统计出操作码使用频率表。

d、模拟(Emulation):这个就是常常能听到的虚拟机或者沙盒,既是解密器。通过使病毒自解压,然后通过一般的特征码等方法检测。最大的困难无疑是解密器的编写。同时要主要防范病毒越界运行,不能让病毒真正跑起来,所以不能只是简单的跟踪。

多态病毒的检测总结,一般情况下,都是要用最小的资源来实现最准确的检测。解密器可以容易检测出病毒,不过有时不是最优方案。则可以通过密码研究脱壳。大部分情况下,都不是简单应用上面几种技术,需要有机结合起来。通过解密器解出命令,然后让检测模块去匹配。通常情况下,新病毒都要被整合进去病毒库,这就需要一个纯解密器来解密出指令。而数学方法常常比较滞后吧。

4、处理复杂对象(Processing complex objects):简单点,就是处理不同文件里的病毒。比如Office系列的宏病毒、E-mail病毒。同时要避免‘archive bombs’,既是通过高压缩率压缩一些巨大文件进入一个小压缩文件。这需要引擎去智能识别了。

5、启发式分析(Heuristic analysis):用于检测新型未知的病毒。启发式分析在静态和动态分析各有原则:

a、静态启发式分析需要常用病毒的‘通用短签名’(可疑指令),如果程序使用可疑指令达到一个阈值,那么就判断为病毒。这种方法实现简单,并且速度快。但是检测新种病毒能力低。

b、动态启发式分析和上面提到的解密器相似。动态模拟程序运行,记录所有可疑指令,然后结合其它资源判断是否感染。看起来与静态相似,但是这里需要更多其它资源来判断。检测新种病毒能力也相对较高。

大多数引擎一开始就会加载启发式模块来检测可执行文件,而卡巴则是把启发式做成一个扩展模块,在需要时加载,并且可以分析内存等。

6、病毒特征码更新(Updates virus signatures):这重要性毋庸置疑……

三、卡巴反病毒引擎5.0新技术

1、iChecker和iStreams(原来卡巴也玩i系列……):基于这么个现象,很多时候扫描都不会检测出新病毒。所以,可以不检测为改变过又检测过的文件。iChecker则是通过保存检测过文件的校验值,下次扫描的时候再计算判断是否改变再决定是否需要检测。虽然计算校验值需要耗时,但是比起检测文件,还是值得的。而iStreams则是只适用于NTFS文件系统,不用计算校验值,只是通过NTFS提供的可选信息判断是否改变过。

2、iCure:可以只杀掉压缩文件里的病毒文件,不影响其他内容。

3、iArc:关于压缩文件的扫描加速。

4、多线程操作:同时扫描检测多个文件。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值