CN110659499A - 用于高速缓存侧信道攻击检测和缓解的技术 - Google Patents

用于高速缓存侧信道攻击检测和缓解的技术 Download PDF

Info

Publication number
CN110659499A
CN110659499A CN201910457412.0A CN201910457412A CN110659499A CN 110659499 A CN110659499 A CN 110659499A CN 201910457412 A CN201910457412 A CN 201910457412A CN 110659499 A CN110659499 A CN 110659499A
Authority
CN
China
Prior art keywords
computing device
activity
suspicious
data
cache
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
CN201910457412.0A
Other languages
English (en)
Inventor
J.J.布朗
M.科努
T.韦拉尔
T.坎特基
N.鲍尔
W.李
E.沃尔什
M.塔汉
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN110659499A publication Critical patent/CN110659499A/zh
Pending legal-status Critical Current

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/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • 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/556Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
    • 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/567Computer malware detection or handling, e.g. anti-virus arrangements using dedicated hardware
    • 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/568Computer malware detection or handling, e.g. anti-virus arrangements eliminating virus, restoring damaged files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

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

Abstract

用于高速缓存侧信道攻击检测和缓解的技术包括分析服务器和一个或多个受监视的计算设备。分析服务器针对分析计数器数据轮询每个计算设备。计算设备使用计算设备的处理器的资源管理器生成分析计数器数据。分析计数器数据可以包括最后一级高速缓存数据或存储器带宽数据。分析服务器基于分析计数器数据标识可疑核活动,并且如果被标识,则将检测过程部署到计算设备。计算设备执行检测过程以标识可疑应用活动。如果被标识,则计算设备可以执行一个或多个校正动作。校正动作包括使用处理器的资源管理器限制由可疑过程的资源使用。资源管理器可以限制由可疑过程使用的高速缓存占用或存储器带宽。描述并要求保护其他实施例。

Description

用于高速缓存侧信道攻击检测和缓解的技术
背景技术
典型的计算机处理器包括可以用于提高性能的一个或多个高速缓存存储器。许多典型的计算机处理器还通过执行推测性执行来改进性能,其中处理器推测性地执行可能在普通程序执行期间未达到的程序代码。恶意软件可以结合小心控制的推测性执行来利用一个或多个高速缓存侧信道攻击(诸如高速缓存定时攻击),以便绕过处理器访问控制并读取受限制的存储器位置的内容。例如,许多当前的处理器可能容易受到称为Meltdown和Spectre的漏洞利用(exploit)的相关家族的攻击。可以通过更新用于每个受影响的计算平台的操作系统代码和/或处理器微代码来避免诸如Meltdown和Spectre之类的漏洞。然而,针对这些漏洞的某些对策可能会不利地影响用于某些工作负载的性能。
附图说明
本文描述的概念通过示例而非限制的方式在附图中图示。为了说明的简单和清楚,附图中图示的元件不一定按比例绘制。在认为适当的情况下,参考标记在附图之间重复以指示对应或类似的元件。
图1是用于高速缓存侧信道攻击检测和缓解的系统的至少一个实施例的简化框图;
图2是图1的系统的计算设备的多核处理器的至少一个实施例的简化框图;
图3是可以由图1-2的系统建立的各种环境的至少一个实施例的简化框图;
图4是可以由图1-3的分析服务器执行的用于高速缓存侧信道攻击检测和缓解的方法的至少一个实施例的简化流程图;
图5是可以由图1-3的分析服务器执行的用于可疑核活动检测的方法的至少一个实施例的简化流程图;
图6是可以由图1-3的分析服务器执行的用于可疑核活动检测的另一方法的至少一个实施例的简化流程图;和
图7是可以由图1-3的受监视的计算设备执行的用于高速缓存侧信道攻击检测和缓解的方法的至少一个实施例的简化流程图。
具体实施方式
虽然本公开的概念易受各种修改和替代形式的影响,但是其具体实施例已经通过附图中的示例示出并且将在本文中详细描述。然而,应理解的是,没有意图将本公开的概念限制于所公开的特定形式,相反,意图是涵盖与本公开和所附权利要求一致的所有修改、等同物和替代方案。
说明书中对“一个实施例”、“实施例”、“说明性实施例”等的引用指示所描述的实施例可以包括特定特征、结构或特性,但是每个实施例可以或可以不是必须包括该特定特征、结构或特性。此外,这样的短语不一定是指同一实施例。此外,当结合实施例描述特定特征、结构或特性时,认为结合无论是否明确描述的其他实施例实现这样的特征、结构或特性在本领域技术人员的知识内。另外,应当理解,以“A、B和C中的至少一个”的形式包括在列表中的项目可以意指(A);(B);(C);(A和B);(A和C);(B和C);或(A、B和C)。类似地,以“A、B或C中的至少一个”的形式列出的项目可以意指(A);(B);(C);(A和B);(A和C);(B和C);或(A、B和C)。
在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时性或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。机器可读存储介质可以体现为用于以由机器可读的形式存储或传送信息的任何存储设备、机制或其他物理结构(例如,易失性或非易失性存储器、介质盘或其他介质)。
在附图中,可以以特定布置和/或排序示出一些结构或方法特征。然而,应理解,可能不要求这样的特定布置和/或排序。而是,在一些实施例中,这样的特征可以以与说明性附图中所示的不同的方式和/或次序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示这样的特征在所有实施例中都被要求,并且在一些实施例中可以不与其他特征一起被包括或者可以与其他特征进行组合。
现在参考图1,在说明性实施例中,用于高速缓存侧信道攻击检测和缓解的系统100包括通过网络106与分析服务器104通信的多个计算设备102。在使用中,如下面进一步描述的,分析服务器104针对由计算设备的硬件资源管理器(诸如Intel®资源调配技术(Resource Director Technology,RDT))所收集的资源使用数据而轮询每个计算设备102。基于资源使用数据,分析服务器104确定是否存在指示潜在高速缓存侧信道攻击的可疑级别的处理器核活动。如果是,则分析服务器104引起计算设备102执行标识可疑应用活动的检测过程,其例如通过监视高速缓存未命中(miss)性能计数器(counter)。如果发现可疑应用活动,则系统100可以执行校正动作,诸如使用计算设备102的硬件资源管理器来限制由可疑过程的资源使用。因此,系统100可以检测并缓解高速缓存侧信道攻击。另外,系统100可以执行高速缓存侧信道攻击检测和缓解,而不需要对操作系统代码和/或处理器微代码的更新。因此,系统100可以扩展到大量的受监视的计算设备102,包括未更新(或不能更新)的大量的设备102。另外,通过在分析服务器104(其可能已经为了其他目的而收集和分析资源使用数据)上执行核活动分析,系统100可以减少或消除用于高速缓存侧信道攻击的每个计算设备102的检测开销。此外,通过使用硬件资源管理器来限制由恶意过程的资源使用,系统100可以甚至在未打补丁的计算设备102上防止未授权数据的公开。
每个计算设备102可以体现为能够执行本文描述的功能的任何类型的计算或计算机设备,包括但不限于计算机、服务器、基于机架的服务器、刀片服务器、工作站、台式计算机、膝上型计算机、笔记本计算机、平板计算机、移动计算设备、可穿戴计算设备、网络装置、web(网)装置、分布式计算系统、基于处理器的系统、和/或消费者电子设备。如图1所示,计算设备102说明性地包括处理器120、输入/输出子系统122、存储器124、数据存储设备126和通信子系统128、和/或通常在服务器或类似的计算设备中找到的其他组件和设备。当然,在其他实施例中,计算设备102可以包括其他或附加组件,诸如通常在服务器计算机中找到的那些组件(例如,各种输入/输出设备)。另外,在一些实施例中,说明性组件中的一个或多个可以并入另一组件中,或者以其他方式形成另一组件的部分。例如,在一些实施例中,存储器124或其部分可以并入处理器120中。
处理器120可以体现为能够执行本文描述的功能的任何类型的处理器。处理器120可以体现为(一个或多个)单核或多核处理器、数字信号处理器、微控制器、或其他处理器或处理/控制电路。处理器120包括诸如Intel RDT的硬件资源管理器。处理器120的一个潜在实施例在图2中图示并在下面进一步描述。另外或替代地,虽然被示为包括单个处理器120,但是应当理解,在一些实施例中,计算设备102可以包括多个处理器120。例如,计算设备102可以体现为向一个或多个客户端设备提供服务的多套接字(socket)服务器设备。计算设备102可以被包括在服务器机架或其他数据中心环境中。
存储器124可以体现为能够执行本文描述的功能的任何类型的易失性或非易失性存储器或数据存储装置。在操作中,存储器124可以存储在计算设备102的操作期间使用的各种数据和软件,诸如操作系统、应用、程序、库和驱动程序。存储器124经由I/O子系统122通信地耦合到处理器120,I/O子系统122可以体现为促进与处理器120、存储器124和计算设备120的其他组件的输入/输出操作的电路和/或组件。例如,I/O子系统122可以体现为或以其他方式包括存储器控制器中枢、输入/输出控制中枢、平台控制器中枢、集成控制电路、固件设备、通信链路(即,点对点链路、总线链路、电线、电缆、光导、印刷电路板迹线等)和/或促进输入/输出操作的其他组件和子系统。在一些实施例中,I/O子系统122可以形成片上系统(SoC)的部分,并且与处理器120、存储器124和计算设备102的其他组件一起并入单个集成电路芯片上。
数据存储设备126可以体现为被配置用于数据的短期或长期存储的任何类型的一个或多个设备,诸如例如存储器设备和电路、存储卡、硬盘驱动器、固态驱动器、或其他数据存储设备。计算设备102的通信子系统128可以体现为任何网络接口控制器或其他通信电路、设备或其集合,能够通过网络实现计算设备102和其他远程设备之间的通信。通信子系统128可以被配置成使用任何一种或多种通信技术(例如,有线或无线通信)和相关联的协议(例如,以太网、InfiniBand®、Bluetooth®、Wi-Fi®、WiMAX等)来实现这样的通信。
如所示,计算设备102还可以包括一个或多个外围设备130。外围设备130可以包括任何数量的附加输入/输出设备、接口设备、和/或其他外围设备。例如,在一些实施例中,外围设备130可以包括显示器、触摸屏、图形电路、键盘、鼠标、扬声器系统、麦克风、网络接口、和/或其他输入/输出设备、接口设备和/或外围设备。
分析服务器104可以体现为能够执行本文描述的功能的任何类型的计算或计算机设备,包括但不限于计算机、服务器、工作站、台式计算机、膝上型计算机、笔记本计算机、平板计算机、移动计算设备、可穿戴计算设备、网络装置、web装置、分布式计算系统、基于处理器的系统、和/或消费者电子设备。这样,分析服务器104可以包括与计算设备102类似的组件和特征,诸如处理器120、I/O子系统122、存储器124、数据存储装置126、通信子系统128和各种外围设备130。分析服务器104的组件可以类似于计算设备102的对应组件,其描述适用于分析服务器104的对应组件,并且为了本描述的清楚起见不进行重复。
如下面更详细讨论的,计算设备102和分析服务器104可以被配置成通过网络106与彼此和/或系统100的其他设备发送和接收数据。网络106可以被体现为任何数量的各种有线和/或无线网络。例如,网络106可以体现为或者以其他方式包括有线或无线局域网(LAN)和/或有线或无线广域网(WAN)。这样,网络106可以包括诸如附加的计算机、路由器和交换机的任何数量的附加设备,以促进系统100的设备之间的通信。在说明性实施例中,网络106被体现为本地以太网网络。
现在参考图2,图200图示了计算设备102的处理器120的一个潜在实施例。处理器120说明性地体现为包括四个处理器核202的多核处理器。每个处理器核202可以体现为能够执行编程指令的独立的通用处理单元。每个处理器核202可以支持同时多线程、超线程、或以其他方式包括多个硬件线程和/或逻辑处理器。每个处理器核202还可以包括一个或多个性能计数器、性能监视单元、或能够记录和监视通过相应处理器核202的指令流的其他设备,例如通过计数时钟周期、发出的指令、退役的(retired)指令、高速缓存加载、高速缓存未命中、或其他事件。
处理器120还包括非核204,其包括未包括在处理器核202中的处理器120的任何部分(例如,除了处理器核202本身之外的处理器120的所有组件)。说明性地,非核204包括最后一级高速缓存(LLC)206、集成存储器控制器(MC)208和资源管理器210。另外,虽然未图示,但是非核204还可以包括片上系统或处理器的典型组件,诸如处理器图形、输入/输出控制器、功率管理电路、或处理器120的其他组件。
LLC 206可以体现为由所有处理器核202共享的高速缓存存储器。计算设备102和处理器120可以包括多级高速缓存存储器。高速缓存存储器通常比主存储器(例如,存储器124)更小、更快并且更靠近处理器核202。每个物理处理器核202可以包括一个或多个专用高速缓存存储器。例如,每个处理器核202可以包括用于指令和数据的单独的一级(L1)高速缓存和统一的2级(L2)高速缓存。说明性地,处理器核202共享3级(L3)高速缓存,其是LLC206。如果某些数据(例如,指令或数据)未包括在高速缓存层级中,则处理器核202访问存储器124中的该数据。MC 208可以体现为控制器电路或与处理器120和存储器124对接的其他逻辑。
资源管理器210可以体现为允许监视和控制由处理器120的资源使用的任何控制器或其他数字逻辑。说明性地,资源管理器210体现为Intel资源调配技术(RDT)。Intel RDT是基于硬件的资源管理器,其支持监视和分配计算设备的共享资源,诸如高速缓存和带宽。特别地,Intel RDT可以包括高速缓存监视技术(CMT)、高速缓存分配技术(CAT)、存储器带宽监视(MBM)以及其他监视或分配功能。资源管理器210可以允许监视LLC 206高速缓存未命中、LLC 206高速缓存占用、存储器带宽使用或由处理器120的其他资源使用。资源管理器210还可以对LLC 206高速缓存占用、存储器带宽使用或其他资源使用实施限制。资源管理器210可以监视和/或实施用于整个处理器120、用于由处理器120执行的各个过程、和/或用于过程组的资源使用。
现在参考图3,在说明性实施例中,分析服务器104在操作期间建立环境300。说明性环境300包括核活动监视器302、应用活动监视器304和校正动作管理器306。环境300的各种组件可以体现为硬件、固件、软件或其组合。这样,在一些实施例中,环境300的一个或多个组件可以体现为电设备的电路或集合(例如,核活动监视器电路302、应用活动监视器电路304和/或校正动作管理器电路306)。应当理解,在这样的实施例中,核活动监视器电路302、应用活动监视器电路304和/或校正动作管理器电路306中的一个或多个可以形成处理器、I/O子系统、通信子系统和/或分析服务器104的其他组件中的一个或多个的部分。另外,在一些实施例中,一个或多个说明性组件可以形成另一组件的部分和/或一个或多个说明性组件可以彼此独立。
核活动监视器302被配置成从受监视的计算设备102接收活动计数器数据,诸如LLC 206数据、存储器带宽数据或来自计算设备102的资源管理器210的其他活动数据。核活动监视器302还被配置成基于活动计数器数据确定是否存在可疑核活动。可疑核活动指示高速缓存侧信道攻击。可以通过将活动计数器数据的高速缓存未命中或存储器带宽使用与预定阈值进行比较来标识可疑核活动。在一些实施例中,核活动监视器302被配置成接收用于计算设备102的一个或多个主应用的活动计数器数据。可以通过将用于主应用的活动计数器数据与用于计算设备102的所有应用的活动计数器数据进行比较来标识可疑核活动。在一些实施例中,核活动监视器302还可以被配置成以预定监视间隔针对活动计数器数据轮询计算设备102。核活动监视器302还可以被配置成从多个计算设备102选择用于监视的计算设备102。
应用活动监视器304被配置成将检测过程部署到受监视的计算设备102,或者以其他方式引起受监视的计算设备102响应于确定存在可疑核活动而执行检测过程。应用活动监视器304还被配置成响应于部署检测过程来确定是否存在可疑应用。可疑应用也指示高速缓存侧信道攻击。在一些实施例中,应用活动监视器304还可以被配置成确定可疑应用是否包括在预定的允许应用列表(即,白名单)中。
校正动作管理器306被配置成引起受监视的计算设备102响应于标识存在可疑应用而执行一个或多个校正动作。校正动作可以包括扼杀可疑应用、删除与可疑应用相关联的映像(image)、或者重置受监视的计算设备102。在一些实施例中,校正动作可以包括使用受管理的计算设备102的资源管理器210限制由可疑应用的资源使用。限制资源使用可以包括限制可用于可疑应用的高速缓存占用或存储器带宽。如果可疑应用未包括在允许应用白名单中,则校正动作管理器306可以引起受监视的计算设备102执行校正动作。
仍然参考图3,在说明性实施例中,计算设备102在操作期间建立环境320。说明性环境320包括核活动监视器322、应用活动监视器324和校正动作管理器326。环境320的各种组件可以体现为硬件、固件、软件或其组合。这样,在一些实施例中,环境320的一个或多个组件可以体现为电设备的电路或集合(例如,核活动监视器电路322、应用活动监视器电路324和/或校正动作管理器电路326)。应当理解,在这样的实施例中,核活动监视器电路322、应用活动监视器电路324和/或校正动作管理器电路326中的一个或多个可以形成处理器120、I/O子系统122、通信子系统128和/或计算设备102的其他组件中的一个或多个的部分。另外,在一些实施例中,一个或多个说明性组件可以形成另一组件的部分和/或一个或多个说明性组件可以彼此独立。
核活动监视器322被配置成将活动计数器数据发送到分析服务器104。活动计数器数据由计算设备102的处理器120的资源管理器210生成。在一些实施例中,核活动监视器322可以被配置成发送用于计算设备102的一个或多个主应用的活动计数器数据以及用于整个计算设备102的活动计数器数据。活动计数器数据可以包括由资源管理器210生成的LLC 206数据或存储器带宽数据。
应用活动监视器324被配置成响应于将活动数据发送到分析服务器104而基于计算设备102的性能计数器数据确定是否存在可疑应用活动。可疑应用活动指示高速缓存侧信道攻击。确定是否存在可疑应用活动可以包括使用性能计数器采样用于处理器120的每个逻辑处理器的LLC 206加载和LLC 206加载未命中,确定LLC加载未命中与LLC加载之比,并将该比与预定阈值比进行比较。确定是否存在可疑应用活动可以包括执行检测过程以标识可疑应用活动。可以响应于发送活动计数器数据而从分析服务器104接收或以其他方式部署检测过程。应用活动监视器324还可以被配置成向分析服务器104报告是否存在可疑应用活动。
校正动作管理器326被配置成响应于确定存在可疑应用活动而执行校正动作。校正动作可以包括扼杀与可疑应用活动相关联的过程、删除与可疑应用活动相关联的映像、或者重置计算设备102。在一些实施例中,校正动作可以包括使用资源管理器210来限制由与可疑应用活动相关联的过程的资源使用。限制资源使用可以包括限制可用于与可疑应用活动相关联的过程的高速缓存占用或存储器带宽。
另外,虽然在图3中示为由单独的分析服务器104和计算设备102建立,但是应当理解,在一些实施例中,环境300、320可以共同位于单个计算设备中。在那些实施例中,单个设备可以执行分析服务器104和计算设备102两者的功能,这例如通过执行多个虚拟机或以其他方式执行两个功能。虚拟机(VM)可以包括部分或完全模拟的计算机系统,包括访客操作系统和一个或多个网络队列。VM可以使用计算设备102、104的虚拟化硬件支持来执行,包括处理器120的虚拟化I/O支持。在该示例中,分析服务器104可以监视单个计算设备102(即,共同位于的计算设备102)。
现在参考图4,在使用中,分析服务器104可以执行用于高速缓存侧信道攻击检测和缓解的方法400。应当理解,在一些实施例中,方法400的操作可以由如图3所示的分析服务器104的环境300的一个或多个组件执行。方法400开始于框402,其中分析服务器104选择用于分析的受监视的计算设备102。分析服务器104可以监视多个计算设备102,其可以一起位于共同位置和/或网络中,或者是分布式的。例如,分析服务器104可以被体现为或以其他方式被包括在包括计算设备102的云计算基础设施的编排节点中。分析服务器104可以使用任何预定的调度、监视策略、或选择用于监视的计算设备102的其他选择算法。例如,分析服务器104可以在分析服务器104执行其他例程分析监视任务的同时执行高速缓存侧信道攻击检测和缓解。在一些实施例中,在框404中,分析服务器104可以等待预定监视间隔。例如,分析服务器104可以针对分析数据每十五分钟轮询每个计算设备102。
在框406中,分析服务器104从受监视的计算设备102接收分析计数器数据。分析计数器数据可以被体现为可以指示活动高速缓存侧信道攻击的任何性能监视或资源管理计数器数据。例如,分析计数器数据可以指示最后一级高速缓存(LLC)206占用、LLC 206高速缓存未命中、使用的存储器带宽或其他性能特性。分析计数器数据可以由计算设备102的资源管理器210生成,或者在一些实施例中,可以由计算设备102的各个处理器核202的性能计数器生成。分析计数器数据可以通过计算设备102的一个或多个标准分析包来收集和/或报告,并且因此可能不要求由每个计算设备102执行专门的软件过程。分析计数器数据可以适用于由计算设备102执行的所有过程,或者在一些实施例中可以限制于由计算设备102执行的过程的特定子集。下面结合图5和6进一步描述用于接收特定活动计数器数据的方法。
在框408中,分析服务器104基于活动计数器数据标识可疑核活动。可疑核活动指示活动高速缓存侧信道攻击,并且可能包括异常级别的LLC 206占用、LLC 206未命中、消耗的存储器带宽或其他异常资源使用。用于标识可疑核活动的方法在下面结合图5和6进一步描述。在框410中,分析服务器104确定是否已经标识可疑核活动。如果否,则方法400循环回到框402以继续监视计算设备102。如果检测到可疑核活动,则方法400前进到框412。
在框412中,分析服务器104将检测过程部署到受监视的计算设备102。检测过程可以体现为专门的软件过程或监视指示高速缓存侧信道攻击的可疑应用活动的其他过程。分析服务器104可以将检测过程发送到计算设备102,或者以其他方式引起计算设备102执行检测过程。在框414中,分析服务器104基于检测过程标识可疑应用活动。例如,计算设备102可以报告是否检测到可疑应用活动和/或计算设备102可以报告由检测过程生成的数据,并且分析服务器104可以基于该数据标识可疑应用活动。用于标识可疑应用活动的方法在下面结合图7进一步描述。在框416中,分析服务器104确定是否已经标识可疑应用活动。如果否,则方法400循环回到框402以继续监视计算设备102。如果检测到可疑应用活动,则方法400前进到框418。
在框418中,分析服务器104将可疑应用与白名单进行比较,白名单可以体现为允许应用的列表。例如,分析服务器104可以将与可疑应用活动相关联的名称、签名或其他标识符与已知良好应用的数据库进行比较。在框420中,分析服务器104确定可疑应用是否包括在白名单中。如果是,则方法400循环回到框402以继续监视计算设备102。如果可疑应用未被列入白名单,则方法400前进到框422。
在框422中,分析服务器104引起受监视的计算设备102执行一个或多个校正动作以缓解潜在的高速缓存侧信道攻击。例如,分析服务器104可以向虚拟机监视器、操作系统或计算设备102的其他控制软件发送命令以执行所请求的校正动作。所请求的特定校正动作可以取决于计算设备102的一个或多个能力、一个或多个安全策略或其他因素。
在框424中,在一些实施例中,计算设备102可以扼杀与可疑应用相关联的过程或以其他方式终止当前正在执行的可疑应用。在框426中,在一些实施例中,计算设备102可以删除与可疑应用相关联的可执行映像或其他文件。在框428中,在一些实施例中,计算设备102可以重置、重启或以其他方式重新开始。重置计算设备102可以引起计算设备102的高速缓存和其他易失性存储器被重置,并因而可以使某些高速缓存侧信道攻击失败。在一些实施例中,在框430中,计算设备102可以使用计算设备102的资源管理器210来限制用于与可疑应用相关联的过程的资源使用,诸如存储器带宽或LLC 206占用。限制资源使用可以防止或降低某些高速缓存侧信道攻击的严重性,这例如通过防止恶意过程强制冲洗LLC 206和/或通过降低恶意过程可以尝试读取未授权存储器的速率。
如上所述,在一些实施例中,可以组合多个校正动作。例如,在一些实施例中,扼杀与可疑应用相关联的过程,删除与可疑应用相关联的映像,并重置平台。作为另一示例,在平台运行关键过程并且此时不能被重置的情况下,校正动作可以包括限制可疑恶意过程的高速缓存使用,直到迁移或暂停关键过程。在迁移或暂停关键过程后,可以扼杀可疑过程,删除映像,并重置平台。在该示例中,计算设备102可以由编排系统标记为要求在检测到恶意过程并且减少其高速缓存访问之后执行特殊行为。在引起计算设备102执行校正动作之后,方法400循环回到框402以继续监视计算设备102。
现在参考图5,在使用中,分析服务器104可以执行用于可疑核活动检测的方法500。方法500可以例如结合如上结合图4所述的框406和408来执行。应当理解,在一些实施例中,方法500的操作可以由如图3所示的分析服务器104的环境300的一个或多个组件来执行。方法500在框502中开始,其中分析服务器104从受监视的计算设备102读取分析计数器数据。如上所述,分析计数器数据可以体现为可以指示活动高速缓存侧信道攻击的任何性能监视或资源管理计数器数据。说明性地,分析计数器数据指示由计算设备102所执行的所有过程的性能和/或资源使用。在一些实施例中,在框504中,分析服务器104读取平台资源管理器210性能计数器,包括LLC 206计数器和集成存储器控制器208计数器。平台资源管理器210计数器可以指示例如LLC 206中的高速缓存占用和使用的存储器带宽。在一些实施例中,在框506中,分析服务器104读取一个或多个处理器核202性能计数器。处理器核202性能计数器可以指示由每个处理器核202执行的LLC加载和LLC未命中。
在框508中,分析服务器104基于活动计数器数据标识可疑核活动。如上所述,可疑核活动指示高速缓存侧信道攻击,并且可以包括异常级别的LLC 206占用、LLC 206未命中、消耗的存储器带宽或其他异常资源使用。在框510中,分析服务器104将来自活动计数器数据的高速缓存未命中与用于高速缓存未命中的正常使用阈值进行比较和/或将来自活动计数器数据的存储器带宽与用于存储器带宽的正常使用阈值进行比较。可以基于用于计算设备102的典型工作负载或其他预定阈值来确定正常使用阈值。在标识可疑核活动之后,完成方法500。如上面结合图4所述,如果标识出可疑核活动,则分析服务器104可以引起计算设备102执行附加监视以标识可疑应用活动。
现在参考图6,在使用中,分析服务器104可以执行用于可疑核活动检测的方法600。方法600可以例如结合如上结合图4所述的框406和408来执行。应当理解,在一些实施例中,方法600的操作可以由如图3所示的分析服务器104的环境300的一个或多个组件来执行。方法600在框602中开始,其中分析服务器104从受监视的计算设备102读取用于一组主应用和用于整个计算设备102的分析计数器数据。主应用可以体现为预期成由计算设备102执行并且已知为非恶意的一组过程、服务器或其他应用。例如,主应用可以包括web服务器、数据库服务器和由计算设备102执行的其他支持过程。计算设备102的资源管理器210可以提供用于主应用和用于由计算设备102执行的所有应用的分析计数器数据;因此,监视主应用的行为可能不会不利地影响计算设备102的性能。
如上所述,分析计数器数据可以体现为可以指示活动高速缓存侧信道攻击的任何性能监视或资源管理计数器数据。在一些实施例中,在框604中,分析服务器104读取平台资源管理器210性能计数器,包括LLC 206计数器和集成存储器控制器208计数器。平台资源管理器210计数器可以指示例如LLC 206中的高速缓存占用和使用的存储器带宽。如上所述,资源管理器210可以提供用于主应用以及用于由计算设备102执行的所有过程的LLC 206和存储器带宽数据。在一些实施例中,在框506中,分析服务器104读取一个或多个处理器核202性能计数器(counter)。处理器核202性能计数器可以指示由每个处理器核202执行的LLC加载和LLC未命中。
在框608中,分析服务器104基于活动计数器数据标识可疑核活动。如上所述,可疑核活动指示高速缓存侧信道攻击,并且可以包括异常级别的LLC 206占用、LLC 206未命中、消耗的存储器带宽或其他异常资源使用。在框610中,分析服务器104将用于主应用的活动计数器与用于由计算设备102执行的所有过程的活动计数器进行比较。当用于主应用的资源使用不增加时的用于整个计算设备102的增加的资源使用(例如,增加的LLC 206占用、存储器带宽和/或LLC 206高速缓存未命中)可以指示存在高速缓存侧信道攻击。在标识出可疑核活动之后,完成方法600。如上面结合图4所述,如果标识出可疑核活动,则分析服务器104可以引起计算设备102执行附加监视以标识可疑应用活动。
应当理解,在一些实施例中,方法400、500和/或600可以体现为存储在计算机可读介质上的各种指令,其可以由处理器、I/O子系统和/或分析服务器104的其他组件执行,以引起分析服务器104执行相应的方法400、500和/或600。计算机可读介质可以体现为能够被分析服务器104读取的任何类型的介质,包括但不限于存储器、数据存储设备、固件设备和/或其他介质。
现在参考图7,在使用中,计算设备102可以执行用于高速缓存侧信道攻击检测和缓解的方法700。应当理解,在一些实施例中,方法700的操作可以由如图3所示的计算设备102的环境320的一个或多个组件执行。方法700开始于框702,其中计算设备102从分析服务器104接收对活动计数器数据的请求。如上所述,分析服务器104可以针对活动计数器数据周期性地(例如,每十五分钟)轮询每个计算设备102。计算设备102可以利用分析报告包或对计算设备102具有最小性能影响的其他技术来响应于对活动计数器的请求。
在框704中,计算设备102将分析计数器数据发送到分析服务器104。如上所述,分析计数器数据可以体现为可以指示活动高速缓存侧信道攻击的任何性能监视或资源管理计数器数据。例如,分析计数器数据可以指示最后一级高速缓存(LLC)206占用、LLC 206高速缓存未命中、使用的存储器带宽或计算设备102的其他性能特性。分析计数器数据可以由计算设备102的资源管理器210生成,或者在一些实施例中,由计算设备102的各个处理器核202的性能计数器生成。分析计数器数据说明性地适用于整个计算设备102(即,由计算设备102执行的所有过程)。在一些实施例中,在框706中,计算设备102还可以发送用于由计算设备102执行的一组主应用的分析计数器数据。如上所述,主应用可以体现为预期成由计算设备102执行并且已知为非恶意的一组过程、服务器或其他应用。资源管理器210可以生成用于主应用的分析计数器数据。
在框708中,计算设备102确定是否执行可疑应用活动检测。计算设备102可以在由分析服务器104命令时执行可疑应用活动检测。例如,计算设备102可以接收从分析服务器104发送或以其他方式部署的检测过程。如果计算设备102确定不执行可疑应用检测,则方法700循环回到框702以继续向分析服务器104提供活动计数器数据。如果计算设备102确定执行可疑应用检测,则方法700前进到框710。
在框710中,计算设备102执行检测过程以标识指示潜在高速缓存侧信道攻击的可疑级别的应用活动。计算设备102可以使用任何适当的技术来标识潜在高速缓存侧信道攻击。在一些实施例中,在框712中,计算设备102可以将处理器120的每个逻辑处理器上的硬件高速缓存计数器配置成记录LLC 206加载和LLC 206加载未命中。计算设备102可以将硬件监视系统(例如,perf子系统)配置成每10,000个LLC加载而记录数据样本。可疑应用活动可以包括高于预期的LLC加载未命中与LLC加载之比。例如,可以将测量的LLC加载未命中与LLC加载之比与预定阈值比进行比较。在框714中,计算设备102将可疑应用活动报告给分析服务器104。如上所述,在一些实施例中,计算设备102可以报告是否检测到可疑应用活动(例如,LLC加载未命中与LLC加载比是否超过阈值)。另外或替代地,计算设备102可以报告由检测过程生成的数据(例如,LLC加载未命中数据)。
在框716中,计算设备102可以执行一个或多个校正动作以缓解潜在高速缓存侧信道攻击。计算设备102可以自动地(例如,在没有来自分析服务器104的进一步指示的情况下)或者响应于来自分析服务器104的命令而执行校正动作。例如,如上所述,分析服务器104可以在命令计算设备102执行校正动作之前确定特定的可疑应用是否被列入白名单。如上所述,要采取的特定校正动作可以取决于计算设备102的一个或多个能力、一个或多个安全策略或其他因素。另外,如上所述,可以组合多个校正动作。
在框718中,在一些实施例中,计算设备102可以扼杀与可疑应用相关联的过程或以其他方式终止当前正在执行的可疑应用。在框720中,在一些实施例中,计算设备102可以删除与可疑应用相关联的可执行映像或其他文件。在框722中,在一些实施例中,计算设备102可以重置、重启或以其他方式重新开始。如上所述,重置计算设备102可以引起计算设备102的高速缓存和其他易失性存储器被重置,并因而可以使某些高速缓存侧信道攻击失败。在一些实施例中,在框724中,计算设备102可以使用资源管理器210来限制用于与可疑应用相关联的过程的资源使用,诸如存储器带宽或LLC 206占用。如上所述,限制资源使用可以防止或降低某些高速缓存侧信道攻击的严重性,这例如通过防止恶意过程强制冲洗LLC206和/或通过降低恶意过程可以尝试读取未授权存储器的速率。在执行校正动作之后,方法700循环回到框702以继续将分析计数器数据报告给分析服务器104。
应当理解,在一些实施例中,方法700可以体现为存储在计算机可读介质上的各种指令,其可以由处理器120、I/O子系统122和/或计算设备102的其他组件执行,以引起计算设备102执行方法700。计算机可读介质可以体现为能够由计算设备102读取的任何类型的介质,包括但不限于存储器124、数据存储设备126、固件设备和/或其他介质。
示例
以下提供本文公开的技术的说明性示例。技术的实施例可以包括下面描述的示例中的任何一个或多个、以及任何组合。
示例1包括用于漏洞利用检测和校正的计算设备,该计算设备包括:核活动监视器,用于(i)从受监视的计算设备接收活动数据,以及(ii)基于活动数据确定是否存在可疑核活动,其中可疑核活动指示高速缓存侧信道攻击;应用活动监视器,用于(i)响应于存在可疑核活动的确定而基于受监视的计算设备本地的一个或多个性能计数器引起受监视的计算设备的检测过程,以及(ii)响应于引起检测过程而确定是否存在可疑应用,其中可疑应用指示高速缓存侧信道攻击;和校正动作管理器,用于引起受监视的计算设备响应于存在可疑应用的确定而执行校正动作。
示例2包括示例1的主题,并且其中:核活动监视器还用于针对活动数据轮询受监视的计算设备,其中轮询受监视的计算设备包括等待预定监视间隔;其中,接收活动数据包括响应于轮询受监视的计算设备而接收活动数据。
示例3包括示例1和2中任一项的主题,并且其中核活动监视器还用于从多个受监视的计算设备中选择受监视的计算设备。
示例4包括示例1-3中任一项的主题,并且其中:应用活动监视器还用于响应于存在可疑应用的确定而确定可疑应用是否包括在预定的允许应用列表中;其中,引起受监视的计算设备执行校正动作还包括引起受监视的计算设备响应于可疑应用未被包括在预定的允许应用列表中的确定而执行校正动作。
示例5包括示例1-4中任一项的主题,并且其中,引起受监视的计算设备执行校正动作校正动作包括引起受监视的计算设备扼杀可疑应用、引起受监视的计算设备删除与可疑应用相关联的映像、或者引起受监视的计算设备进行重置。
示例6包括示例1-5中任一项的主题,并且其中,引起受监视的计算设备执行校正动作校正动作包括引起受监视的计算设备使用受管理的计算设备的资源管理器来限制由可疑应用的资源使用。
示例7包括示例1-6中任一项的主题,并且其中,限制资源使用包括限制由可疑应用的高速缓存占用。
示例8包括示例1-7中任一项的主题,并且其中,限制资源使用包括限制可用于可疑应用的存储器带宽。
示例9包括示例1-8中任一项的主题,并且其中:接收活动数据包括从受管理的计算设备的资源管理器接收最后一级高速缓存数据;并且确定是否存在可疑核活动包括将活动数据的高速缓存未命中与预定高速缓存未命中阈值进行比较。
示例10包括示例1-9中任一项的主题,并且其中:接收活动数据包括从受管理的计算设备的资源管理器接收存储器带宽数据;并且确定是否存在可疑核活动包括将活动数据的存储器带宽使用与预定存储器带宽阈值进行比较。
示例11包括示例1-10中任一项的主题,并且其中:接收活动数据包括从受管理的计算设备的资源管理器接收用于受管理的计算设备的一个或多个主应用的第一活动数据,以及从受管理的计算设备的资源管理器接收用于受管理的计算设备的第二活动数据;并且确定是否存在可疑核活动包括将第一活动数据与第二活动数据进行比较。
示例12包括用于漏洞利用检测和校正的计算设备,该计算设备包括:核活动监视器,用于将活动数据发送到分析服务器,其中,活动数据由计算设备的处理器的资源管理器生成;应用活动监视器,用于(i)响应于发送活动数据而基于计算设备的性能计数器数据确定是否存在可疑应用活动,其中,性能计数器数据由计算设备的处理器本地的一个或多个性能计数器生成,并且其中可疑应用活动指示高速缓存侧信道攻击,以及(ii)响应于是否存在可疑应用活动的确定而向分析服务器报告是否存在可疑应用活动;和校正动作管理器,用于响应于存在可疑应用活动的确定而执行校正动作。
示例13包括示例12的主题,并且其中确定是否存在可疑应用活动包括执行检测过程以标识可疑应用活动。
示例14包括示例12和13中任一项的主题,并且其中:应用活动监视器还用于响应于发送活动数据而从分析服务器接收检测过程;并且执行检测过程包括响应于接收到检测过程而执行检测过程。
示例15包括示例12-14中任一项的主题,并且其中发送活动数据包括发送用于受管理的计算设备的一个或多个主应用的第一活动数据,以及发送用于受管理的计算设备的第二活动数据。
示例16包括示例12-15中任一项的主题,并且其中确定是否存在可疑应用活动包括:利用处理器的一个或多个性能计数器采样用于处理器的每个逻辑处理器的最后一级高速缓存加载和最后一级高速缓存加载未命中;确定最后一级高速缓存加载未命中与最后一级高速缓存加载之比;和将该比与预定阈值比进行比较。
示例17包括示例12-16中任一项的主题,并且其中,执行校正动作校正动作包括:扼杀与可疑应用活动相关联的过程、删除与可疑应用活动相关联的映像、或者重置计算设备。
示例18包括示例12-17中任一项的主题,并且其中,执行校正动作校正动作包括利用资源管理器限制由与可疑应用活动相关联的过程的资源使用。
示例19包括示例12-18中任一项的主题,并且其中,限制资源使用包括限制由与可疑应用活动相关联的过程的高速缓存占用。
示例20包括示例12-19中任一项的主题,并且其中限制资源使用包括限制可用于与可疑应用活动相关联的过程的存储器带宽。
示例21包括示例12-20中任一项的主题,并且其中发送活动数据包括发送由资源管理器生成的最后一级高速缓存数据。
示例22包括示例12-21中任一项的主题,并且其中发送活动数据包括发送由资源管理器生成的存储器带宽数据。
示例23包括用于漏洞利用检测和校正的方法,该方法包括:由计算设备从受监视的计算设备接收活动数据;由计算设备基于活动数据确定是否存在可疑核活动,其中可疑核活动指示高速缓存侧信道攻击;由计算设备响应于确定存在可疑核活动而基于受监视的计算设备本地的一个或多个性能计数器引起受监视的计算设备的检测过程;由计算设备响应于引起检测过程而确定是否存在可疑应用,其中可疑应用指示高速缓存侧信道攻击;以及由计算设备引起受监视的计算设备响应于确定存在可疑应用而执行校正动作。
示例24包括示例23的主题,并且还包括:由计算设备针对活动数据轮询受监视的计算设备,其中轮询受监视的计算设备包括等待预定监视间隔;其中,接收活动数据包括响应于轮询受监视的计算设备而接收活动数据。
示例25包括示例23和24中任一项的主题,并且还包括由计算设备从多个受监视的计算设备中选择受监视的计算设备。
示例26包括示例23-25中任一项的主题,并且还包括:由计算设备响应于确定存在可疑应用而确定可疑应用是否包括在预定的允许应用列表中;其中,引起受监视的计算设备执行校正动作还包括引起受监视的计算设备响应于确定可疑应用未被包括在预定的允许应用列表中而执行校正动作。
示例27包括示例23-26中任一项的主题,并且其中引起受监视的计算设备执行校正动作校正动作包括引起受监视的计算设备扼杀可疑应用、引起受监视的计算设备删除与可疑应用相关联的映像、或引起受监视的计算设备进行重置。
示例28包括示例23-27中任一项的主题,并且其中引起受监视的计算设备执行校正动作校正动作包括引起受监视的计算设备使用受管理的计算设备的资源管理器来限制由可疑应用的资源使用。
示例29包括示例23-28中任一项的主题,并且其中限制资源使用包括限制由可疑应用的高速缓存占用。
示例30包括示例23-29中任一项的主题,并且其中限制资源使用包括限制可用于可疑应用的存储器带宽。
示例31包括示例23-30中任一项的主题,并且其中:接收活动数据包括从受管理的计算设备的资源管理器接收最后一级高速缓存数据;并且确定是否存在可疑核活动包括将活动数据的高速缓存未命中与预定高速缓存未命中阈值进行比较。
示例32包括示例23-31中任一项的主题,并且其中:接收活动数据包括从受管理的计算设备的资源管理器接收存储器带宽数据;并且确定是否存在可疑核活动包括将活动数据的存储器带宽使用与预定存储器带宽阈值进行比较。
示例33包括示例23-32中任一项的主题,并且其中:接收活动数据包括从受管理的计算设备的资源管理器接收用于受管理的计算设备的一个或多个主应用的第一活动数据,以及从受管理的计算设备的资源管理器接收用于受管理的计算设备的第二活动数据;并且确定是否存在可疑核活动包括将第一活动数据与第二活动数据进行比较。
示例34包括用于漏洞利用检测和校正的方法,该方法包括:由计算设备将活动数据发送到分析服务器,其中,活动数据由计算设备的处理器的资源管理器生成;由计算设备响应于发送活动数据而基于计算设备的性能计数器数据确定是否存在可疑应用活动,其中,性能计数器数据由计算设备的处理器本地的一个或多个性能计数器生成,并且其中可疑应用活动指示高速缓存侧信道攻击;由计算设备响应于确定是否存在可疑应用活动而向分析服务器报告是否存在可疑应用活动;以及由计算设备响应于确定存在可疑应用活动而执行校正动作。
示例35包括示例34的主题,并且其中,确定是否存在可疑应用活动包括执行检测过程以标识可疑应用活动。
示例36包括示例34和35中任一项的主题,并且还包括:由计算设备响应于发送活动数据而从分析服务器接收检测过程;其中,执行检测过程包括响应于接收到检测过程而执行检测过程。
示例37包括示例34-36中任一项的主题,并且其中,发送活动数据包括发送用于受管理的计算设备的一个或多个主应用的第一活动数据以及发送用于受管理的计算设备的第二活动数据。
示例38包括示例34-37中任一项的主题,并且其中,确定是否存在可疑应用活动包括:使用处理器的一个或多个性能计数器来采样用于处理器的每个逻辑处理器的最后一级高速缓存加载和最后一级高速缓存加载未命中;确定最后一级高速缓存加载未命中与最后一级高速缓存加载之比;并将该比与预定阈值比进行比较。
示例39包括示例34-38中任一项的主题,并且其中,执行校正动作校正动作包括扼杀与可疑应用活动相关联的过程、删除与可疑应用活动相关联的映像、或重置计算设备。
示例40包括示例34-39中任一项的主题,并且其中,执行校正动作校正动作包括使用资源管理器限制由与可疑应用活动相关联的过程的资源使用。
示例41包括示例34-40中任一项的主题,并且其中,限制资源使用包括限制由与可疑应用活动相关联的过程的高速缓存占用。
示例42包括示例34-41中任一项的主题,并且其中,限制资源使用包括限制可用于与可疑应用活动相关联的过程的存储器带宽。
示例43包括示例34-42中任一项的主题,并且其中,发送活动数据包括发送由资源管理器生成的最后一级高速缓存数据。
示例44包括示例34-43中任一项的主题,并且其中,发送活动数据包括发送由资源管理器生成的存储器带宽数据。
示例45包括一个或多个计算机可读存储介质,其包括存储在其上的多个指令,所述指令响应于被执行引起计算设备:从受监视的计算设备接收活动数据;基于活动数据确定是否存在可疑核活动,其中可疑核活动指示高速缓存侧信道攻击;响应于确定存在可疑核活动而基于受监视的计算设备本地的一个或多个性能计数器引起受监视的计算设备的检测过程;响应于引起检测过程确定是否存在可疑应用,其中可疑应用指示高速缓存侧信道攻击;并且引起受监视的计算设备响应于确定存在可疑应用而执行校正动作。
示例46包括示例45的主题,并且还包括存储在其上的多个指令,其响应于被执行而引起计算设备:针对活动数据轮询受监视的计算设备,其中轮询受监视的计算设备包括等待预定监视间隔;其中,接收活动数据包括响应于轮询受监视的计算设备而接收活动数据。
示例47包括示例45和46中任一项的主题,并且还包括存储在其上的多个指令,其响应于被执行引起计算设备从多个受监视的计算设备中选择受监视的计算设备。
示例48包括示例45-47中任一项的主题,并且还包括存储在其上的多个指令,其响应于被执行而引起计算设备:响应于确定存在可疑应用而确定可疑应用是否包括在预定的允许应用列表中;其中,引起受监视的计算设备执行校正动作还包括引起受监视的计算设备响应于确定可疑应用未被包括在预定的允许应用列表中而执行校正动作。
示例49包括示例45-48中任一项的主题,并且其中,引起受监视的计算设备执行校正动作校正动作包括引起受监视的计算设备扼杀可疑应用、引起受监视的计算用于删除与可疑应用相关联的映像、或引起受监视的计算设备进行重置。
示例50包括示例45-49中任一项的主题,并且其中,引起受监视的计算设备执行校正动作校正动作包括引起受监视的计算设备使用受管理的计算设备的资源管理器来限制由可疑应用的资源使用。
示例51包括示例45-50中任一项的主题,并且其中,限制资源使用包括限制由可疑应用的高速缓存占用。
示例52包括示例45-51中任一项的主题,并且其中,限制资源使用包括限制可用于可疑应用的存储器带宽。
示例53包括示例45-52中任一项的主题,并且其中:接收活动数据包括从受管理的计算设备的资源管理器接收最后一级高速缓存数据;并且确定是否存在可疑核活动包括将活动数据的高速缓存未命中与预定高速缓存未命中阈值进行比较。
示例54包括示例45-53中任一项的主题,并且其中:接收活动数据包括从受管理的计算设备的资源管理器接收存储器带宽数据;并且确定是否存在可疑核活动包括将活动数据的存储器带宽使用与预定存储器带宽阈值进行比较。
示例55包括示例45-54中任一项的主题,并且其中:接收活动数据包括从受管理的计算设备的资源管理器接收用于受管理的计算设备的一个或多个主应用的第一活动数据,以及从受管理的计算设备的资源管理器接收用于受管理的计算设备的第二活动数据;并且确定是否存在可疑核活动包括将第一活动数据与第二活动数据进行比较。
示例56包括一个或多个计算机可读存储介质,其包括存储在其上的多个指令,所述指令响应于被执行而引起计算设备:将活动数据发送到分析服务器,其中活动数据由计算设备的处理器的资源管理器生成;响应于发送活动数据而基于计算设备的性能计数器数据确定是否存在可疑应用活动,其中性能计数器数据由计算设备的处理器本地的一个或多个性能计数器生成,并且其中可疑应用活动指示高速缓存侧信道攻击;响应于确定是否存在可疑应用活动而向分析服务器报告是否存在可疑应用活动;并且响应于确定存在可疑应用活动而执行校正动作。
示例57包括示例56的主题,并且其中,确定是否存在可疑应用活动包括执行检测过程以标识可疑应用活动。
示例58包括示例56和57中任一项的主题,并且还包括存储在其上的多个指令,其响应于被执行而引起计算设备:响应于发送活动数据而从分析服务器接收检测过程;其中,执行检测过程包括响应于接收到检测过程而执行检测过程。
示例59包括示例56-58中任一项的主题,并且其中发送活动数据包括发送用于受管理的计算设备的一个或多个主应用的第一活动数据以及发送用于受管理的计算设备的第二活动数据。
示例60包括示例56-59中任一项的主题,并且其中确定是否存在可疑应用活动包括使用处理器的一个或多个性能计数器来采样用于处理器的每个逻辑处理器的最后一级高速缓存加载和最后一级高速缓存加载未命中;确定最后一级高速缓存加载未命中与最后一级高速缓存加载之比;并将该比与预定阈值比进行比较。
示例61包括示例56-60中任一项的主题,并且其中,执行校正动作校正动作包括扼杀与可疑应用活动相关联的过程、删除与可疑应用活动相关联的映像、或者重置计算设备。
示例62包括示例56-61中任一项的主题,并且其中,执行校正动作校正动作包括使用资源管理器来限制由与可疑应用活动相关联的过程的资源使用。
示例63包括示例56-62中任一项的主题,并且其中,限制资源使用包括限制由与可疑应用活动相关联的过程的高速缓存占用。
示例64包括示例56-63中任一项的主题,并且其中,限制资源使用包括限制可用于与可疑应用活动相关联的过程的存储器带宽。
示例65包括示例56-64中任一项的主题,并且其中,发送活动数据包括发送由资源管理器生成的最后一级高速缓存数据。
示例66包括示例56-65中任一项的主题,并且其中,发送活动数据包括发送由资源管理器生成的存储器带宽数据。

Claims (25)

1.一种用于漏洞利用检测和校正的计算设备,该计算设备包括:
核活动监视器,用于(i)从受监视的计算设备接收活动数据,以及(ii)基于活动数据确定是否存在可疑核活动,其中可疑核活动指示高速缓存侧信道攻击;
应用活动监视器,用于(i)响应于存在可疑核活动的确定而基于受监视的计算设备本地的一个或多个性能计数器引起受监视的计算设备的检测过程,以及(ii)响应于引起检测过程而确定是否存在可疑应用,其中可疑应用指示高速缓存侧信道攻击;和
校正动作管理器,用于引起受监视的计算设备响应于存在可疑应用的确定而执行校正动作。
2.根据权利要求1所述的计算设备,其中:
核活动监视器还用于针对活动数据轮询受监视的计算设备,其中轮询受监视的计算设备包括等待预定监视间隔;
其中,接收活动数据包括响应于轮询受监视的计算设备而接收活动数据。
3.根据权利要求1所述的计算设备,其中:
应用活动监视器还用于响应于存在可疑应用的确定而确定可疑应用是否包括在预定的允许应用列表中;
其中,引起受监视的计算设备执行校正动作还包括引起受监视的计算设备响应于可疑应用未被包括在预定的允许应用列表中的确定而执行校正动作。
4.根据权利要求1所述的计算设备,其中:
接收活动数据包括从受管理的计算设备的资源管理器接收最后一级高速缓存数据;和
确定是否存在可疑核活动包括将活动数据的高速缓存未命中与预定高速缓存未命中阈值进行比较。
5.根据权利要求1所述的计算设备,其中:
接收活动数据包括从受管理的计算设备的资源管理器接收存储器带宽数据;和
确定是否存在可疑核活动包括将活动数据的存储器带宽使用与预定存储器带宽阈值进行比较。
6.根据权利要求1所述的计算设备,其中:
接收活动数据包括从受管理的计算设备的资源管理器接收用于受管理的计算设备的一个或多个主应用的第一活动数据、以及从受管理的计算设备的资源管理器接收用于受管理的计算设备的第二活动数据;和
确定是否存在可疑核活动包括将第一活动数据与第二活动数据进行比较。
7.一种用于漏洞利用检测和校正的方法,该方法包括:
由计算设备从受监视的计算设备接收活动计数器数据;
由计算设备基于活动计数器数据确定是否存在可疑核活动,其中可疑核活动指示高速缓存侧信道攻击;
由计算设备响应于确定存在可疑核活动而向受监视的计算设备部署检测过程;
由计算设备响应于部署检测过程而确定是否存在可疑应用,其中可疑应用指示高速缓存侧信道攻击;和
由计算设备引起受监视的计算设备响应于确定存在可疑应用而执行校正动作。
8.根据权利要求7所述的方法,还包括:
由计算设备针对活动计数器数据轮询受监视的计算设备,其中轮询受监视的计算设备包括等待预定监视间隔;
其中,接收活动计数器数据包括响应于轮询受监视的计算设备而接收活动计数器数据。
9.根据权利要求7所述的方法,其中:
接收活动计数器数据包括从受管理的计算设备的资源管理器接收最后一级高速缓存数据;和
确定是否存在可疑核活动包括将活动计数器数据的高速缓存未命中与预定高速缓存未命中阈值进行比较。
10.根据权利要求7所述的方法,其中:
接收活动计数器数据包括从受管理的计算设备的资源管理器接收存储器带宽数据;并且
确定是否存在可疑核活动包括将活动计数器数据的存储器带宽使用与预定存储器带宽阈值进行比较。
11.根据权利要求7所述的方法,其中:
接收活动计数器数据包括从受管理的计算设备的资源管理器接收用于受管理的计算设备的一个或多个主应用的第一活动计数器数据、以及从受管理的计算设备的资源管理器接收用于受管理的计算设备的第二活动计数器数据;并且
确定是否存在可疑核活动包括将第一活动数据与第二活动数据进行比较。
12.一种用于漏洞利用检测和校正的计算设备,该计算设备包括:
核活动监视器,用于将活动数据发送到分析服务器,其中,活动数据由计算设备的处理器的资源管理器生成;
应用活动监视器,用于(i)响应于发送活动数据而基于计算设备的性能计数器数据确定是否存在可疑应用活动,其中,性能计数器数据由计算设备的处理器本地的一个或多个性能计数器生成,并且其中可疑应用活动指示高速缓存侧信道攻击,以及(ii)响应于是否存在可疑应用活动的确定而向分析服务器报告是否存在可疑应用活动;和
校正动作管理器,用于响应于存在可疑应用活动的确定而执行校正动作。
13.根据权利要求12所述的计算设备,其中,确定是否存在可疑应用活动包括执行检测过程以标识可疑应用活动。
14.根据权利要求13所述的计算设备,其中:
应用活动监视器还用于响应于发送活动数据而从分析服务器接收检测过程;并且
执行检测过程包括响应于接收到检测过程而执行检测过程。
15.根据权利要求12所述的计算设备,其中,确定是否存在可疑应用活动包括:
利用处理器的一个或多个性能计数器采样用于处理器的每个逻辑处理器的最后一级高速缓存加载和最后一级高速缓存加载未命中;
确定最后一级高速缓存加载未命中与最后一级高速缓存加载之比;和
将该比与预定阈值比进行比较。
16.根据权利要求12所述的计算设备,其中,执行校正动作校正动作包括扼杀与可疑应用活动相关联的过程、删除与可疑应用活动相关联的映像、或者重置计算设备。
17.根据权利要求12所述的计算设备,其中,执行校正动作校正动作包括利用资源管理器限制由与可疑应用活动相关联的过程的资源使用。
18.根据权利要求17所述的计算设备,其中,限制资源使用包括限制由与可疑应用活动相关联的过程的高速缓存占用。
19.根据权利要求17所述的计算设备,其中,限制资源使用包括限制可用于与可疑应用活动相关联的过程的存储器带宽。
20.一种用于漏洞利用检测和校正的方法,该方法包括:
由计算设备将活动计数器数据发送给分析服务器,其中活动计数器数据由计算设备的处理器的资源管理器生成;
由计算设备响应于发送活动数据而基于计算设备的性能计数器数据确定是否存在可疑应用活动,其中,可疑应用活动指示高速缓存侧信道攻击;
由计算设备响应于确定是否存在可疑应用活动而向分析服务器报告是否存在可疑应用活动;和
由计算设备响应于确定存在可疑应用活动而执行校正动作。
21.根据权利要求20所述的方法,其中,确定是否存在可疑应用活动包括:
使用处理器的一个或多个性能计数器来采样用于处理器的每个逻辑处理器的最后一级高速缓存加载和最后一级高速缓存加载未命中;
确定最后一级高速缓存加载未命中与最后一级高速缓存加载之比;和
将该比与预定阈值比进行比较。
22.根据权利要求20所述的方法,其中,执行校正动作校正动作包括扼杀与可疑应用活动相关联的过程、删除与可疑应用活动相关联的映像、或者重置计算设备。
23.根据权利要求20所述的方法,其中,执行校正动作校正动作包括使用资源管理器限制由与可疑应用活动相关联的过程的资源使用。
24.根据权利要求23所述的方法,其中,限制资源使用包括限制由与可疑应用活动相关联的过程的高速缓存占用。
25.根据权利要求23所述的方法,其中,限制资源使用包括限制可用于与可疑应用活动相关联的过程的存储器带宽。
CN201910457412.0A 2018-06-29 2019-05-29 用于高速缓存侧信道攻击检测和缓解的技术 Pending CN110659499A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/022,976 US10860714B2 (en) 2018-06-29 2018-06-29 Technologies for cache side channel attack detection and mitigation
US16/022976 2018-06-29

Publications (1)

Publication Number Publication Date
CN110659499A true CN110659499A (zh) 2020-01-07

Family

ID=65230651

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910457412.0A Pending CN110659499A (zh) 2018-06-29 2019-05-29 用于高速缓存侧信道攻击检测和缓解的技术

Country Status (2)

Country Link
US (1) US10860714B2 (zh)
CN (1) CN110659499A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111414321A (zh) * 2020-02-24 2020-07-14 中国农业大学 一种基于动态映射机制的cache防护方法及装置
CN113420287A (zh) * 2021-06-21 2021-09-21 上海交通大学 一种抵御基于高速缓存的侧信道攻击的方法

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11232196B2 (en) * 2018-07-09 2022-01-25 Arm Limited Tracking events of interest to mitigate attacks
US11361111B2 (en) * 2018-07-09 2022-06-14 Arm Limited Repetitive side channel attack countermeasures
US11100223B2 (en) * 2018-11-02 2021-08-24 United States Of America As Represented By The Secretary Of The Air Force Core shell liquid metal encapsulates comprising multi-functional ligands and networks comprising same
US11861049B2 (en) * 2019-01-30 2024-01-02 The George Washington University System and method for defense against cache timing channel attacks using cache management hardware
US11182234B2 (en) 2019-05-10 2021-11-23 Arm Limited Tracking events of interest
US20210004276A1 (en) * 2020-09-16 2021-01-07 Intel Corporation Application negotiable resource director technology for efficient platform resource management
WO2022092498A1 (ko) * 2020-10-30 2022-05-05 재단법인대구경북과학기술원 캐시 부 채널 공격 탐지 방법 및 장치
US11924112B2 (en) * 2021-03-30 2024-03-05 Cisco Technology, Inc. Real-time data transaction configuration of network devices

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7610493B2 (en) * 2005-08-31 2009-10-27 Intel Corporation System and methods for adapting to attacks on cryptographic processes on multiprocessor systems with shared cache
US7958320B2 (en) * 2006-12-05 2011-06-07 Intel Corporation Protected cache architecture and secure programming paradigm to protect applications
US8869294B2 (en) * 2006-12-05 2014-10-21 Intel Corporation Mitigating branch prediction and other timing based side channel attacks
US8256003B2 (en) * 2007-05-10 2012-08-28 Microsoft Corporation Real-time network malware protection
US8781111B2 (en) * 2007-07-05 2014-07-15 Broadcom Corporation System and methods for side-channel attack prevention
US8499150B1 (en) * 2010-11-11 2013-07-30 Symantec Corporation Selectively trusting signed files
US8996814B2 (en) * 2010-12-21 2015-03-31 Microsoft Technology Licensing, Llc System and method for providing stealth memory
US8646089B2 (en) * 2011-10-18 2014-02-04 Mcafee, Inc. System and method for transitioning to a whitelist mode during a malware attack in a network environment
US9104480B2 (en) * 2012-11-15 2015-08-11 International Business Machines Corporation Monitoring and managing memory thresholds for application request threads
US20160099960A1 (en) * 2014-10-01 2016-04-07 Infocyte, Inc. System and method for scanning hosts using an autonomous, self-destructing payload

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111414321A (zh) * 2020-02-24 2020-07-14 中国农业大学 一种基于动态映射机制的cache防护方法及装置
CN111414321B (zh) * 2020-02-24 2022-07-15 中国农业大学 一种基于动态映射机制的cache防护方法及装置
CN113420287A (zh) * 2021-06-21 2021-09-21 上海交通大学 一种抵御基于高速缓存的侧信道攻击的方法
CN113420287B (zh) * 2021-06-21 2022-07-26 上海交通大学 一种抵御基于高速缓存的侧信道攻击的方法

Also Published As

Publication number Publication date
US10860714B2 (en) 2020-12-08
US20190042739A1 (en) 2019-02-07

Similar Documents

Publication Publication Date Title
US10860714B2 (en) Technologies for cache side channel attack detection and mitigation
US11165631B1 (en) Identifying a root cause of alerts within virtualized computing environment monitoring system
EP3382543B1 (en) Micro-level monitoring, visibility and control of shared resources internal to a processor of a host machine for a virtual environment
US8661447B1 (en) Method and apparatus for managing execution of a plurality of computer tasks based on availability of computer resources
US10721264B1 (en) Systems and methods for categorizing security incidents
US10469512B1 (en) Optimized resource allocation for virtual machines within a malware content detection system
CN107291538B (zh) 面向任务的拟态云构建方法及基于拟态云的任务调度方法、装置、系统
US10826931B1 (en) System and method for predicting and mitigating cybersecurity system misconfigurations
EP3038291B1 (en) End-to-end datacenter performance control
Javadi et al. Scavenger: A black-box batch workload resource manager for improving utilization in cloud environments
US9503475B2 (en) Self-adaptive and proactive virtual machine images adjustment to environmental security risks in a cloud environment
US8595361B2 (en) Virtual machine software license management
US10810096B2 (en) Deferred server recovery in computing systems
US10320831B2 (en) Systems and methods for applying security updates to endpoint devices
US20100005465A1 (en) Virtual machine location system, virtual machine location method, program, virtual machine manager, and server
US8990946B1 (en) System and methods of distributing antivirus checking tasks among virtual machines in a virtual network
EP3330855A1 (en) Managing hardware resources
US10558810B2 (en) Device monitoring policy
US9934378B1 (en) Systems and methods for filtering log files
US11997124B2 (en) Out-of-band management security analysis and monitoring
US20190042479A1 (en) Heuristic and machine-learning based methods to prevent fine-grained cache side-channel attacks
US20160147657A1 (en) System and method for optimized disk io ram caching for a vdi environment
US9349012B2 (en) Distributed processing system, distributed processing method and computer-readable recording medium
US20200142736A1 (en) Computer processing system with resource optimization and associated methods
US20190243953A1 (en) Enhanced security for multiple node computing platform

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