CN108319853B - 病毒特征码处理方法及装置 - Google Patents

病毒特征码处理方法及装置 Download PDF

Info

Publication number
CN108319853B
CN108319853B CN201710039943.9A CN201710039943A CN108319853B CN 108319853 B CN108319853 B CN 108319853B CN 201710039943 A CN201710039943 A CN 201710039943A CN 108319853 B CN108319853 B CN 108319853B
Authority
CN
China
Prior art keywords
code
virus
malicious
sequence
characteristic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710039943.9A
Other languages
English (en)
Other versions
CN108319853A (zh
Inventor
罗元海
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201710039943.9A priority Critical patent/CN108319853B/zh
Publication of CN108319853A publication Critical patent/CN108319853A/zh
Application granted granted Critical
Publication of CN108319853B publication Critical patent/CN108319853B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/564Static detection by virus signature recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)

Abstract

本发明公开了一种病毒特征码处理方法及装置;方法包括:对携带有病毒的恶意样本进行反汇编处理,对得到的反汇编代码进行分割得到所述恶意样本的多个代码块;计算各所述恶意样本中代码块的特征,基于所述恶意样本中代码块的顺序,构建由所述恶意样本中代码块的特征形成的特征序列;比较所述恶意样本的特征序列,确定至少两个所述恶意样本的特征序列的公共子序列;根据所述公共子序列判定所对应的代码为病毒的代码,将所述公共子序列中的特征连接,得到所述病毒的特征码。实施本发明,能够自动化地精确提取病毒的特征码,从而提升病毒检测的精度和实时性。

Description

