CN106464513B - 用于抑制恶意调用的系统和方法 - Google Patents

用于抑制恶意调用的系统和方法 Download PDF

Info

Publication number
CN106464513B
CN106464513B CN201580027558.1A CN201580027558A CN106464513B CN 106464513 B CN106464513 B CN 106464513B CN 201580027558 A CN201580027558 A CN 201580027558A CN 106464513 B CN106464513 B CN 106464513B
Authority
CN
China
Prior art keywords
function call
operating system
return address
call
system stack
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
Application number
CN201580027558.1A
Other languages
English (en)
Other versions
CN106464513A (zh
Inventor
P·瑟尔
R·马图尔
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 CN106464513A publication Critical patent/CN106464513A/zh
Application granted granted Critical
Publication of CN106464513B publication Critical patent/CN106464513B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities

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)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

在示例实施例中提供了用于抑制恶意调用的系统和方法。所述系统可以被配置成用于:接收函数调用;确定发起所述函数调用的存储器页面的位置;判定所述存储器页面是否与可信模块相关联;并且如果所述存储器页面不与所述可信模块相关联则阻止所述函数调用。此外,所述系统可以为所述函数调用确定返回地址,并且如果所述返回地址不属于所述可信模块则阻止所述函数调用。此外,所述系统可以为所述函数调用确定参数,判定所述参数是否是由调用所述函数的进程使用的已知参数,并且如果所述参数不是由调用所述函数的所述进程使用的所述已知参数则阻止所述函数调用。

Description

用于抑制恶意调用的系统和方法
技术领域
本公开总体上涉及信息安全领域,并且更具体地涉及抑制恶意调用。
背景技术
网络安全领域在当今社会中已经变得越来越重要。互联网已经使得全世界不同计算机时间能够互连。具体地,互联网提供了用于在经由各种类型的客户端设备连接至不同的计算机网络的不同用户之间交换数据的介质。虽然互联网的使用已经改变了商务和个人通信,它还已被用作工具以由恶意操作者获取对计算机和计算机网络的未授权访问以及用于有意或无意地公开敏感信息。
使主机感染的恶意软件(“malware“)可能能够执行任何数量的恶意行为,如从与主机相关联的商务或个人窃取敏感信息、传播至其他主机、和/或协助分布式拒绝服务攻击、从主机发出垃圾邮件或恶意邮件等。因此,对于保护计算机和计算机网络免受恶意软件的恶意或无意利用,存在着显著的管理性挑战。
附图说明
为了提供对本公开及其特征和优点的更加完整地理解,结合附图参考以下说明书,其中相同的参考标号表示相同的部件,其中:
图1是根据本公开的实施例的一种用于抑制恶意调用的通信系统的简化框图。
图2是简化流程图,展示了根据实施例的可能与通信系统相关联的可能操作;
图3是简化流程图,展示了根据实施例的可能与通信系统相关联的可能操作;
图4是简化流程图,展示了根据实施例的可能与通信系统相关联的可能操作;
图5是简化流程图,展示了根据实施例的可能与通信系统相关联的可能操作;
图6是简化流程图,展示了根据实施例的可能与通信系统相关联的可能操作;
图7是框图,展示了根据实施例的采用点对点配置安排的示例性计算系统;以及
图8是与本公开的示例ARM生态系统片上系统(SOC)相关联的简化框图;以及
图9是框图,展示了根据实施例的示例性处理器核。
具体实施方式
示例实施例
图1是一种用于抑制恶意调用的通信系统100的简化框图。通信系统100可以包括电子设备110、网络112和安全服务器132。电子设备110可以包括安全程序122和操作系统136。安全程序122可以包括一个或多个安全模块124a-c、参数126、动态链接库128、程序函数130、以及安全程序接口模块138。每一个安全模块124a-c都可以是已知的或可信的安全模块,并且可以包括存储器页面132a-c。操作系统可以包括操作系统栈118和操作系统函数120。安全程序接口模块138可以包括调度路由140。恶意设备114可以包括恶意代码116。恶意代码116可以是恶意软件。电子设备110、恶意设备114以及安全服务器132可以通过网络112连接。在一个示例中,恶意设备114可以直接与电子设备110连接(例如,通过通用串行总线(USB)类型连接)。
图1的元件可以采用任何适当连接(有线或无线)通过一个或多个接口彼此耦合,这为网络通信提供了可行的通路。另外,可以基于具体配置需求将图1的这些元件中的任何一个或多个与架构结合或从中移除。通信系统100可以包括能够进行传输控制协议/互联网协议(TCP/IP)通信以便在网络中传输或接收报文的配置。通信系统100还可以在适当情况下并基于具体需要结合用户数据报协议/IP(UDP/IP)或任何其他适当协议运行。
在示例实施例中,通信系统100可以被配置成用于在电子设备110内帮助检测和防止恶意调用(例如,恶意
Figure BDA0001161936410000031
异步过程调用(APC))。电子设备110可以被配置成用于当受到如利用发生法来反击安全产品的内核模式Rootkit(例如,ZeroAccess或Max++)的威胁的攻击时继续正常运行(不间断的)。在一个示例中,安全程序接口模块138可以被配置成用于检查KiUserApcDispatcher调用和ExitProcess调用。通过明确地寻找调用相关事件,安全程序接口模块138可以帮助抑制内核模式Rootkit和其他相似攻击,并且允许执行目标进程以代替终止进程。这允许更好的保护安全产品免受攻击、保护检测新攻击的能力、保护获得对未知威胁的更好的可见性的能力、以及保护清除现有威胁而不需要基于外部CDROM引导的能力。
出于展示通信系统100的某些示例技术的目的,重要的是理解可以贯穿网络环境的通信。以下基础信息可以被视为可以从其中正确解释本公开的基础。
对互联网的增加访问已具有增加下述软件程序的触及的非预期效果:在没有用户知会同意的情况下捕捉其私人信息的软件程序,或者在没有用户的了解和知会同意的情况下使计算机恶化的软件程序。如在此所使用的术语“恶意软件”包括任何类型的软件程序,所述软件程序被设计成用于没有所有者的知会同意的情况下混入、修改、改变、恶化、或损坏计算机系统,不管软件程序的动机,并且不管软件程序对所有者的设备、系统、网络或数据造成的结果。
一种类型的恶意软件包括内核模式Rootkit的快速进化族,所述快速进化族经常感染随机系统驱动器,使用其自身的被感染的驱动器来重写其代码、并且劫持存储驱动器链来隐藏其在磁盘上的存在。在具体的示例中,在被感染的计算机上,新驱动器建立通常被称为Devicesvchost.exe(或某个其他名称)的设备,并且存储路径为Devicesvchost.exesvchost.exe的被称为svchost.exe(或某个其他名称)的伪造便携可执行(PE)文件。然后驱动器将自身附加到磁盘设备栈上并且创建被称为svchost.exe的指向以下路径的新系统进程:\GlobalrootDevicesvchost.exesvchost.exe。此伪造进程充当一种陷阱,具体地,寻找由安全软件执行的文件操作的类型。
当典型的安全扫描器试图分析Rootkit创建的svchost.exe文件时,所述Rootkit将初始化APC排列成扫描器自身的进程,然后调用ExitProcess()函数并且促使安全扫描器终止或停止如扫描的进程。同样,恶意软件可以调度恶意APC调用来执行来自反病毒或安全进程内的恶意代码。例如,这可以被用来终止安全进程或执行来自安全进程内的恶意动作。
恶意软件(如Max++)通过调度将促使安全进程终止其自身的恶意APC调用来利用恶意诱饵进程技术。每当访问发生在恶意诱饵进程或发生在恶意驱动器的设备目标时,Rootkit通过调度恶意APC调用进行反击。通过这种方式,恶意代码不需要通过名称或使用具体的有针对性的攻击来攻击安全产品。他将启发式地对抗所有那些攻击。因此,Max++Rootkit以及相似类型的恶意软件能够使包括Rootkit扫描器工具和安全产品的安全产品禁用。
在属于如安全可执行进程或服务的特殊进程的线程上下文中执行用户模式APC调用。当进程的线程为某个等待状态时,操作系统检查是否调度了APC。使用APC,恶意软件可以劫持线程的执行来执行在APC例程的指定地址处的新代码。
恶意软件代码在目标进程中创建新页面,并且将APC调度到新页面中。操作系统将劫持进程的处于正确状态中的线程,并且调用由APC例程指定的地址。恶意软件的APC例程寻找函数ExitProcess()并且执行所述函数。因此,产品在系统的任何保护可以发生之前终止,并且将不会发生扫描或检测。
存在由恶意软件使用来攻击反病毒或安全进程的各种其他攻击技术。这些技术直接以通过名称(例如,mcafee.exe,avp.exe)攻击安全进程为中心,并且经常涉及通过“打开”进程来获得访问。存在一些自我保护措施,这些自我保护措施存在用于如通过使用滤波器来防止到AV进程的访问来处理这些攻击场景,但是这些措施不能够阻碍基于APC或内核模式Rootkit的攻击。同样,由于这些基于APC的动作看起来好像由安全进程自身发起的,不能通过基于信任的阻止器来阻止这些动作。毕竟,安全软件需要信任其自身的动作。
如图1中描绘的用于抑制恶意调用的通信系统可以解决这些问题(以及其他问题)。在图1的通信系统100中,通信系统100可以被配置成用于集中两种方法来解决描述的问题。在一个实施例中,可以通过安全程序可执行文件和动态链接库(DLL)中的安全程序接口模块138来挂起、修改或陷捕ExitProcess()函数,以便包含额外的例程。此例程(例如,调度例程140)可以检查ExitProcess()函数是否是从不属于已知产品的页面中调用的。所述例程通过检查ExitProcess()地址之上的栈上的返回地址以及操作系统栈118中的其栈参数来这样做。安全程序接口模块138可以验证上下文结构是否在操作系统栈118(所述上下文结构由操作系统(OS)内核放置在操作系统栈上以便在APC调用之后通过利用NtContinueAPI来恢复被劫持的线程上下文)上可用。安全程序接口模块138可以通过从ExitProcess()对操作系统栈118进行寻址来这样做,并且查看在+10十六进制字节(或某个数值)以外是否存在到不属于存储器中的活动进程DLL的可执行页面的地址,以及是否在指回到安全程序122(所述安全程序将为对ExitProcess()的合法调用)的操作系统栈119上不存在返回地址。然后,安全程序接口模块138可以在操作系统栈118上推入正确的参数以便进行对NTDLL的NtContinueAPI调用,这将使OS内核后退来恢复上下文例程。通过这种方式,安全程序接口模块138可以防止由恶意代码引起的进程的终止。
在另一个实施例中,挂起函数NTDLL!KiUserApcDispatcher。如贯穿全文使用的,术语“挂起(hook)”、“被挂起(hooked)”、“挂起(hooking)”等包括通过拦截在操作系统、应用、模块或部件之间传送的函数调用、消息或事件来改变或增强操作系统、应用、模块或其他部件的行为。通过挂起此函数,安全程序接口模块138可以检查其输入参数(即实参)并且验证哪个页面将被作为APC例程执行,并且在所述页面不是加载的安全程序122的一部分的情况下,相比于对应于存储器中的地址的文件图像,产品DLL、EXE或APC指向的代码被清晰地打补丁,安全程序接口模块138可以忽略APC调用的执行,并且调用NtContinueAPI函数而不是正确的参数,存储劫持进程线程的上下文,以及继续合适的执行。通过允许安全程序122继续执行,安全程序接口模块138可以实施针对隐藏程序的适当的扫描并且从系统中清除隐藏程序。此外,可以将启发式消息记录到关于恶意APC调用的系统日志中,因此可以通过所述方法检测利用所述技术的未知恶意软件威胁。通过能够分析恶意软件的网络112可以将启发式消息发送至安全服务器132。
转到图1的基础设施,示出了根据示例实施例的通信系统100。总体上,通信系统100可以以任何网络类型或拓扑实现。网络112代表互连的通信路径中的一系列点或节点用于接收和发射通过通信系统100传播的信息报文。网络112在节点之间提供通信接口,并且可以被配置成任何局域网(LAN)、虚拟局域网(VLAN)、广域网(WAN)、无线局域网(WLAN)、城域网(MAN)、互联网、以太网、虚拟私人网络(VPN)、以及任何其他便于网络环境中通信的适当架构或系统,或其任何适当组合,包括有线和无线通信。
在通信系统100中,可以根据任何适当的通信消息协议发送和接收网络流量(包括报文、帧、信号、数据等)。合适的通信消息协议可以包括如开放系统互连(OSI)模型等多层方案,或其任何派生或变体(例如,传输控制协议/互联网协议(TCP/IP),用户数据协议/互联网协议(UDP/IP))。相应地,在通信系统100中还可以通过蜂窝网络上的无线电信号通信。可以提供合适的接口和基础设施来使能与蜂窝网络的通信。
报文是可以在报文交换网络上在源节点和目的节点之间路由的数据的单元。报文包括源网络地址和目的网络地址。在TCP/IP消息协议中,这些网络地址可以是互联网协议(IP)地址。如在此所使用的术语‘数据’指任何类型的二进制、数字、语音、视频、文本、或脚本数据,或任何类型的源代码或对象代码,或在电子设备和/或网络中可以从一个点传达至另一个点的、任何其他恰当格式的任何其他适当信息。另外,消息、请求、响应、和询问是网络流量的形式,并且因此可以包括报文、帧、信号、数据等。
在某些示例实现方式中,在此所描绘的功能可以通过被逻辑编码在一种或多种有形介质(例如,ASIC中所设置的嵌入式逻辑、数字信号处理器(DSP)指令、有待由处理器执行的软件(潜在地包括对象代码和源代码)、或其他类似机器等)中来实现,所述一种或多种有形介质可以包括非瞬态计算机可读介质。在这些实例的一部分中,存储器元件可以存储用于在此所描述的操作的数据。这包括能够存储被执行以实施在此所描述的活动的软件、逻辑、代码、或处理器指令的存储器元件。
在示例实施例中,通信系统100、电子设备110和/或安全服务器132的网络元件可以包括软件模块(例如,安全程序接口模块138)来实现或促进如此处概述的操作。这些模块可以通过任何适当的方式合适地组合,这可以基于具体配置和/或规定需要。在示例实施例中,此类操作可以由硬件实施、在这些元件之外实现、或包括在某个其他网络设备中以用于实现预期的功能。此外,这些模块可以被实现为软件、硬件、固件、或其任何适当组合。这些元件还可以包括软件(或往复式软件),所述软件可以与其他网络元件协调以便实现如在此所描绘的操作。
另外,电子设备110和安全服务器132中的每一个可以包括处理器,所述处理器可以执行软件或算法来执行如在此所讨论的活动。处理器可以执行与数据相关联的任何类型的指令,从而实现在此详述的操作。在一个示例中,处理器可以将元件或物品(例如数据)从一个状态或事物转换至另一种状态或事物。在另一示例中,在此所描绘的活动可以用固定逻辑或可编程逻辑(例如,由处理器执行的软件/计算机指令)实现,并且在此所标识的元件可以是某种类型的可编程处理器、可编程数字逻辑(例如,现场可编程门阵列(FPGA)、EPROM、EEPROM)或包括数字逻辑的ASIC、软件、代码、电子指令、或其任何适当组合。在此所描述的可能的处理元件、模块、和机器中的任何一个可以被理解为包含在宽泛术语‘处理器’中。
转到图2,图2是示例流程图,展示了根据实施例的流程200的可能与安全程序接口模块138相关联的可能操作。在202处,在执行程序(例如,安全程序122)期间调用函数。在204处,为所述函数确定返回地址。在206处,系统判定返回地址是否属于已知模块或可信模块(例如,安全模块124a)。如在208中的,如果系统确定返回地址属于已知模块或可信模块,则允许执行函数。如在210中的,如果系统确定返回地址不属于已知模块或可信模块,则系统将停止对函数的服务或者将不允许对函数的服务,并且系统将返回到执行程序。
转到图3,图3是示例流程图,展示了根据实施例的流程300的可能与安全程序接口模块138相关联的可能操作。在302处,在执行程序(例如,安全程序122)期间调用函数。在304处,系统判定所述函数是否由属于已知安全模块(例如,安全模块124a的存储器页面132a)的存储器页面所调用。如在306中的,如果函数由属于已知安全模块的存储器页面所调用,则允许执行函数。如在308中的,如果函数由不属于已知安全模块的存储器页面所调用,则系统将停止对函数的服务或者将不允许对函数的服务,并且系统将返回到执行程序。
转到图4,图4是示例流程图,展示了根据实施例的流程400的可能与安全程序接口模块138相关联的可能操作。在402处,在执行程序期间调用函数。例如,安全程序可以调用退出进程函数。在404处,为所述函数确定参数。在406处,系统判定所述参数是否为程序使用的参数。例如,退出码可以用作由安全程序使用的退出进程函数的参数,并且安全程序将知道其使用的是什么退出码并且将能够识别是否使用了正确的退出码。如在408中的,如果所述参数是程序使用的参数,则允许执行函数。如在410中的,如果所述参数不是程序使用的参数,则系统将停止对函数的服务或者将不允许对函数的服务,并且系统将回到执行程序。
转到图5,图5是示例流程图,展示了根据实施例的流程500的可能与安全程序接口模块138相关联的可能操作。在502处,挂起负责在程序中调度调用(例如,APC调用)的例程(例如,调度例程140)。在504处,对输入参数进行检查以识别例程的将得到服务的页面或地址。在506处,系统判定页面或地址是否属于安全软件可以信任的已知模块(例如,在可信安全模块132a中的存储器页面132a)。如在508中的,如果页面或地址属于安全软件可以信任的已知模块,则允许执行调用。如在510中的,如果页面或地址不属于安全软件可以信任的已知模块,则跳过对程序的控制流程的调度并且将对流程的控制返回给操作系统。
转到图6,图6是示例流程图,展示了根据实施例的流程600的可能与安全程序接口模块138相关联的可能操作。在602处,挂起负责在程序中调度调用的例程(例如,调度例程140)。在604处,对调用的输入参数进行检查以识别例程的将得到服务的页面或地址。在606处,系统判定包含在地址中的代码是否是已知且可信任的。如在608中的,如果包含在地址中的代码是已知且可信任的,则允许执行调用。如在610中的,如果包含在地址中的代码不是已知或可信任的,则跳过对程序的控制流程的调度并且将对流程的控制返回给操作系统。
图7展示了根据实施例的采用点对点(PtP)配置安排的计算系统700。具体地,图7示出了一种系统,在所述系统中,处理器、存储器和输入/输出设备通过许多点对点接口互连。通常,可以采用与计算系统700相同或类似的方式来配置通信系统100的网络元件中的一个或多个网络元件。
如图7中所展示的,系统700可以包括若干处理器,为了清晰仅示出了所述处理器中的两个处理器770和780。尽管示出了两个处理器770和780,但是将理解的是,系统700的实施例还可以包括仅一个这种处理器。处理器770和780中的每一个处理器可以包括用于执行程序的多个线程的一组核(即,处理器核774A和774B以及处理器核784A和784B)。所述核可以被配置成用于采用类似于以上参照图2至图6所讨论的方式来执行指令代码。每个处理器770、780可以包括至少一个共享缓存器771、781。共享缓存器771、781可以存储由处理器770、780的一个或多个部件(如,处理器核774和784)利用的数据(例如,指令)。
处理器770和780还可以各自包括集成式存储器控制器逻辑(MC)772和782以与存储器元件732和734通信。存储器元件732和/或734可以存储处理器770和780所使用的各种数据。在替代性实施例中,存储器控制器逻辑772和782可以将逻辑与处理器770和780分离。
处理器770和780可以是任何类型的处理器,并且可以分别使用点对点接口电路778和788经由点对点(PtP)接口750来交换数据。处理器770和780中的每一个处理器可以使用点对点接口电路776、786、794和798经由单独的点对点接口752和754来与芯片组790交换数据。芯片组790还可以使用接口电路792通过高性能图形接口739与高性能图形电路738交换数据,所述接口电路可以是PtP接口电路。在替代性实施例中,图7中所展示的PtP链接中的任何一个或全部可以被实现为多点分支总线而不是PtP链路。
芯片组790可以经由接口电路796来与总线720通信。总线720可以具有一个或多个通过它通信的设备,如总线桥接器718和I/O设备716。通过总线710,总线桥接器718可以与其他设备通信,如键盘/鼠标712(或其他输入设备,如触摸屏、滚动球等)、通信设备726(如调制解调器、网络接口设备、或其他类型的可以通过计算机网络760通信的通信设备)、音频I/O设备714、和/或数据存储设备728。数据存储设备728可以存储代码730,所述代码可以由处理器770和/或780执行。在替代性实施例中,总线架构的任何部分可以由一个或多个PtP链路实现。
图7中所描绘的计算机系统是可以用于实现在此所讨论的各实施例的计算系统的实施例的示意性展示。将理解的是,图7中所描绘的系统的各个部件可以组合在片上系统(SoC)架构中或任何其他合适的配置中。例如,在此所披露的实施例可以并入包括移动设备(如智能蜂窝电话、平板计算机、私人数字助手、可移动游戏设备等)的系统中。将理解的是,至少在一些实施例中,这些移动设备可以配备有SoC架构。
转至图8,图8是与本公开的示例ARM生态系统SOC 800相关联的简化框图。本公开的至少一个示例实现方式可以包括在此所讨论的恶意调用抑制特征以及ARM部件。例如,图8的示例可以与任何ARM核(例如,A-9、A-15等)相关联。进一步,所述架构可以是以下各项的一部分:任何类型的平板、智能电话(包括安卓(AndroidTM)电话、iPhoneTM)、iPadTM、谷歌(Google)NexusTM、微软SurfaceTM、个人计算机、服务器、视频处理部件、膝上计算机(包括任何类型的笔记本)、超级笔记本(UltrabookTM)系统、任何类型的触摸使能的输入设备等。
在图8的这个示例中,ARM生态系统SOC 800可以包括多个核806-807、L2缓存器控制808、总线接口单元809、L2缓存器810、图形处理单元(GPU)815、互连802、视频编解码器820、以及液晶显示器(LCD)I/F825,它可以与耦合至LCD的移动工业处理器接口(MIPI)/高清晰多媒体接口(HDMI)链路相关联。
ARM生态系统SOC 800还可以包括用户标识模块(SIM)I/F 830、引导只读存储器(ROM)835、同步动态随机存取存储器(SDRAM)控制器840、闪存控制器845、串行外围接口(SPI)主设备850、合适的电源控制装置855、动态RAM(DRAM)860、和闪存865。另外,一个或多个示例实施例包括一种或多种通信能力、接口、和特征,如实例蓝牙(BluetoothTM)870、3G调制解调器875、全球定位系统(GPS)880、以及802.11Wi-Fi 885。
在运行时,图8的示例可以提供处理能力,伴随着相对低的功耗使能各种类型的计算(例如,移动计算、高端数字家居、服务器、无线基础设施等)。另外,这种架构可以使能任何数量的软件应用(例如,安卓(AndroidTM)、AdobeTM FlashTM Player、Java平台标准版本(Java SE)、JavaFX、Linux、微软Windows Embedded、塞班(Symbian)和乌班图(Ubuntu)等)。在至少一个示例实施例中,核处理器可以用耦合的低延迟2级缓存器实现无序超标量流水线。
图9展示了根据实施例的处理器核900。处理器核9可以是针对任何类型处理器的核,如微型处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、或用于执行代码的其他设备。虽然图9中只展示了一个处理器核900,处理器可以可替代地包括不止一个图9中所展示的处理器核900。例如,处理器内核900代表参照图7的处理器770和780所示和描述的处理器内核774a、774b、784a、和784b的一个示例实施例。处理器内核900可以是单线程内核,或者(对于至少一个实施例)处理器内核900可以是多线程之处在于它可以包括不只一个硬件线程上下文(或“逻辑处理器”)每个内核。
图9还展示了根据实施例的耦合至处理器核900的存储器902。存储器902可以是本领域技术人员已知或另外可用的广泛存储器(包括存储器层次结构中的各个层)中的任何一种。存储器902可以包括有待由处理器核900执行的代码904,所述代码可以是一条或多条指令。处理器核900可以遵守代码904所指示的程序指令序列。每条指令进入前端逻辑906并由一个或多个解码器908处理。所述解码器可以生成微操作作为其输出,如预定格式的固定宽度微输出,或者可以生成其他指令、微指令、或反映原始代码指令的控制信号。前端逻辑906还包括寄存器重命名逻辑910和调度逻辑912,后者一般给资源和队列分配对应于用于执行的指令的操作。
处理器核900还可以包括执行逻辑914,所述执行逻辑具有一组执行单元916-1至916-N。一些实施例可以包括专用于特定功能或功能集的多个执行单元。其他实施例可以包括仅一个执行单元、或可以执行特定功能的一个执行单元。执行逻辑914执行由代码指令所指定的操作。
在完成了所述指令所指定的操作的执行之后,后端逻辑918可以撤退代码904的指令。在一个实施例中,处理器核900允许指令的无序执行但需要指令的有序引退。引退逻辑920可以采取各种已知形式(例如,重排缓存器等)。以这种方式,在代码904执行的过程中处理器内核900被变换,至少依据解码器所生成的输出、寄存器重命名逻辑910所利用的硬件寄存器和表格、以及经执行逻辑914修改的任何寄存器(未示出)。
虽然图9中未加以展示,处理器在具有处理器核900的芯片上可以包括其他元件,在此参照图7示出并描述了其中的至少一部分。例如,如图7中所示,处理器可以包括存储器控制逻辑连同处理器内核900一起。所述处理器可以包括I/O控制逻辑和/或可以包括与存储器控制逻辑整合的I/O控制逻辑。
注意,就在此所提供的示例,可以按照两个、三个、或更多个网络元件对相互作用进行描述。然而,这样做只是出于清楚和示例的目的。在某些情况下,通过仅参照有限数量的网络元件,可以更容易描述给定流程组的功能中的一个或多个。应当理解的是,通信系统100及其教导是随时可扩展的并且可以容纳大量部件以及更加复杂/精细的安排和配置。相应地,所提供的示例不应该限制范围或禁止如潜在应用于无数其他架构中的通信系统100的广泛教导。
同样重要的是注意,前述流程图(即,图2至图6)中的操作仅展示了可以由通信系统100或在其内部执行的可能的相关场景和图案中的一部分。在适当的情况下可以删除或移除这些操作中的一部分,或者在不背离本公开范围的情况下可以显著地修改或改变这些操作。另外,多个这种操作被描述为与一个或多个附加操作共同或并行执行。然而,这些操作的定时可以显著地改变。已经出于示例和讨论的目的提供了前述操作流程。通信系统100提供了的本质灵活性,因为在不背离本公开的教导的情况下,可以提供任何适当的安排、时间顺序、配置、和定时机制。
虽然已经参照了具体安排和配置对本实施了进行了详细描述,在不背离本公开范围的情况下,这些示例配置和安排可以显著地改变。而且,可以基于具体需要和实现方式组合、分离、除去、或添加某些部件。另外,虽然参照便于通信过程的具体元件和操作对通信系统100进行了展示,可以用任何实现通信系统100的期望功能的合适架构、协议、和/或进程来替代这些元件和操作。
许多其他的改变、替代、变更、改变、和修改对本领域技术人员来说是确定的,并且旨在本公开包含了落在所附权利要求书的范围内的所有的改变、替代、变更、改变、和修改。为了帮助美国专利及商标局(USPTO)以及另外本申请发布的任何专利的任何读者理解本申请所附权利要求书,申请人希望注意本申请人:(a)并不旨在所附权利要求中的任一项因为在本申请的申请日存在而援引35U.S.C.第112章第(6)段,除非在特定权利要求中确切地使用了字词“用于……的装置”或“用于……的步骤”;并且(b)并不旨在通过本说明书中未在所附权利要求书中反映出的任何陈述以任何方式限制本公开。
其他说明和示例
示例C1是至少一种机器可读介质,所述至少一种机器可读介质包括一条或多条指令,所述指令当由处理器执行时使所述处理器:接收函数调用;为所述函数调用确定返回地址;以及如果所述返回地址不属于可信模块,则阻止所述函数调用。
在示例C2中,示例C1所述的主题可以可选地包括:其中,所述指令当由所述处理器执行时进一步使所述处理器:如果所述返回地址属于所述可信模块,则允许所述函数调用。
在示例C3中,示例C1和C2中任一项所述的主题可以可选地包括:其中,所述指令当由所述处理器执行时进一步使所述处理器:确定发起所述函数调用的存储器页面的位置;判定所述存储器页面是否与可信模块相关联;以及如果所述存储器页面不与所述可信模块相关联,则阻止所述函数调用。
在示例C4中,示例C1至C3中任一项所述的主题可以可选地包括:其中,所述指令当由所述处理器执行时进一步使所述处理器:如果所述存储器页面与所述可信模块相关联,则允许所述函数调用。
在示例C5中,示例C1至C4中任一项所述的主题可以可选地包括:其中,所述指令当由所述处理器执行时进一步使所述处理器:为所述函数调用确定参数;判定所述参数是否是由调用所述函数的进程使用的已知参数;以及如果所述参数不是由调用所述函数的所述进程使用的所述已知参数,则阻止所述函数调用。
在示例C6中,示例C1至C5中任一项所述的主题可以可选地包括:其中,所述指令当由所述处理器执行时进一步使所述处理器:如果所述参数是由调用所述函数的所述进程使用的所述已知参数,则允许所述函数调用。
在示例C7中,示例C1至C6中任一项所述的主题可以可选地包括:其中,所述函数由安全系统调用。
在示例C8中,示例A1至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中任一项所述的主题可以可选地包括:其中,所述函数由安全系统调用。
在示例M8中,示例M1至M7中任一项所述的主题可以可选地包括:其中,所述可信模块是所述安全系统的一部分。
示例S1是一种用于抑制恶意调用的系统,所述系统可以包括安全程序接口模块,所述安全程序接口模块被配置成用于:接收函数调用;为所述函数调用确定返回地址;以及如果所述返回地址不属于可信模块,则阻止所述函数调用。
示例X1是一种机器可读存储介质,所述机器可读存储介质包括机器可读指令,所述机器可读指令用于实施如在示例M1至M8中任一项所述的方法或者实现如在示例A1至A8中任一项所述的装置。示例Y1是一种设备,所述设备包括用于执行示例性方法M1至M8中任一项的装置。在示例Y2中,示例Y1所述的主题可以可选地包括:用于执行所述方法的所述装置包括处理器和存储器。在示例Y3中,示例Y2所述的主题可以可选地包括:所述存储器包括机器可读指令。

Claims (27)

1.至少一种非瞬态计算机可读介质,包括一条或多条指令,所述一条或多条指令当由处理器执行时执行方法,所述方法包括:
接收来自安全程序的函数调用,其中所述函数调用是异步过程调用;
在所述函数调用的地址上方的操作系统栈上为所述函数调用确定返回地址;以及
如果所述返回地址不属于可信模块,则在所述操作系统栈上推入参数以进行对动态链接库的调用来往回引导操作系统内核,从而恢复上下文例程,
其中,利用安全程序接口模块在所述操作系统栈上推入所述参数以防止由恶意代码终止进程,其中,所述进程包括由所述安全程序执行的安全扫描。
2.如权利要求1所述的至少一种非瞬态计算机可读介质,所述方法进一步包括:
如果所述返回地址确实属于所述可信模块,则允许所述函数调用。
3.如权利要求2所述的至少一种非瞬态计算机可读介质,所述方法进一步包括:
确定发起所述函数调用的存储器页面的位置;
判定所述存储器页面是否与所述可信模块相关联;以及
如果所述存储器页面不与所述可信模块相关联,则阻止所述函数调用。
4.如权利要求3所述的至少一种非瞬态计算机可读介质,所述方法进一步包括:
如果所述存储器页面与所述可信模块相关联,则允许所述函数调用。
5.如权利要求1所述的至少一种非瞬态计算机可读介质,其中,所述可信模块是所述安全程序的一部分。
6.如权利要求1所述的至少一种非瞬态计算机可读介质,所述方法进一步包括:
判定所述操作系统栈上的所述返回地址是否往回指向所述安全程序。
7.如权利要求1所述的至少一种非瞬态计算机可读介质,进一步包括:
判定所述返回地址是否在所述操作系统栈上在距所述函数调用的预定距离内。
8.如权利要求1所述的至少一种非瞬态计算机可读介质,所述方法进一步包括:
判定所述操作系统栈是否包括去往不属于活动进程动态链接库的可执行页面的地址。
9.一种用于抑制恶意调用的装置,包括:
处理器,所述处理器被配置成用于:
接收来自安全程序的函数调用,其中所述函数调用是异步过程调用;
通过在所述函数调用的地址上方的操作系统栈上为所述函数调用确定返回地址来判定存储器页面是否与可信模块相关联;以及
如果所述存储器页面不与所述可信模块相关联,则在所述操作系统栈上推入参数以进行对动态链接库的调用来往回引导操作系统内核,从而恢复上下文例程,
其中,利用安全程序接口模块在所述操作系统栈上推入所述参数以防止由恶意代码终止进程,其中,所述进程包括由所述安全程序执行的安全扫描。
10.如权利要求9所述的装置,其中,如果所述存储器页面与所述可信模块相关联,则允许所述函数调用。
11.如权利要求9所述的装置,其中,所述可信模块是所述安全程序的一部分。
12.如权利要求9所述的装置,其中所述处理器进一步配置成用于:判定所述操作系统栈上的所述返回地址是否往回指向所述安全程序。
13.如权利要求9所述的装置,其中所述处理器进一步配置成用于:判定所述返回地址是否在所述操作系统栈上在距所述函数调用的预定距离内。
14.如权利要求9所述的装置,其中所述处理器进一步配置成用于:判定所述操作系统栈是否包括去往不属于活动进程动态链接库的可执行页面的地址。
15.一种用于抑制恶意调用的方法,包括:
接收来自安全程序的函数调用,其中所述函数调用是异步过程调用;
在所述函数调用的地址上方的操作系统栈上为所述函数调用确定返回地址;以及
如果所述返回地址不属于可信模块,则在所述操作系统栈上推入参数以进行对动态链接库的调用来往回引导操作系统内核,从而恢复上下文例程,
其中,利用安全程序接口模块在所述操作系统栈上推入所述参数以防止由恶意代码终止进程,其中,所述进程包括由所述安全程序执行的安全扫描。
16.如权利要求15所述的方法,进一步包括:
如果所述返回地址确实属于所述可信模块,则允许所述函数调用。
17.如权利要求16所述的方法,进一步包括:
确定发起所述函数调用的存储器页面的位置;
判定所述存储器页面是否与所述可信模块相关联;以及
如果所述存储器页面不与所述可信模块相关联,则阻止所述函数调用。
18.如权利要求17所述的方法,进一步包括:
如果所述存储器页面与所述可信模块相关联,则允许所述函数调用。
19.如权利要求15所述的方法,其中,所述可信模块是所述安全程序的一部分。
20.如权利要求15所述的方法,进一步包括:
判定所述操作系统栈上的所述返回地址是否往回指向所述安全程序。
21.如权利要求15所述的方法,进一步包括:
判定所述返回地址是否在所述操作系统栈上在距所述函数调用的预定距离内。
22.如权利要求15所述的方法,进一步包括:
判定所述操作系统栈是否包括去往不属于活动进程动态链接库的可执行页面的地址。
23.一种用于抑制恶意调用的系统,所述系统包括:
处理器,所述处理器配置成用于:
接收来自安全程序的函数调用,其中所述函数调用是异步过程调用;
在所述函数调用的地址上方的操作系统栈上为所述函数调用确定返回地址;以及
如果所述返回地址不属于可信模块,则在所述操作系统栈上推入参数以进行对动态链接库的调用来往回引导操作系统内核,从而恢复上下文例程,
其中,利用安全程序接口模块在所述操作系统栈上推入所述参数以防止由恶意代码终止进程,其中,所述进程包括由所述安全程序执行的安全扫描。
24.如权利要求23所述的系统,其中所述处理器进一步配置成用于:判定所述操作系统栈上的所述返回地址是否往回指向所述安全程序。
25.如权利要求23所述的系统,其中所述处理器进一步配置成用于:判定所述返回地址是否在所述操作系统栈上在距所述函数调用的预定距离内。
26.如权利要求23所述的系统,其中所述处理器进一步配置成用于:判定所述操作系统栈是否包括去往不属于活动进程动态链接库的可执行页面的地址。
27.如权利要求23所述的系统,其中,所述处理器进一步配置成用于:如果所述返回地址确实属于所述可信模块,则允许所述函数调用。
CN201580027558.1A 2014-06-27 2015-05-27 用于抑制恶意调用的系统和方法 Active CN106464513B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/318,242 2014-06-27
US14/318,242 US9767283B2 (en) 2014-06-27 2014-06-27 System and method to mitigate malicious calls
PCT/US2015/032593 WO2015199874A1 (en) 2014-06-27 2015-05-27 System and method to mitigate malicious calls

Publications (2)

Publication Number Publication Date
CN106464513A CN106464513A (zh) 2017-02-22
CN106464513B true CN106464513B (zh) 2020-08-21

Family

ID=54930850

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580027558.1A Active CN106464513B (zh) 2014-06-27 2015-05-27 用于抑制恶意调用的系统和方法

Country Status (6)

Country Link
US (2) US9767283B2 (zh)
EP (1) EP3161998A4 (zh)
JP (1) JP2017522637A (zh)
KR (1) KR101884547B1 (zh)
CN (1) CN106464513B (zh)
WO (1) WO2015199874A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9767283B2 (en) 2014-06-27 2017-09-19 Mcafee, Inc. System and method to mitigate malicious calls
CN110569644B (zh) * 2018-06-06 2023-05-09 阿里巴巴集团控股有限公司 调用请求的处理、功能函数的调用方法、装置及设备
CN110727475B (zh) * 2019-10-12 2023-07-21 四川新网银行股份有限公司 基于配置化智能服务调用方法
US11874920B2 (en) * 2020-12-30 2024-01-16 Acronis International Gmbh Systems and methods for preventing injections of malicious processes in software
EP4400967A1 (en) 2021-12-02 2024-07-17 Samsung Electronics Co., Ltd. Electronic device for booting operating system by using plurality of cores, and method for operating same

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101359352A (zh) * 2008-09-25 2009-02-04 中国人民解放军信息工程大学 分层协同的混淆后api调用行为发现及其恶意性判定方法
CN102737188A (zh) * 2012-06-27 2012-10-17 北京奇虎科技有限公司 检测恶意网页的方法及装置
CN102779255A (zh) * 2012-07-16 2012-11-14 腾讯科技(深圳)有限公司 判断恶意程序的方法及装置
CN103679032A (zh) * 2013-12-13 2014-03-26 北京奇虎科技有限公司 防御恶意软件的方法和装置

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9501378D0 (en) * 1995-01-24 1995-03-15 Ibm A system and method for establishing a communication channel over a heterogeneous network between a source node and a destination node
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
US6657992B1 (en) 1999-02-12 2003-12-02 Nortel Networks Limited System and method for providing service control to a single telephone end terminal from multiple service providers
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
JP2003087297A (ja) * 2001-09-13 2003-03-20 Toshiba Corp パケット転送装置およびパケット転送方法
US7266658B2 (en) * 2002-09-12 2007-09-04 International Business Machines Corporation System, method, and computer program product for prohibiting unauthorized access to protected memory regions
US20050044292A1 (en) 2003-08-19 2005-02-24 Mckeen Francis X. Method and apparatus to retain system control when a buffer overflow attack occurs
US7716495B2 (en) 2003-12-31 2010-05-11 Microsoft Corporation Protection against runtime function attacks
US7437759B1 (en) * 2004-02-17 2008-10-14 Symantec Corporation Kernel mode overflow attack prevention system and method
US7552477B1 (en) * 2005-02-23 2009-06-23 Symantec Corporation Detecting return-to-LIBC buffer overflows via dynamic disassembly of offsets
US7571482B2 (en) * 2005-06-28 2009-08-04 Microsoft Corporation Automated rootkit detector
JP2007304954A (ja) * 2006-05-12 2007-11-22 Sharp Corp メモリ保護機能を有するコンピュータシステム
KR100876637B1 (ko) * 2006-11-23 2009-01-09 한국전자통신연구원 Linux 운영체제에서 소프트웨어 공격 탐지 장치 및 방법
US8353033B1 (en) * 2008-07-02 2013-01-08 Symantec Corporation Collecting malware samples via unauthorized download protection
US8752048B1 (en) * 2008-12-15 2014-06-10 Open Invention Network, Llc Method and system for providing checkpointing to windows application groups
JP4572259B1 (ja) * 2009-04-27 2010-11-04 株式会社フォティーンフォティ技術研究所 情報機器、プログラム及び不正なプログラムコードの実行防止方法
US8839420B2 (en) 2009-05-01 2014-09-16 Adobe Systems Incorporated Validation of function call parameters
US8352797B2 (en) * 2009-12-08 2013-01-08 Microsoft Corporation Software fault isolation using byte-granularity memory protection
US8561198B2 (en) 2010-05-07 2013-10-15 Mcafee, Inc. Detection of malicious system calls
US8850408B2 (en) * 2011-08-10 2014-09-30 Nintendo Of America, Inc. Methods and/or systems for determining a series of return callstacks
US9424427B1 (en) * 2012-03-16 2016-08-23 Bitdefender IPR Management Ltd. Anti-rootkit systems and methods
CN104303187A (zh) 2012-03-23 2015-01-21 耶德托公司 软件加指纹
KR101445634B1 (ko) * 2014-01-27 2014-10-06 주식회사 이글루시큐리티 프로그램의 취약점을 이용한 공격의 탐지 장치 및 방법
US9767283B2 (en) 2014-06-27 2017-09-19 Mcafee, Inc. System and method to mitigate malicious calls

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101359352A (zh) * 2008-09-25 2009-02-04 中国人民解放军信息工程大学 分层协同的混淆后api调用行为发现及其恶意性判定方法
CN102737188A (zh) * 2012-06-27 2012-10-17 北京奇虎科技有限公司 检测恶意网页的方法及装置
CN102779255A (zh) * 2012-07-16 2012-11-14 腾讯科技(深圳)有限公司 判断恶意程序的方法及装置
CN103679032A (zh) * 2013-12-13 2014-03-26 北京奇虎科技有限公司 防御恶意软件的方法和装置

Also Published As

Publication number Publication date
KR20160146929A (ko) 2016-12-21
US20180004951A1 (en) 2018-01-04
EP3161998A1 (en) 2017-05-03
CN106464513A (zh) 2017-02-22
WO2015199874A1 (en) 2015-12-30
KR101884547B1 (ko) 2018-08-01
US9767283B2 (en) 2017-09-19
JP2017522637A (ja) 2017-08-10
US20150379267A1 (en) 2015-12-31
EP3161998A4 (en) 2017-12-06
US10204223B2 (en) 2019-02-12

Similar Documents

Publication Publication Date Title
US11941119B2 (en) Mitigation of ransomware
US11328063B2 (en) Identification of malicious execution of a process
US10176344B2 (en) Data verification using enclave attestation
CN107409120B (zh) 检测恶意外设的装置、方法及系统
US10204223B2 (en) System and method to mitigate malicious calls
US10366228B2 (en) Detection and mitigation of malicious invocation of sensitive code
US20160381051A1 (en) Detection of malware
JP6583865B2 (ja) プロファイリングイベントに基づいたエクスプロイト検出
US20160180092A1 (en) Portable secure storage
CN106664305B (zh) 用于确定数据的信誉的装置、系统和方法
US10963561B2 (en) System and method to identify a no-operation (NOP) sled attack
US10574672B2 (en) System and method to detect bypass of a sandbox application

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: California, USA

Applicant after: McAfee Inc.

Address before: California, USA

Applicant before: McAfee Co., Ltd.

GR01 Patent grant
GR01 Patent grant