CN107742079B - 恶意软件识别方法及*** - Google Patents

恶意软件识别方法及*** Download PDF

Info

Publication number
CN107742079B
CN107742079B CN201710973051.6A CN201710973051A CN107742079B CN 107742079 B CN107742079 B CN 107742079B CN 201710973051 A CN201710973051 A CN 201710973051A CN 107742079 B CN107742079 B CN 107742079B
Authority
CN
China
Prior art keywords
identified
application program
malicious
sample
feature vector
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
CN201710973051.6A
Other languages
English (en)
Other versions
CN107742079A (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.)
Shanghai Anheng Smart City Security Technology Co., Ltd
Original Assignee
Hangzhou Dbappsecurity 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 Hangzhou Dbappsecurity Technology Co Ltd filed Critical Hangzhou Dbappsecurity Technology Co Ltd
Priority to CN201710973051.6A priority Critical patent/CN107742079B/zh
Publication of CN107742079A publication Critical patent/CN107742079A/zh
Application granted granted Critical
Publication of CN107742079B publication Critical patent/CN107742079B/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/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供的一种恶意软件识别方法及***,涉及计算机技术领域。所述方法包括:在沙箱中运行待识别应用程序;记录所述待识别应用程序运行过程中对应的预先选中的多个特定底层函数的启用情况,以生成与所述待识别应用程序的行为链对应的待识别样本向量;获取恶意软件识别模型;根据所述恶意软件识别模型,采用机器学习的方式对所述待识别样本向量进行识别分类,以获得与所述待识别样本向量对应的待识别应用程序的识别结果。利用机器学习的方式对待识别应用程序的行为链进行识别,进而及时、准确地判断是否为恶意软件,实现对恶意软件的高效判断。

Description

恶意软件识别方法及***
技术领域
本发明涉及计算机技术领域,具体而言,涉及恶意软件识别方法及***。
背景技术
恶意软件是指在计算机***上执行恶意任务的病毒、蠕虫和特洛伊木马程序等。恶意软件会窃取用户信息、影响用户对电子设备的使用体验,甚至严重的威胁到用户的财产安全。
针对恶意软件虽然以提出大量的查杀方案,现有的查杀方案主要通过根据恶意软件的代码特征建立病毒库,再以病毒库为参考对用户电子设备内存在的可以软件进行查杀。这样的方法对已知的病毒具有很好的查杀效果,但面对不断的推陈出新的恶意软件依然显得力不从心。需要不断的完善病毒库,以应对恶意软件的变化。这样的方式不仅对新出现的恶意软件查杀不及时,同时面对已知的恶意软件只需稍微改变部分代码或新增一个壳体也无法及时识别及查杀。
发明内容
为了解决上述问题,本发明实施例采用的技术方案如下:
本发明实施例提供一种恶意软件识别方法,所述方法包括:在沙箱中运行待识别应用程序;记录所述待识别应用程序运行过程中对应的预先选中的多个特定底层函数的启用情况,以生成与所述待识别应用程序的行为链对应的待识别样本向量;获取恶意软件识别模型;根据所述恶意软件识别模型,采用机器学习的方式对所述待识别样本向量进行识别分类,以获得与所述待识别样本向量对应的待识别应用程序的识别结果。
本发明实施例还提供一种恶意软件识别***,所述***包括:运行模块、记录模块、获取模块及识别模块,运行模块用于在沙箱中运行待识别应用程序;记录模块,用于记录所述待识别应用程序运行过程中对应的预先选中的多个特定底层函数的启用情况,以生成与所述待识别应用程序的行为链对应的待识别样本向量;获取模块,用于获取恶意软件识别模型;识别模块,用于根据所述恶意软件识别模型,采用机器学习的方式对所述待识别样本向量进行识别分类,以获得与所述待识别样本向量对应的待识别应用程序的识别结果。
与现有技术相比,本发明提供的一种恶意软件识别方法及***。所述方法通过记录所述待识别应用程序运行过程中对应的预先选中的多个特定底层函数的启用情况,以生成与所述待识别应用程序的行为链对应的待识别样本向量;根据所述恶意软件识别模型,采用机器学习的方式对所述待识别样本向量进行识别分类,以获得与所述待识别样本向量对应的待识别应用程序的识别结果。也就是说,利用机器学习的方式对待识别应用程序的行为链进行识别,进而及时判断出是否为恶意软件,实现对恶意软件的高效判断。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明较佳实施例提供的电子设备的方框示意图。
图2示出了本发明实施例提供的恶意软件识别方法的步骤流程图。
图3示出图2中步骤S102的子步骤流程图。
图4示出了本发明实施例提供的恶意软件识别方法中创建恶意软件识别模型的子步骤流程图。
图5示出了本发明实施例提供的恶意软件识别***的示意图。
图6为图5中模型建立模块的功能子模块示意图。
图标:100-电子设备;101-存储器;102-存储控制器;103-处理器;200-恶意软件识别***;201-运行模块;202-记录模块;203-生成模块;204-获取模块;205-识别模块;206-模型建立模块;2061-运行子模块;2062-生成子模块;2063-构建子模块。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
请参照图1,图1示出了本发明实施例提供的电子设备100的方框示意图。电子设备100可以是,但不限于智能手机、平板电脑、膝上型便携计算机、车载电脑、个人数字助理(personal digital assistant,PDA)、穿戴式移动终端等等。所述电子设备100安装有iOS***,其包括恶意软件识别***200、存储器101、存储控制器102及处理器103。
所述存储器101、存储控制器102及处理器103各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述恶意软件识别***200包括至少一个可以软件或固件(firmware)的形式存储于所述存储器101中或固化在所述电子设备100的操作***(operatingsystem,OS)中的软件功能模块或安装于电子设备100中的应用程序。所述处理器103用于执行存储器101中存储的可执行模块,例如所述恶意软件识别***200包括的软件功能模块或计算机程序。
其中,存储器101可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。其中,存储器101用于存储程序,所述处理器103在接收到执行指令后,执行所述程序,本发明任一实施例揭示的流程定义的服务器所执行的方法可以应用于处理器103中,或者由处理器103实现。
处理器103可以是一种集成电路芯片,具有信号处理能力。上述的处理器103可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)、语音处理器以及视频处理器等;还可以是数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器103也可以是任何常规的处理器103等。
第一实施例
请参考图2,图2为本发明较佳实施例提供的恶意软件识别方法的流程图。恶意软件识别方法包括以下步骤:
步骤S101,在沙箱中运行待识别应用程序。
在本实施例中,所述沙箱可以是虚拟机。虚拟机可以是指通过软件模拟的具有完整硬件***功能的、运行在一个完全隔离环境中的完整计算机***。当电子设备100启动恶意软件识别时,在电子设备100中启动沙箱,并启动需要进行识别的待识别应用程序。避免了恶意软件在电子设备中直接运行导致对用户的损害。
步骤S102,记录所述待识别应用程序运行过程中对应的预先选中的多个特定底层函数的启用情况,以生成与所述待识别应用程序的行为链对应的待识别样本向量。
在本实施例中,每一个应用程序均包括大量的底层函数。所述底层函数是可以由所述应用程序的主程序进行调用用以实现应用程序需执行的对应的动作。底层函数的种类很多,比较常见的可以包括CreateFileW、CreateProcessInternalW、CreateRemoteThread等202个底层函数。需要说明的是,虽然恶意软件程序形态变化多样,但无论恶意程序代码如何进行改变,需要其实现的功能保持不变的,因此,其从底层的角度来看所调用执行的底层函数是不变的。因此,在本实施例中,可以预先从底层函数中筛选出恶意软件执行恶意行为时需要实现的所有功能对应的底层函数作为特定底层函数。例如,与实现创建文件(CreateFileW)、创建进程(CreateProcessInternalW)、创建远程线程(CreateRemoteThread)等154个关键行为对应的底层函数。应用程序的行为链可以是应用程序在实现其功能过程中执行的一连串接连发生的动作。而执行动作可以是由调用对应的底层函数实现,因此,可以根据运行过程中所调用的底层函数对应用程序的行为链进行表征,需要说明的是,应用程序可以包括多个功能,因此,在运行工程也会调用多种底层函数,为了精准的识别出恶意软件执行的恶意行为,可以通过记录运行过程中对选定的特定底层函数的启用情况,从而生成用于表征应用程序行为链的待识别样本向量。具体地,创建与待识别应用程序对应的多个标记位,其中,一个标记位对应一个特定底层函数相对应,根据应用程序运行过程中对特定底层函数的调用情况给对应的标记位进行标记。可选地,如图3所示,所述步骤S102可以包括以下子步骤:
子步骤S1021,当所述待识别应用程序运行过程中一所述特定底层函数被调用,则对所述特定底层函数对应的标记位进行第一标记。
在本实施例中,当一特定底层函数在待识别应用程序运行过程中被调用则对该特定底层函数对应的标记位进行第一标记。作为一种实施方式,可以在待识别应用程序在沙箱运行过程中,记录整个运行过程中出现被调用情况的所有的底层函数,然后与预先选中特定底层函数进行比较,对出现在记录中的特定底层函数对应的标记位进行赋予值1。
子步骤S1022,当所述待识别应用程序运行结束后,对运行过程中未调用过的所述特定底层函数对应的标记位进行第二标记,以便获取与所述待识别应用程序的行为链对应的所述待识别样本向量。
作为一种实施方式,可以在待识别应用程序在沙箱运行过程中,记录整个运行过程中出现被调用情况的所有的底层函数,然后与预先选中特定底层函数进行比较,对未出现在记录中的特定底层函数对应的标记位进行赋予值0。
步骤S103,根据所述待识别应用程序对应的所述第一标记及第二标记,按照预设定的所述多个特定底层函数的标记位的排列顺序,生成所述待识别样本向量。
在本实施例中,每个特定底层函数对应的标记为均存在一第一标记或第二标记。作为一种实施方式,当第一标记为1、第二标记为0时,将所有的特定底层函数的标记位按照预设置的排列顺序进排列后,则可以获得一个所述待识别样本向量,例如,(10111000…1010)。
步骤S104,获取恶意软件识别模型。
在本实施例中,恶意软件识别模型可以存储在电子设备100中。
步骤S105,根据所述恶意软件识别模型,采用机器学习的方式对所述待识别样本向量进行识别分类,以获得与所述待识别样本向量对应的待识别应用程序的识别结果。
在本实施例中,恶意软件识别模型内包括分类器,所述分类器采用机器学习的方式对待识别样本向量进行分类,分类结果可以包括恶意及非恶意。当待识别样本向量被分类为恶意时,则表示对于的待识别应用程序为恶意应用程序,反之,则为非恶意应用程序。同时,恶意软件识别模型可以自主学习,其在被使用过程中不断被完善调整。通过对表征待识别应用程序行为链的待识别样本向量进行识别,即根据行为链的特征进行识别分类,且恶意软件无论如何变幻所要实施的动作不会太大变化,因此,通过这种方法更加能准确的识别出是否为恶意软件。
需要说明的是,在所述步骤S104之前,所述方法还可以包括创建恶意软件识别模型的步骤。
在本实施例中,若电子设备100中已经存在恶意软件识别模型则无需再次执行创建恶意软件模型的步骤。如图4所示,创建恶意软件模型的步骤可以包括以下子步骤:
子步骤S2011,在所述沙箱中依次运行多个样本应用程序。
在本实施例中,样本应用程序中包括恶意软件及非恶意软件。所述多个样本应用程序包括分类信息为恶意的样本应用程序及分类信息为非恶意的样本应用程序。具体地,每个样本应用程序均有对应的分类信息,分类信息包括恶意及非恶意,根据样本应用程序的对应的分类信息可以便知其是否为恶意软件。
子步骤S2012,依次记录每一个所述样本应用程序运行过程中对应的预先选中的多个所述特定底层函数的启用情况,生成与每个所述样本应用程序的行为链对应的训练样本特征向量,以获取对应的训练样本特征向量集。
在本实施例中,当所述样本应用程序运行过程中一所述特定底层函数被调用,则对所述特定底层函数对应的标记位进行第一标记;当所述样本应用程序运行结束后,对运行过程中未调用过的所述特定底层函数对应的标记位进行第二标记,以便获取与所述样本应用程序的行为链对应的所述训练样本特征向量。所述训练样本特征向量集内包括每个所述样本应用程序对应的样本特征向量。可选地,再根据每个所述样本应用程序对应的所述第一标记及第二标记,按照预设定的所述多个特定底层函数的标记位的排列顺序,生成所述训练样本特征向量集,以获得所述训练样本特征向量集。具体地,记录每一个所述样本应用程序运行过程中对应的预先选中的多个所述特定底层函数的启用情况与记录待识别应用程序运行过程中对应的预先选中的多个所述特定底层函数的启用情况相同,在此不再进行赘述。
子步骤S2013,根据每个样本应用程序对应的所述分类信息,生成与所述训练样本特征向量集对应的分类向量集。
作为一种实施方式,分类向量集可以包括与特定底层函数对应的多个一维向量。将样本应用程序对应的分类信息显示其为恶意软件的,将样本应用程序对应的分类向量赋值为1,若为非恶意软件,将样本应用程序对应的分类向量赋值为0。从而建立样本应用程序与其分类信息之间的对应关系。根据每个样本应用程序对分类向量组成分类向量集。
子步骤S2014,根据所述训练样本特征向量集及分类向量集,构建所述恶意软件识别模型。
在本实施例中,通过朴素贝叶斯分类算法,计算每个类别信息在样本应用程序中的出现频率及每个特定底层函数对应标记位的标记对每个类别信息的条件概率估计,从而获得每一个特定底层函数对应标记位的标记对应的恶意概率及非恶意概率,例如,统计特定底层函数对应的标记位为1时,对应的恶意概率及非恶意概率。再根据所有特定底层函数在不同标记情况下对应的恶意概率及非恶意概率,生产分类器。具体地,遍历所述训练样本特征向量集中每一个所述训练样本特征向量,分别统计所述训练样本特征向量集中每个所述特定底层函数对应的标记位为第一标记的第一个数。遍历所述训练样本特征向量集中每一个所述训练样本特征向量,结合所述分类向量集,统计所述训练样本特征向量集内对应的所述分类信息为恶意的训练样本特征向量中,所述特定底层函数对应的标记位为第一标记的第二个数;根据每个所述特定底层函数对应的第一个数及第二个数生成每个所述特定底层函数对应的恶意概率,根据每个特定底层函数对应的恶意概率获得恶意概率集,根据所述恶意概率集生成分类器,以构建所述恶意软件识别模型。作为一种实施方式,统计分类向量集中向量的总数,然后再统计分类向量集中为1的向量数,则获得分类信息为恶意的第一概率,再根据第二个数与第一个数之间的比值获得第二概率,根据第一概率与第二概率之间的比值获得恶意概率。同理,计算对应的标记位为第二标记时的恶意概率、对应的标记位为第一标记时的非恶意概率及第二标记时的非恶意概率。最后生成第一标记对应的恶意概率集及非恶意概率集,第二标记对应的恶意概率集及非恶意概率集,根据所有的恶意概率集及非恶意概率集生成分类器。作为一种实施方式,也可以根据每个特定底层函数为第一标记对应的恶意概率生成分类器。
进一步地,还可以是统计所述训练样本特征向量集内对应的所述分类信息为非恶意的训练样本特征向量中,所述特定底层函数对应的标记位为第一标记的第三个数,根据第一标记及第三标记生成对应的非恶意概率,根据每个特定底层函数对应的恶意概率获得非恶意概率集,根据所述非恶意概率集及恶意概率集生成分类器,以构建所述恶意软件识别模型。
需要说明的是,获得恶意概率或非恶意概率之后,均每个所述特定底层函数对应的恶意概率或非恶意概率进行对数处理,以获得所述恶意概率集。
第二实施例
请参照图5,图5为本发明实施例提供的恶意软件识别***200的功能模块示意图。所述恶意软件识别***200包括:运行模块201、记录模块202、生成模块203、获取模块204、识别模块205及模型建立模块206。
运行模块201,用于在沙箱中运行待识别应用程序。
在本发明实施例中,步骤S101可以由运行模块201执行。
记录模块202,用于记录所述待识别应用程序运行过程中对应的预先选中的多个特定底层函数的启用情况,以生成与所述待识别应用程序的行为链对应的待识别样本向量。
在本发明实施例中,步骤S102、子步骤S1021及子步骤S1022均可以由记录模块202执行。
生成模块203,用于根据所述待识别应用程序对应的所述第一标记及第二标记,按照预设定的所述多个特定底层函数的标记位的排列顺序,生成所述待识别样本向量。
在本发明实施例中,步骤S103可以由生成模块203执行。
获取模块204,用于获取恶意软件识别模型。
在本发明实施例中,步骤S104可以由获取模块204执行。
识别模块205,用于根据所述恶意软件识别模型,采用机器学习的方式对所述待识别样本向量进行识别分类,以获得与所述待识别样本向量对应的待识别应用程序的识别结果。
在本发明实施例中,步骤S105可以由识别模块205执行。
模型建立模块206,用于创建恶意软件模型。
在本实施例中,如图6所示,模型建立模块206可以包括以下几个功能子模块:
运行子模块2061,用于在所述沙箱中依次运行多个样本应用程序,其中,所述多个样本应用程序包括分类信息为恶意的样本应用程序及分类信息为非恶意的样本应用程序。
在本发明实施例中,子步骤S2011可以由运行子模块2061执行。
生成子模块2062,用于依次记录每一个所述样本应用程序运行过程中对应的预先选中的多个所述特定底层函数的启用情况,生成与每个所述样本应用程序的行为链对应的训练样本特征向量,以获取对应的训练样本特征向量集;及根据每个所述样本应用程序对应的所述分类信息,生成与所述训练样本特征向量集对应的分类向量集。
在本发明实施例中,子步骤S2012及子步骤S2013可以由生成子模块2062执行。
构建子模块2063,用于根据所述训练样本特征向量集及分类向量集,构建所述恶意软件识别模型。
在本发明实施例中,子步骤S2014可以由构建子模块2063执行。
综上所述,本发明提供的一种恶意软件识别方法及***,所述方法包括:在沙箱中运行待识别应用程序;记录所述待识别应用程序运行过程中对应的预先选中的多个特定底层函数的启用情况,以生成与所述待识别应用程序的行为链对应的待识别样本向量;获取恶意软件识别模型;根据所述恶意软件识别模型,采用机器学习的方式对所述待识别样本向量进行识别分类,以获得与所述待识别样本向量对应的待识别应用程序的识别结果。利用机器学习的方式对待识别应用程序的行为链进行识别,进而及时判断出是否为恶意软件,实现对恶意软件的高效判断。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (8)

1.一种恶意软件识别方法,其特征在于,所述方法包括:
在沙箱中运行待识别应用程序;
记录所述待识别应用程序运行过程中对应的预先选中的多个特定底层函数的启用情况,以生成与所述待识别应用程序的行为链对应的待识别样本向量;其中,所述特定底层函数为恶意软件执行恶意行为时需要实现的所有功能对应的底层函数;所述待识别样本向量为依据所述多个特定底层函数的启用情况,按照预设定的所述多个特定底层函数对应的标记位的排列顺序生成的;所述启用情况包括调用和未调用;
获取恶意软件识别模型;
根据所述恶意软件识别模型,采用机器学习的方式对所述待识别样本向量进行识别分类,以获得与所述待识别样本向量对应的待识别应用程序的识别结果;
其中,所述恶意软件识别模型的创建方式包括:在所述沙箱中依次运行多个样本应用程序,其中,所述多个样本应用程序包括分类信息为恶意的样本应用程序及分类信息为非恶意的样本应用程序;依次记录每一个所述样本应用程序运行过程中对应的预先选中的多个所述特定底层函数的启用情况,生成与每个所述样本应用程序的行为链对应的训练样本特征向量,以获取对应的训练样本特征向量集;根据每个样本应用程序对应的所述分类信息,生成与所述训练样本特征向量集对应的分类向量集;
遍历所述训练样本特征向量集中每一个所述训练样本特征向量,分别统计每个所述特定底层函数在所述训练样本特征向量集中对应的标记位为第一标记的第一个数;遍历所述训练样本特征向量集中每一个所述训练样本特征向量,结合所述分类向量集,依次统计每个所述特定底层函数在所述训练样本特征向量集内对应的所述分类信息为恶意的训练样本特征向量中标记位为第一标记的第二个数;根据每个所述特定底层函数对应的第一个数及第二个数生成每个所述特定底层函数对应的恶意概率,以获得恶意概率集;根据所述恶意概率集生成分类器,以构建所述恶意软件识别模型。
2.如权利要求1所述的方法,其特征在于,在获取恶意软件识别模型之前,所述方法还包括创建恶意软件识别模型。
3.如权利要求2所述的方法,其特征在于,记录所述样本应用程序在所述沙箱内运行过程中对应的所述多个特定底层函数的启用情况的步骤包括:
当所述样本应用程序运行过程中一所述特定底层函数被调用,则对所述特定底层函数对应的标记位进行第一标记;
当所述样本应用程序运行结束后,对运行过程中未调用过的所述特定底层函数对应的标记位进行第二标记,以便获取与所述样本应用程序的行为链对应的所述训练样本特征向量,以获取所述训练样本特征向量集。
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
根据每个所述样本应用程序对应的所述第一标记及第二标记,按照预设定的所述多个特定底层函数的标记位的排列顺序,生成所述训练样本特征向量集,以获得所述训练样本特征向量集。
5.如权利要求1所述的方法,其特征在于,所述构建所述恶意软件识别模型的步骤还包括:
对每个所述特定底层函数对应的恶意概率进行对数处理,以获得所述恶意概率集。
6.如权利要求1所述的方法,其特征在于,记录所述待识别应用程序运行过程中对应的预先选中的多个特定底层函数的启用情况的步骤包括:
当所述待识别应用程序运行过程中一所述特定底层函数被调用,则对所述特定底层函数对应的标记位进行第一标记;
当所述待识别应用程序运行结束后,对运行过程中未调用过的所述特定底层函数对应的标记位进行第二标记,以便获取与所述待识别应用程序的行为链对应的所述待识别样本向量。
7.如权利要求6所述的方法,其特征在于,所述方法还包括:
根据所述待识别应用程序对应的所述第一标记及第二标记,按照预设定的所述多个特定底层函数的标记位的排列顺序,生成所述待识别样本向量。
8.一种恶意软件识别***,其特征在于,所述***包括:
运行模块,用于在沙箱中运行待识别应用程序;
记录模块,用于记录所述待识别应用程序运行过程中对应的预先选中的多个特定底层函数的启用情况,以生成与所述待识别应用程序的行为链对应的待识别样本向量;其中,所述特定底层函数为恶意软件执行恶意行为时需要实现的所有功能对应的底层函数;所述待识别样本向量为依据所述多个特定底层函数的启用情况,按照预设定的所述多个特定底层函数对应的标记位的排列顺序生成的;所述启用情况包括调用和未调用;
获取模块,用于获取恶意软件识别模型;
识别模块,用于根据所述恶意软件识别模型,采用机器学习的方式对所述待识别样本向量进行识别分类,以获得与所述待识别样本向量对应的待识别应用程序的识别结果;
模型建立模块,包括运行子模块,用于在所述沙箱中依次运行多个样本应用程序,其中,所述多个样本应用程序包括分类信息为恶意的样本应用程序及分类信息为非恶意的样本应用程序;
生成子模块,用于依次记录每一个所述样本应用程序运行过程中对应的预先选中的多个所述特定底层函数的启用情况,生成与每个所述样本应用程序的行为链对应的训练样本特征向量,以获取对应的训练样本特征向量集;及根据每个所述样本应用程序对应的所述分类信息,生成与所述训练样本特征向量集对应的分类向量集;
构建子模块,用于遍历所述训练样本特征向量集中每一个所述训练样本特征向量,分别统计每个所述特定底层函数在所述训练样本特征向量集中对应的标记位为第一标记的第一个数;遍历所述训练样本特征向量集中每一个所述训练样本特征向量,结合所述分类向量集,依次统计每个所述特定底层函数在所述训练样本特征向量集内对应的所述分类信息为恶意的训练样本特征向量中标记位为第一标记的第二个数;根据每个所述特定底层函数对应的第一个数及第二个数生成每个所述特定底层函数对应的恶意概率,以获得恶意概率集;根据所述恶意概率集生成分类器,以构建所述恶意软件识别模型。
CN201710973051.6A 2017-10-18 2017-10-18 恶意软件识别方法及*** Active CN107742079B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710973051.6A CN107742079B (zh) 2017-10-18 2017-10-18 恶意软件识别方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710973051.6A CN107742079B (zh) 2017-10-18 2017-10-18 恶意软件识别方法及***

