CN107077424B - 用于检测在第一阶指令高速缓冲存储器中的恶意代码的集成电路和方法 - Google Patents
用于检测在第一阶指令高速缓冲存储器中的恶意代码的集成电路和方法 Download PDFInfo
- Publication number
- CN107077424B CN107077424B CN201580049149.1A CN201580049149A CN107077424B CN 107077424 B CN107077424 B CN 107077424B CN 201580049149 A CN201580049149 A CN 201580049149A CN 107077424 B CN107077424 B CN 107077424B
- Authority
- CN
- China
- Prior art keywords
- memory
- instruction
- code
- execution
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Virology (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供一种集成电路,其可包括:处理器;第一阶指令高速缓冲存储器,其具有第一存储容量;和第二阶高速缓冲存储器,其具有大于所述第一存储容量的第二存储容量。所述第一阶指令高速缓冲存储器经配置以存储所述第二阶高速缓冲存储器中所存储的指令的子集。所述第二阶高速缓冲存储器经配置以存储外部存储器中所存储的数据和指令的子集。所述处理器执行检测例程的内部循环,且监测所述内部循环的执行时间以检测所述第一阶指令高速缓冲存储器中的恶意代码。检测例程指令的总数大于所述第一存储容量。所述内部循环需要从所述第二阶高速缓冲存储器提取检测例程指令,且在所述内部循环的执行期间执行的指令的执行数目小于所述第一存储容量。
Description
对相关申请案的交叉参考
本申请案主张2014年9月22日向美国专利局申请的美国非临时申请案第14/493,306号的优先权和权利,所述申请案的全部内容以引用的方式并入本文中。
技术领域
本发明大体上涉及检测与非高速缓冲存储(do-not-cache)攻击相关联的恶意代码。
背景技术
许多计算环境包含直接从RAM提取一或多个指令的指令。这些指令不存储于第二阶(L2)高速缓冲存储器中,而是替代地直接被复制到较小且较快的第一阶(L1)指令高速缓冲存储器中。通常,绕过L2高速缓冲存储器为善意操作。然而,在不存取L2高速缓冲存储器的情况下执行代码的能力可允许敌人用不使用L2高速缓冲存储器的恶意/损毁代码替换使用L2高速缓冲存储器的无害代码而此替换不被发现。举例来说,如果整个恶意代码适应L1高速缓冲存储器,那么恶意代码可隐藏其存在而不被扫描/检测软件发现。
因此,需要检测隐藏于第一阶指令高速缓冲存储器中的恶意代码的能力。
发明内容
本发明的一方面可在于一种集成电路,其包括:处理器;第一阶指令高速缓冲存储器,其具有第一存储容量;和第二阶高速缓冲存储器,其具有大于所述第一存储容量的第二存储容量。所述第一阶指令高速缓冲存储器耦合于所述处理器与所述第二阶高速缓冲存储器之间,且经配置以存储所述第二阶高速缓冲存储器中所存储的指令的子集。所述第二阶高速缓冲存储器耦合于所述第一阶指令高速缓冲存储器与外部存储器之间,且经配置以存储所述外部存储器中所存储的数据和指令的子集。所述处理器经配置以执行检测例程的内部循环,且监测所述内部循环的执行时间以检测所述第一阶指令高速缓冲存储器中的恶意代码。检测例程指令的总数大于所述第一存储容量。在执行期间,所述内部循环需要从所述第二阶高速缓冲存储器提取检测例程指令,且在所述内部循环的执行期间执行的指令的执行数目小于所述第一存储容量。
在本发明的更详细方面中,所述执行数目可显著小于所述第一存储容量。所述检测例程指令可包括一系列类似函数,且所述系列类似函数中的至少两个函数可为不同的。在执行期间,所述检测例程的所述内部循环可包含基于在所述检测例程的所述执行之前未知的至少一个选择输入对至少一个检测例程指令的选择。
本发明的另一方面可在于一种方法,其包括:通过处理器执行检测例程的内部循环,其中检测例程指令的总数大于第一阶指令高速缓冲存储器的第一存储容量;和在所述内部循环正在执行时从具有第二存储容量的第二阶高速缓冲存储器提取检测例程指令,所述第二阶高速缓冲存储器用于存储外部存储器中所存储的数据和指令的子集,其中在所述内部循环的执行期间执行的指令的执行数目小于所述第一存储容量;且通过所述处理器监测所述内部循环的执行时间以检测所述第一阶指令高速缓冲存储器中的恶意代码。
本发明的另一方面可在于一种集成电路,其包括:用于执行检测例程的内部循环的装置,其中检测例程指令的总数大于第一阶指令高速缓冲存储器的第一存储容量;用于在所述内部循环正在执行时从具有第二存储容量的第二阶高速缓冲存储器提取检测例程指令的装置,所述第二阶高速缓冲存储器用于存储外部存储器中所存储的数据和指令的子集,其中在所述内部循环的执行期间执行的指令的执行数目小于所述第一存储容量;和用于监测所述内部循环的执行时间以检测所述第一阶指令高速缓冲存储器中的恶意代码的装置。
本发明的另一方面可在于一种计算机程序产品,其包括:计算机可读媒体,其包括:用于使计算机执行检测例程的内部循环的代码,其中检测例程指令的总数大于第一阶指令高速缓冲存储器的第一存储容量,其中在执行期间所述内部循环需要从具有第二存储容量的第二阶高速缓冲存储器提取检测例程指令,所述第二阶高速缓冲存储器用于存储外部存储器中所存储的数据和指令的子集,且其中在所述内部循环的执行期间执行的指令的执行数目小于所述第一存储容量;和用于使所述计算机监测所述内部循环的执行时间以检测所述第一阶指令高速缓冲存储器中的恶意代码的代码。
附图说明
图1为无线通信系统的实例的框图。
图2为根据本发明的方面的用于实施用于检测第一阶指令高速缓冲存储器中的恶意代码的技术的集成电路的框图。
图3为根据本发明的方面的检测例程的流程图。
图4为根据本发明的方面的用于检测第一阶指令高速缓冲存储器中的恶意代码的方法的流程图。
图5为包含处理器和存储器的计算机的框图。
具体实施方式
词语“示例性”在本文中用以意谓“充当实例、例子或说明”。本文中描述为“示例性”的任何实施例不必解释为比其它实施例优选或更有利。
参看图2和3,本发明的一方面可在于集成电路210,其包括:处理器220、具有第一存储容量的第一阶指令高速缓冲存储器230和具有大于第一存储容量的第二存储容量的第二阶高速缓冲存储器240。第一阶指令高速缓冲存储器耦合于处理器与第二阶高速缓冲存储器之间,且经配置以存储第二阶高速缓冲存储器中所存储的指令的子集。第二阶高速缓冲存储器耦合于第一阶指令高速缓冲存储器与外部存储器250之间,且经配置以存储外部存储器中所存储的数据和指令的子集。处理器经配置以执行检测例程300的内部循环310,且监测内部循环的执行时间以检测第一阶指令高速缓冲存储器中的恶意代码。检测例程指令的总数大于第一存储容量。在执行期间,内部循环需要从第二阶高速缓冲存储器提取检测例程指令,且在内部循环的执行期间执行的指令的执行数目小于第一存储容量。
在本发明的更详细方面中,执行数目可显著小于第一存储容量。检测例程指令可包括一系列类似函数,且所述系列类似函数中的至少两个函数可为不同的。在执行期间,检测例程300的内部循环310可包含基于在检测例程的执行之前未知的至少一个选择输入对至少一个检测例程指令的选择。第一阶指令高速缓冲存储器可包括4千字节,且执行数目可包括16。
进一步参看图1和5,远程站102可包括:包含处理器510(例如,集成电路210中的处理器220)、存储媒体520(例如,存储器250和/或磁盘驱动器)的计算机500、显示器530和例如小键盘的输入装置540以及无线连接550(例如,Wi-Fi连接和/或蜂窝式连接)。
进一步参看图4,本发明的另一方面可在于方法400,其包括:通过处理器220执行检测例程300的内部循环310(步骤410)。检测例程指令的总数大于第一阶指令高速缓冲存储器230的第一存储容量。在内部循环正在执行时,从具有第二存储容量的第二阶高速缓冲存储器240提取检测例程指令,所述第二阶高速缓冲存储器用于存储外部存储器250中所存储的数据和指令的子集。在内部循环的执行期间执行的指令的执行数目小于第一存储容量。所述方法进一步包含通过处理器监测内部循环的执行时间以检测第一阶指令高速缓冲存储器中的恶意代码(步骤420)。
本发明的另一方面可在于集成电路210,其包括:用于执行检测例程300的内部循环310的装置(例如,220、510),其中检测例程指令的总数大于第一阶指令高速缓冲存储器230的第一存储容量;用于在内部循环正在执行时从具有第二存储容量的第二阶高速缓冲存储器240提取检测例程指令的装置(例如,220、510),所述第二阶高速缓冲存储器用于存储外部存储器250中所存储的数据和指令的子集,且其中在内部循环的执行期间执行的指令的执行数目小于第一存储容量;和用于监测内部循环的执行时间以检测第一阶指令高速缓冲存储器中的恶意代码的装置(例如,220、510)。
本发明的另一方面可在于计算机程序产品,其包括:计算机可读媒体(例如,250、520),其包括:用于使计算机执行检测例程300的内部循环310的代码,其中检测例程指令的总数大于第一阶指令高速缓冲存储器230的第一存储容量,其中在执行期间内部循环需要从具有第二存储容量的第二阶高速缓冲存储器240提取检测例程指令,所述第二阶高速缓冲存储器用于存储外部存储器250中所存储的数据和指令的子集,且其中在内部循环的执行期间执行的指令的执行数目小于第一存储容量;和用于使计算机监测内部循环的执行时间以检测第一阶指令高速缓冲存储器中的恶意代码的代码。
本发明的一方面涉及使用善意/诚信代码,即检测例程300,其防止恶意的非高速缓冲存储代码适应L1高速缓冲存储器230且快速执行(例如,1.6毫秒)。出于可用性和安全性两个目的,快速执行对于基于软件的认证(SBA)是合乎需要的。善意代码具有以下特征:1)善意代码的内部循环310为大型的,意谓其并不适应L1高速缓冲存储器,且因此,执行内部循环需要从L2高速缓冲存储器240或RAM/次要存储器提取代码;和2)经执行以用于内部循环的一个反复的指令的数目远小于适应L1高速缓冲存储器的指令的数目。
这是通过使用具有善意代码的广泛分支而获得,其中分支的一些部分引起L1高速缓冲存储器未命中,这是因为可叉出分支到内部循环310内的所有代码无法适应L1高速缓冲存储器230。只要不同分支含有充分不同的代码(例如,不同操作或位移)而不引起与解压缩相关的延迟,善意代码便无法以适应L1高速缓冲存储器的方式压缩或表示。因此,尝试执行相同计算任务的恶意代码将归因于解压缩而耗费显著较长时间来执行或归因于高速缓冲存储器未命中而耗费较长时间来执行。这是因为善意代码可存储于L1高速缓冲存储器和L2高速缓冲存储器两者中,其中当存在L1高速缓冲存储器未命中时,事物从L2加载到L1;然而,恶意代码希望避免使用L2,且任何L1高速缓冲存储器未命中将因此导致解压缩(其耗费长时间)或从DRAM或其它慢速存储器提取数据(其也耗费长时间。)此结构与其它管线/提取失败结构的组合保证非高速缓冲存储攻击无法在不被检测到的情况下进行。
善意代码的实例可包含一系列类似(或等效)但不同的函数(异或(XOR)、位旋转、相加和交换等),所述函数可需要6千字节,而L1指令高速缓冲存储器的容量可为4千字节,即,善意代码可为L1指令高速缓冲存储器的大小的大约150%。善意代码可仅执行(例如)16个步骤,但在每一步骤,其基于条件1、2…N(其为未知的直到执行期间)而不可预测地选择新函数(例如,F1、F2…FN)。因此,在每一步骤,存在高速缓冲存储器未命中的改变,其无法由恶意的非高速缓冲存储代码预测/避免。对于善意代码,高速缓冲存储器未命中将引起较小延迟,这是因为用于新函数的代码是从L2高速缓冲存储器存取(或分页)。然而,在存在恶意的非高速缓冲存储代码的情况下的高速缓冲存储器未命中将引起对外部存储器250(例如,RAM或次要存储器(例如,磁盘驱动器或其类似者))的存取,其耗费更长时间来存取。因此,归因于更长执行时间的延迟允许检测恶意代码的存在。
每一函数可包括操作和操作数,例如XOR 3076或AND Z。第一阶高速缓冲存储器也可包含L1数据高速缓冲存储器260。
检测例程300的善意代码也可包含共同指令以加载具有在执行阶段已知的内容的寄存器(步骤320)。视情况,寄存器内容可包含处理寄存器内容的步骤(步骤330)。共同代码可包含跳转指令,所述跳转指令叉出分支到基于寄存器内容或状态的位置或代码路径(步骤340)。每一代码路径可包括另外6个字节的序列(350、360…),包含到共同部分的开始的跳转370。共同部分可包含到退出循环310的分支的继续步骤(步骤380)或在完成后返回(步骤390)。因此,在此实例中,可存在1000个分支路径,每一者为6字节长,从而产生用于检测例程的大约6千字节。共同代码可包括大约10字节。
所揭示的技术抵制绕过L2高速缓冲存储器的攻击,且直接应用于作用中恶意代码的检测(包含作用中行动恶意代码)。作为一实例,驻存于存储器250和L1指令高速缓冲存储器230中但不驻存于L2高速缓冲存储器240中的恶意代码可计算关于驻存在L2高速缓冲存储器中的无害或诚信代码的检查和,且返回所述检查和以避免检测。通过迫使恶意代码驻存于L2高速缓冲存储器中(从检查和检测)或引起显著延迟的存储器(如果其运行)中(从执行时间检测),那么恶意代码无法隐藏。
前述描述也适用于具有两个以上阶层的高速缓冲存储器阶层构架,或更一般来说,适用于具有三个以上阶层的存储器阶层构架,且其中善意代码经配置以使用可用阶层的子集,且目标为检测恶意代码是否使用可用阶层的另一集合。
参看图1,无线远程站(RS)102可与无线通信系统100的一或多个基站(BS)104通信。RS可为移动站。无线通信系统100可进一步包含一或多个基站控制器(BSC)106,以及核心网络108。核心网络可经由合适回程连接到因特网110和公共交换电话网络(PSTN)112。典型无线移动站可包含手持型电话或膝上型计算机。无线通信系统100可使用多种多址接入技术中的任一者,例如码分多址接入(CDMA)、时分多址接入(TDMA)、频分多址接入(FDMA)、空分多址接入(SDMA)、极化分集多址接入(polarization division multiple access,PDMA)或所述领域中已知的其它调制技术。
所述领域中的技术人员将理解,可使用多种不同技艺和技术中的任一者表示信息和信号。举例来说,可由电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合表示贯穿以上描述所参考的数据、指令、命令、信息、信号、位、符号和码片。
所述领域中的技术人员将进一步了解,结合本文中所揭示的实施例而描述的各种说明性逻辑块、模块、电路和算法步骤可经实施为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件与软件的此可互换性,上文已大体上在功能性方面描述了各种说明性组件、块、模块、电路和步骤。将此功能性实施为硬件抑或软件取决于特定应用和强加于整个系统上的设计约束。所述领域中的技术人员可针对每一特定应用以变化的方式实施所描述功能性,但这些实施决策不应被解译为造成对本发明的范围的脱离。
可通过通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其经设计以执行本文中所描述的功能的任何组合来实施或执行结合本文所揭示的实施例而描述的各种说明性逻辑块、模块和电路。通用处理器可为微处理器,但在替代例中,处理器可为任何常规处理器、控制器、微控制器或状态机。处理器也可实施为计算装置的组合,例如,DSP与微处理器的组合、多个微处理器、结合DSP核心的一或多个微处理器,或任一其它此类配置。
结合本文中所揭示的实施例而描述的方法或算法的步骤可直接体现于硬件中、由处理器执行的软件模块中,或两者的组合中。软件模块可驻存于RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM,或所述领域中已知的任何其它形式的存储媒体中。示例性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息和将信息写入到存储媒体。在替代例中,存储媒体可集成到处理器。处理器和存储媒体可驻留于ASIC中。ASIC可驻留于用户终端中。在替代例中,处理器和存储媒体可作为离散组件驻留于用户终端中。
在一或多个示例性实施例中,可以硬件、软件、固件或其任何组合来实施所描述的功能。如果作为计算机程序产品而以软件来实施,那么所述功能可作为一或多个指令或代码而存储于计算机可读媒体上或经由计算机可读媒体传输。计算机可读媒体包含非暂时性计算机存储媒体以及包含促进将计算机程序从一处传送到另一处的任何媒体的通信媒体两者。存储媒体可为可由计算机存取的任何可用媒体。通过实例且并非限制,这些计算机可读媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储器、磁盘存储器或其它磁性存储装置,或可用以携载或存储呈指令或数据结构的形式的所要代码且可由计算机存取的任何其它媒体。此外,将任何连接适当地称为计算机可读媒体。举例来说,如果使用同轴缆线、光纤缆线、双绞线、数字用户线(DSL)或例如红外线、无线电和微波的无线技术而从网站、服务器或其它远程源传输软件,那么同轴缆线、光纤缆线、双绞线、DSL或例如红外线、无线电和微波的无线技术包含于媒体的定义中。如本文中所使用,磁盘和光盘包含光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中磁盘通常以磁性方式再生数据,而光盘通过激光以光学方式再生数据。以上各物的组合也应包含于计算机可读媒体的范围内。
提供所揭示的实施例的先前描述以使任何所述领域中的技术人员能够制作或使用本发明。对这些实施例的各种修改对于所述领域中的技术人员来说将容易地显而易见,且可在不脱离本发明的精神或范围的情况下将本文中所界定的一般原理应用于其它实施例。因此,本发明并不意图限于本文中所展示的实施例,而应符合与本文中所揭示的原理和新颖特征相一致的最广泛范围。
Claims (18)
1.一种用于检测隐藏于第一阶指令高速缓冲存储器中的恶意代码的集成电路,其包括:
处理器;
所述第一阶指令高速缓冲存储器,其具有第一存储容量;和
第二阶高速缓冲存储器,其具有大于所述第一存储容量的第二存储容量;
所述第一阶指令高速缓冲存储器耦合于所述处理器与所述第二阶高速缓冲存储器之间,
所述第一阶指令高速缓冲存储器经配置以存储所述第二阶高速缓冲存储器中所存储的指令的子集,
所述第二阶高速缓冲存储器耦合于所述第一阶指令高速缓冲存储器与外部存储器之间,
所述第二阶高速缓冲存储器经配置以存储所述外部存储器中所存储的数据和指令的子集,且
所述处理器经配置以执行检测例程的内部循环,监测所述内部循环的执行时间,且比较所述所监测的执行时间与执行时间阈值以检测隐藏于所述第一阶指令高速缓冲存储器中的恶意代码,其中用于检测例程指令的总数的代码大于所述第一存储容量,其中在执行期间所述内部循环需要从所述第二阶高速缓冲存储器提取检测例程指令,且其中基于执行所述检测例程指令的选定代码,用于在所述内部循环的执行期间执行的指令的执行数目的代码小于所述第一存储容量。
2.根据权利要求1所述的集成电路,其中用于指令的所述执行数目的所述代码包括16个步骤,且所述第一存储容量为4千字节。
3.根据权利要求1所述的集成电路,其中所述检测例程指令包括一系列类似函数,且其中所述系列类似函数中的至少两个函数为不同的。
4.根据权利要求1所述的集成电路,其中在执行期间,所述检测例程的所述内部循环包含基于在所述检测例程的所述执行之前未知的至少一个选择输入对至少一个检测例程指令的选择。
5.一种用于检测隐藏于第一阶指令高速缓冲存储器中的恶意代码的方法,其包括:
通过处理器执行检测例程的内部循环,其中用于检测例程指令的总数的代码大于所述第一阶指令高速缓冲存储器的第一存储容量;
和在所述内部循环正在执行时从具有第二存储容量的第二阶高速缓冲存储器提取检测例程指令,所述第二阶高速缓冲存储器用于存储外部存储器中所存储的数据和指令的子集,其中基于执行所述检测例程指令的选定代码,用于在所述内部循环的执行期间执行的指令的执行数目的代码小于所述第一存储容量;和
通过所述处理器监测所述内部循环的执行时间,且比较所述所监测的执行时间与执行时间阈值以检测隐藏于所述第一阶指令高速缓冲存储器中的恶意代码。
6.根据权利要求5所述的方法,其中用于指令的所述执行数目的所述代码包括16个步骤,且所述第一存储容量为4千字节。
7.根据权利要求5所述的方法,其中所述检测例程指令包括一系列类似函数,且其中所述系列类似函数的至少两个函数为不同的。
8.根据权利要求5所述的方法,其中所述检测例程的所述内部循环在经执行时包含基于在所述检测例程的所述执行之前未知的至少一个选择输入对至少一个检测例程指令的选择。
9.根据权利要求5所述的方法,其中所述第二存储容量大于所述第一存储容量且所述第一阶指令高速缓冲存储器存储所述第二阶高速缓冲存储器中所存储的指令的子集,其中所述第一阶指令高速缓冲存储器耦合于所述处理器与所述第二阶高速缓冲存储器之间,且第二阶高速缓冲存储器耦合于所述第一阶指令高速缓冲存储器与所述外部存储器之间。
10.一种用于检测隐藏于第一阶指令高速缓冲存储器中的恶意代码的集成电路,其包括:
用于执行检测例程的内部循环的装置,其中用于检测例程指令的总数的代码大于所述第一阶指令高速缓冲存储器的第一存储容量;
用于在所述内部循环正在执行时从具有第二存储容量的第二阶高速缓冲存储器提取检测例程指令的装置,所述第二阶高速缓冲存储器用于存储外部存储器中所存储的数据和指令的子集,其中基于执行所述检测例程指令的选定代码,用于在所述内部循环的执行期间执行的指令的执行数目的代码小于所述第一存储容量;和
用于监测所述内部循环的执行时间,且比较所述所监测的执行时间与执行时间阈值以检测隐藏于所述第一阶指令高速缓冲存储器中的恶意代码的装置。
11.根据权利要求10所述的集成电路,其中用于指令的所述执行数目的所述代码小于所述第一存储容量。
12.根据权利要求10所述的集成电路,其中所述检测例程指令包括一系列类似函数,且其中所述系列类似函数中的至少两个函数为不同的。
13.根据权利要求10所述的集成电路,其中在执行期间所述检测例程的所述内部循环包含基于在所述检测例程的所述执行之前未知的至少一个选择输入对至少一个检测例程指令的选择。
14.根据权利要求10所述的集成电路,其中所述第二存储容量大于所述第一存储容量,且所述第一阶指令高速缓冲存储器存储所述第二阶高速缓冲存储器中所存储的指令的子集。
15.一种用于检测隐藏于第一阶指令高速缓冲存储器中的恶意代码的非暂时性计算机可读媒体,其包括:
用于使计算机执行检测例程的内部循环的代码,其中用于检测例程指令的总数的代码大于第一阶指令高速缓冲存储器的第一存储容量,其中在执行期间所述内部循环需要从具有第二存储容量的第二阶高速缓冲存储器提取检测例程指令,所述第二阶高速缓冲存储器用于存储外部存储器中所存储的数据和指令的子集,且其中基于执行所述检测例程指令的选定代码,用于在所述内部循环的执行期间执行的指令的执行数目的代码小于所述第一存储容量;和
用于使所述计算机监测所述内部循环的执行时间,且比较所述所监测的执行时间与执行时间阈值以检测隐藏于所述第一阶指令高速缓冲存储器中的恶意代码的代码。
16.根据权利要求15所述的非暂时性计算机可读媒体,其中用于指令的所述执行数目的代码包括16个步骤,且所述第一存储容量为4千字节。
17.根据权利要求15所述的非暂时性计算机可读媒体,其中所述检测例程的所述内部循环在经执行时包含基于在所述检测例程的所述执行之前未知的至少一个选择输入对至少一个检测例程指令的选择。
18.根据权利要求15所述的非暂时性计算机可读媒体,其中所述第二存储容量大于所述第一存储容量,且所述第一阶指令高速缓冲存储器存储所述第二阶高速缓冲存储器中所存储的指令的子集,其中所述第一阶指令高速缓冲存储器耦合于处理器与所述第二阶高速缓冲存储器之间,且第二阶高速缓冲存储器耦合于所述第一阶指令高速缓冲存储器与所述外部存储器之间。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/493,306 | 2014-09-22 | ||
US14/493,306 US9465938B2 (en) | 2014-09-22 | 2014-09-22 | Integrated circuit and method for detection of malicious code in a first level instruction cache |
PCT/US2015/046880 WO2016048548A1 (en) | 2014-09-22 | 2015-08-26 | An integrated circuit and method for detection of malicious code in a first level instruction cache |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107077424A CN107077424A (zh) | 2017-08-18 |
CN107077424B true CN107077424B (zh) | 2018-09-25 |
Family
ID=54012356
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580049149.1A Active CN107077424B (zh) | 2014-09-22 | 2015-08-26 | 用于检测在第一阶指令高速缓冲存储器中的恶意代码的集成电路和方法 |
Country Status (9)
Country | Link |
---|---|
US (1) | US9465938B2 (zh) |
EP (1) | EP3198451A1 (zh) |
JP (1) | JP6199528B1 (zh) |
KR (1) | KR101729215B1 (zh) |
CN (1) | CN107077424B (zh) |
AU (1) | AU2015321998A1 (zh) |
BR (1) | BR112017005791A2 (zh) |
TW (1) | TWI680371B (zh) |
WO (1) | WO2016048548A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9607152B1 (en) * | 2015-05-20 | 2017-03-28 | Symantec Corporation | Detect encrypted program based on CPU statistics |
US10705590B2 (en) * | 2017-11-28 | 2020-07-07 | Google Llc | Power-conserving cache memory usage |
WO2019136428A1 (en) * | 2018-01-08 | 2019-07-11 | Digital Immunity Llc | Systems and methods for detecting and mitigating code injection attacks |
WO2020068988A1 (en) * | 2018-09-25 | 2020-04-02 | Synopsys, Inc. | Hardware simulation systems and methods for identifying state-holding loops and oscillating loops |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7590813B1 (en) * | 2004-08-09 | 2009-09-15 | Symantec Corporation | Cache scanning system and method |
CN103946855A (zh) * | 2011-11-07 | 2014-07-23 | 高通股份有限公司 | 用于检测面向返回编程攻击的方法、装置和系统 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7130981B1 (en) * | 2004-04-06 | 2006-10-31 | Symantec Corporation | Signature driven cache extension for stream based scanning |
EP1870814B1 (en) * | 2006-06-19 | 2014-08-13 | Texas Instruments France | Method and apparatus for secure demand paging for processor devices |
US8949989B2 (en) | 2009-08-17 | 2015-02-03 | Qualcomm Incorporated | Auditing a device |
US20110197256A1 (en) | 2009-12-18 | 2011-08-11 | Assured Information Security, Inc. | Methods for securing a processing system and devices thereof |
WO2011156021A2 (en) | 2010-03-01 | 2011-12-15 | The Trustees Of Columbia University In The City Of New York | Systems and methods for detecting design-level attacks against a digital circuit |
US8595510B2 (en) | 2011-06-22 | 2013-11-26 | Media Patents, S.L. | Methods, apparatus and systems to improve security in computer systems |
US9043559B2 (en) * | 2012-10-23 | 2015-05-26 | Oracle International Corporation | Block memory engine with memory corruption detection |
US8959576B2 (en) * | 2013-03-14 | 2015-02-17 | Intel Corporation | Method, apparatus, system for qualifying CPU transactions with security attributes |
US9424200B2 (en) * | 2013-03-15 | 2016-08-23 | Freescale Semiconductor, Inc. | Continuous run-time integrity checking for virtual memory |
-
2014
- 2014-09-22 US US14/493,306 patent/US9465938B2/en active Active
-
2015
- 2015-08-26 AU AU2015321998A patent/AU2015321998A1/en not_active Abandoned
- 2015-08-26 JP JP2017513092A patent/JP6199528B1/ja active Active
- 2015-08-26 BR BR112017005791A patent/BR112017005791A2/pt not_active Application Discontinuation
- 2015-08-26 WO PCT/US2015/046880 patent/WO2016048548A1/en active Application Filing
- 2015-08-26 EP EP15756806.4A patent/EP3198451A1/en not_active Ceased
- 2015-08-26 CN CN201580049149.1A patent/CN107077424B/zh active Active
- 2015-08-26 KR KR1020177007275A patent/KR101729215B1/ko active IP Right Grant
- 2015-08-28 TW TW104128496A patent/TWI680371B/zh active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7590813B1 (en) * | 2004-08-09 | 2009-09-15 | Symantec Corporation | Cache scanning system and method |
CN103946855A (zh) * | 2011-11-07 | 2014-07-23 | 高通股份有限公司 | 用于检测面向返回编程攻击的方法、装置和系统 |
Also Published As
Publication number | Publication date |
---|---|
EP3198451A1 (en) | 2017-08-02 |
CN107077424A (zh) | 2017-08-18 |
TW201626235A (zh) | 2016-07-16 |
TWI680371B (zh) | 2019-12-21 |
AU2015321998A1 (en) | 2017-03-02 |
WO2016048548A1 (en) | 2016-03-31 |
JP6199528B1 (ja) | 2017-09-20 |
KR20170034914A (ko) | 2017-03-29 |
US20160085968A1 (en) | 2016-03-24 |
JP2017531253A (ja) | 2017-10-19 |
BR112017005791A2 (pt) | 2018-01-09 |
KR101729215B1 (ko) | 2017-04-21 |
US9465938B2 (en) | 2016-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10705795B2 (en) | Duplicate and similar bug report detection and retrieval using neural networks | |
US9612807B2 (en) | Code placement using a dynamic call graph | |
CN107077424B (zh) | 用于检测在第一阶指令高速缓冲存储器中的恶意代码的集成电路和方法 | |
US10599560B2 (en) | Method and system for improved performance of a video game engine | |
CN103777920A (zh) | 基于数据特性来识别对应指令的数据处理系统 | |
CN102652308A (zh) | 将数据高效地载入计算系统的存储器中 | |
US9170944B2 (en) | Two handed insertion and deletion algorithm for circular buffer | |
JP2015505623A (ja) | ステージング・エリアを管理するためのコンピュータ実施プロセス、コンピュータ・プログラム製品、装置 | |
CN105700956A (zh) | 用于处理分布式作业的方法和系统 | |
CN109983445A (zh) | 具有不等量值跨距的预提取机制 | |
CN105630763A (zh) | 用于提及检测中的消歧的方法和系统 | |
EP2972878A1 (en) | Mechanism for facilitating dynamic and efficient management of instruction atomicity volations in software programs at computing systems | |
CN113127382A (zh) | 用于追加写的数据读取方法、装置、设备和介质 | |
KR20210021309A (ko) | 소프트웨어 개발에서 어드레싱 가능 자산들 | |
CN105793864A (zh) | 检测恶意多媒体文件的系统和方法 | |
US11662927B2 (en) | Redirecting access requests between access engines of respective disk management devices | |
JP7087070B2 (ja) | 分散ロケーション・ベースの重複排除のパフォーマンスを向上させるための方法、コンピュータ・プログラム製品、および装置 | |
US9836401B2 (en) | Multi-core simulation system and method based on shared translation block cache | |
US9857979B2 (en) | Optimizing page boundary crossing in system memory using a reference bit and a change bit | |
US10089262B2 (en) | Reduced overhead safepoint mechanism using signals | |
KR20150064653A (ko) | 전자 장치 및 전자 장치에서의 메모리 할당 방법 | |
US20210374231A1 (en) | Method and system for detecting hooking using clustering api information | |
US11379228B2 (en) | Microprocessor including an efficiency logic unit | |
CN110765462B (zh) | 一种操作控制方法、装置、计算系统及电子设备 | |
US11360797B2 (en) | System and method for enabling dynamic configuration of virtual hardware |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |