恶意代码可视化检测技术研究综述

摘要

随着反检测技术的不断发展,产生了大量形态多样的恶意代码变种,传统检测技术已无法准确检测出该种未知恶意代码。由于数据可视化方法能将恶意代码的核心表现在图像特征中,因此可视化恶意代码检测方法受到越来越多关注。首先对传统恶意代码检测技术进行概括总结,然后介绍当前主流的恶意代码可视化方法,接着分析了基于恶意代码图像的机器学习与深度学习检测方法,具体涵盖了该方法所用的模型结构、创新点及评估结果,最后对当前检测技术所面临的问题进行总结,并阐述了未来可能的研究方向,旨在助力恶意代码检测技术的发展。

关键词

反检测技术; 恶意代码; 数据可视化; 机器学习; 深度学习

0 引言

在大数据时代,互联网的发展加快了人们生活节奏,极大程度提高了生活品质,但在很多方面都存在着无法避免的安全问题。随着计算机技术的不断发展,越来越多黑客通过网络攻击来获取利益,恶意代码即是其中的常见手段之一。恶意代码的泛滥给国家、社会及个人带来了巨大危害。2020年,国家互联网应急中心CNCERT捕获恶意程序样本数量超过4 200万个,日均传播次数达到482万余次,涉及恶意程序家族近34.8万个[1]。因此,如何快速、准确地检测出恶意代码,是目前网络安全领域的研究热点。

目前,国内外针对恶意代码检测技术进行全面综述的文献较少。如文献[2]从动态、静态和形式化3个角度分析各种检测方法的原理及优缺点,但文献发表时间较长,缺乏先进性与全面性;文献[3]是一篇全面描述在Windows平台上进行恶意软件检测的综述性文章,从特征提取、特征处理及分类器设计方面对智能检测进行归纳与总结,但对当前研究热点(基于可视化的恶意代码检测)的分析较少。本文对不同类型的恶意代码检测方法进行全面的调研分析,从恶意代码可视化方法、图像特征提取、分类器设计、当前检测所面临的问题4个方面系统地进行探究,总结了近年来针对恶意代码检测的新兴技术,提出未来可能的研究方向,旨在提高恶意代码检测的准确率与效率。

1 传统恶意代码检测方法

恶意代码也称为恶意软件,是指通过各种手段对用户、计算机或网络造成破坏的软件。通过人工分析恶意代码具体函数来检测恶意软件,不仅时间成本高,而且检测效率低、实用性差。依据是否运行程序可将传统恶意代码检测技术分为静态检测、动态检测与混合检测3类。

1.1 静态检测技术

静态检测技术不需要运行恶意软件,其研究重点在于如何准确、有效地提取静态特征。通常对恶意代码文件进行反编译、反汇编、文件结构分析以及控制流与数据流分析,提取程序中的指令、字节序列、文件头部信息等作为静态特征。该方法的优点在于能耗小、风险低、速度快,且对实时性要求低,对恶意样本覆盖率高,可快速捕获语法和语义信息进行全面分析,但缺点是受到经变形、多态、代码混淆技术处理后的恶意代码干扰,会出现误报和漏报的情况。本文根据静态特征种类对不同静态检测技术进行探究与分析。

恶意代码的字节序列特征通常使用N-Gram方法提取,原因是恶意代码由字符、文字和符号等构成,包含了语义和区块结构,所以统计语言模型N-Gram适用于恶意代码特征提取。N-Gram方法需要设置一个长度为n的滑动窗口,在原始字节序列上进行平滑操作,将长度为n的子序列频率作为特征,提取方式如1所示。Schultz等[4]是第一个使用N-Gram方法在基于Windows平台下提取特征的,其将特征输入到各个分类器,并通过五倍交叉验证实验验证了N-Gram方法优于单纯基于签名的方法。滑动窗口大小是N-Gram方法的重要参数,将直接影响到恶意代码检测准确率。如果n值过小,提取的特征缺乏代码的整体性,容易陷入局部最优;如果n值过大,会影响特征之间的相关性。Kolter等[5]设置不同n值的N-Gram法进行特征提取,旨在找出最优n值以提高恶意代码检测准确率。由于N-Gram特征提取存在方法单一、效率较低等问题,通常将N-Gram提取的字节序列特征与其他特征融合或采用不同n值特征进行训练[6-7]。

1  N-Gram提取字节序列特征

Fig. 1  N-Gram extracts byte sequence features

PE文件通常由DOS头、PE头与各类区块段组成,具体结构如2所示。由于PE头是特有的可执行文件头,包含程序文件的结构特征、动态链接库及导入导出表等信息,所以PE头信息也可作为恶意代码检测的静态特征。Li等[8]将恶意代码样本中的文件头、熵、DLL等信息作为特征,并通过实验证明了训练出的分类器对重要类别的自动规避攻击具有鲁棒性;Kumar等[9]组合了PE头的原始值与派生值,对比了集成特征集与原始特征集(头部信息、熵等特征)在机器学习分类器中的效果,通过实验证明了集成特征集训练出的分类器能以较高精度与较低成本分类出良性或恶性代码。

2  PE文件结构

Fig. 2  PE file structure

除上述两种静态特征外,还有动态链接库(DLL)、API序列、可阅读字符串和熵等信息可作为静态特征。但随着对抗反汇编、反调试、反虚拟机、加壳与脱壳等恶意代码反检测技术的发展,使得传统静态检测方法提取的特征不能准确代表恶意代码攻击信息。

1.2 动态检测技术

动态检测技术是指监控恶意代码在虚拟环境(模拟器)中运行的行为。为充分展现恶意代码的行为及隐藏功能,需在运行前赋予恶意代码足够的权限。要保障含有不同攻击内容的恶意代码能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宋罗世家技术屋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值