CN105653954B - 一种检测恶意代码的方法及装置 - Google Patents

一种检测恶意代码的方法及装置 Download PDF

Info

Publication number
CN105653954B
CN105653954B CN201510997664.4A CN201510997664A CN105653954B CN 105653954 B CN105653954 B CN 105653954B CN 201510997664 A CN201510997664 A CN 201510997664A CN 105653954 B CN105653954 B CN 105653954B
Authority
CN
China
Prior art keywords
instruction
read
file
detected
behavioural 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
CN201510997664.4A
Other languages
English (en)
Other versions
CN105653954A (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.)
Nsfocus Technologies Inc
Nsfocus Technologies Group Co Ltd
Original Assignee
NSFOCUS Information Technology Co Ltd
Beijing NSFocus Information Security 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 NSFOCUS Information Technology Co Ltd, Beijing NSFocus Information Security Technology Co Ltd filed Critical NSFOCUS Information Technology Co Ltd
Priority to CN201510997664.4A priority Critical patent/CN105653954B/zh
Publication of CN105653954A publication Critical patent/CN105653954A/zh
Application granted granted Critical
Publication of CN105653954B publication Critical patent/CN105653954B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)

Abstract

本申请涉及网络安全领域,公开了一种检测恶意代码的方法及装置,用以提高恶意代码检验的准确率。该方法为:获取待检测文件,并从待检测文件中读取指令,每读取一条指令,执行上述一条指令并记录执行结果,以及将上述执行结果与预设的行为特征模型进行匹配;其中,上述行为特征模型是基于海量的自解码恶意代码运行后产生的行为数据生成的;确定读取到的任意一条指令的执行结果与上述行为特征模型匹配成功时,判定上述待检测文件包含自解码恶意代码。这样,通过对待检测文件进行反编译,可以逐条读取并执行其包含的指令,并对这些指令的执行结果进行行为特征匹配,从而有效提高检测自解码恶意代码的准确率,减少漏检率,进而提高系统的安全性。

Description

