小型微型计算机系统2007年月第期JournalofChineseComputerSystemsVol.28No.2007一种基于语义的恶意软件判定器框架高鹰1,陈意云1,2,华保健11(中国科学技术大学计算机系,安徽合肥230027)2(中国科学院软件研究所计算机科学实验室,北京100080)E-mail:ygao4@mail.ustc.edu摘要:目前代码迷惑技术已经成为构造恶意软件变体的主要方式,大量出现的病毒变体使得传统基于程序文本特征的病毒排查工具的防护作用大大降低。本文提出了一种新的基于语义的恶意软件变体判定框架,为了确定一个程序是否是某种恶意软件的变体:首先基于符号执行收集程序语义状态,然后通过证明语义之间是否满足变体关系来确定该程序是否是恶意软件的变体。本框架能够识别经代码迷惑变换后得到的程序是属于变换前程序的变体,从而可以减少对病毒数据库的更新。最后,通过一个实现了该框架的原型系统来说明基于语义的恶意软件判定器框架的可行性。关键词:恶意软件判定;代码迷惑;程序分析;符号执行:TP301文献标识码:A:收稿日期:2007--基金项目:国家自然科学基金(60673126)资助作者简介:高鹰,男,1980年生,博士研究生,研究方向为程序设计语言理论和实现技术,主机代码安全;陈意云,男,1946年生,教授,博士生导师,研究方向为程序设计语言的理论和实现技术、形式描述技术、软件安全等;华保健,男,1979年生,博士研究生,研究方向为程序验证、类型系统、软件安全第25卷第11期小型微型计算机系统Vol.25No.112004年11月MINI-MICROSYSTEMSNov.2004ASemantics-BasedMalwareDetectorforObfuscatedMalwareGAOYing1,CHENYi-yun1,2,HUABao-jian11(DepartmentofComputerScienceandTechnology,UniversityofScienceandTechnologyofChina,Hefei230027,China)2(LaboratoryofComputerScience,Instituteofsoftware,ChineseAcademyofSciences,Beijing100080,China)Abstract:Nowadays,codeobfuscationplaysamoreandmoreroleinwritingvariationsformalware.Unfortunately,theobfuscatedvariationinvalidatesthetext-basedmalwaredetector.Thispaperproposesasemantics-basedframeworkofmalwaredetectionfordetectingwhetheraprogramisavariationofthemalware.Forthatpurpose,bothofsymbolicstatesarecollectedbysymbolicexecution,andthenprovethesemanticsissatisfiedwiththedefinitionofvariationrelationship.Thisframeworkcandetectwhetherthemalwareisthevariationofitsobfuscatedprogram,whichwilllargelyreducetheupdatingofvirusdefinitiondatabase.Finally,theprototypewhichimplementstheframeworkshowsthefeasibilityofthesemantics-basedframeworkofmalwaredetection.Keywords:MalwareDetection,CodeObfuscation,ProgramAnalysis,SymbolicExecution收稿日期:2005--基金项目:基金中文完整名称(基金项目号)资助作者简介:作者一,性别,某年生,籍贯(具体到市、县或地区),最高学位,目前学历,职称等,研究方向为;作者二,性别,某年生,籍贯(具体到市、县或地区),最高学位,目前学历,职称等,研究方向为;作者三,性别,某年生,籍贯(具体到市、县或地区),最高学位,目前学历,职称等,研究方向为.第25卷第11期小型微型计算机系统Vol.25No.112004年11月MINI-MICROSYSTEMSNov.20041问题的提出代码迷惑[1]是一种以增加理解难度为目的的程序变换技术。它除了被用于主机安全方面,也被广泛地用来构造恶意软件变体。为了使得恶意软件判定器失效,恶意软件作者需要构造新的恶意软件,其中重要的手段就是使用代码迷惑得到新变体。这就为病毒判定技术带来了新的挑战[2]。目前,商用病毒判定器主要是基于文本信息特征来定义病毒的特征码,如:特定指令序列的二进制值。病毒的判定过程通常是采用模式匹配的方式,来匹配程序中是否出现病毒数据库中定义了的文本信息特征码。基于文本信息来定义病毒的最大缺陷就在于:忽略了指令序列的语义。因此,很小的变异都需要构造新的特征码。如果出现大量病毒变体而无法及时构造特征码的话,传统的病毒判定器就将失去保护作用[2][3]。其实,代码迷惑是一种保...