CN111902816A - 恶意程序检测 - Google Patents

恶意程序检测 Download PDF

Info

Publication number
CN111902816A
CN111902816A CN201880091475.2A CN201880091475A CN111902816A CN 111902816 A CN111902816 A CN 111902816A CN 201880091475 A CN201880091475 A CN 201880091475A CN 111902816 A CN111902816 A CN 111902816A
Authority
CN
China
Prior art keywords
program
control flow
potentially malicious
identifying
flow graph
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.)
Pending
Application number
CN201880091475.2A
Other languages
English (en)
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 Didi Infinity Technology and Development Co Ltd
Original Assignee
Beijing Didi Infinity Technology and Development 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 Didi Infinity Technology and Development Co Ltd filed Critical Beijing Didi Infinity Technology and Development Co Ltd
Publication of CN111902816A publication Critical patent/CN111902816A/zh
Pending legal-status Critical Current

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
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

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)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

恶意程序可以通过获取程序的程序信息来检测。控制流图可以基于程序信息来生成。程序可以基于控制流图的一个或多个部分,被识别为存在潜在恶意。

Description

恶意程序检测
相关申请
本申请要求2018年3月20日提交的,申请号为No.15/926,596,题为“MaliciousProgram Detection”的美国非临时申请的优先权,其全部内容通过引用合并于此。
技术领域
本申请通常涉及使用控制流图来检测恶意程序。
背景技术
基于模式(例如,字符串、表达式)匹配的恶意程序检测可以很容易被绕开。使用启发式方法进行恶意程序检测可能会导致误报和/或漏报,因为检测本身通常是可疑而非恶意的指示。通过执行代码来执行解包可以逃脱恶意程序检测,例如,基于恶意程序使用用户参数作为函数名,或者仅在提供正确的解密密钥的情况下使用加密方法来解密恶意程序。需要一种用于检测恶意程序的更有弹性的工具。
发明内容
本申请的一个方面针对一种用于检测恶意程序的方法。所述方法可以包括:获取程序的程序信息;以及基于程序信息生成控制流图;基于控制流图的一个或多个部分,将程序识别为存在潜在恶意。
本申请的另一方面针对一种用于检测恶意程序的系统。所述系统可以包括一个或多个处理器和存储指令的存储器。所述指令在被一个或多个处理器执行时,可以使系统执行:获得程序的程序信息;基于程序信息生成控制流图;基于控制流图的一个或多个部分,将程序识别为存在潜在恶意。
在一些实施例中,程序信息可以包括程序的计算机代码。在一些实施例中,程序可以包括网页后门。
在一些实施例中,基于程序信息生成控制流图可以包括:基于程序信息生成抽象语法树;以及基于抽象语法树生成控制流图。
在一些实施例中,基于控制流图的一个或多个部分将程序识别为存在潜在恶意可以包括:识别控制流图内的敏感函数,敏感函数与一个或多个参数相关联;对敏感函数的一个或多个参数执行反向数据流跟踪;以及基于反向数据流跟踪将程序识别为存在潜在恶意。
例如,基于识别一个或多个参数的一个或多个源的反向数据流跟踪,可以将程序识别为存在潜在恶意。基于识别一个或多个参数的一个或多个运算符的反向数据流跟踪,可以将程序识别为存在潜在恶意。基于反向数据流跟踪,程序可以被识别为存在潜在恶意,该反向数据流跟踪识别了从post参数到敏感函数的参数的数据流。基于反向数据流跟踪,程序可以被识别为存在潜在恶意,该反向数据流跟踪识别了混淆敏感函数变量的操作。
在一些实施例中,可以进一步基于对程序信息的静态分析,将程序识别为存在潜在恶意。在一些实施例中,可以进一步基于对程序信息的动态分析,将程序识别为存在潜在恶意。
在本申请的另一方面,一种用于检测恶意程序的系统可以包括一个或多个处理器和存储指令的存储器。所述指令在被一个或多个处理器执行时,可以使系统执行:获得程序的程序信息;基于程序信息生成抽象语法树;基于抽象语法树生成控制流图;在控制流图中识别敏感函数,敏感函数与一个或多个参数相关联;对敏感函数的一个或多个参数执行反向数据流跟踪;以及基于反向数据流跟踪将程序识别为存在潜在恶意。
本文公开的系统、方法和非临时计算机可读介质的上述和其他特征,以及操作方法、结构相关元件的功能、部件的组合和制造的经济性,在参考附图考虑以下描述和所附权利要求时,将变得更加明显,所有附图均构成本说明书的一部分,其中相同的附图标记指定了各种附图中的相应部分。然而,应当明确地理解,附图仅出于说明和描述的目的,并且不作为对本发明的限制性的定义。应当理解,前面的一般描述和下面的详细描述仅是示例性和说明性的,并且不限制所要求保护的本发明。
附图说明
通过参考附图,可以更容易地理解本发明的优选和非限制性实施例,其中:
图1示出了根据本申请的各种实施例的用于检测恶意程序的示例环境。
图2A示出了根据本申请的各种实施例的示例程序。
图2B示出了根据本申请的各种实施例的图2A中所示的程序的示例控制流图。
图3A示出了根据本申请的各种实施例的示例程序。
图3B示出了根据本申请的各种实施例的图3A中所示的程序的示例控制流图。
图4A示出了根据本申请的各种实施例的示例程序。
图4B示出了根据本申请的各种实施例的图4A中所示的程序的示例控制流图。
图5A示出了根据本申请的各种实施例的示例程序。
图5B示出了根据本申请的各种实施例的图5A中所示的程序的示例控制流图。
图6示出了根据本申请的各种实施例的示例性方法的流程图。
图7示出了其中可以实现本文描述的任何实施例的示例计算机系统的框图。
具体实施方式
现在将参考附图描述本发明的特定的非限制性实施例。应当理解,本文公开的任何实施例的特定特征和方面可以与本文公开的任何其他实施例的特定特征和方面一起使用和/或组合。还应该理解的是,这些实施例仅作为示例,并且仅是对本发明范围内的少量实施例的说明。对于本发明所属领域的技术人员显而易见的各种改变和修改被认为在所附权利要求书中进一步限定的本发明的精神、范围和构思之内。
图1示出了根据各种实施例的用于检测恶意程序的示例环境100。示例环境100可以包括计算系统102。计算系统102可以包括一个或多个处理器和存储器(例如,永久存储器、临时存储器)。处理器可以被配置为通过解释存储在存储器中的机器可读指令来执行各种操作。计算系统102可以包括其他计算资源和/或可以访问(例如,经由一个或多个连接/网络)其他计算资源。
计算系统102可以包括程序组件112、控制流图组件114、识别组件116和/或其他组件。尽管在图1中将计算系统102示为单个实体,但这仅是为了便于参考,并不意味着是限制性的。本文描述的计算系统102的一个或多个组件/功能可以在单个计算设备或多个计算设备中实现。
程序组件112可以被配置为获得一个或多个程序的程序信息。程序可以指代将由计算设备执行的一个或多个命令。例如,程序可以包括要由计算设备执行的命令列表,诸如,脚本、宏、批处理文件和/或其他程序。程序可以包含在一个或多个文件中,并且可以在不编译的情况下执行。程序信息可以指描述程序的信息(包含在一个或多个文件中、一个或多个文件的一部分)。例如,程序信息可以包括程序的计算机代码、与程序有关的元数据和/或关于程序的其他信息。例如,程序可以包括网页后门,以及程序信息可以包括网页后门的计算机代码。其他类型的程序和程序信息可以被考虑。
获得程序信息可以包括访问、获取、分析、确定、检查、加载、定位、打开、接收、检索、评审、存储和/或以其他方式获得程序信息中的一项或多项。程序组件112可以从一个或多个位置获得程序信息。例如,程序组件112可以从存储位置获得程序信息,例如,计算系统102的电子存储、可通过网络访问的设备的电子存储、另一个计算设备/系统(例如,台式机、笔记本电脑、智能手机、平板电脑、移动设备)和/或其他位置。
在一些实施例中,程序组件112可以基于程序选择、程序检测、程序上传和/或与程序有关的其他动作来获得程序信息。例如,程序组件112可以基于用户和/或计算设备/系统对程序的选择来获得程序信息以进行分析。程序组件112可以基于计算设备/系统对程序的检测来获得程序信息。程序组件112可以基于被上载到计算设备/系统的程序来获得程序信息。与程序有关的其他动作可以提示程序组件112获得程序信息。
由程序组件112获得的程序信息可以涉及计算系统102上的程序和/或其他计算设备/系统上的程序。例如,程序组件112可以获取已经存储在计算系统102中程序的程序信息。作为另一示例,程序组件112可以从计算系统102获取远程存储的程序的程序信息。例如,计算系统102可以是网络内的节点/服务器,并且程序组件112可以获取存储在网络内的其他节点/服务器上的程序的程序信息。程序信息可以由程序组件112从网络内的其他节点/服务器请求,和/或由网络内的其他节点/服务器推送到程序组件112。
控制流图组件114可以被配置为基于程序信息和/或其他信息来生成一个或多个控制流图。控制流图可以包括一个或多个路径的表示,在程序执行期间,一个或多个路径的表示可以被遍历。控制流图可以使用图符号(例如,节点、边)来表示程序的路径。在一些实施例中,控制流图组件114可以通过以下方式生成程序的控制流图:(1)基于程序信息生成抽象语法树,以及(2)基于抽象语法树生成控制流图。抽象语法树可以包括程序的抽象语法结构的树表示。
例如,对于支持的编程语言(例如,PHP、JS)的给定文件,控制流图组件114可以解析程序(程序的计算机代码)以生成抽象语法树。然后,抽象语法树可以用于生成程序的控制流图。程序的控制流图可用于了解程序如何执行。例如,可以使用控制流图在程序的敏感函数上执行反向数据流跟踪。潜在恶意程序/程序的潜在恶意部分可基于敏感函数的源和参数,和/或基于从控制流图中获得的其他信息来检测。
图2A、3A、4A、5A示出了示例程序202、302、402、502。图2B、3B、4B、5B示出了用于程序202、302、402、502的示例控制流图204、304、404、504。例如,基于程序202的程序信息,控制流图组件114可以生成控制流图204。基于程序302的程序信息,控制流图组件114可以生成控制流图304。基于程序402的程序信息,控制流图组件114可以生成控制流图404。以及基于程序502的程序信息,控制流图组件114可以生成控制流图504。程序202、302、402、502的控制流图204、304、404、504可用于理解程序202、302、402、502如何执行。
识别组件116可以被配置为基于程序的控制流图的一个或多个部分和/或其他信息来识别程序存在潜在恶意。例如,识别组件116可以基于控制流图204的一个或多个部分和/或其他信息将程序202识别为存在潜在恶意。识别组件116可以基于控制流图304的一个或多个部分和/或其他信息将程序302识别为存在潜在恶意。识别组件116可以基于控制流图404的一个或多个部分和/或其他信息将程序402识别为存在潜在恶意。识别组件116可以基于控制流图504的一个或多个部分和/或其他信息将程序502识别为存在潜在恶意。在一些实施例中,将程序识别为存在潜在恶意可以包括将程序的一个或多个部分识别为存在潜在恶意。在一些实施例中,将程序/程序的部分识别为潜在恶意可以包括将程序/程序的部分识别为存在恶意。
基于控制流图将程序/程序的部分识别为存在潜在恶意可能比基于模式/字符串匹配的识别更可靠。例如,基于静态模式匹配识别恶意程序的工具很容易被绕过。尽管启发式方法在某些情况下可以检测恶意程序,但是通常很难解决误报/漏报问题,因为检测本身可能是可疑而非恶意的指标。一些工具可能会执行计算机代码以执行解压缩并检测恶意程序。但是,可以通过许多不同的方式来逃避此类工具,例如,通过使用用户参数作为函数名称(例如,对于PHP或JS)或仅在提供正确的解密密钥时使用加密方法解密恶意程序(例如,对于网页后门)。另一方面,基于控制流图的恶意程序识别可以实现基于代码结构和数据流的检测,这对于代码混淆和/或变异可能更具弹性。
基于控制流图将程序/程序的部分识别为存在潜在恶意可以包括:识别合法/非恶意程序通常不会使用的代码结构和模式。例如,合法程序可能不会将代码存储为base64blob,然后将其解码并运行。又例如,合法程序可能不使用一个或多个Web参数作为敏感函数(例如exec函数)调用的参数的一部分。基于对数据如何流过程序的控制流图的分析,可以识别出这种结构/模式。
在一些实施例中,基于对控制流图中的一个或多个敏感函数的识别以及使用控制流图的反向数据流跟踪,可以将程序/程序的部分识别为存在潜在恶意。敏感函数可以指可以接收、处理和/或输出计算设备/进程/程序的重要值的函数。敏感函数可以指可以用于渗透/攻击计算设备/进程/程序的函数。例如,敏感函数可以包括管理函数和/或使一个或多个进程/程序执行的函数。敏感函数可以与一个或多个参数(函数的输入,例如,函数调用时提供的输入)相关联,并且可以对参数执行反向数据流跟踪,以识别程序/程序的部分是否存在潜在恶意。例如,反向数据流跟踪可以识别特定源,该特定源用作敏感函数的参数输入,并且这种识别可能提示将程序/程序的部分识别为存在潜在恶意。
反向数据流跟踪可以识别特定运算符被敏感函数的参数使用,并且这种识别可能提示将程序/程序的部分识别为存在潜在恶意。反向数据流跟踪可以识别从post参数到敏感函数的参数的一个或多个数据流,并且这种识别可以提示将程序/程序的部分识别为存在潜在恶意。反向数据流跟踪可以识别混淆敏感函数的变量的操作,并且这样的识别可以提示将程序/程序的部分识别为存在潜在恶意。混淆可以指使程序的一个或多个部分难以理解/遵循的步骤。例如,反向数据流跟踪可以识别通过使用替代字符/字符修改来隐藏/试图隐藏在敏感函数中使用的潜在恶意值/命令的操作。基于控制流图将程序/程序的部分识别为存在潜在恶意的其他规则可以被考虑。
例如,参考图2A,程序202可以包括网页后门。网页后门可以指将浏览器的功能与Shell(例如,Unix Shell、终端)功能结合在一起的程序。网页后门可以用作Web服务器的客户端,并且可以上载到Web服务器以提供对Web服务器/通过Web服务器的未授权访问。例如,用户(例如,未经授权的用户)可以将网页后门上载到web应用程序,并使用网页后门传递将提供给“exec”函数的值。变量“GET”可以从外部源获取参数。参照图2B,可以执行控制流图204的反向数据流跟踪,以识别从post参数到shell函数的数据流。换言之,可以执行控制流图204的反向数据流跟踪,以识别控制流图204的部分,该部分可由用户用于传递将提供给“exec”函数的值。基于这样的识别,程序202可以被识别组件106识别为存在潜在恶意。
对于诸如程序202之类的简单程序,模式匹配可用于将程序识别为存在潜在恶意。但是,程序混淆(例如,混淆函数、参数、变量)可能会绕过这种模式匹配。这样的程序在图3A中被示为程序302。模式匹配可能无法将程序302识别为存在潜在恶意。然而,用于程序302的控制流图304(如图3B所示)可以示出,与控制流图204一样,存在从用户提供的post参数到shell的参数的路径。尽管程序302和程序202的文本表示形式完全不同,但是可以基于控制流图204、304识别它们的相似语义。因此,基于从外部变量到敏感函数参数的数据流,识别组件116可以使用将程序202识别为存在潜在恶意的相同规则,来将程序302识别为存在潜在恶意。
作为另一个示例,可以使用字符串操作(例如,base64_decode、strrev、str_rot13),将变量传递到敏感函数(例如,eval、exec)中,以识别潜在恶意的程序/程序的部分。这样的操作可能不是非混淆代码中使用的通用功能链。对传递给敏感函数的参数进行运算的公式的复杂性也可用于识别恶意程序/程序的部分。
图4A所示的程序402示出了这样的程序的示例。合法的代码可能不会试图隐藏传递给敏感函数(例如“eval”)的参数。例如,一个“eval”的输出通常不会用作另一个“eval”的输入。字符串反向操作不能用于准备“eval”的输入。基于程序402的复杂性,模式匹配可能无法将程序402识别为存在潜在恶意。然而,用于程序402的控制流图404(在图4B中示出)可以显示对“eval”的多个调用,以及字符串连接和strrev函数正被用于生成变量“$f”。被传递给敏感函数的变量的这种更改可由识别组件116用于识别程序402存在潜在恶意。
图5A示出了示例程序502,其可以通过要求动态传递加密密钥来绕过恶意程序检测的执行。在没有加密密钥的情况下,程序502的执行可以返回看起来“无害”的值/返回值。用于程序502的控制流图504(如图5B所示)可以显示正在对“eval”的输入执行多个字符串操作(mcrypt_decrypt、substr、base64_decode)。此外,控制流图504可以显示用户输入($_COOKIE[′dec′])可能影响对“eval”函数的输入。识别组件116可以使用传递给敏感函数的变量的这种更改,将程序502识别为存在潜在恶意。识别组件116将程序502识别为存在潜在恶意的规则可以与识别组件116将程序402识别为存在潜在恶意的规则相同。
在一些实施例中,可以使用进一步的分析,来微调程序(或程序的一个或多个部分)为存在潜在恶意的识别。例如,假设控制流图有助于理解程序如何执行,则可以通过将上述技术与程序信息(例如,计算机代码)的静态分析和/或动态分析相结合来微调上述恶意程序/程序恶意部分的识别。例如,静态分析(例如,识别计算机代码中的特定字符串字面值)和/或动态分析(例如,将代码层进行去模糊化分析),可以结合上述技术来改进对恶意程序/部分程序的识别/检测。
在一些实施例中,可以对由识别组件116识别为潜在恶意的程序/程序的一部分进行标记,以进行进一步的检查/分析。程序/程序的部分的标记可以包括修改程序/程序的部分,和/或生成/修改一个或多个其他文件(例如,列出潜在恶意程序/程序的部分的文件)。所识别的程序/程序的部分可以被提供给一个或多个用户以供查看和/或被提供给其他工具以供进一步分析。例如,可以通过一个或多个消息(例如,警告消息)向用户警告所识别的程序/程序的部分存在潜在恶意。可以向用户提供潜在恶意程序/程序的部分的标识,和/或关于如何识别程序/程序的部分的信息(例如,提供相应的控制流图/控制流图的部分、反向数据流跟踪)。所识别的程序/程序的部分可以被提供给在计算系统102和/或其他计算系统/设备上运行的一个或多个工具,以对程序/程序的部分进行更深入的分析。所识别的程序/程序的部分可以被隔离和/或移除。可以跟踪所识别的程序/程序的部分的过程,以发现由程序/程序的部分执行的潜在恶意操作。
图6示出了根据本申请的各种实施例的示例方法600的流程图。方法600可以在各种环境中实现,包括,例如,图1的环境100。以下呈现的方法600的操作旨在说明。基于实现方式,方法600可以包括以各种顺序或并行执行的附加、较少或替代步骤。方法600可以在包括一个或多个处理器的各种计算系统或设备中实现。
关于方法600,在框610处,可以获得程序的程序信息。在框620处,可以基于程序信息来生成控制流图。在框630处,可以基于控制流图的一个或多个部分将程序识别为存在潜在恶意。
图7是示出了可以在其上实现本文描述的任何实施例的计算机系统700的框图。计算机系统700包括总线702或用于信息通信的其他通信机制,与总线702耦合的、用于信息处理的一个或多个硬件处理器704。硬件处理器704可以是,例如,一个或多个通用微处理器。
计算机系统700还包括耦合到总线702的主存储器706,例如随机存取存储器(RAM)、高速缓存和/或其他动态存储设备,主存储器706用于存储将由处理器704执行的信息和指令。在执行由处理器704执行的指令期间,主存储器706还可用于存储临时变量或其他中间信息。当将这些指令存储在处理器704可访问的存储介质中时,这些指令将计算机系统700呈现成专用于执行指令中指定操作的专用机器。主存储器706可以包括非易失性介质和/或易失性介质。非易失性介质可以包括例如光盘或磁盘。易失性介质可以包括动态内存。常见形式的介质可包括,例如,软盘、软磁盘、硬盘、固态驱动器、磁带或任何其他磁性数据存储介质、CD-ROM、任何其他光学数据存储介质、具有孔图案的任何物理介质、RAM、DRAM、PROM和EPROM、FLASH-EPROM、NVRAM、任何其他内存芯片或盒式磁带、以及相同的联网版本。
计算机系统700可以使用定制的硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑来实现本文描述的技术,这些逻辑与计算机系统结合使计算机系统700或将计算机系统700编程成为专用机器。根据一个实施例,响应于处理器704执行包含在主存储器706中的一个或多个指令的一个或多个序列,由计算机系统700执行本文中的技术。这些指令可以从另一存储介质(例如存储设备708),读入主存储器706。执行包含在主存储器706中的指令序列使处理器704执行本文所述的处理步骤。例如,图6所示的以及结合本图描述的处理/方法,可以通过存储在主存储器706中的计算机程序指令来实现。当这些指令由处理器704执行时,这些指令可以执行如图6所示的步骤和上述内容。在替代实施例中,可以使用硬连线电路代替软件指令或与软件指令结合使用。
计算机系统700还包括耦合到总线702的通信接口710。通信接口710提供双向数据通信,该双向数据通信耦合到被连接到一个或多个网络的一个或多个网络链路。作为另一示例,通信接口710可以是局域网(LAN)卡,用于向兼容LAN(或与WAN通信的WAN组件)提供数据通信连接。也可以实现无线链路。
某些操作的性能可能会分布在处理器之间,不仅驻留在单个计算机中,而且可以部署在多个计算机上。在一些示例实施例中,处理器或处理器实现的引擎可以位于单个地理位置中(例如,在家庭环境、办公室环境或服务器场内)。在其他示例实施例中,处理器或处理器实现的引擎可以分布在多个地理位置上。
本文将某些实施例描述为包括逻辑或多个组件。组件可以构成软件组件(例如,在机器可读介质上实现的代码)或硬件组件(例如,能够以特定物理方式配置或布置的特定操作的有形单元)。
尽管本文描述了所公开原理的示例和特征,但是在不脱离所公开实施例的精神和范围的情况下,可以进行修改改编和其他实现。同样,词语“包括”、“具有”和“包含”以及其他类似形式在含义上是等同的,并且以无限制的方式开放,因为在这些词语中的任何一个之后的一个或多个项目不是表示这些项目的详尽清单,或者仅限于所列项目。还必须注意的是,如本文和所附权利要求书中所使用的,单数形式的“一个”,“一种”和“所述”包括复数引用,除非上下文另外明确指出。

Claims (20)

1.一种用于检测恶意程序的系统,所述系统包括:
一个或多个处理器;和
存储指令的存储器,当所述指令被所述一个或多个处理器执行时,所述指令使所述系统执行:
获取程序的程序信息;
基于所述程序信息生成抽象语法树;
基于所述抽象语法树生成控制流图;
在所述控制流图中识别敏感函数,所述敏感函数与一个或多个参数相关联;
对所述敏感函数的所述一个或多个参数执行反向数据流跟踪;以及
基于所述反向数据流跟踪将所述程序识别为存在潜在恶意。
2.根据权利要求1所述的系统,其中,所述程序基于所述反向数据流跟踪,被识别为存在潜在恶意,所述反向数据流跟踪识别:
所述一个或多个参数的一个或多个源,或所述一个或多个参数的一个或多个运算符;
从post参数到所述敏感函数的参数的数据流;或者
混淆所述敏感函数的变量的操作。
3.一种用于检测恶意程序的系统,该系统包括:
一个或多个处理器;和
存储指令的存储器,当所述指令被所述一个或多个处理器执行时,所述指令使系统执行:
获取程序的程序信息;
基于所述程序信息生成控制流图;以及
基于所述控制流图的一个或多个部分,将所述程序识别为存在潜在恶意。
4.根据权利要求3所述的系统,其中,基于所述程序信息生成所述控制流图包括:
基于所述程序信息生成抽象语法树;以及
基于所述抽象语法树生成所述控制流图。
5.根据权利要求3所述的系统,其中,基于所述控制流图的一个或多个部分,将所述程序识别为存在潜在恶意包括:
在所述控制流图中识别敏感函数,所述敏感函数与一个或多个参数相关联;
对所述敏感函数的所述一个或多个参数执行反向数据流跟踪;以及
基于所述反向数据流跟踪将所述程序识别为存在潜在恶意。
6.根据权利要求5所述的系统,其中,基于所述反向数据流跟踪,将所述程序识别为存在潜在恶意,所述反向数据流跟踪识别所述一个或多个参数的一个或多个源,或所述一个或多个参数的一个或多个运算符。
7.根据权利要求5所述的系统,其中,基于所述反向数据流跟踪,将所述程序识别为存在潜在恶意,所述反向数据流跟踪识别从post参数到所述敏感函数的参数的数据流。
8.根据权利要求5所述的系统,其中,基于所述反向数据流跟踪,将所述程序识别为存在潜在恶意,所述反向数据流跟踪识别混淆所述敏感函数的变量的操作。
9.根据权利要求3所述的系统,其中,进一步基于对所述程序信息的静态分析,将所述程序识别为存在潜在恶意。
10.根据权利要求3所述的系统,其中,进一步基于对所述程序信息的动态分析,将所述程序识别为存在潜在恶意。
11.根据权利要求3所述的系统,其中,所述程序信息包括所述程序的计算机代码,以及所述程序包括网页后门。
12.一种用于检测恶意程序的方法,所述方法由计算系统执行,所述计算系统包括一个或多个处理器和存储机器可读指令的非暂时性存储介质,该方法包括:
获取程序的程序信息;
基于所述程序信息生成控制流图;以及
基于所述控制流图的一个或多个部分,将所述程序识别为存在潜在恶意。
13.根据权利要求12所述的方法,其中,基于所述程序信息生成所述控制流图包括:
根据所述程序信息生成抽象语法树;以及
基于所述抽象语法树生成所述控制流图。
14.根据权利要求12所述的方法,其中,基于所述控制流图的所述一个或多个部分,将所述程序识别为存在潜在恶意包括:
在所述控制流图中识别敏感函数,所述敏感函数与一个或多个参数相关联;
对所述敏感函数的所述一个或多个参数执行反向数据流跟踪;以及
基于所述反向数据流跟踪将所述程序识别为存在潜在恶意。
15.根据权利要求14所述的方法,其中,基于所述反向数据流跟踪,将所述程序识别为存在潜在恶意,所述反向数据流跟踪识别所述一个或多个参数的一个或多个源,或所述一个或多个参数的一个或多个运算符。
16.根据权利要求14所述的方法,其中,基于所述反向数据流跟踪,将所述程序识别为存在潜在恶意,所述反向数据流跟踪识别从post参数到所述敏感函数的参数的数据流。
17.根据权利要求14所述的方法,其中,基于所述反向数据流跟踪,将所述程序识别为存在潜在恶意,所述反向数据流跟踪识别混淆所述敏感函数的变量的操作。
18.根据权利要求12所述的方法,其中,进一步基于对所述程序信息的静态分析,将所述程序识别为存在潜在恶意。
19.根据权利要求12所述的方法,其中,进一步基于对所述程序信息的动态分析,将所述程序识别为存在潜在恶意。
20.根据权利要求12所述的方法,其中,所述程序信息包括所述程序的计算机代码,以及所述程序包括网页后门。
CN201880091475.2A 2018-03-20 2018-12-04 恶意程序检测 Pending CN111902816A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/926,596 US10678916B2 (en) 2018-03-20 2018-03-20 Malicious program detection
US15/926,596 2018-03-20
PCT/US2018/063800 WO2019182663A1 (en) 2018-03-20 2018-12-04 Malicious program detection

Publications (1)

Publication Number Publication Date
CN111902816A true CN111902816A (zh) 2020-11-06

Family

ID=67984270

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880091475.2A Pending CN111902816A (zh) 2018-03-20 2018-12-04 恶意程序检测

Country Status (3)

Country Link
US (1) US10678916B2 (zh)
CN (1) CN111902816A (zh)
WO (1) WO2019182663A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113918951A (zh) * 2021-12-16 2022-01-11 北京微步在线科技有限公司 基于抽象语法树的恶意代码检测方法、装置及电子设备

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010005849A1 (en) * 1996-11-13 2001-06-28 Puma Technology, Inc. Synchronization of databases using filters
CN101266550A (zh) * 2007-12-21 2008-09-17 北京大学 一种恶意代码检测方法
CN101286132A (zh) * 2008-06-02 2008-10-15 北京邮电大学 一种基于软件缺陷模式的测试方法及系统
US20100083240A1 (en) * 2006-10-19 2010-04-01 Checkmarx Ltd Locating security vulnerabilities in source code
US20110030060A1 (en) * 2009-08-03 2011-02-03 Barracuda Networks, Inc. Method for detecting malicious javascript
US7900193B1 (en) * 2005-05-25 2011-03-01 Parasoft Corporation System and method for detecting defects in a computer program using data and control flow analysis
US8286250B1 (en) * 2011-11-16 2012-10-09 Google Inc. Browser extension control flow graph construction for determining sensitive paths
US20140310813A1 (en) * 2013-04-12 2014-10-16 Fujitsu Limited Determining software metrics
US20150058984A1 (en) * 2013-08-23 2015-02-26 Nation Chiao Tung University Computer-implemented method for distilling a malware program in a system
CN104834858A (zh) * 2015-04-24 2015-08-12 南京邮电大学 一种android应用中恶意代码的静态检测方法
US20150363598A1 (en) * 2013-01-16 2015-12-17 Mcafee, Inc. Detection of malicious scripting language code in a network environment
US9454659B1 (en) * 2014-08-15 2016-09-27 Securisea, Inc. Software vulnerabilities detection system and methods
US20170017789A1 (en) * 2014-08-15 2017-01-19 Securisea, Inc. High Performance Software Vulnerabilities Detection System and Methods
US9690936B1 (en) * 2013-09-30 2017-06-27 Fireeye, Inc. Multistage system and method for analyzing obfuscated content for malware
CN107301347A (zh) * 2017-07-26 2017-10-27 南京邮电大学 一种基于静态分析获取Hbuilder App调用图的方法
US20170353481A1 (en) * 2016-06-06 2017-12-07 Samsung Electronics Co., Ltd. Malware detection by exploiting malware re-composition variations using feature evolutions and confusions

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010005849A1 (en) * 1996-11-13 2001-06-28 Puma Technology, Inc. Synchronization of databases using filters
US7900193B1 (en) * 2005-05-25 2011-03-01 Parasoft Corporation System and method for detecting defects in a computer program using data and control flow analysis
US20100083240A1 (en) * 2006-10-19 2010-04-01 Checkmarx Ltd Locating security vulnerabilities in source code
CN101266550A (zh) * 2007-12-21 2008-09-17 北京大学 一种恶意代码检测方法
CN101286132A (zh) * 2008-06-02 2008-10-15 北京邮电大学 一种基于软件缺陷模式的测试方法及系统
US20110030060A1 (en) * 2009-08-03 2011-02-03 Barracuda Networks, Inc. Method for detecting malicious javascript
US8286250B1 (en) * 2011-11-16 2012-10-09 Google Inc. Browser extension control flow graph construction for determining sensitive paths
US20150363598A1 (en) * 2013-01-16 2015-12-17 Mcafee, Inc. Detection of malicious scripting language code in a network environment
US20140310813A1 (en) * 2013-04-12 2014-10-16 Fujitsu Limited Determining software metrics
US20150058984A1 (en) * 2013-08-23 2015-02-26 Nation Chiao Tung University Computer-implemented method for distilling a malware program in a system
US9690936B1 (en) * 2013-09-30 2017-06-27 Fireeye, Inc. Multistage system and method for analyzing obfuscated content for malware
US9454659B1 (en) * 2014-08-15 2016-09-27 Securisea, Inc. Software vulnerabilities detection system and methods
US20170017789A1 (en) * 2014-08-15 2017-01-19 Securisea, Inc. High Performance Software Vulnerabilities Detection System and Methods
CN104834858A (zh) * 2015-04-24 2015-08-12 南京邮电大学 一种android应用中恶意代码的静态检测方法
US20170353481A1 (en) * 2016-06-06 2017-12-07 Samsung Electronics Co., Ltd. Malware detection by exploiting malware re-composition variations using feature evolutions and confusions
CN107301347A (zh) * 2017-07-26 2017-10-27 南京邮电大学 一种基于静态分析获取Hbuilder App调用图的方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113918951A (zh) * 2021-12-16 2022-01-11 北京微步在线科技有限公司 基于抽象语法树的恶意代码检测方法、装置及电子设备

Also Published As

Publication number Publication date
US20190294790A1 (en) 2019-09-26
WO2019182663A1 (en) 2019-09-26
US10678916B2 (en) 2020-06-09

Similar Documents

Publication Publication Date Title
Wei et al. Deep ground truth analysis of current android malware
JP2023506168A (ja) システム・イベントの自動意味論的モデリング
US11888870B2 (en) Multitenant sharing anomaly cyberattack campaign detection
Surendran et al. On existence of common malicious system call codes in android malware families
KR102362516B1 (ko) 사이버 위협 정보 처리 장치, 사이버 위협 정보 처리 방법 및 사이버 위협 정보 처리하는 프로그램을 저장하는 저장매체
US11973796B2 (en) Dangling domain detection and access mitigation
Fleck et al. Pytrigger: A system to trigger & extract user-activated malware behavior
US20220300615A1 (en) Method and system for identifying security vulnerabilities
KR102396237B1 (ko) 사이버 위협 정보 처리 장치, 사이버 위협 정보 처리 방법 및 사이버 위협 정보 처리하는 프로그램을 저장하는 저장매체
Alshamrani Design and analysis of machine learning based technique for malware identification and classification of portable document format files
US20240054210A1 (en) Cyber threat information processing apparatus, cyber threat information processing method, and storage medium storing cyber threat information processing program
Shahriar et al. Mobile application security using static and dynamic analysis
CN111902816A (zh) 恶意程序检测
KR102447279B1 (ko) 사이버 위협 정보 처리 장치, 사이버 위협 정보 처리 방법 및 사이버 위협 정보 처리하는 프로그램을 저장하는 저장매체
KR102411383B1 (ko) 사이버 위협 정보 처리 장치, 사이버 위협 정보 처리 방법 및 사이버 위협 정보 처리하는 프로그램을 저장하는 저장매체
KR102432649B1 (ko) 사이버 위협 정보 처리 프로세서, 사이버 위협 정보 처리 방법 및 사이버 위협 정보 처리하는 프로그램을 저장하는 저장매체
Shahriar et al. A model-based detection of vulnerable and malicious browser extensions
US11550925B2 (en) Information security system for identifying potential security threats in software package deployment
Lemmou et al. Inside gandcrab ransomware
US11526617B2 (en) Information security system for identifying security threats in deployed software package
Gupta et al. Developing a blockchain-based and distributed database-oriented multi-malware detection engine
KR102447280B1 (ko) 사이버 위협 정보 처리 장치, 사이버 위협 정보 처리 방법 및 사이버 위협 정보 처리하는 프로그램을 저장하는 저장매체
KR102396236B1 (ko) 사이버 위협 정보 처리 장치, 사이버 위협 정보 처리 방법 및 사이버 위협 정보 처리하는 프로그램을 저장하는 저장매체
US20240054215A1 (en) Cyber threat information processing apparatus, cyber threat information processing method, and storage medium storing cyber threat information processing program
KR102437376B1 (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