打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
恶意软件检测概述

微信公众号:计算机与网络安全

ID:Computer-network

在分析过程中提取出来的信息,最重要的是其恶意代码恶意软件分析通过找到可执行文件入口处的反汇编代码或转储内存中的代码来显示恶意代码部分。假如恶意软件分析没有成功提取这个信息,逆向工程将作为最后的手段。获取恶意软件代码使得通过特征码来进行恶意软件检测成为可能。特征码是基于恶意软件代码创建的。没有恶意软件代码,就不可能创建特征码

恶意软件代码创建特征码并不是检测和阻止恶意软件的唯一有效手段。特征码也可以基于恶意软件对系统的修改来创建。

1、理解特征码

病毒产品非常依赖特征码来检测恶意软件片断。特征码可以是简单的散列值,一系列字符串,一系列代表代码的字节或一个复杂的识别规则集。但是无论特征码以何种形式创建,它大部分都是基于恶意软件代码。如果和特征码相匹配,被扫描的文件就会被标记为恶意软件。如果没有任何匹配的特征码,则认为文件是良性的。后者是攻击者想要达到的。为了更好地理解特征码,我们将分析特征码是如何被反病毒产品的扫描引擎使用的。

在扫描磁盘上或者内存中的二进制文件时,扫描引擎首先要查找可执行文件的入口点。入口点是第一条指令存放的地址,它是跟踪二进制文件执行过程的关键。入口点指向了二进制代码本身。当定位到二进制代码,扫描引擎将二进制代码数据库中所有用于检测的特征码进行比较,如果存在匹配,该二进制文件被标记为恶意软件

对于文件感染程序,入口点指向的是恶意软件代码本身,因为一个被感染的文件在将执行传递给宿主文件时,需要先执行恶意软件。对于经过打包的恶意软件,原始的入口点是很关键的,因为它是对内存中已解压的恶意软件代码进行定位的关键。

入口点只适用于可执行文件。对于不可执行文件如Word文档和PDF文件,恶意代码的指向是不一样的。

因此为了能有效地使用特征码,扫描引擎必须首先找到可执行文件的入口点。知道入口点的重要性了吧?它不仅在恶意软件分析和逆向工程过程中非常重要,在扫描过程中同样占据着不可或缺的位置。扫描器将反病毒工程师的知识以自动化的形式展现。如果反病毒工程师知道如何找到入口点,这种能力很快就会在扫描引擎中表现出来。

2、特征检测和启发式检测

使用特征码恶意软件检测可以分为如下两类:特征检测和启发式检测。特征检测指的是通过一个精确的特征码匹配来识别出恶意软件。精确的匹配可以是一个未复制、未修改的恶意软件的散列值,或者代表恶意功能的、来自恶意软件的一系列字节。基于这种精确的匹配,反病毒产品能够命名其检测到的恶意软件样本,如W32/Conficker.C。如果特征检测无法找到被扫描文件中的特征码匹配,则使用启发式检测。当然,这依赖于启发式检测是否开启。

启发式检测是通过一系列的预定义规则集组成的启发式特征码来判断被扫描文件是否为恶意软件的过程。该检测方法并不做精确的匹配,相反的,它只搜索相似度。如果相似程度够高,则被扫描文件会被标记为可能的恶意软件。启发式检测使用两种方法来标记文件是否是恶意软件

● 启发式分类

● 启发式行为

启发式分类是一种将被扫描文件的特点与那些已知的恶意软件家族进行比较的检测方法。每个恶意软件家族用预定义的规则集合来表示。例如,如果一个被扫描文件的特点与Conficker的恶意软件相似,检测的输出结果可能会是这样:W32/Conficker.Generic。

另一方面,启发式行为用于当一个被扫描文件与任何已知的恶意软件家族不匹配时。不同的是,它将被分析文件的特点与那些已知的恶意行为相比较。每个已知的恶意行为也是用预定义的规则集来表示。例如,检测名字为Trojan/Keylogger.Generic,表示被扫描文件与键盘记录信息偷取有相似的行为。