一种检测恶意代码的方法及装置
技术领域
本发明涉及网络安全领域,特别涉及一种检测恶意代码的方法及装置。
背景技术
随着计算机网络技术的不断发展,恶意代码的类型随之日渐丰富,恶意软件的检测机制也不断完善。为逃避传统机制的检测,恶意代码的自解码技术应运而生,并已被各种高级恶意软件广泛使用。所谓自解码恶意代码,通常状态下该代码处于一种伪装状态,在特定的条件下被触发运行,其显著特征是边运行边解码。
目前常用的恶意代码检测技术主要有签名检测技术、沙箱检测技术等。
现有的检测技术中,签名检测技术只能检测已知的非加密恶意代码;而沙箱检测技术通过触发恶意代码进行检测,易受操作系统和应用程序的限制,且不适宜在线部署。
由此可见,现有的恶意代码检测技术不能有效地检测出自解码恶意代码,这就需要一种新的检测技术来解决现有技术中存在的缺陷。
发明内容
本申请实施例提供一种检测恶意代码的方法及装置,用以提高自解码恶意代码检测的准确率。
本申请实施例提供一种检测恶意代码的方法,包括:
获取待检测文件,并从待检测文件中读取指令,每读取一条指令,执行该指令并记录执行结果,以及将此执行结果与预设的行为特征模型进行匹配;其中,上述行为特征模型是基于海量的自解码恶意代码运行后产生的行为数据生成的;
确定读取到的任意一条指令的执行结果与上述行为特征模型匹配成功时,判定待检测文件包含自解码恶意代码。
这样,通过对待检测文件进行反编译,可以逐条读取并执行其包含的指令,并对这些指令的执行结果进行行为特征匹配,从而能够准确地判定待检测文件是否包含有自解码恶意代码,有效提高了检测自解码恶意代码的准确率,减少了漏检率,进而提高了系统的安全性。
较佳的,从待检测文件中读取一条指令,包括:
在待检测文件对应的二进制数据流中,确定当前的字节读取起始位置;
基于预设的字节数目集合,从当前的字节读取起始位置开始,依次读取符合上述字节数目集合的数据段,每读取到一个数据段,对读取到的数据段进行反编译获得反编译结果,以及将获得的反编译结果与预设的指令集进行匹配,直到确定匹配成功为止,并将匹配成功的反编译结果判定为一条指令。
较佳的,执行读取到的一条指令,包括:
读取到一条指令,将读取到的一条指令放到CPU编辑器中执行,并记录执行结果,以及记录读取下一条指令的字节起始位置。
较佳的,每读取一条指令之前,进一步包括:
确定执行上一条指令后记录的下一条指令的字节起始位置,位于待检测文件对应的二进制数据流中时,判定该字节起始位置有效。
这样,可以避免无效指令带来的资源消耗,节省软硬件资源。
较佳的,确定读取到的任意一条指令的执行结果与上述行为特征模型匹配成功,包括:
确定读取到的上述任意一条指令的执行结果表征上述任意一条指令涉及写录操作且循环执行次数达到设定门限时,判定上述任意一条指令的执行结果与上述行为特征模型匹配成功。
较佳的,判定上述待检测文件包含自解码恶意代码之后,进一步包括:
基于从待检测文件中已读取的各个指令的执行结果对应的行为特征,对上述行为特征模型进行更新。
这样,可以通过自学习方式对行为特征模型进行优化,在后续的检测过程中,能够进一步提高检测自解码恶意代码的准确率。
本申请实施例提供一种检测恶意代码的装置,包括:
提取模块,用于获取待检测文件,并从待检测文件中读取指令,每读取一条指令,执行该指令并记录执行结果,以及将该执行结果与预设的行为特征模型进行匹配;其中,上述行为特征模型是基于海量的自解码恶意代码运行后产生的行为数据生成的;
判定模块,用于确定读取到的任意一条指令与上述行为特征模型匹配成功时,判定该待检测文件包含自解码恶意代码。
这样,通过对待检测文件进行反编译,可以逐条读取并执行其包含的指令,并对这些指令的执行结果进行行为特征匹配,从而能够准确地判定待检测文件是否包含有自解码恶意代码,有效提高了检测自解码恶意代码的准确率,减少了漏检率,进而提高了系统的安全性。
较佳的,从待检测文件中读取一条指令时,提取模块用于:
在待检测文件对应的二进制数据流中,确定当前的字节读取起始位置;
基于预设的字节数目集合,从当前的字节读取起始位置开始,依次读取符合上述字节数目集合的数据段,每读取到一个数据段,对读取到的数据段进行反编译获得反编译结果,以及将获得的反编译结果与预设的指令集进行匹配,直到确定匹配成功为止,并将匹配成功的反编译结果判定为一条指令。
较佳的,执行读取到的一条指令时,提取模块进一步用于:
读取到一条指令,将读取到的一条指令放到CPU编辑器中执行,并记录执行结果,以及记录读取下一条指令的字节起始位置。
较佳的,每读取一条指令之前,提取模块进一步用于:
确定执行上一条指令后记录的下一条指令的字节起始位置,位于待检测文件对应的二进制数据流中时,判定该字节起始位置有效。
这样,可以避免无效指令带来的资源消耗,节省软硬件资源。
较佳的,确定读取到的任意一条指令的执行结果与上述行为特征模型匹配成功时,判断模块用于:
确定读取到的任意一条指令的执行结果表征上述任意一条指令涉及写录操作且循环执行次数达到设定门限时,判定上述任意一条指令的执行结果与上述行为特征模型匹配成功。
较佳的,判定待检测文件包含自解码恶意代码之后,判定模块进一步用于:
基于从待检测文件中已读取的各个指令的执行结果对应的行为特征,对行为特征模型进行更新。
这样,可以通过自学习方式对行为特征模型进行优化,在后续的检测过程中,能够进一步提高检测自解码恶意代码的准确率。
附图说明
图1为本发明实施例中检测自解码恶意代码流程图;
图2为本发明实施例中设定自解码恶意代码的判定门限值流程图;
图3为本申请实施例中检测自解码恶意代码的装置功能结构示意图。
具体实施方式
为了提高自解码恶意代码检测的准确率,本发明实施例中,获取待检测文件,执行从待检测文件中反编译得到的指令并记录执行结果,以及将该执行结果与预设的行为特征模型进行匹配,以判定上述待检测文件是否包含自解码恶意代码。
下面结合说明书附图,对本申请实施例进行详细描述。
参阅图1所示,本发明实施例中,针对待检测文件进行自解码恶意代码检测的具体过程如下:
步骤100:获取待检测文件,并从待检测文件中读取指令,每读取一条指令,执行上述一条指令并记录执行结果,以及将上述执行结果与预设的行为特征模型进行匹配;其中,上行为特征模型是基于海量的自解码恶意代码运行后产生的行为数据生成的;
具体的,在从待检测文件中读取指令时,可以采用但不限于以下方式:
在待检测文件对应的二进制数据流中,确定当前的字节读取起始位置;
基于预设的字节数目集合,从当前的字节读取起始位置开始,依次读取符合上述字节数目集合的数据段,每读取到一个数据段,对读取到的数据段进行反编译获得反编译结果,以及将获得的反编译结果与预设的指令集进行匹配,直到确定匹配成功为止,并将匹配成功的反编译结果判定为一条指令。
例如:设定的字节数目集合包含的字节数目分别为1、2、3,检测目标为长度是10的数据流aabbbcdddc,检测方向从左到右,且当前检测位置为数据流最左位。
当前位置若读取字节数目为1的数据段,可得到的数据段为a,进行反编译
若读取字节数目为2的数据段,可得到的数据段为aa;
若读取字节数目为3的数据段,可得到的数据段为aab。
当前起始位置的所有字节数目数据段读取完毕,未检测到有效的指令,则设定数据段左侧第二位为起始检测位置。
此时若读取字节数目为1的数据段,可得到的数据段为a;
若读取字节数目为2的数据段,可得到的数据段为ab;
若读取字节数目为3的数据段,可得到的数据段为abb。
以此类推直到读取完最后一个数据段。
通过上述方式可以从待检测文件对应的二进制数据流中解读出有效的指令。
而一旦读取到一条指令,需要将读取到的一条指令放到CPU编辑器中执行,这一操作是在指令和寄存器层面进行模拟,属于轻量级虚拟执行技术。
传统的沙箱技术采用的是传统的硬件虚拟化技术,实现过程中通过需要创造一个完整的虚拟机,每个虚拟化的应用程序不仅要包含应用程序的二进制文件,还需要运行该应用程序所需的库,以及一个完整的Guest操作系统。
而轻量级虚拟执行技术在实现过程中是直接从文件里面提取指令流并进行执行,因此,不需要使用应用程序的二进制文件以及依赖应用程序的库文件,也不需要完整的Guest操作系统,其指令的执行只依赖于CPU本身。因此,轻量级虚拟执行技术只要模拟一个完整的CPU即可,即只需要模拟CPU依次执行每一条指令,并在执行完一条指令后跳转至下一条指令所在的寄存器即可。相较于传统的虚拟化技术,轻量级虚拟执行技术更为简便,更为节省系统资源,也更易实现。
本发明实施例中,在执行一条指令并记录相应的执行结果后,进一步地,还需要记录读取下一条指令的字节起始位置,这样,在读取下一条指令时,便可以跳转到新的字节起始位置进行读取,而每次在读取下一条指令之前,均需要判定跳转后的字节起始位置是否位于待检测文件对应的二进制数据流中,确定为是时,判定跳转后的字节起始位置有效,才能开始读取下一条指令。
例如,假设待检测文件中存在800个字节,而当前读取数据段ab反编译后的结果与预设的指令集(指令集中包含有各类标准指令)进行匹配,匹配成功后,确定其为预设指令集中的指令(以下简称指令B),若该指令B在CPU编辑器中执行后记录的寄存器位置为50,则寄存器跳转到第50个字节开始执行,则说明字节起始位置有效;若该指令B在CPU编辑器中执行后记录的寄存器位置为1000,超出此800个字节的范围内跳转,则说明字节起始位置A无效,需要重新确定新的字节起始位置(可以从数据段ab之后的字节开始,也可以根据用户指令重新确认)。
步骤110:确定读取到的任意一条指令的执行结果与上述行为特征模型匹配成功时,判定上述待检测文件包含自解码恶意代码。
具体的,在执行步骤110时,确定读取到的上述任意一条指令的执行结果表征上述任意一条指令涉及写录操作且循环执行次数达到设定门限时,判定上述任意一条指令的执行结果与上述行为特征模型匹配成功。
例如:若从待检测TXT文件中读取数据段反编译得到一条指令(以下称为指令A),并确定指令A中存在写录操作,以及在指令A中写录操作的循环执行次数为20次,达到预设的门限值,则判定上述待检测TXT文件中包含自解码恶意代码。
又例如:若从待检测TXT文件中读取的数据段反编译后累积读取到10条存在写录操作的指令,且这些指令累积循环执行了20次写录操作,达到门限值,则在读取到第10条指令时,判定上述待检测TXT文件中包含自解码恶意代码。
再例如:若从待检测TXT文件中读取的数据段反编译后累积读取到最后一条指令时,所有指令累积循环执行了20次写录操作,达到门限值,则在执行完所有指令时,判定上述待检测TXT文件中包含自解码恶意代码。
更进一步的,在确定某一待检测文件包含自解码恶意代码后,需要基于已读取的各个指令对应的行为特征,对上述行为特征模型进行更新。
例如:设定门限值为10,且假定待检测TXT文件反编译后得到的指令中包含的写录操作类型为M,并且该待检测TXT文件中反编译得到的各个指令累积循环执行写录操作M的次数为20次,达到门限值,而行为特征模型中不包含写录操作M,则将此写录操作M作为新的行为特征添加到行为特征模型,完成对行为特征模型的更新。
又例如:仍设定门限值为10。若连续多个待检测TXT文件反编译后得到的指令中包含的写录操作的循环执行次数分布集中在11-15次之间,达到门限值,但是过于接近门限值。在这种情况下,很有可能存在某些待检测TXT文件,其反编译后得到的指令中包含的写录操作的循环执行次数分布在8-9次之间,此类待检测TXT文件很有可能包含自解码恶意代码,但由于未达到门限值而未被检测出,因此,在此种情况下应将门限值降低至5,以保证可以检测到大多数的自解码恶意代码。
又例如:仍设定门限值为10。若连续多个待检测TXT文件反编译后得到的指令中包含的写录操作的循环执行次数分布集中在大于100的范围内,达到门限值,但是远大于设定的门限值。在这种情况下,很有可能存在某些待检测TXT文件,其反编译后得到的指令中包含的写录操作的循环执行次数在20-40次之间,此类待检测TXT文件很有可能不包含自解码恶意代码,但由于达到门限值而被检测出,因此,在此种情况下最好将门限值提高至60次,以避免占用过多的软硬件资源,提高自解码恶意代码的检测效率。
参阅图2所示,本发明实施案中对门限值的设定与更新作出了描述,其具体流程如下:
步骤200:设置初始门限值为小于预设行为特征模型中所有循环次数的特定值。
例如,预设行为特征模型中所有循环次数的最小值为100,初始门限值就可设定为小于100的一个特定数值,如设置初始门限值为20。
步骤210:判定确定的自解码恶意文件反编译后得到的指令中写录操作的集中分布循环次数远大于设定的门限值。
步骤211:根据步骤210中描述的集中分布的循环次数范围提高门限值。
例如:预设的门限值是20,而本发明实施例中检测完1000个包含自解码恶意代码的文件后,这些文件反编译后得到的指令中的写录操作的循环次数集中分布在100左右,则可适当提高门限值,如更改门限值为80。
步骤220:判定确定的自解码恶意文件反编译后得到的指令中写录操作的集中分布循环次数略大于设定的门限值。
步骤221:根据步骤220中描述的集中分布的循环次数范围降低门限值。
例如:预设的门限值是20,而本发明实施例中检测完1000个包含自解码恶意代码的文件后,这些文件反编译后得到的指令中的写录操作的循环次数集中分布在20-25之间,则可适当降低门限值,如更改门限值为15。
步骤230:判定确定的自解码恶意文件反编译后得到的指令中写录操作的循环次数略无集中分布特征。
步骤231:根据步骤230中集中分布的循环次数范围无需更改初始门限值。
例如:预设的门限值是20,而本发明实施例中检测完1000个包含自解码恶意代码的文件后,这些文件反编译后得到的指令中的写录操作的循环次数集中分布在大于20的任意位置,则门限值仍保持20不变。
基于上述实施例,参阅图3所示,本发明实施例中,一种检测恶意代码的装置,具体包括:
提取模块30,用于获取待检测文件,并从待检测文件中读取指令,每读取一条指令,执行上述一条指令并记录执行结果,以及将上述执行结果与预设的行为特征模型进行匹配;其中,上述行为特征模型是基于海量的自解码恶意代码运行后产生的行为数据生成的;
判定模块31,用于确定读取到的任意一条指令与上述行为特征模型匹配成功时,判定上述待检测文件包含自解码恶意代码。
较佳的,从上述检测文件中读取一条指令时,上述提取模块30用于:
在上述待检测文件对应的二进制数据流中,确定当前的字节读取起始位置;
基于预设的字节数目集合,从上述当前的字节读取起始位置开始,依次读取符合上述字节数目集合的数据段,每读取到一个数据段,对读取到的数据段进行反编译获得反编译结果,以及将获得的反编译结果与预设的指令集进行匹配,直到确定匹配成功为止,并将匹配成功的反编译结果判定为一条指令。
较佳的,执行读取到的一条指令时,上述提取模块30进一步用于:
读取到一条指令,将读取到的一条指令放到CPU编辑器中执行,并记录执行结果,以及记录读取下一条指令的字节起始位置。
较佳的,每读取一条指令之前,上述提取模块30进一步用于:
确定执行上一条指令后记录的下一条指令的字节起始位置,位于上述待检测文件对应的二进制数据流中时,判定上述字节起始位置有效。
较佳的,确定读取到的任意一条指令的执行结果与上述行为特征模型匹配成功时,上述判定模块31用于:
确定读取到的上述任意一条指令的执行结果表征上述任意一条指令涉及写录操作且循环执行次数达到设定门限时,判定上述任意一条指令的执行结果与上述行为特征模型匹配成功。
较佳的,判定上述待检测文件包含自解码恶意代码之后,上述判定模块31进一步用于:
基于从上述待检测文件中已读取的各个指令的执行结果对应的行为特征,对上述行为特征模型进行更新。
综上所述,本申请实施例中,获取待检测文件,执行从待检测文件中反编译得到的指令并记录执行结果,以及将该执行结果与预设的行为特征模型进行匹配,以判定上述待检测文件是否包含自解码恶意代码。
这样,通过对待检测文件进行反编译,可以逐条读取并执行其包含的指令,并对这些指令的执行结果进行行为特征匹配,从而能够准确地判定待检测文件是否包含有自解码恶意代码,有效提高了检测自解码恶意代码的准确率,减少了漏检率,进而提高了系统的安全性。
进一步地,每读取一条指令,在执行这一条指令之前,需要进行指令有效性判断;读取到一条指令后,将读取到的一条指令以轻量级虚拟执行方式执行。这样,避免了无效指令带来的资源消耗,并且可以节省软硬件资源。
更进一步的,判定待检测文件反编译出的各个指令包含写录操作且循环执行次数达到设定门限后,可以从待检测文件中获取指令的行为特征,对上述行为特征模型进行定期更新,这样,可以通过自学习方式对行为特征模型进行优化,在后续的检测过程中,能够进一步提高检测自解码恶意代码的准确率。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种检测恶意代码的方法,其特征在于,包括:
获取待检测文件,并从所述待检测文件中读取指令,每读取一条指令,执行所述一条指令并记录执行结果,以及将所述执行结果与预设的行为特征模型进行匹配;其中,所述行为特征模型是基于海量的自解码恶意代码运行后产生的行为数据生成的;
确定读取到的任意一条指令的执行结果与所述行为特征模型匹配成功时,判定所述待检测文件包含自解码恶意代码;
其中,从所述待检测文件中读取一条指令,包括:在所述待检测文件对应的二进制数据流中,确定当前的字节读取起始位置;基于预设的字节数目集合,从所述当前的字节读取起始位置开始,依次读取符合所述字节数目集合的数据段,每读取到一个数据段,对读取到的数据段进行反编译获得反编译结果,以及将获得的反编译结果与预设的指令集进行匹配,直到确定匹配成功为止,并将匹配成功的反编译结果判定为一条指令。
2.如权利要求1所述的方法,其特征在于,执行读取到的一条指令,包括:
读取到一条指令,将读取到的一条指令放到CPU编辑器中执行,并记录执行结果,以及记录读取下一条指令的字节起始位置。
3.如权利要求2所述的方法,其特征在于,每读取一条指令之前,进一步包括:
确定执行上一条指令后记录的下一条指令的字节起始位置,位于所述待检测文件对应的二进制数据流中时,判定所述字节起始位置有效。
4.如权利要求1-3任一项所述的方法,其特征在于,确定读取到的任意一条指令的执行结果与所述行为特征模型匹配成功,包括:
确定读取到的所述任意一条指令的执行结果表征所述任意一条指令涉及写录操作且循环执行次数达到设定门限时,判定所述任意一条指令的执行结果与所述行为特征模型匹配成功。
5.如权利要求4所述的方法,其特征在于,判定所述待检测文件包含自解码恶意代码
之后,进一步包括:
基于从所述待检测文件中已读取的各个指令的执行结果对应的行为特征,对所述行为特征模型进行更新。
6.一种检测恶意代码的装置,其特征在于,包括:
提取模块,用于获取待检测文件,并从所述待检测文件中读取指令,每读取一条指令,执行所述一条指令并记录执行结果,以及将所述执行结果与预设的行为特征模型进行匹配;其中,所述行为特征模型是基于海量的自解码恶意代码运行后产生的行为数据生成的;
判定模块,用于确定读取到的任意一条指令与所述行为特征模型匹配成功时,判定所述待检测文件包含自解码恶意代码;
其中,从所述待检测文件中读取一条指令时,所述提取模块用于:在所述待检测文件对应的二进制数据流中,确定当前的字节读取起始位置;基于预设的字节数目集合,从所述当前的字节读取起始位置开始,依次读取符合所述字节数目集合的数据段,每读取到一个数据段,对读取到的数据段进行反编译获得反编译结果,以及将获得的反编译结果与预设的指令集进行匹配,直到确定匹配成功为止,并将匹配成功的反编译结果判定为一条指令。
7.如权利要求6所述的装置,其特征在于,执行读取到的一条指令时,所述提取模块进一步用于:
读取到一条指令,将读取到的一条指令放到CPU编辑器中执行,并记录执行结果,以及记录读取下一条指令的字节起始位置。
8.如权利要求7所述的装置,其特征在于,每读取一条指令之前,所述提取模块进一步用于:
确定执行上一条指令后记录的下一条指令的字节起始位置,位于所述待检测文件对应的二进制数据流中时,判定所述字节起始位置有效。
9.如权利要求6-8任一项所述的装置,其特征在于,确定读取到的任意一条指令的执行结果与所述行为特征模型匹配成功时,所述判定模块用于:
确定读取到的所述任意一条指令的执行结果表征所述任意一条指令涉及写录操作且循环执行次数达到设定门限时,判定所述任意一条指令的执行结果与所述行为特征模型匹配成功。
10.如权利要求9所述的装置,判定所述待检测文件包含自解码恶意代码之后,所述判定模块进一步用于:
基于从所述待检测文件中已读取的各个指令的执行结果对应的行为特征,对所述行为特征模型进行更新。
CN201510997664.4A 2015-12-25 2015-12-25 一种检测恶意代码的方法及装置 Active CN105653954B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510997664.4A CN105653954B (zh) 2015-12-25 2015-12-25 一种检测恶意代码的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510997664.4A CN105653954B (zh) 2015-12-25 2015-12-25 一种检测恶意代码的方法及装置

