用于检测混淆恶意软件的系统和方法技术方案

技术编号:4023949 阅读:168 留言:0更新日期:2012-04-11 18:40
本发明专利技术披露了一种用于有效且可靠地分析、优化及检测混淆恶意软件的系统、方法和计算机程序产品。一个披露的用于恶意软件检测的示例性方法包括将可执行软件代码加载到计算机系统中并且将软件代码反汇编为汇编语言或其它低级程序设计语言。然后,该方法进行简化复杂的汇编指令并构造简化的软件代码的数据流模型。分析数据流模型的代码元的依赖关系和相互关系来识别其中的混淆软件代码。然后优化识别的混淆代码。基于优化的结果,对于软件代码是否为恶意的和/或是否有必要对优化的软件代码进行进一步反恶意软件分析做出判定。

【技术实现步骤摘要】

本专利技术总体上涉及恶意软件检测领域,更具体地,涉及用于分析、优化及检测混淆 恶意软件的系统和方法。
技术介绍
恶意的软件(即恶意软件,malware)的日益复杂和快速繁殖呈现出对世界范围的 个人计算机和企业计算机系统的越来越多的安全威胁。为了防止诸如病毒、蠕虫、木马等恶 意软件的传播,反恶意软件业已经开发了各种恶意软件检测技术。这些技术通常基于签名 匹配或启发式分析的原理,所述签名匹配即是将软件代码和已知的病毒代码词典相比较, 所述启发式分析即是根据恶意行为的模式仿真和分析软件。然而,这些技术在其应用于混 淆恶意软件时经常失效,在这些混淆恶意软件中,软件代码被修改(或混淆)而使得难以分 析。结果,由于反恶意软件程序无法检测混淆恶意软件,或花费大量的时间和系统资源来分 析混淆软件,所以检测过程变得极其低效。因此,需要有效且高效的机制用于分析混淆软件代码以及在其中检测恶意代码。
技术实现思路
这里披露了用于有效和可靠地分析、优化及检测混淆恶意软件的系统、方法和计 算机程序产品。在一个示例性实施例中,用于恶意软件检测的方法包括在计算机系统中装载可执 行软件代码。然后,将软件代码分为多个码组,每个码组被顺序(或并行)地装载到一个或 多个存储器缓冲区中。该方法进一步包括将存储器缓冲区中的软件代码反汇编为汇编语言 或本领域技术人员已知的其它低级程序设计语言。然后,将任何复杂的汇编语言指令都简 化为基本指令。该方法进而可以继续构建简化的软件代码的数据流模型以及分析数据流模 型的代码元间的依赖关系和相互关系,以在其中识别混淆软件代码。然后可以进一步优化 识别的混淆代码。最后,基于代码优化的结果,对于软件代码是否为恶意和/或是否有必要 使用例如签名匹配和/或试探分析法对软件代码进一步分析优化,做出判定。在另一个示例性实施例中,用于恶意软件检测的方法包括将至少一部分软件代码 加载到系统存储器中。软件代码继而被转化为低级程序设计语言。然后,简化软件代码。分 析简化的软件代码中的指令之间的依赖关系和相互关系,在其中识别混淆软件代码。然后 可以优化识别的混淆软件代码。优化包括去除死代码和优化分布式计算、逆向操作、常量计 算、转移指令、存储器调用、标志符操作、分支和循环指令。最后,使用签名匹配和/或启发 式分析恶意软件检测技术,重新编译和分析优化的软件代码,来确定软件代码是否是恶意 的。附图说明附图提供对本专利技术进一步的理解,并且并入此说明书中构成其中的一部分,这些5附图有助于理解本专利技术的原理。附图中图1示出了根据一个示例性实施例的计算机系统的示意图。图2示出了根据一个示例性实施例的混淆软件代码的示例。图3a示出了根据一个示例性实施例的代码优化过程的高级示意图。图3b示出了根据一个示例性实施例的代码优化过程的详细流程图。图4示出了根据一个示例性实施例的可以被优化的各种类型的混淆代码。图5示出了根据一个示例性实施例的混淆软件代码的数据流模型的示例。图6示出了根据一个示例性实施例的分布式计算操作的示例。图7示出了根据一个示例性实施例的变量的逆向计算的示例。图8示出了根据一个示例性实施例的常量计算的示例。图9示出了根据一个示例性实施例的转移指令的示例。图10示出了根据另一个示例性实施例的优化存储器调用指令的示例。图11示出了根据一个示例性实施例的优化标识符指令的示例。图12示出了根据一个示例性实施例的优化分支和循环指令的示例。图13示出了根据一个示例性实施例的混淆代码的优化结果。图14以图形形式示出了代码混淆的程度和一般的反恶意软件程序花费的时间之 间的关系。具体实施例方式本文在用于分析、优化及检测混淆的恶意的软件(也被称为恶意软件)的系统和 方法的上下文环境中描述了示例性实施例。本领域的普通技术人员能认识到下列描述仅是 说明例证性的而并非意图以任何方式限制。从本专利技术受益的技术人员将容易地想到其它的 实施例。现在将对在附图中示出的示例性实施例的实施方式详细地做出说明。贯穿附图和 下面的描述尽可能使用相同的附图标记指代相同或相似的项目。为了清楚起见,这里所描述的实施方式的常规特征没有全部被示出和描述。应该 认识到,在任一这类实际实施方式的开发中,为了实现开发者的特定目标,例如符合与应用 程序相关的约束,必须做出大量特定于实施方式的决定,而且这些特定目标从一种实施方 式到另一种实施方式、从一个开发者到另一个开发者将是不同的。此外,应该认识到,虽然 这样的开发工作会是复杂和耗费时间的,但对受益于本专利技术的本领域普通技术人员而言仍 然是常规的工程工作。本文披露的用于分析、优化及检测混淆恶意软件的算法的各种实施例,可以使用 硬件、软件、固件或其组合来实施,并且可以在各种计算机系统例如通用个人计算机(PC)、 膝上型计算机、应用服务器、网络防火墙、路由器或无线访问点中实施。此外,为了检测恶 意软件,披露的算法可以在包括多个并行操作的网络服务器计算机的分布式计算系统上实 施。此外,披露的算法可以在运行在用户电子设备的软件上实施,所述用户电子设备例如为 游戏控制台、移动电话、个人数字助理或其它会暴露于恶意软件的设备。图1示出了示例性计算机系统的示意图,该示例性计算机系统适合实施用于分 析、优化及检测混淆恶意软件的算法的各种实施例。一般说来,计算机系统100包括至少一个中央处理单元(CPU) 150、内部系统存储器110、各种网络通信接口 185以及各种内部或外 部用户分别的输入和输出设备190和195。计算机系统100的组件可以通过系统总线(未 示出)相互连接。计算机系统100也可以包括反恶意软件130,所述反恶意软件130实施此 处披露的用于分析、优化及检测混淆恶意软件的算法。本领域的普通技术人员应该认识到, 此处计算机系统100的描绘被简化了,并且系统100可以包括在其上进行操作所必需的其 它组件。在一个示例性实施例中,处理器150可以包括运算逻辑单元(ALU) 160、多个寄存 器170和控制单元180。ALU 160 —般用于执行诸如加法、减法和比较这类基本算术运算 以及依靠处理器150的特定体系结构的各种复杂运算。寄存器170是用于临时存储内部 处理器操作的值的存储器位置,所述内部处理器操作的值例如为正在执行的指令的地址以 及正在被CPU 150处理的数据。寄存器170—般用ΕΑΧ、^Χ、ECX、EDX、ESI和EDI来标 示。寄存器170通常是32位或64位长,但可以根据特定的计算机体系结构更短或更长, 如本领域技术人员已知的。控制单元180通过分析和执行软件指令来控制处理器150的 操作。CPU 150的指令集体系结构可以是通用RISC体系结构(例如,MIPS、PowerPC 、 Precision Architecture 或 SPARK)、嵌入式 RISC 体系结构(例如,ARM、Hitachi SH,MIPS 16和Thumb)、CISC体系结构(例如,Intel 80x86、IBM 360/370和VAX)或本领域普通技 术人员所已知的其它类型的处理器体系结构。在一个示例性实施例中,系统存储器110可以包括非易失性存储器(NVM) 120、 随机存取存储器(RAM) 140和各种其它类型的次级内部或外部存储设备,例如CD本文档来自技高网...

【技术保护点】
一种用于恶意软件检测的由计算机执行的方法,包括:将至少一部分软件代码加载到系统存储器中;将加载的软件代码转换为低级程序设计语言;将转换的代码中的复杂指令简化为基本指令;构造简化的软件代码的数据流模型;分析所述数据流模型中代码元的依赖关系和相互关系来识别其中的混淆软件代码;优化所述数据流模型中的一个或多个识别的混淆代码;和基于优化的结果确定软件代码是否为恶意的。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:马克西姆Y戈洛夫金
申请(专利权)人:卡巴斯基实验室封闭式股份公司
类型:发明
国别省市:RU

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1