CN105793864A - 检测恶意多媒体文件的系统和方法 - Google Patents

检测恶意多媒体文件的系统和方法 Download PDF

Info

Publication number
CN105793864A
CN105793864A CN201380081284.5A CN201380081284A CN105793864A CN 105793864 A CN105793864 A CN 105793864A CN 201380081284 A CN201380081284 A CN 201380081284A CN 105793864 A CN105793864 A CN 105793864A
Authority
CN
China
Prior art keywords
instruction
multimedia file
malice
identification
file
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
CN201380081284.5A
Other languages
English (en)
Inventor
H·李
B·孙
C·徐
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.)
McAfee LLC
Original Assignee
McAfee LLC
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 McAfee LLC filed Critical McAfee LLC
Publication of CN105793864A publication Critical patent/CN105793864A/zh
Pending legal-status Critical Current

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/1416Event detection, e.g. attack signature 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • G06F16/152File search processing using file content signatures, e.g. hash values
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/43Querying
    • G06F16/435Filtering based on additional data, e.g. user or group profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Landscapes

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

Abstract

公开了用于检测多媒体文件中的恶意利用的系统和方法。在一实施例中,这一方法包括解析多媒体文件的已编译字节码以检测所标识的关键指令并且确定这种关键指令是否以特定模式被重复,该特定模式表明恶意利用的存在。该方法还可以包括检查已编译多媒体文件中常数池表的内容以检测代表恶意利用的存在的特定shellcode字符串。当字节码或常数池表指示恶意利用存在时,可以利用一种方法来减少恶意利用的假肯定标识的情况。

Description

检测恶意多媒体文件的系统和方法
技术领域
该公开一般涉及网络安全管理,尤其涉及用于检测多媒体文件的恶意利用的系统和方法。
背景
Adobe(Flash)(AdobeFlash是AdobeSystems公司的注册商标)是一种多媒体和软件平台,该平台向开发者提供高级的视频播放和动画能力并且可用于创作向量图形、动画、游戏以及丰富的互联网应用(RIA)。Flash也频繁用于向网页添加流化的视频或音频播放器、广告和交互式多媒体内容。例如,具有ShockwaveFlash或小web格式(SWF)的Flash文件通常被嵌入到要由浏览器插件播放的网页中,或者被嵌入到将被Adobe的AcrobatReader软件中所包括的Flash播放器的副本所播放的Adobe(Adobe是AdobeSystems(Adobe系统)公司的注册商标)便携式文档格式(PDF)文件中。
随着近年来Flash在各种应用中的使用日渐增加,恶意软件攻击Flash文件的出现率也增加。Flash文件的恶意利用会是非常有害的,因为即使SWF有时被认为是图片,但它们会携带可能被恶意操纵的整个应用。尽管Flash利用的出现率日益增加以及对于这些攻击的成功解决方案的重要性,但是检测和移除这些安全风险的有效方法仍十分有限。
检验Flash文件是否包含恶意软件的一种方法是仅仅运行代码来观察后续情况。该方法被称为是运行时代码分析或动态代码分析。动态代码分析在安全测试环境中操作时可能是有用的,其中调试器可以跟踪变量值并且追踪函数调用以得到应用的内部结构的准确概览,但是动态代码分析在代码实际上在设备上被执行时对于在测试环境外部使用很难是实用的、并且若其包括恶意软件则会引起损害。此外,恶意的利用也许能识别出它在运行时或动态代码分析中被运行,并且为防止被识别而不会表现出恶意。
另一种用于确定Flash文件是否包含恶意软件的过程是通过静态代码分析,该分析期间文件在被执行之前被分解和分析。当前用于检测Flash文件中恶意软件的静态代码分析的方法一般是基于签名的,并且依赖于逐案例的分析。这些方法一般不是高效或有效的,并且会导致识别出显著数量的假肯定(falsepositive)。以下公开内容解决了这些及其他问题。
附图简述
图1是图示根据一个或多个公开的实施例的网络体系结构的框图。
图2是图示根据一个实施例、使用此处所述技术的可编程设备的框图。
图3是图示根据另一实施例、使用此处所述技术的可编程设备的框图。
图4A是根据一个或多个所公开的实施例、在Flash文件块的字节码中包括的恶意指令的示例。
图4B是根据一个或多个所公开的实施例、在Flash文件的常数池表格中包括的shellcode(壳代码)字符串的示例。
图5是根据一个或多个所公开的实施例的Flash恶意软件检测方法的流程图。
图6A-6B是根据一个或多个所公开的实施例、用于假肯定标识方法的流程图。
所公开实施例的描述
Flash文件日渐成为恶意利用所针对的目标。为了有效地检测和移除这样的利用,可以使用一种检测方法,该检测方法是通用的且非基于签名的,并且可以在不运行代码的情况下标识风险。在一实施例中,这一方法包括解析Flash文件的已编译字节码以检测所标识的关键指令并且确定这种关键指令是否以特定模式重复,该特定模式表明恶意利用的存在。该方法还可以包括检查已编译Flash文件中常数池表的内容以检测代表恶意利用的存在的特定shellcode字符串。当字节码或常数池表指示恶意利用存在时,可以利用一种方法来减少对恶意利用的假肯定标识的情况。
在以下描述中,出于说明目的,提出了许多具体细节以便提供对本发明的透彻理解。然而,对于本领域技术人员将显而易见的是,没有这些具体细节也可实践本发明。在其他实例中,结构和设备以框图形式示出以避免混淆本发明。对无下标或后缀的数字的引用被理解为引用与所引用的数字相对应的下标或后缀的所有实例。此外,本公开中使用的语言已经出于可读性和指令性目的而选择,并且可能未被选择以划定或限制本发明的主题,有必要参照权利要求书以确定这种发明的主题。说明书中引用“一个实施例”或“一实施例”意指结合实施例描述的特定特征、结构或特性被包括在本发明的至少一个实施例中,对“一个实施例”或“一实施例”的多次引用不应被理解为必须全部指同一个实施例。
如此处使用的,术语“可编程设备”可以指单个可编程设备或者一起工作的多个可编程设备,用于执行此处描述的在可编程设备上执行的或由可编程设备执行的功能。
现在参照图1,示意性地示出示例体系结构100。体系结构100包含计算机网络102,计算机网络102可以包括当前可用的许多不同类型的计算机网络,诸如互联网、公司网络或局域网(LAN)。这些网络的每一个可以包含有线或无线设备,并且使用任何数量的网络协议(例如,TCP/IP)来操作。网络102连至网关和路由器(由108表示)、终端用户计算机106和计算机服务器104。体系结构100中还示出用于移动通信设备的蜂窝网络103。如本领域已知,移动蜂窝网络支持移动电话以及许多其他类型的设备(例如,平板电脑未示出)。体系结构100中的移动设备被图示为移动电话110。
在诸如图1所显示的网络中,根据此处公开的一个或多个实施例,可以监控和分析Flash文件以检测恶意软件。一个或多个软件程序或装置可用于监控和分析网络中的Flash文件,并且对文件实施静态分析以检测文件内的恶意内容。
现在参照图2,框图图示了按照实施例的可编程设备200,该可编程设备200可以采用恶意内容检测方法。图2图示的可编程设备是包括第一处理元件270和第二处理元件280的多处理器可编程设备200。尽管示出两个处理元件270和280,但是可编程设备200的实施例还可以包括仅仅一个这样的处理元件。
可编程设备200被图示为点对点互连系统,其中第一处理元件270和第二处理元件280经由点对点互连250而耦合。图2图示的任一或全部互连可以被实现为多点总线而不是点对点互连。
如图2所图示,处理元件270和280中的每一者都可以是包括第一和第二处理器核(即,处理器核274a和b以及处理器核284a和284b)的多核处理器。这种核274a、274b、284a、284b可以被配置为以此处结合图5和图6A-6B公开的方式执行指令代码。然而,其他实施例可以根据需要使用单核处理器作为处理元件。在具有多个处理元件270、280的实施例中,每个处理元件可以根据需要用不同数量的核来实现。
每个处理元件270、280可以包括至少一个共享高速缓存246。共享高速缓存246a、246b可以存储由处理元件的一个或多个组件(诸如核274a、274b以及284a、284b)分别使用的数据(例如,指令)。例如,共享的高速缓存可以对存储器232、234中存储的数据进行本地高速缓存,用于由处理元件270、280的组件更快地访问。在一个或多个实施例中,共享高速缓存246a、246b可以包括一个或多个中间级高速缓存、终极高速缓存(LLC)或者它们的组合,其中,中间级高速缓存诸如高速缓存的2级(L2)、3级(L3)、4级(L4)或其他等级。
尽管为附图清楚起见、图2图示了具有两个处理元件270、280的可编程设备,但是本发明的范围不限于此,可以存在任何数量的处理元件。替代地,处理元件270、280中的一者或多者可以是处理器以外的元件,诸如图形处理单元(GPU)、数字信号处理(DSP)单元、场可编程门阵列或者任何其他可编程处理元件。处理元件280可以是与处理元件270同质的或不对称的。就包括结构特性、微结构特性、热特性、功耗特性等的一系列优质度量而言,处理元件270、280之间可能有各种差别。这些差别可以将它们有效地表明为在各处理元件270、280之间的非对称性和同质性。在一些实施例中,各种处理元件270、280可以驻留在同一个芯片封装中。
第一处理元件270还可以包括存储器控制器逻辑(MC)272以及点对点(P-P)互连276和278。类似地,第二处理元件280可以包括MC282以及P-P互连286和288。如图2所示,MC272和282将处理元件270、280耦合至相应的存储器,即存储器232和存储器234,所述存储器232和存储器234可以是本地附连于相应处理器的主存储器的部分。尽管MC逻辑272和282被图示为被集成到处理元件270、280中,但在一些实施例中,MC逻辑可以是处理元件270、280外的离散逻辑,而非集成于其中。
处理元件270和处理元件280可以分别经由P-P互连276、286和284耦合至I/O子系统290。如图2所示,I/O子系统290包括P-P互连294和298。而且,I/O子系统290包括接口292,所述接口292用于将I/O子系统290与高性能图形引擎238耦合。在一实施例中,总线249可用于将图形引擎238耦合至I/O子系统290。或者,点对点互连239可以耦合这些组件。
I/O子系统290进而可以经由接口296耦合至第一链路216。在实施例中,第一链路216可以是外围组件互连(PCI)总线,或者是诸如PCI快速总线或另一I/O互连总线这样的总线,然而本发明的范围不限于此。
如图2所示,各种I/O设备214可以耦合至第一链路216以及桥218,桥218可以将第一链路216耦合至第二链路210。在一实施例中,第二链路220可以是低引脚数(LPC)总线。在实施例中,各种设备可以耦合至第二链路220,包括例如键盘/鼠标212、(诸)通信设备226(该通信设备继而可以与计算机网络203通信)、以及诸如磁盘驱动器这样的数据存储单元228或者可包括代码230的其他大型存储设备。代码230可以包括用于执行上述技术中的一者或多者的实施例的指令。而且,音频I/O224可以耦合至第二总线220。
注意到构想了其他实施例。例如,取代图2的点对点体系结构,系统可以实现多点总线或另一种这样的通信拓扑结构。尽管链路216和220在图2中被图示为总线,然而可以使用任何理想类型的链路。同样,图2的元件可以使用比图2所示更多或更少的集成芯片来分区。
现在参照图3,框图图示了根据另一实施例的可编程设备300。已从图3省略了图2A的特定方面,以避免混淆图3的其他方面。
图3图示了处理元件370、380可以分别包括集成的存储器和I/O控制逻辑(“CL”)372和382。在一些实施例中,CL372、382可以包括诸如以上结合图2所述的存储器控制逻辑(MC)。此外,CL372、382也可以包括I/O控制逻辑。图3图示了不仅存储器332、334可以耦合至CL372、382,而且I/O设备314也可以耦合至控制逻辑372、382。传统的I/O设备314可以耦合至I/O子系统390。
图2和3所示的可编程设备是可用于实现此处讨论的各种实施例的可编程设备的各实施例的示意性图示。将会理解,图2和3所示的可编程设备的各种组件可以被组合在片上系统(SoC)体系结构中。
此处公开的本发明的各实施例可以包括软件。如此,应当提供常用计算软件体系结构的描述。如同硬件示例,此处讨论的软件体系结构不意图以任何方式是排外的,而是说明性的。
现在讨论用于检测文件中的恶意内容的各种实施例。此处描述的实施例可应用于由中间语言的字节码创建或者包含中间语言的字节码的任何文件。具体地,各实施例应用于具有源代码的文件,所述源代码可以通过编译器或解译器转换为代码的字节码类型。Flash文件是这种文件的一个示例。Flash文件可以用称为ActionScript的面向对象的语言来编程。Flash文件中使用的ActionScript是中间语言的示例。在本公开案之时,存在ActionScript的三个版本。包括ActionScript、ActionScript2和ActionScript3。ActionScript代码一般由编译器转换成字节码格式。
Flash文件一般以字符串“FWS”或“CWS”开始,然后是8位版本号,32位文件长度字段、以及压缩或未压缩的数据。未压缩的数据部分包括标题以及其后的标签列表。每个标签用作一种数据类型的容器,例如ActionScript字节码。标签以标签类型标识符以及标签长度开始,然后是数据。因此,Flash文件的完整结构一般如下示出:
[FWS/CWS][版本][长度][[标题][[标签标题][标签内容]]…[0]]
文件结构中的一些标签包含程序逻辑,那些标签在本公开案中特别关注,因为它们一般是大多数恶意内容所处之处。特别关注的是ActionScript字节码。这是因为Flash文件的大多数恶意利用是使用ActionScript代码开发的,ActionScript代码然后被转换为字节码。通过检查字节码,可以检测到许多这些Flash利用。
取决于所使用的ActionScript的版本,字节码可以被包含于不同类型的标签中。例如,ActionScript2字节码可以驻留于以下标签之一中:DoInitAction、DoAetion、PlaceObject2、PlaceObject3、DefineButton或DefineButton2。另一方面,ActionScript3字节码一般包含于DoABCDefine或DoABC标签中。已知这些位置,字节码级别的解析器可以快速定位Flash文件中的字节码并且检查其内容。
有针对Flash文件的各种利用方法。这些方法的最常见类型包括堆喷射(spraying)、准时(JIT)喷射、以及高级Flash堆制作。Flash中的堆喷射一般使用称为ByteArray的Flash公有类来执行。ByteArray类允许任意字节的读和写、整数的二进制表示、浮点以及字符串。Flash中ByteArray类的实现使用了存储器的连续部分,该连续部分在必要时可扩展以存储阵列的内容。由于它提供了对可扩展存储器的存取,ByteArray是用于恶意利用的首要候选。在该过程中通常使用包含写指令的ByteArray,ByteArray被重复地复制以便将显著数量的数据写至ByteArray,直到它覆盖了存储器空间的大部分。
该过程中使用的写指令通常是涉及写的特定Flash公有应用编程接口(API)调用。这些包括API调用,诸如“writeUnsignedlnt”、“writelnt”以及“writeByte”。当利用使用ActionScript开发时,这些API调用可以在字节码中找到。通过检查当前的和过去的基于Flash的利用方法,发明人发现关键指令的特定列表通常存在于包含恶意利用的Flash文件的字节码中。这些指令中的一些包含以上讨论的API调用,而一些则不包括。以下是最常用于针对Flash文件的一些关键指令的示例。
bitxor
bitor
in
callpropvoid<q>[public]::writeByte
callproperty<q>[public]::writeByte
callpropvoid<q>[public]::writeDouble
callproperty<q>[public]::writeDouble
callpropvoid<q>[public]::writeFloat
callproperty<q>[public]::writeFloat
callpropvoid<q>[public]::writelnt
callproperty<q>[public]::writelnt
callpropvoid<q>[public]::writeShort
callproperty<q>[public]::writeShort
callpropvoid<q>[public]::writeUnsignedInt
callproperty<q>[public]::writeUnsignedInt
尽管所标识的指令已被认为表示Flash文件中的恶意内容,但是这些指令的单次出现一般不是利用的标志。通常,在恶意Flash文件中,关键指令被重复多次。图4A图示了这一指令的示例以及它可以被重复的方式。如图所示,指令“callpropvoid<q>[public]::writelnt”在ins[a]、ins[b]、ins[c]和ins[d]处被重复多次。各点图示了在所示关键指令的每次出现之间可能有附加的指令行。发明人已发现恶意的Flash文件一般包含关键指令在彼此间隔固定距离处的多次出现。例如,关键指令可以在已编译的字节码中每100个代码行被重复(每第100个指令)。在图4A中图示的示例中,这意味着ins[a]和ins[b]之间的距离与ins[b]和ins[c]之间的距离相同,也与ins[c]和ins[d]之间的距离相同。因此,当关键指令在字节码中被重复多次时,如果全部连续重复之间的距离都相同,则文件可能是恶意的。通常,除了关键指令的等距重复以外,恶意文件也包括最小数量的这些等距重复。该最小数量可能对于每个不同的关键指令是不同的。例如,以下标识的关键指令一般被重复与其相邻指示的最小数量的次数:
Bitxor-50次或更多
bitor-50次或更多
in-50次或更多
callpropvoid<q>[public]::writeByte-40次或更多
callproperty<q>[public]::writeByte-40次或更多
callpropvoid<q>[public]::writeInt-10次或更多
callproperty<q>[public]::writelnt-10次或更多
callpropvoid<q>[public]::writeShort-20次或更多
callproperty<q>[public]::writeShort-20次或更多
callpropvoid<q>[public]::writeUnsignedInt-10次或更多
callproperty<q>[public]::writeUnsignedInt-10次或更多
对于每个关键指令的最小重复次数可能在不同实施例中是不同的。在一实施例中,最小重复次数对于所有关键指令是相同的。在替代的实施例中,没有最小重复次数。
针对用于利用的Flash文件的另一种常见方法是将shellcode存储于一个或多个ActionScript字符串中。这一般在利用开发者将shellcode字符串包括于Flash文件的ActionScript源代码中时发生。当Flash文件被编译时,这些shellcode字符串一般存储于保存常数的一个或多个数据结构中。对于大多数Flash文件,该数据结构被称为已编译代码的常数池表格。Flash文件的常数池表格一般是大多数常数值被存储之处。这包括各个值,诸如数字、字符串、标识符名称、对类和方法的引用、以及类型描述符。由于常数池表格一般是字符串被存储于已编译的Flash文件中的位置,因此ActionScript源代码中包括的shellcode字符串在文件被编译时通常被存储于常数池中。这一字符串的一个示例在图4B中被图示,其中常数池400包括一组字符串402。字符串402可以包含多个字符串,包括字符串[0]402A、字符串[1]402B以及字符串[n]402N。如图所示,该示例中的字符串[n]402N存储了shellcode类的字符串。通过浏览全部已知的Flash利用,发明人已发现用于恶意利用的shellcode字符串具有一些常见特性。本公开中讨论的各实施例中使用了这一发现以及字节码中使用的关键指令列表,以便快速、有效并且静态地检测Flash文件中的恶意内容。
参照图5,用于检测Flash文件中的恶意软件的操作500可以通过解析代码以检查文件的内容而开始(框505)。为此可以使用可与Flash文件兼容的任何解析器。在一实施例中,ABC字节码解析器用于ActionScript3字节码。该解析器检查常数池表格的内容以确定它是否包含恶意软件(框510)。这可以通过用shellcode逻辑分析常数池表格中的全部字符串来完成。shellcode逻辑可以包括数据库,该数据库包含Flash文件中使用的已知shellcode列表。此外,shellcode逻辑也可以包含帮助标识shellcode类的字符串的逻辑。在一实施例中,shellcode逻辑标识具有表示shellcode的特性的十六进制字符串。在一配置中,这些特性包括字符串长度,该字符串长度比特定阈值(例如,1000)大,并且是偶数。在另一实施例中,所述特性包括具有这样一个字符串,该字符串中的每一个字节都在特定范围内(例如,[′A′-′F′]、[′a′-′f′]或者[′0′-′9′J])。
如果常数池表格中的任一字符串与数据库中的字符串之一匹配或者被shellcode逻辑标识为shellcode类(框515的“是”分支),则所标识的shellcode被存储于存储器中(框520)且文件被标识为包含恶意字符串(框525)。此时,操作500返回至框515以确定常数池表格是否包含任何其他shellcode类字符串。如果没有标识其他shellcode类字符串(框515的“否”分支),则操作移至框530以便解析字节码并且将字节码中存在的指令与已被标识为表示恶意内容的关键指令列表相比较(框530)。该关键指令列表一般是预先确定的,但可以在一实施例中动态改变。例如,随着新关键指令被标识,该列表可以被更新以包括新指令。
如果字节码中没有任何指令与该列表中的任一关键指令匹配(框535的“否”分支),则该字节码可以被标识为不具有任何恶意字节码内容(框540)。然而,如果字节码包括与该列表中的关键指令之一匹配的指令(框535的“是”分支),操作确定所匹配的指令是否在字节码中被重复多于一次(框545)。在一实施例中,在此阶段,操作不仅确定所匹配的指令是否被重复,它也看看该指令是否被重复所要求的最小次数。如以上讨论的,特定指令可能需要被重复特定的最小次数以表示恶意利用。因此,该操作可以确定该指令是否被重复至少该最小次数。当所匹配的指令不被重复(或者不被重复最小次数)时(框545的“否”分支),则出现很可能不表示恶意指令,且操作移至框550以确定在字节码中是否没有与任一关键指令匹配的其他指令。如果字节码包含更多的匹配指令(框550的“是”分支),则操作移回框545。然而,如果字节码不包含任何更多的匹配指令,则操作移至框540以将该文件标识为不包含恶意字节码。因此,当字节码中的指令与该列表中的任一关键指令不匹配时,所匹配的(诸)指令不被重复,或者预定数量的所匹配指令不按相同距离被重复,则可以将字节码确定为没有恶意内容。
当一个所匹配的指令被确定为在字节码中被重复多于一次(或者被重复至少最小次数)时(框545的“是”分支),操作然后计算该指令的第一次出现和第二次出现之间、以及该指令的第二次出现和第三次出现之间的距离、以此类推,以便确定那些连续出现中的每一次出现之间的距离是否与其他相同。在一实施例中,关键指令的每次重复出现之间的距离是指每次出现之间的代码行。如果所匹配的指令的每两个连续出现之间的距离相同(框560的“是”分支),则该指令被存储为恶意指令(框565),Flash文件被标识为包含恶意的字节码内容。即使一个指令可能已被标识为恶意的,操作仍继续检查其余指令以确定是否有与该关键指令列表的更多匹配(框575)。如果找到更多匹配的指令(框575的“是”分支),则操作500移至框454以确定新找到的指令是否被重复。如果没有找到其他匹配的指令,则操作可以结束(框580)。
尽管检查常数池表格以及分析字节码的过程在该实施例中连续发生,然而这两个操作也可以分开发生。替代方法可以仅包括这两个过程之一。在其他实施例中,检查字节码的过程可以发生于检查常数池表格之前。在这一情况下,如果在字节码中找到一个或多个恶意指令,则操作可以停止。或者,即使字节码已被标识为包含恶意内容,操作也可以继续检查常数池表格。
由于此处讨论的检测技术仅包括静态地解析字节码并且相对于shellcode逻辑分析常数池表格,因此该方法容易实现,并且会对其余操作的性能有最小的影响。因此,这些方法可以快速并高效地标识Flash文件中的恶意内容。此外,由于方法是通用的并且是非基于签名的,因此它们可用于任何类型的Flash文件。此外,这些方法可以检测已知和未知的恶意内容。这是因为这些方法仅包括标识表示恶意软件的指令和恶意代码字符串。这些预先标识的指令或恶意代码可以指示利用,但它们不必要指示已知的漏洞。通过使用这些预先标识的指令和恶意代码字符串,操作可以检测已知和未知的利用。
此处讨论的检测方法也已被发现是高度准确的,导致恶意软件的最小数量的假肯定标识。此外,可以使用假肯定移除操作来减少甚至最小数量的假肯定。参照图6A,假肯定移除操作600可以通过确定文件是否因为具有shellcode字符串被确定为是恶意的而开始(框605)。如果文件被检测为具有恶意的shellcode字符串(框605的“是”分支),则操作确定Flash文件的ABC标签的长度是否等于或大于第一特定阈值(框610)。第一特定阈值可以是预定的或动态选择的。在一实施例中,阈值是512KB。当ABC标签长度等于或大于指定的阈值时(框610的“是”分支),则文件作为恶意的标识是假肯定的(框620)并且可以被过度忽视。这是因为包含恶意利用的文件尺寸一般是小的。
如果ABC标签长度小于指定阈值(框610的“否”分支),则操作确定ActionScriptABC代码中的方法主体数量等于或大于第二指定阈值(框615)。方法主体(body)意味着代码中包括的方法的主体。代码中方法主体的数量一般被称为方法主体计数(method_body_count)。当方法主体计数等于或大于第二指定阈值时(框615的“是”分支),则文件作为恶意的标识是假肯定的并且可以被忽略。在一实施例中,第二指定阈值是200。如果方法主体计数不大于第二指定阈值,则标识是真正肯定,文件应当保持被标识为恶意(框625)。在一实施例中,第一和第二指定阈值通过检查显著数量的Flash文件并且标识被错误检测为恶意的文件的特性来确定。
当文件作为恶意的标识并非通过检测shellcode字符串时(框605的“否”分支),标识应当是由于检测到字节代码中重复的关键指令。在该情况下,操作移至确定所包括的利用方法是否是JIT喷射(框630)。这可以通过检查重复的关键指令来完成。如果重复的关键指令是bitxor、bitor或in,则恶意方法可以被标识为JIT喷射。其他特定的关键指令也可以指示JIT喷射。当利用方法未被标识为JIT喷射时(框630的“否”分支),操作确定Flash文件的尺寸是否等于或大于指定数量N1(框640)。当Flash文件的尺寸小于N1时(框640的“否”分支),则操作确定文件的尺寸是否等于或大于第二指定数量N2(框645)。在一实施例中,N1为1MB,N2为512KB。也可以使用其他数量。类似于第一和第二指定阈值,N1、N2可以通过检查显著数量的Flash文件并且标识被错误检测为恶意的文件的特性来确定。如果Flash文件的尺寸大于或等于N2(框645的“是”分支),操作确定在代码中是否有连续的大尺寸方法主体(框650)。连续的大尺寸方法主体是指具有相等尺寸的多个连续方法主体,其尺寸超出预定数。例如,当m_body[100]、m_body[101]和m_body[150]的尺寸全都是1000个字节时,这些方法主体被标识为连续的大尺寸方法主体。尺寸相等且大于预定数的连续方法主体的数量可以在不同的实施例中而变化。当代码不包含连续的大尺寸方法主体时(框650的“是”分支),文件被错误地标识为恶意(框620),标识可以被忽视。如果代码中没有连续的大尺寸方法主体(框650的“否”分支),则恶意检测是正确的并且应当被维持(框625)。
在Flash文件的尺寸被确定为大于或等于N1的情况下(框640的“是”分支),操作确定文件是否包含连续的大尺寸方法主体,如果是(框660的“是”分支),它移至框645并且遵循以上讨论的步骤。如果在该阶段未检测到连续的大尺寸方法主体(框660的“否”分支),则操作确定方法主体计数是否大于数量M(框665)。在一实施例中,数量M等于8000。数量M可以变化,它可以通过检查显著数量的Flash文件并且标识被错误检测为恶意的文件的特性来确定。当方法主体计数大于M时(框665的“是”分支),文件被错误地标识为恶意(框620)。如果方法主体计数小于M,则操作再次移至框645。
在操作600期间,如果确定所检测的恶意利用是JIT喷射(框630的“是”分支),则操作移至图6B的框675(框670)以确定是否检测到假肯定。对于JIT喷射利用,操作确定代码是否包含连续的大尺寸方法主体(框675)。当包含JIT喷射利用的Flash文件包括连续的大尺寸方法主体时(框675的“是”分支),检测是真正肯定的并且应当被维持(框680)。如果代码不包含连续的大尺寸方法主体(框675的“否”分支),则确定方法主体计数是否大于指定数量S(框685)。在一实施例中,数量S等于10000。类似于数量M,S可以通过检查显著数量的Flash文件并且标识被错误检测为恶意的文件的特性来确定。当方法主体计数大于S时(框685的“是”分支),文件被错误地标识为恶意且标识应当被忽视(框690)。当方法主体计数小于S时(框685的“否”分支),操作确定一个或多个特定特殊标签存在于文件中,如果是(框695的“是”分支)指示恶意检测是假肯定(框690)。在一实施例中,特殊标签是DefineSound和DefineShape3。这是因为通常恶意的Flash文件不包含声音数据。如果不存在特殊标签,则文件是真正肯定(框680)。
尽管此处公开的实施例关于Flash文件而描述,但是这些实施例或者其变体也可以用于其他类型的多媒体文件中。特别是,各实施例可用于基于字节码以及/或者包括与Flash文件的常数池表格类似的阵列或表格的多媒体文件中。例如,各实施例可用于一些类文件中(“JAVA”是美国Oracle公司的注册商标)。
示例
以下示例关于进一步的实施例。示例1是其上存储有指令的至少一个计算机可读介质,所述指令包括在执行时使可编程设备用于以下操作的指令:将多媒体文件中的指令与预定指令列表相匹配;标识所匹配的指令在多媒体文件中的重复;计算指令的重复之间的距离;以及响应于指令的等距重复将多媒体文件标识为恶意。
示例2包括示例1的主题,还包括用于消除将多媒体文件作为恶意的假肯定标识的指令。
示例3包括示例1的主题,还包括用于若多媒体文件中标签的长度大于或等于第一预定阈值则将文件识别为被错误标识为恶意的指令。
示例4包括示例1的主题,还包括用于若多媒体文件的方法主体计数大于或等于第二预定阈值则将文件识别为被错误标识为恶意的指令。
示例5包括示例1的主题,进一步包括用于使一个或多个处理器执行以下操作的指令:检查多媒体文件的存储常数的一个或多个数据结构中的一个或多个字符串;以及若一个或多个字符串中的任一个被shellcode逻辑标识为表示shellcode,则将所述多媒体文件标识为恶意。
示例6包括示例5的主题,其中shellcode逻辑包括shellcode数据库。
示例7包括示例6的主题,还包括当一个或多个字符串中的至少一者与shellcode数据库中的一个或多个所标识字符串之一匹配时、使一个或多个处理器将所述多媒体文件标识为包含恶意字符串的指令。
示例8包括示例1-7的任一个的主题,其中所述多媒体文件在最小数量的重复为等距时被标识为恶意。
示例9包括示例1-7的任一个的主题,其中所述指令包括字节码指令。
示例10是一种被配置为执行多媒体文件的分析的装置,包括:存储器装置;以及在通信上耦合至所述存储器装置的处理装置,其中所述存储器装置存储用于配置所述处理装置以执行下列操作的指令:接收一个或多个多媒体文件;检查存储每个接收到的多媒体文件的常数的一个或多个数据结构的内容;以及当一个或多个数据结构中的一个或多个字符串被shellcode逻辑标识为表示shellcode时、将所述多媒体文件标识为恶意。
示例11包括示例10的主题,其中所述指令还使所述处理装置用于:将多媒体文件中的指令与预定的指令列表相匹配;标识所匹配的指令在多媒体文件中的重复;计算所匹配的指令的重复之间的距离;以及响应于所匹配的指令的等距重复将多媒体文件标识为恶意。
示例12包括示例11的任一个的主题,其中所述多媒体文件在最小数量的重复为等距时被标识为恶意。
示例13包括示例11的主题,其中所述多媒体文件在重复中的两者或更多者为等距时被标识为恶意。
示例14包括示例11的主题,其中所述指令还使所述处理装置确定文件是否被错误标识为恶意。
示例15包括示例11的主题,其中所匹配的指令包括字节码指令。
示例16包括示例15的主题,还包括使所述处理装置在多媒体文件中标签的长度大于或等于第一预定阈值的情况下将文件识别为被错误标识为恶意的指令。
示例17包括示例15的主题,其中所述指令还使所述处理装置在多媒体文件的方法主体计数大于或等于第二预定阈值的情况下将文件识别为被错误标识为恶意。
示例18包括示例15的主题,进一步包括用于使一个或多个处理装置执行以下操作的指令:如果代码被确定为包含准时喷射利用,确定代码是否包含一个或多个连续的大尺寸方法主体;以及当代码被确定为不包含一个或多个连续大尺寸方法主体且方法主体大于预定阈值时,将所述多媒体文件识别为被错误标识为恶意。
示例19是一种方法,包括以下步骤:将多媒体文件中的指令与预定的指令列表相匹配;标识所匹配的指令在多媒体文件中的重复;计算指令的重复之间的距离;以及响应于指令的等距重复将多媒体文件标识为恶意。
示例20包括示例19的主题,还包括以下步骤:如果存储多媒体文件的常数的一个或多个数据结构中的一个或多个字符串的任一个被shellcode逻辑标识为指示shellcode,则将多媒体文件标识为恶意。
示例21包括示例20的主题,还包括消除将多媒体文件作为恶意的假肯定标识的步骤。
示例22包括示例21的主题,进一步包括以下步骤:如果代码被确定为包含准时喷射利用,确定代码是否包含一个或多个连续的大尺寸方法主体;以及当代码被确定为不包含一个或多个连续大尺寸方法主体且方法主体大于预定阈值时、将所述多媒体文件识别为被错误标识为恶意。
示例23包括示例21的主题,进一步包括以下步骤:如果代码被确定为包含准时喷射利用,确定代码是否包含一个或多个连续的大尺寸方法主体;以及当代码被确定为不包含一个或多个连续大尺寸方法主体且多媒体文件包含一个或多个特殊标签时,将所述多媒体文件识别为被错误标识为恶意。
示例24包括示例19的主题,还包括当最小数量的重复为等距时将多媒体文件标识为恶意的步骤。
示例25包括示例19的主题,其中所述指令包括字节码指令。
示例26包括一种被配置为执行多媒体文件的分析的设备,所述设备包括存储器、以及通信上耦合至所述存储器的一个或多个处理单元,其中所述存储器存储用于配置所述一个或多个处理单元以执行下列操作的指令:接收一个或多个多媒体文件;检查存储每个接收到的多媒体文件的常数的一个或多个数据结构的内容;以及当一个或多个数据结构中的一个或多个字符串被shellcode逻辑标识为表示shellcode时,将所述多媒体文件标识为恶意。
示例27包括示例26的主题,其中所述指令还使一个或多个处理单元执行以下操作:将多媒体文件中的指令与预定指令列表相匹配;标识所匹配的指令在多媒体文件中的重复;计算所匹配的指令的重复之间的距离;以及响应于所匹配的指令的等距重复将多媒体文件标识为恶意。
示例28包括示例27的任一个的主题,其中所述多媒体文件在最小数量的重复为等距时被标识为恶意。
示例29包括示例27的主题,其中所述多媒体文件在重复中的两者或更多者为等距时被标识为恶意。
示例30包括示例27的主题,其中所述指令还使所述一个或多个处理单元确定文件是否被错误标识为恶意。
示例31包括示例30的主题,进一步包括用于使一个或多个处理装置执行以下操作的指令:当字节码被确定为包含准时喷射利用时,确定多媒体文件的字节码是否包含一个或多个连续的大尺寸方法主体;以及当字节码被确定为不包含一个或多个连续大尺寸方法主体且方法主体计数大于预定阈值时,将所述多媒体文件识别为被错误标识为恶意。
示例32包括示例26的主题,其中所述指令还使所述一个或多个处理单元确定文件是否被错误标识为恶意。
示例33包括示例32的主题,还包括使所述一个或多个处理单元在多媒体文件中标签的长度大于或等于第一预定阈值的情况下将文件识别为被错误标识为恶意的指令。
示例34包括示例32的主题,其中所述指令还使所述一个或多个处理单元在多媒体文件的方法主体计数大于或等于第二预定阈值的情况下将文件识别为被错误标识为恶意。
示例35包括示例26的主题,还包括当一个或多个字符串中的至少一者与shellcode逻辑中的一个或多个所标识字符串之一匹配时、使所述一个或多个处理单元将所述多媒体文件标识为包含恶意字符串的指令。
示例36包括示例26的主题,其中shellcode逻辑包括shellcode数据库。
示例37包括一种包括代码的机器可读介质,所述代码在被执行时使机器执行示例19、20、21、22、23、24或25的任一个的方法。
示例38包括一种装置,该装置包括:存储装置;一个或多个处理装置;以及计算机可读介质,包括其上存储的用于使一个或多个处理装置执行下列操作的计算机可执行指令:将多媒体文件中的指令与预定指令列表相匹配;标识所匹配的指令在多媒体文件中的重复;计算所匹配的指令的重复之间的距离;以及响应于所匹配的指令的等距重复将多媒体文件标识为恶意。
示例39包括示例38的主题,其中所述指令还使一个或多个处理装置执行以下操作:检查存储多媒体文件的常数的一个或多个数据结构中的一个或多个字符串;以及若一个或多个字符串中的任一个被shellcode逻辑标识为表示shellcode,则将所述多媒体文件标识为恶意。
示例40包括示例39的主题,其中,所述指令还使所述一个或多个处理装置在一个或多个字符串中的至少一者与shellcode逻辑中的一个或多个所标识字符串之一匹配时、将所述多媒体文件标识为包含恶意字符串。
示例41包括示例40的主题,其中shellcode逻辑包括shellcode数据库。
示例42包括示例38的主题,其中所述多媒体文件在最小数量的重复为等距时被标识为恶意。
示例43包括示例38的主题,还包括用于消除将多媒体文件作为恶意的假肯定标识的指令。
示例44包括一种被配置为执行多媒体文件的分析的网络设备,包括:一个或多个处理器;以及在通信上耦合至所述一个或多个处理器的存储器,其中所述存储器存储用于使所述一个或多个处理器执行以下操作的指令:接收一个或多个多媒体文件;检查存储每个接收到的多媒体文件的常数的一个或多个数据结构的内容;以及当一个或多个数据结构中的一个或多个字符串被shellcode逻辑标识为表示shellcode时,将所述多媒体文件标识为恶意。
示例45包括示例44的主题,其中所述指令还使所述一个或多个处理器执行以下操作:将多媒体文件中的指令与预定的指令列表相匹配;标识所匹配的指令在多媒体文件中的重复;计算所匹配的指令的重复之间的距离;以及响应于所匹配的指令的等距重复将多媒体文件标识为恶意。
示例46包括示例45的主题,其中所述多媒体文件在最小数量的重复为等距时被标识为恶意。
示例47包括示例45的主题,其中所述多媒体文件在重复中的两者或更多者为等距时被标识为恶意。
示例48包括示例45的主题,其中所述指令还使所述一个或多个处理器确定文件是否被错误标识为恶意。
示例49包括示例44的主题,其中所述指令还使所述处理装置确定文件是否被错误标识为恶意。
示例50包括示例49的主题,还包括使所述处理装置在多媒体文件中标签的长度大于或等于第一预定阈值的情况下将文件识别为被错误标识为恶意的指令。
示例51包括示例49的主题,其中所述指令还使所述一个或多个处理器在多媒体文件的方法主体计数大于或等于第二预定阈值的情况下将文件识别为被错误标识为恶意。
示例52包括示例49的主题,进一步包括用于使一个或多个处理器执行以下操作的指令:当字节码被确定为包含准时喷射利用时,确定多媒体文件的字节码是否包含一个或多个连续的大尺寸方法主体;以及当字节码被确定为不包含一个或多个连续大尺寸方法主体且方法主体计数大于预定阈值时,将所述多媒体文件识别为被错误标识为恶意。
在以上描述中,出于说明目的,提出了许多具体细节以便提供对所公开的实施例的透彻理解。然而,对于本领域技术人员将显而易见的是,没有这些具体细节也可实践所公开的实施例。在其他实例中,结构和设备以框图形式示出以避免混淆所公开的实施例。对无下标或后缀的数字的引用被理解为引用与所引用的数字相对应的下标或后缀的所有实例。此外,本公开中使用的语言已经出于可读性和指令性目的而选择,并且可能未被选择以划定或限制本发明的主题,有必要参照权利要求书以确定这种发明的主题。说明书中引用“一个实施例”或“一实施例”意指结合实施例描述的特定特征、结构或特性被包括在至少一个所公开的实施例中,对“一个实施例”或“一实施例”的多次引用不应被理解为必须全部指同一个实施例。
还应当理解,以上描述意图是说明性的,不是限制性的。例如,上述实施例可以彼此组合使用,可以以与所示不同的次序执行说明性的过程步骤。在阅读以上描述后,许多其他实施例将对于本领域技术人员显而易见。因此,本发明的范围应当参照所附权利要求书以及这种权利要求所赋予的等价物的全部范围来确定。在所附权利要求中,术语“包括(including)”和“其中(inwhich)”被用作相应术语“包括(comprising)”和“其中(wherein)”的普通英语等价物。

Claims (25)

1.其上存储有指令的至少一个计算机可读介质,所述指令包括在执行时使可编程设备用于以下操作的指令:
将多媒体文件中的指令与预定指令列表匹配;
标识所匹配的指令在所述多媒体文件中的重复;
计算所匹配的指令的重复之间的距离;以及
响应于所匹配的指令的等距重复将所述多媒体文件标识为恶意。
2.如权利要求1所述的计算机可读介质,还包括用于消除所述多媒体文件作为恶意的假肯定标识的指令。
3.如权利要求1所述的计算机可读介质,还包括用于若所述多媒体文件中标签的长度大于或等于第一预定阈值则将所述文件识别为被错误标识为恶意的指令。
4.如权利要求1所述的计算机可读介质,还包括用于若所述多媒体文件的方法主体计数大于或等于第二预定阈值则将所述文件识别为被错误标识为恶意的指令。
5.如权利要求1所述的计算机可读介质,还包括用于使所述一个或多个处理器执行以下操作的指令:
检查所述多媒体文件中存储常数的一个或多个数据结构中的一个或多个字符串;以及
如果所述一个或多个字符串中的任一个被shellcode逻辑标识为指示shellcode,则将所述多媒体文件标识为恶意。
6.如权利要求5所述的计算机可读介质,其特征在于,所述shellcode逻辑包括shellcode数据库。
7.如权利要求6所述的计算机可读介质,还包括用于使所述一个或多个处理器在一个或多个字符串中的至少一者与shellcode数据库中的一个或多个所标识字符串之一匹配时,将所述多媒体文件标识为包含恶意字符串的指令。
8.如权利要求1-7的任一项所述的计算机可读介质,其特征在于,所述多媒体文件在最小数量的重复为等距时被标识为恶意。
9.如权利要求1-7的任一项所述的计算机可读介质,其特征在于,所匹配的指令包括字节码指令。
10.一种被配置为执行多媒体文件的分析的设备,包括:
存储器装置;以及
在通信上耦合至所述存储器装置的处理装置,其中所述存储器装置存储用于配置所述处理装置以执行下列操作的指令:
接收一个或多个多媒体文件;
检查存储每个接收到的多媒体文件的常数的一个或多个数据结构的内容;以及
当所述多媒体文件的一个或多个数据结构中的一个或多个字符串被shellcode逻辑标识为指示shellcode时,将每个多媒体文件标识为恶意。
11.如权利要求10所述的设备,其特征在于,所述指令还使所述处理装置用于:
将所述多媒体文件中的指令与预定指令列表匹配;
标识所匹配的指令在所述多媒体文件中的重复;
计算所匹配的指令的重复之间的距离;以及
响应于所匹配的指令的等距重复将所述多媒体文件标识为恶意。
12.如权利要求11所述的设备,其特征在于,所述多媒体文件在最小数量的重复为等距时被标识为恶意。
13.如权利要求11所述的设备,其特征在于,所述多媒体文件在重复中的两者或更多者为等距时被标识为恶意。
14.如权利要求11所述的设备,其特征在于,所述指令还使所述处理装置确定所述文件是否被错误标识为恶意。
15.如权利要求11所述的设备,其特征在于,所匹配的指令包括字节码指令。
16.如权利要求15所述的设备,还包括使所述处理装置在所述多媒体文件中标签的长度大于或等于第一预定阈值的情况下将所述文件识别为被错误标识为恶意的指令。
17.如权利要求15所述的设备,其特征在于,所述指令还使所述处理装置在所述多媒体文件的方法主体计数大于或等于第二预定阈值的情况下将所述文件识别为被错误标识为恶意。
18.如权利要求15所述的设备,还包括还使所述一个或多个处理装置用于以下操作的指令:
当所述多媒体文件的字节码被确定为包含准时喷射利用时,确定所述字节码是否包含一个或多个连续的大尺寸方法主体;以及
当所述代码被确定为不包含一个或多个连续大尺寸方法主体且方法主体计数大于预定阈值时,将所述多媒体文件识别为被错误标识为恶意。
19.一种方法,包括以下步骤:
将多媒体文件中的指令与预定指令列表匹配;
标识所匹配的指令在所述多媒体文件中的重复;
计算所述指令的重复之间的距离;以及
响应于所述指令的等距重复将所述多媒体文件标识为恶意。
20.如权利要求19所述的方法,还包括以下步骤:如果存储所述多媒体文件的常数的一个或多个数据结构中的一个或多个字符串的任一个被shellcode逻辑标识为指示shellcode,则将所述多媒体文件标识为恶意。
21.如权利要求20所述的方法,还包括消除将多媒体文件作为恶意的假肯定标识的步骤。
22.如权利要求21所述的方法,进一步包括以下动作:
当所述多媒体文件的字节码被确定为包含准时喷射利用时,确定所述字节码是否包含一个或多个连续的大尺寸方法主体;以及
当所述代码被确定为不包含一个或多个连续大尺寸方法主体且方法主体计数大于预定阈值时,将所述多媒体文件识别为被错误标识为恶意。
23.如权利要求21所述的方法,进一步包括以下动作:
当所述多媒体文件的字节码被确定为包含准时喷射利用时,确定所述字节码是否包含一个或多个连续的大尺寸方法主体;以及
当所述代码被确定为不包含一个或多个连续大尺寸方法主体且所述多媒体文件包含一个或多个特殊标签时,将所述多媒体文件识别为被错误标识为恶意。
24.如权利要求19所述的方法,还包括当最小数量的重复为等距时将所述多媒体文件标识为恶意的步骤。
25.如权利要求19所述的方法,其特征在于,所述指令包括字节码指令。
CN201380081284.5A 2013-12-27 2013-12-27 检测恶意多媒体文件的系统和方法 Pending CN105793864A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/078087 WO2015099780A1 (en) 2013-12-27 2013-12-27 System and method of detecting malicious multimedia files

