查看: 401|回复: 3

[综合技术交流] 安全新技术简介(高手请飘过)

 关闭 [复制链接]

该用户从未签到

发表于 2014-8-25 01:41 | 显示全部楼层 |阅读模式
启发式扫描
传统上,影音解决方案已经强烈地依赖基于签名的扫描,也称为扫描字符串为基础的技术。
基于签名的扫描文件,为在给定的(通常只有在某些地区也)搜索引擎存在某些字符串。
如果这些预定义的字符串被发现,像警报某些行动可以被触发。
现代扫描基于字符串的引擎还支持通配符在扫描字符串,如使略多态恶意代码更容易检测。
不过,基于签名的扫描仅检测已知的恶意软件,可能无法检测到对新的攻击的机制。
启发式扫描特征码扫描类似,只不过不是在寻找特定的签名,在一个不属于典型的应用程序中的启发式扫描程序发现某些指令或命令的样子。
因此,启发式引擎可以发现潜在的,如病毒,蠕虫的分配或一个木马程序复制机制的有效载荷在新的,以前未经审查,恶意功能的恶意功能。
他们通过运用其重量为基础的系统/或规则为基础的系统(这两个会更详细地解释了本文后面)这一点。
一种启发式引擎的重量为基础的系统为基础,这是一个很旧风格的方式,利率每一个具有一定重量是根据它的危险程度可能造成检测功能。
如果这些权重的总和达到一定的门槛,也可以触发报警。
现在几乎所有使用启发式方法实施规则为基础的系统。
这意味着,该启发式引擎进行分析(分析仪)组件从文件中提取一定的规则,这规则将针对恶意代码的规则集进行比较。
如果有匹配的规则,可以触发报警。
第一启发式检测引擎是在1989年推出DOS的病毒。
但是,现在存在着几乎所有种类的病毒(即使老式的,过时的几乎一样啸风/ Paix Excel4公式病毒)的启发式引擎。
多年来,影音的发展令人印象深刻,并在运用了启发式引擎技术已经变得越来越复杂。
第一启发式引擎进行简单的字符串或模式匹配操作来检测恶意代码,并常常被称为最小化扫描字符串启发。
这方面的一个例子是在下面的代码示例从VBA5串显而易见的:
Options.VirusProtection= 0
此字符串禁用内置Word97中的宏病毒保护。
一对VBA的宏病毒的启发式引擎的很多初步遏制这条线作为扫描字符串。
针对这种扫描字符串明显的攻击是改变了“0”表示。
另一个可能的恶意串(如在宏病毒的变种夫妇像一些W97M/Coldape所示)可能是:
Options.VirusProtection= 1 AND 0
这些技术,这是由病毒程序员介绍,被称为反启发式技术。
他们强迫启发式扫描引擎,更精确的表达,并分析(在0 10的逻辑运算结果再次)。
启发式引擎和加密的病毒
从历史上看,启发式引擎只能评估他们看到了什么,这样一来,加密病毒引起他们的主要问题。
在应对这个问题,现代启发式引擎,试图找出解密循环,摧毁他们,并评估加密根据附加功能检测到的循环存在。
那么,如何将AV扫描仪识别加密循环(如除m68k汇编作为当前Palm OS平台使用)?
对有下列条件/说明可能表明存在一个加密循环组合:
·
初始化一个地址指针,一个有效的内存;
·
初始化一个计数器;
·
内存读操作取决于指针;
·
逻辑运算的结果在读记忆体;
·
存储器写操作的操作与逻辑的结果;
·
操纵柜台;以及
·
根据不同的分支柜台。
一个简单的例子,可以除m68k汇编看起来像这样(汇编指令符合上述描述的条件/指令):

利测试(件),A0Move.l10d0的。循环move.ba0的),D1eor.b0D1move.b D1的,(a0的)+ subq.l1中,D0 bne.s 。循环... 测试dc.b“加密与三次采油和重点0