Publications (2)

Publication Number Publication Date
CN107742079A CN107742079A (zh) 2018-02-27
CN107742079B true CN107742079B (zh) 2020-02-21

Family

ID=61236937

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710973051.6A Active CN107742079B (zh) 2017-10-18 2017-10-18 恶意软件识别方法及***

Country Status (1)

Country Link
CN (1) CN107742079B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110619211A (zh) * 2018-06-20 2019-12-27 深信服科技股份有限公司 一种基于动态特征的恶意软件识别方法、***及相关装置
WO2020040776A1 (en) * 2018-08-23 2020-02-27 Visa International Service Association Proactive defense of untrustworthy machine learning system
CN111242150B (zh) * 2018-11-29 2024-05-17 阿里巴巴集团控股有限公司 数据训练的方法和装置
CN110543765A (zh) * 2019-08-28 2019-12-06 南京市晨枭软件技术有限公司 一种恶意软件检测方法
CN111935097B (zh) * 2020-07-16 2022-07-19 上海斗象信息科技有限公司 一种检测dga域名的方法
SG10202009754QA (en) * 2020-10-01 2020-11-27 Flexxon Pte Ltd Module and method for detecting malicious activities in a storage device
CN115659340B (zh) * 2022-12-09 2023-03-14 支付宝(杭州)信息技术有限公司 一种仿冒小程序识别方法、装置、存储介质及电子设备

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102567661A (zh) * 2010-12-31 2012-07-11 北京奇虎科技有限公司 基于机器学习的程序识别方法及装置
CN102930210A (zh) * 2012-10-14 2013-02-13 江苏金陵科技集团公司 恶意程序行为自动化分析、检测与分类***及方法
CN103853979A (zh) * 2010-12-31 2014-06-11 北京奇虎科技有限公司 基于机器学习的程序识别方法及装置
CN104123500A (zh) * 2014-07-22 2014-10-29 卢永强 一种基于深度学***台恶意应用检测方法及装置
CN104598824A (zh) * 2015-01-28 2015-05-06 国家计算机网络与信息安全管理中心 一种恶意程序检测方法及其装置
WO2015085265A1 (en) * 2013-12-06 2015-06-11 Qualcomm Incorporated Methods and systems of using application-specific and application -type-specific models for the efficient classification of mobile device behaviors
CN105205396A (zh) * 2015-10-15 2015-12-30 上海交通大学 一种基于深度学习的安卓恶意代码检测***及其方法
CN105468977A (zh) * 2015-12-14 2016-04-06 厦门安胜网络科技有限公司 一种基于朴素贝叶斯的Android恶意软件分类方法和装置
CN105653956A (zh) * 2016-03-02 2016-06-08 中国科学院信息工程研究所 基于动态行为依赖图的Android恶意软件分类方法
CN105740707A (zh) * 2016-01-20 2016-07-06 北京京东尚科信息技术有限公司 恶意文件的识别方法和装置
CN106529293A (zh) * 2016-11-09 2017-03-22 东巽科技(北京)有限公司 一种用于恶意软件检测的样本类别判定方法
CN106709332A (zh) * 2016-12-13 2017-05-24 江苏通付盾科技有限公司 应用检测的方法及装置
CN106778266A (zh) * 2016-11-24 2017-05-31 天津大学 一种基于机器学习的安卓恶意软件动态检测方法
CN106778268A (zh) * 2016-11-28 2017-05-31 广东省信息安全测评中心 恶意代码检测方法与***
CN107045607A (zh) * 2016-12-13 2017-08-15 全球能源互联网研究院 应用异常行为识别模型建立方法及装置、识别方法及装置

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102567661A (zh) * 2010-12-31 2012-07-11 北京奇虎科技有限公司 基于机器学习的程序识别方法及装置
CN103853979A (zh) * 2010-12-31 2014-06-11 北京奇虎科技有限公司 基于机器学习的程序识别方法及装置
CN102930210A (zh) * 2012-10-14 2013-02-13 江苏金陵科技集团公司 恶意程序行为自动化分析、检测与分类***及方法
WO2015085265A1 (en) * 2013-12-06 2015-06-11 Qualcomm Incorporated Methods and systems of using application-specific and application -type-specific models for the efficient classification of mobile device behaviors
CN104123500A (zh) * 2014-07-22 2014-10-29 卢永强 一种基于深度学***台恶意应用检测方法及装置
CN104598824A (zh) * 2015-01-28 2015-05-06 国家计算机网络与信息安全管理中心 一种恶意程序检测方法及其装置
CN105205396A (zh) * 2015-10-15 2015-12-30 上海交通大学 一种基于深度学习的安卓恶意代码检测***及其方法
CN105468977A (zh) * 2015-12-14 2016-04-06 厦门安胜网络科技有限公司 一种基于朴素贝叶斯的Android恶意软件分类方法和装置
CN105740707A (zh) * 2016-01-20 2016-07-06 北京京东尚科信息技术有限公司 恶意文件的识别方法和装置
CN105653956A (zh) * 2016-03-02 2016-06-08 中国科学院信息工程研究所 基于动态行为依赖图的Android恶意软件分类方法
CN106529293A (zh) * 2016-11-09 2017-03-22 东巽科技(北京)有限公司 一种用于恶意软件检测的样本类别判定方法
CN106778266A (zh) * 2016-11-24 2017-05-31 天津大学 一种基于机器学习的安卓恶意软件动态检测方法
CN106778268A (zh) * 2016-11-28 2017-05-31 广东省信息安全测评中心 恶意代码检测方法与***
CN106709332A (zh) * 2016-12-13 2017-05-24 江苏通付盾科技有限公司 应用检测的方法及装置
CN107045607A (zh) * 2016-12-13 2017-08-15 全球能源互联网研究院 应用异常行为识别模型建立方法及装置、识别方法及装置

