免杀的基本概念

木马的本质就是shellcode,免杀就是反病毒技术(杀毒软件),它指的是一种使病毒木马免于被杀软 查杀的技术,由于免杀技术的涉猎范围非常广,其中包含汇编、逆向工程、系统漏洞(C/C++)等和可 技术(安全研究员),所以难度很高,其内容基本上都是修改病毒、木马的内容改变特征码,从而躲避 了杀毒软件的查杀。

0x01 杀毒软件检测方式(静态免杀【文件上传后再未运行的状态下,可不被杀】、动态【文件上传后再 运行的状态下,可不被杀】)

基于文件扫描的反病毒技术 基于文件扫描的反病毒技术可以分为三种,分别是“第一代扫描技术”、“第二代扫描技术”、“算法扫描”。

第一代扫描技术

第一代扫描技术的核心用一句话就可以概括——在文件中检索病毒特征序列,虽然出现的比较早,但是 直到现在也仍然被个大杀软厂商使用着,其主要分为“字符串扫描技术”和“通配符扫描技术”两种

字符串扫描技术

使用从病毒中提取出来的具有特征的一段字符来检测病毒,这些字符必须在一般程序中不太可能出现。 例如一个隐藏执行格式化所有硬盘的命令不可能出现在普通程序中,可以将其作为特征字符。

通配符扫描技术

由于字符串扫描技术有执行速度与特征码长度的限制,所以正在逐渐被通配符扫描技术取而代之。现在 反病毒软件中简单的扫描器通常支持通配符。扫描器中的通配符一般用于跳过某些字节或字节范围,而 现在大多数扫描器已经支持正则表达式了。

下面通过一个例子来说明通配符扫描技术的原理,例如病毒库中有以下一段特征码: ......020E 07BB ??02 %3 56C9...... 可以将其解释如下: ● 尝试匹配02,如果找到则继续否则返回为假 ● 尝试上一匹配目标后匹配0E,如果找到则继续否则返回为假 ● 尝试上一匹配目标后匹配07,如果找到则继续否则返回为假 ● 尝试上一匹配目标后匹配BB,如果找到则继续否则返回为假 ● ??表示忽略此字节 ● 尝试上一匹配目标后匹配02,如果找到则继续否则返回为假 ● 在接下来的3个位置(字节)中尝试匹配56,如果找到则继续,否则返回假 ● 尝试上一匹配目标后匹配C9,如果找到则继续,否则返回假 由于这种技术支持半字节匹配,这样可以更加精确地匹配特征码,一些早期的加密病毒使用这种方法都 能比较容易地检测出来。

第二代扫描技术

第二代扫描技术以“近似精确识别法”和“精确识别法”为代表,除此之外还有“智能扫描法”与“骨架扫描 法”,第二代扫描技术与第一代相比,对检测精度提出了更严格的要求。 智能扫描法 忽略检测文件中像NOP这种无意义的指令。而对于文本格式的脚本病毒和宏病毒,则可以替换多余的格 式字符,如空格、换行符或制表符等。所有的替换动作均在扫描缓冲区中执行,大大提高了扫描器的检 测能力。 近似精确识别法

多套特征码 该方法采用至少两个字符串集来检测每个病毒,如果扫描器检测到其中一个特征符合,将会将其识别为 变种,但不会执行清除病毒体的操作。如果使用的多个特征码全部符合,则会执行清除病毒体的操作。 校验和 这个方法是让每一个无毒软件生成一个校验和,等待下次扫描时在进行简单的校验和对比,如果校验和 发生变化,再进行其他的扫描,否则则说明这个文件没有被感染,由于不需要对所有文件进行扫描,大 大提升了扫描器的效率,但是严格来说这并不算扫描技术,目前,某些安全厂商还对病毒采取了分块校 验的方式以提高识别的准确性。 以上两种方式只是近似精确识别法中的两种,近似精确识别法中包含了若干种方法,这里就不进行一一 介绍了。 骨架扫描法 由大名鼎鼎的卡巴斯基公司发明,在检测宏病毒时效果特别显著,没有使用上面所说的特征码和校验和 而是采用逐行解析宏语句,并将所有非必要字符丢弃,只剩下代码的骨架,对代码骨架进行进一步的分 析,在一定程度上跳了对变种病毒的检测能力。 精确识别法 目前唯一能保证扫描器精确识别病毒变种的方法,通常情况下与第一代扫描技术结合使用。精确识别法 也是利用校验和技术,不过应用更广、更负责。甚至能通过对整个病毒进行校验和计算来生成特征图。

基于内存扫描的反病毒技术

内存扫描器一般与实时监控型扫描器协作,从理论上来杀软的文件扫描组件能识别的病毒,内存扫描器 也能识别。但是由于程序在运行后会将自身释放到内存中,导致释放后的文件结构与未执行的文件相比 有较大的差异。因此在内存扫描时和文件扫描时所使用的特征码很多情况下使用的不是一套。 当病毒被加载到内存中就证明它要开始执行一些动作,在病毒或木马初始化运行环境时,会让更多的可 疑点暴露出来,为了进一步提高效率和准确性,杀软厂商一般会为内存扫描组件单独定义一套新的特征 码

基于行为监控的反病毒技术

此类反病毒技术一般需要虚拟机与主动防御等技术配合使用。其原理是,监控程序的行为,并将其与病 毒木马行为进行分析比对,如果某些程序在执行会进行一些可疑的操作,那么即使是一个新生病毒,也 会被拥有这种技术的反病毒产品所拦截。 ps:行为——应用程序运行后的操作。行为特征——一个程序按照某种顺序执行某一系列操作所具有的 特征。 下面以一个典型的木马程序为例,进行解释。 一个木马程序,可能执行的操作步骤如下