当然,上面的例子是一个很平凡的加密循环,一个是很容易被检测到的启发式引擎。
然而,如何实现加密循环可以理解是实施启发式引擎,可以发现他们很能干的基础。
因此,我们看到了病毒,尝试通过插入隐藏的加密代码或使垃圾循环加密长,所以很多启发式引擎循环(更准确地说,分析组件)获取混淆。
如果我们在这些检测看,我们看到,在大多数情况下,加密循环检测是不够精确的一个确切的分类,为多种病毒可以使用相同的加密例程。
在二元viruses世界上,我们看到了加密引擎(TPE)的很多;一般而言,这些宏病毒是不符合共同的(例如,利用发动机的W97M/Pri相当频繁)多态引擎配合使用。
因此,在检测和清除的目的,发动机经常交流和/或利用仿真系统,该系统已在其他的事情,有能力打破和/或模拟加密程序。
加密后断裂(即循环结束的加密已经达到),现在的解码部分的启发式分析可以开始。
根据不同的环境中,这种仿真过程是复杂的,因此,有些平台存在没有充分模拟器。
VisualBasic的应用程序(VBA)和Visual Basic脚本(VBS的)是典型的复杂环境中的仿真器可以非常有助于打破加密,但是,一个完整的仿真是非常复杂的。
在大多数情况下(如W97M/AntiSocial家庭,它采用加密),加密指令的数量和高如宏或自动*某些文件处理程序的典型宏已经没有存在的仿真器的使用,完全足以检测这种宏病毒类。
这是显而易见的从W97M/AntiSocial.D解密引擎采取的这个例子:

1
号线中:Private Sub Document_Open():Application.EnableCancelKey =wdCancelDisabled

私人文档处理程序Document_Open()(经常不准确地称为宏)的定义是不常见的应用程序的典型,所以它应该是一个低优先级标记。
下一个操作禁用按'esc'键,并具有相同的安全作为私人文件处理程序定义的风险水平,因此,应相应标记。

线路2:。当d = 6ThisDocument.VBProject.VBComponents.Item1CodeModule.CountOfLines中:C $ =“”

此行只是初始化一个for循环,取决于行数。
这样的字符串应该标记的启发式引擎,为要求计数现有的宏代码行是可疑的。
另外一个启发式引擎应该记得其中的'd'是一个整型变量,最大值,其中对代码行数而定。

线路3:我=ThisDocument.VBProject.VBComponents.Item1CodeModule.Lines的(d1)。)

阿行代码,在柜台上的不同,将读出的宏代码。
从计数器范围选择这种方式,让每行的恶意代码可以被访问。
同样,这可以被看作是一个内存读操作如上所述,应标记。
此外,变量''应该被存储为一个字符串,其中包含行信息变量。

4
号线:女=(中(一,二,1)):对于X = 3len(一):乙$ =升序(中(一,十,1)) - f选项中:C $ = C$&染色体(乙$):下一个x:甲=加元

一组操作工作将与从上一行读的内容。
其实,对于启发,加密类型,发生在这里并不重要,这样一个例行的存在是可疑够了,应该被标记。
对于仿真问题,加密功能分析去更深。

5行:。ThisDocument.VBProject.VBComponents.Item1CodeModule.ReplaceLineD,一个:下e:结束小组

这条线将替换现有的代码(参数'D'类定义的行号和'A'定义实际内容),是另一个关键的操作(相当于存储器写上述操作),它与一个高安全性标记风险级别。
此行还包含for循环,它是用于访问文件在一定范围内的所有行负责外端。

6行:'6 Vxo | gzkY {{sktzeIruyk ħ及瑞/ @Uvzouty4Yg | kTuxsgrVxusvzC6

这条线(以及下面的13条线路全部)包含了这种加密代码注释类。
如何启发式引擎检测到这样的评语,就是加密?
·
相当长的字符串(即,字符由超过四十),不包含空格;
·
这不是典型的启动数字注释;及,
·
该字符串包含字母数字字符混合可疑,特殊字符和普通。
即使是在这六线看,这是很明显,这种代码包含可疑行动,这是一个充分的理由启发式引擎发出警报。



PCOS系统下载站:http://zhuangji.wang

该用户从未签到

发表于 2015-1-2 20:11 | 显示全部楼层
技术贴,学习了,谢
PCOS系统下载站:http://zhuangji.wang

签到天数: 203 天

连续签到: 0 天

[LV.7]常住居民III

发表于 2015-1-4 08:43 | 显示全部楼层
虽然看不懂,但是看上去好屌的样子
PCOS系统下载站:http://zhuangji.wang

该用户从未签到

发表于 2015-1-18 15:21 | 显示全部楼层
菜鸟级别的人,完全看不懂
PCOS系统下载站:http://zhuangji.wang

本版积分规则