病毒特征码处理方法及装置
技术领域
本发明涉及安全技术,尤其涉及一种病毒特征码处理方法及装置。
背景技术
计算机病毒也称为病毒,是编制者在设备(智能手机、平板电脑、笔记本电脑、台式机电脑和服务器等各种计算设备)中植入的破坏设备的功能或者数据等恶意目的代码。
病毒在设备中通常作为(如加壳)独立的应用程序欺骗用户运行以实现恶意目的,或者嵌入到二次封装的常规应用程序中,在常规应用程序的运行过程中实现恶意目的。
相关技术主要依靠人工提取病毒的特征码,扫描设备中待检测样本的特征并与病毒特征码比对,利用识别规则来对比对结果处理,判断待检测样本中是否有恶意代码。
相关技术检测病毒的方案至少存在以下问题:
1)需要大量经验丰富的人员分析恶意样本以提取特征码,才能满足根据不断出现的病毒而实时更新特征码的需求,效率较低。
2)随着病毒的增长速度不断增大,人工方式难以满足恶意代码检测的实时性需求;并且人工方式分析、提取特征码的效率比较低,特征码的生成周期较长,导致恶意代码的检测具有一定的滞后性。
综上所述,对于自动化地精确提取病毒的特征码,从而能够提升病毒检测的精度和实时性,相关技术尚无有效解决方案。
发明内容
本发明实施例提供一种病毒特征码处理方法及装置,能够以自动化地精确提取病毒的特征码。
本发明实施例的技术方案是这样实现的:
第一方面,本发明实施例提供一种病毒特征码处理方法,包括:
对携带有病毒的恶意样本进行反汇编处理,对得到的反汇编代码进行分割,得到所述恶意样本的多个代码块;
计算各所述恶意样本中代码块的特征,基于所述恶意样本中代码块的顺序,构建由所述恶意样本中代码块的特征形成的特征序列;
比较各所述恶意样本的特征序列,确定至少两个所述恶意样本的特征序列的公共子序列;
根据所述公共子序列判定所对应的代码块为病毒的代码,将所述公共子序列中的特征合并得到所述病毒的特征码。
第二方面,本发明实施例提供一种病毒特征码处理装置,包括:
汇编分割单元,用于对携带有病毒的恶意样本进行反汇编处理,对得到的反汇编代码进行分割得到所述恶意样本的多个代码块;
特征序列单元,用于计算各所述恶意样本中代码块的特征,基于所述恶意样本中代码块的顺序,构建由所述恶意样本中代码块的特征形成的特征序列;
序列比较单元,用于比较各所述恶意样本的特征序列,确定至少两个所述恶意样本的特征序列的公共子序列;
特征连接单元,用于根据所述公共子序列判定所对应的代码为病毒的代码,将所述公共子序列中的特征连接,得到所述病毒的特征码。
第三方面,本发明实施例提供一种病毒特征码处理装置,包括处理器和存储器,存储器中存储有可执行指令,用于引起处理器执行本发明实施例提供的病毒特征码处理方法。
第四方面,本发明实施例提供一种计算机存储介质,存储有可执行指令,用于执行本发明实施例提供的病毒特征码处理方法。
本发明实施例具有以下有益效果:
1)以机器处理的方式提取病毒的特征码,能够依赖设备的计算能力快速完成病毒特征码的提取,保证了特征码提取的实时性需求;
2)通过对恶意样本的特征序列计算公共子序列的方式在恶意样本中定位病毒代码时,进而基于公共子序列构建病毒的特征码,避免了提取特征码时人工介入导致的主观差异,保证提取特征码的精度。
附图说明
图1是本发明实施例提供的提取病毒的特征码、并基于病毒的特征码检测病毒的一个可选的流程示意图;
图2是本发明实施例提供的病毒特征码处理方法的一个可选的处理示意图;
图3是本发明实施例提供的病毒特征码处理方法的一个可选的流程示意图;
图4是本发明实施例提供的病毒特征码处理装置部署在网络侧服务器的一个可选的示意图;
图5是本发明实施例提供的病毒特征码处理装置的一个可选的软硬件结构示意图;
图6是本发明实施例提供的特征处理方法的另一可选的流程示意图;
图7是本发明实施例提供的对可执行文件进行反汇编处理的一个可选的示意图;
图8是本发明实施例中对可执行文件的代码段分割的一个可选的处理示意图;
图9是本发明实施例提供的对恶意样本的可执行文件进行反汇编并以函数为粒度进行分割并形成特征序列的一个可选的示意图;
图10是本发明实施例提供的将图9示出的函数序列中滤除所特有的特征后特征序列的示意图;
图11是本发明实施例提供的在图10示出的特征序列求取最长公共子序列的示意图;
图12是本发明实施例提供的不同的最长公共子序列形成特征码的一个可选的示意图;
图13是发明实施例提供的病毒特征码处理装置的一个可选的功能结构示意图。
具体实施方式
以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所提供的实施例仅仅用以解释本发明,并不用于限定本发明。另外,以下所提供的实施例是用于实施本发明的部分实施例,而非提供实施本发明的全部实施例,在本领域技术人员不付出创造性劳动的前提下,对以下实施例的技术方案进行重组所得的实施例、以及基于对发明所实施的其他实施例均属于本发明的保护范围。
需要说明的是,在本发明实施例中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的方法或者装置不仅包括所明确记载的要素,而且还包括没有明确列出的其他要素,或者是还包括为实施方法或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的方法或者装置中还存在另外的相关要素(例如方法中的步骤或者装置中的单元)。
例如,本发明实施例提供的病毒特征码处理方法包含了一系列的步骤,但是本发明实施例提供的病毒特征码处理方法不限于所记载的步骤,同样地,本发明实施例提供的病毒特征码处理装置包括了一系列单元,但是本发明实施例提供的病毒特征码处理装置不限于包括所明确记载的单元,还可以包括为获取相关信息、或基于信息进行处理时所需要设置的单元。
对本发明进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
1)病毒,也称为计算机病毒或恶意代码,是编制者在设备(如智能手机、平板电脑、笔记本电脑、台式机电脑等各种计算设备)植入的破坏设备的功能、破坏数据或窃取数据等恶意目的二进制代码。
2)样本,各种类型的应用程序、数据和应用程序的插件的统称,如微软Window系统的应用程序、Unix系统应用程序、iOS系统应用程序和安卓(Andriod)系统应用程序等。
3)恶意样本,携带有病毒的样本,如携带病毒的应用程序、数据和插件等。
4)正常样本,不含有病毒的样本。
5)代码,是指高级语言经过编译后生成的可执行的二进制代码。
6)代码块,样本的代码基于不同方式分割的结果,例如,包括:
函数,即子程序,在可以实现固定运算功能的同时,还带有一个入口和一个出口,所谓的入口,就是函数所带的各个参数,通过这个入口把函数的参数值代入子程序处理;出口是指函数的函数值,在求得函数值之后,由出口带回给函数的调用者。
就函数来说可以继续划分为:
代码片段,每个代码片段中包括预定数量的代码;
基本块,对函数从逻辑功能层面的分割,每个基本块包括函数中顺序执行的语句序列,其中只有一个入口和一个出口,入口就是其中的第一个代码,出口就是其中的最后一个语句。
7)特征,也称为指纹,是指通过分析代码来生成的一种数字化的特征(签名),以任意两个代码块为例,任意两个代码块在语义(即在代码执行的时候所表现出的逻辑行为)上的相似程度,与这两个代码块的特征的相似程度正相关(如线性正相关);特别地,相同语义(即在代码执行的时候所表现出的逻辑行为)的两段代码的指纹一致。
8)特征码,病毒所包括的特征,以及特征之间的逻辑连接关系。
9)最长公共子序列:一个序列S,如果分别是两个或多个已知序列的子序列,且是所有符合此条件序列中最长的子序列,则S称为已知序列的最长公共子序列。
10)操作码,与操作数构成计算机指令,操作码说明要执行哪种操作,如传送、运算、移位、跳转等操作的规则,它是指令中不可缺少的组成部分;操作数是指令执行的参与者,即各种操作的对象;有些指令不需要操作数,通常的指令都是有一个或两个操作数,也有个别指令由3个甚至4个操作数。
相关技术主要依靠人工方式从已知的携带病毒的恶意样本进行分析,提取出病毒的特征码,因此需要大量经验丰富的人员才能满足实际应用中从海量的恶意样本提取病毒的特征码的实时性需求,并且由于人工分析提取病毒的特征码的技术复杂,识别特征码的效率比较低,特征码的生成周期较长,导致对恶意代码的检测具有一定的滞后性。
鉴于上述问题,本发明实施例提出一种病毒特征码处理方法,能够自动、精确提取病毒的特征码,从而基于提取的特征码能够判断待检测样本中是否携带病毒,不需要恶意代码分析人员的人工介入,极大的降低了病毒检测的成本,提高了效率,缩短了恶意代码出现到被检测、以及处理的时间。
参见图1,图1是本发明实施例提供的提取病毒的特征码、并基于病毒的特征码检测病毒的一个可选的流程示意图,采用自动化的特征码提取方式,从已知存在病毒的恶意样本中实时提取病毒特征码,在特征库中存储实时提取的特征码,基于病毒的特征码扫描待检测样本,即将病毒的特征码与待检测样本的特征序列进行比较,基于比对结果判断待检测样本是正常样本还是恶意样本。
参见图2以及图3,图2是本发明实施例提供的病毒特征码处理方法的一个可选的处理示意图,图3是本发明实施例提供的病毒特征码处理方法的一个可选的流程示意图,就从包括病毒的恶意样本中提取病毒的特征码来说,对携带有病毒的恶意样本进行反汇编处理,对得到的反汇编代码进行分割得到恶意样本的多个代码块(步骤101)。
计算各恶意样本中代码块的特征,基于恶意样本中代码块的执行的顺序,构建由恶意样本中代码块的特征形成的特征序列(步骤102)。比较恶意样本的特征序列,确定至少两个恶意样本的特征序列的公共子序列,并确定公共子序列对应的代码为病毒的代码(步骤103)。将公共子序列中的特征连接得到病毒的特征序列(步骤104)。
上述步骤可以通过机器处理的方式而自动化实现,依赖于设备(如终端或服务器)的计算能力可以高效完成,避免了相关技术依赖人工参数提取病毒特征码导致的效率低、以及病毒特征滞后的问题。
本发明实施例还提供用以执行上述病毒特征码处理方法的病毒特征码处理装置,病毒特征码处理装置中的硬件可以完全部署在用户侧终端或网络侧服务器。
例如在终端提供为杀毒应用,终端定时从恶意样本库拉取恶意样本并提取病毒的特征码并存储,基于病毒的特征码对终端本地已经安装的应用和正在安装的应用(待检测样本)进行安全扫描,根据终端本地的安全策略处理,例如包括:1)对检测到携带有病毒的待安装应用屏蔽安装;2)对检测到携带有病毒的已安装应用进行隔离;3)提示用户并根据用户选择的处理方式进行处理。
再例如,参见图4,图4是本发明实施例提供的病毒特征码处理装置部署在网络侧服务器的一个可选的示意图,服务器提供云杀毒服务,服务器定时从恶意样本库拉取恶意样本并提取病毒的特征码,在病毒特征库存储从恶意样本提取的特征码,基于病毒的特征码扫描终端的杀毒应用提交的应用的特征序列,向终端的杀毒应用下发扫描结果,根据终端本地的安全策略处理,例如,包括:1)对检测到携带有病毒的待安装应用屏蔽安装;2)对检测到携带有病毒的已安装应用进行隔离;3)提示用户并根据用户选择的处理方式进行处理。
参见图5示出的病毒特征码处理装置10的一个可选的软硬件结构示意图,病毒特征码处理装置10包括硬件层、中间层、操作系统层和软件层。然而,本领域的技术人员应当理解,图5示出的病毒特征码处理装置10的结构仅为示例,并不构成对病毒特征码处理装置10结构的限定。例如,病毒特征码处理装置10可以根据实施需要设置较图5更多的组件,或者根据实施需要省略设置部分组件。
病毒特征码处理装置10的硬件层包括处理器11、输入/输出接口13,存储介质14以及网络接口12,组件可以经系统总线连接通信。
处理器11可以采用中央处理器(CPU)、微处理器(MCU,Microcontroller Unit)、专用集成电路(ASIC,Application Specific Integrated Circuit)或逻辑可编程门阵列(FPGA,Field-Programmable Gate Array)实现。
输入/输出接口13可以采用如显示屏、触摸屏、扬声器等输入/输出器件实现。
存储介质14可以采用闪存、硬盘、光盘等非易失性存储介质实现,也可以采用双倍率(DDR,Double Data Rate)动态缓存等易失性存储介质实现,其中存储有用以执行上述病毒特征码处理方法的可执行指令。
示例性地,存储介质14可以与病毒特征码处理装置10的其他组件在同一位置(如用户侧终端)设置,也可以相对于病毒特征码处理装置10中的其他组件分布设置。网络接口12向处理器11提供外部数据如异地设置的存储介质14的访问能力,示例性地,网络接口12可以基于近场通信(NFC,Near Field Communication)技术、蓝牙(Bluetooth)技术、紫蜂(ZigBee)技术进行的近距离通信,另外,还可以实现如基于码分多址(CDMA,Code DivisionMultiple Access)、宽带码分多址(WCDMA,Wideband Code Division Multiple Access)等通信制式及其演进制式的蜂窝通信,又例如,基于无线相容性认证(WiFi)方式经由接入无线接入点(AP,Access Point)接入网络侧的通信。
驱动层包括用于供操作系统16识别硬件层并与硬件层各组件通信的中间件15,例如可以为针对硬件层的各组件的驱动程序的集合。
操作系统16用于提供面向用户的图形界面,示例性地,包括插件图标、桌面背景和应用图标,操作系统16支持用户经由图形界面对设备的控制本发明实施例对上述设备的软件环境如操作系统类型、版本不做限定,例如可以是Linux操作系统、UNIX操作系统或其他操作系统。
应用层包括用户侧终端运行的杀毒应用/云端杀毒服务17,或者可以与终端中的安全软件耦合的模块(如功能插件),其中设置有可执行指令,用以执行上述的病毒特征码处理方法。
下面,结合图6对图2示出的特征处理方法进一步说明,需要指出地,本领域技术人员基于下述基于图6的记载可以轻易地对特征码处理装置部署在用户终端侧的场景中实施。
参见图6,图6是本发明实施例提供的特征处理方法的另一可选的流程示意图,包括如下步骤:
步骤201,服务器从恶意样本库读取恶意样本。
恶意样本库能够与已有的恶意样本的数据库对接,例如,与不同家族的病毒的数据库对接,包括:
1)系统病毒数据库,一般地,在恶意样本库中系统病毒的根据系统的不同而有区别,前缀为:Win32、PE、Win95、W32和W95等。
2)蠕虫病毒数据库,蠕虫病毒的前缀是:Worm。这种病毒的共有特性是通过网络或者系统漏洞进行传播,很大部分的蠕虫病毒都有向外发送带毒邮件,阻塞网络的特性。
3)脚本病毒数据库,脚本病毒的前缀是:Script。脚本病毒的共有特性是使用脚本语言编写,通过网页进行的传播的病毒。
4)后门病毒数据库,后门病毒的前缀是:Backdoor,该类病毒的共有特性是通过网络传播,给系统开后门。
5)破坏性程序病毒数据库,破坏性程序病毒的前缀是:Harm。这类病毒的共有特性是本身具有好看的图标来使用户点击,当用户点击这类病毒时,病毒便会直接对用户设备产生破坏。
例如,恶意样本库根据扫描病毒的实时性要求,按照周/天/小时的频率从不同家族的病毒数据库拉取携带病毒的恶意样本,从不同家族的病毒数据库统一按照固定的频率拉取,或者,根据每个家族病毒数据库的更新频率单独拉取。
步骤202,服务器对携带有病毒的恶意样本进行反汇编处理得到反汇编代码。
就对恶意样本进行反汇编处理来说,从恶意样本中提取出可执行文件,根据运行的操作系统的不同可执行文件的格式也存在区别,Windows操作系统中执行文件是exe格式、Linux操作系统中可执行文件是elf格式、Android操作系统中可执行文件是dex格式、elf格式等等,然后对可执行文件进行反汇编处理,参见图7,图7是本发明实施例提供的对可执行文件进行反汇编处理的一个可选的示意图,反汇编处理的结果包括:
1)未初始化数据(BSS,Block Start by Symbol)段:用来存放程序中未初始化全局变量的一块内存区域;
2)数据段:用来存放程序中初始化的全局变量的一块内存区域。包括可变的数据段和不可变的数据段。
3)代码段(code segment/text segment):通常用来存放执行代码的一块内存区域。
4)堆:用于存放进程运行中被动态分配的内存段,大小并且不固定,可动态扩展。当进程调用malloc等分配内存时,新分配的内存被动态的添加到堆上(堆被扩大),当利用free等函数释放内存时,被释放的内存从堆中剔除。
5)栈:栈在进程运行时产生,一个进程有一个进程栈。栈用来存储程序临时存放的局部变量,即函数内定义的变量,不包括静态(static)类型的变量。
步骤203,服务器对反汇编代码进行分割,得到恶意样本的多个代码块。
反编译处理完成后,通过遍历可执行文件的代码段将代码段分割为代码块,参见图8,图8是本发明实施例中对可执行文件的代码段分割为代码块的一个可选的处理示意图,在图8中以对代码段进行分割为例,代码块为对代码段以函数、代码片段或基本块为粒度进行分割得到,采用如下分割方式:
方式1)代码块以函数为粒度分割得到
遍历恶意样本的代码段,以函数为例粒度对反汇编代码进行分割得到构成代码段的多个函数(此时函数与代码块等同);当然,也可以以两个函数或多个函数为粒度对代码段进行分割形成构成代码段的多个代码块(此时每个代码块包括两个或多个函数)。
函数是组成代码段的基本逻辑单位,每个函数包含了一个完整的处理逻辑,把代码段按照函数粒度来分割,一方面能够容易地实现对代码段的分割,另一方面可以完整保留代码段内部的逻辑。
方式2)代码块以预定数量的代码为粒度分割得到
遍历恶意样本的代码段,以函数为例粒度对反汇编代码进行分割得到构成代码段的多个函数,继续对各函数以预定数量的代码为粒度分割,得到恶意样本的多个代码片段。
方式3)代码块以基本块为粒度分割得到
遍历恶意样本的代码段,以函数为例粒度对反汇编代码进行分割得到构成代码段的多个函数,继续对各函数以基本块为粒度分割,对各函数以基本块为粒度进行分割,得到恶意样本的多个基本块。
方式4)代码块同时以函数和基本块(或代码片段)为粒度分割得到
作为一个示例,以函数为粒度分割代码段并遍历代码段中的函数时,存在这样的情况,不同函数中的代码(代码语句)的数量存在差异,例如100行代码的函数与10行代码的函数在复杂度上存在显著的差异,对于复杂度较高的函数在后续步骤204中所计算的特征也相对更为复杂。
针对这种情况,如图8所示,当函数中的代码的数量较多(超出预定值)时,可以采用方式2)或方式3)对函数进行进一步分割为代码片段或者基本块,可以理解地,当分割后得到的代码片段或者基本块中代码数量仍然超出预定值时可以继续进行分割,从而实现分割后得到的代码片段(或基本块)与未分割的函数在复杂度上趋近的效果;这样,后续在步骤204中计算代码块的特征时,能够实现各代码块的特征在复杂度上趋近的效果。
步骤204,服务器计算各恶意样本中代码块的特征。
对于每个代码块来说均包括操作码和操作数,操作码和操作数均可以用于形成代码块的特征,示例性说明:
1)基于操作码形成代码块的特征
遍历代码块包括的代码,按照操作码执行的顺序构建操作码的序列,对操作码的序列计算哈希值,哈希值取决于序列中所包括的操作码以及顺序,因而形成唯一表征代码块的特征。
例如,以传送、运算、移位和跳转的操作码依次形成的序列<传送;运算;移位;跳转>为例,对序列计算形成的哈希值必然不同于序列<传送;移位;运算;跳转>的哈希值,并且,不同代码块的哈希值的差异程度,与不同代码块中所包括的操作码以及顺序的差异程度正相关。
2)基于操作数形成代码块的特征。
遍历代码块包括的代码,按照操作数出现的顺序构建操作数的序列,对操作码的序列计算哈希值,哈希值取决于序列中所包括的操作数以及顺序,因而形成唯一表征代码块的特征。
例如,以操作数a+b、a和b依次形成的操作数的序列<a+b;a;b>为例,对序列计算形成的哈希值必然不同于操作数的序列<a;b;a+b;>的哈希值,并且,不同代码块的哈希值的差异程度,与不同代码块中所包括的操作数以及顺序的差异程度正相关。
3)确定由代码块包括的操作码以及操作数形成的序列,对序列计算哈希值形成代码块的特征。
遍历代码块包括的代码,按照操作码的顺序、操作数出现的顺序构建序列,对序列计算哈希值,哈希值取决于序列中所包括的操作码、操作码的顺序、操作数以及操作数出现的顺序,因而形成能够唯一表征代码块的特征。
以传送、运算、移位和跳转的操作码,以及操作数a+b、a和b依次形成的序列<传送;运算;移位;跳转;a+b;a;b>为例,该序列的哈希值必然不同于序列<传送;移位;运算;跳转a;b;a+b>的哈希值,并且,不同代码块的哈希值的差异程度,取决于不同代码块中所包括的操作码、操作数以及相应的顺序。
再以代码块为函数为例,通过遍历代码段中的代码(即二进制代码),按照执行的顺序将代码段分割为一系列的函数,针对每个函数生成代码的特征(也可以称为指纹)。这里的指纹的计算方法可以上述的方式选择使用,比如遍历函数中的代码,跳过函数内部的操作数,只对函数内部的操作码的序列计算哈希值。
由于函数的源代码与函数的代码段有着直接的关联,基于函数内部的操作码的执行的顺序生成序列,并基于序列计算哈希值,能够实现针对两个源代码相同(或者相似)函数生成的特征相同(或趋近)的特性。
可以看出,步骤204能够实现这样的效果,任意两段代码块在语义(即在代码执行的时候所表现出的逻辑行为)上的相似程度,与这两段代码的特征的相似程度正相关(如正相关);特别地,相同语义(即在代码执行的时候所表现出的逻辑行为)的两段代码的指纹一致。
步骤205,服务器基于恶意样本中代码块的执行的顺序,构建由恶意样本中代码块的特征形成的特征序列。
以代码块为函数举例来说,参见图9,图9是本发明实施例提供的对恶意样本的可执行文件进行反汇编并以函数为粒度进行分割并形成特征序列的一个可选的示意图。
假设从恶意样本1中提取出可执行文件1,从恶意样本2中提取出执行文件2,从恶意样本3中提取出可执行文件3,分别对上述的可执行文件进行反汇编处理并以函数为粒度对代码段进行分割,对于可执行文件1反汇编后的代码段进行分割来说,根据执行的顺序得到的函数序列是<函数A;函数B;函数C;函数D;函数E;函数F;函数G;函数H>,对于可执行文件2反汇编后的代码段进行分割来说,根据执行的顺序得到的函数序列是<函数A;函数C;函数E;函数F;函数D;函数I>,对于可执行文件3反汇编后的代码段进行分割来说,根据执行的顺序得到的函数序列是<函数F;函数C;函数G;函数H;函数I;函数B>。
对于每个函数的序列,将每个函数的特征按照执行顺序形成特征序列,就可执行文件1的函数序列来说,所对应的特征序列为<函数A特征;函数B特征;函数C特征;函数D特征;函数E特征;函数F特征;函数G特征;函数H特征>。
同理,就可执行文件2的函数序列来说,所对应的特征序列为<函数A特征;函数C特征;函数E特征;函数F特征;函数D特征;函数I特征>,就可执行文件3的函数序列来说,所对应的特征序列为是<函数F特征;函数C特征;函数G特征;函数H特征;函数I特征;函数B特征>。
可见,通过步骤201至步骤204的计算代码块的特征的方案具有这样的效果:1)首先,能够通过机器化的方式自动执行,借助于设备的计算能力能够在短时间内迅速计算代码块的特征,保证了从恶意样本提取病毒的特征码的效率;2)其次,采用统一的标准对不同病毒家族的恶意样本的特征序列,能够避免人工介入而导致的主观差异,提升了提取病毒特征码的精度。
步骤206,服务器比较恶意样本的特征序列,确定至少两个恶意样本的特征序列的最长公共子序列。
在一个实施例中,公共子序列是至少两个恶意样本的特征序列中出现的先后顺序一致、且共有特征构成的最长的子序列,称为最长公共子序列。
仍以图9示出的三个恶意样本的特征序列为例,求取三个恶意样本的特征序列的最长公共子序列时,首先将三个特征序列中每个特征序列所特有的特征滤除,参见图10,图10是本发明实施例提供的将图9示出的三个特征序列中滤除所特有的特征滤除后特征序列的示意图,每个特征序列均只包括函数A特征、函数C特征、函数F特征和函数H特征。
然后,对于图10示出的在三个特征序列中均出现的特征,按照特征出现的先后顺序,在三个特征序列中定位最长公共子序列,实际应用中可以通过运行动态规划等算法求取公共子序列,参见图11,图11是本发明实施例提供的在图10示出的特征序列求取最长公共子序列的示意图,对于图10示出的三个特征序列来说,最长公共子序列为<函数A特征;函数C特征;函数H特征>。
步骤207,服务器根据最长公共子序列判断所对应的代码是否为病毒代码。
在一个实施例中,对于在步骤204中确定的最长公共子序列来说,由于恶意样本的特征样本中均具有该最长公共子序列,该最长公共子序列包括病毒特征的概率最大,因此,将最长公共子序列对应的代码识别为病毒的代码。
在另一个实施例中,为了提升在恶意样本中检测病毒代码的精度,对于最长公共子序列进一步进行判断是否满足预定条件,避免病毒代码误识别的情况,例如结合1)具有最长公共子序列的恶意样本的数量、2)最长公共子序列的长度(即包括的特征的数量)至少之一进行判断,示例性地,包括以下几种方式:
方式1)结合恶意样本库中具有最长公共子序列的恶意样本的数量判断
确定至少两个恶意样本的特征序列的最长公共子序列,当恶意样本库中具有最长公共子序列的恶意样本的数量超出预定恶意样本数量时,说明该最长公共子序列对应的代码符合作为病毒的传播特性,判定最长公共子序列对应的代码为病毒的代码;当恶意样本库中具有最长公共子序列的恶意样本的数量为未超出预定恶意样本数量时,说明该最长公共子序列不符合作为病毒的传播特性,判定最长公共子序列对应的代码为病毒的代码。
方式2)结合最长公共子序列的长度判断
确定至少两个恶意样本的特征序列的最长公共子序列,当最长公共子序列的长度超出预定序列长度时,说明最长公共子序列对应的代码符合病毒的代码复杂度,判定该最长公共子序列对应的代码为病毒的代码;当最长公共子序列的长度未超出预定序列长度时,说明最长公共子序列对应的代码过于简单,不符合病毒代码的代码复杂度,判定该最长公共子序列对应的代码为常规代码。
通常,考虑到病毒日益复杂化的趋势,最长公共子序列的长度小于3时,最长公共子序列可能与恶意样本中一些使用频率较高的功能模块(例如插件)对应,对于这种情况丢弃该最长公共子序列,从而避免误判的情况。
方式3)结合恶意样本库中具有最长公共子序列的恶意样本的数量、以及最长公共子序列的长度判断
确定至少两个恶意样本的特征序列的最长公共子序列,当恶意样本库中具有最长公共子序列的恶意样本的数量超出预定恶意样本数量,且当最长公共子序列的长度超出预定序列长度时,说明该最长公共子序列对应的代码符合作为病毒的传播特性,且该最长公共子序列对应的代码符合病毒的代码复杂度,判定该最长公共子序列对应的代码块为病毒的代码;当未满足上述条件时,判定该最长公共子序列对应的代码块为常规代码。
步骤208,服务器将最长公共子序列中的特征合并得到病毒的特征码。
在一个实施例中,将最长公共子序列中的特征依次通过通配符连接,作为一个病毒家族的特征序列,仍以图11为例,对于最长公共子序列<函数A特征;函数C特征;函数H特征>,将其中的特征通过通配符“*”连接形成一个病毒家族的特征码:函数A特征*函数C特征*函数H特征,使用通配符对特征序列中的特征连接,由于在与待检测样本的特征序列匹配是通配符可以替换为待检测样本的任意特征,从而能够最大程度提升使用特征码扫描病毒的广谱性。
在一个实施例中,判断所最长述公共子序列中相邻的特征在所来源的恶意样本中的出现方式是否为接续出现,如是,则将相邻的特征直接连接;如否,则将相邻的特征通过通配符连接。
以图11示出的特征序列来说,函数A特征、函数C特征和函数H特征在每个特征序列中是都不是接续出现的,在特征序列中还出现了序列所独有的特征,因此,对于最长公共子序列<函数A特征;函数C特征;函数H特征>来说,使用通配符连接特征,形成的特征码为:函数A特征*函数C特征*函数H特征,由于使用通配符能够同时匹配到可执行文件1至3中的其他函数的特征,因此能够将依次包括函数A、函数C、和函数H的任意样本检测为携带病毒,具有良好的广谱性。
再参见图12,图12是本发明实施例提供的不同的最长公共子序列形成特征码的一个可选的示意图。对于最长公共子序列<函数I特征;函数G特征;函数H特征>来说,函数I特征和函数G特征在每个特征序列中是都是接续出现的,函数G特征和函数K特征在每个特征序列中都是间接出现的,因此,函数I特征和函数G特征直接连接,函数G特征和函数K特征使用通配符连接,形成的特征码为:函数I特征-函数G特征*函数H特征。
使用函数I特征-函数G特征*函数H特征能够检测到依次包括函数I、函数G和函数H、函数I和函数G接续出现、且函数G和函数H间接出现的样本,在实现特征码检测病毒的广谱性的同时,还避免了将函数I和函数G间接出现的样本误检测为病毒,进一步提升了病毒检测的精度。
步骤209,服务器将病毒的特征码存入病毒特征库。
在病毒特征库中,当特征码中存在通配符时,由于特征码可以用于扫描符合特征码中特征的多个病毒,此时特征码实质上构成了一个病毒家族的特征码;当特征码中未存在通配符时,特征码用于实现对特定病毒的检测。
再对基于病毒的特征序列扫描待检测样本为例进行说明,在一个实施例中,对于待检测样本是否包括病毒来说,基于待检测样本中代码块的特征构建特征序列,将待检测样本的特征序列与病毒的特征码比较(步骤210),当病毒的特征序列构成待检测样本的特征序列的子序列时,判定待检测样本中包括病毒。将检测结果返回终端的杀毒应用(步骤211)。
当病毒的特征序列构成待检测样本的特征序列的子序列,且当特征序列中相邻特征的出现方式与在待检测样本的特征序列中的出现方式一致时,判定待检测样本中包括病毒。
例如,对于前述的特征码函数I特征-函数G特征*函数H特征而言,将待检测样本的可执行文件进行反汇编处理并分割为代码块,只要代码块的特征序列满足以下条件即判定待检测样本携带病毒:1)代码块的特征序列中依次出现了函数I特征、函数G特征和函数H特征;2)函数I特征和函数G特征的出现方式为接续出现;3)函数G特征和函数H特征的出现方式为间隔出现。
参见图13,图13是发明实施例提供的病毒特征码处理装置的一个可选的功能结构示意图,包括:汇编分割单元21、特征序列单元22、序列比较单元23、特征连接单元24和病毒检测单元25;下面分别进行说明。
汇编分割单元21,用于对携带有病毒的恶意样本进行反汇编处理,对得到的反汇编代码进行分割得到所述恶意样本的多个代码块。
例如,就对得到的反汇编代码进行分割得到所述恶意样本的多个代码块来说,所述汇编分割单元21,对各所述函数以预定数量的代码为粒度分割,得到所述恶意样本的多个代码片段;或者,对各所述函数以基本块为粒度进行分割,得到所述恶意样本的多个基本块。
例如,就对得到的反汇编代码进行分割得到所述恶意样本的多个代码块来说,所述汇编分割单元21,还用于遍历所述恶意样本的反汇编代码,以函数为例粒度对所述反汇编代码进行分割,得到所述恶意样本的多个函数。
特征序列单元22,用于计算各所述恶意样本中代码块的特征,基于所述恶意样本中代码块的顺序,构建由所述恶意样本中代码块的特征形成的特征序列。
就基于所述恶意样本中代码块的顺序,构建由所述恶意样本中代码块的特征形成的特征序列来说,所述特征序列单元22,还用于确定由所述代码块包括的操作码和操作数至少之一形成的序列,对所述序列计算哈希值形成所述代码块的特征。
1)基于操作码形成代码块的特征
遍历代码块包括的代码,按照操作码执行的顺序构建操作码的序列,对操作码的序列计算哈希值,哈希值取决于序列中所包括的操作码以及顺序,因而形成唯一表征代码块的特征。
2)基于操作数形成代码块的特征。
遍历代码块包括的代码,按照操作数出现的顺序构建操作数的序列,对操作码的序列计算哈希值,哈希值取决于序列中所包括的操作数以及顺序,因而形成唯一表征代码块的特征。
3)确定由代码块包括的操作码以及操作数形成的序列,对序列计算哈希值形成代码块的特征。
遍历代码块包括的代码,按照操作码的顺序、操作数出现的顺序构建序列,对序列计算哈希值,哈希值取决于序列中所包括的操作码、操作码的顺序、操作数以及操作数出现的顺序,因而形成能够唯一表征代码块的特征。
序列比较单元23,用于比较各所述恶意样本的特征序列,确定至少两个所述恶意样本的特征序列的公共子序列。
例如,序列比较单元23依次确定任意两个恶意样本的特征序列的公共子序列,以此类推,直至确定全部恶意样本的特征序列的公共子序列。
另外,就公共子序列来说,可以为包括特征的数量超出预定数量的公共子序列,例如,至少两个恶意样本的特征序列中出现的先后顺序一致、且共有特征构成的最长的子序列,称为最长公共子序列。
就确定最长公共子序列来说,所述序列比较单元23,还用于提取在至少两个所述恶意样本的特征序列中均出现、且出现方式为接续出现的全部特征,和/或,提取在至少两个所述恶意样本的特征序列中均出现、且出现方式为非接续出现的全部特征;基于所提取的特征构建对应所述至少两个恶意样本的最长公共子序列。
特征连接单元24,用于根据所述公共子序列判定所对应的代码为病毒的代码,将所述公共子序列中的特征合并得到所述病毒的特征码。
就根据所述公共子序列判定所对应的代码为病毒的代码来说,所述序列比较单元23,还用于根据至少两个所述恶意样本的特征序列的最长公共子序列,当具有所述最长公共子序列的恶意样本的数量超出预定恶意样本数量时,判定所述最长公共子序列对应的代码为病毒的代码。
就根据所述公共子序列判定所对应的代码为病毒的代码来说,所述序列比较单元23,还用于根据至少两个所述恶意样本的特征序列的最长公共子序列,当所述最长公共子序列的长度超出预定序列长度时,判定所述公共子序列对应的代码为病毒的代码。
就将所述公共子序列中的特征合并得到所述病毒的特征码来说,包括以下两种可选的方式:
方式1)所述特征连接单元24,还用于将所述公共子序列中相邻的特征通过通配符连接,得到所述病毒的特征序列。
以图11示出的特征序列来说,函数A特征、函数C特征和函数H特征在每个特征序列中是都不是接续出现的,在特征序列中还出现了序列所独有的特征,因此,对于最长公共子序列<函数A特征;函数C特征;函数H特征>来说,使用通配符连接特征,形成的特征码为:函数A特征*函数C特征*函数H特征,由于使用通配符能够同时匹配到可执行文件1至3中的其他函数的特征,因此能够将依次包括函数A、函数C、和函数H的任意样本检测为携带病毒,具有良好的广谱性。
方式2)所述特征连接单元24,还用于判断所述公共子序列中相邻的特征在所来源的恶意样本中的出现方式是否为接续出现,如是,则将相邻的特征直接连接;如否,则将所述相邻的特征通过通配符连接。
再参见图12,图12是本发明实施例提供的不同的最长公共子序列形成特征码的一个可选的示意图。对于最长公共子序列<函数I特征;函数G特征;函数H特征>来说,函数I特征和函数G特征在每个特征序列中是都是接续出现的,函数G特征和函数K特征在每个特征序列中都是间接出现的,因此,函数I特征和函数G特征直接连接,函数G特征和函数K特征使用通配符连接,形成的特征码为:函数I特征-函数G特征*函数H特征。
病毒检测单元25,用于基于待检测样本中代码块的特征构建特征序列,将所述待检测样本的特征序列与所述病毒的特征码比较,当所述病毒的特征码与所述待检测样本的特征序列匹配时,判定所述待检测样本中携带所述病毒。
当病毒的特征序列构成待检测样本的特征序列的子序列,且当特征序列中相邻特征的出现方式与在待检测样本的特征序列中的出现方式一致时,判定待检测样本中包括病毒。
例如,对于前述的特征码函数I特征-函数G特征*函数H特征而言,将待检测样本的可执行文件进行反汇编处理并分割为代码块,只要代码块的特征序列满足以下条件即判定待检测样本携带病毒:1)代码块的特征序列中依次出现了函数I特征、函数G特征和函数H特征;2)函数I特征和函数G特征的出现方式为接续出现;3)函数G特征和函数H特征的出现方式为间隔出现。
综上所述,本发明实施例具有以下有益效果:
1)以机器处理的方式提取病毒的特征码,能够依赖设备的计算能力快速完成病毒特征码的提取,保证了特征码提取的实时性需求;
2)通过对恶意样本的特征序列计算公共子序列的方式在恶意样本中定位病毒代码时,进而基于公共子序列构建病毒的特征码,避免了提取特征码时人工介入导致的主观差异,保证提取特征码的精度。
3)不需要病毒分析人员的人工介入,极大的降低了病毒检测的成本,提高了效率,缩短了病毒出现到被查杀的时间。
4)根据不同的粒度对反汇编代码进行分割,使得代码块的复杂度趋近,实现语义相近的代码块的特征趋近的特性。
5)根据最长公共子序列以及预定条件检测病毒,从病毒的传播特性和复杂度二方面确保病毒检测的精度。
6)根据最长公共子序列中特征在不同恶意样本的特征序列中的出现方式,对特征码中特征的连接方式(直连或通配符连接)进行控制,一方面通配符连接特征保证了特征码检测病毒的广谱性,另一方面避免了将特征直接连接保证了病毒检测的精度。
本领域的技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储装置、随机存取存储器(RAM,Random Access Memory)、只读存储器(ROM,Read-Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机、服务器、或者网络装置等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储装置、RAM、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (18)

1.一种病毒特征码处理方法,其特征在于,包括:
对携带有病毒的恶意样本进行反汇编处理,对得到的反汇编代码进行分割得到所述恶意样本的多个代码块;
计算各所述恶意样本中代码块的特征,基于所述恶意样本中代码块的顺序,构建由所述恶意样本中代码块的特征形成的特征序列;
比较各所述恶意样本的特征序列,确定至少两个所述恶意样本的特征序列的最长公共子序列;
当所述最长公共子序列满足预设条件时,判定所述最长公共子序列对应的代码为病毒的代码,将所述最长公共子序列中的特征合并得到所述病毒的特征码;
其中,所述预设条件包括以下至少之一:具有所述最长公共子序列的恶意样本的数量超出预定恶意样本数量、所述最长公共子序列的长度超出预定序列长度。
2.如权利要求1所述的方法,其特征在于,所述对得到的反汇编代码进行分割得到所述恶意样本的多个代码块,包括:
遍历所述恶意样本的反汇编代码,以函数为例粒度对所述反汇编代码进行分割,得到所述恶意样本的多个函数。
3.如权利要求2所述的方法,其特征在于,还包括:
对各所述函数以预定数量的代码为粒度进行分割,得到所述恶意样本的多个代码片段;或者,对各所述函数以基本块为粒度进行分割,得到所述恶意样本的多个基本块。
4.如权利要求1所述的方法,其特征在于,所述计算各所述恶意样本中代码块的特征,包括:
确定由所述代码块包括的操作码和操作数至少之一形成的序列,对所述序列计算哈希值形成所述代码块的特征。
5.如权利要求1所述的方法,其特征在于,所述确定至少两个所述恶意样本的特征序列的最长公共子序列,包括:
提取在至少两个所述恶意样本的特征序列中均出现、且出现方式为接续出现的全部特征,和/或,提取在至少两个所述恶意样本的特征序列中均出现、且出现方式为非接续出现的全部特征;基于所提取的特征构建对应所述至少两个恶意样本的最长公共子序列。
6.如权利要求1所述的方法,其特征在于,所述将所述最长公共子序列中的特征合并得到所述病毒的特征码,包括:
将所述最长公共子序列中相邻的特征通过通配符连接,得到所述病毒的特征码。
7.如权利要求6所述的方法,其特征在于,所述将所述最长公共子序列中相邻的特征通过通配符连接,包括:
判断所述最长公共子序列中相邻的特征在所来源的恶意样本中的出现方式是否为接续出现,如是,则将相邻的特征直接连接;如否,则将所述相邻的特征通过通配符连接。
8.如权利要求1至7任一项所述的方法,其特征在于,还包括:
基于待检测样本中代码块的特征构建特征序列,将所述待检测样本的特征序列与所述病毒的特征码比较,当所述病毒的特征码与所述待检测样本的特征序列匹配时,判定所述待检测样本中携带所述病毒。
9.一种病毒特征码处理装置,其特征在于,包括:
汇编分割单元,用于对携带有病毒的恶意样本进行反汇编处理,对得到的反汇编代码进行分割得到所述恶意样本的多个代码块;
特征序列单元,用于计算各所述恶意样本中代码块的特征,基于所述恶意样本中代码块的顺序,构建由所述恶意样本中代码块的特征形成的特征序列;
序列比较单元,用于比较各所述恶意样本的特征序列,确定至少两个所述恶意样本的特征序列的最长公共子序列;
特征合并单元,用于根据所述最长公共子序列满足预设条件,判定所述最长公共子序列对应的代码为病毒的代码,将所述最长公共子序列中的特征合并得到所述病毒的特征码;其中,所述预设条件包括以下至少之一:具有所述最长公共子序列的恶意样本的数量超出预定恶意样本数量、所述最长公共子序列的长度超出预定序列长度。
10.如权利要求9所述的装置,其特征在于,
所述汇编分割单元,还用于遍历所述恶意样本的反汇编代码,以函数为例粒度对所述反汇编代码进行分割,得到所述恶意样本的多个函数。
11.如权利要求10所述的装置,其特征在于,
所述汇编分割单元,还用于对各所述函数以预定数量的代码为粒度进行分割,得到所述恶意样本的多个代码片段;或者,对各所述函数以基本块为粒度进行分割,得到所述恶意样本的多个基本块。
12.如权利要求9所述的装置,其特征在于,
所述特征序列单元,还用于确定由所述代码块包括的操作码和操作数至少之一形成的序列,对所述序列计算哈希值形成所述代码块的特征。
13.如权利要求9所述的装置,其特征在于,
所述序列比较单元,还用于提取在至少两个所述恶意样本的特征序列中均出现、且出现方式为接续出现的全部特征,和/或,提取在至少两个所述恶意样本的特征序列中均出现、且出现方式为非接续出现的全部特征;基于所提取的特征构建对应所述至少两个恶意样本的最长公共子序列。
14.如权利要求9所述的装置,其特征在于,
所述特征合并单元,还用于将所述最长公共子序列中相邻的特征通过通配符连接,得到所述病毒的特征码。
15.如权利要求14所述的装置,其特征在于,
所述特征合并单元,还用于判断所述最长公共子序列中相邻的特征在所来源的恶意样本中的出现方式是否为接续出现,如是,则将相邻的特征直接连接;如否,则将所述相邻的特征通过通配符连接。
16.如权利要求9至15任一项所述的装置,其特征在于,还包括:
病毒检测单元,用于基于待检测样本中代码块的特征构建特征序列,将所述待检测样本的特征序列与所述病毒的特征码比较,当所述病毒的特征码与所述待检测样本的特征序列匹配时,判定所述待检测样本中携带所述病毒。
17.一种病毒特征码处理装置,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至8任一项所述的病毒特征码处理方法。
18.一种计算机可读存储介质,其特征在于,存储有可执行指令,用于引起处理器执行时,实现权利要求1至8任一项所述的病毒特征码处理方法。
CN201710039943.9A 2017-01-18 2017-01-18 病毒特征码处理方法及装置 Active CN108319853B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710039943.9A CN108319853B (zh) 2017-01-18 2017-01-18 病毒特征码处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710039943.9A CN108319853B (zh) 2017-01-18 2017-01-18 病毒特征码处理方法及装置

Publications (2)

Publication Number Publication Date
CN108319853A CN108319853A (zh) 2018-07-24
CN108319853B true CN108319853B (zh) 2021-01-15

Family

ID=62891504

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710039943.9A Active CN108319853B (zh) 2017-01-18 2017-01-18 病毒特征码处理方法及装置

Country Status (1)

Country Link
CN (1) CN108319853B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2724710C1 (ru) * 2018-12-28 2020-06-25 Акционерное общество "Лаборатория Касперского" Система и способ классификации объектов вычислительной системы
CN110472031A (zh) * 2019-08-13 2019-11-19 北京知道创宇信息技术股份有限公司 一种正则表达式获得方法、装置、电子设备及存储介质
CN112579828A (zh) * 2019-09-30 2021-03-30 奇安信安全技术(珠海)有限公司 特征码的处理方法及装置、系统、存储介质、电子装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101685483A (zh) * 2008-09-22 2010-03-31 成都市华为赛门铁克科技有限公司 一种病毒特征码提取的方法和装置
US8375450B1 (en) * 2009-10-05 2013-02-12 Trend Micro, Inc. Zero day malware scanner
CN103038777A (zh) * 2010-06-03 2013-04-10 诺基亚公司 用于分析及检测恶意软件的方法和装置
CN103324888A (zh) * 2012-03-19 2013-09-25 哈尔滨安天科技股份有限公司 基于家族样本的病毒特征自动提取方法及系统
CN104243407A (zh) * 2013-06-13 2014-12-24 华为技术有限公司 一种恶意软件网络入侵检测特征码的生成方法和设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101685483A (zh) * 2008-09-22 2010-03-31 成都市华为赛门铁克科技有限公司 一种病毒特征码提取的方法和装置
US8375450B1 (en) * 2009-10-05 2013-02-12 Trend Micro, Inc. Zero day malware scanner
CN103038777A (zh) * 2010-06-03 2013-04-10 诺基亚公司 用于分析及检测恶意软件的方法和装置
CN103324888A (zh) * 2012-03-19 2013-09-25 哈尔滨安天科技股份有限公司 基于家族样本的病毒特征自动提取方法及系统
CN104243407A (zh) * 2013-06-13 2014-12-24 华为技术有限公司 一种恶意软件网络入侵检测特征码的生成方法和设备

Also Published As

Publication number Publication date
CN108319853A (zh) 2018-07-24

Similar Documents

Publication Publication Date Title
US10165001B2 (en) Method and device for processing computer viruses
RU2614557C2 (ru) Система и способ обнаружения вредоносных файлов на мобильных устройствах
JP6106340B2 (ja) ログ分析装置、攻撃検知装置、攻撃検知方法およびプログラム
US9015814B1 (en) System and methods for detecting harmful files of different formats
EP3899770B1 (en) System and method for detecting data anomalies by analysing morphologies of known and/or unknown cybersecurity threats
US20180089430A1 (en) Computer security profiling
EP2472425B1 (en) System and method for detecting unknown malware
EP2784715B1 (en) System and method for adaptive modification of antivirus databases
CN106803040B (zh) 病毒特征码处理方法及装置
KR102317833B1 (ko) 악성 코드 탐지 모델 학습 방법 및 이를 이용한 탐지 방법
EP2790122A2 (en) System and method for correcting antivirus records to minimize false malware detections
US20140150101A1 (en) Method for recognizing malicious file
CN108319853B (zh) 病毒特征码处理方法及装置
CN111222137A (zh) 一种程序分类模型训练方法、程序分类方法及装置
CN104217165A (zh) 文件的处理方法及装置
O'Kane et al. N-gram density based malware detection
KR20180133726A (ko) 특징 벡터를 이용하여 데이터를 분류하는 장치 및 방법
EP3113065B1 (en) System and method of detecting malicious files on mobile devices
KR20210054799A (ko) Url 클러스터링을 위한 url의 요약을 생성하는 방법 및 장치
CN104239795A (zh) 文件的扫描方法及装置
EP3800570A1 (en) Methods and systems for genetic malware analysis and classification using code reuse patterns
RU2747464C2 (ru) Способ обнаружения вредоносных файлов на основании фрагментов файлов
CN103593614A (zh) 一种未知病毒检索方法
RU2757265C1 (ru) Система и способ оценки приложения на вредоносность
KR102473436B1 (ko) 물리 메모리 레이아웃 관리 방법 및 장치, 컴퓨터 판독 가능한 기록 매체 및 컴퓨터 프로그램

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant