CN104025102A - 用于检测嵌入在任意位置的文件并且判定文件的信誉的系统和方法 - Google Patents

用于检测嵌入在任意位置的文件并且判定文件的信誉的系统和方法 Download PDF

Info

Publication number
CN104025102A
CN104025102A CN201280053542.4A CN201280053542A CN104025102A CN 104025102 A CN104025102 A CN 104025102A CN 201280053542 A CN201280053542 A CN 201280053542A CN 104025102 A CN104025102 A CN 104025102A
Authority
CN
China
Prior art keywords
file
described file
format identifier
hashed value
credit
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.)
Granted
Application number
CN201280053542.4A
Other languages
English (en)
Other versions
CN104025102B (zh
Inventor
D·L·H·马
V·马哈迪克
S·帕塔克
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 CN104025102A publication Critical patent/CN104025102A/zh
Application granted granted Critical
Publication of CN104025102B publication Critical patent/CN104025102B/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/562Static detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • 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
    • 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/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms

Landscapes

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

Abstract

在一个示例实施例中提供了一种方法,其包括:识别与文件的开始相关联的文件格式标识符,基于文件格式标识符解析文件直到识别出文件的结束,以及计算从文件的开始到文件的结束的散列。所述方法还可以包括:发送散列到信誉系统,并且基于从信誉系统接收到的散列的信誉而采取策略动作。

Description

用于检测嵌入在任意位置的文件并且判定文件的信誉的系统和方法
技术领域
概括地说,本说明书涉及网络安全领域,更具体地说,涉及用于检测嵌入在任意位置的文件并且判定文件的信誉的系统和方法。
背景技术
在今天的社会中网络安全领域已经变得越来越重要。互联网已经可以使全世界的不同计算机网络能够互联。然而,有效地保护和维持稳定的计算机和系统的能力对于部件制造商、系统设计者和网络运营商来说,存在显著的阻碍。通过由恶意操作者实现的不断演进的系列策略,这个阻碍变得甚至更加复杂。如果某类型的恶意软件可以感染主机计算机,那么它也能够执行任何数量的恶意动作,例如从主机计算机发送出垃圾邮件或者恶意电子邮件、从与主机计算机相关联的商业或者个人窃取敏感信息、传播到其他主机计算机、和/或协助分布式拒绝服务攻击。此外,恶意操作者可以将访问权出售或者给予给其他恶意操作者,从而逐步升级对这些主机计算机的利用。因此,对于开发创新工具以与允许恶意操作者利用计算机的策略而言仍然保有显著的挑战。
附图说明
为了提供对本公开和其特征和优点的更加完整的理解,结合附图对以下的描述进行参考,其中相似的参考数字代表相似的部分,其中:
图1是示出了按照本说明书的用于检测嵌入任意位置的文件的网络环境的示例实施例的简化框图;
图2是示出了可能与网络环境相关联的额外细节的简化框图;
图3是示出了可能与网络环境相关联的潜在操作的简化流程图;
图4A-4B是示出了可能与网络环境相关联的潜在操作的伪C代码算法列表;以及
图5A-5B提供了可能嵌入网络流的任意位置的示例文件的十六进制视图。
具体实施方式
在一个示例实施例中提供了一种方法,其包括:识别与文件的开始相关联的文件格式标识符,基于文件格式标识符解析文件直到识别出文件的结束,以及从文件的开始到文件的结束计算散列。该方法还包括发送所述散列到信誉系统,并且基于从信誉系统接收到的散列的信誉而采取策略动作。
在更具体的实施例中,文件可以是可执行文件,并且格式标识符可以包括表明特定操作系统的可执行文件格式的“MZ”字符串。解析文件可以包括解析文件中的报头以判定文件的尺寸,其可以被用于定位文件的结束。
示例实施例
转到图1,图1是网络环境100的示例实施例的简化的框图,在网络环境100中可以检测到嵌入在任意位置的文件。网络环境100可以包括节点(例如主机110a-110d)的局域网105,其可以通过具有嵌入的文件检测模块122的另一个节点(例如传感器120)连接到互联网115。传感器120还可以连接到信誉系统124,其在一些实施例中可以是远程的、基于云的信誉系统。
通常,节点是能够在网络上发送、接收、或者传送数据的任何系统、机器、设备、网络元件、客户端、服务器、对等层、服务、应用、或者其他对象。网络环境100中的节点之间的链路代表两个节点可以通过其通信的任何介质。介质可以是有形介质(例如电缆或者光纤线缆)或者无形介质(例如用于无线通信的无线电波)。
因此,每个主机110a-110d可以相互通信,并且与链接到互联网115的远程节点(例如传感器120、网络服务器125、邮件服务器130、和/或即时消息传送服务器135)通信。主机110a-110d还可以例如通过邮件服务器130与远程主机140交换电子邮件消息。通常,主机110a-110d可以是能够运行程序的任何类型的节点。按照最通常的理解,主机可以是通用目的的计算机,例如台式计算机、工作站计算机、服务器、膝上计算机、平板计算机(例如iPad)、或者移动电话(例如iPhone)。例如集线器、路由器、交换机、传感器以及打印机的其他设备也可以是主机,但是在某些上下文中也可以区别于其他类型的主机,因为它们通常被配置为特定目的的计算机。
图1中的每个元件可以通过简单网络接口或者通过任何其他合适的连接(有线的或者无线的)彼此耦合,所述连接提供了网络通信的可行路径。此外,这些元件中的任何一个或多个可以基于特定配置需要而被合并或者从架构移除。网络环境100可以包括能够传输控制协议/互联网协议(TCP/IP)通信的配置,用于在网络中传送或者接收分组。网络环境100还可以在合适时和基于特定需而连同用户数据报协议/IP(UDP/IP)或者任何其他合适的协议一起进行操作。
为了解释用于检测嵌入在网络环境的任意位置的文件的系统和方法的技术的目的,理解发生在给定网络内的某些活动是重要的。以下的基本信息可以被视为可以合理解释本公开的基础。这样的信息被认真地提供,仅仅是为了解释的目的,因此,不应当以任何方式解释为限制本公开的宽泛范围和它的潜在应用。
典型的网络环境提供与其他网络电通信的能力。例如,互联网可以被用于访问以远程服务器为主机的网页,以发送或者接收电子邮件(即电子邮件)消息、或者交换文件。然而,用于干扰正常操作或者获取对机密信息的访问的新战术持续涌现。例如,威胁包括能够通过对计算机、网络和/或数据的未授权访问,对数据的未授权的销毁、公开、和/或修改,和/或拒绝服务而干扰计算机或者网络的正常操作的任何活动。
恶意软件尤其代表了对于计算机安全的持续威胁。“恶意软件”通常用作对任何敌意的、入侵的或者烦人的软件的标签,例如计算机病毒、木马、蠕虫、bot、间谍软件、广告软件等,但是也可以包括其他恶意软件。恶意软件通常还可以包括一个或多个传播向量,使它能够在网络中或者跨越其他网络进行散布,并且在许多情况下,可以采用包括公知的和新的弱点的组合的复杂攻击方案。通常的传播向量包括利用在本地网络内的主机上已知的弱点,并且发送附有恶意程序的恶意电子邮件或者在电子邮件之内提供恶意链接。但是用于部署和利用恶意软件的新战术继续呈现。例如,恶意软件可以被嵌入在其他类型的数据之内,如可携式文档格式(PDF)文件、文字处理文档、图像文件、网页或者电子邮件消息附件。
反病毒软件已经被用于阻止和移除许多类型的恶意软件,并且已经通常地采用了各种策略。例如,基于签名的检测通常涉及在可执行代码之内搜索数据的已知模式。然而,基于签名的检测对于尚不知道签名的新恶意软件可能是低效率的。反病毒软件可能还具有其他缺点,例如损害计算机的性能。用户还可能在与反病毒软件交互时遇到困难,而用户的不正确决定可能导致安全缺口。此外,反病毒软件通常在高新人级别的操作系统内运行,这可能产生额外的弱点。
一些信誉系统也可以针对一些类型的恶意软件提供可行防御。通常,信誉系统可以监控活动并且基于过去的行为分配信誉值或者分数。信誉值可以指示从良性的到恶意的范围的不同级别的可信度。例如,文件信誉系统可以保持与文件相关联的信誉值(例如最小风险、未验证的、高风险的等)、或者更加通常是与文件的散列值相关联的信誉值。在这里以宽泛的含义使用的术语“文件”以包括任何单元的数据,包括相关数据或者程序指令的任何集合,并且以通常的意义,“散列值”是由散列函数返回的任何值,其映射一个数据集(例如文件的内容)到更小的数据集(例如固定尺寸的位字符串)。例如,如果文件散列值具有不可接受的信誉(例如不可接受的信誉指示了文件散列已知或者可能关联于恶意活动),则文件信誉系统可以被用于弹出附加在电子邮件或者从网络服务器下载的文件。
然而,反病毒软件和信誉系统两者都通常仅仅在文件可以被识别时有效,而如果它嵌入在网络流或者另一个类型的文件之中,那么这可能是不可能的。网络传感器,例如防火墙和其他网络入侵阻止技术,可能不能够识别嵌入在网络流中的许多类型的文件。例如,一些网络传感器可以被设计用于通过在网络流的特定位置查找可执行文件(例如超文本传输协议(HTTP)回应附件、电子邮件附件等等)来发现嵌入的恶意软件,但如果恶意软件嵌入在没有想到的位置(例如在图像、电影或者可携式文档格式(PDF)文件中),或者在没有解析的协议中(例如即时消息文件共享协议),那么它可能不能被发现。这样的弱点显而易见但是在没有想到的位置或者具有没有解析的协议的密写(steganographically)嵌入的恶意软件利用。此外,即使恶意文件可以由一些传感器检测到,它们可能不能够检测到文件的开始和结束,因此不能够使用反病毒软件或者信誉系统来判定文件是否可疑或者已知是恶意的。例如,PDF允许资源或者对象嵌入在文件中,当查看文件时可以使用或者显示所述资源或对象。因此,恶意可执行的可以被嵌入在另外的合法的PDF文件之内。尽管一般理解和记录PDF,但是没有很好的理解或者记录嵌入资源的开始和结束的位置,因此潜在地限制了评估这样的资源的信誉的能力。
其他关注于阻止未授权的程序文件执行的安全技术可能具有不期望的副作用。例如,管理员可能负责制作关于商业活动所有方面的广泛策略,以使雇员能够从期望的和信任的网络资源处得到软件和其他电子数据。没有适当的广泛策略,雇员可能被阻止从没有被特别授权的网络资源处下载软件和其他电子数据,即使这样的软件和其他数据促进合法的和必要的商业活动。此外,这样的系统可能是太约束性,以致如果找到未授权的软件,则任何活动可能被暂停,等待网络管理员介入。对于商业而言,这种类型的系统可能干扰合法的和必要的商业活动,造成雇员停工、损失收益、显著信息技术开销等等。
按照在这里公开的实施例,网络环境100能够通过检测在任意位置嵌入的文件而克服这些不足(和其他的)。例如,在更具体的实施例中,通过在网络流的分组(即从源到目的地的一系列的分组)中搜索文件格式标识符,可以在任意协议中检测到文件的开始,所述文件格式标识符可以是能够用于识别或者验证文件内容和/或格式的任何数据,例如幻数或者文件签名。然后可以解析文件直到定位了文件的结束。文件的散列可以被计算并且发送到信誉系统以判定文件的信誉。可以基于文件的信誉采取适当的策略动作,例如终止或者阻断网络连接、隔离文件、和/或改变用户和/或管理员。在文件被嵌入在网络流内的示例实施例中,可以不需要来自主机协议的任何支持(例如,没有HTTP内容长度支持)而定位文件的结束并且计算散列。
网络环境100可以特别有利于检测嵌入在任意位置(例如在PDF文件中)的二进制可执行文件,其可以被存储在存储器中或者可以被编码到网络流的一个或多个分组中。大多数操作系统要求二进制可执行文件(即包含程序指令的文件)遵从特定的格式,以便加载器可以解析并且执行指令。这样的格式可以被操作系统供应商很好的记录,并且通常被软件开发者熟知并且理解。例如,WINDOWS可携可执行(PE)文件通常包括可以被用于识别在另外的任意数据流中的文件的开始的特定模式。更具体的说,WINDOWS PE文件应当包括文件格式标识符“MZ”和“PE00”,其可以被加载器用来从其他文件类型中区分出有效的可执行文件。因此,例如可以通过在网络流中定位这些字符串,来检测WINDOWS可执行文件的开始。这个位置可以作为在网络流中的偏移使用,散列算法可以从其开始。可执行文件报头和文件的个别部分报头可以被解析(不需要解析容器的协议或者格式)以判定文件的尺寸,其可以被用于定位文件的结尾,而没有来自容器协议(例如HTTP)或者文件(例如PDF)的任何支持。“报头”通常指被放置在数据或者代码块的开始处的数据。散列算法可以在文件的结束处停止,并且散列可以被发送到信誉系统或者威胁智能系统来以接近零的误报率判定那些可执行的信誉(例如肮脏)。
转到图2,图2是示出了可以与传感器120的一个潜在实施例相关联的额外细节的简化框图。传感器120可以包括处理器205、存储器元件210、以及各种硬件和/或软件元件。更特别的,传感器120可以包括嵌入式文件检测模块122、散列模块215、以及信誉查询模块220。传感器120可以进一步包括各种数据元件,包括文件格式标识符225。
传感器120可以在适当处且基于特定需求而将信息保持在任何合适的存储器元件(例如随机访问存储器(RAM)、只读存储器(ROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、专用集成电路(ASIC)等)、软件、硬件中、或者在任何其他合适的部件、设备、元件、或者对象中。在这里讨论的任何存储器项目(例如存储器210)应当被理解为包含在宽泛的术语“存储器元件”内。数据元件(例如文件格式标识符225)可以设置在任何数据库、寄存器、队列、表格、控制列表、或者其他存储结构中,其所有都可以在任何合适的时间表处参考。任何这样的存储选项也可以像在这里所使用的那样被包括在宽泛的术语“存储器元件”内。
在某些示例实现中,在这里概述的功能可以由逻辑实现,所述逻辑被编码在一个或多个有形介质中(例如,在ASIC中提供的嵌入式逻辑、数字信号处理器(DSP)指令、将由处理器或其它类似机器执行的软件(潜在包括对象代码和源代码)等),其可能包括非瞬态介质。在这些实例的一些中,存储器元件(如图2所显示的)可以存储用于在这里描述的操作的数据。这包括可以存储以下各项的存储器元件:被执行以实施在这里描述的活动的软件、逻辑、代码、或者处理器指令。
处理器可以执行与数据相关联的任何类型的指令,以实现在这里详细描述的操作。在一个示例中,处理器(如图2所示)可以将元件或者物件(例如数据)从一种状态或者事物转换到另一种状态或者事物。在另一个示例中,在这里概述的活动可以借助固定逻辑或者可编程逻辑(例如由处理器执行的软件/计算机指令)实现,在这里识别出的元件可以是一些类型的可编程处理器、可编程数字逻辑(例如现场可编程门阵列(FPGA)、EPROM、EEPROM)或者包括数字逻辑、软件、代码、电子指令、或者其中任何合适的组合的ASIC。在这里描述的任何潜在的处理元件、模块、以及机器应当被解释为被包含在宽泛的术语“处理器”之内。
在某些示例实现中,传感器120是网络元件,其代表了任何网络装置、服务器、路由器、交换机、网关、桥、负载均衡器、防火墙、入侵阻止系统、处理器、模块、或者任何其他合适的设备、部件、元件、或者可操作以在网络环境中交换信息的对象。网络元件可以包括促进其操作的任何合适的硬件、软件、部件、模块、接口、或者对象。这可能包括允许有效地交换数据或者信息的适当算法和通信协议。
在某些示例实现中,传感器120可以包括如在这里概述的软件(例如嵌入式文件检测模块122)以实现或者培养操作。在其他实施例中,这样的操作可以由硬件实施,在这些元件外部实现,或者包括在一些其他网络设备中以实现意图的功能。或者如在这里概述的,这些元件可以包括为了实现操作而协调的软件(或者往复的软件)。在其他实施例中,一个或者所有这些设备可以包括促进其操作的任何合适的算法、硬件、软件、部件、模块、接口、或者对象。
图3是简化的流程图300,示出了可能与网络环境100的某些示例实施例相关联的潜在操作。在一些实施例中,这样的操作可以由传感器120实现(例如嵌入式文件检测模块122等),用来识别嵌入在网络流的任意位置的文件。
可以在305处检测到新的网络连接。例如,TCP通常通过握手打开新的连接—主机发送具有一个被设定以指示正在进行三次握手的TCP标志位(即SYN位)的分组。因此通过识别SYN分组(即设定了SYN位的分组)可以检测到新的TCP连接。然而,“连接”不限于使用可靠协议(例如TCP)的通信;连接还可以包括使用不可靠的协议(例如UDP或者IP)的通信。在这样的实施例中,可以追踪网络流以检测新的网络流。在310处,对于在网络流中的每个分组,可以在分组中检查文件格式标识符,其可以例如被存储在文件格式标识符255中。在315处,如果找到了文件格式标识符,那么可以指示文件的开始,并且在320处可以开始散列算法。在325处,对于通过网络连接传输的每个后续分组,可以检查分组以识别文件的结束。例如,可以识别标记了文件的结束的第二文件格式标识符,或者文件报头可以指示文件的尺寸。在后一情况中,在分组中的每个文件部分的尺寸可以被增加直到识别到具有最后字节的分组。在330处,如果识别出文件的结束,则散列算法可以在335处结束。在340处,散列可以被发送到信誉系统,并且在345处,可以基于来自信誉系统的回应采取适当的策略动作。
图4A-4B提供示出了可以与网络环境100的更具体的实施例相关联的潜在操作的伪代码的列表400。在一些实施例中,这样的操作可以由传感器120(例如嵌入式文件检测模块122等)实现,以识别嵌入在网络连接的任意位置的文件。
在图4A-4B中的伪代码通常是算法的压缩和非正式的高级别描述。列表400包括基于C编程语言的结构约定,但是可能省略某些细节以促进理解算法的某些原理。例如,变量声明、特定系统代码、以及子程序通常被省略。伪代码被用细节的自然语言描述增大,其通常嵌入在/*和*/对之间或者在//之后。
图5A-5B提供可能嵌入在网络流的任意位置的示例WINDOWS PE文件500的十六进制的视图(即“十六进制转储”)。在图5A-5B中的第一列代表对于每一行中的第一字节的存储器地址偏移(以十六进制记法),而最后一列提供每一行的明文翻译。示例文件500的这一视图被提供仅仅作为权宜工具,用于进一步解释参考列表400描述的某些操作。
在图4A-4B的示例实施例中,操作可以被用于识别和解析嵌入在网络流的任意位置的WINDOWS可执行文件。在图4A的示例列表中的行402处,指针(“ptr”)可以被设定到网络流(“流”)的开始。因此,网络流的第一字节可以被指针“ptr[0]”代表、第二字节被“ptr[1]”代表、第三字节被“ptr[2]”代表,等等。在包含示例文件500的流中,变量“ptr”可以指向十六进制地址00000000。应当注意选择这个地址仅仅是为了简化图示;实际上,地址可以显著不同。由于WINDOWS可执行文件通常在最先的两个字节由“MZ”开始,因此在ptr[0]和ptr[1]的值可以被评估并与这一字符串进行比较。如果在行404处第一字节(即ptr[0])不是“M”(由十六进制记法0x4D代表)、在行406处第二字节(即ptr[1])不是“Z”(由十六进制记法0x5A代表)、并且在行408处具有某些位被掩码的第四字节(即由0xFE掩码的ptr[3])不是零,那么在行401处可能不需要进一步的评估并且算法可以终止(例如退出)。这三个条件分别在示例文件500中的504、506、以及508处得到满足。
如果满足全部三个条件,则可以为与WINDOWS可执行文件格式模式的一致性而评估额外的字节,以减少误报识别。例如,在行412处通过将指针设定到第五字节(即流+4)可以评估流中接下来的四个字节。如果在流中分别在行414、416和418处的第六(ptr[1])、第七(被0xE0掩码的ptr[2])、以及第八(ptr[3])字节不全是零,那么算法可以在行420处终止。示例文件500分别在514、516以及518处匹配这个全零模式。接下来的四个字节也通常在WINDOWS可执行文件中展现一致模式,因此在行422处指针可以被设定到第九字节(即流+8)。如果分别在行424、426以及428处的第九(由0xC0掩码的ptr[0])、第十(ptr[1])、以及第十二(由0xFE掩码的ptr[3])字节不全是零,那么在行430处算法可以终止。示例文件500分别在524、526以及528处匹配这个全零的模式。
如果最先的四个字节匹配“MZ”模式(并且可选的,接下来的八个字节也匹配上面描述的模式),则在行432处散列函数可以从流的开始并行地开始散列字节。
可以解析后续的文件结构以定位文件的结束。例如,图形环境的WINDOWS可执行二进制文件可以在偏移0x3C处指定另一格式标识符“PE00”的位置。因此,通过检查从流的开始偏移0x3C的四个字节字,可以在行434处判定期望的位置。例如,在示例文件500中在0x3C偏移534指示字符串(以及“PE报头”的开始)应当被在000000f0处发现(注意,在示例文件500中的四字节字是小字节序格式)。在示例文件500中,字符串“PE00”的十六进制等同物是在536处,在地址000000f0处开始。如果在行436处在期望的位置没有找到字符串“PE00”,那么在行438处算法可以终止。
WINDOWS可执行二进制文件还可以包括可选的报头和一个或多个部分,例如数据部分、资源部分等。可选的报头的尺寸可以被指定在从PE报头开始的20字节的偏移处(例如在示例文件500的540处),其可以在行440处取回,并且在442处,可以从PE报头开始的6字节的偏移处(例如在示例文件500的542处)取回部分的数量。每个部分可以包括40字节长的部分报头(例如报头543a-543c),而且每个部分报头可以包括8字节的部分名称以及4字节的虚拟尺寸。因此,在最后部分报头内的位置可以在行444处判定。
可执行二进制文件还可以包括附在文件的证书或者其他部件对象。例如在行446处,在WINDOWS PE文件中,例如证书通常可以在从PE报头开始的152字节偏移处识别出。证书通常是固定长度,且证书的尺寸可以在行448处判定。如果没有识别到证书,则可以在行450处将尺寸设定为零。
可以在最后部分的报头中指定最后部分的尺寸,例如在示例文件500的552处,并且在行452处取回。从PE报头的开始的原始数据的偏移也可以在最后部分报头中识别出,例如在示例文件500中的554处,并且在行454处取回。通过对(如果有的话)原始数据偏移值、原始数据的尺寸以及证书的尺寸进行加和,可以在行456处计算文件的总共尺寸。
如果处理过的字节的数量等于在行456处判定的文件的总共尺寸,那么可以在行458处停止散列函数,并且在行460处散列值可以被发送到信誉系统,以评估文件的信誉。在462处,可以基于来自信誉系统的回应,采取适当的策略动作。
通常,通过平衡不正确的散列计算率与散列碰撞率,可以选择应用到文件的散列函数以最小化与在信誉系统中的散列值的误报匹配。例如,可以以小于1%误差来计算MD5散列,并且由于MD5碰撞通常非常稀少,因此不太可能这些错误的散列会匹配信誉系统已知的恶意软件。因此,网络环境100可以显著增加发现文件并且查询信誉系统的机会,同时还确保极少的误报率。
网络环境100可以提供显著的优点,其中一些已经被讨论过了。例如,在典型的企业场景中,嵌入在任意网络位置(例如,即时消息传送文件传输、在图像文件中,等)的可执行文件可以被检测到,而不考虑操作系统或者协议。由于容器协议和文件不需要被解析,即网络环境100不需要解析HTTP、SMTP、FTP、PDF等以检测嵌入的文件,所以网络环境100也可以实质上减少处理周期和存储器使用。并且虽然已经参考特定类型的文件(即WINDOWS PE文件)描述了网络环境100的一些潜在操作,但这样的操作容易扩展到其他文件类型,例如包括具有文件格式标识符和已知的或者可以被反向工程的格式的文件类型。
在上面提供的示例中,还有许多其他潜在示例中,可以以两个、三个或者四个网络元件描述交互。然而,这仅仅是出于清晰和示例的目的进行的。在某些情况下,通过仅仅参考有限数量的网络元件,可以更容易地描述给定操作集的一个或多个功能。应当理解,网络环境100是容易扩展的并且可以容纳大量的部件,还有更复杂的/精细的布置和配置。因此,当潜在地应用于无数其他架构时,所提供的示例不应当限制网络环境100的范围或者禁止网络环境100的宽泛教导。此外,尽管参考特定的场景进行了描述,其中特定的模块被提供在网络元件之内,但这些模块可以被外部提供,或者以任何合适的方式整合和/或组合。在某些实例中,这样的模块可以设置在单个专属单元中。
注意到以下也是重要的:在附图中的步骤仅仅示出可以被网络环境100执行或者在网络环境100之内执行的一些可能的场景和模式。这些步骤中的一些可以在适当的地方被删除或者移除,或者这些步骤可以做出大量修改或者改变而不偏离在这里提供的教导的范围。此外,若干这些操作已经被描述为同时于或者并行于一个或多个额外的操作执行。然而,这些操作的正时可以被显著变更。为了示例和讨论的目的,已经给出了前面的操作流。提供实质的灵活性体现在:可以提供任何合适的布置、顺序、配置、以及正时机制,而不偏离在这里提供的教导。
本领域的技术人员可以确定大量其他改变、替代、变化、变更以及修改,并且本公开旨在包含所有这样的改变、替代、变化、变更以及修改,视为落在所附权利要求的范围之内。为了协助美国专利商标局(USPTO)以及基于本申请发表的任何专利的任何读者解释所附于此的权利要求,申请人希望指出申请人:(a)不意图任何所附的权利要求引用35U.S.C段落112的段落六(6),因为它存在于其递交日,除非词语“用于…的模块”或者“用于…的步骤”被特别用于特定的权利要求;以及(b)不打算通过在说明书中的任何陈述以不在所附权利要求中反映的任何形式限制本公开。

Claims (20)

1.一种方法,包括:
识别与文件的开始相关联的文件格式标识符;
基于所述文件格式标识符来解析所述文件以识别所述文件的结束;以及
计算从所述文件的开始到所述文件的结束的散列值。
2.如权利要求1所述的方法,进一步包括:
发送所述散列值到信誉系统;
接收与所述散列值相关联的信誉值;以及
基于所述信誉值采取策略动作。
3.如权利要求1所述的方法,其中所述文件是二进制文件。
4.如权利要求1所述的方法,其中:
所述文件是可执行文件;以及
所述文件格式标识符是包括“MZ”的字符串。
5.如权利要求1所述的方法,其中:
所述文件是可执行文件;以及
所述文件格式标识符是包括“PE00”的字符串。
6.如权利要求1所述的方法,其中解析所述文件包括:解析在所述文件中的报头,以判定所述文件的尺寸。
7.如权利要求1所述的方法,其中:
所述文件是可执行文件;
所述文件格式标识符是包括“MZ”的字符串;以及
解析所述文件包括解析在所述文件中的报头以判定所述文件的尺寸。
8.如权利要求1所述的方法,其中解析所述文件包括:解析在所述文件中的报头,以检测与所述文件相关联的证书。
9.如权利要求1所述的方法,其中所述文件嵌入在网络流中。
10.如权利要求1所述的方法,其中所述文件借助容器嵌入在网络流中,并且所述文件被解析而所述容器不被解析。
11.如权利要求1所述的方法,其中利用散列函数计算所述散列值,所述散列函数被选择为在所述散列值不正确时最小化与恶意软件的误报匹配。
12.一种被编码在一个或多个非瞬态介质中的逻辑,所述逻辑包括用于执行的代码,并且当被一个或多个处理器执行时所述逻辑能够运行以执行包括以下步骤的操作:
识别与文件的开始相关联的文件格式标识符;
基于所述文件格式标识符解析所述文件以识别所述文件的结束;以及
计算从所述文件的开始到所述文件的结束的散列值。
13.如权利要求12所述的编码的逻辑,其中所述操作进一步包括:
发送所述散列值到信誉系统;
接收与所述散列值相关联的信誉值;以及
基于所述信誉值采取策略动作。
14.如权利要求12所述的编码的逻辑,其中所述文件是二进制文件。
15.如权利要求12所述的编码的逻辑,其中:
所述文件是可执行文件;以及
所述文件格式标识符是包括“MZ”的字符串。
16.如权利要求12所述的编码的逻辑,其中:
所述文件是可执行文件;以及
所述文件格式标识符是包括“PE00”的字符串。
17.一种装置,包括:
一个或多个处理器,其能够操作以执行与文件检测模块相关联的指令,以便所述装置被配置用于:
识别与文件的开始相关联的文件格式标识符;
基于所述文件格式标识符解析所述文件以识别所述文件的结束;以及
计算从所述文件的开始到所述文件的结束的散列值。
18.如权利要求17所述的装置,其中所述装置被进一步配置用于:
发送所述散列值到信誉系统;
接收与所述散列值相关联的信誉值;以及
基于所述信誉值采取策略动作。
19.如权利要求17所述的装置,其中所述文件是二进制文件。
20.如权利要求17所述的装置,其中:
所述文件是可执行文件;以及
所述文件格式标识符是包括“MZ”的字符串。
CN201280053542.4A 2011-10-18 2012-10-16 用于检测嵌入在任意位置的文件并且判定文件的信誉的系统和方法 Active CN104025102B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/276,197 2011-10-18
US13/276,197 US8650638B2 (en) 2011-10-18 2011-10-18 System and method for detecting a file embedded in an arbitrary location and determining the reputation of the file
PCT/US2012/060473 WO2013059219A1 (en) 2011-10-18 2012-10-16 System and method for detecting a file embedded in an arbitrary location and determining the reputation of the file

Publications (2)

Publication Number Publication Date
CN104025102A true CN104025102A (zh) 2014-09-03
CN104025102B CN104025102B (zh) 2016-12-21

Family

ID=48086902

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280053542.4A Active CN104025102B (zh) 2011-10-18 2012-10-16 用于检测嵌入在任意位置的文件并且判定文件的信誉的系统和方法

Country Status (4)

Country Link
US (1) US8650638B2 (zh)
EP (1) EP2774071B1 (zh)
CN (1) CN104025102B (zh)
WO (1) WO2013059219A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107079041A (zh) * 2014-09-17 2017-08-18 微软技术许可有限责任公司 文件信誉评估
CN110737894A (zh) * 2018-12-04 2020-01-31 哈尔滨安天科技集团股份有限公司 复合文档安全检测方法、装置、电子设备及存储介质
CN116305172A (zh) * 2023-05-23 2023-06-23 北京安天网络安全技术有限公司 OneNote文档的检测方法、装置、介质及设备

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11126720B2 (en) * 2012-09-26 2021-09-21 Bluvector, Inc. System and method for automated machine-learning, zero-day malware detection
US9361458B1 (en) 2014-10-08 2016-06-07 Trend Micro Incorporated Locality-sensitive hash-based detection of malicious codes
WO2016135729A1 (en) * 2015-02-26 2016-09-01 Israel Zimmerman A method to identify known compilers functions, libraries and objects inside files and data items containing an executable code
US9646158B1 (en) * 2015-06-22 2017-05-09 Symantec Corporation Systems and methods for detecting malicious files
US10642976B2 (en) * 2015-06-27 2020-05-05 Mcafee, Llc Malware detection using a digital certificate
US10606844B1 (en) * 2015-12-04 2020-03-31 Ca, Inc. Method and apparatus for identifying legitimate files using partial hash based cloud reputation
US10454952B2 (en) * 2016-12-23 2019-10-22 Microsoft Technology Licensing, Llc Threat protection in documents
CA3065306A1 (en) * 2017-05-30 2018-12-06 Stewart P. Macleod Real-time detection of and protection from malware and steganography in a kernel mode
US10685113B2 (en) * 2017-06-28 2020-06-16 Apple Inc. Determining the similarity of binary executables
US11681801B2 (en) * 2019-01-14 2023-06-20 Dell Products L.P. Malicious code purification in graphics files
CN109871685B (zh) * 2019-02-19 2023-08-08 腾讯科技(深圳)有限公司 一种rtf文件的解析方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5892904A (en) * 1996-12-06 1999-04-06 Microsoft Corporation Code certification for network transmission
US20020069198A1 (en) * 2000-08-31 2002-06-06 Infoseer, Inc. System and method for positive identification of electronic files
WO2003054728A2 (de) * 2001-12-20 2003-07-03 Siemens Aktiengesellschaft Verfahren zum bearbeiten eines xml-strukturierten, in einer datei hinterlegbaren dokumentes
US20090282476A1 (en) * 2006-12-29 2009-11-12 Symantec Corporation Hygiene-Based Computer Security
US20110091032A1 (en) * 2009-10-15 2011-04-21 Kabushiki Kaisha Toshiba Method and apparatus for information reproduction

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6073142A (en) 1997-06-23 2000-06-06 Park City Group Automated post office based rule analysis of e-mail messages and other data objects for controlled distribution in network environments
US5987610A (en) 1998-02-12 1999-11-16 Ameritech Corporation Computer virus screening methods and systems
US6460050B1 (en) 1999-12-22 2002-10-01 Mark Raymond Pace Distributed content identification system
US6901519B1 (en) 2000-06-22 2005-05-31 Infobahn, Inc. E-mail virus protection system and method
US7526530B2 (en) 2006-05-05 2009-04-28 Adobe Systems Incorporated System and method for cacheing web files
US8365287B2 (en) * 2010-06-18 2013-01-29 Samsung Sds Co., Ltd. Anti-malware system and operating method thereof

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5892904A (en) * 1996-12-06 1999-04-06 Microsoft Corporation Code certification for network transmission
US20020069198A1 (en) * 2000-08-31 2002-06-06 Infoseer, Inc. System and method for positive identification of electronic files
WO2003054728A2 (de) * 2001-12-20 2003-07-03 Siemens Aktiengesellschaft Verfahren zum bearbeiten eines xml-strukturierten, in einer datei hinterlegbaren dokumentes
US20090282476A1 (en) * 2006-12-29 2009-11-12 Symantec Corporation Hygiene-Based Computer Security
US20110091032A1 (en) * 2009-10-15 2011-04-21 Kabushiki Kaisha Toshiba Method and apparatus for information reproduction

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107079041A (zh) * 2014-09-17 2017-08-18 微软技术许可有限责任公司 文件信誉评估
CN110737894A (zh) * 2018-12-04 2020-01-31 哈尔滨安天科技集团股份有限公司 复合文档安全检测方法、装置、电子设备及存储介质
CN116305172A (zh) * 2023-05-23 2023-06-23 北京安天网络安全技术有限公司 OneNote文档的检测方法、装置、介质及设备

Also Published As

Publication number Publication date
US8650638B2 (en) 2014-02-11
US20130097661A1 (en) 2013-04-18
CN104025102B (zh) 2016-12-21
EP2774071B1 (en) 2018-12-19
EP2774071A1 (en) 2014-09-10
EP2774071A4 (en) 2015-07-01
WO2013059219A1 (en) 2013-04-25

Similar Documents

Publication Publication Date Title
CN104025102A (zh) 用于检测嵌入在任意位置的文件并且判定文件的信誉的系统和方法
CN103797766B (zh) 对于协议指纹识别和信誉相关的系统和方法
JP6086968B2 (ja) 悪意のあるソフトウェアに対するローカル保護をするシステム及び方法
CN104067280B (zh) 用于检测恶意命令和控制通道的系统和方法
US10367830B2 (en) Security action of network packet based on signature and reputation
US9560059B1 (en) System, apparatus and method for conducting on-the-fly decryption of encrypted objects for malware detection
CN103180862B (zh) 用于服务器耦合的恶意软件防止的系统和方法
US9461963B2 (en) Systems and methods for detecting undesirable network traffic content
US8997236B2 (en) System, method and computer readable medium for evaluating a security characteristic
CN105074717A (zh) 在网络环境中的恶意脚本语言代码的检测
US20190222591A1 (en) Method and server for determining malicious files in network traffic
US20130097659A1 (en) System and method for whitelisting applications in a mobile network environment
CN101142782A (zh) 消息保护系统中的两阶段散列值匹配技术
CN103283202A (zh) 用于针对恶意软件的网络级保护的系统和方法
KR102134898B1 (ko) 클라우드 기반 통합 웹서버 보안서비스 제공 시스템 및 방법
KR102189361B1 (ko) 엔드포인트에 기반한 관리형 탐지 및 대응 시스템과 방법
Thaker et al. Detecting phishing websites using data mining
Yap et al. A mobile phone malicious software detection model with behavior checker
US8555379B1 (en) Method and apparatus for monitoring communications from a communications device
Hussain et al. Detection of black hole attack in GPCR VANET on road network
US20170085586A1 (en) Information processing device, communication history analysis method, and medium
Ulghar et al. Blockchain Capabilities in Defending Advanced Persistent Threats Using Correlation Technique and Hidden Markov Models (HMM)
US20230042816A1 (en) Method and system for blockchain-based cyber security management
KR20240019673A (ko) 표적형 이메일 공격 차단 및 대응을 위한 진단 리포팅을 제공하는 이메일 보안 시스템 및 그 동작 방법
KR20240118315A (ko) 메일 보안 방화벽 장치 및 그 동작 방법

Legal Events

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

Address after: American California

Patentee after: McAfee limited liability company

Address before: American California

Patentee before: Mcafee Inc

CP03 Change of name, title or address