CN106133741B - 用于响应于检测可疑行为来扫描打包程序的系统和方法 - Google Patents
用于响应于检测可疑行为来扫描打包程序的系统和方法 Download PDFInfo
- Publication number
- CN106133741B CN106133741B CN201580006884.4A CN201580006884A CN106133741B CN 106133741 B CN106133741 B CN 106133741B CN 201580006884 A CN201580006884 A CN 201580006884A CN 106133741 B CN106133741 B CN 106133741B
- Authority
- CN
- China
- Prior art keywords
- program
- packaged
- packing
- suspicious actions
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
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
-
- 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/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- 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/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种用于响应于检测可疑行为来扫描打包程序的计算机实现的方法,所述方法可包括(1)执行打包程序,所述打包程序可包括(i)已经被混淆在所述打包程序内的恶意代码以及(ii)解包代码,当所述打包程序被执行时,所述解包代码去混淆并且执行所述恶意代码,(2)在所述打包程序正执行时监视所述打包程序如何运行,(3)在监视所述打包程序如何运行时,检测所述恶意代码的可疑行为,所述可疑行为指示所述解包代码已经去混淆并且执行所述恶意代码,以及(4)响应于检测所述恶意代码的所述可疑行为,对所述打包程序执行安全操作。还公开了各种其他方法、系统和计算机可读介质。
Description
背景技术
许多现有抗病毒技术通过检测或识别与已知的恶意程序相关联的唯一数字签名来检测恶意程序(“恶意软件”),因此恶意软件作者已经尝试通过生成同一恶意程序的数以千计或可能数以百万计的独特变型来扩散恶意软件。恶意软件作者经常通过将恶意程序打包(例如,压缩、加密和/或以其他方式混淆)在新程序(称为“打包程序”)内来创建恶意程序的独特变型。当打包程序被执行时,打包程序内的附加代码可解包(例如,解压和/或解密),随后执行已混淆的恶意程序。
遗憾的是,这种打包过程可使得恶意程序能够逃避现有抗病毒技术的检测,因为现有抗病毒技术可能直到安全系统供应商将其签名数据库更新为包括每个独特打包程序的数字签名之后才能够识别内部已经混淆有恶意程序的打包程序。因此,本公开内容明确了对用于检测混淆在打包程序内的恶意程序的另外的以及改进的系统和方法的需求。
发明内容
如下文将更详细地描述,本公开整体涉及用于响应于检测可疑行为来扫描打包程序的系统和方法。在一个例子中,一种用于执行这种任务的计算机实现的方法可包括:(1)执行打包程序,该打包程序包括(i)已经被混淆在该打包程序内的恶意代码,以及(ii)解包代码,当打包程序被执行时,该解包代码去混淆并且执行恶意代码,(2)在打包程序正执行时监视打包程序如何运行,(3)在监视打包程序如何运行时检测恶意代码的可疑行为,该可疑行为指示解包代码已经去混淆并且执行恶意代码,以及(4)响应于检测恶意代码的可疑行为,对打包程序执行安全操作。
在一些实施例中,对打包程序执行安全操作的步骤可包括在打包程序正执行时扫描打包程序的存储器的至少一部分以查找至少一个恶意软件签名。另外,用于响应于检测可疑行为来扫描打包程序的该计算机实现的方法还可包括接收扫描标准,该扫描标准指定将触发扫描打包程序的存储器以查找至少一个恶意软件签名的至少一个可疑行为。
在一个例子中,监视打包程序如何运行的步骤可包括监视打包程序如何针对指定的可疑行为运行,检测可疑行为的步骤可包括检测指定的可疑行为,对打包程序执行安全操作的步骤可包括响应于检测指定的可疑行为来扫描打包程序的存储器以查找恶意软件签名。
在一些例子中,扫描标准还可指定应当响应于检测指定的可疑行为来扫描的打包程序的存储器的一部分,并且扫描打包程序的存储器以查找恶意软件签名的步骤可包括扫描打包程序的存储器的指定部分以查找恶意软件签名。
在一些实施例中,扫描标准还可指定用于响应于检测指定的可疑行为来扫描打包程序的存储器的至少一个恶意软件签名,并且扫描打包程序的存储器以查找恶意软件签名的步骤可包括扫描打包程序的存储器以查找指定的恶意软件签名。
在一个例子中,检测恶意代码的可疑行为的步骤可包括:(1)检测恶意代码的创建运行注册表键的尝试,(2)检测恶意代码的创建通用加载点的尝试,(3)检测恶意代码的将恶意代码注入到另一个进程中的尝试,和/或(4)检测恶意代码的修改安全设置的尝试。
一种用于实施上述方法的系统可包括:(1)执行模块,其存储在存储器中,执行打包程序,该打包程序可包括(i)已经被混淆在打包程序内的恶意代码,和(ii)解包代码,当打包程序被执行时,该解包代码去混淆并且执行恶意代码,(2)监视模块,其存储在存储器中,在打包程序正执行时监视打包程序如何运行,(3)检测模块,其存储在存储器中,在打包程序被监视时检测恶意代码的可疑行为,该可疑行为指示解包代码已经去混淆并且执行恶意代码,(4)安全模块,其存储在存储器中,响应于检测恶意代码的可疑行为来对打包程序执行安全操作,以及(5)至少一个处理器,其执行所述执行模块、监视模块、检测模块和安全模块。
在一些例子中,上述方法可被编码为非暂态计算机可读介质上的计算机可读指令。例如,一种计算机可读介质可包括一个或多个计算机可执行指令,这些指令在由计算设备的至少一个处理器执行时可致使计算设备:(1)执行打包程序,该打包程序可包括(i)已经被混淆在打包程序内的恶意代码,以及(ii)解包代码,当打包程序被执行时,该解包代码去混淆并且执行恶意代码,(2)在打包程序正执行时监视打包程序如何运行,(3)在监视打包程序如何运行时检测恶意代码的可疑行为,该可疑行为指示解包代码已经去混淆并且执行恶意代码,以及(4)响应于检测恶意代码的可疑行为,对打包程序执行安全操作。
来自上述实施例中的任何一者的特征可根据本文所述的一般原理彼此结合地使用。通过结合附图和权利要求阅读下面的详细描述,将会更充分地理解这些和其他实施例、特征和优点。
附图说明
附图示出了多个示例性实施例并且为说明书的一部分。这些附图结合下面的描述展示并且说明本发明的各种原理。
图1为用于响应于检测可疑行为来扫描打包程序的示例性系统的框图。
图2为用于响应于检测可疑行为来扫描打包程序的另外示例性系统的框图。
图3为用于响应于检测可疑行为来扫描打包程序的示例性方法的流程图。
图4为各种程序的示例性存储器的框图。
图5为能够实施本文描述和/或示出的实施例中的一者或多者的示例性计算系统的框图。
图6为能够实施本文描述和/或示出的实施例中的一者或多者的示例性计算网络的框图。
在全部附图中,相同引用字符和描述指示类似但未必相同的元件。虽然本文所述的示例性实施例易受各种修改和替代形式的影响,但在附图中以举例的方式示出了特定实施例并且将在本文详细描述。然而,本文所述的示例性实施例并非旨在限于所公开的特定形式。相反,本发明涵盖落在所附权利要求范围内的所有修改形式、等同形式和替代形式。
具体实施方式
本公开整体涉及用于响应于检测可疑行为来扫描打包程序的系统和方法。如下文将更详细地说明,通过监视正在执行的打包程序来查找可疑行为,本文所述的系统和方法可使得能够对混淆在打包程序内的程序进行解包和扫描以查找恶意软件。此外,在一些例子中,通过使得能够对包含在打包程序内的混淆程序进行解包和扫描以查找恶意软件,这些系统和方法可减少必须创建和用来检测恶意软件变型的恶意软件签名的数量。例如,本文所述的系统和方法可通过使用恶意程序的数字签名而不是打包程序的数字签名来扫描打包程序,从而检测包括混淆的恶意程序的打包程序。本公开的实施例还可提供各种其他优点和特征,如下文更详细地论述。
下面将参照图1至2提供对用于响应于检测可疑行为来扫描打包程序的示例性系统的详细描述。也将结合图3和图4提供相应计算机实现的方法的详细描述。此外,将分别结合图5和图6提供能够实现本文所述实施例中的一者或多者的示例性计算系统和网络体系结构的详细描述。
图1为用于响应于检测可疑行为来扫描打包程序的示例性系统100的框图。如该图所示,示例性系统100可包括用于执行一个或多个任务的一个或多个模块102。例如,以及如将在下面更加详细地说明,示例性系统100可包括执行打包程序的执行模块104,打包程序可包括(i)已经被混淆在打包程序内的恶意代码和(ii)当打包程序被执行时去混淆并执行恶意代码的解包代码。示例性系统100还可包括监视模块106,其在打包程序正执行时监视打包程序如何运行。
例如,以及如将在下面更加详细地描述,示例性系统100可包括检测模块108,其检测恶意代码的可疑行为,该可疑行为指示解包代码已经去混淆并执行恶意代码。示例性系统100还可包括安全模块110,其响应于检测恶意代码的可疑行为来对打包程序执行安全操作。尽管例示为独立元件,但图1中的模块102中的一者或多者可表示单个模块或应用程序的部分。
在某些实施例中,图1中的模块102中的一者或多者可表示一个或多个软件应用程序或程序,当通过计算设备执行时,所述软件应用程序或程序可使计算设备执行一个或多个任务。例如,以及如将在下面更加详细地描述,模块102中的一者或多者可表示存储在一个或多个计算设备上并且被配置为在所述计算设备上运行的软件模块,所述计算设备诸如图2中的计算系统202、图5中的计算系统510和/或图6中的示例性网络体系结构600的部分。图1中的模块102中的一者或多者也可表示被配置为执行一个或多个任务的一台或多台专用计算机的全部或部分。
如图1所示,示例性系统100还可包括一个或多个数据库,诸如数据库120。在一个例子中,数据库120可存储关于可触发本文所述的系统对打包程序执行安全操作(例如,恶意软件扫描)的一个或多个可疑行为(例如,可疑行为122)的信息、关于作为扫描目标的存储器(例如,目标存储器124)的信息,和/或关于可用于扫描打包程序以查找恶意软件的一个或多个恶意软件签名(例如,恶意软件签名126)的信息。
数据库120可表示单个数据库或计算设备的组成部分或者多个数据库或计算设备。例如,数据库120可表示图2中的计算系统202的一部分、图5中的计算系统510,和/或图6中的示例性网络体系结构600的部分。作为另外一种选择,图1中的数据库120可表示能够通过计算设备访问的一个或多个物理独立设备,诸如图2中的计算系统202、图5中的计算系统510,和/或图6中的示例性网络体系结构600的部分。
图1中的示例性系统100可以多种方式来实现。例如,示例性系统100的全部或一部分可表示图2中的示例性计算系统202的部分。在一个实施例中,图1中的模块102中的一者或多者在由计算系统202的至少一个处理器执行时,可使得计算系统202能够响应于检测可疑行为来扫描打包程序以查找恶意软件。例如,以及如将在下面更加详细地描述,一个或多个模块102可使计算系统202:(1)执行打包程序204,该打包程序包括(i)已经被混淆在打包程序204内的恶意代码210和(ii)解包代码206,当打包程序204被执行时,该解包代码去混淆并执行混淆程序208和/或恶意代码210,(2)在打包程序204正执行时监视打包程序204如何运行,(3)在监视打包程序204如何运行时检测恶意代码210的可疑行为,该可疑行为指示解包代码206已经去混淆并执行恶意代码210,以及(4)响应于检测恶意代码210的可疑行为,对打包程序204执行安全操作(例如,通过扫描打包程序204的存储器212以查找至少一个恶意软件签名)。
计算系统202通常表示能够读取计算机可执行指令的任何类型或形式的计算系统。计算系统202的例子包括但不限于笔记本电脑、平板电脑、台式机、服务器、移动电话、个人数字助理(PDA)、多媒体播放器、嵌入式系统、可穿戴设备(例如,智能手表、智能眼镜等)、游戏机、这些设备中一者或多者的组合、图5中的示例性计算系统510,或任何其他合适的计算系统。
图3为用于响应于检测可疑行为来扫描打包程序的示例性计算机实现的方法300的流程图。图3中示出的步骤可通过任何合适的计算机可执行代码和/或计算系统执行。在一些实施例中,图3中示出的步骤可通过图1中的系统100、图2中的计算系统202、图5中的计算系统510和/或图6中的示例性网络体系结构600的部分的组件中的一者或多者执行。
如图3所示,在步骤302处,本文所述系统中的一者或多者可执行打包程序,该打包程序包括(1)已经被混淆在打包程序内的恶意代码和(2)解包代码,当打包程序被执行时,该解包代码去混淆并执行恶意代码。例如,执行模块104作为图2中的计算系统202的一部分,可执行打包程序204,该打包程序包括已经被混淆在打包程序204内的恶意代码210,和解包代码206,当打包程序204被执行时,该解包代码去混淆并执行恶意代码210。
如本文所用,短语“程序”通常指包括可由计算设备执行的代码(即,指令)的任何文件(例如,可执行文件或二进制文件)。可根据任何合适的可执行文件格式对程序进行格式化。例如,可根据可移植可执行(PE)文件格式对程序进行格式化。短语“程序”还可指能够由WINDOWS操作系统、LINUX操作系统、MAC操作系统、UNIX操作系统和/或任何其他操作系统执行的任何程序。
在一些例子中,程序可包括在程序执行时被加载到存储器中的代码段和数据段。图4中的存储器400示出尚未被混淆在打包程序内的示例性程序的示例性运行时存储器状态。如图所示,尚未被混淆在打包程序内的示例性程序的运行时存储器状态可包括该程序的代码段(例如,代码段402)和该程序的数据段(例如,数据段404)。在本文所用的例子中,存储器400可表示被混淆的程序208的存储器的至少一部分。
在某些情况下,程序可被打包(例如,压缩、加密和/或以其他方式混淆)在另一个程序(称为“打包程序”)内。例如,图2中的打包程序204可表示内部已经打包有混淆程序208的打包程序。在一些例子中,可将程序打包一次或多次(例如,内部已经打包有程序的打包程序还可被打包在另一个打包程序内)。
在一些例子中,短语“打包程序”可指打包器创建的任何程序。如本文所用,术语“打包器”通常指用于混淆程序的任何类型或形式的工具。可用于混淆程序的打包器的例子包括但不限于压缩文件的压缩器(例如,ULTIMATE PACKER FOR EXECUTABLES(UPX)、ASPACK和UPACK)、加密文件的加密器(例如。POLYCRYPT PE)、压缩并加密文件的保护器(例如,ARMADILLO和THEMIDA)、将多个可执行文件和数据文件捆绑成单个捆绑可执行文件的捆绑器(诸如PEBUNDLE和MOLEBOX)等等。
在一些例子中,打包程序可包括在打包程序执行时被加载到存储器中的代码段和数据段。在一些例子中,打包在打包程序内的混淆程序可存储在打包程序的数据段内。图4中的打包存储器406示出当打包程序被首先加载到存储器时以及在打包程序的任何解包代码被执行之前的打包程序的示例性运行时存储器状态。在该状态下,如图4所示,打包程序的存储器可包括该打包程序的代码段(例如,代码段408)和该打包程序的数据段(例如,数据段410),该数据段可包括处于混淆状态的程序(例如,混淆程序208)。
在运行时,打包程序的代码(例如,解包代码)可对混淆在该打包程序内的程序进行解包(例如,解压、解密和/或以其他方式去混淆)。打包程序的解包代码可将混淆程序解包,使得混淆程序以未混淆且可执行的状态存在于打包程序的存储器内。图4中的解包存储器412示出在打包程序的解包代码已经将混淆在打包程序内的程序解包之后的打包程序的示例性运行时存储器状态。在该状态下,如图4所示,打包程序的存储器可包括呈未混淆状态的混淆程序的代码段(例如,代码段402)和呈未混淆状态的混淆程序的数据段(例如,数据段404)。在本文所用的例子中,打包存储器406和解包存储器412可表示存储器212的运行时状态。
返回图3,本文所述的系统可以任何合适的方式执行步骤302。在一个例子中,执行模块104可通过允许打包程序被执行来执行打包程序。例如,执行模块104可允许用户执行打包程序。除此之外或作为另外一种选择,执行模块104可执行打包程序作为对打包程序执行恶意软件扫描的一部分。
在步骤304处,本文所述系统中的一者或多者可在打包程序正执行时监视打包程序如何运行。例如,监视模块106作为图2中的计算系统202的一部分,可在打包程序204正执行时监视打包程序204如何运行。
本文所述的系统可以任何合适的方式执行步骤304。在一个例子中,监视模块106可通过监视组成正在执行的打包程序的进程来监视正在执行的打包程序如何运行。如本文所用,术语“进程”可指执行中的任何程序(例如,由可执行文件表达的程序的实例化和/或运行复本)。在一些例子中,一个进程可包括多个进程、线程和/或子进程。
一般来讲,监视模块106可监视正在执行的打包程序如何运行以查找某些可疑行为,这些可疑行为可指示打包程序的解包代码已经去混淆并且执行混淆在该打包程序内的恶意代码的至少一部分。例如,监视模块106可监视打包程序204如何运行以查找可疑行为122内包含的任何或所有可疑行为,这些可疑行为可指示解包代码206已经去混淆并且执行混淆程序208的至少一部分(例如,恶意代码210)。
如本文所用,短语“可疑行为”通常指由程序执行的一个或多个操作的任何发生,其可指示该程序是打包程序以及/或者打包程序的解包代码已经去混淆并且执行混淆在该打包程序内的恶意代码的至少一部分。在至少一个例子中,短语“可疑行为”可指指示打包程序的解包代码已经去混淆并且执行混淆在该打包程序内的恶意代码的至少一部分的任何特定、实质和/或复杂行为。
在某些例子中,本文所述的系统和方法可通过分析已知恶意程序和/或已知良性程序的行为来识别可疑行为。在一些例子中,短语“可疑行为”可表示已知为在已知恶意程序被首先执行时由至少一个已知恶意程序执行的一个或多个操作,和/或已知为在已知良性程序被首先执行时不由大量已知良性程序执行的一个或多个操作。
可疑行为的例子可包括但不限于运行注册表键(例如,RUN和RUNONCE注册表键)的创建、通用加载点(例如,负责发起打包程序或恶意代码的配置和/或程序,诸如浏览器助手对象(BHO))的创建、将恶意代码注入到另一个进程中(例如,进程注入),和/或安全设置的修改。可疑行为的另外的例子可包括但不限于文件创建、文件下载、网络通信和/或进程创建。如本文所用,短语“进程注入”可指供一个进程将可执行指令引入到另一个进程中以待执行的任何方法。进程注入的例子可包括将动态链接库注入到运行进程中以及钧住(hooking)另一个进程内的函数调用。
返回图3中的步骤304,在一些例子中,本文所述的系统和方法可利用指定将触发扫描打包程序的存储器以查找至少一个恶意软件签名的可疑行为的扫描标准,并且监视模块106可监视打包程序如何运行以查找其是否存在扫描标准内包括的可疑行为。在至少一个例子中,图1中的可疑行为122可表示本文所述的系统和方法所利用的扫描标准的一部分。
在步骤306处,本文所述系统中的一者或多者可检测恶意代码的可疑行为,该可疑行为指示解包代码已经去混淆并执行恶意代码。例如,检测模块108作为图2中的计算系统202的一部分,可检测恶意代码210的可疑行为,该可疑行为指示解包代码206已经去混淆并执行恶意代码210。
本文所述的系统可以任何合适的方式执行步骤306。例如,检测模块108可检测(1)被去混淆并且正在执行的恶意代码的创建运行注册表键的尝试,(2)被去混淆并且正在执行的恶意代码的创建通用加载点的尝试,(3)被去混淆并且正在执行的恶意代码的将恶意代码注入到另一个进程中的尝试,(4)被去混淆并且正在执行的恶意代码的修改安全设置的尝试,和/或(5)被去混淆并且正在执行的恶意代码的任何其他可疑行为。
在步骤308处,本文所述系统中的一者或多者可响应于检测恶意代码的可疑行为来对打包程序执行安全操作。例如,安全模块110作为图2中的计算系统202的一部分,可响应于检测恶意代码210的可疑行为来对打包程序204执行安全操作。
本文所述的系统可以任何合适的方式执行步骤308。在一个例子中,安全模块110可通过扫描打包程序的存储器的至少一部分来查找至少一个恶意软件签名,以便确定打包程序是否包括被混淆的恶意程序,来对打包程序执行安全操作。例如,安全模块110可通过扫描存储器212的全部或一部分(例如,解包存储器412的全部或一部分)来对打包程序204执行安全操作。如本文所用,短语“打包程序的存储器”通常指分配给打包程序和/或包括在打包程序内的混淆恶意程序的、以及/或者打包程序和/或包括在打包程序内的混淆恶意程序能够访问的任何存储器。在一些例子中,打包程序的存储器可包括但不限于打包程序的存储器镜像和/或动态分派给打包程序的任何存储器。
在一些例子中,安全模块110可至少部分地基于与检测到的可疑行为相关联的扫描标准来扫描打包程序的存储器。例如,如上所述,本文所述的系统和方法可利用指定以下各项的扫描标准:将触发扫描打包程序的存储器以查找至少一个恶意软件签名的至少一个可疑行为、应响应于检测指定的可疑行为来扫描的打包程序的存储器的一部分,和/或用于响应于检测指定的可疑行为来扫描打包程序的存储器的至少一个恶意软件签名。同样,在一些例子中,安全模块110可响应于检测由扫描标准指定的可疑行为,至少扫描打包程序的存储器的与指定可疑行为相关联的那部分以至少查找与指定可疑行为相关联的恶意软件签名。
在至少一个例子中,安全模块110可响应于检测由扫描标准指定的可疑行为,仅扫描打包程序的存储器的与指定可疑行为相关联的那部分以仅查找与指定可疑行为相关联的恶意软件签名。通过减少为查找恶意软件签名而扫描的存储器的量和/或用于扫描以查找恶意软件的恶意软件签名的数量,本文所述的系统和方法可减少扫描次数和/或扫描负载。
在至少一个例子中,图1中的可疑行为122、目标存储器124和恶意软件签名126可表示本文所述的系统和方法所利用的扫描标准的至少一部分。
作为扫描打包程序的存储器的补充或替代,安全模块110可对打包程序执行另外的安全操作。例如,响应于肯定的恶意软件扫描,安全模块110可将打包程序分类为恶意的,终止打包程序的执行,阻止打包程序在以后被执行,隔离打包程序,删除打包程序,向正在尝试执行打包程序的用户通知打包程序是恶意的,以及/或者对打包程序执行任何其他修复操作。除此之外或作为另外一种选择,安全模块110可更新关于已知恶意打包程序和/或已知良性打包程序的信息。例如,安全模块110可生成恶意软件签名以用于在不执行打包程序的情况下检测打包程序。步骤308完成后,图3中的示例性方法300可终止。
如上所述,通过监视正在执行的打包程序来查找可疑行为,本文所述的系统和方法可使得能够对混淆在打包程序内的程序进行解包和扫描以查找恶意软件。此外,在一些例子中,通过使得能够对包含在打包程序内的混淆程序进行解包和扫描以查找恶意软件,这些系统和方法可减少必须创建和用来检测恶意软件变型的恶意软件签名的数量。例如,本文所述的系统和方法可通过使用恶意程序的数字签名而不是打包程序的数字签名来扫描打包程序,从而检测包括混淆的恶意程序的打包程序。
在另一个例子中,本文所述的系统和方法可通过以下操作来检测并修复恶意打包程序:(1)允许打包程序被执行,(2)监视正在执行的打包程序以查找恶意行为,这些恶意行为可指示打包程序的解包代码已经去混淆并执行打包在该打包程序内的恶意代码,(3)检测这样的可疑行为,(4)暂停打包程序的执行,(5)扫描打包程序的存储器以查找一个或多个恶意软件签名,(6)确定打包程序匹配至少一个恶意软件签名,以及(7)响应于确定打包程序匹配至少一个恶意软件签名,对打包程序执行修复操作(例如,隔离该打包程序)。
图5为能够实施本文描述和/或示出的实施例中的一者或多者的示例性计算系统510的框图。例如,计算系统510的全部或一部分可执行和/或作为一种装置用于单独地或与其他元件结合来执行本文所述的步骤中的一者或多者(诸如图3所示的步骤中的一者或多者)。计算系统510的全部或一部分也可执行和/或作为一种装置用于执行本文描述和/或示出的任何其他步骤、方法或过程。
计算系统510在广义上表示能够执行计算机可读指令的任何单处理器或多处理器计算设备或系统。计算系统510的例子包括但不限于工作站、笔记本电脑、客户端侧终端、服务器、分布式计算系统、手持式设备或任何其他计算系统或设备。在其最基本的配置中,计算系统510可包括至少一个处理器514和系统存储器516。
处理器514通常表示能够处理数据或解译和执行指令的任何类型或形式的物理处理单元(例如,硬件实现的中央处理单元)。在某些实施例中,处理器514可接收来自软件应用程序或模块的指令。这些指令可使处理器514执行本文描述和/或示出的一个或多个示例性实施例的功能。
系统存储器516通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的易失性或非易失性存储设备或介质。系统存储器516的例子包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、闪存存储器或任何其他适用的存储器设备。尽管不是必需的,但在某些实施例中,计算系统510可包括易失性存储器单元(诸如系统存储器516)和非易失性存储设备(诸如,主要存储设备532,如下详述)两者。在一个例子中,图1的模块102中的一者或多者可加载到系统存储器516中。
在某些实施例中,除处理器514和系统存储器516之外,示例性计算系统510还可包括一个或多个组件或元件。例如,如图5所示,计算系统510可包括存储器控制器518、输入/输出(I/O)控制器520和通信接口522,它们中的每一者都可通过通信基础结构512互连。通信基础结构512通常表示能够促进计算设备的一个或多个组件之间的通信的任何类型或形式的基础结构。通信基础结构512的例子包括但不限于通信总线(诸如工业标准体系结构(ISA))、外围组件互连(PCI)、PCI Express(PCIe)或类似的总线)和网络。
存储器控制器518通常表示能够处理存储器或数据或者控制计算系统510的一个或多个组件之间的通信的任何类型或形式的设备。例如,在某些实施例中,存储器控制器518可通过通信基础结构512来控制处理器514、系统存储器516和I/O控制器520之间的通信。
I/O控制器520通常表示能够协调和/或控制计算设备的输入和输出功能的任何类型或形式的模块。例如,在某些实施例中,I/O控制器520可控制或促进计算系统510的一个或多个元件之间的数据传输,所述元件诸如处理器514、系统存储器516、通信接口522、显示适配器526、输入接口530和存储接口534。
通信接口522在广义上表示能够促进示例性计算系统510与一个或多个附加设备之间的通信的任何类型或形式的通信设备或适配器。例如,在某些实施例中,通信接口522可促进计算系统510与包括附加计算系统的专用或公共网络之间的通信。通信接口522的例子包括但不限于有线网络接口(诸如网络接口卡)、无线网络接口(诸如无线网络接口卡)、调制解调器和任何其他合适的接口。在至少一个实施例中,通信接口522可通过与网络(诸如互联网)的直接链接来提供与远程服务器的直接连接。通信接口522还可通过例如局域网(诸如以太网网络)、个人区域网、电话或电缆网络、蜂窝电话连接、卫星数据连接或任何其他合适的连接来间接提供此类连接。
在某些实施例中,通信接口522还可表示主机适配器,该主机适配器被配置为通过外部总线或通信信道来促进计算系统510与一个或多个附加网络或存储设备之间的通信。主机适配器的例子包括但不限于小型计算机系统接口(SCSI)主机适配器、通用串行总线(USB)主机适配器、电气与电子工程师协会(IEEE)1394主机适配器、高级技术附件(ATA)、并行ATA(PATA)、串行ATA(SATA)和外部SATA(eSATA)主机适配器、光纤通道接口适配器、以太网适配器等。通信接口522还可允许计算系统510参与分布式或远程计算。例如,通信接口522可接收来自远程设备的指令或将指令发送到远程设备以供执行。
如图5所示,计算系统510还可包括至少一个显示设备524,该显示设备通过显示适配器526联接到通信基础结构512。显示设备524通常表示能够以可视方式显示显示适配器526转发的信息的任何类型或形式的设备。类似地,显示适配器526通常表示被配置为转发来自通信基础结构512(或来自帧缓冲器,如本领域所已知)的图形、文本和其他数据以在显示设备524上显示的任何类型或形式的设备。
如图5所示,示例性计算系统510还可包括经由输入接口530联接到通信基础结构512的至少一个输入设备528。输入设备528通常表示能够向示例性计算系统510提供输入(由计算机或人生成)的任何类型或形式的输入设备。输入设备528的例子包括但不限于键盘、指示设备、语音识别设备或任何其他输入设备。
如图5所示,示例性计算系统510还可包括主要存储设备532和经由存储接口534联接到通信基础结构512的备份存储设备533。存储设备532和533通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。例如,存储设备532和533可为磁盘驱动器(例如,所谓的硬盘驱动器)、固态驱动器、软盘驱动器、磁带驱动器、光盘驱动器、闪存驱动器等等。存储接口534通常表示用于在计算系统510的存储设备532和533与其他组件之间传输数据的任何类型或形式的接口或设备。在一个例子中,图1的数据库120可存储在主要存储设备532中。
在某些实施例中,存储设备532和533可被配置为对被配置为存储计算机软件、数据或其他计算机可读信息的可移除存储单元执行读取和/或写入。合适的可移除存储单元的例子包括但不限于软盘、磁带、光盘、闪存存储器设备等。存储设备532和533还可包括允许将计算机软件、数据或其他计算机可读指令加载到计算系统510内的其他类似结构或设备。例如,存储设备532和533可被配置为读取和写入软件、数据或其他计算机可读信息。存储设备532和533还可为计算系统510的一部分,或者可为通过其他接口系统进行访问的独立设备。
可将许多其他设备或子系统连接到计算系统510。相反地,无需图5中示出的所有组件和设备都存在,亦可实践本文描述和/或示出的实施例。上文提及的设备和子系统也可通过不同于图5所示的方式互连。计算系统510也可采用任何数量的软件、固件和/或硬件配置。例如,本文所公开的一个或多个示例性实施例可被编码为计算机可读介质上的计算机程序(也称为计算机软件、软件应用程序、计算机可读指令或计算机控制逻辑)。如本文所用,短语“计算机可读介质”通常指能够存储或携带计算机可读指令的任何形式的设备、载体或介质。计算机可读介质的例子包括但不限于传输型介质,诸如载波,和非暂态型介质,诸如磁存储介质(例如,硬盘驱动器、磁带驱动器和软盘)、光存储介质(例如,光盘(CD)、数字视频盘(DVD)和蓝光光盘)、电子存储介质(例如,固态驱动器和闪存介质)和其他分配系统。
可将包含计算机程序的计算机可读介质加载到计算系统510中。然后可以将计算机可读介质上存储的全部或部分计算机程序存储在系统存储器516和/或存储设备532和533的各个部分中。当由处理器514执行时,加载到计算系统510中的计算机程序可使处理器514执行和/或作为一种装置用于执行本文描述和/或示出的示例性实施例中的一者或多者的功能。除此之外或作为另外一种选择,可在固件和/或硬件中实施本文描述和/或示出的示例性实施例中的一者或多者。例如,计算系统510可被配置为用于实施本文所公开的示例性实施例中的一者或多者的专用集成电路(ASIC)。
图6为示例性网络体系结构600的框图,其中客户端系统610、620和630以及服务器640和645可联接到网络650。如上文所详述,网络体系结构600的全部或一部分可执行和/或作为一种装置用于单独地或与其他元件结合来执行本文所公开的步骤中的一者或多者(诸如图3所示的步骤中的一者或多者)。网络体系结构600的全部或一部分也可用于执行和/或作为一种装置用于执行本公开中阐述的其他步骤和特征。
客户端系统610、620和630通常表示任何类型或形式的计算设备或系统,诸如图5中的示例性计算系统510。类似地,服务器640和645通常表示被配置为提供各种数据库服务和/或运行某些软件应用程序的计算设备或系统,诸如应用程序服务器或数据库服务器。网络650通常表示任何电信或计算机网络,包括例如内联网、WAN、LAN、PAN或因特网。在一个例子中,客户端系统610、620和/或630和/或服务器640和/或645可包括图1的系统100的全部或一部分。
如图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还可以通过网络650以及服务器640和645以这样的方式促进客户端系统610、620和630与存储设备690(1)-(N)和/或智能存储阵列695之间的通信:设备690(1)-(N)和阵列695呈现为客户端系统610、620和630的本地连接设备。与存储设备660(1)-(N)和存储设备670(1)-(N)相同,存储设备690(1)-(N)和智能存储阵列695通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。
在某些实施例中,并参照图5的示例性计算系统510,通信接口(诸如图5中的通信接口522)可用于在每个客户端系统610、620和630与网络650之间提供连接。客户端系统610、620和630可能能够使用例如网页浏览器或其他客户端软件来访问服务器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。
如上所详述,计算系统510和/或网络体系结构600的一个或多个组件可执行和/或作为一种装置用于单独地或与其他元件结合来执行用于响应于检测可疑行为而扫描打包程序的示例性方法的一个或多个步骤。
虽然上述公开内容使用特定框图、流程图和例子阐述了各种实施例,但每个框图组件、流程图步骤、操作和/或本文描述和/或示出的组件可使用多种硬件、软件或固件(或其任何组合)配置单独和/或共同地实施。此外,包含在其他组件内的组件的任何公开内容应当被视为在本质上是示例性的,因为可实施许多其他体系结构来实现相同功能。
在一些例子中,图1中的示例性系统100的全部或一部分可表示云计算环境或基于网络的环境的部分。云计算环境可以通过互联网提供各种服务和应用程序。这些基于云的服务(例如软件即服务、平台即服务、基础结构即服务等)可以通过网页浏览器或其他远程接口进行访问。本文所述的各种功能可以通过远程桌面环境或任何其他基于云的计算环境提供。
在各种实施例中,图1中的示例性系统100的全部或一部分可促进基于云的计算环境内的多租户应用。换句话讲,本文所述的软件模块可配置计算系统(例如,服务器)以促进本文所述功能中的一者或多者的多租户应用。例如,本文所述软件模块中的一者或多者可对服务器进行编程以允许两个或多个客户端(例如,顾客)共享正在服务器上运行的应用程序。以这种方式编程的服务器可在多个顾客(即,租户)之间共享应用程序、操作系统、处理系统和/或存储系统。本文所述模块中的一者或多者还可为每个顾客分割多租户应用程序的数据和/或配置信息使得一个顾客不能访问另一个顾客的数据和/或配置信息。
根据各种实施例,图1中的示例性系统100的全部或一部分可在虚拟环境中实现。例如,本文所述模块和/或数据可在虚拟机内驻留和/或执行。如本文所用,短语“虚拟机”通常指由虚拟机管理器(例如,超级管理程序)从计算硬件中抽象出来的任何操作系统环境。除此之外或作为另外一种选择,本文所述的模块和/或数据可在虚拟化层内驻留和/或执行。如本文所用,短语“虚拟化层”通常指覆盖操作系统环境和/或从操作系统环境中抽象出来的任何数据层和/或应用层。虚拟化层可由软件虚拟化解决方案(例如,文件系统过滤器)管理,软件虚拟化解决方案将虚拟化层呈现为就好像它是底层基本操作系统的一部分。例如,软件虚拟化解决方案可将最初定向至基本文件系统和/或注册表内的位置的调用重定向至虚拟化层内的位置。
在一些例子中,图1中的示例性系统100的全部或一部分可表示移动计算环境的部分。移动计算环境可由多种移动计算设备来实现,这些设备包括移动电话、平板电脑、电子书阅读器、个人数字助理、可穿戴计算设备(例如,具有头戴式显示器的计算设备、智能手表等),等等。在一些例子中,移动计算环境可具有一个或多个显著特征,包括(例如)对电池供电的依赖、在任何给定时间只呈现一个前台应用程序、远程管理特征、触摸屏特征、(例如,由全球定位系统、陀螺仪、加速度计等提供的)位置和移动数据、限制对系统级配置的修改和/或限制第三方软件检查其他应用程序的行为的能力的受限平台、限制应用程序的安装的控制装置(例如,仅安装来源于经批准的应用程序商店的应用程序),等等。本文所述的各种功能可被提供用于移动计算环境和/或可与移动计算环境交互。
此外,图1中的示例性系统100的全部或一部分可表示一个或多个信息管理系统的部分,与一个或多个信息管理系统交互,使用由一个或多个信息管理系统产生的数据,并且/或者产生被一个或多个信息管理系统使用的数据。如本文所用,短语“信息管理”可以指数据的保护、组织和/或存储。信息管理系统的例子可包括但不限于存储系统、备份系统、存档系统、复制系统、高可用性系统、数据搜索系统、虚拟化系统等。
在一些实施例中,图1中的示例性系统100的全部或一部分可表示一个或多个信息安全系统的部分,产生受一个或多个信息安全系统保护的数据,并且/或者与一个或多个信息安全系统通信。如本文所用,短语“信息安全”可以指对受保护数据的访问控制。信息安全系统的例子可包括但不限于提供受管理的安全服务的系统、数据丢失防护系统、身份认证系统、访问控制系统、加密系统、政策遵循系统、入侵检测与防护系统、电子发现系统等等。
根据一些例子,图1中的示例性系统100的全部或一部分可表示一个或多个端点安全系统的部分,与一个或多个端点安全系统通信,并且/或者受一个或多个端点安全系统保护。如本文所用,短语“端点安全”可以指保护端点系统以避免未授权和/或不合法的使用、访问和/或控制。端点保护系统的例子可包括但不限于反恶意软件系统、用户认证系统、加密系统、保密系统、垃圾邮件过滤服务,等等。
本文描述和/或示出的过程参数和步骤序列仅通过举例的方式给出并且可根据需要改变。例如,虽然本文示出和/或描述的步骤可以特定顺序示出或讨论,但这些步骤不必按示出或讨论的顺序来执行。本文描述和/或示出的各种示例性方法也可省略本文描述或示出的步骤中的一者或多者,或除了所公开的那些步骤之外还包括附加步骤。
虽然本文已经在全功能计算系统的背景中描述和/或示出了各种实施例,但这些示例性实施例中的一者或多者可作为各种形式的程序产品来分配,而不考虑用于实际进行分配的计算机可读介质的特定类型。本文所公开的实施例也可使用执行某些任务的软件模块来实施。这些软件模块可包括脚本、批文件或可存储在计算机可读存储介质上或计算系统中的其他可执行文件。在一些实施例中,这些软件模块可将计算系统配置为执行本文所公开的示例性实施例中的一者或多者。
此外,本文所述的模块中的一者或多者可将数据、物理设备和/或物理设备的表示从一种形式转换为另一种形式。例如,本文所述模块中的一者或多者可接收待转换的包括混淆恶意代码的打包程序,将打包程序转换成打包程序的包括呈未混淆状态的恶意代码的存储器,将转换的结果输出到用于检测、分析和/或分类恶意软件的系统,使用转换的结果来扫描打包程序的存储器以查找一个或多个恶意软件签名,以及将转换的结果存储到用于存储关于恶意程序和/或代码的信息的存储系统。除此之外或作为另外一种选择,本文所述模块中的一者或多者可通过在计算设备上执行、在计算设备上存储数据和/或以其他方式与计算设备交互,来将处理器、易失性存储器、非易失性存储器、和/或物理计算设备的任何其他部分从一种形式转换为另一种形式。
提供前面描述的目的是使本领域的其他技术人员能够最好地利用本文所公开的示例性实施例的各种方面。该示例性描述并非旨在是详尽的或局限于所公开的任何精确形式。在不脱离本发明精神和范围的前提下,可进行许多修改和变化。本文所公开的实施例在所有方面均应被视为示例性的而非限制性的。应当参考所附权利要求及其等同形式来确定本发明的范围。
除非另有说明,否则在本说明书和权利要求中使用的术语“连接到”和“联接到”(以及其衍生形式)应该理解为允许直接和间接(即,经由其他元件或组件)连接。此外,在本说明书和权利要求中使用的术语“一”或“一个”应当理解为表示“...中的至少一者”。最后,为了易于使用,在本说明书和权利要求中使用的术语“包括”和“具有”(以及其衍生形式)与词语“包含”可互换并且与词语“包含”具有相同含义。
Claims (15)
1.一种用于响应于检测可疑行为来扫描打包程序的计算机实现的方法,所述方法的至少一部分由包括至少一个处理器的计算设备执行,所述方法包括:
执行打包程序,所述打包程序包括:
已经被混淆在所述打包程序内的恶意代码;以及
解包代码,当所述打包程序被执行时,所述解包代码去混淆并且执行所述恶意代码;
识别扫描标准,所述扫描标准指定至少一个可疑行为,所述至少一个可疑行为将触发扫描所述打包程序的存储器的部分以查找与所述至少一个可疑行为相关联的至少一个恶意软件签名,其中,所述至少一个可疑行为指示所述解包代码已经去混淆并且执行所述恶意代码;
在所述打包程序执行时监视所述打包程序如何运行;
在监视所述打包程序如何运行时,检测所述打包程序执行所述至少一个可疑行为的尝试;以及
响应于所述打包程序执行所述至少一个可疑行为的所述尝试:
暂停所述打包程序的执行;以及
在所述打包程序的执行暂停时,扫描所述打包程序的所述存储器的所述部分以仅查找与所述至少一个可疑行为相关联的所述至少一个恶意软件签名,其中,与所述至少一个可疑行为相关联的所述至少一个恶意软件签名包括用于扫描以查找恶意软件的恶意软件签名的集合的子集,使得扫描所述打包程序的所述存储器的所述部分以仅查找与所述至少一个可疑行为相关联的所述至少一个恶意软件签名减少了用于扫描所述打包程序以查找恶意软件的恶意软件签名的数量。
2.根据权利要求1所述的方法,进一步包括:
检测所述至少一个恶意软件签名;和
响应于检测到所述至少一个恶意软件签名,执行以下各项中的至少一项:
将所述打包程序分类为恶意的;
防止所述打包程序被随后执行;
隔离所述打包程序;
删除所述打包程序;
向正在尝试执行所述打包程序的用户通知所述打包程序是恶意的;或
生成恶意软件签名以检测所述打包程序而不执行所述打包程序。
3.根据权利要求1所述的方法,还包括:
执行至少一个已知恶意程序;
分析所述至少一个已知恶意程序的行为;以及
通过识别当所述至少一个已知恶意程序被首先执行时由所述至少一个已知恶意程序执行的一个或多个动作来识别所述至少一个已知恶意程序的所述至少一个可疑行为,其中,与所述至少一个可疑行为相关联的所述至少一个恶意软件签名包括所述已知恶意程序的签名。
4.根据权利要求1所述的方法,其中:
扫描所述打包程序的所述存储器的所述部分包括仅扫描由所述扫描标准指定的所述打包程序的所述存储器的所述部分以查找由所述扫描标准指定的所述至少一个恶意软件签名。
5.根据权利要求4所述的方法,其中,所述打包程序的所述存储器的所述部分包括少于所述打包程序的所述存储器的所有,使得仅扫描所述打包程序的所述存储器的所述部分以仅查找与所述至少一个可疑行为相关联的所述至少一个恶意软件签名减少了被扫描的所述打包程序的存储器的量。
6.根据权利要求1所述的方法,其中所述至少一个可疑行为包括创建运行注册表键的尝试。
7.根据权利要求1所述的方法,其中所述可疑行为包括创建通用加载点的尝试。
8.根据权利要求1所述的方法,其中所述可疑行为包括将恶意代码注入到另一个进程中的尝试。
9.根据权利要求1所述的方法,其中所述可疑行为包括修改安全设置的尝试。
10.一种用于响应于检测可疑行为来扫描打包程序的系统,所述系统包括:
存储在存储器中的执行模块,所述执行模块执行打包程序,所述打包程序包括:
已经被混淆在所述打包程序内的恶意代码;以及
解包代码,当所述打包程序被执行时,所述解包代码去混淆并且执行所述恶意代码;
存储在存储器中的接收模块,所述接收模块接收扫描标准,所述扫描标准指定指定至少一个可疑行为,所述至少一个可疑行为将触发扫描所述打包程序的存储器的部分以查找与所述至少一个可疑行为相关联的至少一个恶意软件签名,其中,所述至少一个可疑行为指示所述解包代码已经去混淆并且执行所述恶意代码;
存储在存储器中的监视模块,所述监视模块在所述打包程序正执行时监视所述打包程序如何运行;
存储在存储器中的检测模块,所述检测模块在所述打包程序被监视时检测所述打包程序执行所述至少一个可疑行为的尝试;
存储在存储器中的安全模块,所述安全模块:
响应于所述打包程序执行所述至少一个可疑行为的所述尝试,暂停所述打包程序的执行;以及
在所述打包程序的执行暂停时,扫描所述打包程序的所述存储器的所述部分以仅查找与所述至少一个可疑行为相关联的所述至少一个恶意软件签名,其中,与所述至少一个可疑行为相关联的所述至少一个恶意软件签名包括用于扫描以查找恶意软件的恶意软件签名的集合的子集,使得扫描所述打包程序的所述存储器的所述部分以仅查找与所述至少一个可疑行为相关联的所述至少一个恶意软件签名减少了用于扫描所述打包程序以查找恶意软件的恶意软件签名的数量;
至少一个处理器,所述处理器执行所述接收模块、所述执行模块、所述监视模块、所述检测模块和所述安全模块。
11.根据权利要求10所述的系统,其中所述安全模块进一步:
检测所述至少一个恶意软件签名;和
响应于检测到所述至少一个恶意软件签名,执行以下各项中的至少一项:
将所述打包程序分类为恶意的;
防止所述打包程序被随后执行;
隔离所述打包程序;
删除所述打包程序;
向正在尝试执行所述打包程序的用户通知所述打包程序是恶意的;或
生成恶意软件签名以检测所述打包程序而不执行所述打包程序。
12.根据权利要求10所述的系统,其中:
所述执行模块还执行至少一个已知恶意程序;
所述监视模块还分析所述至少一个已知恶意程序的行为;以及
所述检测模块还通过识别当所述至少一个已知恶意程序被首先执行时由所述至少一个已知恶意程序执行的一个或多个动作来识别所述至少一个已知恶意程序的所述至少一个可疑行为,其中,与所述至少一个可疑行为相关联的所述至少一个恶意软件签名包括所述已知恶意程序的签名。
13.根据权利要求10所述的系统,其中:
所述安全模块通过仅扫描由所述扫描标准指定的所述打包程序的所述存储器的所述部分以查找由所述扫描标准指定的所述至少一个恶意软件签名,来扫描所述打包程序的所述存储器的所述部分。
14.根据权利要求10所述的系统,其中,所述打包程序的所述存储器的所述部分包括少于所述打包程序的所述存储器的所有,使得仅扫描所述打包程序的所述存储器的所述部分以仅查找与所述至少一个可疑行为相关联的所述至少一个恶意软件签名减少了被扫描的所述打包程序的存储器的量。
15.一种非暂态计算机可读介质,其包括一个或多个计算机可执行指令,当由计算设备的至少一个处理器执行时,所述指令使所述计算设备:
执行打包程序,所述打包程序包括:
已经被混淆在所述打包程序内的恶意代码;以及
解包代码,当所述打包程序被执行时,所述解包代码去混淆并且执行所述恶意代码;
识别扫描标准,所述扫描标准指定至少一个可疑行为,所述至少一个可疑行为将触发扫描所述打包程序的存储器的部分以查找与所述至少一个可疑行为相关联的至少一个恶意软件签名,其中,所述至少一个可疑行为指示所述解包代码已经去混淆并且执行所述恶意代码;
在所述打包程序正执行时监视所述打包程序如何运行;
在监视所述打包程序如何运行时,检测所述打包程序执行所述至少一个可疑行为的尝试;以及
响应于所述打包程序执行所述至少一个可疑行为的所述尝试:
暂停所述打包程序的执行;以及
在所述打包程序的执行暂停时,扫描所述打包程序的所述存储器的所述部分以仅查找与所述至少一个可疑行为相关联的所述至少一个恶意软件签名,其中,与所述至少一个可疑行为相关联的所述至少一个恶意软件签名包括用于扫描以查找恶意软件的恶意软件签名的集合的子集,使得扫描所述打包程序的所述存储器的所述部分以仅查找与所述至少一个可疑行为相关联的所述至少一个恶意软件签名减少了用于扫描所述打包程序以查找恶意软件的恶意软件签名的数量。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/178727 | 2014-02-12 | ||
US14/178,727 US9171154B2 (en) | 2014-02-12 | 2014-02-12 | Systems and methods for scanning packed programs in response to detecting suspicious behaviors |
PCT/US2015/015291 WO2015123226A1 (en) | 2014-02-12 | 2015-02-10 | Systems and methods for scanning packed programs in response to detecting suspicious behaviors |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106133741A CN106133741A (zh) | 2016-11-16 |
CN106133741B true CN106133741B (zh) | 2019-06-07 |
Family
ID=52633597
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580006884.4A Active CN106133741B (zh) | 2014-02-12 | 2015-02-10 | 用于响应于检测可疑行为来扫描打包程序的系统和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9171154B2 (zh) |
EP (1) | EP3105701B1 (zh) |
JP (1) | JP6335315B2 (zh) |
CN (1) | CN106133741B (zh) |
WO (1) | WO2015123226A1 (zh) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3103070B1 (en) | 2014-02-07 | 2023-09-13 | Cylance Inc. | Application execution control utilizing ensemble machine learning for discernment |
US9251090B1 (en) * | 2014-06-03 | 2016-02-02 | Amazon Technologies, Inc. | Hypervisor assisted virtual memory obfuscation |
US9965627B2 (en) | 2014-09-14 | 2018-05-08 | Sophos Limited | Labeling objects on an endpoint for encryption management |
US10122687B2 (en) | 2014-09-14 | 2018-11-06 | Sophos Limited | Firewall techniques for colored objects on endpoints |
US9537841B2 (en) | 2014-09-14 | 2017-01-03 | Sophos Limited | Key management for compromised enterprise endpoints |
US9465940B1 (en) | 2015-03-30 | 2016-10-11 | Cylance Inc. | Wavelet decomposition of software entropy to identify malware |
US9729572B1 (en) * | 2015-03-31 | 2017-08-08 | Juniper Networks, Inc. | Remote remediation of malicious files |
US9607152B1 (en) * | 2015-05-20 | 2017-03-28 | Symantec Corporation | Detect encrypted program based on CPU statistics |
CN106921608B (zh) * | 2015-12-24 | 2019-11-22 | 华为技术有限公司 | 一种检测终端安全状况方法、装置及系统 |
US10826933B1 (en) | 2016-03-31 | 2020-11-03 | Fireeye, Inc. | Technique for verifying exploit/malware at malware detection appliance through correlation with endpoints |
US10893059B1 (en) | 2016-03-31 | 2021-01-12 | Fireeye, Inc. | Verification and enhancement using detection systems located at the network periphery and endpoint devices |
JP6687844B2 (ja) * | 2016-04-13 | 2020-04-28 | 富士通株式会社 | マルウエア解析装置、マルウエア解析方法及びマルウエア解析プログラム |
US10645107B2 (en) * | 2017-01-23 | 2020-05-05 | Cyphort Inc. | System and method for detecting and classifying malware |
EP3352110B1 (en) * | 2017-01-23 | 2020-04-01 | Cyphort Inc. | System and method for detecting and classifying malware |
US10873589B2 (en) * | 2017-08-08 | 2020-12-22 | Sonicwall Inc. | Real-time prevention of malicious content via dynamic analysis |
CN107678755B (zh) * | 2017-09-13 | 2021-01-26 | 北京京东尚科信息技术有限公司 | 安装包打包的方法、装置、电子设备和计算机可读介质 |
US11151252B2 (en) | 2017-10-13 | 2021-10-19 | Sonicwall Inc. | Just in time memory analysis for malware detection |
US10977368B1 (en) * | 2017-12-27 | 2021-04-13 | Ca Technologies, Inc. | Detecting malware based on memory allocation patterns |
US10685110B2 (en) | 2017-12-29 | 2020-06-16 | Sonicwall Inc. | Detection of exploitative program code |
US20220138311A1 (en) * | 2018-01-08 | 2022-05-05 | Digital Immunity Llc | Systems and methods for detecting and mitigating code injection attacks |
CA3088604A1 (en) * | 2018-01-08 | 2019-07-11 | Digital Immunity, Inc. | Systems and methods for detecting and mitigating code injection attacks |
US11232201B2 (en) | 2018-05-14 | 2022-01-25 | Sonicwall Inc. | Cloud based just in time memory analysis for malware detection |
US10776487B2 (en) | 2018-07-12 | 2020-09-15 | Saudi Arabian Oil Company | Systems and methods for detecting obfuscated malware in obfuscated just-in-time (JIT) compiled code |
GB2588745B (en) * | 2018-11-19 | 2021-11-03 | Sophos Ltd | Deferred malware scanning |
US11916930B2 (en) * | 2021-06-29 | 2024-02-27 | Acronis International Gmbh | Non-invasive virus scanning using remote access |
CN113792294B (zh) * | 2021-11-15 | 2022-03-08 | 北京升鑫网络科技有限公司 | 一种恶意类检测方法、系统、装置、设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101266550A (zh) * | 2007-12-21 | 2008-09-17 | 北京大学 | 一种恶意代码检测方法 |
CN101620659A (zh) * | 2009-07-14 | 2010-01-06 | 北京大学 | 一种Windows操作系统下钩子的检测方法 |
US7779472B1 (en) * | 2005-10-11 | 2010-08-17 | Trend Micro, Inc. | Application behavior based malware detection |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0815510B1 (en) * | 1995-12-28 | 2000-11-08 | InDefense, Inc. | Method for protecting executable software programs against infection by software viruses |
US8479174B2 (en) | 2006-04-05 | 2013-07-02 | Prevx Limited | Method, computer program and computer for analyzing an executable computer file |
US8365286B2 (en) * | 2006-06-30 | 2013-01-29 | Sophos Plc | Method and system for classification of software using characteristics and combinations of such characteristics |
US8069484B2 (en) * | 2007-01-25 | 2011-11-29 | Mandiant Corporation | System and method for determining data entropy to identify malware |
US8590045B2 (en) * | 2009-10-07 | 2013-11-19 | F-Secure Oyj | Malware detection by application monitoring |
US8566944B2 (en) * | 2010-04-27 | 2013-10-22 | Microsoft Corporation | Malware investigation by analyzing computer memory |
US8479291B1 (en) | 2010-10-28 | 2013-07-02 | Symantec Corporation | Systems and methods for identifying polymorphic malware |
US8997233B2 (en) * | 2011-04-13 | 2015-03-31 | Microsoft Technology Licensing, Llc | Detecting script-based malware using emulation and heuristics |
US8281399B1 (en) * | 2012-03-28 | 2012-10-02 | Symantec Corporation | Systems and methods for using property tables to perform non-iterative malware scans |
CN102799826B (zh) * | 2012-07-19 | 2015-07-29 | 腾讯科技(深圳)有限公司 | 应用程序安装包解压过程的检测方法与装置、客户端设备 |
US9471783B2 (en) * | 2013-03-15 | 2016-10-18 | Mcafee, Inc. | Generic unpacking of applications for malware detection |
RU2531861C1 (ru) * | 2013-04-26 | 2014-10-27 | Закрытое акционерное общество "Лаборатория Касперского" | Система и способ оценки вредоносности кода, исполняемого в адресном пространстве доверенного процесса |
-
2014
- 2014-02-12 US US14/178,727 patent/US9171154B2/en active Active
-
2015
- 2015-02-10 JP JP2016549094A patent/JP6335315B2/ja active Active
- 2015-02-10 WO PCT/US2015/015291 patent/WO2015123226A1/en active Application Filing
- 2015-02-10 CN CN201580006884.4A patent/CN106133741B/zh active Active
- 2015-02-10 EP EP15708938.4A patent/EP3105701B1/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7779472B1 (en) * | 2005-10-11 | 2010-08-17 | Trend Micro, Inc. | Application behavior based malware detection |
CN101266550A (zh) * | 2007-12-21 | 2008-09-17 | 北京大学 | 一种恶意代码检测方法 |
CN101620659A (zh) * | 2009-07-14 | 2010-01-06 | 北京大学 | 一种Windows操作系统下钩子的检测方法 |
Non-Patent Citations (1)
Title |
---|
"OmniUnpack: Fast, Generic, and Safe Unpacking of Malware";Lorenzo Martignoni et al;《Computer Security Applications Conference》;20080102;第431-440页 |
Also Published As
Publication number | Publication date |
---|---|
US20150227742A1 (en) | 2015-08-13 |
JP2017507414A (ja) | 2017-03-16 |
US9171154B2 (en) | 2015-10-27 |
WO2015123226A1 (en) | 2015-08-20 |
EP3105701B1 (en) | 2023-11-22 |
EP3105701A1 (en) | 2016-12-21 |
JP6335315B2 (ja) | 2018-05-30 |
CN106133741A (zh) | 2016-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106133741B (zh) | 用于响应于检测可疑行为来扫描打包程序的系统和方法 | |
CN106133743B (zh) | 用于优化预安装应用程序的扫描的系统和方法 | |
CN106415584B (zh) | 移动设备恶意软件的预安装检测系统和方法 | |
US20190014132A1 (en) | Internet of things security appliance | |
CN105453102B (zh) | 用于识别已泄漏的私有密钥的系统和方法 | |
US9223966B1 (en) | Systems and methods for replicating computing system environments | |
EP3430559B1 (en) | Systems and methods for generating tripwire files | |
US9245123B1 (en) | Systems and methods for identifying malicious files | |
US10007786B1 (en) | Systems and methods for detecting malware | |
CN110383278A (zh) | 用于检测恶意计算事件的系统和方法 | |
CN108701188A (zh) | 响应于检测潜在勒索软件以用于修改文件备份的系统和方法 | |
US8732587B2 (en) | Systems and methods for displaying trustworthiness classifications for files as visually overlaid icons | |
CN109997143A (zh) | 敏感数据的安全共享 | |
US9800590B1 (en) | Systems and methods for threat detection using a software program update profile | |
CN105683910B (zh) | 用于更新只读系统映像内的系统级服务的系统和方法 | |
CN107864676A (zh) | 用于检测计算过程中未知漏洞的系统和方法 | |
CN109154962A (zh) | 用于确定安全风险简档的系统和方法 | |
CN106030527B (zh) | 将可供下载的应用程序通知用户的系统和方法 | |
CN109997138A (zh) | 用于检测计算设备上的恶意进程的系统和方法 | |
US10678917B1 (en) | Systems and methods for evaluating unfamiliar executables | |
US9659156B1 (en) | Systems and methods for protecting virtual machine program code | |
US11429823B1 (en) | Systems and methods for dynamically augmenting machine learning models based on contextual factors associated with execution environments | |
US11023580B1 (en) | Systems and methods for cross-product malware categorization | |
US9842219B1 (en) | Systems and methods for curating file clusters for security analyses | |
US9692773B1 (en) | Systems and methods for identifying detection-evasion behaviors of files undergoing malware analyses |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200108 Address after: California, USA Patentee after: CA,INC. Address before: California, USA Patentee before: Symantec Corporation |
|
TR01 | Transfer of patent right |