CN103761476B - 特征提取的方法及装置 - Google Patents

特征提取的方法及装置 Download PDF

Info

Publication number
CN103761476B
CN103761476B CN201310746033.6A CN201310746033A CN103761476B CN 103761476 B CN103761476 B CN 103761476B CN 201310746033 A CN201310746033 A CN 201310746033A CN 103761476 B CN103761476 B CN 103761476B
Authority
CN
China
Prior art keywords
file
function
feature
black sample
sample
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
CN201310746033.6A
Other languages
English (en)
Other versions
CN103761476A (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.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology 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 Beijing Qihoo Technology Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201310746033.6A priority Critical patent/CN103761476B/zh
Publication of CN103761476A publication Critical patent/CN103761476A/zh
Priority to PCT/CN2014/083910 priority patent/WO2015101044A1/zh
Priority to US15/109,343 priority patent/US20170214704A1/en
Priority to PCT/CN2014/090035 priority patent/WO2015101097A1/zh
Priority to US15/109,409 priority patent/US10277617B2/en
Application granted granted Critical
Publication of CN103761476B publication Critical patent/CN103761476B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • 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
    • 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
    • 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/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S40/00Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
    • Y04S40/20Information technology specific aspects, e.g. CAD, simulation, modelling, system security

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种特征提取方法及装置。其中方法包括:从智能终端操作系统的应用程序层,获取一批黑样本文件和白样本文件;解析每个文件,得到每个文件包含的所有函数的信息结构,计算每个函数的校验码;判断各文件是否包含各个校验码对应的函数,从而统计每个函数在黑样本文件和白样本文件中出现的次数;根据仅在黑样本文件中出现而未在白样本文件中出现的函数,提取出黑样本特征,或者同理提取出白样本特征。可见,本发明通过对获取的黑样本文件和白样本文件进行分析、计算,统计每个函数的校验码在文件中出现的次数,最后将仅在黑样本文件中出现而未在白样本文件中出现的函数作为黑样本特征提取的基础。

Description

特征提取的方法及装置
技术领域
本发明涉及网络安全技术领域,具体涉及一种特征提取的方法及装置。
背景技术
随着科技发展,智能终端具有越来越多的功能。例如,人们的手机从传统的GSM、TDMA数字手机转向了拥有能够处理多媒体资源、提供网页浏览、电话会议、电子商务等多种信息服务的智能手机。然而,品种日益繁多的手机恶意代码攻击以及形势日益严峻的个人数据安全问题也随之而来,越来越多的手机病毒让智能手机用户饱受其苦。
手机恶意代码防护技术针对恶意代码进行防护。手机恶意代码防护方式包括多种。例如,特征值扫描方式、基于虚拟机技术的恶意代码防护、启发式扫描方式及相似样本聚类等。不论哪种防护方式,除了高效的扫描算法(也称为匹配算法)外,组织合理的恶意代码特征库则是基础。因此,如何准确高效地提取特征对于构建特征库乃至整个防护技术是至关重要的。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的特征提取的方法及装置。
依据本发明的一个方面,提供一种特征提取方法,其特征在于,包括:从智能终端操作系统的应用程序层,获取一批黑样本文件和白样本文件;解析每个文件,得到每个文件包含的所有函数的信息结构,计算每个函数的校验码;判断各文件中是否包含各个校验码对应的函数,从而统计每个函数在黑样本文件和白样本文件中出现的次数;根据仅在黑样本文件中出现而未在白样本文件中出现的函数,提取出黑样本特征,或者,根据仅在白样本文件中出现而未在黑样本文件中出现的函数,提取出白样本特征。
优选地,在统计出黑样本或白样本之后,还包括:对特征进行优选,具体为:为每个特征针对所有文件建立向量;初始化一个集合,依次与每一个特征的向量做比较;如果集合包括被比较的特征,则保持集合,如果集合不包括被比较的特征,则取集合与被比较向量的并集;依次比较完所有特征的向量,将最终获得的集合中所包含的特征作为最后保留的特征。
优选地,在统计出黑样本或白样本之后,还包括:对特征进行优选,具体为:针对不同特征的不同文件集,如果一个文件集包含另一个文件集中所有文件,则将具有较大范围的文件集对应的特征保留,而抛弃具有较小范围的文件集对应的特征。
优选地,所述特征包括第一特征和第二特征,包含所述第一特征的文件构成第一文件集,包含所述第二特征的文件构成第二文件集,如果所述第一文件集包含所述第二文件集中所有的文件,则保留所述第一特征,而抛弃所述第二特征。
优选地,在所述统计每个函数在黑样本文件和白样本文件中出现的次数之前,还包括:将函数的校验码进行文件内去重。
优选地,所述将函数的校验码进行文件内去重包括:针对每一个文件,如果有多个函数具有相同校验码,则从所述多个函数中提取出一个函数作为该校验码的函数。
优选地,所述黑样本文件和白样本文件均为虚拟机执行文件;所述解析每个文件,得到每个文件包含的所有的函数信息结构包括:对所述虚拟机执行文件进行反编译,得到虚拟机执行文件所包含的所有函数经过反编译的信息结构。
优选地,所述计算每个函数的校验码包括:利用哈希算法,计算所述函数的信息结构体的哈希值,将哈希值作为所述函数的校验码。
优选地,所述对所述虚拟机执行文件进行反编译,得到虚拟机执行文件所包含的所有函数经过反编译的的信息结构包括:根据虚拟机执行文件格式对虚拟机执行文件进行解析,得到每个类的函数信息结构体;根据所述函数信息结构体中的字段,确定所述虚拟机执行文件的每个函数的位置及大小,得到每个函数经过反编译的函数信息结构。
优选地,所述根据函数信息结构体中的字段,确定所述虚拟机执行文件的函数的位置及大小包括:解析所述函数信息结构体,得到指示虚拟机执行文件的函数位置的字节码数组字段以及指示虚拟机执行文件的函数大小的列表长度字段;根据所述字节码数组字段以及所述列表长度字段,确定所述虚拟机执行文件的函数的位置及大小。
优选地,所述对所述虚拟机执行文件进行反编译,得到虚拟机执行文件所包含的所有函数经过反编译的的信息结构包括:利用虚拟机执行文件反编译工具,将所述虚拟机执行文件反编译为虚拟机字节码。
优选地,所述根据仅在黑样本文件中出现而未在白样本文件中出现的函数,提取出黑样本特征包括:将所述仅在黑样本文件中出现而未在白样本文件中出现的函数作为所述黑样本特征,或者将所述仅在黑样本文件中出现而未在白样本文件中出现的函数的部分代码作为所述黑样本特征;所述根据仅在白样本文件中出现而未在黑样本文件中出现的函数,提取出白样本特征包括:将所述仅在白样本文件中出现而未在黑样本文件中出现的函数作为所述白样本特征,或者将所述仅在白样本文件中出现而未在黑样本文件中出现的函数的部分代码作为所述白样本特征。
优选地,还包括:将所述黑样本特征添加到黑样本特征库中,利用黑样本特征库对目标文件进行匹配,如果目标文件包含所述黑样本特征对应的函数或函数的子集,确定存在恶意代码。
优选地,利用所述黑样本特征库中黑样本特征对应的函数对目标文件进行样本特征查杀、基于虚拟机查杀、启发式查杀,和/或,相似样本聚类。
优选地,所述黑样本文件是指经过预先初步判断包含黑样本的文件,所述白样本文件是指经过预先初步判断不包含黑样本的文件。
优选地,所述获取一批黑样本文件和白样本文件包括:从智能终端操作系统的应用程序层,查找到应用程序的安装包;解析所述安装包,得到所述应用程序的虚拟机执行文件;将所述虚拟机执行文件作为黑样本文件或白样本文件。
优选地,所述操作系统是指安卓系统。
依据本发明的另一个方面,提供一种特征提取装置,包括:文件获取单元,用于从智能终端操作系统的应用程序层,获取一批黑样本文件和白样本文件;解析单元,用于解析每个文件,得到每个文件包含的所有函数的信息结构;校验码计算单元,用于计算每个函数的校验码;统计单元,用于判断各文件中是否包含各个校验码对应的函数,从而统计每个函数在黑样本文件和白样本文件中出现的次数;提取单元,用于根据仅在黑样本文件中出现而未在白样本文件中出现的函数,提取出黑样本特征,或者,根据仅在白样本文件中出现而未在黑样本文件中出现的函数,提取出白样本特征。
优选地,还包括:特征优选单元,用于为每个特征针对所有文件建立向量;初始化一个集合,依次与每一个特征的向量做比较;如果集合包括被比较的特征,则保持集合,如果集合不包括被比较的特征,则取集合与被比较向量的并集;依次比较完所有特征的向量,将最终获得的集合中所包含的特征作为最后保留的特征。
优选地,还包括:特征优选单元,用于针对不同特征的不同文件集,如果一个文件集包含另一个文件集中所有文件,则将具有较大范围的文件集对应的特征保留,而抛弃具有较小范围的文件集对应的特征。
优选地,所述特征优选单元,在所述第一文件集包含所述第二文件集中所有的文件时,则保留第一文件集对应的第一特征,而抛弃所述第二文件集对应的第二特征。
优选地,还包括:内去重单元,用于将函数的校验码进行文件内去重。
优选地,所述内去重单元具体用于,针对每一个文件,如果有多个函数具有相同校验码,则从所述多个函数中提取出一个函数作为该校验码的函数。
优选地,所述黑样本文件和白样本文件均为虚拟机执行文件;所述解析单元具体用于,对所述虚拟机执行文件进行反编译,得到虚拟机执行文件所包含的所有函数经过反编译的信息结构。
优选地,所述校验码计算单元具体用于,利用哈希算法,计算所述函数的信息结构体的哈希值,将哈希值作为所述函数的校验码。
优选地,所述解析单元进一步用于,根据虚拟机执行文件格式对虚拟机执行文件进行解析,得到每个类的函数信息结构体;根据所述函数信息结构体中的字段,确定所述虚拟机执行文件的每个函数的位置及大小,得到每个函数经过反编译的函数信息结构。
优选地,所述解析单元进一步用于,解析所述函数信息结构体,得到指示虚拟机执行文件的函数位置的字节码数组字段以及指示虚拟机执行文件的函数大小的列表长度字段;根据所述字节码数组字段以及所述列表长度字段,确定所述虚拟机执行文件的函数的位置及大小。
优选地,所述解析单元具体用于,利用虚拟机执行文件反编译工具,将所述虚拟机执行文件反编译为虚拟机字节码。
优选地,所述提取单元具体用于,将所述仅在黑样本文件中出现而未在白样本文件中出现的函数作为所述黑样本特征,或者将所述仅在黑样本文件中出现而未在白样本文件中出现的函数的部分代码作为所述黑样本特征;或者,将所述仅在白样本文件中出现而未在黑样本文件中出现的函数作为所述白样本特征,或者将所述仅在白样本文件中出现而未在黑样本文件中出现的函数的部分代码作为所述白样本特征。
优选地,还包括:特征库添加单元,用于将所述黑样本特征添加到黑样本特征库中,匹配单元,用于利用黑样本特征库对目标文件进行匹配,如果目标文件包含所述黑样本特征对应的函数或函数的子集,确定存在恶意代码。
优选地,所述匹配单元利用黑样本特征库中黑样本特征对应的函数对目标文件进行样本特征查杀、基于虚拟机查杀、启发式查杀,和/或,相似样本聚类。
优选地,所述黑样本文件是指经过预先初步判断包含黑样本的文件,所述白样本文件是指经过预先初步判断不包含黑样本的文件。
优选地,所述文件获取单元具体用于,从智能终端操作系统的应用程序层,查找到应用程序的安装包;解析所述安装包,得到所述应用程序的虚拟机执行文件;将所述虚拟机执行文件作为黑样本文件或白样本文件。
优选地,所述操作系统是指安卓系统。
可见,本发明实施例通过对获取的黑样本文件和白样本文件进行分析、计算,统计每个函数的校验码在文件中出现的次数,最后将仅在黑样本文件中出现而未在白样本文件中出现的函数作为特征提取的基础。由此,通过快速、准确地提取特征可保证构建高效的特征库,保证防护技术的实施。优选地,可以对特征进行优选,从而在获取大量可提取黑样本特征后,利用最少的特征来检出最多的文件。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的特征提取的方法流程图;
图2示出了根据本发明一个实施例的特征提取的方法中特征优选流程图;以及
图3示出了根据本发明一个实施例的特征提取的装置示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
以安卓(Android)操作系统为例,包括应用程序层(app层)和系统框架层(framework层),至于从功能划分上有可能包括的的其他层本发明则不作讨论。其中,通常app层可以理解为上层,负责与用户交互的界面,例如应用程序维护、以及点击页面时识别不同种类的点击内容从而显示不同的上下文菜单等。通常framework层作为中间层,这一层的主要职责是,将app层获得的用户请求,如启动用用程序、点击链接、点击保存图片之类,转发往下层去;将下层处理好的内容,或者通过消息,或者通过中间代理类,来分发至上层,对用户展现出来。
本发明的发明人在研究过程中发现,通过对样本文件所包含函数的校验码在文件中出现次数的统计,可以确定函数是黑样本或白样本。
参见图1,示出了根据本发明一个实施例的特征提取的方法的流程图。
该特征提取的方法包括以下步骤。
S101:从智能终端操作系统的应用程序层,获取一批黑样本文件和白样本文件;
其中,黑样本文件是指经过预先初步判断包含黑样本的文件,例如包含了恶意代码的文件,白样本文件是指经过预先初步判断不包含黑样本的文件,例如不包含恶意代码的文件。本领域技术人员了解,在进行恶意代码匹配和查杀过程中,需要建立特征库,而特征库的建立是基于样本文件进行特征提取的。在本发明实施例中,预先通过人工等方式初步确定一批文件是黑样本文件还是白样本文件。黑样本文件和白样本文件都是越多越好,有利于准确提取样本特征。
本发明实施例中,黑样本文件或白样本文件例如可以是dex文件。dex文件是Android系统中可以直接在Dalvik虚拟机(Dalvik VM)中加载运行的虚拟机执行文件。Dalvik是用于Android平台的Java虚拟机。Dalvik经过优化,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个Dalvik应用作为一个独立的Linux进程执行。独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭。Dalvik虚拟机可以支持已转换为dex(Dalvik Executable)格式的Java应用程序的运行,dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。通过ADT(Android Development Tools),经过复杂的编译,可以把java源代码转换为dex文件。dex文件是针对嵌入式系统优化的结果,Dalvik虚拟机的指令码并不是标准的Java虚拟机指令码,而是使用了自己独有的一套指令集。dex文件中共用了很多类名称、常量字符串,使它的体积比较小,运行效率也比较高。
具体地,从智能终端获取一批黑样本dex文件和白样本dex文件的方式可以为:从智能终端操作系统的应用程序层,查找到应用程序的安装包;解析安装包,得到应用程序的dex文件;将dex执行文件作为黑样本文件或白样本文件。例如,可以通过解析APK(AndroidPackage,Android安装包)获得。APK文件其实是zip格式的一个压缩包,但后缀名被修改为apk,通过UnZip解压后,就可以得到Dex文件。
如前所述,Android操作系统包括应用程序层(app层)和系统框架层(framework层),本发明重点在于对app层的研究和改进。但是,本领域技术人员理解,当Android启动时,Dalvik VM监视所有的程序(APK文件)和框架,并且为它们创建一个依存关系树。DalvikVM通过这个依存关系树来为每个程序优化代码并存储在Dalvik缓存(dalvik-cache)中。这样,所有程序在运行时都会使用优化过的代码。当一个程序(或者框架库)发生变更,Dalvik VM将会重新优化代码并且再次将其存在缓存中。在cache/dalvik-cache是存放system上的程序生成的dex文件,而data/dalvik-cache则是存放data/app生成的dex文件。也就是,本发明重点在于对data/app生成的dex文件进行的分析和处理,但是应该理解,对于system上的程序生成的dex文件,本发明的理论和操作同样适用。
S102:解析每个文件,得到每个文件包含的所有函数的信息结构,计算每个函数的校验码;
仍以dex文件为例,解析文件得到文件包含的所有的函数信息结构包括:对dex文件进行反编译,得到dex文件所包含的所有函数经过反编译的信息结构。
其中,对dex文件进行反编译(或称为:反汇编)有多种方式。
第一种方式是,根据dex文件格式对dex文件进行解析,得到每个类的函数信息结构体;根据函数信息结构体中的字段,确定dex文件的函数的位置及大小,得到反编译的函数信息结构。其中,通过解析函数信息结构体,得到指示dex文件的函数位置的字节码数组字段以及指示dex文件的函数大小的列表长度字段,从而确定dex文件的函数的位置及大小。
例如,根据dex文件格式,解析dex文件,查找到每个类得函数信息体。比如函数信息结构体包含如表1中的字段。
表1
其中,每个函数信息结构体中的insns_size和insns字段,分别代表了该函数大小及位置。那么,就可以根据insns_size和insns这两个字段,反编译出函数的信息结构。反编译的信息结构是由Dalvik VM字节码构成的,后续会详细介绍。
第二种方式是,利用dex文件反编译工具,将dex文件反编译为虚拟机字节码。
如前介绍的,Dalvik虚拟机运行的是Dalvik字节码,其以一个dex(DalvikExecutable)可执行文件形式存在,Dalvik虚拟机通过解释dex文件来执行代码。目前有一些工具,可将DEX文件反汇编成Dalvik汇编代码。这类dex文件反编译工具包括:baksmali、Dedexer1.26、dexdump、dexinspecto03-12-12r、IDA Pro、androguard、dex2jar、010Editor等。
可见,通过对dex文件的反编译,可以得到反编译的所有函数信息结构。其中,函数信息结构包含函数执行代码,本发明实施例中,是由虚拟机指令序列和虚拟机助记符序列构成的,如下面的例子,由Dalvik VM的指令序列和Dalvik VM的助记符序列构成函数信息结构。
例如,根据本发明一个实施例对dex文件进行反编译得到的函数信息结构如下:
可见,dex文件被反编译成Dalvik VM的指令序列和Dalvik VM的助记符序列。如上例子,在反编译得到的函数信息结构中,机器码字段中的每一行的前2个数字是指令序列(上例子左侧被圈部分),而指令序列对应的部分为助记符(上例子右侧,部分被圈,未全部选择)。助记符主要是为了方便用户交流和代码编写。
在得到每个函数的信息结构之后,就可以计算出该函数的校验码,后续利用校验码可表示其对应的唯一函数。可以采用现有或未来的算法计算出函数的校验码。例如,采用哈希(hash)算法计算出函数的hash值作为前述校验码。其中,hash算法包括多种,例如CRC(循环冗余码校验,Cyclical Redundancy Check)、MD5(消息摘要算法第五版,MessageDigest Algorithm)或SHA(安全哈希算法(Secure Hash Algorithm)等。
S103:判断各文件中是否包含各个校验码对应的函数,从而统计每个函数在黑样本文件和白样本文件中出现的次数;
本步骤是针对步骤S101获取的一批黑样本文件和白样本文件进行hash值出现次数的统计。
假设通过对黑样本文件和白样本文件的分析、计算,确定出每个函数的hash值;然后统计各个hash值在黑样本文件及白样本文件中所出现的次数。
假设共有n个样本文件(包括一部分黑样本文件和一部分白样本文件),其中,第1个文件包含函数hash值A、B、C;第2个文件包含函数hash值A、C、D;第3个文件包含函数hash值B、C、E;……第n个文件包含函数hash值C、D。总之,在对所有文件进行分析之后,假设共确定了5个函数hash值A、B、C、D、E。然后统计这5个函数hash值在黑样本中出现的次数,在白样本文件中出现的次数。假设经过统计之后,结果如表2所示。
表2
本领域技术人员理解,不同函数具有不同的hash值,也就是不同的hash值代表了不同的函数,因此后续也采用A、B、C、D、E表示5个函数或5个特征。通过上述对hash值出现在文件中的次数,就可以确定每个函数在文件中出现的次数。
优选地,在统计每个函数在黑样本文件和白样本文件中出现的次数之前,还包括:将函数的校验码进行文件内去重。具体地,将函数的校验码进行文件内去重是指:针对每一个文件,如果有多个函数具有相同校验码,则从所述多个函数中提取出一个函数作为该校验码的函数。例如,假设一个dex文件,通过对其解析,获得了它所包含的所有函数的信息结构,假设解析出三个信息结构s1、s2和s3,进一步通过hash算法,得到了三个信息结构s1、s2和s3的3个hash值:hash1、hash2和hash3。本领域技术人员理解,不同函数具有不同的hash值,也就是不同的hash值代表了不同的函数。假设上述三个hash值中有的相同,比如hash1=hash2,那么认为它们代表相同的函数。此时,从s1和s2中任选一个即可,而将另一个抛弃。
S104:根据仅在黑样本文件中出现而未在白样本文件中出现的函数,提取出黑样本特征,或者,根据仅在白样本文件中出现而未在黑样本文件中出现的函数,提取出白样本特征。
在提取样本时,选择仅在黑样本文件中出现而未在白样本文件中出现的函数进行黑样本特征,比如仍以表1继续说明,选择函数B、E进行黑样本特征提取,具体地,可以将函数B、E作为黑样本特征,或者将函数B、E的部分代码作为黑样本特征。同理,选择仅在白样本文件中出现而未在黑样本文件中出现的函数进行白样本特征,比如仍以表1继续说明,选择函数C进行白样本特征提取,具体地,可以将函数C作为白样本特征,或者将函数C的部分代码作为白样本特征。
在S104提取出黑样本特征之后,还可以继续执行以下步骤:将黑样本特征添加到黑样本特征库中;利用黑样本特征库对目标文件进行匹配,如果目标文件包含所述黑样本特征对应的函数或函数的子集,确定存在恶意代码。如本领域技术人员理解的,可利用黑样本特征库中黑样本特征对应的函数对目标文件进行样本特征查杀、基于虚拟机查杀、启发式查杀或相似样本聚类。
下面对恶意代码及恶意代码的防护方案(样本特征查杀、基于虚拟机查杀、启发式查杀和相似样本聚类)进行介绍。
恶意代码(Malicious Code)是指通过存储介质或网络进行传播,在未经授权认证的情况下破坏操作系统完整性、窃取系统中未公开秘密信息的程序或代码。以手机为例,手机恶意代码是指针对手机、PDA等手持设备的恶意代码。手机恶意代码可以简单地划分为复制型恶意代码和非复制型恶意代码。其中复制型恶意代码主要包括病毒(Virus)、蠕虫(Worm),非复制型恶意代码主要包括特洛伊木马后门程序(Trojan Horse)、流氓软件(Rogue Software)、恶意移动代码(Malicious Mobile Code)以及Rootkit程序等。
手机恶意代码防护技术针对恶意代码进行防护。手机恶意代码防护方式包括多种。例如,特征值扫描方式,它需要预先学习建立恶意代码特征库,恶意代码特征库中保存的特征值可以是一段连续的固定字符串,也可以是几段中间插有其他不确定字符的不连续的字符串确定其中的特征串;在扫描时,基于特征库中的特征值或特征串去检测待侧文件或内存,发现匹配项则可确定目标感染了恶意代码。再如,基于虚拟机技术的恶意代码防护。此类防护方案主要针对多态和变形病毒。所谓的虚拟机是指通过软件模拟具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。该方案也称为软件模拟法,是一种软件分析器,用软件方法来模拟和分析程序的运行。它实质是在内存中模拟出一个小的封闭程序执行环境,所有待查杀文件都在其中被虚拟执行。采用虚拟机技术进行杀毒时,首先使用的还是特征值扫描技术,当发现目标具有加密恶意代码的特征时,才会启动虚拟机模块让加密代码自行解码,解码之后,就可以采用传统的特征值扫描方式进行查杀。再如,启发式扫描方式。启发式扫描方案主要针对恶意代码的不断变种以及为了加强对未知恶意代码的研究。所谓“启发式”源自人工智能,是指“自我发现的能力”或“运用某种方式或方法去判定事物的知识和技能”。恶意代码的启发式扫描是指扫描软件能够利用从经验中提取的规则,通过分析程序的结构和它的行为来发现病毒。因为恶意代码要达到感染和破坏的目的,通常的行为都会有一定的特征,例如非常规读写文件、终结自身、非常规切入零环等。因此可以根据扫描特定的行为或多种行为的组合来判断一个程序是否为恶意代码。此外,还可以对目标程序进行相似样本聚类,例如采用K均值聚类算法对分析确定的相似样本进行聚类。
不论哪种防护方式,其核心都包含两部分,第一是组织合理的恶意代码特征库,第二是高效的扫描算法(也称为匹配算法)。匹配算法一般分为单模式匹配算法和多模式匹配算法两种。单模式匹配算法包括BF(Brute-Force)算法、KMP(Knuth-Morris-Pratt)算法、BM(Boyer-Moore)算法和QS(Quick Search)算法等。多模式匹配算法包括经典多模式匹配DFSA算法和基于有序二叉树的多模式匹配算法。另外,还可将匹配算法分为模糊匹配算法、相似匹配算法。
需要说明的是,本发明不限定采用何种恶意代码防护方案对恶意代码进行检测,例如,可以采用上面介绍的样本特征查杀(特征值扫描)、基于虚拟机查杀或者启发式查杀,另外还可以进行相似样本聚类。而且,对于匹配算法也不作限制,例如,可以采用上面介绍的模糊匹配算法或者相似匹配算法等。
有这么一种情况,检出函数A的文件集包含了检出函数B的文件集,这种情况优选使用函数A作为特征,而抛弃函数B特征。这是因为,在获取大量可提取黑样本特征后,就需要考虑如何用最少的特征来检出最多的文件,本发明实施例通过特征优选法来达到此目的。
概括而言,特征优选法包括:针对不同特征的不同文件集,如果一个文件集包含另一个文件集中所有文件,则将具有较大范围的文件集对应的特征保留,而抛弃具有较小范围的文件集对应的特征。例如,假设两个特征:第一特征和第二特征,包含所述第一特征的文件构成第一文件集,包含所述第二特征的文件构成第二文件集,如果第一文件集包含第二文件集中所有的文件,则保留第一特征,而抛弃第二特征。
图2示出了根据本发明一个实施例的特征提取的方法中特征优选流程图。该特征优选包括以下步骤:
S201:为每个特征针对所有文件建立向量;
S202:初始化一个集合;
S203:将集合依次与每一个特征的向量做比较;
S204:判断集合是否包括被比较的向量;如果集合包括被比较的向量,则执行S205,如果集合不包括被比较的向量,则执行S206;
S205:保持集合;
S206:取集合与被比较向量的并集;
S207:判断是否比较完所有特征的向量,如果是,则执行S208,否则返回执行S203与下一个特征向量进行比较;
S208:将最终获得的集合中所包含的特征作为最后保留下来的特征。
下面给出一个具体例子。
假设共有黑样本文件M个,可提取特征(即函数)N个。为每个可提取特征生成一个M维的向量,第i维的向量代表着索引为i的黑样本文件是否可以使用该特征检出。
例如,特征A生成的向量为1:1,2:0,3:1,4:1,5:0,6:0,这代表该特征可以检出索引为1,3,4三个文件。
步骤:
初始化一个集合SA,依次和每个特征向量做比较;
如果SA包含Mi则继续和下一个特征向量集合比较;
否则取SA和Mi的并集然后继续和下一个特征向量集合做比较。
如特征A、B、C、D生成的向量如下
A:1:0,2:0,3:1,4:1,5:0,6:0
B:1:1,2:1,3:1,4:0,5:0,6:1
C:1:1,2:1,3:1,4:1,5:0,6:0
D:1:1,2:0,3:1,4:1,5:1,6:0
第一步:
比较A、B的向量,因为A不包含B,所以取A、B并集后得倒检测向量为:AB:1:1,2:1,3:1,4:1,5:0,6:1;
第二步:
使用AB和C比较,因为C可以检测的文件,AB已经可以检测,所以抛弃C;
循环第二步:
使用AB和D比较,因为D可以检出文件5,而AB不行,所以取AB和D的并集;
即ABD:1:1,2:1,3:1,4:1,5:1,6:1
如果后面还有特征E,则用ABD和特征E做比较,类似第二步。
针对上面A、B、C、D四个向量,最后选的特征为A、B、D。
由此,就得到可以检出这M个文件的最短特征集合。
可见,本发明实施例通过对获取的黑样本文件和白样本文件进行分析、计算,统计每个函数的hash值在文件中出现的次数,最后将仅在黑样本文件中出现而未在白样本文件中出现的函数作为特征提取的基础。由此,通过快速、准确地提取特征可保证构建高效的特征库,保证防护技术的实施。优选地,可以对特征进行优选,从而在获取大量可提取黑样本特征后,利用最少的特征来检出最多的文件。
与上述方法相对应,本发明实施例还提供一种特征提取的装置。该装置可以通过软件、硬件或软硬件结合实现。具体地,该装置可以是指一个终端设备,也可以是指设备内部的功能实体。例如,该装置可以是指手机内部的功能模块。优选地,该装置运行在Android操作系统下。
该特征提取装置包括:
文件获取单元301,用于从智能终端操作系统的应用程序层,获取一批黑样本文件和白样本文件;
解析单元302,用于解析每个文件,得到每个文件包含的所有函数的信息结构;
校验码计算单元303,用于计算每个函数的校验码;
统计单元304,用于判断各文件中是否包含各个校验码对应的函数,从而统计每个函数在黑样本文件和白样本文件中出现的次数;
提取单元305,用于根据仅在黑样本文件中出现而未在白样本文件中出现的函数,提取出黑样本特征,或者,根据仅在白样本文件中出现而未在黑样本文件中出现的函数,提取出白样本特征。
优选地,该装置还包括特征优选单元306,用于针对不同特征的不同文件集,如果一个文件集包含另一个文件集中所有文件,则将具有较大范围的文件集对应的特征保留,而抛弃具有较小范围的文件集对应的特征。比如,在所述第一文件集包含所述第二文件集中所有的文件时,则特征优选单元306保留第一文件集对应的第一特征,而抛弃所述第二文件集对应的第二特征。
或者,该装置还包括特征优选单元306,用于为每个特征针对所有文件建立向量;初始化一个集合,依次与每一个特征的向量做比较;如果集合包括被比较的特征,则保持集合,如果集合不包括被比较的特征,则取集合与被比较向量的并集;依次比较完所有特征的向量,将最终获得的集合中所包含的特征作为最后保留的特征。
优选地,该装置还包括:内去重单元307,用于将函数的校验码进行文件内去重。例如,所述内去重单元307具体用于,针对每一个文件,如果有多个函数具有相同校验码,则从所述多个函数中提取出一个函数作为该校验码的函数。
其中,所述黑样本文件和白样本文件均为虚拟机执行文件;所述解析单元302具体用于,对所述虚拟机执行文件进行反编译,得到虚拟机执行文件所包含的所有函数经过反编译的信息结构。
其中,所述校验码计算单元303具体用于,利用哈希算法,计算所述函数的信息结构体的哈希值,将哈希值作为所述函数的校验码。
其中,所述解析单元302进一步用于,根据虚拟机执行文件格式对虚拟机执行文件进行解析,得到每个类的函数信息结构体;根据所述函数信息结构体中的字段,确定所述虚拟机执行文件的每个函数的位置及大小,得到每个函数经过反编译的函数信息结构。
所述解析单元302进一步用于,解析所述函数信息结构体,得到指示虚拟机执行文件的函数位置的字节码数组字段以及指示虚拟机执行文件的函数大小的列表长度字段;根据所述字节码数组字段以及所述列表长度字段,确定所述虚拟机执行文件的函数的位置及大小。
所述解析单元302具体用于,利用虚拟机执行文件反编译工具,将所述虚拟机执行文件反编译为虚拟机字节码。
其中,所述提取单元303具体用于,将所述仅在黑样本文件中出现而未在白样本文件中出现的函数作为所述黑样本特征,或者将所述仅在黑样本文件中出现而未在白样本文件中出现的函数的部分代码作为所述黑样本特征;或者,
将所述仅在白样本文件中出现而未在黑样本文件中出现的函数作为所述白样本特征,或者将所述仅在白样本文件中出现而未在黑样本文件中出现的函数的部分代码作为所述白样本特征。
优选地,该装置还包括:特征库添加单元308,用于将所述黑样本特征添加到黑样本特征库中,以及,匹配单元309,用于利用黑样本特征库对目标文件进行匹配,如果目标文件包含所述黑样本特征对应的函数或函数的子集,确定存在恶意代码。其中,匹配单元具体地可利用黑样本特征库中黑样本特征对应的函数对目标文件进行样本特征查杀、基于虚拟机查杀、启发式查杀,和/或,相似样本聚类。
其中,所述黑样本文件是指经过预先初步判断包含黑样本的文件,所述白样本文件是指经过预先初步判断不包含黑样本的文件。
其中,所述文件获取单元301具体用于,从智能终端操作系统的应用程序层,查找到应用程序的安装包;解析所述安装包,得到所述应用程序的虚拟机执行文件;将所述虚拟机执行文件作为黑样本文件或白样本文件。
关于装置的具体实现,可参见方法实施例,此处不赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的特征提取的装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开以下方案:
A1、一种特征提取方法,包括:
从智能终端操作系统的应用程序层,获取一批黑样本文件和白样本文件;
解析每个文件,得到每个文件包含的所有函数的信息结构,计算每个函数的校验码;
判断各文件中是否包含各个校验码对应的函数,从而统计每个函数在黑样本文件和白样本文件中出现的次数;
根据仅在黑样本文件中出现而未在白样本文件中出现的函数,提取出黑样本特征,或者,根据仅在白样本文件中出现而未在黑样本文件中出现的函数,提取出白样本特征。
A2、如A1所述的方法,在统计出黑样本或白样本之后,还包括:对特征进行优选,具体为:
为每个特征针对所有文件建立向量;初始化一个集合,依次与每一个特征的向量做比较;如果集合包括被比较的特征,则保持集合,如果集合不包括被比较的特征,则取集合与被比较向量的并集;依次比较完所有特征的向量,将最终获得的集合中所包含的特征作为最后保留的特征。
A3、如A1所述的方法,在统计出黑样本或白样本之后,还包括:对特征进行优选,具体为:
针对不同特征的不同文件集,如果一个文件集包含另一个文件集中所有文件,则将具有较大范围的文件集对应的特征保留,而抛弃具有较小范围的文件集对应的特征。
A4、如A3所述的方法,所述特征包括第一特征和第二特征,包含所述第一特征的文件构成第一文件集,包含所述第二特征的文件构成第二文件集,如果所述第一文件集包含所述第二文件集中所有的文件,则保留所述第一特征,而抛弃所述第二特征。
A5、如A1所述的方法,在所述统计每个函数在黑样本文件和白样本文件中出现的次数之前,还包括:将函数的校验码进行文件内去重。
A6、如A5所述的方法,所述将函数的校验码进行文件内去重包括:
针对每一个文件,如果有多个函数具有相同校验码,则从所述多个函数中提取出一个函数作为该校验码的函数。
A7、如A1所述的方法,所述黑样本文件和白样本文件均为虚拟机执行文件;
所述解析每个文件,得到每个文件包含的所有的函数信息结构包括:
对所述虚拟机执行文件进行反编译,得到虚拟机执行文件所包含的所有函数经过反编译的信息结构。
A8、如A7所述的方法,所述计算每个函数的校验码包括:
利用哈希算法,计算所述函数的信息结构体的哈希值,将哈希值作为所述函数的校验码。
A9、如A7所述的方法,所述对所述虚拟机执行文件进行反编译,得到虚拟机执行文件所包含的所有函数经过反编译的的信息结构包括:
根据虚拟机执行文件格式对虚拟机执行文件进行解析,得到每个类的函数信息结构体;
根据所述函数信息结构体中的字段,确定所述虚拟机执行文件的每个函数的位置及大小,得到每个函数经过反编译的函数信息结构。
A10、如A9所述的方法,所述根据函数信息结构体中的字段,确定所述虚拟机执行文件的函数的位置及大小包括:
解析所述函数信息结构体,得到指示虚拟机执行文件的函数位置的字节码数组字段以及指示虚拟机执行文件的函数大小的列表长度字段;
根据所述字节码数组字段以及所述列表长度字段,确定所述虚拟机执行文件的函数的位置及大小。
A11、如A7所述的方法,所述对所述虚拟机执行文件进行反编译,得到虚拟机执行文件所包含的所有函数经过反编译的的信息结构包括:
利用虚拟机执行文件反编译工具,将所述虚拟机执行文件反编译为虚拟机字节码。
A12、如A1所述的方法,
所述根据仅在黑样本文件中出现而未在白样本文件中出现的函数,提取出黑样本特征包括:将所述仅在黑样本文件中出现而未在白样本文件中出现的函数作为所述黑样本特征,或者将所述仅在黑样本文件中出现而未在白样本文件中出现的函数的部分代码作为所述黑样本特征;
所述根据仅在白样本文件中出现而未在黑样本文件中出现的函数,提取出白样本特征包括:将所述仅在白样本文件中出现而未在黑样本文件中出现的函数作为所述白样本特征,或者将所述仅在白样本文件中出现而未在黑样本文件中出现的函数的部分代码作为所述白样本特征。
A13、如A1所述的方法,还包括:
将所述黑样本特征添加到黑样本特征库中,
利用黑样本特征库对目标文件进行匹配,如果目标文件包含所述黑样本特征对应的函数或函数的子集,确定存在恶意代码。
A14、如A13所述的方法,利用所述黑样本特征库中黑样本特征对应的函数对目标文件进行样本特征查杀、基于虚拟机查杀、启发式查杀,和/或,相似样本聚类。
A15、如A1所述的方法,所述黑样本文件是指经过预先初步判断包含黑样本的文件,所述白样本文件是指经过预先初步判断不包含黑样本的文件。
A16、如A15所述的方法,所述获取一批黑样本文件和白样本文件包括:
从智能终端操作系统的应用程序层,查找到应用程序的安装包;
解析所述安装包,得到所述应用程序的虚拟机执行文件;
将所述虚拟机执行文件作为黑样本文件或白样本文件。
A17、如A1-A16任一项所述的方法,所述操作系统是指安卓系统。
B18、一种特征提取装置,包括:
文件获取单元,用于从智能终端操作系统的应用程序层,获取一批黑样本文件和白样本文件;
解析单元,用于解析每个文件,得到每个文件包含的所有函数的信息结构;
校验码计算单元,用于计算每个函数的校验码;
统计单元,用于判断各文件中是否包含各个校验码对应的函数,从而统计每个函数在黑样本文件和白样本文件中出现的次数;
提取单元,用于根据仅在黑样本文件中出现而未在白样本文件中出现的函数,提取出黑样本特征,或者,根据仅在白样本文件中出现而未在黑样本文件中出现的函数,提取出白样本特征。
B19、如B18所述的装置,还包括:特征优选单元,用于为每个特征针对所有文件建立向量;初始化一个集合,依次与每一个特征的向量做比较;如果集合包括被比较的特征,则保持集合,如果集合不包括被比较的特征,则取集合与被比较向量的并集;依次比较完所有特征的向量,将最终获得的集合中所包含的特征作为最后保留的特征。
B20、如B18所述的装置,还包括特征优选单元,用于针对不同特征的不同文件集,如果一个文件集包含另一个文件集中所有文件,则将具有较大范围的文件集对应的特征保留,而抛弃具有较小范围的文件集对应的特征。
B21、如权利要求20所述的装置,所述特征优选单元,在所述第一文件集包含所述第二文件集中所有的文件时,则保留第一文件集对应的第一特征,而抛弃所述第二文件集对应的第二特征。
B22、如B18所述的装置,还包括:内去重单元,用于将函数的校验码进行文件内去重。
B23、如B22所述的装置,所述内去重单元具体用于,针对每一个文件,如果有多个函数具有相同校验码,则从所述多个函数中提取出一个函数作为该校验码的函数。
B24、如B18所述的装置,所述黑样本文件和白样本文件均为虚拟机执行文件;所述解析单元具体用于,对所述虚拟机执行文件进行反编译,得到虚拟机执行文件所包含的所有函数经过反编译的信息结构。
B25、如B24所述的装置,所述校验码计算单元具体用于,利用哈希算法,计算所述函数的信息结构体的哈希值,将哈希值作为所述函数的校验码。
B26、如B24所述的装置,所述解析单元进一步用于,根据虚拟机执行文件格式对虚拟机执行文件进行解析,得到每个类的函数信息结构体;根据所述函数信息结构体中的字段,确定所述虚拟机执行文件的每个函数的位置及大小,得到每个函数经过反编译的函数信息结构。
B27、如B26所述的装置,所述解析单元进一步用于,解析所述函数信息结构体,得到指示虚拟机执行文件的函数位置的字节码数组字段以及指示虚拟机执行文件的函数大小的列表长度字段;根据所述字节码数组字段以及所述列表长度字段,确定所述虚拟机执行文件的函数的位置及大小。
B28、如B24所述的装置,所述解析单元具体用于,利用虚拟机执行文件反编译工具,将所述虚拟机执行文件反编译为虚拟机字节码。
B29、如B18所述的装置,所述提取单元具体用于,将所述仅在黑样本文件中出现而未在白样本文件中出现的函数作为所述黑样本特征,或者将所述仅在黑样本文件中出现而未在白样本文件中出现的函数的部分代码作为所述黑样本特征;或者,
将所述仅在白样本文件中出现而未在黑样本文件中出现的函数作为所述白样本特征,或者将所述仅在白样本文件中出现而未在黑样本文件中出现的函数的部分代码作为所述白样本特征。
B30、如B18所述的装置,还包括:
特征库添加单元,用于将所述黑样本特征添加到黑样本特征库中,
匹配单元,用于利用黑样本特征库对目标文件进行匹配,如果目标文件包含所述黑样本特征对应的函数或函数的子集,确定存在恶意代码。
B31、如B30所述的装置,所述匹配单元利用黑样本特征库中黑样本特征对应的函数对目标文件进行样本特征查杀、基于虚拟机查杀、启发式查杀,和/或,相似样本聚类。
B32、如B18所述的装置,所述黑样本文件是指经过预先初步判断包含黑样本的文件,所述白样本文件是指经过预先初步判断不包含黑样本的文件。
B33、如B32所述的装置,所述文件获取单元具体用于,从智能终端操作系统的应用程序层,查找到应用程序的安装包;解析所述安装包,得到所述应用程序的虚拟机执行文件;将所述虚拟机执行文件作为黑样本文件或白样本文件。
B34、如B18-B33任一项所述的装置,所述操作系统是指安卓系统。

Claims (34)

1.一种特征提取方法,其特征在于,包括:
从智能终端操作系统的应用程序层,获取一批黑样本文件和白样本文件;
解析每个文件,得到每个文件包含的所有函数的信息结构,计算每个函数的校验码;
判断各文件中是否包含各个校验码对应的函数,从而统计每个函数在黑样本文件和白样本文件中出现的次数;
根据仅在黑样本文件中出现而未在白样本文件中出现的函数,提取出黑样本特征,或者,根据仅在白样本文件中出现而未在黑样本文件中出现的函数,提取出白样本特征。
2.如权利要求1所述的特征提取方法,其特征在于,在统计出黑样本或白样本之后,还包括:对特征进行优选,具体为:
为每个特征针对所有文件建立向量;初始化一个集合,依次与每一个特征的向量做比较;如果集合包括被比较的特征,则保持集合,如果集合不包括被比较的特征,则取集合与被比较向量的并集;依次比较完所有特征的向量,将最终获得的集合中所包含的特征作为最后保留的特征。
3.如权利要求1所述的特征提取方法,其特征在于,在统计出黑样本或白样本之后,还包括:对特征进行优选,具体为:
针对不同特征的不同文件集,如果一个文件集包含另一个文件集中所有文件,则将具有较大范围的文件集对应的特征保留,而抛弃具有较小范围的文件集对应的特征。
4.如权利要求3所述的特征提取方法,其特征在于,所述特征包括第一特征和第二特征,包含所述第一特征的文件构成第一文件集,包含所述第二特征的文件构成第二文件集,如果所述第一文件集包含所述第二文件集中所有的文件,则保留所述第一特征,而抛弃所述第二特征。
5.如权利要求1所述的特征提取方法,其特征在于,在所述统计每个函数在黑样本文件和白样本文件中出现的次数之前,还包括:将函数的校验码进行文件内去重。
6.如权利要求5所述的特征提取方法,其特征在于,所述将函数的校验码进行文件内去重包括:
针对每一个文件,如果有多个函数具有相同校验码,则从所述多个函数中提取出一个函数作为该校验码的函数。
7.如权利要求1所述的特征提取方法,其特征在于,所述黑样本文件和白样本文件均为虚拟机执行文件;
所述解析每个文件,得到每个文件包含的所有的函数信息结构包括:
对所述虚拟机执行文件进行反编译,得到虚拟机执行文件所包含的所有函数经过反编译的信息结构。
8.如权利要求7所述的特征提取方法,其特征在于,所述计算每个函数的校验码包括:
利用哈希算法,计算所述函数的信息结构体的哈希值,将哈希值作为所述函数的校验码。
9.如权利要求7所述的特征提取方法,其特征在于,所述对所述虚拟机执行文件进行反编译,得到虚拟机执行文件所包含的所有函数经过反编译的的信息结构包括:
根据虚拟机执行文件格式对虚拟机执行文件进行解析,得到每个类的函数信息结构体;
根据所述函数信息结构体中的字段,确定所述虚拟机执行文件的每个函数的位置及大小,得到每个函数经过反编译的函数信息结构。
10.如权利要求9所述的特征提取方法,其特征在于,所述根据函数信息结构体中的字段,确定所述虚拟机执行文件的函数的位置及大小包括:
解析所述函数信息结构体,得到指示虚拟机执行文件的函数位置的字节码数组字段以及指示虚拟机执行文件的函数大小的列表长度字段;
根据所述字节码数组字段以及所述列表长度字段,确定所述虚拟机执行文件的函数的位置及大小。
11.如权利要求7所述的特征提取方法,其特征在于,所述对所述虚拟机执行文件进行反编译,得到虚拟机执行文件所包含的所有函数经过反编译的的信息结构包括:
利用虚拟机执行文件反编译工具,将所述虚拟机执行文件反编译为虚拟机字节码。
12.如权利要求1所述的特征提取方法,其特征在于,
所述根据仅在黑样本文件中出现而未在白样本文件中出现的函数,提取出黑样本特征包括:将所述仅在黑样本文件中出现而未在白样本文件中出现的函数作为所述黑样本特征,或者将所述仅在黑样本文件中出现而未在白样本文件中出现的函数的部分代码作为所述黑样本特征;
所述根据仅在白样本文件中出现而未在黑样本文件中出现的函数,提取出白样本特征包括:将所述仅在白样本文件中出现而未在黑样本文件中出现的函数作为所述白样本特征,或者将所述仅在白样本文件中出现而未在黑样本文件中出现的函数的部分代码作为所述白样本特征。
13.如权利要求1所述的特征提取方法,其特征在于,还包括:
将所述黑样本特征添加到黑样本特征库中,
利用黑样本特征库对目标文件进行匹配,如果目标文件包含所述黑样本特征对应的函数或函数的子集,确定存在恶意代码。
14.如权利要求13所述的特征提取方法,其特征在于,利用所述黑样本特征库中黑样本特征对应的函数对目标文件进行样本特征查杀、基于虚拟机查杀、启发式查杀,和/或,相似样本聚类。
15.如权利要求1所述的特征提取方法,其特征在于,所述黑样本文件是指经过预先初步判断包含黑样本的文件,所述白样本文件是指经过预先初步判断不包含黑样本的文件。
16.如权利要求15所述的特征提取方法,其特征在于,所述获取一批黑样本文件和白样本文件包括:
从智能终端操作系统的应用程序层,查找到应用程序的安装包;
解析所述安装包,得到所述应用程序的虚拟机执行文件;
将所述虚拟机执行文件作为黑样本文件或白样本文件。
17.如权利要求1-16任一项所述的特征提取方法,其特征在于,所述操作系统是指安卓系统。
18.一种特征提取装置,其特征在于,包括:
文件获取单元,用于从智能终端操作系统的应用程序层,获取一批黑样本文件和白样本文件;
解析单元,用于解析每个文件,得到每个文件包含的所有函数的信息结构;
校验码计算单元,用于计算每个函数的校验码;
统计单元,用于判断各文件中是否包含各个校验码对应的函数,从而统计每个函数在黑样本文件和白样本文件中出现的次数;
提取单元,用于根据仅在黑样本文件中出现而未在白样本文件中出现的函数,提取出黑样本特征,或者,根据仅在白样本文件中出现而未在黑样本文件中出现的函数,提取出白样本特征。
19.如权利要求18所述的特征提取装置,其特征在于,还包括:特征优选单元,用于为每个特征针对所有文件建立向量;初始化一个集合,依次与每一个特征的向量做比较;如果集合包括被比较的特征,则保持集合,如果集合不包括被比较的特征,则取集合与被比较向量的并集;依次比较完所有特征的向量,将最终获得的集合中所包含的特征作为最后保留的特征。
20.如权利要求18所述的特征提取装置,其特征在于,还包括特征优选单元,用于针对不同特征的不同文件集,如果一个文件集包含另一个文件集中所有文件,则将具有较大范围的文件集对应的特征保留,而抛弃具有较小范围的文件集对应的特征。
21.如权利要求20所述的特征提取装置,其特征在于,所述特征优选单元,在所述第一文件集包含所述第二文件集中所有的文件时,则保留第一文件集对应的第一特征,而抛弃所述第二文件集对应的第二特征。
22.如权利要求18所述的特征提取装置,其特征在于,还包括:内去重单元,用于将函数的校验码进行文件内去重。
23.如权利要求22所述的特征提取装置,其特征在于,所述内去重单元具体用于,针对每一个文件,如果有多个函数具有相同校验码,则从所述多个函数中提取出一个函数作为该校验码的函数。
24.如权利要求18所述的特征提取装置,其特征在于,所述黑样本文件和白样本文件均为虚拟机执行文件;所述解析单元具体用于,对所述虚拟机执行文件进行反编译,得到虚拟机执行文件所包含的所有函数经过反编译的信息结构。
25.如权利要求24所述的特征提取装置,其特征在于,所述校验码计算单元具体用于,利用哈希算法,计算所述函数的信息结构体的哈希值,将哈希值作为所述函数的校验码。
26.如权利要求24所述的特征提取装置,其特征在于,所述解析单元进一步用于,根据虚拟机执行文件格式对虚拟机执行文件进行解析,得到每个类的函数信息结构体;根据所述函数信息结构体中的字段,确定所述虚拟机执行文件的每个函数的位置及大小,得到每个函数经过反编译的函数信息结构。
27.如权利要求26所述的特征提取装置,其特征在于,所述解析单元进一步用于,解析所述函数信息结构体,得到指示虚拟机执行文件的函数位置的字节码数组字段以及指示虚拟机执行文件的函数大小的列表长度字段;根据所述字节码数组字段以及所述列表长度字段,确定所述虚拟机执行文件的函数的位置及大小。
28.如权利要求24所述的特征提取装置,其特征在于,所述解析单元具体用于,利用虚拟机执行文件反编译工具,将所述虚拟机执行文件反编译为虚拟机字节码。
29.如权利要求18所述的特征提取装置,其特征在于,所述提取单元具体用于,将所述仅在黑样本文件中出现而未在白样本文件中出现的函数作为所述黑样本特征,或者将所述仅在黑样本文件中出现而未在白样本文件中出现的函数的部分代码作为所述黑样本特征;或者,
将所述仅在白样本文件中出现而未在黑样本文件中出现的函数作为所述白样本特征,或者将所述仅在白样本文件中出现而未在黑样本文件中出现的函数的部分代码作为所述白样本特征。
30.如权利要求18所述的特征提取装置,其特征在于,还包括:
特征库添加单元,用于将所述黑样本特征添加到黑样本特征库中,
匹配单元,用于利用黑样本特征库对目标文件进行匹配,如果目标文件包含所述黑样本特征对应的函数或函数的子集,确定存在恶意代码。
31.如权利要求30所述的特征提取装置,其特征在于,所述匹配单元利用黑样本特征库中黑样本特征对应的函数对目标文件进行样本特征查杀、基于虚拟机查杀、启发式查杀,和/或,相似样本聚类。
32.如权利要求18所述的特征提取装置,其特征在于,所述黑样本文件是指经过预先初步判断包含黑样本的文件,所述白样本文件是指经过预先初步判断不包含黑样本的文件。
33.如权利要求32所述的特征提取装置,其特征在于,所述文件获取单元具体用于,从智能终端操作系统的应用程序层,查找到应用程序的安装包;解析所述安装包,得到所述应用程序的虚拟机执行文件;将所述虚拟机执行文件作为黑样本文件或白样本文件。
34.如权利要求18-33任一项所述的特征提取装置,其特征在于,所述操作系统是指安卓系统。
CN201310746033.6A 2013-12-30 2013-12-30 特征提取的方法及装置 Active CN103761476B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201310746033.6A CN103761476B (zh) 2013-12-30 2013-12-30 特征提取的方法及装置
PCT/CN2014/083910 WO2015101044A1 (zh) 2013-12-30 2014-08-07 特征提取的方法及装置
US15/109,343 US20170214704A1 (en) 2013-12-30 2014-08-07 Method and device for feature extraction
PCT/CN2014/090035 WO2015101097A1 (zh) 2013-12-30 2014-10-31 特征提取的方法及装置
US15/109,409 US10277617B2 (en) 2013-12-30 2014-10-31 Method and device for feature extraction

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310746033.6A CN103761476B (zh) 2013-12-30 2013-12-30 特征提取的方法及装置

Publications (2)

Publication Number Publication Date
CN103761476A CN103761476A (zh) 2014-04-30
CN103761476B true CN103761476B (zh) 2016-11-09

Family

ID=50528712

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310746033.6A Active CN103761476B (zh) 2013-12-30 2013-12-30 特征提取的方法及装置

Country Status (3)

Country Link
US (2) US20170214704A1 (zh)
CN (1) CN103761476B (zh)
WO (2) WO2015101044A1 (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103761475B (zh) * 2013-12-30 2017-04-26 北京奇虎科技有限公司 检测智能终端中恶意代码的方法及装置
CN103761476B (zh) 2013-12-30 2016-11-09 北京奇虎科技有限公司 特征提取的方法及装置
CN103902910B (zh) * 2013-12-30 2016-07-13 北京奇虎科技有限公司 检测智能终端中恶意代码的方法及装置
CN105574408B (zh) * 2014-10-11 2018-04-17 安一恒通(北京)科技有限公司 用于文件病毒检测的特征获取方法及文件病毒检测的方法
CN107209834B (zh) * 2015-02-04 2020-07-07 日本电信电话株式会社 恶意通信模式提取装置及其系统和方法、记录介质
CN105743877A (zh) * 2015-11-02 2016-07-06 哈尔滨安天科技股份有限公司 一种网络安全威胁情报处理方法及系统
CN106909839B (zh) * 2015-12-22 2020-04-17 北京奇虎科技有限公司 一种提取样本代码特征的方法及装置
CN106682507B (zh) * 2016-05-19 2019-05-14 腾讯科技(深圳)有限公司 病毒库的获取方法及装置、设备、服务器、系统
CN105897923B (zh) * 2016-05-31 2019-04-30 中国科学院信息工程研究所 一种app安装包网络流量识别方法
CN105975854B (zh) * 2016-06-20 2019-06-28 武汉绿色网络信息服务有限责任公司 一种恶意文件的检测方法和装置
CN106127044A (zh) * 2016-06-20 2016-11-16 武汉绿色网络信息服务有限责任公司 一种函数恶意程度的检测方法和装置
CN106548069B (zh) * 2016-07-18 2020-04-24 北京安天网络安全技术有限公司 一种基于排序算法的特征提取系统及方法
CN110023938B (zh) * 2016-09-30 2023-05-05 爱维士软件有限责任公司 利用函数长度统计确定文件相似度的系统和方法
CN111368296A (zh) * 2019-06-27 2020-07-03 北京关键科技股份有限公司 源码文件匹配率分析方法
CN112580026B (zh) * 2019-09-27 2024-02-20 奇安信科技集团股份有限公司 网络系统及终端病毒查杀方法和装置
US11068595B1 (en) * 2019-11-04 2021-07-20 Trend Micro Incorporated Generation of file digests for cybersecurity applications
CN110955895B (zh) * 2019-11-29 2022-03-29 珠海豹趣科技有限公司 一种操作拦截方法、装置及计算机可读存储介质
CN112818348B (zh) * 2021-02-24 2023-09-08 北京安信天行科技有限公司 一种勒索病毒文件识别与检测方法及系统
CN113536310A (zh) * 2021-07-08 2021-10-22 浙江网商银行股份有限公司 一种代码文件的处理方法、检验方法、装置及电子设备
US11537463B1 (en) 2021-07-16 2022-12-27 Seagate Technology Llc Data integrity verification optimized at unit level
CN116088888B (zh) * 2022-07-22 2023-10-31 荣耀终端有限公司 应用程序更新方法及相关装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102054149A (zh) * 2009-11-06 2011-05-11 中国科学院研究生院 一种恶意代码行为特征提取方法
CN102663077A (zh) * 2012-03-31 2012-09-12 福建师范大学 基于Hits算法的Web搜索结果安全性排序方法
CN102708186A (zh) * 2012-05-11 2012-10-03 上海交通大学 一种钓鱼网站的识别方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4736771B2 (ja) 2005-12-09 2011-07-27 ソニー株式会社 効果音生成装置及び効果音生成方法、並びにコンピュータ・プログラム
WO2007117567A2 (en) * 2006-04-06 2007-10-18 Smobile Systems Inc. Malware detection system and method for limited access mobile platforms
US8434151B1 (en) * 2008-01-04 2013-04-30 International Business Machines Corporation Detecting malicious software
US8984628B2 (en) * 2008-10-21 2015-03-17 Lookout, Inc. System and method for adverse mobile application identification
CN101604364B (zh) * 2009-07-10 2012-08-15 珠海金山软件有限公司 基于文件指令序列的计算机恶意程序分类系统和分类方法
CN101788915A (zh) * 2010-02-05 2010-07-28 北京工业大学 基于可信进程树的白名单更新方法
CN101923617B (zh) 2010-08-18 2013-03-20 北京奇虎科技有限公司 一种基于云的样本数据库动态维护方法
CN102567661B (zh) * 2010-12-31 2014-03-26 北京奇虎科技有限公司 基于机器学习的程序识别方法及装置
US20130067577A1 (en) * 2011-09-14 2013-03-14 F-Secure Corporation Malware scanning
CN103383720B (zh) * 2012-05-03 2016-03-09 北京金山安全软件有限公司 一种api日志的循环逻辑的识别方法及装置
CN103440459B (zh) * 2013-09-25 2016-04-06 西安交通大学 一种基于函数调用的Android恶意代码检测方法
CN103761476B (zh) * 2013-12-30 2016-11-09 北京奇虎科技有限公司 特征提取的方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102054149A (zh) * 2009-11-06 2011-05-11 中国科学院研究生院 一种恶意代码行为特征提取方法
CN102663077A (zh) * 2012-03-31 2012-09-12 福建师范大学 基于Hits算法的Web搜索结果安全性排序方法
CN102708186A (zh) * 2012-05-11 2012-10-03 上海交通大学 一种钓鱼网站的识别方法

Also Published As

Publication number Publication date
WO2015101044A1 (zh) 2015-07-09
US20160335437A1 (en) 2016-11-17
CN103761476A (zh) 2014-04-30
US20170214704A1 (en) 2017-07-27
WO2015101097A1 (zh) 2015-07-09
US10277617B2 (en) 2019-04-30

Similar Documents

Publication Publication Date Title
CN103761476B (zh) 特征提取的方法及装置
CN103761475B (zh) 检测智能终端中恶意代码的方法及装置
CN103902910B (zh) 检测智能终端中恶意代码的方法及装置
Laskov et al. Static detection of malicious JavaScript-bearing PDF documents
US8850581B2 (en) Identification of malware detection signature candidate code
Zhang et al. Libid: reliable identification of obfuscated third-party android libraries
WO2015101096A1 (zh) 检测智能终端中恶意代码的方法及装置
CN103473506A (zh) 用于识别恶意apk文件的方法和装置
CN106874180A (zh) 检测系统及其方法
CN101976319A (zh) 基于行为特征的BIOS固件Rootkit检测方法
Eskandari et al. Metamorphic malware detection using control flow graph mining
CN114077741B (zh) 软件供应链安全检测方法和装置、电子设备及存储介质
Li et al. ModelDiff: Testing-based DNN similarity comparison for model reuse detection
Li et al. CNN-based malware variants detection method for internet of things
CN108090360B (zh) 一种基于行为特征的安卓恶意应用分类方法及系统
CN110427755A (zh) 一种识别脚本文件的方法及装置
Nichols et al. Syntax-based improvements to plagiarism detectors and their evaluations
Lachtar et al. Toward mobile malware detection through convolutional neural networks
Pan et al. Webshell detection based on executable data characteristics of php code
CN106909841A (zh) 一种判断病毒代码的方法及装置
CN107085684B (zh) 程序特征的检测方法和装置
Wu et al. Detection of fake IoT app based on multidimensional similarity
Feichtner et al. Obfuscation-resilient code recognition in Android apps
CN105631336A (zh) 检测移动装置上的恶意文件的系统及方法
Hang et al. Malware detection method of android application based on simplification instructions

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant