恶意代码的分析与检测技术的研究
- 格式:doc
- 大小:30.00 KB
- 文档页数:8
人工智能如何实现恶意代码检测随着互联网的发展,计算机病毒、恶意软件等安全威胁逐渐加强并变得更加难以检测。
在这样的环境下,人工智能技术逐渐应用到了安全领域当中,成为了一种新的检测恶意代码的方式。
本文将探讨人工智能如何实现检测恶意代码,以及当前人工智能在恶意代码检测方面面临的挑战。
一、人工智能如何实现检测恶意代码1.数据清洗和特征提取在使用人工智能技术检测恶意代码前,需要先进行数据清洗和特征提取。
对于每一个样本,需要将其中的恶意代码进行分类,并将代码特征提取出来。
这是后续检测的基础。
2.机器学习机器学习是实现检测恶意代码的一种重要手段。
通过训练机器学习模型,可以更准确地判断恶意代码。
常用的机器学习方法有朴素贝叶斯、支持向量机和随机森林等。
3.深度学习深度学习依靠神经网络训练模型,可以有效地检测恶意代码。
通过对网络流量、文件内容等数据进行深度学习,可以识别大量未知的恶意代码。
二、当前人工智能在恶意代码检测方面面临的挑战1.缺乏标准数据集恶意代码的种类繁多,但有关恶意代码的标准数据集却相对匮乏,而人工智能的模型需要通过大量数据进行训练。
因此,缺乏标准数据集成为了当前人工智能在检测恶意代码方面的一大挑战。
2.恶意代码的逃避能力随着恶意代码技术的不断发展,越来越多的恶意代码具有针对人工智能检测的逃避能力。
一些恶意代码甚至可以识别出自己被检测,并采取相应的对策来逃避检测,这给人工智能带来了很大的挑战。
3.误报率高人工智能在检测恶意代码时,容易出现误报。
这对于用户来说造成的影响是非常不利的。
因此,在提高检测准确率的同时,减少误报率是人工智能检测恶意代码必须解决的问题之一。
三、总结随着技术的不断发展,人工智能在检测恶意代码方面逐渐成为了一种重要的手段。
但是,由于现有技术的限制,人工智能在恶意代码检测方面仍面临着很多的挑战和困难。
相信随着技术的不断进步,这些问题也会逐渐得到解决。
信息安全中的恶意代码检测与防护方法恶意代码是指那些有意引起计算机系统破坏、扩散、窃取信息以及干扰正常运行的程序或脚本。
随着技术的不断发展,恶意代码的种类和形式也在不断增多,因此对于恶意代码的检测与防护显得尤为重要。
本文将介绍信息安全中恶意代码检测与防护的方法和措施。
一、恶意代码的类型恶意代码包括病毒、蠕虫、木马、间谍软件、广告软件等。
病毒以复制自身的方式感染文件、系统和网络,对系统造成破坏;蠕虫则通过网络传播自己,对系统和网络安全构成威胁;木马躲藏在合法软件中,获取用户的敏感信息或者对系统进行控制;间谍软件则通过获取用户的信息,窃取敏感数据,广告软件则以广告为手段,通过弹窗或者插件形式对用户实施骚扰。
了解不同类型的恶意代码,对于选择适合的防护方法至关重要。
二、恶意代码检测方法1. 病毒库检测病毒库检测是目前最常用的恶意代码检测方法之一,它建立在静态分析的基础上。
病毒库中收录了已知病毒的特征码,当系统中的文件或者程序与病毒库中的特征码相匹配时,就会被判定为病毒。
这种方法检测速度快,准确率高,但无法应对未知病毒,因此需要不断更新病毒库以保持检测能力。
2. 行为检测行为检测是一种动态的恶意代码检测方法。
它通过监控程序的行为和活动,对异常行为进行判定。
例如,如果一个程序在无权限的情况下试图修改系统文件,那么就可以判定为恶意代码。
行为检测准确率高,可以应对未知病毒,但对计算机性能有一定的影响。
3. 壳层检测壳层是恶意代码为了对抗防火墙和病毒扫描器而使用的技术手段。
壳层检测通过识别恶意代码的壳层来判定其恶意性。
壳层的特点是对代码进行加密或混淆,使其难以被检测。
因此,壳层检测需要研究壳层技术,识别病毒的壳层并对其进行解析。
三、恶意代码防护方法1. 安全意识培养恶意代码的传播往往是通过用户的不慎点击或下载恶意软件而实现的。
因此,培养用户的安全意识至关重要。
用户应该了解常见的恶意代码形式和传播方式,并学习如何判断和避免恶意代码的攻击。
恶意代码分析中的代码静态分析技术恶意代码指的是一类具有恶意目的的计算机程序或脚本,它们通过操纵计算机系统来窃取信息、破坏系统安全,或者进行其他违法活动。
为了防止和应对恶意代码的攻击,安全研究人员需要运用各种技术进行恶意代码的分析。
而其中一种重要的分析方法就是代码静态分析技术。
静态分析技术指的是在不执行代码的情况下,对代码的结构、语法、语义进行分析的方法。
相比于动态分析技术,静态分析技术可以更早地检测到潜在的安全威胁,并且可以在恶意代码的开发阶段进行分析,以便更早地发现和应对恶意代码的威胁。
代码静态分析技术主要包括以下几个方面:1. 语法分析:语法分析是对代码语法结构进行分析的技术。
通过对代码的分析,可以检测出代码中存在的语法错误和逻辑错误。
在恶意代码分析中,语法分析可以帮助研究人员了解代码的结构和执行流程,从而从中发现潜在的安全漏洞。
2. 数据流分析:数据流分析是对代码中数据流动的路径进行分析的技术。
通过分析代码中的变量和数据的传递方式,可以检测出潜在的数据格式转换错误、边界溢出等安全问题。
在恶意代码分析中,数据流分析可以帮助研究人员识别出恶意代码中可能存在的数据窃取行为。
3. 控制流分析:控制流分析是对代码中程序流程的分析技术。
通过分析代码的执行路径,可以检测出代码中可能存在的逻辑错误和违法行为。
在恶意代码分析中,控制流分析可以帮助研究人员识别出恶意代码中可能存在的恶意功能和攻击行为。
4. 符号执行:符号执行是一种对代码的路径进行穷举分析的技术。
通过在代码中引入符号变量,使得程序能够以不同的输入数据来执行,并通过约束求解器求解路径约束,从而找到代码中可能存在的漏洞和安全问题。
在恶意代码分析中,符号执行可以帮助研究人员发现恶意代码中可能存在的漏洞和攻击路径。
5. 模型检测:模型检测是一种对代码性质和属性进行验证的技术。
通过建立代码的逻辑模型,并基于形式化的方法对模型进行验证,可以检测出代码中存在的有害行为和漏洞。
恶意代码分析中的反调试技术恶意代码(Malware)是一种用于攻击计算机系统的恶意软件。
恶意代码可以偷取用户数据、损毁系统文件、植入后门程序等,对个人用户和企业机构构成巨大威胁。
为了保护计算机系统安全,安全研究人员经常需要对恶意代码进行分析和研究。
然而,恶意代码的开发者为了防止它们被分析,常常采用一些反调试技术,使得对它们的分析变得更加困难。
本文将介绍一些常见的恶意代码反调试技术及应对策略。
一、反调试技术的概念和目的反调试(Anti-Debugging)是指恶意代码的开发者采取一系列措施来阻止分析人员在运行和调试过程中的干扰。
恶意代码分析人员通常会使用调试工具来跟踪和监视代码的执行,以获取有关代码的详细信息。
反调试技术的目的就是阻碍这些调试工具的运行,从而保护恶意代码的机密性和完整性。
二、常见的反调试技术1. 检测调试器恶意代码常常会检测是否存在正在运行的调试器。
检测调试器的技术通常包括检查调试标志位、检测调试相关的进程或线程存在等。
一旦检测到调试器的存在,恶意代码就会改变其行为,比如终止自身进程或者采取其他措施来规避调试。
2. 防止断点设置在调试过程中,分析人员常常会设置断点以暂停代码的执行,以便观察到关键的变量或指令。
恶意代码通常会使用一些技术来防止断点的设置,例如检测硬件断点、软件断点或内存断点的设置,并在检测到断点后终止执行。
3. 反虚拟机检测为了提高分析效率,分析人员通常会在虚拟机环境中运行恶意代码进行分析。
然而,一些恶意代码具有检测虚拟机环境的功能,一旦检测到虚拟机,恶意代码会改变其行为或停止执行。
4. 反内存取证内存取证是分析人员常用的技术之一,可以帮助分析人员获取恶意代码的关键信息,如恶意行为和网络通信。
恶意代码通常会使用一些技术来防止内存取证,例如在内存中加密关键数据、在内存中执行代码等。
三、应对恶意代码反调试技术的策略1. 使用虚拟机尽管恶意代码可能会检测虚拟机环境,但使用虚拟机仍然是分析人员的一个重要工具。
网络安全中的恶意代码检测方法恶意代码是指那些带有恶意意图的计算机程序,它们可能对用户的计算机系统、数据以及网络安全带来巨大风险。
随着网络攻击的不断增加和恶意代码的复杂化,恶意代码检测成为了网络安全中至关重要的一环。
本文将探讨网络安全中的恶意代码检测方法。
1. 病毒特征检测法病毒特征检测法是一种基于病毒数据库的常用检测方法。
它通过比对文件或代码的特征与已知病毒特征进行匹配,以确定是否存在恶意代码。
该方法的优势在于可以检测出已知的病毒,但缺点是无法检测出未知的病毒,因为对于未知的病毒,病毒特征数据库中并没有相应的特征。
2. 行为监测法行为监测法是一种动态分析方法,它通过监测程序运行时的行为来判断是否存在恶意代码。
该方法可以检测出未知的恶意代码,因为它不依赖于特定的特征库。
行为监测法主要是通过监控程序的系统调用、文件读写、网络连接等行为来推断程序是否具有恶意行为。
然而,由于恶意代码具有多样性和变异性,行为监测法也存在漏报和误报的风险。
3. 静态分析法静态分析法是一种通过分析恶意代码的源代码或二进制码来检测恶意代码的方法。
它可以在不运行程序的情况下检测出恶意代码的存在,并可以提供恶意代码的详细信息。
静态分析法主要依靠对代码结构、指令流等进行分析,以推断代码是否具有恶意行为。
然而,静态分析法也存在一些局限性,例如无法检测出加密或混淆的恶意代码。
4. 机器学习方法近年来,机器学习方法在恶意代码检测中得到了广泛应用。
机器学习方法利用大量的已知恶意代码样本进行训练,从而建立分类模型,并通过对新样本进行分类来判断是否存在恶意代码。
机器学习方法可以有效地检测出未知的恶意代码,并且可以通过不断更新训练样本来提高检测效果。
然而,机器学习方法也存在一些挑战,例如需要大量的训练样本和处理不平衡数据的问题。
5. 混合检测方法为了提高恶意代码检测的准确性和效率,研究者们提出了一种将多种检测方法结合起来的混合检测方法。
混合检测方法可以综合利用特征检测、行为监测、静态分析、机器学习等方法的优势,从而提高恶意代码检测的综合能力。
基于恶意代码检测的安全研究与应用随着互联网技术的不断进步和普及,网络安全问题也越来越受到人们的关注。
恶意代码攻击成为网络安全领域里的一个热门话题,对于恰当的恶意代码检测技术的需求也随之增加。
本文将探讨基于恶意代码检测的安全研究与应用。
一、恶意代码的危害性恶意代码指具有恶意行为的计算机程序,作为计算机病毒、木马、蠕虫等攻击的载体,其主要危害性包括:窃取用户的个人信息和银行卡号密码等敏感信息,攻击电脑系统中的文件,破坏计算机系统等。
恶意代码的存在对于计算机技术的发展和计算机网络安全带来很大的隐患,因此在互联网应用中广泛存在的恶意代码攻击活动,必须得到有力的打击。
二、恶意代码检测技术的分类目前市场上主要存在几类防御恶意代码的技术,主要包括:1. 正式处理法(Formal Verification Method)2. 特征码识别技术(Signature-Based Detection)3. 行为监测技术(Behavior-Based Detection)4. 混合检测技术(Hybrid detection technology)正式处理法是在工程中常用的一种方法,通过对模型的形式化验证来检验代码行为是否符合要求。
但其缺点也很明显,即根据正式化模型检测恶意代码的方法比较简单,但是存在计算量大等诸多问题。
特征码识别技术的工作原理是:通过ASCII码向字符串中加入特定的URL或文件名,然后计算它们的MD5值,生成MD5编码集合,再根据这些编码来识别恶意代码。
该方法最大缺点是不能检测出未知的恶意代码,只能依赖对已知恶意代码的识别。
行为监测技术是一种非常有效的检测技术,利用了先进的机器学习和深度学习原理,对应用软件行为进行监测并生成分类模型,可以有效的检测各种不同类型和未知恶意代码的存在。
混合检测技术采用了以上技术的优点,集成了特征码识别技术和行为检测技术,比单一技术更具优势,能同时检测已知和未知的恶意代码,也被应用于很多场合。
网络安全中的恶意代码检测技巧随着互联网的普及和发展,网络攻击和恶意代码的威胁也越来越严重。
恶意代码是指被用于攻击、破坏或盗取信息的代码,它们可能被隐藏在看似无害的文件中,并且在不知情的情况下感染用户的设备。
为了保护个人用户和企业机构的网络安全,专家们不断研发和改进恶意代码检测技术。
本文将介绍一些网络安全中常用的恶意代码检测技巧。
一、特征码检测特征码检测是最常见的恶意代码检测技术之一。
它通过识别恶意代码的特定模式或特征,来判断文件是否感染。
专家通过分析已知的恶意代码,找出其中的共同点并提取出特征码。
当系统遇到新的文件时,它会通过比对文件的特征码来判断是否存在恶意代码。
特征码检测的优点是速度快、准确性高,但它仅适用于已知恶意代码的检测,对于新的恶意代码可能无法及时发现。
二、行为分析行为分析是一项基于恶意代码的行为模式和特征进行检测的技术。
恶意代码通常会在感染设备后执行一系列特定的操作,如文件的修改、网络的连接等。
行为分析通过监控和分析程序的行为,来识别是否存在恶意活动。
该技术的优点是可以检测未知的恶意代码,但也存在误判的可能,因为某些合法软件也可能具有类似的行为特征。
三、虚拟化环境虚拟化环境是一种通过在物理设备上运行虚拟操作系统来隔离恶意代码的技术。
在虚拟化环境中,恶意代码被运行在一个与主机系统隔离的虚拟环境中,在这个环境中,它无法对主机系统进行攻击或感染。
虚拟化环境的好处是可以有效地隔离恶意代码,保护主机系统的安全。
但虚拟化环境也有一些缺点,如资源消耗较大、性能可能受影响等。
四、机器学习机器学习技术在恶意代码检测中也发挥了重要的作用。
通过收集大量的已知恶意代码和正常代码样本,使用机器学习算法进行训练来建立分类模型。
训练完成后,模型可以用来对新的文件进行分类,判断是否感染了恶意代码。
机器学习技术的优势是可以适应新的恶意代码变种,并且具备较高的准确性。
然而,机器学习技术也需要大量的样本数据和精细的特征工程,训练过程较为复杂。
网络安全中的恶意代码检测技术使用教程恶意代码是指那些用于非法获取信息、破坏系统安全或者对用户设备进行攻击的计算机程序或脚本。
由于恶意代码对个人隐私和数据安全构成严重威胁,因此,检测和防御恶意代码已经成为网络安全的重要任务之一。
本文将介绍一些常见的恶意代码检测技术和如何使用它们来保护您的设备和信息安全。
1. 定义恶意代码在了解恶意代码检测技术之前,首先需要了解什么是恶意代码。
恶意代码通常包括病毒、木马、蠕虫、间谍软件等。
它们可以通过电子邮件附件、下载的文件、恶意网站等方式传播。
2. 病毒扫描技术病毒扫描技术是一种常见且成熟的恶意代码检测技术。
它通过使用病毒特征库去匹配已知病毒的特征来检测电子邮件附件、文件和程序中的恶意代码。
这些特征库经常更新以包含最新的病毒信息。
要使用病毒扫描技术来保护您的设备,您可以安装一个可靠的杀毒软件,并将其保持更新。
定期进行全盘扫描以确保您系统中不存在未知的恶意软件。
此外,在下载文件和电子邮件附件时,应始终保持警惕,避免打开或执行来自未知来源的文件。
3. 行为分析技术行为分析技术是一种先进的恶意代码检测技术。
它不仅仅依赖于特征库匹配,更重要的是分析程序的行为以确定是否存在潜在的恶意活动。
要使用行为分析技术来保护您的设备,您可以选择一个具有强大的行为分析引擎的安全软件。
此类软件可以监视并分析软件的活动,例如文件访问、注册表修改、网络连接等。
当检测到异常或可疑行为时,它会发出警告并采取相应的防御措施。
4. 威胁情报技术威胁情报技术是一种依赖于全球安全网络来获取关于最新恶意代码和攻击活动情报的恶意代码检测技术。
它通过收集和分析来自安全团队、社区和其他组织的信息,以识别新的恶意代码和攻击趋势。
为了使用威胁情报技术来保护您的设备,您可以使用支持这种技术的安全软件。
这些软件可以实时更新最新的威胁情报,并自动采取相应的防护措施。
此外,了解当前的网络攻击趋势和常见的恶意软件类型也是非常重要的。
网络安全中的恶意代码检测与防范方法探索恶意代码是指通过网络等方式对系统进行非法入侵、攻击、破坏或窃取敏感信息的计算机程序或脚本。
在当今数字化时代,恶意代码威胁日益增加,给个人、企业乃至整个社会带来了巨大的安全风险。
因此,恶意代码的检测与防范成为了网络安全的重要议题。
本文将探讨一些常用的恶意代码检测与防范方法,以期提高网络安全的能力和水平。
一、恶意代码检测方法1. 签名检测法签名检测法是目前最常见的恶意代码检测方法之一。
它通过与已知的恶意代码进行比对,找到相应的特征码或签名来判断计算机系统中是否存在恶意代码。
当查杀病毒软件更新病毒库时,就是采用签名检测法。
然而,这种方法的局限性在于,只能检测到已知的恶意代码,无法应对未知的新型病毒。
2. 行为检测法行为检测法更加注重恶意代码的行为特征,而非特定的代码形态。
它利用监测系统中应用程序、进程、文件等的行为,以及不寻常的系统行为来判断是否存在恶意代码。
行为检测法具有较好的反应速度和对未知病毒的检测能力,但也容易产生误报和漏报的情况。
3. 基于机器学习的检测法基于机器学习的恶意代码检测方法正在逐渐成为主流。
它通过对大量已知的恶意代码和正常代码进行学习和训练,建立分类器或模型,从而能够快速准确地判断未知的恶意代码。
这种方法的优势在于能够有效地应对新型恶意代码,但也面临着训练样本不完备、恶意代码变异等挑战。
二、恶意代码防范方法1. 安装可靠的杀毒软件和防火墙安装可靠的杀毒软件是防范恶意代码的基本措施之一。
杀毒软件可以及时扫描和查杀计算机系统中的病毒和恶意代码,提供实时的保护。
同时,设置良好的防火墙可有效拦截来自外部网络的攻击和入侵。
2. 及时更新操作系统和软件操作系统和软件的漏洞是恶意代码攻击的入口之一。
恶意程序往往通过利用软件漏洞来攻击系统,所以及时更新操作系统和软件是非常重要的防范措施。
更新包含了对已知漏洞的修复,能够增强系统的安全性。
3. 注意邮件和下载附件的安全大多数恶意代码通过电子邮件、社交媒体和下载附件等方式传播。
恶意代码的分析与检测技术的研究摘要:随着网络技术的飞速发展,恶意代码严重威胁着计算机及网络安全。
病毒、蠕虫等恶意代码不断变种,快速传播,信息安全受到了巨大的挑战,恶意代码分析及检测问题成为当前网络研究工作的重点。
本文在分析恶意软件相关理论基础上,探讨了恶意代码分析技术和分析工具相关问题。
关键词:恶意代码病毒分析检测恶意代码(Malicious Code)是一种违背目标系统安全策略的程序代码,通过各种手段造成目标机器信息泄密、资源滥用、破坏系统的完整性及可用性。
随着互联网普及,恶意代码也迅速蔓延。
从2009年中国“5.19全国断网事件”到“百度被黑事件”,2010年上半年CNCERT 共接收4780次网络安全事件报告(不包括扫描和垃圾邮件类事件),与2009年上半年相比增长105%。
其中,恶意代码、漏洞和网页仿冒事件报告次数居前三位,所占比例分别为:57.57%、25.96%和15.48%。
恶意代码的快速发展、广泛传播,对计算机信息系统的保密性、可用性和完整性造成了极大的威胁。
在当前恶意代码破坏加剧紧迫情况下,探讨如何高效、准确的分析恶意代码,最大程度消除网络安全威胁,是当今安全领域研究的重点和热点。
1 恶意软件及相关概念恶意软件、恶意代码、恶意内容通常被统称为恶意软件。
恶意代码是指有能力破坏程序代码或数据的可用性和完整性,或者系统的保密性的程序代码(如木马、病毒、蠕虫和陷阱门等)。
恶意软件的类型很多,可以从行为上将其分成病毒、蠕虫和木马三大类。
病毒:计算机病毒是指编制或者在计算机程序中插入的破坏计算机功能或者破坏数据、影响计算机使用,并且能够自我复制的一组计算机指令或程序代码。
是能进行自我复制的代码,并需要人工交互传播的代码。
病毒一般不能作为独立可执行文件存在,它常在其它可执行文件运行时自行启动,通过可移动存储器,电子邮件或共享目录进行传播。
如CIH引导区病毒、宏病毒和脚本病毒等。
蠕虫:是一段能进行自我复制、可独立自动运行的恶意代码,它不需要人机交互,通过嵌入正常程序和系统中的漏洞传播到其它网络,造成最严重的破坏,难以防范和检测。
如网页蠕虫利用IFrame漏洞和MIME 漏洞进行传播,又如MORRIS蠕虫等等。
恶意移动代码:以脚本、小型应用程序和控制器的形式存在于网页上,当用户访问某个Web站点时,通过自动从服务器上下载移动代码进行传播。
后门:是一个允许攻击者绕过系统正常的安全控制,不需要有效的验证,并且可能没有日记记录便可进入系统获得系统访问权限的程序。
木马:木马全称特洛伊木马(Trojan Horse),就是将有害的恶意行为伪装成有益无害的软件潜伏于计算机中,以收集敏感信息为主要目的。
木马是微软和熊猫实验室检测出来的最多的恶意软件的类型。
木马的工作原理如图1所示。
Rootkit:是一个可以修改现有的操作系统的软件,它可以使攻击者在计算机上实现一直保持访问状态,或者隐藏自身身份。
2 恶意代码分析方法恶意代码分析方法主要分为静态分析和动态分析两大类,如图2所示。
静态分析不受特定运行环境的限制,在不运行病毒程序的情况下,详细分析病毒内部结构和功能,分析效率高,但具有较大的局限性。
2.1 静态分析静态分析是指对可执行恶意代码的文件利用PE结构、编译器原理等技术进行分析,要分析过程中不需要执行恶意代码。
静态分析包括分析字符串、查看脚本、二进制分析、反汇编以及可能的反向编译等。
反编译技术和特征码分析比较常用。
反汇编是指将C语言、C++等高级语言编写的程序可执行文件反编译还原成汇编语言或其他高级语言。
利用反汇编技术将恶意病毒代码转化成高级语言后,能较为清晰地看出恶意代码的内部结构,了解其系统调用,从而提高代码分析效率。
常见的反编译工具有Giampiero Caprino提供的逆向工程编译器(REC)、JreversePro和HomeBrew Decompiler等。
特征码作为该病毒唯一标识的一小段二进制代码,可以作为查毒程序辨认病毒的依据。
特征码的描述取决于人的主观因素,对于具有反跟踪技术和变形、解码技术的病毒,获取特征码的变得极为复杂。
特征码查病毒由于误报率高,而杀病毒技术又导致了反病毒软件的技术迟滞,因此在国际上很难得到广域性支持。
2.2 动态分析动态分析则与静态分析方法相反,是在恶意代码执行的情况下,通过工具进行内存等分析的一种信息分析方式。
动态分析法又可根据是否分析代码语义分为动态跟踪法和环境比较法。
动态跟踪法是利用Debug等程序调试工具一步一步地单步执行恶意代码,然后根据其代码特征对其进行动态跟踪分析。
常用的动态分析工具是SOFTICE或TRW2000有效地进行动态跟踪分析。
在分析时首先对恶意代码进行粗跟踪,再对关键部分进行细跟踪。
环境比较法是指让恶意代码在专门的实验机或虚拟机上运行,然后通过比较恶意代码运行前后主机的各种状态信息的变化来分析恶意代码的功能。
针对计算机病毒,软件仿真扫描技术提供了一种多态变形技术,是通过仿真CPU执行,在虚拟机下伪执行病毒程序,能让病毒在执行期间暴露其破坏性。
图2为恶意代码在多种虚拟机下仿真执行调试分析是指分析人员利用调试器跟踪软件的运行,寻求破解的途径。
可以将之分为内核态调试器和用户态调试器两类。
常用的方法一种是利用API Hook挂钩某些系统函数。
API Hook可分为用户态API Hook和核心态API Hook。
SoftICE、Win Dbg、WDEB386和i386KD等等都是在硬件与操作系统之间针对系统核心或驱动进行调试的。
OllyDbg等是在操作系统和用户态程序之间针对用户态程序进行调试。
3.3 恶意代码行为分析恶意代码行为分析就是从代码的功能和行为特征上检测该代码是否具有恶意性的技术。
恶意代码在操作系统中的行为表现是和正常程序的API和参数调用序列有所区别的,可以从程序的行为特征方面来判别代码是否具有恶意性。
大多数微处理器都支持用户(User/Normal)和内核(Kernel/Privileged)两种模式。
内核模式主要执行操作系统组件和关键系统组件,一般用户模式的程序只能访问私有地址空间和执行非特权等级的指令。
恶意代码攻击行为归纳为入侵系统、维持或提升现有权限、隐蔽、潜伏和破坏等几种。
4 恶意代码检测方法恶意代码检测技术最流行的主要有特征码扫描技术、虚拟机检测技术和完整性检测技术。
4.1 特征码扫描特征码扫描是检测已知恶意代码的最主要方法。
在新恶意代码出现后,通过动态调试或静态反汇编,从代码中提取独一无二的程序指令片断建立恶意代码的特征库文件。
在扫描程序工作后根据特征文件中的特征字符串,进行与待检测文件的扫描匹配。
通过更新特征文件以更新最新的恶意代码特征字符串。
(如图3)4.2 完整性检测完整性检测是一种针对文件感染型恶意代码的检测技术。
如果新文件未感染恶意代码,通过CRC32和MD5等算法算出文件的HASH 值,放入安全的数据库。
检测时再次计算被检测文件的HASH值,与数据库中原有的值比较判断原文件是否被修改过,可能含有恶意代码。
完整性检测技术的优点是能够有效检测恶意代码对于文件的修改。
可以在恶意代码检测软件中设置校验和法,也可以将校验和法常驻内存。
4.3 虚拟机检测虚拟机检测主要针对使用了代码变形技术的恶意代码进行检测,目前已得到广泛应用。
多态病毒采用等价指令替换,指令重排序等技术实现样本执行体的多样性。
虚拟机技术就是让恶意代码在虚拟的环境中执行解密工作。
当恶意软件使用代码段加密(加壳)等变形技术时,如果通过普通的特征码扫描,将很难检测。
通过虚拟机检测技术将从文件入口点处逐条取指令执行,直到加密段指令执行完成,之后即可进行特征检测。
虚拟机技术最早用于反病毒虚拟机。
其原理如图4所示。
4.4 手动恶意代码检测针对恶意代码手动检测,可以利用蜜罐等工具搜集恶意代码,以用作手工分析。
如/可以提供恶意代码可执行文件以及源代码的下载。
手工分析的工具主要有:autorun.exe、filemon、regmon、chkrootkit、diskmon、icesword、portmon、procexp等。
将手工分析的结果进行整理,可以概括出恶意代码的高频行为。
其中,恶意代码的文件行为有写入、重命名、修改、删除等。
如病毒中华吸血鬼可以写入kav32.exe,wsock32.dll、pig.vbs至windows\tasks目录下。
恶意代码开始运行后,可能有关闭其他进程、创建新进程等进程的行为,还有读取、修改注册表的行为,自动链接到指定的网址,还会使用加载dll的方式实现进程隐藏,遍历进程行为、调用卸载程序、Hook行为、窗口行为等等都是恶意代码的常见表现。
参考文献[1] 何申,张四海,王煦法,等.网络脚本病毒的统计分析方法[J].计算机学报,2006,29(6).[2] 安天实验室.安天实验室信息安全威胁综合报告[R].哈尔滨:安天实验室,2011.[3] 张仁斌,李钢,侯整风.计算机病毒与反病毒技术[M].清华大学出版社,2006,6,12.[4] 任飞,章炜,张爱华.网页木马攻防实战[M].电子工业出版社,2009(5).[5] 杨云江.计算机网络安全实用技术[M].清华大学出版社,2007.。