Also Published As

Publication number Publication date
CN107742079A (zh) 2018-02-27

Similar Documents

Publication Publication Date Title
CN107742079B (zh) 恶意软件识别方法及***
US10915659B2 (en) Privacy detection of a mobile application program
US11295242B2 (en) Automated data and label creation for supervised machine learning regression testing
CN112567367A (zh) 用于聚类和加速多个事故调查的基于相似性的方法
US11580222B2 (en) Automated malware analysis that automatically clusters sandbox reports of similar malware samples
CN111090807B (zh) 一种基于知识图谱的用户识别方法及装置
CN109905385B (zh) 一种webshell检测方法、装置及***
Gao et al. Android malware detection via graphlet sampling
CN108446572B (zh) 一种基于服务粒度的隐私权限管理方法
US20170083702A1 (en) Detecting Software Attacks on Processes in Computing Devices
EP3954145A1 (en) Adaptive severity functions for alerts
CN108416212A (zh) 应用程序识别方法和装置
CN111930809A (zh) 数据处理方法、装置及设备
EP4002174A1 (en) Utilizing orchestration and augmented vulnerability triage for software security testing
CN113486350B (zh) 恶意软件的识别方法、装置、设备及存储介质
CN114244611B (zh) 异常攻击检测方法、装置、设备及存储介质
CN114066475A (zh) 基于云支付的信息安全防护方法及服务器
CN111488574A (zh) 恶意软件分类方法、***、计算机设备和存储介质
CN110110295B (zh) 大样本研报信息提取方法、装置、设备及存储介质
CN112765236B (zh) 自适应异常设备挖掘方法、存储介质、设备及***
CN111143203B (zh) 机器学习、隐私代码确定方法、装置及电子设备
CN110719274B (zh) 网络安全控制方法、装置、设备及存储介质
CN113220553A (zh) 一种文本预测模型性能的评估方法和装置
US11704589B1 (en) Automatically identifying dynamic applications
CN111368164A (zh) 一种爬虫识别模型训练、爬虫识别方法、装置、***、设备及介质

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 310052 188 Lianhui street, Xixing street, Binjiang District, Hangzhou, Zhejiang Province

Applicant after: Hangzhou Annan information technology Limited by Share Ltd

Address before: Zhejiang Zhongcai Building No. 68 Binjiang District road Hangzhou City, Zhejiang Province, the 310051 and 15 layer

Applicant before: Dbappsecurity Co.,ltd.

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201026

Address after: Floor 3, no.665, Zhangjiang Road, Pudong New Area, Shanghai, 201210

Patentee after: Shanghai Anheng Smart City Security Technology Co., Ltd

Address before: 310052 188 Lianhui street, Xixing street, Binjiang District, Hangzhou, Zhejiang Province

Patentee before: Hangzhou Anheng Information Technology Co.,Ltd.