2024年4月14日发(作者:)
2013年11月
第50卷 第6期
四川大学学报(自然科学版)
JournalofSichuanUniversity(NaturalScienceEdition)
Nov.2013
Vol.50 No.6
doi:103969/
j
.issn.0490‐6756.2013.06.012
基于中间代码的恶意软件检测技术研究
杨洪深
1
,赵宗渠
2,3
,王俊峰
2
(1.铜陵学院电气工程系,铜陵244001;
2.四川大学计算机学院,成都610065;
3.河南理工大学计算机学院,焦作454000)
摘 要:软件的中间代码是位于机器语言和高级程序语言之间程序语言,具有容易理解的语
义信息和控制结构信息,能真实地反映软件在执行过程中的实际情况.利用中间代码的语义信
息来研究恶意软件,可以发现恶意软件的具体行为信息或特点;通过多种方式对比中间代码形
成的控制流图整体或局部信息,实现恶意软件的检测.机器学习为软件安全性信息或规则挖掘
提供便利,成为一种先进的恶意软件检测方法.本文从中间代码的语义信息和控制结构两方面
对多种恶意软件检测技术进行归类与比较,同时对基于机器学习的中间代码处理与应用方法
进行了深入分析和探讨.
关键词:恶意软件检测;中间代码;软件特征;机器学习
中图分类号:
TP309.5
文献标识码:
A
文章编号:
0490‐6756(2013)06‐1216‐07
Malwaredetectiontechnologiesbasedon
softwareintermediatecode
YANGHon
g
‐
Shen
,ZHAOZon
g
‐
Qu
12,3
,WANGJun
‐
Fen
g
2
(1.DepartmentofElectricalEngineering,TonglingUniversity,Tongling244000,China;
2.CollegeofComputerScience,SichuanUniversity,Chengdu610065,China;
3.SchoolofComputerScienceandTechnology,HenanPolytechnicUniversity,Jiaozuo454000,China)
Abstract:Theintermediatecodeisaspecialstyleofsoftwarerepresentationwhichlocatesbetweenthe
machinelanguageandthehighlevelprogramminglanguage,anditcantakeadvantageofunderstandable
semanticinformationandactualexecutionconditionformalwareanalysis.Themaliciousbehaviorinfor‐
mationandcharacteristicscanbeeasilyfoundfromthesemanticinformationofintermediatecode,and
malwaredetectionorclassificationcanberealizedbyanalyzingthewholeorlocalinformationofcontrol
flowgraph.Machinelearningfacilitatessecurityinformationandrulesmininginalargenumberofcom‐
whichisdeemedasakindofadvancedmalwaredetectionmethodinrecent
p
lexsoftwarerepresentations,
malwareresearch.Thispapercategorizesandanalyzesthemalwareresearchtechnologiesaccordingto
thesemanticinformationandcontrolflowstructureofsoftwareintermediatecode,andmakesdeepanal‐
y
sistointermediatecodeprocessingandapplicationmethodsbasedonmachinelearning.
Keywords:malwaredetection,intermediatecode,softwarefeature,machinelearning
收稿日期:2013‐06‐26
基金项目:安徽省教育厅自然科学研究项目(KJ2012Z412);国家自然科学基金项目(11102124,61102076,60939002);教育部新世纪
优秀人才计划项目(NCET‐10‐0604);四川省科技支撑计划项目(2013SZ0002)
作者简介:杨洪深(1968-),男,安徽全椒人,讲师,硕士.研究方向为智能电网与信息安全.
通讯作者:王俊峰.E‐mail:wangjf@scu.edu.cn
第6期 杨洪深,等:基于中间代码的恶意软件检测技术研究
1217
1 引 言
恶意软件是指蓄意破坏计算机系统或威胁用
户信息安全的计算机程序,及时准确地检测恶意软
件是提高计算机系统安全性的必要手段之一.传统
的检测方法属于基于特征码的静态分析,需要在分
析阶段对代码进行充分研究获得病毒特征码,如字
节序列、特定的字符串等,并将其放入专用的数据
库(病毒库);在恶意软件检测阶段,通过扫描引擎
构特点,和软件的功能具有较强的关联性,它比指
令更加稳定,对软件的多态和变形的免疫能力更
强,因此也常常被用于恶意软件分析.
本文重点关注软件的中间代码,尤其是经过逆
向工程后的反汇编代码在恶意软件检测中的特点、
分类以及应用.讨论从中间代码中抽取和选择软件
特征,利用数据挖掘算法实现未知恶意软件检测的
方法;同时也讨论通过恶意软件之间的相似性分
析,进而研究恶意软件族群识别的相关方法.
查找软件的局部信息,并使用字符串匹配方法来对
比这些信息和特征码的相似度,根据对比结果来得
出检测结论.这类检测方法被广泛应用于现有的杀
毒软件和系统防护软件中,技术开发重点主要集中
在提高代码的扫描速度和特征码提取的准确度.
恶意软件的制造者往往会采用一些技术包括
多态和变形,例如通过插入冗余代码、代码位置调
换、寄存器的重新组合和同义指令代换等来改变自
身的代码
[1]
,使得分析者难以发现固定不变的特征
码.制造者还使用加壳技术对代码进行保护,增加
恶意软件分析和特征码的提取难度.这些技术会造
成基于特征码检测方法的失效,或降低该方法对恶
意软件的分析效率.
除了恶意软件编写技术的改进之外,伴随网络
信息交互的日益频繁,新型的恶意软件也不断涌
现,并且原有恶意软件的变种也层出不穷.调查显
示,2010年计算机病毒感染率为60%,其中3次以
上病毒感染率为30.9%
[2]
.互联网安全公司金山
网络最新数据显示,2011年金山毒霸累计捕获新
增病毒约1,230万个,增加数量仍然处于历史高
位
[3]
.这些新增的恶意软件也被成为未知恶意软件
(unknownmalware),事先往往没有得到及时的分
析,其特征码也未被记录在特征库中,因此采用特
征码检测无法得到满意的性能.
软件的中间代码(intermediatecode)是位于机
器语言和高级程序语言之间程序语言,一般是从软
件源程序编译过程中产生的,也可以通过软件逆向
工程从二进制文件中反汇编得到.中间代码类型有
很多种,汇编代码、
j
ava的字节码都属于中间代码.
与二进制代码相比,中间代码使用了助记符,具有
更容易理解的语义信息和控制结构信息;与高级程
序设计语言相比,中间代码更能真实的反映软件在
执行过程中的实际情况.同时,中间语言已经具备
了模块化结构,能够更清楚的表现出软件运行时的
控制流程.控制流程能够反映软件的设计思路和结
2 基于中间代码的恶意软件检测方法
恶意软件的种类有很多,本文主要针对以二进
制代码形式的恶意软件进行讨论.这类恶意软件数
量大,能够在用户主机中直接执行,对信息系统的
破坏力极大,从二进制代码中直接观察出它们的行
为与功能,而通过中间代码的形式可以提高对这类
恶意软件的认识和分析能力.
2.1 检测方法分类
现有恶意软件的检测研究主要内容是识别和
归类问题.恶意软件识别是对软件安全性进行定性
的研究,主要关注如何将恶意软件和正常文件区分
开来;恶意软件归类可以看作是恶意软件检测的深
化研究,主要关注恶意软件之间的相似性和差异,
例如恶意软件的族群研究就是关注同族恶意软件
之间相似性以及演化规律,以便能够更加准确地判
断和分析它们.
按照使用的信息类型不同,基于中间代码的恶
意软件检测方法可以分为两大类方法,如图1所
示.第一类是利用中间代码的语义信息来研究恶意
软件的行为特点.通过代码的约简或等价变换,寻
找软件中表现出恶意行为或特定行为的内容,进行
恶意软件识别或归类.第二类是通过软件的控制结
构信息检测恶意软件.由于中间代码具备丰富的控
制流程信息,可以通过不同粒度的代码抽象,形成
反映软件控制流程的控制流图,使用多种方式对比
控制流图的整体或局部信息,实现恶意软件的检测.
2.2 基于语义信息的检测方法
利用语义信息进行恶意软件检测的主要途径
有两种方法.第一种是首先获取软件整体信息表现
出的行为特点,然后通过模型转换建立这些行为特
点与软件安全性之间的关系,方法的重点是如何从
全体中间代码中提取有效的、少量的信息作为软件
特征,以及选择什么样的分析方式提高检测结果的
性能.第二种关注中间代码的局部信息,寻找某些


发布评论