Publications (1)

Publication Number Publication Date
CN105793864A true CN105793864A (zh) 2016-07-20

Family

ID=53479439

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380081284.5A Pending CN105793864A (zh) 2013-12-27 2013-12-27 检测恶意多媒体文件的系统和方法

Country Status (5)

Country Link
US (1) US10356108B2 (zh)
EP (1) EP3087527B1 (zh)
JP (1) JP6306191B2 (zh)
CN (1) CN105793864A (zh)
WO (1) WO2015099780A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112131340A (zh) * 2019-06-25 2020-12-25 杭州萤石软件有限公司 字符串检测方法、装置及存储介质

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105793864A (zh) 2013-12-27 2016-07-20 迈克菲股份有限公司 检测恶意多媒体文件的系统和方法
US10289843B2 (en) * 2016-04-06 2019-05-14 Nec Corporation Extraction and comparison of hybrid program binary features
JP6687844B2 (ja) * 2016-04-13 2020-04-28 富士通株式会社 マルウエア解析装置、マルウエア解析方法及びマルウエア解析プログラム
WO2020257973A1 (en) * 2019-06-24 2020-12-30 Citrix Systems, Inc. Detecting hard-coded strings in source code

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6282698B1 (en) * 1998-02-09 2001-08-28 Lucent Technologies Inc. Detecting similarities in Java sources from bytecodes
US7097069B2 (en) * 2002-07-17 2006-08-29 Cavanagh Group International, Inc. Vendable prize delivery mechanism for local dispensing of promotional items
JP4662944B2 (ja) * 2003-11-12 2011-03-30 ザ トラスティーズ オブ コロンビア ユニヴァーシティ イン ザ シティ オブ ニューヨーク 正常データのnグラム分布を用いてペイロード異常を検出するための装置、方法、及び媒体
US7624436B2 (en) * 2005-06-30 2009-11-24 Intel Corporation Multi-pattern packet content inspection mechanisms employing tagged values
WO2007117636A2 (en) * 2006-04-06 2007-10-18 Smobile Systems, Inc. Malware detection system and method for comprssed data on mobile platforms
US8549624B2 (en) * 2008-04-14 2013-10-01 Mcafee, Inc. Probabilistic shellcode detection
JP4995170B2 (ja) * 2008-10-06 2012-08-08 日本電信電話株式会社 不正検知方法、不正検知装置、不正検知プログラムおよび情報処理システム
US8850571B2 (en) * 2008-11-03 2014-09-30 Fireeye, Inc. Systems and methods for detecting malicious network content
US8291497B1 (en) * 2009-03-20 2012-10-16 Symantec Corporation Systems and methods for byte-level context diversity-based automatic malware signature generation
US8516590B1 (en) * 2009-04-25 2013-08-20 Dasient, Inc. Malicious advertisement detection and remediation
JP2010262609A (ja) * 2009-04-28 2010-11-18 Fourteenforty Research Institute Inc 効率的なマルウェアの動的解析手法
GB0912745D0 (en) * 2009-07-22 2009-08-26 Wolfson Microelectronics Plc Improvements relating to DC-DC converters
US8789178B2 (en) 2009-08-03 2014-07-22 Barracuda Networks, Inc. Method for detecting malicious javascript
US8458354B2 (en) * 2010-01-27 2013-06-04 Interdisciplinary Center Herzliya Multi-pattern matching in compressed communication traffic
US9003501B2 (en) * 2010-12-07 2015-04-07 Mcafee, Inc. Method and system for protecting against unknown malicious activities by detecting a heap spray attack on an electronic device
EP2642715A1 (en) * 2012-03-20 2013-09-25 British Telecommunications public limited company Method and system for malicious code detection
KR101212553B1 (ko) * 2012-05-11 2012-12-14 주식회사 안랩 악성 파일 검사 장치 및 방법
CN102789562B (zh) * 2012-07-19 2014-11-12 腾讯科技(深圳)有限公司 确定病毒文件的方法和装置
US20140122052A1 (en) * 2012-11-01 2014-05-01 Fortinet, Inc. Detection of jit spraying by flash with an actionscript emulator
CN105793864A (zh) 2013-12-27 2016-07-20 迈克菲股份有限公司 检测恶意多媒体文件的系统和方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SEAN FORD ETL: "Analyzing and Detecting Malicious Flash Advertisements", 《2009 ANNUAL COMPUTER SECURITY APPLICATIONS CONFERENCE》 *
TIMON VAN ETL: "FlashDetect:ActionScript 3 Malware Detection", 《SPRINGER 》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112131340A (zh) * 2019-06-25 2020-12-25 杭州萤石软件有限公司 字符串检测方法、装置及存储介质
CN112131340B (zh) * 2019-06-25 2024-02-20 杭州萤石软件有限公司 字符串检测方法、装置及存储介质

