网络攻击恶意代码的快速定位方法
- 格式:doc
- 大小:33.00 KB
- 文档页数:4
网络安全恶意代码应急处置方法恶意代码指的是需要透过计算机网络传播和操作,在未经用户授权的情况下,对计算机和网络系统造成危害或损失的恶意行为。
网络安全恶意代码应急处置方法是指针对网络中可能出现的恶意代码攻击事件,采取的紧急处置措施和方法。
本文将从预防措施、发现恶意代码、应急处置流程以及常见的应急处置方法等方面进行论述。
一、预防恶意代码攻击1. 更新软件和操作系统:及时安装操作系统和软件的补丁,以修补已知的漏洞,并关闭不必要的服务和端口,以减少攻击的可能性。
2. 安装可信的杀毒软件和防火墙:定期更新病毒数据库,确保及时发现和清除病毒,同时设置合理的防火墙策略,限制恶意代码入侵。
3. 加强员工教育和培训:提高员工的网络安全意识,教育他们避免点击垃圾邮件、不信任的链接以及下载不明来源的文件。
二、发现恶意代码在进行恶意代码应急处置之前,首先需要发现恶意代码的存在。
以下是发现恶意代码的主要途径:1. 安全日志分析:及时分析和检查系统安全日志,寻找异常行为和攻击痕迹。
2. 网络流量监控:使用网络监控工具实时监控网络流量,发现不正常的数据传输和异常连接。
3. 实时文件监测:使用杀毒软件和恶意代码检测工具对计算机系统进行实时监测,及时发现恶意代码的存在。
三、恶意代码应急处置流程1. 确认和隔离:一旦发现恶意代码的存在,需要立即确认并隔离受感染的设备或网络节点,以阻止其继续传播和扩散。
2. 制定紧急处理策略:针对不同类型的恶意代码攻击事件,制定相应的紧急处理策略,包括恶意代码清除、数据恢复、系统修复等。
3. 清除恶意代码:运用专业的杀毒软件和安全工具,对受感染设备进行全面扫描和恶意代码清除,确保系统安全。
4. 数据恢复和系统修复:对受到损害的数据进行恢复备份,并对受感染的系统进行修复和加固,防止再次受到攻击。
5. 加强后续安全措施:根据恶意代码攻击事件的分析和反思,完善网络安全策略和措施,以提高整体安全水平。
四、常见的恶意代码应急处置方法1. 备份数据:定期备份重要数据,确保在恶意代码攻击后能够快速恢复系统和数据。
网络安全中的恶意代码检测与防范方法恶意代码(Malware)是指用于攻击计算机系统、窃取用户信息、传播病毒等恶意行为的计算机程序。
随着网络的普及和应用的广泛,恶意代码的威胁日益严重,对网络安全造成了巨大的风险。
为了保护用户信息和计算机系统的安全,网络安全专家们积极研发并应用恶意代码检测与防范方法。
恶意代码的检测方法主要包括特征检测、行为检测和机器学习检测。
特征检测是一种常见而有效的方法,它利用已知的恶意代码特征来识别和分类恶意代码。
这些特征可以是恶意代码的特定字符串、文件结构或者函数调用等。
特征检测不依赖于恶意代码的行为,而是依赖于恶意代码的特定特征。
然而,特征检测的局限在于对已知特征的依赖,新型的恶意代码可能会使用新的特征,从而逃避检测。
行为检测是通过观察恶意代码的行为来判断其是否为恶意代码。
这种方法不依赖于恶意代码的特定特征,而是关注其对计算机系统的影响和操作。
行为检测可以监控恶意代码执行的系统调用、网络通信等行为,从而及时发现和阻止恶意代码的活动。
然而,行为检测也有其局限性,因为某些新型的恶意代码可以通过伪装、加密等手段来隐藏其行为特征,使得其难以被检测。
机器学习是一种基于样本数据的自动学习方法,其在恶意代码检测中也得到了广泛应用。
机器学习方法通过分析已有的恶意代码数据和非恶意代码数据,学习生成一个分类模型。
这个模型可以对新的恶意代码进行预测和分类。
机器学习方法能够自动学习具有较强泛化能力的特征,对于新型的恶意代码也能较好地进行检测。
但是,机器学习方法也存在着过拟合、样本不平衡等问题,需要针对这些问题进行优化。
除了恶意代码的检测方法,防范恶意代码也是非常重要的。
下面我来介绍几种常用的防范恶意代码的方法。
首先是使用杀毒软件。
杀毒软件是一种能够检测和消除计算机病毒的软件。
它通过对病毒特征的识别和监听计算机的活动,及时发现和清除恶意代码。
用户可以定期更新杀毒软件的病毒库,确保其具备最新的恶意代码识别能力。
恶意代码特征提取与入侵检测方法研究恶意代码的不断演变以及对网络安全的威胁日益增加,使得恶意代码的检测和防护成为当今互联网安全领域的关键任务。
恶意代码具有隐蔽性、变异性和自适应性等特点,使得传统的入侵检测方法往往难以及时有效地发现和应对。
恶意代码特征提取是恶意代码检测的关键步骤之一。
通过对恶意代码的特征分析和提取,可以建立起有效的恶意代码库,并从中获取特征信息来区分正常代码和恶意代码。
本文将探讨恶意代码特征提取的方法与研究。
一、静态特征提取方法静态特征提取方法是在不运行恶意代码的情况下,通过对代码文件本身进行分析提取特征。
这种方法可以避免运行恶意代码对系统造成的危害,并且可以快速地扫描大量的代码文件。
常见的静态特征提取方法包括以下几种。
1. 代码结构特征提取代码结构特征提取方法通过分析代码的结构,提取出代码的函数调用、控制流和数据流等信息,从而判断代码是否具有恶意行为。
例如,恶意代码通常会使用不常见的函数调用或者异常的控制流来实现其攻击目的,通过对这些特征的提取和分析,可以有效地检测恶意代码。
2. API调用特征提取API调用特征提取方法通过分析代码中的API调用序列,提取出常见的恶意代码所使用的API调用特征,从而判断代码是否具有恶意行为。
例如,恶意代码通常会使用与网络通信、文件操作、系统管理等相关的API进行攻击,通过对这些API调用的提取和分析,可以识别出恶意代码。
3. 字节码特征提取字节码特征提取方法通过对代码文件的字节码进行分析,提取出具有恶意行为的指令序列特征。
例如,恶意代码通常会使用特定的指令序列来实现其攻击目的,通过对这些指令序列的提取和分析,可以有效地检测恶意代码。
二、动态特征提取方法动态特征提取方法是在运行恶意代码的情况下,通过对代码在运行时的行为进行分析提取特征。
这种方法可以捕捉到恶意代码在运行时的具体行为,从而更加准确地判断代码是否具有恶意行为。
常见的动态特征提取方法包括以下几种。
网络安全中的恶意代码检测技术使用方法在当今数字化时代,网络安全问题变得越来越重要。
恶意代码是网络安全领域中的一个重要问题。
恶意代码指的是一种特殊类别的计算机程序,其目的是对计算机系统、数据进行恶意攻击。
为了保护计算机系统和用户的隐私,恶意代码的检测技术变得非常关键。
本文将介绍网络安全中恶意代码检测的一些常用技术和使用方法。
1. 签名检测技术签名检测技术是最基本也是最常见的恶意代码检测技术之一。
这种技术基于已有的恶意代码样本的特征来进行检测。
其工作原理是通过与已知恶意代码的特征进行比对来判断是否存在恶意代码。
签名检测技术的有点在于识别已知的恶意代码,因为它们的特征已经被记录在检测数据库中。
然而,缺点是无法识别新型的恶意代码,因为签名是基于已知的样本。
此外,恶意软件作者也可以使用技术手段使其代码不易被检测到,从而规避签名检测技术。
2. 基于行为的检测技术基于行为的检测技术是一种先进的恶意代码检测技术。
它通过分析计算机系统的行为来判断是否存在恶意代码。
与签名检测技术不同,基于行为的检测技术不需要依赖已知的恶意代码样本来进行检测。
基于行为的检测技术的优势在于可以检测未知的恶意代码。
通过分析恶意代码的行为模式,可以发现恶意代码活动所具有的特征。
然而,这种技术也存在缺点。
有时候,合法的应用程序也会产生类似于恶意代码的行为,从而导致误报率较高。
3. 基于机器学习的检测技术基于机器学习的检测技术是一种新兴的恶意代码检测技术。
它利用机器学习算法来学习和识别恶意代码的特征,从而进行检测。
这种技术可以通过对大量恶意代码样本进行训练,从而提高检测的准确性和效率。
基于机器学习的检测技术的优势在于可以自动学习和适应新型恶意代码。
然而,这种技术的缺点在于需要大量的恶意代码样本进行训练,而且需要定期更新模型以适应新的威胁。
4. 沙箱分析技术沙箱分析技术是一种特殊的恶意代码检测技术。
它利用虚拟环境来运行恶意代码,以分析其行为。
通过将恶意代码运行在隔离的沙箱环境中,可以避免对计算机系统和用户造成任何损害。
网络追踪识别网络攻击工具随着互联网的普及和发展,网络安全问题日益突出。
不法分子利用网络攻击工具进行各种破坏和侵入,给个人和企业带来巨大损失。
因此,有效地使用网络追踪技术来识别网络攻击工具显得尤为重要。
本文将以1200字左右的篇幅,介绍如何使用网络追踪技术来识别网络攻击工具。
一、常见网络攻击工具的特征分析在追踪和识别网络攻击工具之前,我们首先需要了解和分析常见的网络攻击工具的特征。
例如,DDoS攻击工具常常通过大规模的数据包发送来瘫痪目标系统。
而木马程序则会侵入目标系统并盗取用户的隐私信息。
此外,还有一些扫描工具,通过不断地扫描目标系统来查找其漏洞并进行攻击。
通过深入了解这些网络攻击工具的特征,我们可以更好地进行识别和防御。
二、使用网络追踪技术识别网络攻击工具1. 网络流量分析使用网络流量分析技术可以帮助我们识别网络攻击工具的活动。
通过监测和分析网络流量,我们可以发现异常的网络传输行为。
例如,大量来自某一特定IP地址的数据包,或者频繁发送的请求。
这些都可能是攻击者正在使用网络攻击工具进行攻击的迹象。
因此,我们可以通过检测和分析这些异常行为,及时发现攻击并采取相应的防御措施。
2. 恶意代码分析恶意代码是网络攻击工具的一种常见形式。
因此,对于恶意代码的分析也是识别网络攻击工具的重要手段之一。
通过对恶意代码的深入分析,我们可以了解其行为特征和传播途径。
例如,恶意代码可能会通过漏洞利用、垃圾邮件或者网络钓鱼等方式传播。
通过追踪和解析恶意代码的传播轨迹,我们可以快速识别并应对潜在的攻击。
3. IP地址追踪IP地址是网络攻击工具进行攻击时的一个重要标识。
通过追踪和分析攻击者的IP地址,我们可以掌握攻击来源的相关信息,并采取相应的防御措施。
例如,我们可以对攻击者的IP地址进行地理定位,了解攻击者的所在位置。
在与相关部门合作的情况下,甚至可以通过追踪IP地址找到攻击者的具体身份。
这些信息将为我们打击网络攻击提供有力的支持。
恶意代码分析中的代码追溯技巧一、引言在当今数字化时代,恶意代码的威胁日益严重。
为了保障网络安全,恶意代码分析是必不可少的一项工作。
恶意代码追溯技巧是恶意代码分析的重要方面,它能够帮助安全专家准确追溯代码来源,找到攻击者的意图和方法。
本文将分享一些恶意代码分析中的代码追溯技巧。
二、静态分析1. 反汇编反汇编是一种静态分析方法,通过将二进制代码转化为可读的汇编语言来了解其详细执行过程。
这能够帮助安全专家理解恶意代码的功能和逻辑,从而追溯代码的来源。
常见的反汇编工具包括IDA Pro 和Ghidra。
2. 逆向工程逆向工程是通过分析恶意代码的二进制文件来还原其源代码。
通过逆向工程,安全专家可以获得恶意代码的结构、算法和逻辑,进而深入研究并追溯其来源。
IDA Pro、Ghidra和OllyDbg是逆向工程领域常用的工具。
三、动态分析1. 动态调试动态调试是一种以运行时执行代码并观察其行为的分析方法。
通过使用调试器,安全专家可以逐行分析恶意代码的执行过程,了解其功能和逻辑,并追溯代码的来源。
常见的动态调试工具包括GDB、Windbg和OllyDbg。
2. 行为分析行为分析是在受控环境中执行恶意代码,并观察其行为。
通过行为分析,安全专家可以监视恶意代码的网络通信、系统调用和文件操作等行为,以此揭示其攻击方式和目的。
Cuckoo Sandbox和FireEye 等工具可以实现行为分析。
四、代码追溯技巧1. 注释和变量名恶意代码追溯的第一步是研究代码中的注释和变量名。
有时攻击者会留下一些提示性的注释或使用特定的命名约定。
这些注释和变量名可能揭示了代码的来源、功能或特定的攻击技术。
因此,仔细研究注释和变量名可以帮助安全专家快速定位到攻击者的意图。
2. 引入文件和函数调用恶意代码通常会引入其他文件或调用特定的函数。
通过分析代码中的引入文件和函数调用,安全专家可以推断出代码的来源和目的。
这些文件和函数调用可能与已知的恶意软件家族或攻击工具相关联,从而提供重要线索进行代码追溯。
网络安全防护的恶意代码检测与清除随着互联网的迅速发展,网络安全问题日益引起人们的关注。
恶意代码是一种网络攻击手段,它可以隐藏在各种文件中,通过潜入用户计算机系统或服务器,侵害用户隐私、窃取重要信息和造成系统瘫痪等严重后果。
因此,恶意代码检测与清除成为了网络安全防护的重要环节。
一、恶意代码的分类恶意代码包括病毒、木马、蠕虫、间谍软件等多种形式,可以分为以下几类:1. 病毒:是最常见的一类恶意代码,通过感染文件或网络传播,侵害计算机系统。
2. 木马:是一种暗藏在正常程序中的恶意代码,它会在用户不知情的情况下,偷窃用户信息或远程控制用户计算机。
3. 蠕虫:和病毒类似,但不需要宿主文件,可以利用网络进行远程传播。
4. 间谍软件:是一种通过监控、窃取用户信息的恶意代码,用于非法获取商业机密或个人隐私。
二、恶意代码的检测方法恶意代码的检测方法多种多样,可以通过以下几种方式进行:1. 实时监控:通过安装杀毒软件、防火墙等安全工具,在用户使用计算机过程中实时监控系统,对可疑程序进行扫描和检测。
2. 签名扫描:维护一份恶意代码的签名数据库,对用户系统中的文件进行扫描,当发现与数据库中签名相匹配的文件时,将其标记为恶意代码。
3. 行为分析:通过分析程序的行为特征,判断是否存在恶意行为。
例如,木马程序通常会与远程服务器建立连接,行为分析可以检测到这种异常连接。
4. 启发式分析:采用启发式算法对文件进行分析,通过判断文件的某些特征是否符合恶意代码的定义,来确定文件是否为恶意代码。
三、恶意代码的清除方法一旦发现恶意代码的存在,需要立即进行清除,以免造成更大的损失。
清除恶意代码的方法如下:1. 隔离文件:按照安全规范,将受感染的文件进行隔离,并切勿打开或运行,以免进一步传播恶意代码。
2. 利用杀毒软件:安装可信赖的杀毒软件,并及时更新病毒库,进行扫描和清除恶意代码。
3. 系统恢复:如果用户计算机已经受到恶意代码侵害,可以通过系统恢复或重装操作系统的方式将系统还原到受感染之前的状态。
简述清除恶意代码的方法清除恶意代码是保护计算机系统和网络安全的重要任务。
恶意代码是指那些具有破坏性、非法入侵以及窃取信息等恶意行为的计算机程序。
清除恶意代码需要采取一系列方法,涉及不同层面的技术和策略。
本文将对清除恶意代码的方法进行简述。
首先,清除恶意代码的方法可以从两个方面进行,分别是防止被感染和清除已感染的计算机系统。
防止被感染包括加强系统安全性和加强用户教育意识;清除已感染则涉及到使用杀毒软件和安全工具、修复系统漏洞、清除恶意文件等。
一、防止被感染1.加强系统安全性:确保操作系统、浏览器等软件及时更新到最新版本,安装防火墙等安全软件,并定期更新。
二、清除已感染的计算机系统1.使用杀毒软件和安全工具:杀毒软件是防护计算机系统安全的基本工具,可以扫描、检测和删除病毒、恶意软件等。
选择一个好的杀毒软件,并定期更新病毒库文件进行扫描是非常重要的。
2.修复系统漏洞:定期更新操作系统补丁和漏洞修复程序,以确保系统中的漏洞得到及时修复,从而降低被恶意软件利用的风险。
3.清除恶意文件:对于检测到感染的文件,可以使用杀毒软件进行隔离或删除。
此外,还可以使用专门的文件清除工具对系统中的恶意文件进行深度清理。
4.使用网络安全工具:网络安全工具如入侵检测系统(IDS)、入侵防御系统(IPS)等可以帮助检测和清除恶意代码的攻击。
5.使用反恶意软件工具:反恶意软件工具可以检测和清除恶意软件、间谍软件等,包括常见的反病毒软件、反间谍软件和反木马软件。
1.网络流量分析:通过对网络流量的分析,可以发现和识别恶意代码的攻击流量,及时采取阻断措施,防止进一步传播和扩散。
2.网络防火墙设置:合理设置网络防火墙,限制对外访问的网络端口,拦截恶意代码入侵的流量。
3.执行权限设置:对于计算机系统中的关键文件和敏感操作,设置适当的执行权限,限制恶意代码的执行和操作。
4.日志分析:通过对系统和应用程序的日志进行分析,可以发现异常的行为和流量,及时发现和清除恶意代码。
网络安全中的恶意代码检测方法恶意代码是指那些带有恶意意图的计算机程序,它们可能对用户的计算机系统、数据以及网络安全带来巨大风险。
随着网络攻击的不断增加和恶意代码的复杂化,恶意代码检测成为了网络安全中至关重要的一环。
本文将探讨网络安全中的恶意代码检测方法。
1. 病毒特征检测法病毒特征检测法是一种基于病毒数据库的常用检测方法。
它通过比对文件或代码的特征与已知病毒特征进行匹配,以确定是否存在恶意代码。
该方法的优势在于可以检测出已知的病毒,但缺点是无法检测出未知的病毒,因为对于未知的病毒,病毒特征数据库中并没有相应的特征。
2. 行为监测法行为监测法是一种动态分析方法,它通过监测程序运行时的行为来判断是否存在恶意代码。
该方法可以检测出未知的恶意代码,因为它不依赖于特定的特征库。
行为监测法主要是通过监控程序的系统调用、文件读写、网络连接等行为来推断程序是否具有恶意行为。
然而,由于恶意代码具有多样性和变异性,行为监测法也存在漏报和误报的风险。
3. 静态分析法静态分析法是一种通过分析恶意代码的源代码或二进制码来检测恶意代码的方法。
它可以在不运行程序的情况下检测出恶意代码的存在,并可以提供恶意代码的详细信息。
静态分析法主要依靠对代码结构、指令流等进行分析,以推断代码是否具有恶意行为。
然而,静态分析法也存在一些局限性,例如无法检测出加密或混淆的恶意代码。
4. 机器学习方法近年来,机器学习方法在恶意代码检测中得到了广泛应用。
机器学习方法利用大量的已知恶意代码样本进行训练,从而建立分类模型,并通过对新样本进行分类来判断是否存在恶意代码。
机器学习方法可以有效地检测出未知的恶意代码,并且可以通过不断更新训练样本来提高检测效果。
然而,机器学习方法也存在一些挑战,例如需要大量的训练样本和处理不平衡数据的问题。
5. 混合检测方法为了提高恶意代码检测的准确性和效率,研究者们提出了一种将多种检测方法结合起来的混合检测方法。
混合检测方法可以综合利用特征检测、行为监测、静态分析、机器学习等方法的优势,从而提高恶意代码检测的综合能力。
网络安全中的恶意代码检测技巧随着互联网的普及和发展,网络攻击和恶意代码的威胁也越来越严重。
恶意代码是指被用于攻击、破坏或盗取信息的代码,它们可能被隐藏在看似无害的文件中,并且在不知情的情况下感染用户的设备。
为了保护个人用户和企业机构的网络安全,专家们不断研发和改进恶意代码检测技术。
本文将介绍一些网络安全中常用的恶意代码检测技巧。
一、特征码检测特征码检测是最常见的恶意代码检测技术之一。
它通过识别恶意代码的特定模式或特征,来判断文件是否感染。
专家通过分析已知的恶意代码,找出其中的共同点并提取出特征码。
当系统遇到新的文件时,它会通过比对文件的特征码来判断是否存在恶意代码。
特征码检测的优点是速度快、准确性高,但它仅适用于已知恶意代码的检测,对于新的恶意代码可能无法及时发现。
二、行为分析行为分析是一项基于恶意代码的行为模式和特征进行检测的技术。
恶意代码通常会在感染设备后执行一系列特定的操作,如文件的修改、网络的连接等。
行为分析通过监控和分析程序的行为,来识别是否存在恶意活动。
该技术的优点是可以检测未知的恶意代码,但也存在误判的可能,因为某些合法软件也可能具有类似的行为特征。
三、虚拟化环境虚拟化环境是一种通过在物理设备上运行虚拟操作系统来隔离恶意代码的技术。
在虚拟化环境中,恶意代码被运行在一个与主机系统隔离的虚拟环境中,在这个环境中,它无法对主机系统进行攻击或感染。
虚拟化环境的好处是可以有效地隔离恶意代码,保护主机系统的安全。
但虚拟化环境也有一些缺点,如资源消耗较大、性能可能受影响等。
四、机器学习机器学习技术在恶意代码检测中也发挥了重要的作用。
通过收集大量的已知恶意代码和正常代码样本,使用机器学习算法进行训练来建立分类模型。
训练完成后,模型可以用来对新的文件进行分类,判断是否感染了恶意代码。
机器学习技术的优势是可以适应新的恶意代码变种,并且具备较高的准确性。
然而,机器学习技术也需要大量的样本数据和精细的特征工程,训练过程较为复杂。
网络攻击恶意代码的快速定位方法
作者:罗文华秦玉海日期:2005-02-06
摘要 :作为计算机犯罪证据的恶意代码的定位与识别,传统方法的工作量和工作难度是比较大的。
本文将描述一种针对网络攻击所使用的恶意代码进行快速定位的方法,该方法抽象出典型网络攻击代码的一般性特征,同时紧密结合网络程序的实际特点,从程序代码的各个组成部分出发进行讨论,进而保证网络攻击恶意代码定位的快速与准确,最后通过实例说明该方法的具体使用。
关键词 :恶意代码;头文件;主程序参数;程序主体;程序输出
一、引言
在当今社会,通过互联网络以计算机系统为作案对象并以计算机系统为作案工具的犯罪活动越来越多,因此存在于计算机及相关外围设备(包括网络介质)中的电子证据,已经成为新的诉讼证据之一。
电子证据的表现形式多种多样,包括文本、图片、音频及视频等,然而其中一种重要的表现形式则是犯罪嫌疑人下载、修改或自行编写的能够用于网络攻击的程序代码,我们称其为网络攻击恶意代码。
该形式的电子证据与其他形式电子证据在鉴定过程中的不同之处在于界定程序代码是否与案件相关或其是否属于网络攻击恶意代码并不像界定文本、图片、音频及视频那样直观,通常要对搜寻到的程序代码进行仔细阅读,透彻理解代码含义并结合具体案情才能做出正确的判断。
但是这样做,稍具计算机常识的人都会知道,其工作量和工作难度是比较大的。
因此,如何能够做到网络攻击代码定位的快速与准确,是目前计算机犯罪案件办案人员较为关注的课题。
本文将描述一种针对网络攻击所使用的恶意代码进行识别的具有普遍意义的方法,该方法抽象出典型网络攻击恶意代码的一般性特征,同时结合网络程序的实际特点,从头文件、主程序参数、程序主体、程序输出等四个方面讨论网络攻击恶意代码的快速定位。
二、快速定位网络攻击恶意代码的方法
网络攻击形式层出不穷,其所使用的代码也各有不同。
由于历史以及编程语言自身的原因,目前
大部分的网络攻击代码都是由C语言编写的。
对于一段完整的C语言程序代码来说,通常都要包括头文件、函数定义、全局变量定义、主程序实现以及函数具体实现等部分,而对于主程序及函数的具体实现,又常常需要有参数传递以及结果输出,因此本文从以下四个方面讨论定位网络攻击恶意代码的方法。
1.头文件
如果一段完整的程序代码能够用于网络攻击,那么代码中必然包括系统提供的功能函数的调用,而要想正确调用功能函数,必然需要包含相关的头文件。
因此通过头文件,我们可以判定程序代码是否属于网络程序代码,从而将不属于网络程序的代码排除在进一步审查的范围之外。
以下头文件代码在网络攻击恶意代码中最为常见:
#include<sys/socket.h>:提供socket函数及数据结构
#include<netdb.h>:提供设置及获取域名的函数
#include<netinet/in.h>:定义数据结构sockaddr_in
#include<arpa/inet.h>:提供IP地址转换函数
#include<sys/ioctl.h>:提供对I/O控制的函数
另外,如果具体案情涉及到口令破解、用户权限非法获取或修改、密码验证等问题时,则还可能要用到以下头文件代码:
#include<fcntl.h>:提供对文件控制的函数
#include<shadow.h>:提供对/etc/shadow文件访问的函数
#include<pwd.h>:提供对/etc/passwd文件访问的函数
#include<crypt.h>:提供使用DES加密算法的加密函数
以上头文件代码主要是在Linux或Unix操作系统环境下使用的,对于Windows操作系统头文件中则还会出现#include<winsock.h>,希望读者注意区别。
2.主程序参数
一段程序代码所要完成的功能通常能够通过主程序参数体现出来。
比如网络攻击中较为常见的端口攻击,在主程序参数中就常常包含被攻击者的IP地址以及端口号等信息。
下表列出的是典型的网络攻击类型及其所需的主程序参数。
需要说明的是,网络嗅探对于参数的要求不是必须的,但是用于犯罪目的的网络嗅探程序代码通常会控制嗅探器只抓取源地址或者目的地址是指定IP地址的报文;对于常见的木马攻击,因为其具体技术可分解为端口攻击、漏洞扫描等多种类型,因此在这里并不单独列出。
3.程序主体
一般完成较为复杂功能的程序中都包含有循环语句,网络攻击程序也不例外。
一些典型的网络攻击代码,其最核心的功能都是在循环语句中实现的。
端口扫描使用循环语句探测目标主机的哪些端口处于监听状态;拒绝服务攻击利用循环语句完成向受害计算机发送有害报文的目的。
网络攻击程序中的循环语句主要有以下两个特点:
(1)多为单循环语句
在网络攻击代码中实现核心功能的程序代码往往并非多重循环语句,而为单循环语句。
这样处理主要是因为对于大多数网络攻击来说,单循环语句已经能够完成攻击任务,多重循环语句多用来完成攻击前的准备工作,比如本文所附程序代码中出现的多重循环语句完成的就是根据输入的参数进行文件读写。
(2)循环次数很大
在网络攻击程序中,循环语句如果为for语句形式,则用于控制循环次数的循环变量其值一般都很大,或为单纯的while 1 语句形式。
另外,如果程序代码中有汇编语言或机器语言出现,则极有可能是计算机病毒或是缓冲区溢出攻击程序。
因为相当一部分的计算机病毒程序都是由汇编语言编写的;而在缓冲区溢出攻击中,为了利用目标程序的堆栈溢出漏洞获得shell,经常利用数组来存放shellcode,而shellcode实际上就是机器语言指令。
4.程序输出
犯罪嫌疑人在攻击防范严密的目标主机时,往往要获取目标主机的信息加以分析,以便达到犯罪目的。
因此,一些恶意代码所要输出的结果就是犯罪分子所要收集的信息。
网络嗅探输出的往往是出入目标主机的报文;漏洞扫描的输出结果是目标机所架设服务存在的缺陷以及弱口令。
另外,如果某些数据作为结果输出,其一般都能较为完全的反映恶意代码的工作目的,这将是非常有利的电子证据,所以对于程序代码输出结果的检查应该是整个定位与识别过程中的重点。
三、应用实例
附录(略)所示的是一段完整的能够实现网络攻击功能的程序代码,该程序的行数在200行左右,除主程序外还有banner、usage、smurf、ctrlc、in_chksum等五个
自定义的函数,并且还定义了数十个变量。
如果用传统的方法进行恶意代码的定位与识别,尤其是具体案情所涉及的程序代码很多的话,其难度和工作量是比较大的。
下面我们就来描述使用上文所述方法进行恶意代码定位的具体过程。
首先通过头文件,我们可以判定该段程序代码所实现的功能与网络相关;接着,在主程序参数部分,该程序所需的第一个参数需要gethostbyname系统函数进行转换,因此可以判定其第一个参数应为网络上某台主机的名字或IP地址;在main主函数中,有两处循环,第一个为双重循环,第二个则为单循环,根据本文二、3中所述原则我们着重检查单循环语句,在该循环语句中,完成核心功能的是函数smurf,转入到smurf函数,可以看出该函数完成的功能为用户自己构造IP与ICMP报头,并使用sendto语句向主程序参数所指定的主机发送。
通过以上分析,可以判定该函数所完成的网络攻击类型极有可能为DoS(拒绝服务攻击),如果具体案情确为DoS攻击,则将该段代码作为重点进行进一步审查。
可以看出,本文所述的方法并没有在细节问题上过多纠缠,比如主程序中对其自定义的函数均有涉及,然而由于在单循环语句中只出现了函数smurf,因此重点检查的范围便从五个函数缩小到了一个函数,这样便可以极大的降低工作量与工作难度,这也正是本文的初衷所在。
四、总结与展望
通过头文件可以判断某段程序代码是否属于网络应用程序;主程序参数、程序主体以及程序输出则可用来判定一些典型的网络攻击类型;而对于新型的或较为复杂的网络攻击形式则需综合使用本文提到的四个方面。
应该指出的是,我国对于电子证据的研究刚刚兴起,而对于作为电子证据的恶意代码的定位与识别则更是一个崭新的领域。
本文也是作者在这个崭新领域内所作的一次尝试,其所讨论的是网络攻击恶意代码的人工识别方法,但是可以预见的是电子证据自动化分析将会是未来发展的方向。