Publications (2)

Publication Number Publication Date
CN105653954A CN105653954A (zh) 2016-06-08
CN105653954B true CN105653954B (zh) 2019-02-01

Family

ID=56476991

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510997664.4A Active CN105653954B (zh) 2015-12-25 2015-12-25 一种检测恶意代码的方法及装置

Country Status (1)

Country Link
CN (1) CN105653954B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108875363B (zh) * 2017-12-29 2021-04-30 北京安天网络安全技术有限公司 一种加速虚拟执行的方法、装置、电子设备及存储介质
CN111881447B (zh) * 2020-06-28 2022-12-06 中国人民解放军战略支援部队信息工程大学 恶意代码片段智能取证方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101281571A (zh) * 2008-04-22 2008-10-08 白杰 防御未知病毒程序的方法
CN101645119A (zh) * 2008-08-07 2010-02-10 中国科学院软件研究所 一种基于虚拟硬件环境的恶意代码自动分析方法及系统
CN101848092A (zh) * 2009-03-25 2010-09-29 华为技术有限公司 恶意代码检测方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101281571A (zh) * 2008-04-22 2008-10-08 白杰 防御未知病毒程序的方法
CN101645119A (zh) * 2008-08-07 2010-02-10 中国科学院软件研究所 一种基于虚拟硬件环境的恶意代码自动分析方法及系统
CN101848092A (zh) * 2009-03-25 2010-09-29 华为技术有限公司 恶意代码检测方法和装置