Also Published As

Publication number Publication date
US20170026392A1 (en) 2017-01-26
EP3087527A4 (en) 2017-07-19
WO2015099780A1 (en) 2015-07-02
EP3087527B1 (en) 2019-08-07
JP2017500668A (ja) 2017-01-05
EP3087527A1 (en) 2016-11-02
US10356108B2 (en) 2019-07-16
JP6306191B2 (ja) 2018-04-04

Similar Documents

Publication Publication Date Title
US8117660B2 (en) Secure control flows by monitoring control transfers
CN102592082B (zh) 通过操作码随机化的安全
CN106716361B (zh) 用于运行时例程冗余跟踪的编译器高速缓存
Kim et al. RevARM: A platform-agnostic ARM binary rewriter for security applications
US20060005166A1 (en) Method, system and program product for determining java software code plagiarism and infringement
US8589888B2 (en) Demand-driven analysis of pointers for software program analysis and debugging
CN104137076A (zh) 用于图形处理单元的应用的验证
US20110277033A1 (en) Identifying Malicious Threads
CN102043915B (zh) 一种非可执行文件中包含恶意代码的检测方法及其装置
EP3084597A1 (en) Property accesses in dynamically typed programming languages
Kalysch et al. VMAttack: Deobfuscating virtualization-based packed binaries
CN105793864A (zh) 检测恶意多媒体文件的系统和方法
Zhang et al. BDA: practical dependence analysis for binary executables by unbiased whole-program path sampling and per-path abstract interpretation
CN109271789B (zh) 恶意进程检测方法、装置、电子设备及存储介质
CN103310151A (zh) 用于在执行程序模块时检测恶意计算机代码的方法和系统
JP2016525760A (ja) 無関係なコードの特定
CN104680065A (zh) 病毒检测方法、装置及设备
Araujo et al. Compiler-instrumented, Dynamic {Secret-Redaction} of Legacy Processes for Attacker Deception
WO2023179298A1 (zh) 应用程序更新、应用程序开发方法、装置及计算机设备
Feng et al. Fastcfi: Real-time control-flow integrity using fpga without code instrumentation
Zhao et al. Compile-time code virtualization for android applications
CN114462044A (zh) 一种基于污点分析的uefi固件漏洞静态检测方法及装置
KR20220113372A (ko) 통합된 참조물 및 2차 객체 표시
Ray An overview of webassembly for iot: Background, tools, state-of-the-art, challenges, and future directions
US11334360B2 (en) High throughput disassembly system for executable code and applications

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20160720

WD01 Invention patent application deemed withdrawn after publication