CN107864676A - 用于检测计算过程中未知漏洞的系统和方法 - Google Patents
用于检测计算过程中未知漏洞的系统和方法 Download PDFInfo
- Publication number
- CN107864676A CN107864676A CN201680044075.7A CN201680044075A CN107864676A CN 107864676 A CN107864676 A CN 107864676A CN 201680044075 A CN201680044075 A CN 201680044075A CN 107864676 A CN107864676 A CN 107864676A
- Authority
- CN
- China
- Prior art keywords
- calculating process
- leak
- computing environment
- telemetry
- run
- 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
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/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- 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
- G06F21/54—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 by adding security routines or objects to programs
-
- 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/552—Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
-
- 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/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/568—Computer malware detection or handling, e.g. anti-virus arrangements eliminating virus, restoring damaged files
-
- 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/1433—Vulnerability analysis
-
- 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/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/034—Test or assess a computer or a system
-
- 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/2149—Restricted operating environment
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Virology (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Debugging And Monitoring (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了用于检测计算过程中未知漏洞的计算机实现的方法,可包括(1)通过计算过程在计算环境内运行时存入与计算过程相关的遥测数据,监视促进所述计算过程执行的所述计算环境,(2)确定所述计算过程在所述计算环境内运行时崩溃,(3)在所述遥测数据中搜索潜在导致所述计算过程在所述计算环境内运行时崩溃的任何漏洞的证据,(4)在所述遥测数据中搜索时,识别所述计算过程的至少一个漏洞的证据,所述漏洞尚不知道存在于所述计算过程内,然后响应于识别所述计算过程的漏洞的所述证据,(5)执行至少一个安全操作以阻止任何潜在的恶意利用所述计算过程的漏洞。本发明还公开了各种其他方法、系统和计算机可读介质。
Description
背景技术
计算机安全系统经常监视计算设备的潜在安全威胁。例如,计算设备可以实现传统的计算机安全系统以免受潜在的安全威胁。在该示例中,传统的计算机安全系统可能能够检测到已知安全威胁的存在。遗憾的是,虽然这一传统的计算机安全系统可能能够检测到已知安全威胁的存在,但是这种传统的计算机安全系统可能难以检测到未知安全威胁(例如,零日攻击和/或计算机安全系统的用户群中只有一台计算机遇到的文件)的存在。
安全威胁经常通过存在于运行在这些计算设备上的计算过程内的漏洞的方式渗入计算设备。例如,计算设备可安装和/或启动新发布的计算过程(诸如操作系统更新、软件应用程序和/或开发工具)。遗憾的是,这个新发布的计算过程可能无法解释在执行期间所发生的某些异常和/或错误。这些异常和/或错误可表示恶意攻击者为了感染、攻击和/或获得对计算设备的控制而能够利用的计算过程中的漏洞。
因此,本公开内容识别并解决了用于检测计算过程中未知漏洞的另外的和改进的系统和方法的需求。
发明内容
如将在下文更详细地描述,本公开内容描述了通过在此类计算过程已经崩溃之后所收集到的遥测数据内搜索某些模式,以用于检测计算过程中未知漏洞的各种系统和方法。
在一个示例中,用于检测计算过程中未知漏洞的计算机实现的方法可包括(1)通过计算过程在计算环境内运行时存入与计算过程相关的遥测数据,监视促进计算过程执行的计算环境,(2)确定计算过程在计算环境内运行时崩溃,(3)在遥测数据中搜索潜在导致计算过程在计算环境内运行时崩溃的任何漏洞的证据,(4)在遥测数据中搜索时,识别计算过程的至少一个漏洞的证据,该证据尚不知道存在于计算过程内,然后响应于识别计算过程的漏洞的证据,(5)执行至少一个安全操作以阻止任何潜在的恶意利用计算过程的漏洞。
在一个示例中,该方法也可包括利用应用编程接口(API)钩、分组捕获组件、文件系统监视器和/或网络交换机来存入遥测数据。在该示例中,该方法还可包括在一般在恶意攻击期间调用的API内插入钩。除此之外或作为另外一种选择,该方法可包括在导致一般在恶意攻击期间调用的API的代码路径内插入钩。
在一个示例中,该方法也可包括计算过程在计算环境内运行时,检测该计算环境内的调用栈的溢出。除此之外或作为另外一种选择,该方法可包括确定计算过程在计算环境内运行时已经抛出异常。
在一个示例中,该方法也可包括至少部分地基于遥测数据,确定计算环境内的调用栈上的异常处理程序在计算过程正在该计算环境内运行时被重写。除此之外或作为另外一种选择,该方法可包括至少部分地基于遥测数据,确定计算环境内的调用栈上的计算过程的虚拟地址在计算过程正在该计算环境内运行时被重写。
在一个示例中,该方法也可包括确定该漏洞尚不知道存在于计算过程内。例如,该方法可包括查询识别某些计算过程的已知漏洞的数据库,并且然后至少部分地基于该查询,确定该数据库不能将该计算过程识别为具有该漏洞。
遥测数据的示例包括而不限于,崩溃转储、计算环境的调用栈(诸如涉及计算过程的崩溃的调用栈)、API跟踪、环境上下文信息、以上各项中的一个或多个的变型、以上各项中的一个或多个的组合或任何其他合适的遥测数据。安全操作的示例包括而不限于,通知计算过程的供应商关于该计算过程的漏洞、将所述计算过程的漏洞的记录添加到识别某些计算过程的已知漏洞的数据库中、修改计算机安全系统以监视利用计算过程的漏洞的任何企图、以上各项中的一个或多个的变型、以上各项中的一个或多个的组合或任何其他合适的安全操作。
作为另一个示例,用于实现上述方法的系统可包括(1)存储在存储器中的监视模块,该监视模块(A)通过计算过程在计算环境内运行时存入与计算过程相关的遥测数据,监视促进计算过程执行的计算环境并且(B)确定计算过程在计算环境内运行时崩溃,(2)存储在存储器中的分析模块,该分析模块(A)在遥测数据中搜索潜在导致计算过程在计算环境内运行时崩溃的任何漏洞的证据并且(B)在遥测数据中搜索时,识别计算过程的至少一个漏洞的证据,该漏洞尚不知道存在于计算过程内(3)存储在存储器中的安全模块,该安全模块响应于识别的证据来执行至少一个安全操作以阻止任何潜在恶意利用计算过程的漏洞以及(4)至少一个物理处理器,该物理处理器执行监视模块、分析模块和安全模块。
在一些示例中,可将上述方法编码为非暂态计算机可读介质上的计算机可读指令。例如,计算机可读介质可包括一个或多个计算机可执行指令,这些指令在由计算设备的至少一个处理器执行时可使该计算设备(1)通过计算过程在计算环境内运行时存入与计算过程相关的遥测数据,监视促进计算过程执行的计算环境,(2)确定计算过程在计算环境内运行时崩溃,(3)在遥测数据中搜索潜在导致计算过程在计算环境内运行时崩溃的任何漏洞的证据,(4)在遥测数据中搜索时,识别计算过程的至少一个漏洞的证据,该漏洞尚不知道存在于计算过程内,然后响应于识别计算过程的漏洞的证据,(5)执行至少一个安全操作以阻止任何潜在恶意利用计算过程的漏洞。
来自上述实施方案中的任何一者的特征可根据本文所述的一般原理彼此结合地使用。通过结合附图和权利要求阅读下面的详细描述,将会更充分地理解这些和其他实施方案、特征和优点。
附图说明
附图示出了多个示例性实施方案并且为说明书的一部分。这些附图结合下面的描述展示并且说明本公开的各种原理。
图1为用于检测计算过程中的未知漏洞的示例性系统的框图。
图2为用于检测计算过程中的未知漏洞的另外的示例性系统的框图。
图3为用于检测计算过程中的未知漏洞的示例性方法的流程图。
图4为能够实现本文所描述和/或例示的一个或多个实施方案的示例性计算系统的框图。
图5为能够实现本文所描述和/或例示的一个或多个实施方案的示例性计算网络的框图。
在全部附图中,相同引用字符和描述指示类似但未必相同的元件。虽然本文所述的示例性实施方案可以接受进行各种修改和替代形式,但在附图中以举例的方式示出了特定实施方案并且将在本文详细描述这些实施方案。然而,本文所述的示例性实施方案并非旨在限于所公开的特定形式。相反,本发明涵盖落在所附权利要求范围内的所有修改形式、等同形式和替代形式。
具体实施方式
本公开内容通常涉及用于检测计算过程中未知漏洞的系统和方法。如将在下文更详细地解释,通过分析在过程崩溃之后从计算设备收集的遥测数据(例如,崩溃转储、调用栈、API跟踪和/或环境上下文信息),本文所描述的系统和方法可能能够识别指示漏洞的遥测数据内的某些模式。本文所描述的系统和方法也可确定是否已知此类漏洞存在于计算设备上的崩溃的计算过程内。
不知道漏洞存在于崩溃的计算过程内的情况下,本文所描述的系统和方法可执行安全操作以防止恶意攻击者为了感染、攻击和/或获得对计算设备的控制而利用任何这些漏洞。因此,本文所描述的系统和方法可在恶意攻击者检测和/或发现未知漏洞之前促进检测和/或发现这些漏洞(有时也被称为“零日漏洞”)。结果是,本文所描述的系统和方法可能能够提前解决这些漏洞,以抵御恶意攻击者试图利用这些漏洞开展将来的零日攻击。
下面将参考图1-图2提供用于检测计算过程中未知漏洞的示例性系统的详细描述。将结合图3提供对应计算机实现的方法的详细描述。此外,将分别结合图4和图5提供能够实现本文所述实施方案中的一个或多个的示例性计算系统和网络体系结构的详细描述。
图1为用于检测计算过程中未知漏洞的示例性系统100的框图。如该图所示,示例性系统100可包括用于执行一个或多个任务的一个或多个模块102。例如,并且如将在下文更详细地解释,示例性系统100可包括监视模块104,该监视模块(1)通过计算过程在计算环境内运行时存入与计算过程相关的遥测数据,监视促进计算过程执行的计算环境并且(2)确定计算过程在计算环境内运行时崩溃。
此外,并且如将在下文更详细地描述,示例性系统100可包括分析模块106,该分析模块(1)在遥测数据中搜索潜在导致计算过程在计算环境内运行时崩溃的任何漏洞的证据,并且(2)在遥测数据中搜索时,识别计算过程的至少一个漏洞的证据,该漏洞尚不知道存在于计算过程内。示例性系统100也可包括安全模块108,该安全模块响应于识别的证据来执行至少一个安全操作以阻止任何潜在恶意利用计算过程的漏洞。尽管被示为独立元件,但图1中的模块102中的一者或多者可表示单个模块或应用程序的部分。
在某些实施方案中,图1中的模块102中的一者或多者可表示一个或多个软件应用程序或程序,所述软件应用程序或程序在被计算设备执行时,可使计算设备执行一个或多个任务。例如,并且如将在下文更详细地描述,模块102中的一个或多个可表示存储在一个或多个计算设备上并且被配置为在一个或多个计算设备上运行的软件模块,所述计算设备诸如为图2中示出的设备(例如,计算设备202和/或服务器206)、图4中的计算系统410和/或图5中的示例性网络体系结构500的部分。图1中的模块102中的一者或多者还可表示被配置为执行一个或多个任务的一台或多台专用计算机的全部或部分。
图1中的示例性系统100可用多种方式来实现。例如,示例性系统100的全部或一部分可表示图2中的示例性系统200的部分。如图2所示,系统200可包括经由网络204与服务器206通信的计算设备202。在一个示例中,计算设备202可用模块102中的一个或多个进行编程。在该示例中,计算设备202可包括和/或表示促进计算过程210执行的计算环境208。除此之外或作为另外一种选择,计算设备202可包括和/或保持与计算环境208和/或计算过程210相关联地存入和/或收集遥测数据214的监视器组件212。
尽管计算环境208被示出为与图2中的计算设备202分离,但是计算设备202可另选地构成和/或表示计算环境208。类似地,尽管监视器组件212被示出为与图2中的计算环境208分离,但是监视器组件212可另选地构成和/或表示图2中的计算环境208的一部分和/或特定于计算环境208或与计算环境208相关的组件。
而且,尽管图2仅示出了一个监视器组件,但是系统200可另选地包括和/或涉及存入、收集和/或记录遥测数据214的部分的多个监视器组件。类似地,尽管图2仅示出了在计算环境208内运行的一个计算过程,但是系统200可另选地包括和/或涉及在计算环境208内同时运行的多个计算过程。
在一个示例中,服务器206可用模块102中的一个或多个模块进行编程。在该示例中,服务器206可经由网络204从计算设备202获得遥测数据214。除此之外或作为另外一种选择,服务器206可分析遥测数据214以确定计算过程210是否已经至少部分地由于任何漏洞而崩溃,该漏洞尚不知道存在于计算过程210内。
在一个实施方案中,图1的模块102中的一个或多个模块在通过计算设备202的至少一个处理器和/或服务器206被执行时,能够使计算设备202和/或服务器206检测计算过程中的未知漏洞。例如,并且如将在下文更详细地描述,模块102中的一个或多个可使计算设备202和/或服务器206(1)通过计算过程210在计算环境208内运行时存入与计算过程210相关的遥测数据214,监视促进计算过程210执行的计算环境208,(2)确定计算过程210在计算环境208内运行时崩溃,(3)在遥测数据214中搜索潜在导致计算过程210在计算环境208内运行时崩溃的任何漏洞的证据,(4)在遥测数据214中搜索时,识别计算过程210的至少一个漏洞的证据,该漏洞尚不知道存在于计算过程210内,然后响应于识别计算过程的漏洞的证据,(5)执行至少一个安全操作以阻止任何潜在恶意利用计算过程的漏洞。
计算设备202通常表示能够读取计算机可执行指令的任何类型或形式的计算设备。计算设备202的示例包括而不限于笔记本电脑、平板电脑、台式机、服务器、蜂窝电话、个人数字助理(PDA)、网络设备、多媒体播放器、嵌入式系统、可穿戴设备(例如,智能手表、智能眼镜等)、游戏控制台、这些设备中一个或多个的组合、图4中的示例性计算系统410或任何其他合适的计算设备。
计算环境208通常表示促进计算过程执行和/或启动的任何类型或形式的物理或虚拟的计算环境、工具、平台和/或引擎。计算环境208的示例包括而不限于,软件应用程序、操作系统、沙箱、运行环境、虚拟机、物理计算设备(诸如计算设备202)、以上各项中的一个或多个的变型、以上各项中的一个或多个的组合或任何其他合适的计算环境。
计算过程210通常表示能够在计算环境内运行和/或与计算环境相关联的任何类型或形式的应用程序、程序和/或过程。在一个示例中,计算过程210可包括和/或表示最近向用户发布的新的应用程序、更新和/或补丁。例如,计算过程210可包括和/或表示操作系统的beta版本。计算过程210的示例包括而不限于,软件应用程序、操作系统、小程序、计算机游戏、通信软件、联网软件、以上各项中的一个或多个的变型、以上各项中的一个或多个的更新、以上各项中的一个或多个的组合或任何其他合适的计算过程。
监视器组件212通常表示监视、观察和/或存入与在计算环境内运行的计算过程相关联的计算活动和/或遥测数据的任何类型或形式的设备、程序、代码和/或机制。在一个示例中,监视器组件212可表示监视模块104的一部分。在另一个示例中,监视器组件212可独立于且不同于监视模块104。例如,监视模块104可将监视器组件212插入和/或嵌入一般在恶意攻击期间被调用的API内和/或在导致此类API的代码路径内。监视器组件212的示例包括而不限于,钩、分组捕获组件、文件系统监视器、网络交换机、以上各项中的一个或多个的变型、以上各项中的一个或多个的组合或任何其他合适的监视器组件。
如本文所用术语“钩”通常是指促进拦截和/或记录对API的调用的代码的任何类型或形式的修改和/或扩充。在一个示例中,钩可包括和/或表示对API的修改和/或扩充,其至少暂时地将执行流从API的原始版本传输到另一个存储器位置和/或替代代码。例如,钩可包括和/或表示插入在API的开始或入口点处的代码(例如,跳转指令)。在该示例中,代码(有时称为“蹦床”)可暂时将执行流从API传输或转移到另一个存储器位置,在该位置另外的代码被配置为存入与发起对API的调用的计算过程相关的遥测数据。通过以这种方式存入遥测数据,在发起API调用的计算过程最终和/或意外崩溃的情况下,这些另外的代码可能能够收集和/或保持此类遥测数据用于分析。此类钩的示例包括而不限于,API钩、用户模式钩、内核模式钩、物理修改钩、运行时修改钩、事件钩、虚拟钩、网络过滤器钩、以上各项中的一个或多个的变型、以上各项中的一个或多个的组合或任何其他合适的钩。
遥测数据214通常表示与计算过程相关的任何类型或形式的数据、统计和/或信息。在一个示例中,遥测数据214可提供计算过程210是否会由于漏洞而崩溃的洞察。除此之外或作为另外一种选择,遥测数据214可识别和/或指示由计算环境208和/或计算设备202观察到的在崩溃之前的某些计算活动。遥测数据214的示例包括而不限于,崩溃转储、存储器转储、调用栈(诸如涉及过程崩溃的调用栈)、API跟踪、环境上下文信息、以上各项中的一个或多个的变型、以上各项中的一个或多个的组合或任何其他合适的遥测数据。
服务器206通常表示能够对遥测数据执行漏洞分析和/或观察与恶意软件分析相关联的计算活动的任何类型或形式的计算设备。服务器206的示例包括而不限于,应用服务器、安全服务器、web服务器、存储服务器、去重服务器和/或数据库服务器,其被配置为运行某些软件应用程序和/或提供各种安全、web、存储、去重和/或数据库服务。
网络204通常表示能够促进通信或数据传输的任何介质或体系结构。网络204的示例包括而不限于内联网、广域网(WAN)、局域网(LAN)、个域网(PAN)、互联网、电力线通信(PLC)、蜂窝网络(例如,全球移动通信系统(GSM)网络)、图5中的示例性网络体系结构500等等。网络204可使用无线或有线连接来促进通信或数据传输。在一个实施例中,网络204可促进计算设备202与服务器206之间的通信。
图3为用于检测计算过程中未知漏洞的示例性计算机实现的方法300的流程图。图3中示出的步骤可通过任何合适的计算机可执行代码和/或计算系统来执行。在一些实施方案中,图3中示出的步骤可通过图1中的系统100、图2中的系统200、图4中的计算系统410和/或图5中的示例性网络体系结构500的部分的组件中的一个或多个执行。
如图3所示,在步骤302处,本文所描述的系统中的一个或多个可通过计算过程在计算环境内运行时存入与计算过程相关的遥测数据,监视促进计算过程执行的计算环境。例如,监视模块104可作为图2中的计算设备202和/或服务器206的一部分,监视促进计算过程210的执行的计算环境208。在该示例中,当计算过程210在计算环境208内运行时,监测模块104可存入与计算过程210相关的遥测数据214。
本文所描述的系统可以以各种方式和/或上下文执行步骤302。在一个示例中,监视模块104可通过利用监视器组件212来存入遥测数据214的至少一部分,监视计算环境208。例如,在监视器组件212表示钩的情况下,监视模块104可在一般在利用攻击期间被调用的API内插入钩。除此之外或作为另外一种选择,监视模块104可在导致一般在利用攻击期间被调用的API的代码路径内插入钩。
在一个示例中,监视模块104可通过创建崩溃转储和/或存储器转储来存入遥测数据214的至少一部分。在另一个示例中,监视模块104可通过记录、拷贝和/或复制计算环境208的调用栈来存入遥测数据214的至少一部分。例如,监视模块104可识别计算环境208的哪个调用栈涉及计算过程210的崩溃,并且记录在崩溃之前的调用栈的内容。在另一个示例中,监视模块104可通过跟踪由计算过程210调用的API来存入遥测数据214的至少一部分。
在一个示例中,监视模块104可通过拦截由在计算环境208内运行的计算过程所制造的某些API调用来监视计算环境208。例如,监视模块104可拦截对在利用攻击期间一般由恶意软件调用的API的所有调用。除此之外或作为另外一种选择,监视模块104可拦截对能够导致(leading to)和/或导致(resulting in)在利用攻击期间一般由恶意软件调用的API的调用的另一个API的所有调用。换句话讲,监视模块104可监视一般定向的API自身和/或导致一般定向的API的任何代码路径。
返回图3,在步骤304处,本文所描述的系统中的一个或多个可确定计算过程在计算环境内运行时崩溃。例如,监视模块104可作为图2中的计算设备202和/或服务器206的一部分,确定计算过程210在计算环境208内运行时崩溃。如本文所用的与计算过程相关联的术语“崩溃”或短语“将崩溃”通常是指导致计算过程停止正常运作的任何类型或形式的异常终止和/或错误。
本文所描述的系统可以以各种方式和/或上下文执行步骤304。在一个示例中,监视模块104可通过将检测到崩溃的一段代码添加到计算过程210来确定计算过程210崩溃。例如,在计算过程210开始在计算环境208内运行之前,监视模块104可将一段代码添加到计算过程210。在该示例中,这段代码可被配置为检测任何异常终止和/或某些错误,然后将其报告给监视模块104和/或计算环境208。然后监视模块104可至少部分地基于被添加到计算过程210的这段代码来确定计算过程210已经崩溃。
除此之外或作为另外一种选择,监视模块104可通过检测计算环境208内的调用栈和/或缓冲器的溢出来确定计算过程210崩溃。例如,监视模块104可监视计算过程210在计算环境208内运行时所使用的调用栈和/或缓冲器。在该示例中,监视模块104可检测调用栈和/或缓冲器的溢出。然后监视模块104可确定计算过程210已经崩溃,因为当计算过程210在计算环境208内运行时,调用栈和/或缓冲区溢出。
除此之外或作为另外一种选择,监视模块104可至少部分地基于计算过程210在计算环境208内运行时所抛出和/或引发的异常来确定计算过程210崩溃。如本文所用术语“异常”通常是指在执行期间由计算过程遇到和/或经历的任何类型或形式的反常、意外和/或未曾预料的状况和/或计算状态。例如,监视模块104可监视计算过程210在计算环境208内运行时其所发起的计算活动。在监视计算过程210所发起的计算活动时,监视模块104可检测由计算过程210抛出和/或引发的异常。然后监视模块104可确定计算过程210已经崩溃,因为计算过程210已经抛出和/或引发了异常。
返回图3,在步骤306处,本文所描述的系统中的一个或多个可在遥测数据中搜索潜在导致计算过程在计算环境内运行时崩溃的任何漏洞的证据。例如,分析模块106可作为图2中的计算设备202和/或服务器206的一部分,在遥测数据214中搜索潜在导致计算过程210在计算环境208内运行时崩溃的任何漏洞的证据。在该示例中,分析模块106可响应于确定计算过程210已经崩溃而发起该搜索。
如本文所用术语“证据”通常是指指示或暗示存在漏洞的任何类型或形式的活动、行为、事件、观察、数据和/或信息。如本文所用术语“漏洞”通常是指计算过程中的任何类型或形式的缺点、弱点、敏感性和/或缺陷。在一个示例中,漏洞可包括和/或表示恶意攻击者可潜在利用的软件错误。除此之外和/或作为另外一种选择,漏洞可包括和/或表示存在于计算过程的代码内的编码监管。
本文所描述的系统可以以各种方式和/或上下文执行步骤306。在一些示例中,分析模块106可在遥测数据214中搜索指示和/或暗示特定漏洞的某些模式。作为示例,在遥测数据214包括崩溃转储的情况下,分析模块106可在崩溃转储中搜索指示和/或暗示计算环境208内的调用栈的溢出以及调用栈上的异常处理程序被重写的模式。例如,分析模块106可分析崩溃转储以确定包括计算过程210的异常处理程序的调用栈是否溢出以及异常处理程序是否被重写。
除此之外和/或作为另外一种选择,分析模块106可在崩溃转储中搜索指示和/或暗示计算环境208内的调用栈的溢出以及调用栈上的虚拟地址被重写的模式。例如,分析模块106可分析崩溃转储以确定包括计算过程210的虚拟地址的调用栈是否溢出以及虚拟地址是否被重写。
返回图3,在步骤308处,本文所描述的系统中的一个或多个可识别计算过程的至少一个漏洞的证据,该漏洞尚不知道存在于计算过程内。例如,分析模块106可作为图2中的计算设备202和/或服务器206的一部分,在遥测数据214中搜索时,识别计算过程210中的至少一个漏洞的证据。在该示例中,在分析模块106识别未知漏洞的证据之前和/或之时可能尚不知道漏洞存在于计算过程210内。如本文所用术语“未知漏洞”和“零日漏洞”通常是指当前未知、未公开和/或未修正的计算过程中的任何类型或形式的漏洞。
本文所描述的系统可以以各种方式和/或上下文执行步骤308。在一些示例中,分析模块106可通过识别遥测数据214内的某些模式来确定计算过程210具有未知漏洞。例如,分析模块106可识别指示和/或暗示包括计算过程210的异常处理程序的调用栈溢出以及异常处理程序被重写的模式。然后分析模块106可至少部分地基于遥测数据214内这种模式的识别来确定计算过程210具有某种漏洞。
除此之外和/或作为另外一种选择,分析模块106可识别指示和/或暗示包括计算过程210的虚拟地址的调用栈溢出以及虚拟地址被重写的模式。然后分析模块106可至少部分地基于遥测数据214内这种模式的识别来确定计算过程210具有某种漏洞。
在一些示例中,分析模块106可确定所识别的漏洞尚不知道存在于计算过程210内。换句话讲,分析模块106可确定计算过程的漏洞是未知漏洞和/或零日漏洞。在一个示例中,分析模块106可查询识别某些计算过程中的已知漏洞的数据库(图2中未示出)。在该示例中,数据库可包括和/或表示已知当前影响或先前已经影响大量计算过程的漏洞的运行列表。然后分析模块106可至少部分地基于该查询,确定数据库不将该计算过程识别为具有所识别的漏洞。结果是,分析模块106可确定计算过程的漏洞是未知漏洞和/或零日漏洞。
返回图3,在步骤310处,本文所描述的系统中的一个或多个可执行至少一个安全操作以阻止任何潜在恶意利用所述计算过程的漏洞。例如,安全模块108可作为图2中的计算设备202和/或服务器206的一部分,执行至少一个安全操作来解决计算过程210中所识别的漏洞。通过以这种方式执行安全操作,安全模块108可能能够有效地阻止任何潜在恶意利用所述计算过程的漏洞。换句话讲,通过以这种方式执行安全操作,安全模块108可能能够防止恶意攻击者为了感染、攻击和/或获得对正在执行计算过程210的任何计算设备的控制而利用该漏洞。
本文所描述的系统可以以各种方式和/或上下文执行步骤310。在一个示例中,安全模块108可通知计算过程210的开发者和/或供应商关于该计算过程的漏洞。在另一个示例中,安全模块108可将计算过程的漏洞的记录添加到识别某些计算过程的已知漏洞的数据库中。除此之外或作为另外一种选择,安全模块108可修改计算机安全系统(例如,反病毒程序和/或反恶意软件解决方案),以监视任何利用计算过程漏洞的企图和/或阻止此类企图。
如上文结合图1至图3所解释的,本文所描述的系统和方法可能能够检测到计算过程的未知和/或零日漏洞。通过检测此类漏洞,本文所描述的系统和方法可能能够抢占利用这些漏洞的零日攻击。作为示例,计算设备可安装和/或启动新发布的计算过程(诸如操作系统更新、软件应用程序和/或开发工具)。遗憾的是,这个新发布的计算过程可能无法解释在执行期间所发生的某些异常和/或错误。这些异常和/或错误可表示计算过程的漏洞,如果被恶意攻击者已知和/或发现,则其可能潜在地用作感染、攻击和/或获得对计算设备的控制而利用的漏洞。
为了尽力抢占和/或防止此类利用,计算机安全系统可监视由计算设备执行的计算过程。例如,安装在计算设备上的安全代理可在一般用于利用漏洞的API的代码路径内插入钩。在该示例中,钩可收集和/或存入某些遥测数据。在新发布的计算过程在计算设备上运行时经历崩溃的情况下,安全代理可将遥测数据发送到安全服务器以供分析。
当接收到遥测数据时,安全服务器就可针对某些模式分析遥测数据以暗示和/或指示存在漏洞。例如,安全服务器可分析遥测数据以确定包括计算过程的异常处理程序的调用栈是否溢出以及异常处理程序是否被重写。除此之外或作为另外一种选择,安全服务器可分析遥测数据以确定包括计算过程的虚拟地址的调用栈是否溢出以及虚拟地址是否被重写。在分析指示存在漏洞的情况下,安全服务器可采取补救措施来防止恶意攻击者为了感染、攻击和/或获得对执行新发布的计算过程的任何计算设备的控制而利用该漏洞。
图4为能够实现本文描述和/或例示的实施方案中的一个或多个的示例性计算系统410的框图。例如,计算系统410的全部或一部分可单独地或与其他元件结合来执行本文所述的步骤中的一个或多个(诸如图3所示的步骤中的一个或多个)和/或作为用于执行的装置。计算系统410的全部或一部分也可执行本文描述和/或例示的任何其他步骤、方法或过程和/或作为用于执行的装置。
计算系统410在广义上表示能够执行计算机可读指令的任何单处理器或多处理器计算设备或系统。计算系统410的示例包括而不限于:工作站、笔记本电脑、客户端方终端、服务器、分布式计算系统、手持设备或任何其他计算系统或设备。在其最基本的配置中,计算系统410可包括至少一个处理器414和系统存储器416。
处理器414通常表示能够处理数据或解译和执行指令的任何类型或形式的物理处理单元(例如,硬件实现的中央处理单元)。在某些实施方案中,处理器414可接收来自软件应用程序或模块的指令。这些指令可使处理器414执行本文描述和/或例示的一个或多个示例性实施方案的功能。
系统存储器416通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的易失性或非易失性存储设备或介质。系统存储器416的示例包括而不限于:随机存取存储器(RAM)、只读存储器(ROM)、闪存存储器或任何其他合适的存储器设备。尽管不是必需的,但在某些实施方案中,计算系统410可包括易失性存储器单元(诸如,例如,系统存储器416)和非易失性存储设备(诸如,例如,主存储设备432,如下详述)两者。在一个示例中,图1的模块102中的一个或多个可加载到系统存储器416中。
在某些实施方案中,除处理器414和系统存储器416之外,示例性计算系统410还可包括一个或多个组件或元件。例如,如图4所示,计算系统410可包括存储器控制器418、输入/输出(I/O)控制器420和通信接口422,它们中的每一个都可经由通信基础结构412互连。通信基础结构412通常表示能够促进计算设备的一个或多个组件之间的通信的任何类型或形式的基础结构。通信基础结构412的示例包括而不限于:通信总线(诸如工业标准体系结构(ISA))、外围组件互连(PCI)、PCI Express(PCIe)或类似的总线)和网络。
存储器控制器418通常表示能够处理存储器或数据或者控制计算系统410的一个或多个组件之间的通信的任何类型或形式的设备。例如,在某些实施方案中,存储器控制器418可经由通信基础结构412来控制处理器414、系统存储器416和I/O控制器420之间的通信。
I/O控制器420通常表示能够协调和/或控制计算设备的输入和输出功能的任何类型或形式的模块。例如,在某些实施方案中,I/O控制器420可控制或促进计算系统410的一个或多个元件之间的数据传输,这些元件是诸如处理器414、系统存储器416、通信接口422、显示适配器426、输入接口430和存储接口434。
通信接口422在广义上表示能够促进示例性计算系统410与一个或多个另外设备之间的通信的任何类型或形式的通信设备或适配器。例如,在某些实施方案中,通信接口422可促进计算系统410与包括另外计算系统的专用或公共网络之间的通信。通信接口422的示例包括而不限于:有线网络接口(诸如网络接口卡)、无线网络接口(诸如无线网络接口卡)、调制解调器和任何其他合适的接口。在至少一个实施方案中,通信接口422可经由与网络,诸如互联网的直接链接来提供与远程服务器的直接连接。通信接口422也可通过例如局域网(诸如以太网网络)、个人区域网、电话或电缆网络、蜂窝电话连接、卫星数据连接或任何其他合适的连接来间接提供此类连接。
在某些实施方案中,通信接口422还可表示主机适配器,该主机适配器被配置为经由外部总线或通信信道来促进计算系统410与一个或多个另外网络或存储设备之间的通信。主机适配器的示例包括但不限于:小型计算机系统接口(SCSI)主机适配器、通用串行总线(USB)主机适配器、电气与电子工程师协会(IEEE)1394主机适配器、高级技术附件(ATA)、并行ATA(PATA)、串行ATA(SATA)和外部SATA(eSATA)主机适配器、光纤通道接口适配器、以太网适配器等。通信接口422还可允许计算系统410参与分布式或远程计算。例如,通信接口422可接收来自远程设备的指令或将指令发送到远程设备以供执行。
如图4所示,计算系统410还可包括至少一个显示设备424,该显示设备经由显示适配器426联接到通信基础结构412。显示设备424通常表示能够以可视方式显示由显示适配器426转发的信息的任何类型或形式的设备。类似地,显示适配器426通常表示被配置为转发来自通信基础结构412(或来自帧缓冲器,如本领域中已知)的图形、文本和其他数据以在显示设备424上显示的任何类型或形式的设备。
如图4所示,示例性计算系统410还可包括经由输入接口430联接到通信基础结构412的至少一个输入设备428。输入设备428通常表示能够向示例性计算系统410提供输入(由计算机或人生成)的任何类型或形式的输入设备。输入设备428的示例包括而不限于:键盘、指示设备、语音识别设备或任何其他输入设备。
如图4所示,示例性计算系统410还可包括主存储设备432和经由存储接口434联接到通信基础结构412的备份存储设备433。存储设备432和433通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。例如,存储设备432和433可为磁盘驱动器(例如,所谓的硬盘驱动器)、固态驱动器、软盘驱动器、磁带驱动器、光盘驱动器、闪存驱动器等。存储接口434通常表示用于在存储设备432和433与计算系统410的其他组件之间传输数据的任何类型或形式的接口或设备。
在某些实施方案中,存储设备432和433可被配置为对被配置为存储计算机软件、数据或其他计算机可读信息的可移除存储单元执行读取和/或写入。合适的可移除存储单元的示例包括但不限于:软盘、磁带、光盘、闪存存储器设备等。存储设备432和433还可包括允许将计算机软件、数据或其他计算机可读指令加载到计算系统410内的其他类似结构或设备。例如,存储设备432和433可被配置为读取和写入软件、数据或其他计算机可读信息。存储设备432和433还可为计算系统410的一部分,或者可为通过其他接口系统进行访问的独立设备。
可将许多其他设备或子系统连接到计算系统410。相反地,无需图4中示出的所有组件和设备都存在,亦可实践本文描述和/或例示的实施方案。上文提及的设备和子系统还可通过不同于图4所示的方式互连。计算系统410还可采用任何数量的软件、固件和/或硬件配置。例如,本文所公开的一个或多个示例性实施方案可被编码为计算机可读介质上的计算机程序(也称为计算机软件、软件应用程序、计算机可读指令或计算机控制逻辑)。如本文所用,术语“计算机可读介质”通常指能够存储或携带计算机可读指令的任何形式的设备、载体或介质。计算机可读介质的示例包括而不限于:传输型介质(诸如载波)和非暂态型介质(诸如磁存储介质,例如,硬盘驱动器、带驱动器和软盘)、光存储介质(例如,光盘(CD)、数字视频盘(DVD)和蓝光光盘)、电子存储介质(例如,固态驱动器和闪存介质)和其他分配系统。
可将包含计算机程序的计算机可读介质加载到计算系统410中。然后可将计算机可读介质上存储的全部或部分计算机程序存储在系统存储器416和/或存储设备432和433的各个部分中。当由处理器414执行时,加载到计算系统410中的计算机程序可使处理器414执行执行本文描述和/或例示的示例性实施方案中的一个或多个的功能和/或作为用于执行其的装置。除此之外或作为另外一种选择,可在固件和/或硬件中实现本文描述和/或例示的示例性实施方案中的一者或多者。例如,计算系统410可被配置为用于实现本文所公开的示例性实施方案中的一个或多个的专用集成电路(ASIC)。
图5为示例性网络体系结构500的框图,其中客户端系统510、520和530以及服务器540和545可联接到网络550。如上所详述,网络体系结构500的全部或一部分可单独地或与其他元件结合来执行本文所公开的步骤中的一个或多个(诸如图3所示的步骤中的一个或多个)和/或作为用于执行其的装置。网络体系结构500的全部或一部分还可用于执行本公开中阐述的其他步骤和特征和/或作为用于执行其的装置。
客户端系统510、520和530通常表示任何类型或形式的计算设备或系统,诸如图4中的示例性计算系统410。类似地,服务器540和545通常表示被配置为提供各种数据库服务和/或运行某些软件应用程序的计算设备或系统,诸如应用程序服务器或数据库服务器。网络550通常表示任何电信或计算机网络包括,例如,内联网、WAN、LAN、PAN或互连网。在一个示例中,客户端系统510、520和/或530和/或服务器540和/或545可包括图1的系统100的全部或一部分。
如图5所示,一个或多个存储设备560(1)-(N)可直接附接到服务器540。类似地,一个或多个存储设备570(1)-(N)可直接附接到服务器545。存储设备560(1)-(N)和存储设备570(1)-(N)通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。在某些实施方案中,存储设备560(1)-(N)和存储设备570(1)-(N)可表示被配置为使用各种协议(诸如网络文件系统(NFS)、服务器消息块(SMB)或通用互联网文件系统(CIFS))与服务器540和545进行通信的网络附接存储(NAS)设备。
服务器540和545还可连接到存储区域网络(SAN)架构580。SAN架构580通常表示能够促进多个存储设备之间的通信的任何类型或形式的计算机网络或体系结构。SAN架构580可促进服务器540和545与多个存储设备590(1)-(N)和/或智能存储阵列595之间的通信。SAN架构580还可经由网络550以及服务器540和545以此类方式促进客户端系统510、520和530与存储设备590(1)-(N)和/或智能存储阵列595之间的通信,设备590(1)-(N)和阵列595呈现为客户端系统510、520和530的本地附接设备。与存储设备560(1)-(N)和存储设备570(1)-(N)相同,存储设备590(1)-(N)和智能存储阵列595通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。
在某些实施方案中,并参照图4的示例性计算系统410,通信接口(诸如图4中的通信接口422)可用于在每个客户端系统510、520和530与网络550之间提供连接性。客户端系统510、520和530可能能够使用例如网页浏览器或其他客户端软件来访问服务器540或545上的信息。此类软件可允许客户端系统510、520和530访问由服务器540、服务器545、存储设备560(1)-(N)、存储设备570(1)-(N)、存储设备590(1)-(N)或智能存储阵列595托管的数据。尽管图5示出了使用网络(诸如互联网)来交换数据,但本文描述和/或例示的实施方案并非仅限于互联网或任何特定的基于网络的环境。
在至少一个实施方案中,本文所公开的一个或多个示例性实施方案中的全部或一部分可被编码为计算机程序并加载到服务器540、服务器545、存储设备560(1)-(N)、存储设备570(1)-(N)、存储设备590(1)-(N)、智能存储阵列595或它们的任意组合上并加以执行。本文所公开的一个或多个示例性实施方案中的全部或一部分也可被编码为计算机程序,存储在服务器540中,由服务器545运行,以及通过网络550分配到客户端系统510、520和530。
如上所详述,计算系统410和/或网络体系结构500的一个或多个组件可执行和/或作为一种装置用于单独地或与其他元件结合来执行用于检测计算过程中的未知漏洞的示例性方法的一个或多个步骤。
虽然上述公开内容使用特定框图、流程图和示例阐述了各种实施方案,但每个框图组件、流程图步骤、操作和/或本文描述和/或例示的组件可使用多种硬件、软件或固件(或其任何组合)配置单独和/或共同地实现。此外,包含在其他组件内的组件的任何公开内容应当被视为在本质上是示例性的,因为可实施许多其他体系结构来实现相同功能。
在一些示例中,图1中的示例性系统100的全部或一部分可表示云计算环境或基于网络的环境的部分。云计算环境可通过互联网提供各种服务和应用程序。这些基于云的服务(例如软件即服务、平台即服务、基础结构即服务等)可通过网页浏览器或其他远程接口进行访问。本文所述的各种功能可通过远程桌面环境或任何其他基于云的计算环境提供。
在各种实施方案中,图1中的示例性系统100的全部或一部分可促进基于云的计算环境内的多租户应用。换句话讲,本文所述的软件模块可配置计算系统(例如,服务器)以促进本文所述功能中的一个或多个的多租户应用。例如,本文所述软件模块中的一个或多个可对服务器进行编程以允许两个或更多个客户端(例如,顾客)共享正在服务器上运行的应用程序。以这种方式编程的服务器可在多个顾客(即,租户)之间共享应用程序、操作系统、处理系统和/或存储系统。本文所述模块中的一个或多个还可为每个顾客分割多租户应用程序的数据和/或配置信息使得一个顾客不能访问另一个顾客的数据和/或配置信息。
根据各种实施方案,图1中的示例性系统100的全部或一部分可在虚拟环境内实现。例如,本文所述模块和/或数据可在虚拟机内驻留和/或执行。如本文所用,术语“虚拟机”通常指由虚拟机管理器(例如,管理程序)从计算硬件中抽象出来的任何操作系统环境。除此之外或作为另外一种选择,本文所述的模块和/或数据可在虚拟化层内驻留和/或执行。如本文所用,术语“虚拟化层”通常指覆盖操作系统环境和/或从操作系统环境中抽象出来的任何数据层和/或应用层。虚拟化层可由软件虚拟化解决方案(例如,文件系统过滤器)管理,软件虚拟化解决方案将虚拟化层呈现为就好像它是底层基本操作系统的一部分。例如,软件虚拟化解决方案可将最初定向至基本文件系统和/或注册表内的位置的调用重定向至虚拟化层内的位置。
在一些示例中,图1中的示例性系统100的全部或一部分可表示移动计算环境的部分。移动计算环境可由多种移动计算设备来实现,这些设备包括移动电话、平板电脑、电子书阅读器、个人数字助理、可穿戴计算设备(例如,具有头戴式显示器的计算设备、智能手表等),等等。在一些示例中,移动计算环境可具有一个或多个区别特征,包括(例如)对电池供电的依赖、在任何给定时间只呈现一个前台应用程序、远程管理特征、触摸屏特征、(例如,由全球定位系统、陀螺仪、加速度计等提供的)位置和移动数据、限制对系统级配置的修改和/或限制第三方软件检查其他应用程序的行为的能力的受限平台、限制应用程序的安装的控制装置(例如,仅安装来源于经批准的应用程序商店的应用程序),等等。本文所述的各种功能可被提供用于移动计算环境和/或可与移动计算环境交互。
此外,图1中的示例性系统100的全部或一部分可表示一个或多个信息管理系统的部分,与一个或多个信息管理系统交互,使用由一个或多个信息管理系统产生的数据和/或产生被一个或多个信息管理系统使用的数据。如本文所用,术语“信息管理”可指数据的保护、组织和/或存储。信息管理系统的示例可包括但不限于:存储系统、备份系统、存档系统、复制系统、高可用性系统、数据搜索系统、虚拟化系统等。
在一些实施方案中,图1中的示例性系统100的全部或一部分可表示一个或多个信息安全系统的部分,产生受一个或多个信息安全系统保护的数据和/或与一个或多个信息安全系统通信。如本文所用,术语“信息安全”可指对受保护数据的访问的控制。信息安全系统的示例可包括而不限于:提供受管理的安全服务的系统、数据丢失防护系统、身份认证系统、访问控制系统、加密系统、策略遵循系统、入侵检测与防护系统、电子发现系统等等。
根据一些示例,图1中的示例性系统100的全部或一部分可表示一个或多个端点安全系统的部分、与一个或多个端点安全系统通信和/或受一个或多个端点安全系统保护。如本文所用,术语“端点安全”可指保护端点系统免遭未经授权和/或非法使用、访问和/或控制。端点保护系统的示例可包括而不限于:反恶意软件系统、用户认证系统、加密系统、保密系统、垃圾邮件过滤服务,等等。
本文描述和/或例示的过程参数和步骤序列仅通过举例的方式给出并且可根据需要改变。例如,虽然本文示出和/或描述的步骤可以特定顺序示出或讨论,但这些步骤不一定需要按例示或讨论的顺序来执行。本文描述和/或例示的各种示例性方法也可省略本文描述或例示的步骤中的一个或多个,或除了所公开的那些步骤之外还包括另外步骤。
虽然在全功能计算系统的背景中描述和/或例示了各种实施方案,但这些示例性实施方案中的一个或多个可作为各种形式的程序产品来分配,而不顾及用于实际执行分配的计算机可读介质的特定类型。本文所公开的实施方案也可使用执行某些任务的软件模块来实现。这些软件模块可包括脚本、批文件或可存储在计算机可读存储介质上或计算系统中的其他可执行文件。在一些实施方案中,这些软件模块可将计算系统配置为执行本文所公开的示例性实施方案中的一个或多个。
此外,本文所述的模块中的一个或多个可将数据、物理设备和/或物理设备的表示从一种形式转换为另一种形式。例如,本文所述模块中的一个或多个可接收要转换的遥测数据,将该遥测数据进行转换,输出转换的结果以确定计算过程是否具有漏洞,使用该转换的结果来解决该漏洞,并且存储该转换的结果以备将来使用和/或参考。除此之外或作为另外一种选择,本文所述模块中的一个或多个可通过在计算设备上执行、在计算设备上存储数据和/或以其他方式与计算设备交互,来将处理器、易失性存储器、非易失性存储器、和/或物理计算设备的任何其他部分从一种形式转换为另一种形式。
提供前面描述的目的是使本领域的其他技术人员能够最好地利用本文所公开的示例性实施方案的各种方面。该示例性描述并非旨在是详尽的或局限于所公开的任何精确形式。在不脱离本发明精神和范围的前提下,可进行许多修改和变化。本文所公开的实施方案在所有方面均应被视为示例性的而非限制性的。应当参考所附权利要求及其等同形式来确定本发明的范围。
除非另有说明,否则在本说明书和权利要求中使用的术语“连接到”和“联接到”(以及其衍生形式)应该理解为允许直接和间接(即,经由其他元件或组件)连接。此外,在本说明书和权利要求中使用的术语“一”或“一个”应当理解为表示“...中的至少一者”。最后,为了易于使用,在本说明书和权利要求中使用的术语“包括”和“具有”(以及其衍生形式)与词语“包含”可互换并且与词语“包含”具有相同含义。
Claims (20)
1.一种用于检测计算过程中未知漏洞的计算机实现的方法,所述方法的至少一部分由包括至少一个处理器的计算设备执行,所述方法包括:
通过计算过程在计算环境内运行时存入与所述计算过程相关的遥测数据,监视促进所述计算过程执行的计算环境:
确定所述计算过程在所述计算环境内运行时崩溃;
响应于确定所述计算过程崩溃,在所述遥测数据中搜索潜在导致所述计算过程在所述计算环境内运行时崩溃的任何漏洞的证据:
在所述遥测数据中搜索时,识别所述计算过程的至少一个漏洞的证据,所述漏洞尚不知道存在于所述计算过程内;
响应于识别所述计算过程的漏洞的所述证据,执行至少一个安全操作以阻止任何潜在恶意利用所述计算过程的漏洞。
2.根据权利要求1所述的方法,其中监视所述计算环境包括利用以下各项中的至少一项通过存入所述遥测数据来监视所述计算环境:
应用编程接口(API)钩:
分组捕获组件:
文件系统监视器:
网络交换机。
3.根据权利要求2所述的方法,其中利用所述API钩存入所述遥测数据包括以下各项中的至少一项:
一般在恶意攻击期间调用的API内插入钩:
导致一般在恶意攻击期间调用的API的代码路径内插入钩。
4.根据权利要求1所述的方法,其中存入所述遥测数据包括以下各项中的至少一项:
创建崩溃转储:
记录所述计算环境的调用栈:
跟踪由所述计算过程调用的至少一个API:
识别所述计算环境的哪个调用栈涉及所述计算过程的所述崩溃。
5.根据权利要求1所述的方法,其中确定所述计算过程在所述计算环境内运行时崩溃包括,当所述计算过程在所述计算环境内运行时,检测所述计算环境内的调用栈的溢出。
6.根据权利要求1所述的方法,其中确定所述计算过程在所述计算环境内运行时崩溃包括,确定所述计算过程在所述计算环境内运行时已经抛出异常。
7.根据权利要求1所述的方法,其中识别所述计算过程的漏洞的所述证据包括,至少部分地基于所述遥测数据,确定所述计算环境内的调用栈上的异常处理程序在所述计算过程在所述计算环境内运行时被重写。
8.根据权利要求1所述的方法,其中识别所述计算过程的漏洞的所述证据包括,至少部分地基于所述遥测数据,确定所述计算环境内的调用栈上的所述计算过程的虚拟地址在所述计算过程在所述计算环境内运行时被重写。
9.根据权利要求1所述的方法,其中识别所述计算过程的漏洞的所述证据包括,通过以下步骤确定所述漏洞尚不知道存在于所述计算过程内:
查询识别某些计算过程的已知漏洞的数据库:
至少部分地基于所述查询,确定所述数据库不将所述计算过程识别为具有所述漏洞。
10.根据权利要求1所述的方法,其中响应于识别所述计算过程的漏洞的所述证据而执行所述安全操作包括以下各项中的至少一项:
通知所述计算过程的供应商关于所述计算过程的漏洞:
将所述计算过程的漏洞的记录添加到识别某些计算过程的已知漏洞的数据库中:
修改计算机安全系统以监视任何利用所述计算过程的漏洞的企图。
11.一种用于检测计算过程中未知漏洞的系统,所述系统包括:
存储在存储器中的监视模块,所述监视模块:
通过计算过程在所述计算环境内运行时存入与所述计算过程相关的遥测数据,监视促进所述计算过程执行的计算环境:
确定所述计算过程在所述计算环境内运行时崩溃:
存储在存储器中的分析模块,所述分析模块:
在所述遥测数据中搜索潜在导致所述计算过程在所述计算环境内运行时崩溃的任何漏洞的证据:
在所述遥测数据中搜索时,识别所述计算过程的至少一个漏洞的证据,所述漏洞尚不知道存在于所述计算过程内:
存储在存储器中的安全模块,所述安全模块响应于所述证据的所述识别来执行至少一个安全操作以阻止任何潜在恶意利用所述计算过程的漏洞。
至少一个物理处理器,所述物理处理器执行所述监视模块、所述分析模块和所述安全模块。
12.根据权利要求11所述的系统,其中所述监视模块利用以下各项中的至少一项来存入所述遥测数据:
应用编程接口(API)钩;
分组捕获组件;
文件系统监视器;
网络交换机。
13.根据权利要求12所述的系统,其中所述监视模块通过以下各项中的至少一项利用所述API钩存入所述遥测数据:
一般在恶意攻击期间调用的API内插入钩:
导致一般在恶意攻击期间调用的API的代码路径内插入钩。
14.根据权利要求11所述的系统,其中所述监视模块通过以下各项中的至少一项来存入所述遥测数据:
创建崩溃转储:
记录所述计算环境的调用栈:
跟踪由所述计算过程调用的至少一个API:
识别所述计算环境的哪个调用栈涉及所述计算过程的所述崩溃。
15.根据权利要求11所述的系统,其中所述计算过程在所述计算环境内运行时,所述监视模块通过检测所述计算环境内的调用栈的溢出来确定所述计算过程崩溃。
16.根据权利要求11所述的系统,其中所述监视模块通过确定所述计算过程在所述计算环境内运行时已经抛出异常来确定所述计算过程崩溃。
17.根据权利要求11所述的系统,其中所述分析模块通过至少部分地基于所述遥测数据,确定所述计算环境内的调用栈上的异常处理程序在所述计算过程在所述计算环境内运行时被重写来识别所述计算过程的漏洞的所述证据。
18.根据权利要求11所述的系统,其中所述分析模块通过至少部分地基于所述遥测数据,确定所述计算环境内的调用栈上的所述计算过程的虚拟地址在所述计算过程在所述计算环境内运行时被重写来识别所述计算过程的漏洞的所述证据。
19.根据权利要求11所述的系统,其中所述分析模块通过以下步骤确定所述漏洞尚不知道存在于所述计算过程内:
查询识别某些计算过程的已知漏洞的数据库:
至少部分地基于所述查询,确定所述数据库不将所述计算过程识别为具有所述漏洞。
20.一种非暂态计算机可读介质,其包括一个或多个计算机可执行指令,当由计算设备的至少一个处理器执行时,所述指令使所述计算设备:
通过计算过程在所述计算环境内运行时存入与所述计算过程相关的遥测数据,监视促进所述计算过程执行的计算环境;
确定所述计算过程在所述计算环境内运行时崩溃:
响应于确定所述计算过程崩溃,在所述遥测数据中搜索潜在导致所述计算过程在所述计算环境内运行时崩溃的任何漏洞的证据:
在所述遥测数据中搜索时,识别所述计算过程的至少一个漏洞的证据,所述漏洞尚不知道存在于所述计算过程内:
响应于识别所述计算过程的漏洞的所述证据,执行至少一个安全操作以阻止任何潜在恶意利用所述计算过程的漏洞。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/822,930 US10176329B2 (en) | 2015-08-11 | 2015-08-11 | Systems and methods for detecting unknown vulnerabilities in computing processes |
US14/822930 | 2015-08-11 | ||
PCT/US2016/038299 WO2017027103A1 (en) | 2015-08-11 | 2016-06-20 | Systems and methods for detecting unknown vulnerabilities in computing processes |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107864676A true CN107864676A (zh) | 2018-03-30 |
Family
ID=56511870
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680044075.7A Pending CN107864676A (zh) | 2015-08-11 | 2016-06-20 | 用于检测计算过程中未知漏洞的系统和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10176329B2 (zh) |
EP (1) | EP3335146B1 (zh) |
JP (1) | JP6680437B2 (zh) |
CN (1) | CN107864676A (zh) |
WO (1) | WO2017027103A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111444508A (zh) * | 2018-12-27 | 2020-07-24 | 北京奇虎科技有限公司 | 基于虚拟机实现的cpu漏洞检测装置及方法 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10264009B2 (en) * | 2016-07-26 | 2019-04-16 | Booz Allen Hamilton Inc. | Automated machine learning scheme for software exploit prediction |
US20180211046A1 (en) * | 2017-01-26 | 2018-07-26 | Intel Corporation | Analysis and control of code flow and data flow |
US20200233677A2 (en) * | 2018-04-11 | 2020-07-23 | Smart Enterprises, Inc. | Dynamically-Updatable Deep Transactional Monitoring Systems and Methods |
CN111291368B (zh) * | 2018-12-07 | 2024-06-18 | 北京奇虎科技有限公司 | Cpu漏洞的防御方法及系统 |
CN111382440B (zh) * | 2018-12-27 | 2024-05-10 | 北京奇虎科技有限公司 | 基于虚拟机实现的cpu漏洞检测方法及系统 |
JP2020202436A (ja) * | 2019-06-06 | 2020-12-17 | 日本電信電話株式会社 | 通信装置及び通信方法 |
US11750640B2 (en) | 2019-07-25 | 2023-09-05 | Deepfactor, Inc. | Systems, methods, and computer-readable media for executing a web application scan service |
US11243861B2 (en) | 2019-07-25 | 2022-02-08 | Deepfactor, Inc. | Systems, methods, and computer-readable media for analyzing intercepted telemetry events |
US20210374229A1 (en) * | 2020-05-28 | 2021-12-02 | Mcafee, Llc | Methods and apparatus to improve detection of malware in executable code |
CN112527681B (zh) * | 2020-12-24 | 2024-03-12 | 中国银联股份有限公司 | 一种程序的漏洞检测方法及装置 |
US12010517B1 (en) * | 2021-05-10 | 2024-06-11 | Zimperium, Inc. | Dynamic detection for mobile device security |
US20230208871A1 (en) * | 2021-12-28 | 2023-06-29 | SecureX.AI, Inc. | Systems and methods for vulnerability assessment for cloud assets using imaging methods |
US20230208870A1 (en) * | 2021-12-28 | 2023-06-29 | SecureX.AI, Inc. | Systems and methods for predictive analysis of potential attack patterns based on contextual security information |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004038594A1 (en) * | 2002-10-22 | 2004-05-06 | Unho Choi | Integrated emergency response system in information infrastructure and operating method therefor |
US20090320136A1 (en) * | 2008-06-24 | 2009-12-24 | Microsoft Corporation | Identifying exploitation of vulnerabilities using error report |
US20120005751A1 (en) * | 2010-07-02 | 2012-01-05 | Symantec Corporation | Systems and Methods for Creating Customized Confidence Bands for Use in Malware Detection |
CN102929614A (zh) * | 2012-10-16 | 2013-02-13 | 南京大学 | 一种用于漏洞检测的可调对象程序特征提取方法 |
US9021587B2 (en) * | 2011-10-27 | 2015-04-28 | Microsoft Technology Licensing, Llc | Detecting software vulnerabilities in an isolated computing environment |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7392527B2 (en) * | 2003-12-10 | 2008-06-24 | Microsoft Corporation | Driver-specific context for kernel-mode shimming |
US7434261B2 (en) * | 2004-09-27 | 2008-10-07 | Microsoft Corporation | System and method of identifying the source of an attack on a computer network |
JP2006185233A (ja) * | 2004-12-28 | 2006-07-13 | Hitachi Ltd | セキュリティ向上のためのプログラム変換方法及びこれを用いたコンパイラプログラム |
JP4619867B2 (ja) * | 2005-06-01 | 2011-01-26 | 三菱電機株式会社 | サーバ診断装置及びサーバ監視装置及びサーバ診断プログラム |
US20070180509A1 (en) | 2005-12-07 | 2007-08-02 | Swartz Alon R | Practical platform for high risk applications |
US20070162975A1 (en) * | 2006-01-06 | 2007-07-12 | Microssoft Corporation | Efficient collection of data |
US8528087B2 (en) | 2006-04-27 | 2013-09-03 | Robot Genius, Inc. | Methods for combating malicious software |
JP2007334536A (ja) * | 2006-06-14 | 2007-12-27 | Securebrain Corp | マルウェアの挙動解析システム |
US8453245B2 (en) * | 2006-12-29 | 2013-05-28 | Microsoft Corporation | Automatic vulnerability detection and response |
JP2010102454A (ja) * | 2008-10-22 | 2010-05-06 | Fuji Xerox Co Ltd | 情報処理装置、情報処理プログラム |
GB2478733B (en) * | 2010-03-15 | 2013-08-14 | Advanced Risc Mach Ltd | Apparatus and method for handling exception events |
US8990634B2 (en) * | 2010-11-03 | 2015-03-24 | Microsoft Technology Licensing, Llc | Reporting of intra-device failure data |
US9135405B2 (en) * | 2011-05-26 | 2015-09-15 | Carnegie Mellon University | Automated exploit generation |
JP5868515B2 (ja) * | 2012-09-25 | 2016-02-24 | 三菱電機株式会社 | シグニチャ検証装置及びシグニチャ検証方法及びプログラム |
US9158915B1 (en) * | 2013-05-24 | 2015-10-13 | Symantec Corporation | Systems and methods for analyzing zero-day attacks |
US9900299B2 (en) * | 2015-04-03 | 2018-02-20 | Oracle International Corporation | Aggregated computing infrastructure analyzer |
US9712418B2 (en) * | 2015-05-26 | 2017-07-18 | Microsoft Technology Licensing, Llc | Automated network control |
-
2015
- 2015-08-11 US US14/822,930 patent/US10176329B2/en active Active
-
2016
- 2016-06-20 EP EP16742064.5A patent/EP3335146B1/en active Active
- 2016-06-20 JP JP2018504900A patent/JP6680437B2/ja active Active
- 2016-06-20 WO PCT/US2016/038299 patent/WO2017027103A1/en active Application Filing
- 2016-06-20 CN CN201680044075.7A patent/CN107864676A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004038594A1 (en) * | 2002-10-22 | 2004-05-06 | Unho Choi | Integrated emergency response system in information infrastructure and operating method therefor |
US20090320136A1 (en) * | 2008-06-24 | 2009-12-24 | Microsoft Corporation | Identifying exploitation of vulnerabilities using error report |
US20120005751A1 (en) * | 2010-07-02 | 2012-01-05 | Symantec Corporation | Systems and Methods for Creating Customized Confidence Bands for Use in Malware Detection |
US9021587B2 (en) * | 2011-10-27 | 2015-04-28 | Microsoft Technology Licensing, Llc | Detecting software vulnerabilities in an isolated computing environment |
CN102929614A (zh) * | 2012-10-16 | 2013-02-13 | 南京大学 | 一种用于漏洞检测的可调对象程序特征提取方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111444508A (zh) * | 2018-12-27 | 2020-07-24 | 北京奇虎科技有限公司 | 基于虚拟机实现的cpu漏洞检测装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2017027103A1 (en) | 2017-02-16 |
EP3335146A1 (en) | 2018-06-20 |
EP3335146B1 (en) | 2020-08-05 |
US10176329B2 (en) | 2019-01-08 |
US20170046518A1 (en) | 2017-02-16 |
JP6680437B2 (ja) | 2020-04-15 |
JP2018522359A (ja) | 2018-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107864676A (zh) | 用于检测计算过程中未知漏洞的系统和方法 | |
JP6101408B2 (ja) | イベント相関グラフを使用してコンピューティングシステムに対する攻撃を検出するためのシステム及び方法 | |
US9800606B1 (en) | Systems and methods for evaluating network security | |
JP6703616B2 (ja) | セキュリティ脅威を検出するためのシステム及び方法 | |
CN106133743B (zh) | 用于优化预安装应用程序的扫描的系统和方法 | |
US9838405B1 (en) | Systems and methods for determining types of malware infections on computing devices | |
CN106133741B (zh) | 用于响应于检测可疑行为来扫描打包程序的系统和方法 | |
CN109074452B (zh) | 用于生成绊网文件的系统和方法 | |
CN105453102B (zh) | 用于识别已泄漏的私有密钥的系统和方法 | |
US10410158B1 (en) | Systems and methods for evaluating cybersecurity risk | |
US9967274B2 (en) | Systems and methods for identifying compromised devices within industrial control systems | |
CN108701188A (zh) | 响应于检测潜在勒索软件以用于修改文件备份的系统和方法 | |
US9703956B1 (en) | Systems and methods for categorizing virtual-machine-aware applications for further analysis | |
US9800590B1 (en) | Systems and methods for threat detection using a software program update profile | |
CN108293044A (zh) | 用于经由域名服务流量分析来检测恶意软件感染的系统和方法 | |
US9813443B1 (en) | Systems and methods for remediating the effects of malware | |
US9652615B1 (en) | Systems and methods for analyzing suspected malware | |
US9894085B1 (en) | Systems and methods for categorizing processes as malicious | |
US9934378B1 (en) | Systems and methods for filtering log files | |
CN109997138A (zh) | 用于检测计算设备上的恶意进程的系统和方法 | |
US11750634B1 (en) | Threat detection model development for network-based systems | |
US10114947B1 (en) | Systems and methods for logging processes within containers | |
US9825986B1 (en) | Systems and methods for generating contextually meaningful animated visualizations of computer security events | |
US10530805B1 (en) | Systems and methods for detecting security incidents | |
US10318742B1 (en) | Systems and methods for evaluating security software configurations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200106 Address after: California, USA Applicant after: CA,INC. Address before: California, USA Applicant before: Symantec Corporation |
|
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180330 |