Also Published As

Publication number Publication date
CN105653954A (zh) 2016-06-08

Similar Documents

Publication Publication Date Title
KR102450834B1 (ko) 다중 특징벡터를 이용하는 행위기반 악성코드 탐지 장치 및 방법
CN105989283B (zh) 一种识别病毒变种的方法及装置
Wang et al. Neufuzz: Efficient fuzzing with deep neural network
US10534914B2 (en) Vulnerability finding device, vulnerability finding method, and vulnerability finding program
US10127379B2 (en) Profiling code execution
KR102317833B1 (ko) 악성 코드 탐지 모델 학습 방법 및 이를 이용한 탐지 방법
WO2015101096A1 (zh) 检测智能终端中恶意代码的方法及装置
WO2015101097A1 (zh) 特征提取的方法及装置
US9721120B2 (en) Preventing unauthorized calls to a protected function
KR101228899B1 (ko) 벡터량 산출을 이용한 악성코드의 분류 및 진단 방법과 장치
US10395033B2 (en) System, apparatus and method for performing on-demand binary analysis for detecting code reuse attacks
US20180225453A1 (en) Method for detecting a threat and threat detecting apparatus
BR102015017215A2 (pt) método implementado em computador para classificação de aplicativos móveis, e, programa de computador codificado em um meio de armazenamento não-trasitório
CN104834859A (zh) 一种Android应用中恶意行为的动态检测方法
TW201721497A (zh) 用以檢測運作時期所產生碼中之惡意碼的系統及方法
TW201721418A (zh) 檢測系統及其方法
CN106874758B (zh) 一种识别文档代码的方法和装置
CN103886229A (zh) 一种提取pe文件特征的方法及装置
CN104680065A (zh) 病毒检测方法、装置及设备
EP1971927A1 (en) Method of and apparatus for monitoring code to detect intrusion code
KR102151318B1 (ko) 이종 정보 네트워크 기반 악성 코드 탐지 방법 및 장치
Zhu et al. Determining image base of firmware files for ARM devices
CN105653954B (zh) 一种检测恶意代码的方法及装置
US20160134652A1 (en) Method for recognizing disguised malicious document
WO2018121464A1 (zh) 一种病毒检测方法及装置、存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: 100089 Beijing city Haidian District Road No. 4 North wa Yitai three storey building

Patentee after: NSFOCUS Technologies Group Co.,Ltd.

Patentee after: NSFOCUS TECHNOLOGIES Inc.

Address before: 100089 Beijing city Haidian District Road No. 4 North wa Yitai three storey building

Patentee before: NSFOCUS INFORMATION TECHNOLOGY Co.,Ltd.

Patentee before: NSFOCUS TECHNOLOGIES Inc.

CP01 Change in the name or title of a patent holder