searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

常用恶意软件混淆技术与检测方法简介

2024-12-06 09:30:51
15
0

随着互联网科技的高速发展,网络也开始慢慢渗透到了人类的日常生活,并变成了许多人生活中不可或缺的部分。不过,网络本身所具备的开放性也给使用者提供了极大的安全隐患。很多非授权的攻击者对网络进行入侵,从而实现不法获利的目的,这里面最普遍的表现形式之一就是恶意软件。
恶意软件,一般指的是在未明确提醒使用或没有应用授权的情形下,在用户电脑或其他终端上强制安装程序,执行非法负载,严重损害了用户合法权益的应用软件。它通常具备以下特征:自动运行,强制安装,难以卸载,非法获取用户个人信息和其它损害用户知情权和选择权的故意行为。
恶意软件有不同的类型,包括病毒、蠕虫、特洛伊木马、rootkit和勒索软件等。每一种恶意软件类型和家族的设计,以不同的方式影响原始的受害者机器,如破坏目标系统,允许远程代码执行,窃取机密数据等。
攻击者在生成恶意代码时经常会使用到一些混淆技术来逃避检测,这给恶意软件的检测带来了很大的挑战。目前的恶意软件经常使用到的混淆技术包括加密、寡态、多态、变形和打包技术,这使得恶意软件可以轻松绕过防火墙与杀毒软件等保护程序。

一、恶意软件混淆技术

加密(Encryption

加密是最简单的恶意代码加壳方式,使用加密技术将恶意代码块隐藏在其整个代码段中,通过隐藏恶意代码段特征来绕过检测,从而实现恶意软件的隐蔽性。尽管应用密码学的相关技术使得检测器无法直接接触到恶意软件,但解码器被作为新的特征用于加密的恶意软件检测。

寡态(Oligomorphic

在寡态方法中,加密和解密恶意软件的有效载荷时使用不同的密钥。寡态的核心在于解码器,根据解码器的不同可以产生不同的恶意代码变种。这种动态的特征改变使得经过寡态方法处理的恶意软件相比使用加密方法处理的恶意软件更加难以检测。但由于解码器库有限,产生的恶意软件变种也是有限的,依然具备一些可以被识别到的特征码。

多态(Polymorphic

在多态方法中,恶意软件同样使用不同的密钥加密和解密,与寡态方法中使用的密钥类似。但是,加密的有效负载部分包含解码器的几个副本,可以进行多轮层次加密。与寡态恶意软件相比,多态技术通过突变引擎产生不同的解码器之间的组合,理论上可以产生无数种恶意软件变种,使得恶意软件相比于寡态技术更难检测。多态技术的缺陷在于无法有效应对基于动态的恶意软件检测技术。

变形(Metamorphic

变形技术又称为体多态Body-polymorphic)。在变形方法中,恶意软件不通过加密技术来隐藏其恶意特征,而使用动态代码来实现代码的混淆。当恶意进程执行时,操作码在每次迭代都会被更改,导致当恶意代码每次被加载到内存中被执行时都是不同的版本,从而逃避基于特征码的检测。虽然现有研究表明,对基于变形技术的恶意代码检测是NP完全问题,但是这也意味着生成并调试这样的恶意代码需要付出更大的代价,因此该技术并未被广泛应用于恶意代码的加壳中。

打包(Packaging

打包技术通过压缩恶意软件来绕过检测,或者通过加密来隐藏实际的代码。要想实现对打包恶意软件的分析,需要在被分析之前解包。恶意软件打包的实现可以分为四个部分,包括压缩机、加密器、保护器和捆绑器。

二、恶意软件检测技术

目前,机器学习与深度学习技术已经被广泛应用于安卓恶意软件检测任务中,尽管现有分析方法已经较为丰富,但仍然存在着一些局限。

静态检测技术在分析应用程序方面具备高代码覆盖率的优点。这种方法理论上能够通过构建的中间代码抽象模型,遍历所有可能的路径,且具有快速执行的特性。但是目前的静态检测研究往往集中于单一特征的提取或是依赖单一网络模型进行分析,这导致了两个主要的局限性:单一特征所能提供的信息量有限,且单一网络模型在学习特征间复杂关系的能力上不足,这些因素共同作用限制了模型的精度。此外,相比于传统的静态分析方法,可视化分析方法使用卷积神经网络实现特征的自动提取,其有效性已经在大量的研究中得到了证明。然而,可视化分析方法在实现上也存在一些局限性,主要体现在原始样本大小不一与固定的网络输入图像尺寸的矛盾,但是如何在有限的数据量下保留最具代表性的代码段的研究难以开展。因此可视化的方法在数据预处理阶段可能引起原始数据的信息损失,进而造成模型性能的损失。

动态检测技术依赖于特定的执行环境,通过在应用程序运行时监控其与硬件交互、内存、系统调用序列、网络流量、功率消耗等行为,以全面分析软件的潜在恶意活动。虽然此方法能提供综合性视角以评价软件行为,但与静态检测相比,它要求更多的资源并且不能覆盖未执行代码路径中的潜在恶意行为。面对广泛使用混淆技术的恶意样本,动态分析不仅需较高配置的硬件资源,还需消耗更多时间资源。随着应用程序数量的持续增长,动态分析方法因对执行环境的依赖而受限。恶意软件检测的主要任务是精确且迅速地识别恶意软件,而非追溯恶意行为细节,因此动态分析方法并不完全适合快速识别恶意软件的需求。

动静态混合的检测技术虽然可以结合静态分析代码覆盖率高以及动态分析对恶意行为把控精准的优点,得到更加可靠的分析结果,但是其时间开销与资源需求往往更大,难以适应数量呈现井喷式增长的恶意软件。

此外,近年来随着深度学习技术的不断发展与优化,被更多地应用于该领域的研究中。深度学习方法可以自动从原始数据端到端学习到更丰富、更有效的特征表示,并实现多源信息的融合,具有较强的适应性与泛化能力。

因此,整体而言,在现阶段,面对恶意软件的功能复杂化、种类多元化、数量指数化的特点,基于深度学习的静态分析方法更能达到快速响应与精准识别的检测需求。同时为了克服单一特征信息有限、单一模型学习能力不足的问题,搭建多网络实现应用程序混合特征的提取可以进一步增强模型的表达能力与鲁棒性。

0条评论
0 / 1000
c****7
2文章数
0粉丝数
c****7
2 文章 | 0 粉丝
c****7
2文章数
0粉丝数
c****7
2 文章 | 0 粉丝
原创

常用恶意软件混淆技术与检测方法简介

2024-12-06 09:30:51
15
0

随着互联网科技的高速发展,网络也开始慢慢渗透到了人类的日常生活,并变成了许多人生活中不可或缺的部分。不过,网络本身所具备的开放性也给使用者提供了极大的安全隐患。很多非授权的攻击者对网络进行入侵,从而实现不法获利的目的,这里面最普遍的表现形式之一就是恶意软件。
恶意软件,一般指的是在未明确提醒使用或没有应用授权的情形下,在用户电脑或其他终端上强制安装程序,执行非法负载,严重损害了用户合法权益的应用软件。它通常具备以下特征:自动运行,强制安装,难以卸载,非法获取用户个人信息和其它损害用户知情权和选择权的故意行为。
恶意软件有不同的类型,包括病毒、蠕虫、特洛伊木马、rootkit和勒索软件等。每一种恶意软件类型和家族的设计,以不同的方式影响原始的受害者机器,如破坏目标系统,允许远程代码执行,窃取机密数据等。
攻击者在生成恶意代码时经常会使用到一些混淆技术来逃避检测,这给恶意软件的检测带来了很大的挑战。目前的恶意软件经常使用到的混淆技术包括加密、寡态、多态、变形和打包技术,这使得恶意软件可以轻松绕过防火墙与杀毒软件等保护程序。

一、恶意软件混淆技术

加密(Encryption

加密是最简单的恶意代码加壳方式,使用加密技术将恶意代码块隐藏在其整个代码段中,通过隐藏恶意代码段特征来绕过检测,从而实现恶意软件的隐蔽性。尽管应用密码学的相关技术使得检测器无法直接接触到恶意软件,但解码器被作为新的特征用于加密的恶意软件检测。

寡态(Oligomorphic

在寡态方法中,加密和解密恶意软件的有效载荷时使用不同的密钥。寡态的核心在于解码器,根据解码器的不同可以产生不同的恶意代码变种。这种动态的特征改变使得经过寡态方法处理的恶意软件相比使用加密方法处理的恶意软件更加难以检测。但由于解码器库有限,产生的恶意软件变种也是有限的,依然具备一些可以被识别到的特征码。

多态(Polymorphic

在多态方法中,恶意软件同样使用不同的密钥加密和解密,与寡态方法中使用的密钥类似。但是,加密的有效负载部分包含解码器的几个副本,可以进行多轮层次加密。与寡态恶意软件相比,多态技术通过突变引擎产生不同的解码器之间的组合,理论上可以产生无数种恶意软件变种,使得恶意软件相比于寡态技术更难检测。多态技术的缺陷在于无法有效应对基于动态的恶意软件检测技术。

变形(Metamorphic

变形技术又称为体多态Body-polymorphic)。在变形方法中,恶意软件不通过加密技术来隐藏其恶意特征,而使用动态代码来实现代码的混淆。当恶意进程执行时,操作码在每次迭代都会被更改,导致当恶意代码每次被加载到内存中被执行时都是不同的版本,从而逃避基于特征码的检测。虽然现有研究表明,对基于变形技术的恶意代码检测是NP完全问题,但是这也意味着生成并调试这样的恶意代码需要付出更大的代价,因此该技术并未被广泛应用于恶意代码的加壳中。

打包(Packaging

打包技术通过压缩恶意软件来绕过检测,或者通过加密来隐藏实际的代码。要想实现对打包恶意软件的分析,需要在被分析之前解包。恶意软件打包的实现可以分为四个部分,包括压缩机、加密器、保护器和捆绑器。

二、恶意软件检测技术

目前,机器学习与深度学习技术已经被广泛应用于安卓恶意软件检测任务中,尽管现有分析方法已经较为丰富,但仍然存在着一些局限。

静态检测技术在分析应用程序方面具备高代码覆盖率的优点。这种方法理论上能够通过构建的中间代码抽象模型,遍历所有可能的路径,且具有快速执行的特性。但是目前的静态检测研究往往集中于单一特征的提取或是依赖单一网络模型进行分析,这导致了两个主要的局限性:单一特征所能提供的信息量有限,且单一网络模型在学习特征间复杂关系的能力上不足,这些因素共同作用限制了模型的精度。此外,相比于传统的静态分析方法,可视化分析方法使用卷积神经网络实现特征的自动提取,其有效性已经在大量的研究中得到了证明。然而,可视化分析方法在实现上也存在一些局限性,主要体现在原始样本大小不一与固定的网络输入图像尺寸的矛盾,但是如何在有限的数据量下保留最具代表性的代码段的研究难以开展。因此可视化的方法在数据预处理阶段可能引起原始数据的信息损失,进而造成模型性能的损失。

动态检测技术依赖于特定的执行环境,通过在应用程序运行时监控其与硬件交互、内存、系统调用序列、网络流量、功率消耗等行为,以全面分析软件的潜在恶意活动。虽然此方法能提供综合性视角以评价软件行为,但与静态检测相比,它要求更多的资源并且不能覆盖未执行代码路径中的潜在恶意行为。面对广泛使用混淆技术的恶意样本,动态分析不仅需较高配置的硬件资源,还需消耗更多时间资源。随着应用程序数量的持续增长,动态分析方法因对执行环境的依赖而受限。恶意软件检测的主要任务是精确且迅速地识别恶意软件,而非追溯恶意行为细节,因此动态分析方法并不完全适合快速识别恶意软件的需求。

动静态混合的检测技术虽然可以结合静态分析代码覆盖率高以及动态分析对恶意行为把控精准的优点,得到更加可靠的分析结果,但是其时间开销与资源需求往往更大,难以适应数量呈现井喷式增长的恶意软件。

此外,近年来随着深度学习技术的不断发展与优化,被更多地应用于该领域的研究中。深度学习方法可以自动从原始数据端到端学习到更丰富、更有效的特征表示,并实现多源信息的融合,具有较强的适应性与泛化能力。

因此,整体而言,在现阶段,面对恶意软件的功能复杂化、种类多元化、数量指数化的特点,基于深度学习的静态分析方法更能达到快速响应与精准识别的检测需求。同时为了克服单一特征信息有限、单一模型学习能力不足的问题,搭建多网络实现应用程序混合特征的提取可以进一步增强模型的表达能力与鲁棒性。

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0