CN106575336A - 对敏感代码恶意调用的检测与抑制 - Google Patents

对敏感代码恶意调用的检测与抑制 Download PDF

Info

Publication number
CN106575336A
CN106575336A CN201580045226.6A CN201580045226A CN106575336A CN 106575336 A CN106575336 A CN 106575336A CN 201580045226 A CN201580045226 A CN 201580045226A CN 106575336 A CN106575336 A CN 106575336A
Authority
CN
China
Prior art keywords
code
perform
page
mistake
instruction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201580045226.6A
Other languages
English (en)
Inventor
R·萨希塔
L·邓
V·尚伯格
L·陆
A·谢普森
I·塔托里安
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
McAfee LLC
Original Assignee
McAfee LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by McAfee LLC filed Critical McAfee LLC
Publication of CN106575336A publication Critical patent/CN106575336A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring 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/53Monitoring 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 executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Debugging And Monitoring (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)

Abstract

本文所描述的具体实施例提供了一种电子设备,所述电子设备可以被配置成用于标识待监测的代码区域,探测并锁定包括所述所标识代码区域的代码页,并且将所述代码页重映射为仅执行。所述代码页可以在替代性扩展页表视图中被重映射为仅执行。

Description

对敏感代码恶意调用的检测与抑制
技术领域
本公开总体上涉及信息安全领域,并且更具体地涉及对敏感代码恶意调用的检测与抑制。
背景技术
网络安全领域在当今社会中已经变得越来越重要。互联网已经使得全世界不同计算机网络能够互连。具体地,互联网提供了用于通过各种类型的客户端设备在连接至不同计算机网络的不同用户之间交换数据的介质。虽然互联网的使用已经改变了商业和个人通信,它同样已经被用作恶意操作者对计算机和计算机网络进行未授权访问以及对敏感信息的有意或无意暴露的工具。
使主机感染的恶意软件(“malware”)可能能够执行任何数量的恶意行为,如从与主机相关联的商务或个人窃取敏感信息、传播至其他主机、和/或协助分布式拒绝服务攻击、从主机发出垃圾邮件或恶意邮件等。因此,对于保护计算机和计算机网络免受恶意软件的恶意或无意利用,存在着显著的管理性挑战。
附图说明
为了提供对本公开及其特征和优点的更加完整的理解,结合附图参考以下说明书,其中相同的参考标号表示相同的部件,其中:
图1是根据本公开的实施例的一种用于检测并抑制敏感代码恶意调用的通信系统的简化框图;
图2是根据本公开的实施例的一种用于检测并抑制敏感代码恶意调用的通信系统的一部分的简化框图;
图3A是根据本公开的实施例的一种用于检测并抑制敏感代码恶意调用的通信系统的示例细节的简化图;
图3B是根据本公开的实施例的一种用于检测并抑制敏感代码恶意调用的通信系统的示例细节的简化图;
图3C是根据本公开的实施例的一种用于检测并抑制敏感代码恶意调用的通信系统的示例细节的简化图;
图3D是根据本公开的实施例的一种用于检测并抑制敏感代码恶意调用的通信系统的示例细节的简化图;
图4是简化流程图,展示了根据实施例的可以与通信系统相关联的可能操作;
图5是简化流程图,展示了根据实施例的可以与通信系统相关联的可能操作;
图6是简化流程图,展示了根据实施例的可以与通信系统相关联的可能操作;
图7是简化流程图,展示了根据实施例的可以与通信系统相关联的可能操作;
图8是框图,展示了根据实施例的采用点对点配置安排的示例计算系统;
图9是与本公开的示例ARM生态系统片上系统(SOC)相关联的简化框图;以及
图10是框图,展示了根据实施例的示例处理器核。
附图中的这些图不必按比例绘制,因为在不背离本公开的范围的情况下其尺寸可以显著地改变。
具体实施方式
示例实施例
图1是根据本公开的实施例的一种用于检测并抑制敏感代码恶意调用的通信系统的简化框图。通信系统10可以包括电子设备12、服务器34以及云36。电子设备12可以包括监测模块14、处理器16、策略和处置器(handler)28以及存储器30。存储器30可以包括扩展页表(EPT)20、栈22、应用程序接口(API)24以及映射表26。在实施例中,电子设备12可包括恶意软件18a。
恶意设备38可以包括恶意软件18b。恶意设备38可能试图向电子设备12中引入恶意软件18b。电子设备12、服务器34、云36以及恶意设备38可以通过网络32连接。在一个示例中,恶意设备38可以直接与电子设备12连接(例如,通过USB类型连接)。恶意设备38可以是试图向电子设备12中引入恶意代码(例如,恶意软件18a或18b)的任何设备。
在示例实施例中,通信系统10可以被配置成包括一种提供钩子规避检测、面向跳转编程(Jump Oriented Programming,JOP)、面向返回编程(Return OrientedPrograming,ROP)等的系统,以调用敏感API而无需敏感API代码上的任何钩子(Hook)或补丁并且无需恶意软件的任何先验知识(例如,无需签名)。监测模块14可以被配置成用于将包含敏感API代码页的代码页标记为不可执行,从而能够使用虚拟化异常(#VE)来验证进入代码部分的入口。进一步地,所述系统可以使用最后异常记录(LER)以及最后分支记录(LBR)过滤能力来提取关于环3(用户模式)间接分支的信息并且告知间接CALLIJMP或RET(即,返回调用)用于(使用#VE通过拦截)恶意地调用被监测页上的敏感API代码。
图1的元素可以通过一个或多个接口采用任何合适的连接(有线或无线)耦合到彼此,所述连接提供可用于网络(例如,网络32)通信的通路。另外,可以基于具体配置需求将图1的这些元素中的任何一个或多个与架构进行组合或从中移除。通信系统10可以包括能够进行传输控制协议/互联网协议(TCP/IP)通信以便在网络中传输或接收报文的配置。通信系统10还可以在适当情况下并基于具体需求结合用户数据报协议/IP(UDP/IP)或任何其他适当协议运行。
出于展示通信系统10的某些示例技术的目的,重要的是理解可以贯穿网络环境的通信。以下基础信息可以被视为可以从其中正确解释本公开的基础。
安全软件可以通过向敏感API的包络执行应用绕行(Detour)/钩子来监测敏感代码的执行。恶意软件作者非常清楚安全软件应用的这些技术,并且可以通过读取API代码(例如,在用于检测并移除隐匿技术的工具如GMER或其他工具中将所述代码与磁盘上或存储器中的图像进行对比)或者读取所述代码并且分析API的代码中特定的控制流模式来检测这样的钩子。恶意软件还可以通过跳转至敏感API的中间(例如,使用跳转命令)来开始执行这样的敏感API,以完全地简单规避任何安全软件的绕行/钩子。在这种情况下,安全代码根本看不到被恶意执行的敏感API,从而允许执行恶意软件、修改许可并且进行攻击。
当前软件方法在没有包括敏感API代码的过程代码的全部二进制变换的情况下,无法检测钩子-跳过攻击。在许多情况下,由于API钩子可以被规避而无法依赖所述API钩子,因此无法选择性地使能二进制变换。因此,二进制变换必须一直活跃,造成了性能开销。需要一种可以检测钩子跳过攻击而无需进行修补以包络敏感API并且可以检测进入敏感API的恶意控制流而无需对过程数据结构或代码进行任何修补的系统。
用于检测并抑制敏感代码恶意调用的通信系统(如图1中描绘的)可以解决这些问题(以及其他问题)。通信系统10可以被配置成用于包括一种其中监测模块14将策略指定至#VE策略管理器和处置器(例如,策略和处置器28)的系统。在实施例中,所述#VE策略管理器和处置器更新由管理程序管理的EPT(例如,EPT20),以将错误EPT视图中特定的API页去特权而防止被执行并且创建用于执行所述页的替代性映射。所述#VE策略管理器和处置器为这些特定页使能#VE异常递送。当发生API执行(正常执行或恶意执行)时,报告不可信视图中的EPT错误。所述报告可以作为#VE异常对所述#VE管理器和处置器的违反,并且所述#VE管理器和处置器可以将所述事件调度至监测模块14,所述监测模块检查接收的上下文信息(例如,入口点、调用偏移等)并且调用API特定包装或分析代码。
如果API的入口点不在合适的入口点(即,所述偏移为非零),则两种方法之一可以用于定位调用代码在栈上设置的参数。在第一种方法中,将入口偏移映射至栈偏移的映射表(例如,映射表26)被用于将入口偏移映射至应该用于接入栈上的参数的栈偏移。第二种方法可以基于通过入口点进入被监测代码的入口的偏移并且使用指令的解码来定位栈参数,以标识栈操作并评估需要调整栈的偏移。
转到图1的基础设施,示出了根据示例实施例的通信系统10。总体上,通信系统10可以以任何网络类型或拓扑实现。网络32代表互连的通信路径中的一系列点或节点用于接收和发射通过通信系统10传播的信息分组。网络32在节点之间提供通信接口,并且可以被配置成任何局域网(LAN)、虚拟局域网(VLAN)、广域网(WAN)、无线局域网(WLAN)、城域网(MAN)、内联网、外联网、虚拟私人网络(VPN)、以及任何其他便于网络环境中通信的适当架构或系统,或其任何适当组合,包括有线和无线通信。
在通信系统10中,可以根据任何适当的通信消息协议发送和接收网络流量(包括分组、帧、信号、数据等)。适当的通信消息协议可以包括多层方案如开放系统互联(OSI)模型,或其任何推导或变形(例如,传输控制协议/互联网协议(TCP/IP)、用户数据报协议/IP(UDP/IP))。相应地,在通信系统10中还可以提供蜂窝网络上的无线电信号通信。可以提供适当的接口和基础设施来使能与蜂窝网络的通信。
如在此所使用的术语“分组”指可以在分组交换网络上的源节点与目的节点之间路由的数据单元。分组包括源网络地址和目的网络地址。在TCP/IP消息协议中,这些网络地址可以是互联网协议(IP)地址。如在此所使用的术语“数据”指任何类型的二进制、数字、语音、视频、文本、或脚本数据,或任何类型的源代码或对象代码,或在电子设备和/或网络中可以从一个点传达至另一个点的、任何其他恰当格式的任何其他适当信息。另外,消息、请求、响应、和询问是网络流量的形式,并且因此可以包括分组、帧、信号、数据等。
在示例实施方式中,电子设备12、服务器34以及云36是网元,它们意味着包含网络电器、服务器、路由器、交换机、网关、桥接器、负载均衡器、处理器、模块,或任何其他适当的设备、部件、元件、或可运行以在网络环境中交换信息的对象。网元可以包括任何适当的硬件、软件、部件、模块、或便于其运行的对象,以及用于在网络环境中接收、发射、和/或另外传达数据或信息的适当接口。这可以包括允许数据或信息的有效交换的恰当的算法和通信协议。
关于与通信系统10相关联的内部结构,电子设备12、服务器34以及云36中的每一个可以包括存储器元件,所述存储器元件用于存储有待用于在此所描绘的操作的信息。电子设备12、服务器34以及云36中的每一个可以将信息保持在任何适当的存储器元件(例如,随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、专用集成电路(ASIC)等)、软件、硬件、固件中,或(在合适的情况下并基于具体需要)任何其他适当的部件、设备、元件、或对象中。在此所讨论的存储器项中的任何一个应当被理解为包含在宽泛术语‘存储器元件’内。而且,可以在任何数据库、寄存器、队列、表格、缓存、控制列表、或其他存储结构(所有这些可以在任何适当的时间帧被引用)中提供在通信系统10中被使用、追踪、发送、或接收的信息。任何此类存储选项也可以包括在如在此所使用的宽泛术语‘存储器元件’内。
在某些示例实现方式中,在此所描绘的功能可以通过被逻辑编码在一种或多种有形介质(例如,ASIC中所设置的嵌入式逻辑、数字信号处理器(DSP)指令、有待由处理器执行的软件(潜在地包括对象代码和源代码)、或其他类似机器等)中来实现,所述一种或多种有形介质可以包括非瞬态计算机可读介质。在这些实例中的一部分中,存储器元件可以存储用于在此所描述的操作的数据。这包括能够存储被执行以实施在此所描述的活动的软件、逻辑、代码、或处理器指令的存储器元件。
在示例实现方式中,通信系统10的网元,如电子设备12、服务器34以及云36,可以包括软件模块(例如,监测模块14)用于实现或用于培养在此所描绘的操作。这些模块可以通过任何适当的方式合适地组合,这可以基于具体配置和/或规定需要。在示例实施例中,此类操作可以由硬件实施、在这些元件之外实现、或包括在某个其他网络设备中以用于实现预期的功能。此外,这些模块可以被实现为软件、硬件、固件、或其任何适当组合。这些元件还可以包括软件(或往复式软件),所述软件可以与其他网络元件协调以便实现如在此所描绘的操作。
此外,电子设备12、服务器34以及云36中的每一个可以包括可以执行软件或算法的处理器以执行在此所讨论的活动。处理器可以执行与数据相关联的任何类型的指令,从而实现在此详述的操作。在一个示例中,所述处理器可以将元件或物品(例如,数据)从一种状态或事物变换成另一种状态或事物。在另一示例中,在此所描绘的活动可以用固定逻辑或可编程逻辑(例如,由处理器执行的软件/计算机指令)实现,并且在此所标识的元件可以是某种类型的可编程处理器、可编程数字逻辑(例如,现场可编程门阵列(FPGA)、EPROM、EEPROM)或包括数字逻辑的ASIC、软件、代码、电子指令、或其任何适当组合。在此所描述的可能的处理元件、模块以及机器中的任何一个可以被理解为包含在宽泛术语‘处理器’中。
电子设备12可以是网元,并且包括例如台式计算机、膝上计算机、移动设备、私人数字助手、智能电话、平板计算机、或其他类似设备。服务器34可以是网元(如服务器或虚拟服务器)并且可以与客户端、顾客、端点、或期望通过某个网络(例如,网络32)在通信系统10中发起通信的末端用户相关联。术语‘服务器’包括用于代表通信系统10内的客户端服务客户端的请求和/或执行某种计算任务的设备。虽然监测模块14在图1中被表示为位于电子设备12中,这仅仅是出于示意性目的。在任何适当的配置中,监测模块14可以是组合的或分离的。进一步地,监测模块14可以集成或分布在另一个可由电子设备12(如,服务器34或云36)访问的网络中。云36被配置成用于向电子设备12提供云服务。云服务总体上可以被定义为作为服务在网络(如互联网)上传递的计算资源的使用。通常,在云基础结构中提供了计算资源、存储以及网络资源,从而有效地将工作负荷从本地网络转移至云网络。
转到图2,图2是根据本公开的实施例的一种用于检测并抑制敏感代码恶意调用的通信系统10的一部分的简化框图。图2展示了根据本公开的实施例的用于检测并抑制敏感代码恶意调用的示例操作。监测模块14可以将环3-API监测策略指定至策略和处置器28。策略和处置器28可以更新EPT 20以将错误EPT视图中特定的API页去特权而防止被执行,并且创建用于执行所述特定API页的替代性映射。策略和处置器28还可以为所述特定API页使能异常递送(例如,#VE异常递送)。当发生特定API页执行时,报告不可信视图中的EPT错误。所述报告的错误被报告为异常并被发送至监测模块14。监测模块14可以检查与所述异常相关的上下文信息,并且如果API入口点不在合适的入口点,则将入口偏移映射至栈偏移的映射表(例如,映射表26)可以用于就爱那个入口偏移映射至应该用于接入栈(例如,栈22)上的参数的栈偏移。替代性方法可以基于通过入口点进入被监测页的入口的偏移并且使用指令的解码来定位栈参数,以标识栈操作并评估需要调整栈的偏移。
转到图3A,图3A是根据本公开的实施例的一种用于检测并抑制敏感代码恶意调用的通信系统的一部分的简化图。图3A展示了32位函数的正常调用。入口点Ox75264489被报告为入口点=Ox75264489,偏移OxO。所述参数(未示出)可以由调用函数设置。转到图3B,图3B是根据本公开的实施例的一种用于检测并抑制敏感代码恶意调用的通信系统的一部分的简化图。图3B为图3B中展示的32位函数展示了映射表,所述32位函数为入口点Ox75264489处的函数。
转到图3C和图3D,图3C和图3D是根据本公开的实施例的一种用于检测并抑制敏感代码恶意调用的通信系统的一部分的简化图。图3C展示了图3A所示的函数的恶意调用40。所述恶意调用可以在地址Ox7526448C处越过代码跳转进API的中间。所述恶意调用40可以是在跳转进指令流的中间之前由恶意软件18a执行的代码。使用入口点“Ox75264489,偏移”Ox3来调用回调。对于此实例,地址Ox7526448C用于(在这种硬编码情况下)展示概念,然而,通过一些存储器公开作为由恶意软件18a使用的易损性的一部分,典型地发现这些地址。
由于入口点偏移为Ox3,映射表(例如,映射表26)可以提供栈偏移4,所述栈偏移可以被监测模块14用于从栈22读取参数。注意,恶意软件要成功地使用API,所述恶意软件一定不能损坏栈并且遵守由API预期的协定。
转至图4,图4是根据实施例展示了流程400的可能操作的示例流程图,所述流程可能与检测并抑制敏感代码恶意调用相关联。在实施例中,可以由监测模块14执行流程400的一个或多个操作。在402处,标识待监测的代码区域。在404处,探测并锁定操作系统页表中包括代码区域的代码页。在406处,所述代码页被设为不可执行,并且在替代性扩展页表视图中被重映射为仅执行。在408处,捕获针对所述代码页的间接虚拟寻址分支和返回。在410处,对虚拟化异常处置器进行编程以处置所述代码页上的执行错误。
转至图5,图5是根据实施例展示了流程500的可能操作的示例流程图,所述流程可能与检测并抑制敏感代码恶意调用相关联。在实施例中,可以由监测模块14执行流程500的一个或多个操作。在502处,发生虚拟寻址加载事件。在504处,系统判定是否正针对执行(例如,API执行)监测所述加载事件。如果并未正针对执行监测所述加载事件,则允许所述事件,如在504中。如果正针对执行监测所述加载事件,则从调用栈中清除最近记录的分支并且记录最后异常,如在508中。
转至图6,图6是根据实施例展示了流程600的可能操作的示例流程图,所述流程可能与检测并抑制敏感代码恶意调用相关联。在实施例中,可以由监测模块14执行流程600的一个或多个操作。在602处,发生被监测代码页上的执行错误。在604处,确定所述执行错误的原因。在606处,读取来自调用栈的最近记录的分支以及最后异常记录地址。在606处,对最后异常记录地址与应用程序接口区域的被监测页进行比较。在608处,系统判定所述执行错误是否是由于环0中断返回。如果所述执行错误是由于环0中断返回,则生成错误消息,如在622中。如果所述执行错误不是由于环0中断,则系统判定被监测应用程序接口是否是由于来自不可信代码的分支而被执行,如在612中。如果所述被监测应用程序接口是由于来自不可信代码的分支而被执行,则记录最后异常记录地址,如在614中。如果所述被监测应用程序接口不是由于来自不可信代码的分支而被执行,则系统判定所述执行是否在入口点处,如在616中。如果所述执行在入口点处,则清除最后异常记录地址并将所述执行标记为有效应用程序接口尝试,如在618中。如果所述执行在入口点处,则清除最后异常记录地址并且计算与入口点的偏移,如在620中。
转至图7,图7是根据实施例展示了流程700的可能操作的示例流程图,所述流程可能与检测并抑制敏感代码恶意调用相关联。在实施例中,可以由监测模块14执行流程700的一个或多个操作。在702处,利用入口点和偏移将事件报告至环3处置器。在704处,系统判定所述偏移是否为零。如果所述偏移为零,则所述栈无需调整以读取参数,如在706中。如果所述偏移不为零,则基于映射表调整所述栈来读取参数,如在710中。在708处,基于上下文特定规则处置敏感应用程序接口调用。
图8展示了根据实施例的采用点对点(PtP)配置安排的计算系统800。具体地,图8示出了一种系统,在所述系统中,处理器、存储器以及输入/输出设备通过许多点对点接口互连。通常,可以采用与计算系统800相同或类似的方式来配置通信系统10的网元中的一个或多个网元。
如图8所示,系统800可以包括多个处理器,为清楚起见,仅示出了其中两个,即处理器870和880。尽管示出了两个处理器870和880,应理解的是系统800的实施例还可以仅包括一个这样的处理器。处理器870和880可以各自包括一组核(即,处理器核874A和874B以及处理器核884A和884B)以执行程序的多个线程。所述核可以被配置成用于采用类似于上文参考图1至图7所讨论的方式来执行指令代码。每个处理器870、880可以包括至少一个共享缓存871、881。共享缓存871、881可以存储由处理器870、880的一个或多个部件(如,处理器核874和884)利用的数据(例如,指令)。
处理器870和880还可以各自包括集成式存储器控制器逻辑(MC)872和882以与存储器元件832和834通信。存储器元件832和/或834可以存储处理器870和880所使用的各种数据。在替代性实施例中,存储器控制器逻辑872和882可以将逻辑与处理器870和880分离。
处理器870和880可以是任何类型的处理器并且可以分别使用点对点接口电路878和888经由点对点(PtP)接口850交换数据。处理器870和880中的每一个处理器可以使用点对点接口电路876、886、894和898经由单独的点对点接口852和854来与芯片组890交换数据。芯片组890还可以使用接口电路892(这可以是PtP接口电路)经由高性能图形接口839与高性能图形电路838交换数据。在替代性实施例中,图8中所展示的PtP链接中的任何一个或全部可以被实现为多点分支总线而不是PtP链路。
芯片组890可以经由接口电路896与总线820通信。总线820可以具有一个或多个通过它通信的设备,如总线桥818和I/O设备816。通过总线810,总线桥818可以与其他设备通信,如键盘/鼠标812(或其他输入设备,如触摸屏、滚动球等)、通信设备826(如调制解调器、网络接口设备、或其他类型的可以通过计算机网络860通信的通信设备)、音频I/O设备814、和/或数据存储设备828。数据存储设备828可以存储代码830,所述代码可以由处理器870和/或880执行。在替代性实施例中,总线架构的任何部分可以由一个或多个PtP链路实现。
图8中所描绘的计算机系统是可以用于实现在此所讨论的各实施例的计算系统的实施例的示意性展示。将理解的是,图8中所描绘的系统的各个部件可以结合在片上系统(SoC)架构中或任何其他合适的配置中。例如,本文所公开的实施例可以并入到包括移动设备(如智能蜂窝电话、平板计算机、个人数字助理、便携式游戏设备等)的系统中。将认识到的是,在至少一些实施例中这些移动设备可以配备有SoC体系结构。
回到图9,图9是与本公开的示例ARM生态系统SOC 900相关联的简化框图。本公开的至少一个示例实现方式可以包括在此所讨论的追踪和检测特征,以及ARM部件。例如,图9的示例可以与任意ARM核(例如,A-9、A-15等)相关联。进一步,所述架构可以是以下各项的一部分:任何类型的平板、智能电话(包括安卓(AndroidTM)电话、iPhoneTM)、iPadTM、谷歌(Google)NexusTM、微软SurfaceTM、私人计算机、服务器、视频处理部件、膝上计算机(包括任何类型的笔记本)、超级笔记本(Ultra bookTM)系统、任何类型的触摸使能的输入设备等。
在图9的这个示例中,ARM生态系统SOC 900可以包括多个核906-907、L2缓存控制908、总线接口单元909、L2缓存910、图形处理单元(GPU)915、互连902、视频编解码器920、以及液晶显示器(LCD)I/F 925,它可以与耦合至LCD的移动工业处理器接口(MIPI)/高清晰多媒体接口(HDMI)链路相关联。
ARM生态系统SOC 900还可以包括用户标识模块(SIM)I/F 930、引导只读存储器(ROM)935、同步动态随机存取存储器(SDRAM)控制器940、闪存控制器945、串行外围接口(SPI)主设备950、合适的电源控制955、动态RAM(DRAM)960、以及闪存965。另外,一个或多个示例实施例包括一种或多种通信能力、接口、和特征,如实例蓝牙(BluetoothTM)970、3G调制解调器975、全球定位系统(GPS)980、以及802.11Wi-Fi 985。
在运行时,图9的示例可以提供处理能力,伴随着相对低的功耗使能各种类型的计算(例如,移动计算、高端数字家居、服务器、无线基础设施等)。此外,这种体系结构可以使能任意数量的软件应用(例如,AndroidTM 播放器、Java平台标准版(JavaSE)、Java FX、Linux、嵌入式Microsoft Windows、Symbian以及Ubuntu等)。在至少一个示例实施例中,核处理器可以用耦联的低延迟2级缓存实现无序超标量流水线。
图10展示了根据实施例的处理器核1000。处理器核1000可以是针对任何类型处理器的核,如微型处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、或用于执行代码的其他设备。虽然图10中只展示了一个处理器核1000,处理器可以可替代地包括不止一个图10中所展示的处理器核1000。例如,处理器核1000表示参照图8的处理器870和880而示出和描述的处理器核674a、874b、884a以及884b的一个示例实施例。处理器核1000可以是单线程核或者,对于至少一个实施例而言,处理器核1000可以是多线程的,因为每个核可以包括多于一个硬件线程环境(或“逻辑处理器”)。
图10根据实施例还展示了耦合至处理器核1000的存储器1002。存储器1002可以是本领域技术人员已知或另外可用的广泛存储器(包括存储器层次结构中的各个层)中的任何一种。存储器1002可以包括有待由处理器核1000执行的代码1004,所述代码可以是一条或多条指令。处理器核1000可以遵守代码1004所指示的程序指令序列。每条指令进入前端逻辑1006并由一个或多个解码器1008处理。所述解码器可以生成微操作作为其输出,如预定格式的固定宽度微输出,或者可以生成其他指令、微指令、或反映原始代码指令的控制信号。前端逻辑1006还包括寄存器重命名逻辑1010和调度逻辑1012,后者一般给资源和队列分配对应于用于执行的指令的操作。
处理器核1000还可以包括具有一组执行单元1016-1至1016-N的执行逻辑1014。一些实施例可以包括专用于指定功能或功能集合的大量执行单元。其他实施例可以包括仅一个执行单元、或可以执行特定功能的一个执行单元。执行逻辑1014执行由代码指令所指定的操作。
在完成执行由代码指令指定的操作后,后端逻辑1018可以引退代码1004的指令。在一个实施例中,处理器核1000允许指令的无序执行但需要指令的有序引退。引退逻辑1020可以采取各种已知形式(例如,重排缓存等)。以这种方式,在代码1004执行的过程中处理器核1000被变换,至少依据解码器所生成的输出、寄存器重命名逻辑1010所利用的硬件寄存器和表格、以及经执行逻辑1014修改的任何寄存器(未示出)。
虽然图10中未加以展示,处理器在具有处理器核1000的芯片上可以包括其他元件,在此参照图8示出并描述了其中的至少一部分。例如,如图8中所示,处理器可以包括存储器控制逻辑连同处理器核1000一起。所述处理器可以包括I/O控制逻辑和/或可以包括与存储器控制逻辑整合的I/O控制逻辑。
注意,就在此所提供的示例,可以按照两个、三个、或更多个网络元件对相互作用进行描述。然而,这样做只是出于清楚和示例的目的。在某些情况下,通过仅参照有限数量的网元,可以更容易地描述给定流程组的功能中的一个或多个。应当理解的是,通信系统10及其教导是随时可扩展的并且可以容纳大量部件以及更加复杂/精细的安排和配置。相应地,所提供的示例不应该限制范围或禁止如潜在应用于无数其他架构中的通信系统10的广泛教导。
同样重要的是注意,前述流程图(即,图4至图7)中的操作仅展示了可以由通信系统10或在其内部执行的可能的相关场景和图案中的一部分。在适当的情况下可以删除或移除这些操作中的一部分,或者在不背离本公开范围的情况下可以显著地修改或改变这些操作。另外,多个这种操作被描述为与一个或多个附加操作共同或并行执行。然而,这些操作的定时可以显著地改变。已经出于示例和讨论的目的提供了前述操作流程。通信系统10提供了的本质灵活性,因为在不背离本公开的教导的情况下,可以提供任何适当的安排、时间顺序、配置、和定时机制。
虽然已经参照具体安排和配置对本公开进行了详细描述,在不背离本公开范围的情况下,这些示例配置和安排可以显著地改变。而且,可以基于具体需要和实现方式组合、分离、除去、或添加某些部件。另外,虽然参照便于通信过程的具体元件和操作对通信系统10进行了展示,可以用任何实现通信系统10的期望功能的合适架构、协议、和/或过程来替代这些元件和操作。
许多其他的改变、替代、变更、改变、和修改对本领域技术人员来说是确定的,并且旨在本公开包含了落在所附权利要求书的范围内的所有的改变、替代、变更、改变、和修改。为了帮助美国专利和商标局(USPTO)以及另外在此申请上发布的任何专利的任何阅读者解释在此所附权利要求书,申请人希望注意的是,申请人:(a)不旨在所附权利要求书中的任何一项当出现于其提交日期时调用美国专利法第35章第112节第(6)段,除非具体权利要求中特别适用了单词“用于……的装置”或“用于……的步骤”;并且(b)不旨在借助说明书中的任何声明以任何所附权利要求书中未另外反应的方式限制本公开。
其他说明和示例
示例C1是至少一种机器可读存储介质,具有一条或多条指令,其中,所述指令当由至少一个处理器执行时使得所述至少一个处理器:标识待监测的代码区域;探测并锁定包括所标识的代码区域的代码页;并且将所述代码页重映射为仅执行。
在示例C2中,如示例C1所述的主题可以可选地包括:其中,所述代码页在替代性扩展页表视图中被重映射为仅执行。
在示例C3中,如示例C1至C2中任一项所述的主题可以可选地包括:其中,所述指令当由所述至少一个处理器执行时进一步使得所述至少一个处理器捕获针对所述代码页的间接虚拟寻址分支和返回。
在示例C4中,如示例C1至C3中任一项所述的主题可以可选地包括:其中,所述指令当由所述至少一个处理器执行时进一步使得所述至少一个处理器接收针对所述代码页的应用程序接口执行请求;并且响应于所述请求而生成执行错误。
在示例C5中,如示例C1至C4中任一项所述的主题可以可选地包括:其中,所述指令当由所述至少一个处理器执行时进一步使得所述至少一个处理器使用虚拟化异常处置器来处置所述代码页上的执行错误。
在示例C6中,如示例C1至C5中的任一项所述的主题可以可选地包括:其中,所述执行错误是扩展页表错误。
在示例C7中,如示例C1至C6中任一项所述的主题可以可选地包括:其中,所述指令当由所述至少一个处理器执行时进一步使得所述至少一个处理器检查与所述执行错误相关的上下文信息以判定所述应用程序接口执行请求的入口点是否有效。
在示例C8中,如示例C1至C7中任一项所述的主题可以可选地包括:其中,所述指令当由所述至少一个处理器执行时进一步使得所述至少一个处理器如果所述入口点无效则将入口偏移映射至栈偏移。
在示例A1中,一种装置可以包括监测模块,其中,所述监测模块被配置成用于:标识待监测的代码区域;探测并锁定包括所标识的代码区域的代码页;以及将所述代码页重映射为仅执行。
在示例A2中,如示例A1所述的主题可以可选地包括:其中,所述监测模块被进一步配置成用于在替代性扩展页表视图中将所述代码页重映射为仅执行。
在示例A3中,如示例A1和A2中任一项所述的主题可以可选地包括:其中,所述监测模块被配置成用于捕获针对所述代码页的间接虚拟寻址分支和返回。
在示例A4中,如示例A1至A3中任一项所述的主题可以可选地包括:其中,所述监测模块被进一步配置成用于:接收针对所述代码页的应用程序接口执行请求;以及响应于所述请求而生成执行错误。
在示例A5中,如示例A1至A4中任一项所述的主题可以可选地包括:其中,所述监测模块被配置成用于使用虚拟化异常处置器来处置所述代码页上的执行错误。
在示例A6中,如示例A1至A5中的任一项所述的主题可以可选地包括:其中,所述执行错误是扩展页表错误。
在示例A7中,如示例A1至A6中任一项所述的主题可以可选地包括:其中,所述监测模块被进一步配置成用于检查与所述执行错误相关的上下文信息以判定所述应用程序接口执行请求的入口点是否有效。
在示例A8中,如示例A1至A7中任一项所述的主题可以可选地包括:其中,所述监测模块被进一步配置成用于如果所述入口点无效则将入口偏移映射至栈偏移。
示例M1是一种方法,所述方法包括:标识待监测的代码区域;探测并锁定包括所标识的代码区域的代码页;以及将所述代码页重映射为仅执行。
在示例M2中,如示例M1所述的主题可以可选地包括:其中,所述代码页在替代性扩展页表视图中被重映射为仅执行。
在示例M3中,如示例M1至M2中任一项所述的主题可以可选地包括:捕获针对所述代码页的间接虚拟寻址分支和返回。
在示例M4中,如示例M1至M3中任一项所述的主题可以可选地包括:接收针对所述代码页的应用程序接口执行请求;以及响应于所述请求而生成执行错误。
在示例M5中,如示例M1至M4中任一项所述的主题可以可选地包括:使用虚拟化异常处置器来处置所述代码页上的执行错误。
在示例M6中,如示例M1至M5中的任一项所述的主题可以可选地包括:其中,所述执行错误是扩展页表错误。
在示例M7中,如示例M1至M6中的任一项所述的主题可以可选地包括:检查与所述执行错误相关的上下文信息以判定所述应用程序接口执行请求的入口点是否有效;以及如果所述入口点无效则将入口偏移映射至栈偏移。
示例S1是一种用于检测并抑制敏感代码恶意调用的系统,所述系统包括:监测模块,所述监测模块被配置成用于:标识待监测的代码区域;探测并锁定包括所标的识代码区域的代码页;以及将所述代码页重映射为仅执行,其中,所述代码页在替代性扩展页表视图中被重映射为仅执行。
在示例S2中,示例S1的主题可以可选地包括:所述监测模块被进一步配置成用于:接收针对所述代码页的应用程序接口执行请求;响应于所述请求而生成执行错误;以及检查与所述执行错误相关的上下文信息以判定所述应用程序接口执行请求的入口点是否有效。
示例X1是一种机器可读存储介质,包括用于实现如示例A1至A8或M1至M7中任一项所述的方法或装置的机器可读指令。示例Y1是一种设备,所述装置包括用于执行示例方法M1至M7中任一项的装置。在示例Y2中,如示例Y1所述的主题可以可选地包括用于执行所述方法的装置,所述装置包括处理器和存储器。在示例Y3中,如示例Y2所述的主题可以可选地包括存储器,所述存储器包括机器可读指令。

Claims (25)

1.至少一种计算机可读介质,包括一条或多条指令,所述一条或多条指令当由至少一个处理器执行时:
标识待监测的代码区域;
探测并锁定包括所标识的代码区域的代码页;并且
将所述代码页重映射为仅执行。
2.如权利要求1所述的至少一种计算机可读介质,其中,所述代码页在替代性扩展页表视图中被重映射为仅执行。
3.如权利要求1和2中任一项所述的至少一种计算机可读介质,进一步包括一条或多条指令,所述一条或多条指令当由所述至少一个处理器执行时:
捕获针对所述代码页的间接虚拟寻址分支和返回。
4.如权利要求1至3中任一项所述的至少一种计算机可读介质,进一步包括一条或多条指令,所述一条或多条指令当由所述至少一个处理器执行时:
接收针对所述代码页的应用程序接口执行请求;并且
响应于所述请求而生成执行错误。
5.如权利要求1至4中任一项所述的至少一种计算机可读介质,进一步包括一条或多条指令,所述一条或多条指令当由所述至少一个处理器执行时:
使用虚拟化异常处置器来处置所述代码页上的执行错误。
6.如权利要求1至5中任一项所述的至少一种计算机可读介质,其中,所述执行错误是扩展页表错误。
7.如权利要求1至6中任一项所述的至少一种计算机可读介质,进一步包括一条或多条指令,所述一条或多条指令当由所述至少一个处理器执行时:
检查与所述执行错误相关的上下文信息以判定所述应用程序接口执行请求的入口点是否有效。
8.如权利要求1至7中任一项所述的至少一种计算机可读介质,进一步包括一条或多条指令,所述一条或多条指令当由所述至少一个处理器执行时:
如果所述入口点无效,则将入口偏移映射至栈偏移。
9.一种装置,包括:
监测模块,所述监测模块被配置成用于:
标识待监测的代码区域;
探测并锁定包括所标识的代码区域的代码页;以及
将所述代码页重映射为仅执行。
10.如权利要求9所述的装置,其中,所述监测模块被进一步配置成用于:
在替代性扩展页表视图中将所述代码页重映射为仅执行。
11.如权利要求9和10中任一项所述的装置,其中,所述监测模块被进一步配置成用于:
捕获针对所述代码页的间接虚拟寻址分支和返回。
12.如权利要求9至11中任一项所述的装置,其中,所述监测模块被进一步配置成用于:
接收针对所述代码页的应用程序接口执行请求;以及
响应于所述请求而生成执行错误。
13.如权利要求9至12中任一项所述的装置,其中,所述监测模块被进一步配置成用于:
使用虚拟化异常处置器来处置所述代码页上的执行错误。
14.如权利要求9至13中任一项所述的装置,其中,所述监测模块错误是扩展页表错误。
15.如权利要求9至14中任一项所述的装置,其中,所述监测模块被进一步配置成用于:
检查与所述执行错误相关的上下文信息以判定所述应用程序接口执行请求的入口点是否有效。
16.如权利要求9至15中任一项所述的装置,其中,所述监测模块被进一步配置成用于:
如果所述入口点无效,则将入口偏移映射至栈偏移。
17.一种方法,包括:
标识待监测的代码区域;
探测并锁定包括所标识的代码区域的代码页;以及
将所述代码页重映射为仅执行。
18.如权利要求17所述的方法,其中,所述代码页在替代性扩展页表视图中被重映射为仅执行。
19.如权利要求17和18中任一项所述的方法,进一步包括:
捕获针对所述代码页的间接虚拟寻址分支和返回。
20.如权利要求17至19中任一项所述的方法,进一步包括:
接收针对所述代码页的应用程序接口执行请求;以及
响应于所述请求而生成执行错误。
21.如权利要求17至20中任一项所述的方法,进一步包括:
使用虚拟化异常处置器来处置所述代码页上的执行错误。
22.如权利要求17至21中任一项所述的方法,其中,所述执行错误是扩展页表错误。
23.如权利要求17至22中任一项所述的方法,进一步包括:
检查与所述执行错误相关的上下文信息以判定所述应用程序接口执行请求的入口点是否有效;以及
如果所述入口点无效,则将入口偏移映射至栈偏移。
24.一种用于检测并抑制敏感代码恶意调用的系统,所述系统包括:
监测模块,所述监测模块被配置成用于:
标识待监测的代码区域;
探测并锁定包括所标识的代码区域的代码页;以及
将所述代码页重映射为仅执行,其中,所述代码页在替代性扩展页表视图中被重映射为仅执行。
25.如权利要求24所述的系统,其中,所述系统被配置为用于:
接收针对所述代码页的应用程序接口执行请求;
响应于所述请求而生成执行错误;以及
检查与所述执行错误相关的上下文信息以判定所述应用程序接口执行请求的入口点是否有效。
CN201580045226.6A 2014-09-26 2015-08-26 对敏感代码恶意调用的检测与抑制 Pending CN106575336A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/497,745 US9886577B2 (en) 2014-09-26 2014-09-26 Detection and mitigation of malicious invocation of sensitive code
US14/497,745 2014-09-26
PCT/US2015/046889 WO2016048550A1 (en) 2014-09-26 2015-08-26 Detection and mitigation of malicious invocation of sensitive code

Publications (1)

Publication Number Publication Date
CN106575336A true CN106575336A (zh) 2017-04-19

Family

ID=55581763

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580045226.6A Pending CN106575336A (zh) 2014-09-26 2015-08-26 对敏感代码恶意调用的检测与抑制

Country Status (5)

Country Link
US (2) US9886577B2 (zh)
EP (1) EP3198503A4 (zh)
CN (1) CN106575336A (zh)
RU (1) RU2665897C2 (zh)
WO (1) WO2016048550A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107797895A (zh) * 2017-05-08 2018-03-13 中国人民解放军国防科学技术大学 一种虚拟机安全监控方法及系统

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8856324B2 (en) 2013-01-28 2014-10-07 TrustPipe LLC System and method for detecting a compromised computing system
US9886577B2 (en) 2014-09-26 2018-02-06 Mcafee, Llc Detection and mitigation of malicious invocation of sensitive code
US10713146B2 (en) * 2015-06-26 2020-07-14 AVAST Software s.r.o. Dynamic binary translation and instrumentation with postponed attachment to running native threads
US10289570B2 (en) * 2015-12-24 2019-05-14 Mcafee, Llc Detecting data corruption by control flow interceptions
DE102017106016A1 (de) * 2016-03-22 2017-09-28 TrustPipe LLC System und Verfahren zur Erkennung von Befehlssequenzen von Interesse
US10528746B2 (en) * 2016-12-27 2020-01-07 Intel Corporation System, apparatus and method for trusted channel creation using execute-only code
US11294653B2 (en) * 2017-09-27 2022-04-05 Jayant Shukla Methods and systems of disassembling executable code

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080256625A1 (en) * 2005-04-19 2008-10-16 International Business Machines Corporation System and Method for Enhanced Layer of Security to Protect a File System from Malicious Programs
US20100281273A1 (en) * 2009-01-16 2010-11-04 Lee Ruby B System and Method for Processor-Based Security
US7984304B1 (en) * 2004-03-02 2011-07-19 Vmware, Inc. Dynamic verification of validity of executable code
US20130283370A1 (en) * 2011-12-14 2013-10-24 Harshawardhan Vipat Method and system for monitoring calls to an application program interface (api) function

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6073142A (en) 1997-06-23 2000-06-06 Park City Group Automated post office based rule analysis of e-mail messages and other data objects for controlled distribution in network environments
US5987610A (en) 1998-02-12 1999-11-16 Ameritech Corporation Computer virus screening methods and systems
US6460050B1 (en) 1999-12-22 2002-10-01 Mark Raymond Pace Distributed content identification system
US6901519B1 (en) 2000-06-22 2005-05-31 Infobahn, Inc. E-mail virus protection system and method
EP1495616B1 (en) 2002-04-17 2010-05-05 Computer Associates Think, Inc. Detecting and countering malicious code in enterprise networks
KR20120072266A (ko) 2010-12-23 2012-07-03 한국전자통신연구원 전역 네트워크 보안상황 제어 장치 및 방법
US8479295B2 (en) * 2011-03-30 2013-07-02 Intel Corporation Method and apparatus for transparently instrumenting an application program
RU2468427C1 (ru) * 2011-07-21 2012-11-27 Закрытое акционерное общество "Лаборатория Касперского" Система и способ защиты компьютерной системы от активности вредоносных объектов
US9413538B2 (en) 2011-12-12 2016-08-09 Microsoft Technology Licensing, Llc Cryptographic certification of secure hosted execution environments
US9275225B2 (en) * 2013-03-15 2016-03-01 Intel Corporation Linear address mapping protection
US9961102B2 (en) * 2014-07-16 2018-05-01 Mcafee, Llc Detection of stack pivoting
US9886577B2 (en) 2014-09-26 2018-02-06 Mcafee, Llc Detection and mitigation of malicious invocation of sensitive code

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7984304B1 (en) * 2004-03-02 2011-07-19 Vmware, Inc. Dynamic verification of validity of executable code
US20080256625A1 (en) * 2005-04-19 2008-10-16 International Business Machines Corporation System and Method for Enhanced Layer of Security to Protect a File System from Malicious Programs
US20100281273A1 (en) * 2009-01-16 2010-11-04 Lee Ruby B System and Method for Processor-Based Security
US20130283370A1 (en) * 2011-12-14 2013-10-24 Harshawardhan Vipat Method and system for monitoring calls to an application program interface (api) function

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107797895A (zh) * 2017-05-08 2018-03-13 中国人民解放军国防科学技术大学 一种虚拟机安全监控方法及系统

Also Published As

Publication number Publication date
RU2017105792A3 (zh) 2018-08-22
EP3198503A4 (en) 2018-03-14
US20180157829A1 (en) 2018-06-07
WO2016048550A1 (en) 2016-03-31
US9886577B2 (en) 2018-02-06
RU2017105792A (ru) 2018-08-22
US10366228B2 (en) 2019-07-30
US20160094571A1 (en) 2016-03-31
EP3198503A1 (en) 2017-08-02
RU2665897C2 (ru) 2018-09-04

Similar Documents

Publication Publication Date Title
CN106575336A (zh) 对敏感代码恶意调用的检测与抑制
CN106796638A (zh) 使用飞地认证进行数据验证
US20210029150A1 (en) Determining a reputation for a process
CN107430662B (zh) 识别进程的恶意运行
CN107409120B (zh) 检测恶意外设的装置、方法及系统
JP6583838B2 (ja) アプリケーションのシミュレーション
CN107683478A (zh) 缓解恶意软件的系统和方法
US10091216B2 (en) Method, apparatus, system, and computer readable medium for providing apparatus security
CN107466406A (zh) 用于组合多个信誉的系统和方法
US9912474B2 (en) Performing telemetry, data gathering, and failure isolation using non-volatile memory
CN107431694A (zh) 加密密钥取回
CN104981812B (zh) 在对等监控中支持可靠性、可用性、以及可服务性(ras)流的机制
CN106415581A (zh) 用于追踪和检测恶意软件的系统和方法
CN107873095A (zh) 使用数字证书的恶意软件检测
CN107980123A (zh) 敏感数据的保护
CN107960126A (zh) 基于分析事件的漏洞利用检测
CN107209844A (zh) 便携式安全存储装置
CN107534644A (zh) 确定数字证书的信誉
CN107889551A (zh) 用于识别恶意软件的异常检测
US9021596B2 (en) Correcting workflow security vulnerabilities via static analysis and virtual patching
CN106464513A (zh) 用于抑制恶意调用的系统和方法
CN107787575A (zh) 传感器使用的确定
CN106664305A (zh) 确定数据的信誉
JP2011145981A (ja) Axi転送発生装置、axi転送発生方法及びaxi転送発生プログラム

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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20170419

WD01 Invention patent application deemed withdrawn after publication