特征检测与启发式检测两者之间是互补的,如图1所示。特定检测覆盖了已知的恶意软件,而启发式检测则覆盖那些未知的但是有恶意软件特点的部分。

图1  特征检测和启发式检测的工作流

启发式检测的主要目标是检测0-day恶意软件。启发式检测一般比较慢因为它使用了更多的CPU和RAM。虽然一些反病毒软件供应商在解决这个问题方面进行了持续的努力并已取得很多重大的改进,但一些使用者仍然没有开启这项功能。用户可决定是否开启这个特性,这取决于用户正在保护的是什么内容以及反病毒软件运行的系统的可用资源。建议开启这个特性,除非系统的性能不足以正常使用该特性。购置RAM和CPU总比修复受感染系统的代价小。

3、静态扫描和动态扫描

有了特征检测和启发式检测的武装,反病毒产品已经可以开始扫描和检测系统中是否存在恶意软件了。扫描有两种方式:静态扫描和动态扫描。

静态扫描是通过检查文件的物理映像来判断被扫描文件的恶意性的过程。物理映像指的是文件保存在硬盘中的形式。静态扫描也负责检测从因特网下载或从其他介质复制的文件中是否存在恶意软件。在下载或复制的时候,文件的物理映像并没有被改变,它只是被分离传输并在写入硬盘的时候被重建。

动态扫描是在被扫描文件运行时判断其是否具有恶意性的过程。技术上来讲,一些动态扫描的实现只是简单地扫描文件的虚拟映像。虚拟映像指的是文件执行时在内存中的内容。取决于操作系统,文件执行时在内存中的内容可能与硬盘中的内容相似或完全不同。在DOS时代,内存和硬盘中的文件映像区别不大,因此那时候只有一种扫描方法。而Windows操作系统则完全不同,硬盘中的文件映像并不总是和内存中的一样。

记住两种扫描方法的区别的一种好方法是:静态扫描在恶意软件静止时(“静态”等于“不移动”)使用,而动态扫描在恶意软件运行时(“动态”等于“移动”)使用。

这就是为什么有时候一个硬盘中的文件不被检测为恶意软件(特别当其进行防护后),而在内存中运行时会被认为是恶意的。特别是对于加密或加壳后的文件。这些文件在被载入内存中时才进行解密或解压。解压后的映像会触发特征码的匹配,导致它被标记为恶意的。

在内存中的所有内容都会被解密。不管恶意软件采取哪种防护措施,对于要在内存中执行的恶意软件代码和要处理的加密数据,都需要解密。

4、按需扫描和实时扫描

扫描,不管是静态还是动态,都可以划分为两种基本类型:按需扫描和实时扫描。

按需扫描是指用户触发的对系统中硬盘或内存里的文件进行扫描。一个反病毒产品在第一次安装时会调用一次按需扫描,以确保安装前系统是干净的。实时扫描指的是反病毒产品在内存中运行并持续监控文件系统和内存。  

您可能已经注意到使用术语“扫描”来描述静态的、动态的、实时的和按需的。这是因为它们都和扫描相关。它们仅仅在扫描文件的状态和扫描的时间有所不同。静态扫描和动态扫描是基于被扫描文件的状态的扫描方法,而实时扫描和按需扫描基于扫描发生的时机(总是开启还是基于请求)。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
这些反病毒斗争经验,我全放这了!
小红伞 VS NOD32 - 应用软件讨论区 - 软件论坛 - 软件下载 - 技巧 - W...
2007年杀软最新排行榜
推荐一款来自德国的也是世界顶级的杀毒软件AviraAntiVir
CIA涉密文档披露之杀毒软件绕过技术 | 华盟网
Win11 Ntoskrnl.exe蓝屏死机怎么办?Ntoskrnl.exe蓝屏的解决办法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服