CN105095760A - 用于检测恶意软件的方法和系统 - Google Patents
用于检测恶意软件的方法和系统 Download PDFInfo
- Publication number
- CN105095760A CN105095760A CN201510459619.3A CN201510459619A CN105095760A CN 105095760 A CN105095760 A CN 105095760A CN 201510459619 A CN201510459619 A CN 201510459619A CN 105095760 A CN105095760 A CN 105095760A
- Authority
- CN
- China
- Prior art keywords
- malware
- integer
- executable file
- attribute
- head field
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 230000008676 import Effects 0.000 claims description 41
- 238000004140 cleaning Methods 0.000 claims description 32
- 238000009795 derivation Methods 0.000 claims description 18
- 230000009471 action Effects 0.000 claims description 12
- 230000007306 turnover Effects 0.000 claims description 9
- 238000004422 calculation algorithm Methods 0.000 claims description 6
- 238000010801 machine learning Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 description 32
- 238000007689 inspection Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 11
- 238000001514 detection method Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 230000000712 assembly Effects 0.000 description 5
- 238000000429 assembly Methods 0.000 description 5
- 230000003068 static effect Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 241000700605 Viruses Species 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000002155 anti-virotic effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/145—Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2101—Auditing as a secondary aspect
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种用于检测恶意软件的方法和系统。该方法可以包括对多个已知洁净的可执行文件的多个元数据字段进行检查。该方法还可以包括对多个已知恶意的可执行文件的多个元数据字段进行检查。该方法可以进一步包括:基于从对多个已知洁净和已知恶意的可执行文件的多个元数据字段进行检查所获取的信息,推导指示恶意软件的元数据字段属性。还公开了对应的系统和计算机可读介质。
Description
分案说明
本申请属于申请日为2009年12月18日的中国发明专利申请200910254092.5的分案申请。
背景技术
用户和企业越来越依赖于用计算机存储敏感数据。结果,恶意程序员似乎不断地增加其获取对其他计算机非法控制和访问的努力。具有恶意动机的计算机程序员已经并将继续创造病毒、特洛伊木马、蠕虫、和其他意图损害计算机系统和他人数据的程序。通常将这些恶意程序称为恶意软件(malware)。
为抵抗日益增多的恶意软件,安全软件公司为其用户定期创建和部署恶意软件签名(例如,识别恶意软件的散列函数)。然而,还有相当数量的恶意软件尚未被识别。所以,需要一种用于检测未识别的恶意软件的过程。
发明内容
本公开的实施例涉及基于恶意文件的一个或多个元数据字段属性对恶意文件进行检测。例如,检查模块可以对多个已知洁净的可执行文件的多个元数据字段进行检查。检查模块还可以对多个已知恶意的可执行文件的多个元数据字段进行检查。推导模块可以基于通过对多个已知洁净和已知恶意的可执行文件的多个元数据字段进行检查所收集的信息来推导指示恶意软件的元数据字段属性。
在一些实施例中,安全模块可以使用从对多个已知洁净和已知恶意的可执行文件的元数据字段的检查所推导出的信息,来确定未知的可执行文件是否包括恶意软件。例如,安全模块可以接收未知的可执行文件。然后,安全模块可以通过确定该未知的可执行文件是否包含指示恶意软件的元数据字段属性,来确定该未知的可执行文件是否包含恶意软件。
在至少一个实施例中,如果未知的可执行文件包括恶意软件,则安全模块可以执行安全动作。安全模块可以通过隔离该未知的可执行文件、把该未知的可执行文件报告给安全软件销售商、将该未知的可执行文件添加到恶意软件文件列表和/或通过执行任何其他适当的安全动作来执行安全动作。根据此处描述的一般原理,取自任何上述实施例的特征可以相互结合使用。通过结合附图阅读以下详细描述和权利要求,将会更加透彻理解这些和其他实施例、特征、和优点。
附图说明
附图说明了多个示例性实施例,并且是本说明的一部分。与以下描述一起,这些附图展示并解释了本公开的各种原理。
图1是根据某些实施例的用于检测恶意软件的示例性系统的框图。
图2是根据某些实施例的用于检测恶意软件的示例性方法的流程图。
图3是根据某些实施例的示例性可执行文件的框图。
图4是根据某些实施例的用于检测恶意软件的示例性方法的流程图。
图5是能够实现此处描述和/或说明的一个或多个实施例的示例性计算系统的框图。
图6是能够实现此处描述和/或说明的一个或多个实施例的示例性计算网络的框图。
在所有附图中,相同的附图标记和描述指示相似但不一定是相同的元素。尽管此处描述的示例性实施例可以采用各种修改和替代形式,但是,特定实施例已通过附图中的示例示出,并将在此处详细描述。然而,此处描述的示例性实施例并非意欲限于公开的特定形式。更确切地说,本公开覆盖落于所附权利要求范围内的所有修改、等效物和替选。
具体实施方式
如以下将要详细描述的,本公开一般地涉及通过对已知洁净和已知恶意的可执行文件进行检查,并使用在检查期间获取的信息来确定未知文件是否包含恶意软件,从而检测恶意软件的方法和系统。图1是用于检查已知洁净和已知恶意的可执行文件并确定未知的可执行文件是否包含恶意软件的示例性系统的图。图2示出用于检查已知洁净和已知恶意的可执行文件并推导指示恶意软件的元数据属性的示例性过程。图3示出示例性可移植可执行(PE,PortableExecutable)文件,而图4示出用于确定PE文件是否包含恶意软件的示例性过程。在图5和6中示出用于实现本公开的实施例的示例性计算系统和示例性网络。
图1是示例性系统100的框图。系统100可以包括用于执行一个或多个任务的一个或多个模块110。例如,模块110可以包括检查模块112,用于检查已知洁净和已知恶意的可执行文件的元数据字段。可执行文件的元数据字段可以包括头字段和/或可执行文件的其他字段。模块110还可以包括推导模块114,用于基于从对已知洁净和已知恶意的可执行软件进行检查所获取的信息,推导指示恶意软件的元数据字段属性。模块110可以包括安全模块116,其可以使用指示恶意软件的元数据字段属性,来确定未知的可执行文件是否包含恶意软件。
在某些实施例中,图1中的模块110中的一个或多个可以代表一个或多个软件应用或程序,当其被计算系统执行时,可以使计算系统执行此处公开的一个或多个步骤。例如,如以下将要详细描述的,模块110中的一个或多个可以代表被配置来在一个或多个计算设备上运行的软件模块,所述计算设备诸如图5中的计算系统510和/或图6中的示例性网络架构600的一部分。图1中的一个或多个模块110还可以代表全部或部分被配置来执行与此处公开的步骤相关联的一个或多个任务的一个或多个专用计算机。
系统100可以包括数据库120。数据库120可以包括元数据字段数据库122,其可以存储待在已知洁净和已知恶意的可执行文件中检查的一个或多个元数据字段的列表。数据库120还可以包括恶意软件元数据字段信息数据库124。恶意软件元数据字段信息数据库124可以包括:识别指示恶意软件的元数据字段属性和/或元数据字段属性可以如何指示恶意软件的任何信息。指示恶意软件的元数据字段属性可以包括以下的一个或多个元数据字段属性,即当在可执行文件中发现其时,可以指示该可执行文件包括恶意软件。
在一些实施例中,恶意软件元数据字段信息数据库124可以包括以下的信息:其指示如何使用恶意软件的元数据字段属性来确定未知的可执行文件是否包含恶意软件。根据某些实施例,恶意软件元数据字段信息数据库124可以包括从将任何适当的机器学习算法应用于已知洁净和已知恶意的可执行文件推导出的任何信息。例如,恶意软件元数据字段信息数据库124可以包括用于一个或多个元数据字段属性的权重信息,其指示元数据属性在检测恶意软件中的有用性。
在一些实施例中,恶意软件元数据字段信息数据库124可以包括指示阈值数的阈值信息。如果可执行文件的元数据字段属性与恶意软件元数据字段信息数据库124中的元数据字段属性匹配的数量大于或等于阈值数,则安全模块116可以确定可执行文件包括恶意软件。恶意软件元数据字段信息数据库124可以附加地或替选地包括以下信息,该信息指示对恶意软件进行指示的元数据字段属性的一个或多个组合。在一些实施例中,恶意软件元数据字段信息数据库124可以包括以下信息,该信息指示对恶意软件进行指示的一个元数据字段属性是比指示恶意软件的其他元数据字段属性更强的恶意软件指示符。
图1中的数据库120中的一个或多个可以代表一个或多个计算设备的一部分。数据库120中的一个或多个可以代表图5中的计算系统510的一部分,和/或图6中的示例性网络架构600的一部分。替选地,图1中的数据库120中的一个或多个可以代表一个或多个物理上分离的能够由计算设备访问的设备。
图2示出可以由诸如检查模块112的检查模块、诸如推导模块114的推导模块、和/或诸如安全模块116的安全模块实现的过程。检查模块可以对多个已知洁净的可执行文件的多个元数据字段进行检查(步骤210)。例如,检查模块可以对两个或更多个已知洁净的可执行文件的两个或更多个元数据字段进行检查。
已知洁净的可执行文件可以包括已经被识别为是洁净的任何文件(即不包括恶意软件的文件)。可执行文件的元数据字段可以是携带关于可执行文件和/或与其相关联的信息的任何字段。例如,可执行文件的元数据字段中的条目可以解释该可执行文件的属性。
在一些实施例中,元数据字段可以包括用于可执行文件的静态属性。如此处所用,短语“静态属性”可以指:当文件没有正在被执行时,可以观察到的文件的任何属性。换言之,静态属性可以是基于对可执行文件中的信息进行检查所能够确定的属性。相反,动态属性可以是基于对文件的执行而观察到的属性。
可执行文件可以是包括可由计算机执行的代码(即指令)的任何文件。还可以将可执行文件称为可执行或二进制。可以根据任何适当的可执行文件格式对可执行文件进行格式化。可执行文件格式的一个示例是可移植可执行(PE)文件格式。PE文件格式可以是在32位或64位版本的视窗操作系统中使用的文件格式。可执行文件还可以包括用于LINUX操作系统、MAC操作系统、UNIX操作系统、和/或任何其他操作系统的可执行文件。
除了对已知洁净的可执行文件进行检查以外,检查模块可以对多个已知恶意的可执行文件的多个元数据字段进行检查(步骤220)。例如,检查模块可以对两个或更多个已知恶意的可执行文件的两个或更多个元数据字段进行检查。已知恶意的可执行文件可以包括已知包括诸如病毒、特洛伊木马、蠕虫和/或意图损害计算机系统和数据的其他程序之类的恶意软件的可执行文件。在一些实施例之中,检查模块可以对在已知洁净的可执行文件和已知恶意的可执行文件中的相同元数据字段进行检查。在其他实施例中,检查模块可以对在已知洁净的可执行文件中与在已知恶意的可执行文件中不同的一个或多个元数据字段进行检查。
检查模块可以通过确定可执行文件的元数据字段中的属性值,来对可执行文件的元数据字段进行检查。检查模块可以将在检查期间收集的信息(例如,属性值)存储在数据库中,诸如恶意软件元数据字段信息数据库124。
在检查模块对已知洁净和已知恶意的可执行文件进行检查之后,推导模块可以基于在检查期间获取的信息推导指示恶意软件的元数据字段属性。如前所述,在检查期间获取的信息可以包括属性信息。推导模块可以对属性信息进行处理,以确定哪些属性可以指示恶意软件。推导模块可以使用任何适当的机器学习算法来确定哪些属性可以指示恶意软件。推导模块还可以使用任何适当的机器学习算法确定如何使用元数据属性来确定未知的可执行文件是否包含恶意软件。例如,推导模块可以确定元数据属性的哪些组合是恶意可执行文件的指示。推导模块可以将关于如何使用元数据属性来识别恶意软件的任何信息存储于数据库中,诸如恶意软件元数据字段信息数据库124。
可执行文件可以包括各种类型的元数据字段和对应的属性。例如,可执行文件可以包括:用于一个或多个调试段属性的一个或多个调试段字段、用于一个或多个导入属性的一个或多个导入字段、用于一个或多个符号表属性的一个或多个符号表字段、用于一个或多个可选头属性的一个或多个可选头字段、用于一个或多个特征属性的一个或多个特征字段、用于一个或多个图像子系统属性的一个或多个图像子系统字段、用于一个或多个图像基础属性的一个多个图像基础字段、用于一个或多个链接器版本属性的一个或多个链接器版本字段、用于一个或多个大小属性的一个或多个大小字段和/或用于一个或多个真实虚拟地址(RVA)属性的一个或多个RVA字段。
可执行文件还可以包括:用于一个或多个入口点属性的一个或多个入口点字段、用于一个或多个代码段基础属性的一个或多个代码段基础字段、用于一个或多个无进出属性的一个或多个无进出字段、用于一个或多个线程级前瞻(TLS)属性的一个或多个TLS字段、用于一个或多个具有证书属性的一个或多个具有证书字段、用于一个或多个节点属性的一个或多个节点字段、用于一个或多个对准属性的一个或多个对准字段、用于一个或多个操作系统版本属性的一个或多个操作系统版本字段、用于一个或多个图像版本属性的一个或多个图像版本字段、用于一个或多个最低子系统版本属性的一个或多个最低子系统版本字段、用于一个或多个动态链接库(DLL)特征属性的一个或多个DLL特征字段、用于一个或多个外部绑定设施(EBF)属性的一个或多个EBF字段、用于一个或多个堆栈大小属性的一个或多个堆栈大小字段、用于一个或多个堆大小属性的一个或多个堆大小字段、和/或用于一个或多个段数属性的一个或多个段数字段。
可以由任何适当的数据类型来表示此处描述的属性。例如,调试段属性可以包括调试段整数,符号表属性可以包括符号表指针整数和/或符号数整数,图像子系统属性可以包括图形用户界面整数和/或基于字符的用户界面整数,而链接器版本属性可以包括主要链接器版本整数和/或次要链接器版本整数。RVA属性可以包括:RVA入口点整数、代码段的RVA开始整数、代码段的RVA基础整数、和/或数据段的RVA开始整数。
操作系统版本属性可以包括主要操作系统版本整数和/或次要操作系统版本整数。图像版本属性可以包括主要图像版本整数和/或次要图像版本整数。最低子系统版本属性可以包括主要子系统版本整数和/或次要子系统版本属性。大小属性可以包括:图像大小整数、代码段大小整数、已初始化数据大小整数、未初始化数据大小整数、和/或头大小整数。可选头属性可以包括在可执行文件的可选头中的任何属性。
入口点属性可以包括入口点整数。代码段基础属性可以包括代码段基础整数。对准属性可以包括段对准整数和/或文件对准整数。DLL特征属性可以包括DLL特征整数,堆栈大小属性可以包括堆栈保留大小整数和/或堆栈提交大小整数,而堆大小属性可以包括堆保留大小整数和/或堆提交大小整数。图像基础属性可以包括图像基础整数,而EBF属性可以包括EBF整数。无进出属性可以包括无进出整数,具有证书属性可以包括具有证书整数,段数属性可以包括段数整数,节点属性可以包括节点整数,而TLS属性可以包括TLS整数。
导入属性可以包括:具有导入整数、具有延迟的导入整数、urlmon导入整数、msvcrt导入整数、oleaut32导入整数、setupapi导入整数、user32导入整数、advapi32导入整数、shell32导入整数、gdi32导入整数、comdlg32导入整数、和/或imm32导入整数。特征属性可以包括用于各种可执行文件特征的一个或多个特征标记。
如上所述,元数据字段属性可以表示可执行文件的各种特征。例如,多个段对准整数可以用于指示段需要被加载的位置。多个文件对准整数可以是用于开始段的偏移量。主要和次要操作系统版本整数可以指示需要执行可执行文件的最低操作系统版本。主要和次要图像版本整数可以指示可执行文件的版本。主要和次要子系统版本整数可以指示执行可执行文件需要的最低子系统版本。图像大小整数可以指示考虑段对准之后的图像大小。头大小整数可以指示可执行文件的头的全部大小。图形用户界面整数可以包括指示可执行文件是否使用图形用户界面的标记。基于字符的用户界面整数可以包括指示可执行文件是否使用基于字符的用户界面的标记。
堆栈保留大小整数可以指示可能需要为堆栈保留的地址空间的数量。堆栈提交大小整数可以指示为堆栈提交的实际存储器的数量。堆保留大小整数可以指示可能需要为堆保留的地址空间的数量。堆提交大小整数可以指示为堆提交的实际存储器的数量。符号表指针整数可以是到符号表的偏移量。符号数整数可以指示符号表中的符号数。调试段整数可以指示可执行文件是否具有调试段。主要和次要链接器版本整数可以指示产生可执行文件的链接器的版本。代码段大小整数可以指示可执行文件中的代码段的大小。已初始化数据大小整数可以指示可执行文件中的已初始化数据段的大小。未初始化数据大小整数可以指示可执行文件中的未初始化数据段的大小。
urlmon导入整数可以指示可执行文件是否链接到urlmon.dll文件。msvcrt导入整数可以指示可执行文件是否链接到msvcrt.dll文件。oleaut32导入整数可以指示可执行文件是否链接到oleaut32.dll文件。setupapi导入整数可以指示可执行文件是否链接到setupapi.dll文件。user32导入整数可以指示可执行文件是否链接到user32-import.dll文件。advapi32导入整数可以指示可执行文件是否链接到advapi.exe文件。shell32导入整数可以指示可执行文件是否链接到shell32-imports.dll文件。gdi32导入整数可以指示可执行文件是否链接到gdi32.dll文件。comdlg32导入整数可以指示可执行文件是否链接到comdlg32.dll文件。imm32导入整数可以指示可执行文件是否链接到imm32.dll文件。
如前所述,可执行文件可以为PE文件格式。图3示出PE文件格式的可执行文件300的示例。如图3所示,可执行文件300可以包括盘操作系统(DOS)驻留程序(stub)310。可执行文件300还可以包括文件头320。文件头320可以包括一个或多个元数据字段。例如,文件头320可以包括:指示意图在其上运行二进制的系统的机器字段、段数字段、时间戳字段、符号表指针字段、符号数字段、调试信息字段、可选头大小字段、图像文件重分配剥离字段、图像文件可执行图像字段、图像文件线数剥离字段、文件本地符号剥离字段、图像文件积极工作集调整(image-file-aggressive-working-set-trim)字段、图像文件字节保留低字段、图像文件32位机器字段、图像文件调试剥离字段、从交换运行的图像文件可去除字段、从交换运行的图像文件网字段、图像文件系统字段、图像文件动态链接库(DLL)字段、和/或仅有图像文件出现的系统(image-file-up-system-only)字段。
可执行文件300还可以包括可选头330。可选头330可以包括一个或多个元数据字段。例如,可选头330可以包括:主要链接器版本字段、次要链接器版本字段、代码大小字段、已初始化数据大小字段、未初始化数据大小字段、到代码入口点的偏移量字段、入口点地址字段、到代码基础的偏移量字段、数据基础字段、段对准字段、文件对准字段、主要操作系统版本字段、次要操作系统版本字段、主要图像版本字段、次要图像版本字段、主要子系统版本字段、次要子系统版本字段、32位视窗图形用户界面(GUI)应用字段、32位视窗版本值字段、图像大小字段、头大小字段、校验和字段、和本原图像子系统字段。
可选头330还可以包括:图像子系统视窗GUI字段、图像子系统视窗字符用户界面(CUI)字段、图像子系统OS/2-CUI字段、图像子系统POSIX-CUI字段、DLL特征字段、进程附接字段、线程分离字段、线程附接字段、进程分离字段、堆栈保留大小字段、堆栈提交大小字段、堆保留大小字段、堆提交大小字段、负载标记、和图像目录标记。
可执行文件300还可以包括数据目录340和段头350。段头350可以包括一个或多个元数据字段。例如,段头350可以包括:图像大小缩短字段、图像段头字段、虚拟地址字段、原始数据大小字段、到原始数据的指针字段、到重分配的指针字段、和特征字段,其可以包括一个或多个指示可执行文件300的一个或多个属性的标记。可执行文件300还可以包括:段1360(1)到段N360(n)。
图4示出用于在可移植可执行文件中检测恶意软件的方法。检查模块可以对多个已知洁净的可移植可执行文件的多个元数据字段进行检查(步骤410)。检查模块还可以对多个已知恶意的可移植可执行文件的多个元数据字段进行检查(步骤420)。检查模块可以对任意数量的已知洁净的可移植可执行文件和/或已知恶意的可移植可执行文件进行检查。例如,检查模块可以对数十、数百、数千、数十万、和/或数百万个可执行文件进行检查。检查模块还可以对在已知洁净的可移植可执行文件和/或已知恶意的可移植可执行文件中的任意数量元数据字段进行检查。在可执行文件已被检查之后,推导模块可以基于该检查推导指示恶意软件的元数据字段属性(步骤430)。
安全模块可以使用由推导模块推导出的信息来确定未知的可执行文件是否包含恶意软件。例如,安全模块可以接收未知的可执行文件(步骤440)。安全模块可以通过确定未知的可执行文件是否包含先前已识别的、指示恶意软件的元数据字段属性,来确定该未知的可执行文件是否包含恶意软件。
在一些实施例中,安全模块可以包括防病毒安全软件程序或是其一部分。根据至少一个实施例,客户端计算设备可以包括安全模块,并且该安全模块可以通过确定客户端计算设备上的未知文件是否包括恶意软件来对客户端计算设备进行保护。安全模块还可以确定即将下载到客户端计算设备的文件是否包括恶意软件。在其他实施例中,服务器或任何其他计算设备可以包括安全模块。
在一个示例中,检查模块检查了850,000个已知洁净的可执行文件和500,000个已知恶意的可执行文件。推导模块对在检查期间收集的信息进行处理,以确定指示恶意软件的头字段属性。基于推导模块推导出的信息,安全模块可以将大约50%-60%的恶意可执行文件识别为恶意,而返回低于0.5%的误肯定(false-positive)确定。本领域的普通技术人员不会期望这样的结果。
图5是能够实现此处描述和/或说明的一个或多个实施例的示例性计算系统510的框图。计算系统510宽泛地表示能够执行计算机可读指令的任何单或多处理器计算设备或系统。计算系统510的示例包括但不限于:工作站、笔记本电脑、客户端侧终端、服务器、分布式计算系统、手持设备、或任何其他的计算系统或设备。在其最基本的配置中,计算系统510可以包括至少一个处理器514和系统存储器516。
处理器514一般代表任何类型或形式的能够处理数据或解释和执行指令的处理单元。在某些实施例中,处理器514可以从软件应用或模块接收指令。这些指令可以使得处理器514来执行此处描述和/或说明的一个或多个示例性实施例的功能。例如,处理器514可以单独或与其他元件组合来执行检查、推导、接收、确定中的一个或多个和/或执行此处描述的步骤和/或作为执行检查、推导、接收、确定中的一个或多个和/或执行此处描述的步骤的装置。处理器514还可以执行此处描述和/或说明的任何其他步骤、方法、或过程和/或作为执行此处描述和/或说明的任何其他步骤、方法、或过程的装置。
系统存储器516一般代表任何类型或形式的能够存储数据和/或其他计算机可读指令的易失或非易失存储设备或介质。系统存储器516的示例包括但不限于:随机存取存储器(RAM)、只读存储器(ROM)、闪存、或任何其他适当的存储器设备。尽管不是必要,但在某些实施例中,计算系统510既可以包括易失存储器单元(例如,系统存储器516),也可以包括非易失存储设备(例如,如以下将要详细描述的主存储设备532)。
在某些实施例中,示例性计算系统510还可以包括除处理器514和系统存储器516之外的一个或多个组件或元件。例如,如图5所说明的,计算系统510可以包括:存储控制器518、输入/输出(I/O)控制器520、和通信接口522,其均可以经由通信基础设施512互连。通信基础设施512一般代表任何类型或形式的能够促成在计算设备的一个或多个组件之间通信的基础结构。通信基础设施512的示例包括但不限于通信总线(诸如ISA、PCI、PCIe或类似总线)和网络。
存储控制器518一般代表任何类型或形式的能够处理存储器或数据或控制在计算系统510的一个或多个组件之间的通信的设备。例如,在某些实施例中,存储控制器518可以经由通信基础设施512控制处理器514、系统存储器516、和I/O控制器520之间的通信。在某些实施例中,存储器控制器可以单独或与其他元件来执行此处描述和/或说明的一个或多个步骤或特征,诸如检查、推导、接收、确定和/或执行,和/或作为执行此处描述和/或说明的一个或多个步骤或特征的装置。
I/O控制器520一般代表任何类型或形式的能够协调和/或控制计算设备的输入和输出功能的模块。例如,在某些实施例中,I/O控制器可以控制或促进在计算系统510的一个或多个元件之间的数据传递,所述元件诸如处理器514、系统存储器516、通信接口522、显示适配器526、输入接口530、和存储器接口534。例如,I/O控制器520可以用来单独或与其他元件组合来执行检查、推导、接收、确定中的一个或多个和/或执行此处描述的步骤,和/或作为执行检查、推导、接收、确定中的一个或多个和/或执行此处描述的步骤的装置。I/O控制器520还可以用于执行本公开中阐述的其他步骤和特征和/或作为执行本公开中阐述的其他步骤和特征的装置。
通信接口522宽泛地表示任何形式或类型的能够促成在示例性计算系统510和一个或多个附加设备之间的通信的通信设备或适配器。例如,在某些实施例中,通信接口522可以促成在计算系统510和包括附加计算系统的专用或公共网络之间的通信。通信接口522的示例包括但不限于:有线网络接口(诸如网络接口卡)、无线网络接口(诸如无线网络接口卡)、调制解调器、和任何其他适当的接口。在至少一个实施例中,通信接口522可以经由到诸如因特网的网络的直接链路提供到远程服务器的直接连接。通信接口522还可以通过例如局域网(诸如以太网)、个人区域网、电话或有线电视网、蜂窝电话连接、卫星数据连接、或任何其他适当的连接,间接提供这样的连接。
在某些实施例中,通信接口522还可以表示主机适配器,其被配置为经由外部总线或通信信道促成在计算系统510和一个或多个附加网络或存储设备之间的通信。主机适配器的示例包括但不限于:SCSI主机适配器、USB主机适配器、IEEE594主机适配器、SATA和eSATA主机适配器、ATA和PATA主机适配器、光纤信道接口适配器、以太网适配器等。通信接口522还可以允许计算系统510进行分布式或远程计算。例如,通信接口522可以从远程设备接收指令,或将指令发送给远程设备来执行。在某些实施例中,通信接口522可以单独或与其他元件组合来执行检查、推导、接收、确定中的一个或多个和/或执行此处公开的步骤,和/或作为执行检查、推导、接收、确定中的一个或多个和/或执行此处公开的步骤的装置。通信接口522还可以用于执行本公开中阐述的其他步骤和特征和/或作为执行本公开中阐述的其他步骤和特征的装置。
如图5说明的,计算系统510还可以包括:经由显示适配器526连接到通信基础设施512的至少一个显示设备524。显示设备524一般代表任何类型或形式的能够视觉显示由显示适配器526转发的信息的设备。类似地,显示适配器526一般代表任何类型或形式的被配置为转发来自通信基础设施512(或如本领域所知的,来自帧缓存)的图形、文本、和其他数据以用于在显示设备524上显示的设备。
如图5说明的,示例性计算系统510还可以包括:经由输入接口530连接到通信基础设施512的至少一个输入设备528。输入设备528一般代表任何类型或形式的能够将计算机或人工生成的输入提供给示例性计算系统510的输入设备。输入设备528的示例包括但不限于:键盘、指示设备、语音识别设备、或任何其他输入设备。在至少一个实施例中,输入设备528可以单独或与其他元件组合来执行检查、推导、接收、确定中的一个或多个和/或执行此处公开的步骤和/或作为执行检查、推导、接收、确定中的一个或多个和/或执行此处公开的步骤的装置。输入设备528还可以用于执行本公开中阐述的其他步骤和特征和/或作为执行本公开中阐述的其他步骤和特征的装置。
如图5所说明的,示例性计算系统510还可以包括:经由存储接口534连接到通信基础设施512的主存储设备532和备份存储设备533。存储设备532和533一般代表任何类型或形式的能够存储数据和/或其他计算机可读指令的存储设备或介质。例如,存储设备532和533可以是磁盘驱动(例如,所谓的硬盘驱动)、软盘驱动、磁带驱动、光盘驱动、闪存驱动等。存储接口534一般代表任何类型或形式的用于在存储设备532和533以及计算系统510的其他组件之间传递数据的接口或设备。
在某些实施例中,可以将存储设备532和533配置为:从被配置为存储计算机软件、数据、或其他计算机可读信息的可移动存储单元进行读取或对其进行写入。适当可移动存储单元的示例包括但不限于:软盘、磁带、光盘、闪存设备等。存储设备532和533还可以包括其他类似的结构或设备,用于允许将计算机软件、数据、或其他计算机可读指令加载到计算系统510中。例如,可以将存储设备532和533配置为对软件、数据、或其他计算机可读信息进行读写。存储设备532和533还可以是计算系统510的一部分,或可以是经由其他接口系统访问的分立设备。
在某些实施例中,可以将此处公开的示例性文件系统存储在主存储设备532上,而将此处公开的示例性文件系统备份存储在备份存储设备533上。例如,存储设备532和533还可以单独或与其他元件组合来执行检查、推导、接收、确定中的一个或多个和/或执行此处公开的步骤和/或作为执行检查、推导、接收、确定中的一个或多个和/或执行此处公开的步骤的装置。存储设备532和533还可以用于执行本公开中阐述的其他步骤和特征和/或作为执行本公开中阐述的其他步骤和特征的装置。
很多其他设备或子系统可以连接到计算系统510。相反,为实践此处描述和/或说明的实施例,图5中说明的组件和设备不必都呈现。也可以用与图5所示不同的方式将以上引用的设备和子系统进行互连。计算系统510还可以采用任意数量的软件、固件、和/或硬件配置。例如,可以将此处公开的一个或多个示例性实施例作为计算机程序(也称为计算机软件、软件应用、计算机可读指令、或计算机控制逻辑)编码于计算机可读介质上。短语“计算机可读介质”一般指任何形式的能够存储或承载计算机可读指令的设备、载体、或介质。计算机可读介质的示例包括但不限于:诸如载波的传输型介质,以及物理介质,诸如磁存储介质(例如,硬盘驱动和软盘)、光存储介质(例如,CD或DVD-ROM)、电存储介质(例如,固态驱动和闪存介质)、以及其他分发系统。
包含计算机程序的计算机可读介质可以加载到计算系统510中。然后,可以将存储在计算机可读介质上的全部或部分计算机程序存储于系统存储器516和/或存储设备532和533的各部分中。当由处理器514执行时,加载到计算系统510中的计算机程序可以使得处理器514执行此处描述和/或说明的一个或多个示例性实施例的功能和/或作为执行此处描述和/或说明的一个或多个示例性实施例的功能的装置。附加地或替选地,可以用固件和/或硬件实现此处描述和/或说明的一个或多个示例性实施例。例如,可以将计算系统510配置为适合实现此处公开的一个或多个示例性实施例的专用集成电路(ASIC)。
图6是示例性网络架构600的框图,其中客户端系统610、620、和630和服务器640和645可以连接到网络650。客户端系统610、620、和630一般代表任何类型或形式的计算设备或系统,诸如图5中的示例性计算系统510。类似地,服务器640和645一般代表被配置为提供各种数据库服务和/或运行某些软件应用的计算设备或系统,诸如应用服务器或数据库服务器。网络650一般代表任何电信或计算机网络,例如包括:企业内联网、广域网(WAN)、局域网(LAN)、个人区域网(PAN)、或因特网。
如图6所说明的,一个或多个存储设备660(1)-(N)可以直接附接到服务器640。类似地,一个或多个存储设备670(1)-(N)可以直接附接到服务器645。存储设备660(1)-(N)和存储设备670(1)-(N)一般代表任何类型或形式的能够存储数据和/或其他计算机可读指令的存储设备或介质。在某些实施例中,存储设备660(1)-(N)和存储设备670(1)-(N)可以代表被配置为使用诸如NFS、SMB、或CIFS的各种协议与服务器640和645进行通信的网络附接存储(NAS)设备。
服务器640和645还可以连接到存储区域网络(SAN)构造680。SAN构造680一般代表任何类型或形式的能够促成在多个存储设备之间通信的计算机网络或结构。SAN构造680可以促成服务器640和645与多个存储设备690(1)-(N)和/或智能存储阵列695之间的通信。SAN构造680还可以用诸如设备690(1)-(N)和阵列695表现为到客户端系统610、620和630的本地附接设备的方式经由网络650和服务器640和645促成在客户端系统610、620和630以及存储设备690(1)-(N)和/或智能存储阵列695之间的通信。与存储设备660(1)-(N)和存储设备670(1)-(N)一样,存储设备690(1)-(N)和智能存储阵列695一般代表任何类型或形式的能够存储数据和/或其他计算机可读指令的存储设备或介质。
在某些实施例中,并参照图5的示例性计算系统510,诸如图5中通信接口522的通信接口可以用于提供每个客户端系统610、620、和630和网络650之间的互联性。客户端系统610、620、和630可以能够使用例如web浏览器或其他客户端软件来访问服务器640或645上的信息。这样的软件可以允许客户端系统610、620、和630访问服务器640、服务器645、存储设备660(1)-(N)、存储设备670(1)-(N)、存储设备690(1)-(N)、或智能存储阵列695所托管的数据。尽管图6描述了使用网络(诸如因特网)进行交换数据,但是此处描述和/或说明的实施例不限于因特网或任何特定的基于网络的环境。
在至少一个实施例中,可以将此处公开的一个或多个示例性实施例的全部或部分编码为计算机程序,并加载到服务器640、服务器645、存储设备660(1)-(N)、存储设备670(1)-(N)、存储设备690(1)-(N)、智能存储阵列695、或其任何组合上并由其执行。可以将此处公开的一个或多个示例性实施例的全部或部分编码为计算机程序,存储在服务器640中,由服务器645来运行,并通过网络650分布到客户端系统610、620、和630。因此,网络架构600可以单独或与其他元件结合来执行检查、推导、接收、确定中的一个或多个和/或执行此处公开的步骤和/或作为执行检查、推导、接收、确定中的一个或多个和/或执行此处公开的步骤的装置。网络架构600还可以用于执行本公开中阐述的其他步骤和特征和/或作为执行本公开中阐述的其他步骤和特征的装置。
如以上详细描述的,计算系统410和/或网络结构500的一个或多个组件可以单独或与其他元件组合来执行此处描述和/或说明的示例性方法的一个或多个步骤和/或作为执行此处描述和/或说明的示例性方法的一个或多个步骤的装置。例如,计算系统可以对多个已知洁净的可执行文件的多个元数据字段进行检查。计算系统还可以对多个已知恶意的可执行文件的多个元数据字段进行检查。计算系统可以基于从对多个已知洁净和已知恶意的可执行文件的多个元数据字段进行检查中获取的信息,推导出指示恶意软件的元数据字段属性。
在一些实施例中,计算系统可以接收未知的可执行文件。计算系统可以通过确定该未知的可执行文件是否包含指示恶意软件的元数据字段属性,来确定该未知的可执行文件是否包含恶意软件。在至少一个实施例中,如果未知的可执行文件包括恶意软件,则计算系统可以执行安全动作。
根据各种实施例,多个已知洁净的可执行文件可以包括可移植可执行文件,并且多个已知恶意的可执行文件可以包括可移植可执行文件。在至少一个实施例中,元数据字段属性可以包括头字段属性。根据某些实施例,头字段属性包括以下中的至少一个:调试段属性、导入属性、符号表属性、可选头属性、特征属性、图像子系统属性、链接器版本属性、大小属性、真实虚拟地址属性、入口点属性、代码段基础属性、对准属性、操作系统版本属性、图像版本属性、最低子系统版本属性、动态链接库特征属性、堆栈大小属性、堆大小属性、段数属性、无进出属性、线程级前瞻属性、和/或图像基础属性。
在一些实施例中,指示恶意软件的元数据字段属性包括在多个已知洁净的可执行文件和已知恶意的可执行文件中检查到的多个元数据字段的子集。在至少一个实施例中,指示恶意软件的元数据字段属性可以包括静态属性。在各种实施例中,推导指示恶意软件的元数据字段属性包括确定指示恶意软件的元数据字段属性的至少一个组合。根据至少一个实施例,推导指示恶意软件的元数据字段属性包括确定指示恶意软件的第一元数据字段属性是比指示恶意软件的第二元数据字段属性更强的恶意软件指示符。
在一些实施例中,指示恶意软件的元数据字段属性包括以下中的至少一个:调试段属性、符号表属性、图像子系统属性、链接器版本属性、真实虚拟地址属性、操作系统版本属性、图像版本属性、最低子系统属性、动态链接库特征属性、堆栈大小属性、堆大小属性、和/或段数属性。
在一些实施例中,指示恶意软件的元数据字段属性包括以下中的至少两个:段对准整数、文件对准整数、主要操作系统版本整数、次要操作系统版本整数、主要图像版本整数、次要图像版本整数、主要子系统版本整数、次要子系统版本整数、图像大小整数、头大小整数、图形用户界面整数、基于字符的用户界面整数、堆栈保留大小整数、堆栈提交大小整数、堆保留大小整数、堆提交大小整数、符号表指针整数、符号数整数、调试段整数、主要链接器版本整数、次要链接器版本整数、代码段大小整数、已初始化数据大小整数、未初始化数据大小整数、真实虚拟地址(RVA)入口点整数、代码段的RVA开始整数、代码段的RVA基础整数、数据段的RVA开始整数、图像基础整数、具有导入整数、具有延迟的导入整数、外部绑定设施整数、无进出整数、urlmon导入整数、线程级前瞻整数、msvcrt导入整数、oleaut32导入整数、setupapi导入整数、user32导入整数、advapi32导入整数、shell32导入整数、gdi32导入整数、comdlg32导入整数、imm32导入整数、具有证书整数、节点整数、和/或段数整数。
根据某些实施例,系统可以包括:被编程为对多个已知洁净的可执行文件的多个头字段进行检查和对多个已知恶意的可执行文件的多个头字段进行检查的检查模块。系统还可以包括:被配置为存储由检查模块获取的信息的数据库,以及被编程为基于从检查模块获取的信息推导出指示恶意软件的头字段属性的推导模块。
在某些实施例中,系统可以包括安全系统,其被编程为接收未知的可执行文件,和/或通过确定该未知可执行文件是否包括指示恶意软件的头字段属性来确定该未知的可执行文件是否包含恶意软件。在至少一个实施例中,安全模块可以进一步被编程为:如果该未知的可执行文件包括恶意软件,则执行安全动作。
尽管以上公开使用了特定的框图、流程图和示例阐述了各种实施例,但是可以使用很宽范围的硬件、软件、或固件(或其任何组合)配置单独和/或共同地实现此处描述和/或说明的每个框图组件、流程图步骤、操作、和/或组件。另外,应当将对包含在其他组件内的组件的任何公开认为本质上是示例性的,因为可以实施很多其他结构来实现同样的功能。
此处描述和/或说明的过程参数和步骤的顺序仅是示例性的,并且可以根据需要变化。例如,尽管可以用特定顺序显示或讨论此处说明和/或描述的步骤,但是不必用已说明或讨论的顺序来执行这些步骤。此处描述和/或说明的各种示例性方法还可以省略此处描述或说明的一个或多个步骤,或包括公开内容以外的附加步骤。
另外,尽管已在全功能计算系统的背景下描述和/或说明了各种实施例,但是可以将这些示例性实施例中的一个或多个分布为各种形式的程序产品,而不论实际用于执行该分布的特定类型的计算机可读介质。还可以使用执行特定任务的软件模块实现此处公开的实施例。这些软件模块可以包括:可以存储在计算机可读存储介质上或计算系统中的脚本、批处理、或其他可执行文件。在一些实施例中,这些软件模块可以对计算系统进行配置,以执行此处公开的一个或多个示例性实施例。
已提供了以上描述,以使得本领域的技术人员最佳地利用此处描述的示例性实施例的各个方面。该示例性描述不是意图穷尽或受限于公开的任何特定形式。在不偏离本公开的精神和范围的前提下,很多修改和变化都是可能的。期望此处描述的实施例在所有方面被认为是说明性而非限制性的,并且参考所附权利要求及其等效来确定本公开的范围。
除非另外注明,否则如在说明书和权利要求中使用的,不加数量词限定的项应被解释为意指“至少一个”项。另外,为了使用上的简便,如在说明和权利要求中使用的词“包括”和“具有”可互换,并具有与词“包含”相同的含义。
Claims (18)
1.一种用于识别指示恶意软件的头字段属性的计算机实现的方法,所述计算机实现的方法包括:
检查多个已知洁净的可执行文件的多个头字段;
检查多个已知恶意的可执行文件的多个头字段;
通过使用机器学习算法来分析通过对所述多个已知洁净和已知恶意的可执行文件的所述多个头字段进行检查而获取的属性信息,来识别指示恶意软件的头字段属性,
将所识别的头字段属性的列表存储在恶意软件元数据字段数据库中,其中:
所述恶意软件元数据字段数据库包括指示如何使用所述头字段属性来确定未知可执行文件是否包括恶意软件的信息,
所述恶意软件元数据字段数据库包括阈值信息,如果与在所述恶意软件元数据字段数据库中列出的头字段属性匹配的所述未知可执行文件的头字段属性的数目大于或等于阈值数目,则所述阈值信息指示所述未知可执行文件包括恶意软件。
2.如权利要求1所述的计算机实现的方法,进一步包括:
接收未知的可执行文件;
通过确定与在所述恶意软件元数据字段数据库中列出的头字段属性匹配的所接收的所述未知可执行文件的头字段属性的数目是否是大于或等于阈值数目,来确定所接收的所述未知的可执行文件是否包含恶意软件。
3.如权利要求2所述的计算机实现的方法,进一步包括:
当所接收的所述未知的可执行文件包括恶意软件时,通过将所接收的所述未知的可执行文件添加到恶意软件文件的列表来执行安全动作。
4.如权利要求1所述的计算机实现的方法,其中:
识别指示恶意软件的头字段属性包括确定指示恶意软件的头字段属性的至少一个组合。
5.如权利要求4所述的计算机实现的方法,其中指示恶意软件的所述头字段属性的组合进一步包括以下中的至少一个:
图像子系统属性;
真实虚拟地址属性;
最低子系统版本属性;
动态链接库特征属性;
无进出属性;
线程级前瞻属性。
6.如权利要求4所述的计算机实现的方法,其中指示恶意软件的所述头字段属性的组合包括:在所述多个已知洁净的可执行文件和已知恶意的可执行文件中检查到的所述多个头字段的属性的子集;
指示恶意软件的所述头字段属性的组合进一步包括真实虚拟地址属性。
7.如权利要求4所述的计算机实现的方法,其中指示恶意软件的所述头字段属性的组合进一步包括用户界面整数。
8.如权利要求4所述的计算机实现的方法,其中所述指示恶意软件的头字段属性的组合包括至少一个导入整数。
9.如权利要求4所述的计算机实现的方法,其中所述指示恶意软件的头字段属性的组合包括节点整数。
10.一种用于识别指示恶意软件的头字段属性的计算机实现的方法,所述计算机实现的方法包括:
检查多个已知洁净的可移植可执行文件的多个头字段;
检查多个已知恶意的可移植可执行文件的多个头字段;
通过使用机器学习算法来分析通过对所述多个已知洁净和已知恶意的可移植可执行文件的所述多个头字段进行检查而获取的属性信息,来识别指示恶意软件的头字段属性,其中识别指示恶意软件的头字段属性包括:确定指示包括节点整数的恶意软件的头字段属性的至少一个组合;
接收未知的可执行文件;
通过确定所述未知的可执行文件是否包含指示包括所述节点整数的恶意软件的所述头字段属性的组合,来确定所述未知的可执行文件是否包含恶意软件。
11.如权利要求10所述的计算机实现的方法,其中指示恶意软件的所述头字段属性的组合进一步包括以下中的至少一个:
图像子系统属性;
真实虚拟地址属性;
最低子系统版本属性;
动态链接库特征属性。
12.如权利要求10所述的计算机实现的方法,其中指示恶意软件的所述头字段属性的组合进一步包括以下中的至少两个:
图形用户界面整数;
基于字符的用户界面整数;
真实虚拟地址入口点整数;
代码段的真实虚拟地址开始整数;
代码段的真实虚拟地址基础整数;
数据段的真实虚拟地址开始整数;
具有延迟的导入整数;
外部绑定设施整数;
无进出整数;
urlmon导入整数;
线程级前瞻整数;
msvcrt导入整数;
oleaut32导入整数;
setupapi导入整数;
user32导入整数;
advapi32导入整数;
shell32导入整数;
gdi32导入整数;
comdlg32导入整数;
imm32导入整数;
具有证书整数;
节点整数。
13.如权利要求10所述的计算机实现的方法,进一步包括:
如果所述未知的可执行文件包括恶意软件,则执行安全动作,其中所述安全动作包括以下中的至少一个:
将所述未知的可执行文件报告给安全软件销售商;
将所述未知的可执行文件添加到恶意软件文件列表;以及
对所述未知的可执行文件进行隔离。
14.一种系统,包括:
检查模块,被编程为:
检查多个已知洁净的可执行文件的多个头字段;
检查多个已知恶意的可执行文件的多个头字段;
数据库,与所述检查模块进行通信,并被配置为存储所述检查模块获取的信息;
推导模块,被编程为:使用机器学习算法,通过分析从所述检查模块获取的信息,来识别指示恶意软件的头字段属性,其中所述推导模块被编程为:通过确定指示包括节点整数的恶意软件的头字段属性的至少一个组合,来识别指示恶意软件的头字段属性;
至少一个处理器。
15.如权利要求14所述的系统,进一步包括:
安全模块,被编程为:
接收未知的可执行文件;
通过确定所述未知的可执行文件是否包含指示包括所述节点整数的恶意软件的所述头字段属性的组合,来确定所述未知的可执行文件是否包含恶意软件。
16.如权利要求15所述的系统,其中所述安全模块进一步被编程为:当所述未知的可执行文件包括恶意软件时,将所述未知的可执行文件报告给安全软件销售商。
17.如权利要求14所述的系统,其中所述头字段属性的组合进一步包括以下中的至少一个:
图像子系统属性;
真实虚拟地址属性;
最低子系统版本属性;
动态链接库特征属性;
无进出属性;
线程级前瞻属性。
18.如权利要求14所述的系统,其中指示恶意软件的所述头字段属性的组合进一步包括动态链接库特征属性。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/338,877 | 2008-12-18 | ||
US12/338,877 US8181251B2 (en) | 2008-12-18 | 2008-12-18 | Methods and systems for detecting malware |
CN200910254092A CN101753570A (zh) | 2008-12-18 | 2009-12-18 | 用于检测恶意软件的方法和系统 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910254092A Division CN101753570A (zh) | 2008-12-18 | 2009-12-18 | 用于检测恶意软件的方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105095760A true CN105095760A (zh) | 2015-11-25 |
Family
ID=41859811
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510459619.3A Pending CN105095760A (zh) | 2008-12-18 | 2009-12-18 | 用于检测恶意软件的方法和系统 |
CN200910254092A Pending CN101753570A (zh) | 2008-12-18 | 2009-12-18 | 用于检测恶意软件的方法和系统 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910254092A Pending CN101753570A (zh) | 2008-12-18 | 2009-12-18 | 用于检测恶意软件的方法和系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8181251B2 (zh) |
EP (1) | EP2199941B1 (zh) |
JP (2) | JP2010146566A (zh) |
CN (2) | CN105095760A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109997138A (zh) * | 2016-09-13 | 2019-07-09 | 赛门铁克公司 | 用于检测计算设备上的恶意进程的系统和方法 |
CN110495152A (zh) * | 2017-03-30 | 2019-11-22 | 爱维士软件有限责任公司 | 基于存在的计算机生成的字符串的应用中的恶意软件检测 |
CN110765444A (zh) * | 2019-09-23 | 2020-02-07 | 云深互联(北京)科技有限公司 | 一种企业浏览器访问权限配置方法和装置 |
CN110826058A (zh) * | 2018-08-13 | 2020-02-21 | 瞻博网络公司 | 基于用户交互的恶意软件检测 |
Families Citing this family (75)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7051322B2 (en) | 2002-12-06 | 2006-05-23 | @Stake, Inc. | Software analysis framework |
US8613080B2 (en) | 2007-02-16 | 2013-12-17 | Veracode, Inc. | Assessment and analysis of software security flaws in virtual machines |
US20100192222A1 (en) * | 2009-01-23 | 2010-07-29 | Microsoft Corporation | Malware detection using multiple classifiers |
KR101122650B1 (ko) * | 2010-04-28 | 2012-03-09 | 한국전자통신연구원 | 정상 프로세스에 위장 삽입된 악성코드 탐지 장치, 시스템 및 방법 |
JP5135389B2 (ja) * | 2010-06-30 | 2013-02-06 | 株式会社日立情報システムズ | 情報漏えいファイル検知装置、及びその方法とプログラム |
EP2418600A1 (en) * | 2010-08-11 | 2012-02-15 | Thomson Licensing | Malware protection scheme |
US9218461B2 (en) | 2010-12-01 | 2015-12-22 | Cisco Technology, Inc. | Method and apparatus for detecting malicious software through contextual convictions |
US9088601B2 (en) | 2010-12-01 | 2015-07-21 | Cisco Technology, Inc. | Method and apparatus for detecting malicious software through contextual convictions, generic signatures and machine learning techniques |
JP5961183B2 (ja) * | 2010-12-01 | 2016-08-02 | シスコ テクノロジー,インコーポレイテッド | 文脈上の確からしさ、ジェネリックシグネチャ、および機械学習法を用いて悪意のあるソフトウェアを検出する方法 |
KR20120072120A (ko) * | 2010-12-23 | 2012-07-03 | 한국전자통신연구원 | 악성 파일 진단 장치 및 방법, 악성 파일 감시 장치 및 방법 |
RU2454714C1 (ru) * | 2010-12-30 | 2012-06-27 | Закрытое акционерное общество "Лаборатория Касперского" | Система и способ повышения эффективности обнаружения неизвестных вредоносных объектов |
JP2012150658A (ja) * | 2011-01-19 | 2012-08-09 | Lac Co Ltd | 情報処理装置、システム、通信監視方法およびプログラム |
ES2755780T3 (es) | 2011-09-16 | 2020-04-23 | Veracode Inc | Análisis estático y de comportamiento automatizado mediante la utilización de un espacio aislado instrumentado y clasificación de aprendizaje automático para seguridad móvil |
US8875293B2 (en) * | 2011-09-22 | 2014-10-28 | Raytheon Company | System, method, and logic for classifying communications |
US9286063B2 (en) | 2012-02-22 | 2016-03-15 | Veracode, Inc. | Methods and systems for providing feedback and suggested programming methods |
US9020652B2 (en) * | 2012-04-13 | 2015-04-28 | The Boeing Company | Event processing system for an electrical power system |
US9392003B2 (en) | 2012-08-23 | 2016-07-12 | Raytheon Foreground Security, Inc. | Internet security cyber threat reporting system and method |
CN102867038A (zh) * | 2012-08-30 | 2013-01-09 | 北京奇虎科技有限公司 | 文件类型的确定方法和装置 |
US9292688B2 (en) * | 2012-09-26 | 2016-03-22 | Northrop Grumman Systems Corporation | System and method for automated machine-learning, zero-day malware detection |
US11126720B2 (en) | 2012-09-26 | 2021-09-21 | Bluvector, Inc. | System and method for automated machine-learning, zero-day malware detection |
US20140283046A1 (en) * | 2013-03-13 | 2014-09-18 | Mcafee, Inc. | Anti-malware scanning of database tables |
US10649970B1 (en) * | 2013-03-14 | 2020-05-12 | Invincea, Inc. | Methods and apparatus for detection of functionality |
US10713358B2 (en) * | 2013-03-15 | 2020-07-14 | Fireeye, Inc. | System and method to extract and utilize disassembly features to classify software intent |
US9280369B1 (en) | 2013-07-12 | 2016-03-08 | The Boeing Company | Systems and methods of analyzing a software component |
US9852290B1 (en) | 2013-07-12 | 2017-12-26 | The Boeing Company | Systems and methods of analyzing a software component |
US9336025B2 (en) | 2013-07-12 | 2016-05-10 | The Boeing Company | Systems and methods of analyzing a software component |
US9396082B2 (en) | 2013-07-12 | 2016-07-19 | The Boeing Company | Systems and methods of analyzing a software component |
US8943592B1 (en) * | 2013-07-15 | 2015-01-27 | Eset, Spol. S.R.O. | Methods of detection of software exploitation |
US10986103B2 (en) | 2013-07-31 | 2021-04-20 | Micro Focus Llc | Signal tokens indicative of malware |
US9798981B2 (en) | 2013-07-31 | 2017-10-24 | Entit Software Llc | Determining malware based on signal tokens |
CN104424437B (zh) * | 2013-08-28 | 2018-07-10 | 贝壳网际(北京)安全技术有限公司 | 多文件样本的测试方法、装置和客户端 |
RU2568285C2 (ru) | 2013-09-30 | 2015-11-20 | Закрытое акционерное общество "Лаборатория Касперского" | Способ и система анализа работы правил обнаружения программного обеспечения |
US9479521B2 (en) | 2013-09-30 | 2016-10-25 | The Boeing Company | Software network behavior analysis and identification system |
EP2854065B1 (en) * | 2013-09-30 | 2018-06-06 | AO Kaspersky Lab | A system and method for evaluating malware detection rules |
US9407644B1 (en) * | 2013-11-26 | 2016-08-02 | Symantec Corporation | Systems and methods for detecting malicious use of digital certificates |
US9262296B1 (en) * | 2014-01-31 | 2016-02-16 | Cylance Inc. | Static feature extraction from structured files |
CN103944757B (zh) * | 2014-04-11 | 2017-11-10 | 珠海市君天电子科技有限公司 | 网络异常检测的方法和装置 |
US9548988B1 (en) | 2014-08-18 | 2017-01-17 | Symantec Corporation | Systems and methods for attributing potentially malicious email campaigns to known threat groups |
US9762593B1 (en) | 2014-09-09 | 2017-09-12 | Symantec Corporation | Automatic generation of generic file signatures |
US9367685B2 (en) * | 2014-09-30 | 2016-06-14 | Juniper Networks, Inc. | Dynamically optimizing performance of a security appliance |
US9754106B2 (en) * | 2014-10-14 | 2017-09-05 | Symantec Corporation | Systems and methods for classifying security events as targeted attacks |
US9571510B1 (en) | 2014-10-21 | 2017-02-14 | Symantec Corporation | Systems and methods for identifying security threat sources responsible for security events |
WO2016081346A1 (en) | 2014-11-21 | 2016-05-26 | Northrup Grumman Systems Corporation | System and method for network data characterization |
US9330264B1 (en) * | 2014-11-26 | 2016-05-03 | Glasswall (Ip) Limited | Statistical analytic method for the determination of the risk posed by file based content |
CN105488405A (zh) * | 2014-12-25 | 2016-04-13 | 哈尔滨安天科技股份有限公司 | 一种基于pdb调试信息的恶意代码分析方法及系统 |
US9813437B2 (en) | 2015-06-15 | 2017-11-07 | Symantec Corporation | Systems and methods for determining malicious-download risk based on user behavior |
US10642976B2 (en) * | 2015-06-27 | 2020-05-05 | Mcafee, Llc | Malware detection using a digital certificate |
US9740862B1 (en) * | 2015-06-29 | 2017-08-22 | Juniper Networks, Inc. | Identifying malware based on a relationship between a downloader file and a downloaded file |
US9690938B1 (en) | 2015-08-05 | 2017-06-27 | Invincea, Inc. | Methods and apparatus for machine learning based malware detection |
RU2606559C1 (ru) * | 2015-10-22 | 2017-01-10 | Акционерное общество "Лаборатория Касперского" | Система и способ оптимизации антивирусной проверки файлов |
CN106709337A (zh) * | 2015-11-18 | 2017-05-24 | 中兴通讯股份有限公司 | 一种恶意捆绑软件的处理方法和装置 |
JP2017102566A (ja) * | 2015-11-30 | 2017-06-08 | 日本電信電話株式会社 | 不正ファイル検知装置、不正ファイル検知方法、および、不正ファイル検知プログラム |
RU2679783C2 (ru) * | 2015-12-18 | 2019-02-12 | Закрытое акционерное общество "Лаборатория Касперского" | Способ создания сценария популярных событий активации |
US9836603B2 (en) | 2015-12-30 | 2017-12-05 | Symantec Corporation | Systems and methods for automated generation of generic signatures used to detect polymorphic malware |
WO2017146094A1 (ja) * | 2016-02-24 | 2017-08-31 | 日本電信電話株式会社 | 攻撃コード検知装置、攻撃コード検知方法及び攻撃コード検知プログラム |
US10028145B2 (en) | 2016-04-15 | 2018-07-17 | Microsoft Technology Licensing, Llc | Blocking undesirable communications in voice over internet protocol systems |
US10116680B1 (en) | 2016-06-21 | 2018-10-30 | Symantec Corporation | Systems and methods for evaluating infection risks based on profiled user behaviors |
WO2017223294A1 (en) | 2016-06-22 | 2017-12-28 | Invincea, Inc. | Methods and apparatus for detecting whether a string of characters represents malicious activity using machine learning |
US10454961B2 (en) * | 2016-11-02 | 2019-10-22 | Cujo LLC | Extracting encryption metadata and terminating malicious connections using machine learning |
US11537713B2 (en) * | 2017-08-02 | 2022-12-27 | Crashplan Group Llc | Ransomware attack onset detection |
US10929534B2 (en) * | 2017-10-18 | 2021-02-23 | AO Kaspersky Lab | System and method detecting malicious files using machine learning |
US11240275B1 (en) * | 2017-12-28 | 2022-02-01 | Fireeye Security Holdings Us Llc | Platform and method for performing cybersecurity analyses employing an intelligence hub with a modular architecture |
US11271955B2 (en) | 2017-12-28 | 2022-03-08 | Fireeye Security Holdings Us Llc | Platform and method for retroactive reclassification employing a cybersecurity-based global data store |
US10826931B1 (en) * | 2018-03-29 | 2020-11-03 | Fireeye, Inc. | System and method for predicting and mitigating cybersecurity system misconfigurations |
US10742670B1 (en) * | 2018-04-18 | 2020-08-11 | NortonLifeLock Inc. | Detecting and preventing execution of a malicious computer application using utility driven graph summarization |
US10846403B2 (en) * | 2018-05-15 | 2020-11-24 | International Business Machines Corporation | Detecting malicious executable files by performing static analysis on executable files' overlay |
US10853489B2 (en) * | 2018-10-19 | 2020-12-01 | EMC IP Holding Company LLC | Data-driven identification of malicious files using machine learning and an ensemble of malware detection procedures |
CN109543408B (zh) * | 2018-10-29 | 2021-10-12 | 卓望数码技术(深圳)有限公司 | 一种恶意软件识别方法和系统 |
US11403411B2 (en) * | 2018-11-20 | 2022-08-02 | Cisco Technology, Inc. | Unstructured data sensitivity inference for file movement tracking in a network |
US11196766B2 (en) * | 2019-03-21 | 2021-12-07 | Red Hat, Inc. | Detecting denial of service attacks in serverless computing |
CN110135152B (zh) * | 2019-03-28 | 2021-07-02 | 江苏通付盾信息安全技术有限公司 | 应用程序攻击检测方法及装置 |
CN110147655A (zh) * | 2019-03-28 | 2019-08-20 | 江苏通付盾信息安全技术有限公司 | 应用程序的安全防护系统及方法 |
CN110569403B (zh) * | 2019-09-11 | 2021-11-02 | 腾讯科技(深圳)有限公司 | 一种字符串提取的方法以及相关装置 |
EP4085363A1 (en) * | 2020-01-05 | 2022-11-09 | British Telecommunications public limited company | Code-based malware detection |
US20230297687A1 (en) * | 2022-03-21 | 2023-09-21 | Vmware, Inc. | Opportunistic hardening of files to remediate security threats posed by malicious applications |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060101334A1 (en) * | 2004-10-21 | 2006-05-11 | Trend Micro, Inc. | Controlling hostile electronic mail content |
CN101281571A (zh) * | 2008-04-22 | 2008-10-08 | 白杰 | 防御未知病毒程序的方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002041173A (ja) * | 2000-07-18 | 2002-02-08 | Moan Kokusai Kofun Yugenkoshi | プログラムファイル認証方法 |
US7263616B1 (en) * | 2000-09-22 | 2007-08-28 | Ge Medical Systems Global Technology Company, Llc | Ultrasound imaging system having computer virus protection |
GB2391965B (en) * | 2002-08-14 | 2005-11-30 | Messagelabs Ltd | Method of, and system for, heuristically detecting viruses in executable code |
WO2005103895A1 (ja) * | 2004-04-26 | 2005-11-03 | Incorporated National University Iwate University | コンピュータウィルス固有情報抽出装置、コンピュータウィルス固有情報抽出方法及びコンピュータウィルス固有情報抽出プログラム |
US8516583B2 (en) * | 2005-03-31 | 2013-08-20 | Microsoft Corporation | Aggregating the knowledge base of computer systems to proactively protect a computer from malware |
WO2006119509A2 (en) * | 2005-05-05 | 2006-11-09 | Ironport Systems, Inc. | Identifying threats in electronic messages |
GB0513375D0 (en) * | 2005-06-30 | 2005-08-03 | Retento Ltd | Computer security |
US20070056035A1 (en) * | 2005-08-16 | 2007-03-08 | Drew Copley | Methods and systems for detection of forged computer files |
US20080134326A2 (en) * | 2005-09-13 | 2008-06-05 | Cloudmark, Inc. | Signature for Executable Code |
JP4159100B2 (ja) * | 2006-04-06 | 2008-10-01 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 情報処理装置による通信を制御する方法およびプログラム |
US20090013405A1 (en) * | 2007-07-06 | 2009-01-08 | Messagelabs Limited | Heuristic detection of malicious code |
KR100938672B1 (ko) * | 2007-11-20 | 2010-01-25 | 한국전자통신연구원 | 악성 코드에 의해 삽입된 동적 연결 라이브러리 검출 장치 및 방법 |
KR100942795B1 (ko) * | 2007-11-21 | 2010-02-18 | 한국전자통신연구원 | 악성프로그램 탐지장치 및 그 방법 |
CN101316171B (zh) * | 2008-06-30 | 2010-12-08 | 成都市华为赛门铁克科技有限公司 | 病毒防范方法和装置 |
-
2008
- 2008-12-18 US US12/338,877 patent/US8181251B2/en active Active
-
2009
- 2009-12-14 EP EP09179153.3A patent/EP2199941B1/en active Active
- 2009-12-17 JP JP2009286595A patent/JP2010146566A/ja active Pending
- 2009-12-18 CN CN201510459619.3A patent/CN105095760A/zh active Pending
- 2009-12-18 CN CN200910254092A patent/CN101753570A/zh active Pending
-
2015
- 2015-05-20 JP JP2015102581A patent/JP6129897B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060101334A1 (en) * | 2004-10-21 | 2006-05-11 | Trend Micro, Inc. | Controlling hostile electronic mail content |
CN101281571A (zh) * | 2008-04-22 | 2008-10-08 | 白杰 | 防御未知病毒程序的方法 |
Non-Patent Citations (1)
Title |
---|
PETER SZOR: "《The Art of Computer Virus Research and Defence》", 13 February 2005 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109997138A (zh) * | 2016-09-13 | 2019-07-09 | 赛门铁克公司 | 用于检测计算设备上的恶意进程的系统和方法 |
CN109997138B (zh) * | 2016-09-13 | 2023-07-14 | Ca公司 | 用于检测计算设备上的恶意进程的系统和方法 |
CN110495152A (zh) * | 2017-03-30 | 2019-11-22 | 爱维士软件有限责任公司 | 基于存在的计算机生成的字符串的应用中的恶意软件检测 |
CN110826058A (zh) * | 2018-08-13 | 2020-02-21 | 瞻博网络公司 | 基于用户交互的恶意软件检测 |
US11880458B2 (en) | 2018-08-13 | 2024-01-23 | Juniper Networks, Inc. | Malware detection based on user interactions |
CN110826058B (zh) * | 2018-08-13 | 2024-03-29 | 瞻博网络公司 | 基于用户交互的恶意软件检测的设备、方法、介质 |
CN110765444A (zh) * | 2019-09-23 | 2020-02-07 | 云深互联(北京)科技有限公司 | 一种企业浏览器访问权限配置方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
JP6129897B2 (ja) | 2017-05-17 |
US8181251B2 (en) | 2012-05-15 |
EP2199941B1 (en) | 2017-06-21 |
EP2199941A2 (en) | 2010-06-23 |
US20100162395A1 (en) | 2010-06-24 |
CN101753570A (zh) | 2010-06-23 |
JP2010146566A (ja) | 2010-07-01 |
JP2015181031A (ja) | 2015-10-15 |
EP2199941A3 (en) | 2012-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105095760A (zh) | 用于检测恶意软件的方法和系统 | |
US9571509B1 (en) | Systems and methods for identifying variants of samples based on similarity analysis | |
US8479291B1 (en) | Systems and methods for identifying polymorphic malware | |
US8725702B1 (en) | Systems and methods for repairing system files | |
CN101777062B (zh) | 场境感知的实时计算机保护系统和方法 | |
US9552249B1 (en) | Systems and methods for troubleshooting errors within computing tasks using models of log files | |
EP2807598B1 (en) | Identifying trojanized applications for mobile environments | |
CN109074452B (zh) | 用于生成绊网文件的系统和方法 | |
CN102067148B (zh) | 用于确定文件分类的方法及系统 | |
CN111382434B (zh) | 用于检测恶意文件的系统和方法 | |
US8561180B1 (en) | Systems and methods for aiding in the elimination of false-positive malware detections within enterprises | |
US8336100B1 (en) | Systems and methods for using reputation data to detect packed malware | |
CN108701188A (zh) | 响应于检测潜在勒索软件以用于修改文件备份的系统和方法 | |
CN103354931A (zh) | 用于查找反恶意软件元数据的系统和方法 | |
US9792436B1 (en) | Techniques for remediating an infected file | |
CN104769598A (zh) | 用于检测非法应用程序的系统和方法 | |
US8321940B1 (en) | Systems and methods for detecting data-stealing malware | |
US11275835B2 (en) | Method of speeding up a full antivirus scan of files on a mobile device | |
CN103729169A (zh) | 用于确定待迁移文件范围的方法和装置 | |
CN103109295A (zh) | 创建在恶意软件检测中使用的定制化置信带的系统和方法 | |
EP3798883A1 (en) | System and method for generating and storing forensics-specific metadata | |
US9519780B1 (en) | Systems and methods for identifying malware | |
US10339308B1 (en) | Systems and methods for remediating computer reliability issues | |
US8402545B1 (en) | Systems and methods for identifying unique malware variants | |
US10366076B1 (en) | Systems and methods for repairing corrupted data segments in deduplicated data systems |
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: 20151125 |
|
WD01 | Invention patent application deemed withdrawn after publication |