● 释放一些文件到系统关键目录中(权限维持、自启动)

● 修改系统设置使这些新释放的文件可以自启动

● 删除自身

如果一个程序执行的操作具有上述特征,那么这个系统大概率就是木马

基于新兴技术的反病毒技术

云查杀 云查杀用一句话概括就是——“可信继承,群策群力”,也正因此,云查杀以及其跟随衍生出来的技术也 是最具有挑战性的。 云查杀的基本思路就是以服务器为脑,以所有用户的机器为触角,从而使服务器可以随时知道每个用户 的情况,如果其中一个用户与其他用户对比产生差异,那么服务器就会发出指令,让发生异常的机器检 查出问题所在。并将问题反馈给服务,让问题在干扰到其他用户之前被扼杀掉。 上面我们提到的其他用户是整个信任机制的根本,举例来讲,如果大多数机器都运行过一个软件,那么当一个新加入的机器也试图运行这个软件时,服务器就认为这是正常的,否则服务器就会发出相应指令 让用户的机器去阻止其运行。

可信继承

整个云的信任机制是非常复杂的结构,其中包含用户参与的信任评价体系、反病毒专业人员参与的样本 分析信任体系、服务端自动判断信任体系、基于数字签名的认证信任体系等。 顶端的信任体系由数字签名、样本分析构成,这些顶端的信任体系在用户的机器上表现出来的形式就是 “根可信进程”。所谓的“根可信进程”就是指可信进程链条的顶端,凡是由可信进程开启的新进程都被认为 是可信的。 举例解释一下,假如进程A是具有数字签名的根可信进程,那么它在被用户直接执行时就不会触发杀软 的任何操作,且由A进程创建的新进程也成为可信进程。如果进程B是一个非可信程序,那么它在被用户 执行时就会受到严密的监控,如果执行期间有什么敏感操作,样本会被马上提交到服务器进行处理。 这样以来,基于云的信任网络会越来越庞大,其收集的信息也将也来越多。

群策群力

云计算和病毒木马的感染都具有分布性这一特点,这样一来,病毒木马感染的速度越快、感染的面积越 广,其被云查杀捕获到的可能性就越大。 只要某一台计算机上发现新病毒,它马上会被提交到服务端,在服务端快速更新后,所有在云中的计算 机就都获得了对这种病毒的免疫力。

双引擎查杀/多引擎查杀

与字面意思相同,即同时运用两个反病毒引擎扫描病毒,其扫描的准确度会比单一反病毒引擎有所提 高。 通常,具有多个反病毒引擎的产品都会让用户选择扫描模式,如是启动某个引擎,还是启动所有引擎, 因此在针对此类反病毒产品进行免杀的时候往往会在操作思路上将其分割为若干个反病毒产品,然后逐 个攻破。

沙箱

免杀两个方面,①shellcode变形(静态免杀)②行为(动态免杀)

0x02 免杀技术发展史 ● 1989年:第一款杀毒软件Mcafee诞生,标志着反病毒与反查杀时代的到来。 ● 1997年:国内出现了第一个可以自动变异的千面人病毒(Polymorphic/MutationVirus)。自动变异 就是病毒针对杀毒软件的免杀方法之一,但是与现在免杀手法的定义有出入。 ● 2002年7月31日:国内第一个真正意义上的变种病毒“中国黑客II”出现,它不但具有新的特征,还实现 了“中国黑客”第一代所未实现的功能。可见这个变种也是病毒编写者自己制造的。 ● 2004年:在黑客圈子内部,免杀技术在这一年首次公开提出,由于当时还没有CLL等专用免杀工具, 所以一般都使用WinHEX逐字节更改技术。 ● 2005年1月:大名鼎鼎的免杀工具CCL的软件作者tankaiha在杂志上发表了一篇文章,推广了CCL工 具,从此国内黑客界才有了第一个专门用于免杀的工具。 ● 2005年的2~7月:通过各方面有意或无意的宣传,黑客爱好者们逐渐重视免杀技术,在一些黑客站点 的木马专栏下,开始有越来越多的人讨论此技术,这也为以后木马免杀技术的火暴埋下根基。 ● 2005年8月:第一个可查的关于免杀的教学录像诞生,为大量黑客爱好者提供了一个有效的参考资 料,成功地对免杀技术进行了第一次科普。 ● 2005年9月:免杀技术开始被越来越多的黑客技术爱好者知晓。 国内在1997年出现了第一个可以自动变异的千面人病毒,虽然自动变异也可以看作是针对杀毒软件的一 种免杀方法,但是由于它与现在定义的免杀手法有出入,因此如果将国内免杀技术的起源定于1997年会 显得比较牵强。 国内在1997年出现了第一个可以自动变异的千面人病毒,虽然自动变异也可以看作是针对杀毒软件的一 种免杀方法,但是由于它与现在定义的免杀手法有出入,因此如果将国内免杀技术的起源定于1997年会 显得比较牵强。

从国内免杀技术的发展过程来看,一直到2005年9月免杀技术才正式进入公众的视野。但是从国外的发 展来看,20世纪80年代就已经出现了使用Rootkit反扫描技术的病毒,不过这属于一个源码级应用的例 子。而国内的病毒或木马是什么时候开始使用Rootkit的呢?2003年还是2003年以后的某个日子?要知 道国内各大论坛普遍出现系统内核利用的文章应该是从2007年~2008年才开始的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值