CN1950775B - 用于程序执行期间的入侵检测的方法,设备和计算机*** - Google Patents

用于程序执行期间的入侵检测的方法,设备和计算机*** Download PDF

Info

Publication number
CN1950775B
CN1950775B CN200580013800.6A CN200580013800A CN1950775B CN 1950775 B CN1950775 B CN 1950775B CN 200580013800 A CN200580013800 A CN 200580013800A CN 1950775 B CN1950775 B CN 1950775B
Authority
CN
China
Prior art keywords
instruction
computer program
execution
treating apparatus
instructions
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.)
Expired - Fee Related
Application number
CN200580013800.6A
Other languages
English (en)
Other versions
CN1950775A (zh
Inventor
P·奥马霍尼
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of CN1950775A publication Critical patent/CN1950775A/zh
Application granted granted Critical
Publication of CN1950775B publication Critical patent/CN1950775B/zh
Expired - Fee Related 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/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
    • 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
    • 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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • G06F9/30178Runtime instruction translation, e.g. macros of compressed or encrypted instructions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)
  • Saccharide Compounds (AREA)
  • Air Bags (AREA)

Abstract

本发明包括一种具有存储器(32,34,36)和处理装置(24)的计算机***(20)。该处理装置(24)包括用于改变计算机程序的一个或多个指令并且在指令内容改变之后将该计算机程序存储在该存储器(32,34,36)中的逻辑(50)。该处理装置(24)还适于在利用该处理装置(24)执行之前把所述一个或多个指令恢复到未经改变的内容。通过对于计算机程序的所述改变/恢复处理过程,在计算机程序的执行期间,可以基于由不同程序提交不正确形式的指令以用于执行来检测该不同程序。

Description

用于程序执行期间的入侵检测的方法,设备和计算机*** 
技术领域
本发明涉及计算机***,更具体地说涉及计算机***的入侵检测。 
背景技术
由于日益增多的网络连接,计算机***变得越来越容易受到攻击。这些攻击常常利用操作***或者应用程序当中的缺陷。这种入侵的一般目的是为了破坏***上的传统的安全机制,以及执行超出入侵者权限的操作。这些操作可能包括读取受保护的数据或私有数据,或者仅仅是对***或者用户文件造成恶意损害。 
传统上的保护是基于在执行危害性程序之前检测到该程序;然而,最近的入侵可以在执行受信任的程序的同时进行攻击。这种类型的攻击的一个例子通过令未检查的缓冲器上溢(overflow)来启动执行恶意代码。例如在Kirovski和Drinic等人的“Enabling Trusted Software Integrity(实现受信任的软件完整性)”(SIGPLAN Notices,Vol.37,No.10,pp.108-120,2002年10月)中进一步说明了此类攻击,其全部内容被合并在此以作参考。 
解决这种形势的入侵的一种尝试是监视预料之外的程序行为,例如在“PAID:Program-symmantics Aware Intrusion Detection”(可以从网站www.ecsl.cs.sunysb.edu/paid获得)对此进行了说明,其全部内容被合并在此以作参考。该方法的可能缺陷包括需要显著改变操作***以及/或者显著增加维护运行时间开销。在编译时间实现另一种称为返回地址保护(RAD)的方案,其通常限于可以获得源代码的应用。因此,在这一技术领域仍然需要进一步的发展。 
发明内容
本发明的一个实施例是一种独特的入侵检测技术。其他实施例包括用来检测计算机***入侵的独特方法、***、装置和设备。 
本发明的另一个实施例包括:改变计算机程序的一个或多个指令的内容,并且当执行该计算机程序时,将所述一个或多个指令当中的每一个恢复到其所述改变之前的内容。在执行该计算机程序的过程中,可以通过检测到由不同程序提交至少一个不正确形式的指令以用 于执行来检测该不同程序的入侵。例如,这种不正确形式可以是相对于执行所述计算机程序的一个或多个处理器或处理装置而言的保留指令类型或者无效指令类型。 
本发明的另一个实施例包括一种存储计算机程序的装置,该计算机程序包括多个指令,其中每一个指令具有依照一种指令转换的改变形式的内容,其被设置成在利用处理器执行该计算机程序的过程中检测不同程序的入侵。在执行之前,可以由所述处理器根据关于所述转换的信息将所述已改变形式的指令恢复到未改变形式。所述未改变形式的指令各属于用于该处理器的可执行指令集,而至少一部分所述指令的已改变形式不属于用于该处理器的该可执行指令集并且/或者是保留类型或无效类型。这里使用的“可执行指令”一词指的是在由处理装置执行时用来执行所需操作的指令格式,并且排除由该处理装置视为不适当的任何指令格式,其中包括(但不限于)被指定为用于该处理装置的保留类型或无效类型的任何指令。 
本发明的另一个实施例包括一种具有指令转换逻辑的处理装置,其用来改变计算机程序的一个或多个指令的内容,并且在这种改变之后存储该计算机程序。该处理装置还包括解码器,其响应于该转换逻辑将所述一个或多个指令恢复到改变前的内容。该处理装置在由该解码器进行恢复之后有效地执行所述指令,并且基于由不同程序提交不正确形式的指令以用于由该处理器执行来指示该不同程序的入侵。在这里使用的“逻辑”一词广泛地包括组合操作和/或时序操作,并且可以具有硬件、软件、固件或其组合的形式。 
另一个实施例是一种技术,其包括:将计算机程序的一个或多个指令的内容从未改变形式改变到已改变形式,以便检测不同程序的入侵。所述一个或多个指令当中的每一个的已改变形式属于用于处理装置的可执行指令集,而所述一个或多个指令的至少一部分的已改变形式不属于该可执行指令集。替换地或附加地,相对于其未改变形式,所述一个或多个指令的至少一部分的已改变形式不执行该计算机程序的预定操作。所述技术还包括:在利用该处理装置执行之前,将已改变形式的所述一个或多个指令当中的每一个恢复到未改变形式。所述恢复可以由该处理装置作为用来执行所述计算机程序的指令解码的一部分来执行。 
另一个实施例包括一种具有处理器可执行信息的装置,其用于指示一个或多个处理器将计算机程序的一个或多个指令的内容从未改变形式改变到已改变形式,以便于检测入侵程序。所述一个或多个指令当中的每一个的已改变形式属于所述一个或多个处理器的可执行指令集,而所述一个或多个指令当中的每一个的已改变形式不执行该计算机程序的预定操作。替换地或附加地,所述一个或多个指令当中的每一个的已改变形式不属于所述一个或多个处理器的该可执行指令集,而例如是保留指令类型或无效指令类型。所述处理器可执行信息有效地指示所述一个或多个处理器在执行之前将已改变形式的所述一个或多个指令恢复到未改变形式。 
附图说明
根据下面提供的附图和具体描述,本发明的其他实施例、形式、方面、益处、优点和特征将变得更为明显,其中: 
图1是计算机***的示意图; 
图2是图1的计算机***的用于检测入侵的处理过程的流程图; 
图3是利用图1的计算机***的图2的处理过程的一类指令转换逻辑的示意图;以及 
图4是图1的计算机***的用于检测入侵的替换处理过程的流程图,其可以与图2的处理过程组合使用,或者可以独立于图2的处理过程使用。 
具体实施方式
为了便于理解本发明的原理,下面将参考附图中说明的各实施例,并且将使用特定的语言对其进行描述。然而应当理解的是,本发明的范围并不限于所述实施例。本领域技术人员可以设想对所述实施例的任何改变和进一步修改,并且可以设想这里描述的本发明原理的任何其他应用。 
图1示出了计算机***20。该计算机***20包括至少一个处理器22,其或者被表示为处理装置24。处理装置24耦合到计算机总线26,并且相应地耦合到几个不同的存储器装置。具体来说,非易失性文件存储器32、可移动存储器装置34以及程序执行存储器36通过总线26耦合到处理装置24。如图所示,程序执行存储器36还具有到处理装置24的另一个专用连接。总线26还通过适当的设备(未示出)耦合到计 算机网络38,比如适当的接口装置、路由器、网络集线器、防火墙装置等等。计算机网络38可以是局域网(LAN)类型、城域网(MAN)类型、广域网(WAN)类型(包括因特网)或其组合,这里只举出几个例子。 
处理装置24包括指令解码器42、已解码指令执行逻辑44和指令转换逻辑50,下面将会进一步描述。处理装置24可以具有RISC、CISC或者任何其他种类的一个或多个控制器或处理器的形式。处理装置24可以由集成在单个单元中的一个或多个部件组件,或者可以具有以适于其操作的方式耦合在一起的一个或多个远程单元的形式。此外,处理装置24包括所需的支持组件,比如电源、直接存储器存取控制器、输入/输出控制器、通信部件、操作员输入/输出装置以及本领域技术人员可以想到的其他装置。 
指令解码器42是装置24的处理逻辑的一部分,其响应于所提交的用于执行的指令。解码器42用于将多比特指令格式转换成多种信号,所述信号由已解码指令执行逻辑44利用,以便执行与该指令相对应的所需操作。执行逻辑44可以(但是不必)包括一个或多个算术逻辑单元(ALU)、通信逻辑单元以及/或者执行各种操作所需的此类一个或多个执行逻辑或逻辑单元。当存在多个逻辑单元时,本领域技术人员可以想到将它们并行设置以及/或者以流水线方式设置,以便执行所需操作。 
非易失性文件存储器32可以是电磁盘、磁带或者卡带的形式,本领域技术人员可以想到电可重新编程的固态类型非易失性存储器(比如闪存)以及其他种类。可移动存储器装置34例如可以是软盘、卡带或者磁带形式的可移动电磁记录介质,CD或DVD类型的可移动光盘,电可重新编程的固态类型非易失性存储器(比如智能卡)或可移动存储器卡带,以及本领域技术人员可以想到的其他种类。程序执行存储器36是加载有计算机程序指令的存储器类型,所述指令将由处理装置24执行。程序执行存储器36典型地是随机存取存储器(RAM)类型的固态电子存储器。替换地或附加地,程序执行存储器36可以由一个或多个不同类型构成,正如本领域技术人员可以想到的那样。在不同的实施例中,程序执行存储器36可以部分地或完全地与处理装置24集成在一起,或者可以与之完全分离。在其一种形式中,存储器36包 括相关的高速缓冲存储器。 
下面将描述计算机***20的各操作方面。计算机***20用于执行计算机程序,所述计算机程序已经被改变成适于由编译器或解译器执行的格式。一般来说,二进制格式适用于这种目的。起初,这些计算机程序一般被存储在文件存储器32或可移动存储器装置34中。然而,在执行之前,在处理装置24的指导下,将被使用的计算机程序被至少部分地加载到程序执行存储器36中。为了在计算机程序的执行期间检测入侵程序,装置24利用指令转换逻辑50定制其自己的指令集以便改变至少一些指令,从而这些指令将不会以预定方式执行,除非将它们恢复到先前的未经改变的状态。 
参考图2和图3,其中结合处理过程120描述了利用计算机***20来实现入侵检测的一种模式。在操作122中,选择将要由处理装置24执行的计算机程序,并且对该程序的至少一部分指令进行转换。所述转换把受到影响的指令的内容从未经改变的原始格式改变到改变格式,该操作至少部分地由处理装置24的指令转换逻辑50来执行。指令转换逻辑50包括寄存器52,所述寄存器当中的一个或多个被用来根据一个密钥52a形式的多比特值配置指令转换。密钥52a可以被存储在一个或多个存储器52中。如图2和图3所示,一种形式的指令转换是利用“异或(XOR)”逻辑53执行的,其在密钥52a的各比特和每个指令的多比特表示之间执行逐比特的异或逻辑运算。所提交的用于逻辑53的异或转换的每个指令被表示为“指令输入”54,并且其异或结果或输出被表示为“指令输出”56。异或逻辑函数是一种形式的二进制布尔比较。具体来说,如果来自密钥52a和“指令输入”54的相应位置的二进制输入比特不同(1和0,或者0和1),则该异或函数输出1,否则输出0(其中密钥和“指令输入”的输入比特位置都是0,或者都是1)。以8比特长度为例,对于密钥52a的值10010010和“指令输入”54的值01100010,由于XOR逻辑53的异或运算,“指令输出”56的值为11110000。当然,本领域技术人员可以想到,在定义所述指令和相应的密钥时可以使用更多或更少的比特。一般来说,在处理过程120的操作122中,利用XOR逻辑对将要用于执行的程序的所有指令进行转换。 
在一种优选形式中,密钥52a的值是静态的,其在操作122中对 于所提交的用于转换的每个指令保持相同。在一种更为优选的形式中,该密钥随时间动态改变。在这种更优选形式的一个非限制性实例中,该密钥根据分时操作***所预定执行的处理来动态地改变该密钥。在一种更优选形式中,该密钥随着所提交的用于执行的指令的地址而动态改变。在这种更优选形式的一个非限制性实例中,当前正被执行的指令的地址被用作该动态密钥。转换逻辑50还包括控制/配置逻辑60。控制/配置逻辑60指导对于每个指令的转换操作122,并且适当地路由相应的信息和信号。控制/配置逻辑60响应于至少其中一个寄存器52中的信息来启用/禁用转换、确定所使用的密钥来源、确定使用静态密钥还是动态密钥、确定将对所有指令进行转换还是仅对指定的一部分指令进行转换以及/或者确定将与逻辑50的操作相结合地使用的其他配置和操作特征(如果有的话)。 
应当理解,转换之前的指令的原始内容一般属于一个用于处理装置24的可执行指令集。然而,一旦利用XOR逻辑53执行了转换,这些指令一般将不执行所述计算机程序的预定操作,除非将其恢复到原始的未经改变的内容。实际上,由转换产生的经过改变的指令内容一般将使得至少一些(如果不是全部的话)指令无法执行,以及/或者将所述指令变成处理装置24的保留类型或无效类型。还应当理解,执行操作122导致实现装置24的一种转换处理,其可以被反转以便恢复原始的未经改变的指令内容,前提是处理装置24可以获得/保留关于所述转换处理的足够信息。 
处理过程120从操作122继续到操作124。在操作124中,存储利用逻辑50转换的计算机程序。在一个优选实施例中,在操作124中将来自操作122的具有改变的指令内容的计算机程序存储在非易失性文件存储器32中。在一个更为优选的实施例中,在操作124中将来自操作122的具有改变的指令内容的计算机程序存储在可移动存储器装置34中。在一个更优选实施例中,在操作124中将来自操作122的具有改变的指令内容的计算机程序至少部分地存储在程序执行存储器36中。在其他优选实施例中,可以将经过改变的计算机程序存储在不同的存储器类型中(未示出)以及/或者将其存储在超过一类存储器中。应当理解,存储在非易失性文件存储器32或可移动存储器装置34中的经过转换的计算机程序随后被至少部分地加载到程序执行存储器36 中,以便在所示实施例中由装置24执行。 
继续到操作126,在从程序执行存储器36执行所述计算机程序时,恢复在操作122中改变的原始指令内容。对于结合图3描述的指令转换逻辑50的配置,通过重复所述异或运算,所述恢复操作将指令内容从已改变形式转换到未改变形式。很明显,在使用相同的密钥时,异或运算是可逆的。对于先前描述的8比特实例,对于密钥值10010010和已改变指令11110000的逐比特异或得到结果01100010,这与该指令的未经改变的原始内容相同。利用指令解码器42由处理装置24内部执行操作126。 
一旦被恢复之后,在操作128中,可以由解码器42按照标准方式对指令进行解码并且由已解码指令执行逻辑44执行该指令。如果存在未被改变的指令,则这些指令被原样识别,其由解码器42直接解码并且随后利用逻辑44来执行。处理过程120从操作128继续到条件130,以便测试是否已经尝试了不正确指令执行。本领域技术人员可以看出,条件130可以利用解码器42、逻辑44以及/或者装置24的其他逻辑来实现。如果条件130的测试结果是肯定的,则操作132响应于该不正确指令而执行一个处理陷阱(process trap)。一般来说,该不正确指令是保留形式或者无效形式的指令,其不在用于处理装置24的可执行指令类型的集合当中。 
由于在操作126中反转了操作122的转换,因此原始程序按照预定方式执行。然而,当一个不同程序在该预定计算机程序的执行期间通过堆栈或缓冲器溢出等等而入侵时,该不同程序的至少一些指令很可能被该解码/恢复操作126改变,从而将提交不正确指令,并且通过执行操作132的陷阱来指示。该不正确指令的形式/内容一般不被包括在用于处理装置24的可执行指令集中,而是具有处理装置24的保留格式或无效格式。处理过程120在操作132之后停止并返回。结果,处理装置24可以实施所需的检查/扫描/诊断例程,以便进一步分析操作132的陷阱发生的原因,并且相应地检测该不同程序的入侵。 
另一方面,如果条件130的测试结果是否定的,则处理过程120继续到条件140,该条件140测试是否将执行另一个指令以作为将要执行的计算机程序的一部分。如果条件140的测试结果是肯定的,则控制返回到操作126,以便恢复所需要的下一个指令。如果条件140的测 试结果是否定的,则处理过程120以正常方式停止并返回,直到再次被调用。 
参考图4,其中通过入侵检测处理过程220说明另一个实施例,其可以利用计算机***20来实现。处理过程220开始于在操作222中指定计算机程序。对于操作222,通过替换将程序指令选择性地转换成保留指令格式和/或无效指令格式。相应地,操作222的该替换转换导致某些指令具有改变的内容。当利用计算机***20来实施处理过程220中,所述替换可以由转换逻辑根据在一个或多个寄存器52中提供的信息来执行,其由处理装置24定义为对转换逻辑50的替换方案或补充。在一种形式中,一个寄存器包含多个比特,其中每个比特指定将用某种类型的保留指令格式或无效指令格式来交换特定类型的指令。其他由寄存器存储的信息可以被用来启用/禁用该交换特征、定制所述替换配置以及/或者实施其他适当选项。例如,其中一个选项可以是按照寄存器52的一个或多个比特所指定的那样在处理过程120和220之间进行选择。替换地或附加地,可以通过寄存器52的规定内容来选择在单一混合保护方案中组合所述两个处理过程的选项。 
在操作222中对所选择的程序指令进行了转换之后,在操作224中将具有已改变的指令内容的所述程序存储在存储器中。在一个优选实施例中,在操作224中将具有改变的指令内容的计算机程序存储在非易失性文件存储器32中。在一个更为优选的实施例中,在操作224中将具有改变的指令内容的计算机程序存储在可移动存储器装置34中。在一个更优选实施例中,在操作224中将具有改变的指令内容的计算机程序至少部分地存储在程序执行存储器36中。在其他优选实施例中,可以将经过改变的计算机程序存储在不同的存储器类型中(未示出)以及/或者将其存储在超过一类存储器中。处理过程220从操作224继续到操作226。在操作226中,在该计算机程序的执行期间通过反转替换操作来恢复原始指令内容。具体来说,处理装置24利用由一个或多个寄存器52定义的替换模式来反转所述替换处理过程,从而提供原始的有效指令以替代在操作222中所替换的保留指令格式或无效指令格式。对于一种计算机***20的实现方式而言,由指令解码器42来执行该反转替换处理过程。在这种恢复之后,在操作228中,由解码器42按照标准方式对每个所恢复的指令进行解码并且由已解码指令 执行逻辑44执行该指令。对于在操作222中未被改变的指令,解码器42原样识别这些这些指令并且相应地直接对其进行解码以便由逻辑44来处理。 
处理过程220从操作228继续到条件230。条件230测试在该计算机程序的执行期间是否已经尝试了不正确指令执行。如果条件230的测试结果是肯定的,则执行操作232,其中处理装置24执行关于该无效指令尝试的处理陷阱。与处理过程120的操作132的情况相同,可以利用操作232来触发进一步的诊断和分析,以便适当地指示或检测出在预定执行的计算机程序的执行期间已经发生了不同程序的入侵。相应地,处理过程停止并且从操作232返回。 
如果条件230的测试结果是否定的,则处理过程220继续到条件240,该条件240测试是否将执行另一个指令以作为所提交的计算机程序的一部分。如果条件240的测试结果是肯定的,则处理过程220循环返回到操作226,以便执行下一个指令,其中按照需要恢复用保留内容或无效内容替换了的那些指令。如果条件240的测试结果是否定的,则处理过程220以正常方式停止并返回到调用程序,直到再次被调用。 
应当理解,可以通过适度修改标准处理器或者多处理器安排的逻辑来实施处理过程120和220。此外,可以按照软件指令、固件指令、微指令、专用硬件或其组合的形式来实施所述逻辑。应当理解,处理过程120和220都针对本发明的一个实施例,其包括:改变计算机程序的一个或多个指令的内容;将所述一个或多个指令当中的每一个恢复到所述改变之前的内容;以及在恢复之后执行所述一个或多个指令。该实施例可以进一步包括:在该计算机程序的执行期间,通过检测到由不同程序提交至少一个不正确形式的指令以用于执行来检测该不同程序的入侵。此外,在所述实施例中存在以可能恢复的方式改变指令内容的不同途径。因此,这些不同途径可以被用来提供入侵检测以作为对先前描述的技术的替换方案或补充。 
此外,可以设想能够通过指令来实现用于根据任意上述变型执行入侵检测的逻辑,所述指令被存储在装置上以便随后由相应的一个或多个处理器访问,所述装置例如是具有卡带、盘、芯片、卡、磁带或其组合的形式的可移动存储器装置34。此外还可以使用可移动存储器装置34来存储计算机程序,该计算机程序的一个或多个指令的内容已 被改变,从而能够在由处理装置执行期间利用适当的指令转换信息来恢复所述指令,以便防止不同程序的入侵。对于这种情况,可以以密钥、寄存器值等形式与已改变的计算机程序一同提供所述指令转换信息;以及/或者可以单独传送所述指令转换信息,以便由将在适当的指令恢复之后执行该程序的处理器使用。替换地或附加地,可以对给定类型的处理器进行内部编码,以便能够由这种处理器自动识别指令改变的模式。 
虽然在附图和上述说明中详细地描述了本发明,但是附图和上述说明应被认为是说明性而非限制性的。应当理解,这里仅仅描述了所选择的实施例,而在本发明范围内的所有改变、修改和等效表述都应当受到保护,其中本发明的范围由所附权利要求书限定。 

Claims (20)

1.一种用于计算机程序执行期间的入侵检测的方法,包括:改变计算机程序的一个或多个指令的内容;执行该计算机程序,所述执行包括将所述一个或多个指令当中的每一个恢复到所述改变之前的内容并且在所述恢复之后执行所述一个或多个指令;以及检测不同程序的入侵,其中所述入侵在所述执行期间发生,
该方法还包括利用处理装置实施所述执行,以及利用该处理装置并且根据密钥来实施所述改变和所述恢复,其中根据指令寻址动态地改变所述密钥。
2.权利要求1所述的方法,其包括基于异或逻辑功能并且利用所述密钥来编码所述指令。
3.权利要求1所述的方法,其包括利用处理装置来实施所述执行,所述改变包括利用该处理装置的不正确类型的指令来替换每一个所述指令,并且所述恢复包括对于所述一个或多个指令当中的每一个、利用正确类型的指令来代替所述不正确类型的指令。
4.权利要求3所述的方法,其中,所述不正确类型的指令是保留指令类型或者非法指令类型。
5.权利要求1所述的方法,其包括由所述不同程序提交不正确形式的指令以用于执行。
6.权利要求5所述的方法,其中,处理装置实施所述改变和所述执行,并且所述检测是基于利用该处理装置对所述不正确形式的指令实施处理陷阱。
7.权利要求1所述的方法,其包括在所述改变之后并且在所述执行之前将所述计算机程序存储在存储器中。
8.权利要求7所述的方法,其中,利用处理器来实施所述改变、所述存储和所述执行,并且所述存储器是用于该处理器的程序执行存储器。
9.权利要求I所述的方法,其中,通过处理装置来实施所述改变和所述执行,并且所述改变包括改变所述一个或多个指令当中的每一个的定义指令类型的内容。
10.权利要求1所述的方法,其中,所述改变包括把所述一个或多个指令当中的每一个的内容从第一形式改变到第二形式,其中该第一形式属于用于处理装置的可执行指令集,而该第二形式的一个或多个指令当中的至少一部分不属于该可执行指令集或者以不同于第一形式的方式执行。
11.一种用于计算机程序执行期间的入侵检测的设备,包括:
在其上存储有计算机程序的装置,该计算机程序包括多个指令,其中每一个指令具有依照一种指令转换的已改变形式的内容,以便在执行该计算机程序期间检测不同程序的入侵,
处理器,用于执行计算机程序,并将所述已改变形式的指令通过在由该处理器执行之前反转所述指令转换而恢复到未改变形式,
其中,所述未改变形式的指令各属于用于该处理器的可执行指令集,而至少一部分所述指令的已改变形式不属于用于该处理器的该可执行指令集,所述指令转换和恢复适于指示不同程序的入侵,所述入侵是通过向该处理器提交至少一个不属于该可执行指令集的指令以用于执行,
其中,所述指令的已改变形式被确定为密钥的函数,其中根据指令寻址动态地改变所述密钥。
12.权利要求11所述的设备,其中,所述装置包括非易失性文件存储器,该非易失性文件存储器存储具有所述已改变形式的指令的所述计算机程序。
13.权利要求12所述的设备,其中,所述装置包括适于耦合到所述处理器的程序执行存储器。
14.权利要求11所述的设备,其中,所述指令的已改变形式是根据异或函数确定的。
15.权利要求11所述的设备,其中,所述指令的已改变形式是通过用保留指令类型或非法指令类型来替换包括在所述可执行指令集中的指令类型来提供的。
16.一种用于计算机程序执行期间的入侵检测的计算机***,其包括处理装置,该处理装置包括指令转换逻辑,该指令转换逻辑适于改变计算机程序的一个或多个指令的内容并且在指令内容改变之后存储该计算机程序,该处理装置还包括解码器,该解码器响应于该指令转换逻辑把所述一个或多个指令恢复到所述指令内容改变之前的内容,其中该处理装置适于在由该解码器进行恢复之后执行所述指令,并且基于由不同程序提交不正确形式的指令以用于由该处理装置执行来指示该不同程序的入侵,
其中,所述指令转换逻辑的至少一部分由包括一个或多个寄存器的硬件限定,并且所述解码器响应于存储在所述一个或多个寄存器中的信息进行操作,
其中所述信息包括密钥以用来利用所述解码器对所述指令内容改变进行解码,以便实施所述恢复,其中根据指令寻址动态地改变所述密钥。
17.权利要求16所述的***,还包括适于存储经过所述指令内容改变的所述计算机程序的存储器。
18.权利要求16所述的***,其中,所述指令转换逻辑定义异或函数。
19.权利要求16所述的***,其中,所述指令转换逻辑的至少一部分由软件或固件指令限定。
20.权利要求16所述的***,其中,所述不同程序的所述不正确形式的指令对应于保留指令格式或无效指令格式,并且所述指令转换逻辑适于利用保留指令类型或无效指令类型来交换所述计算机程序的所述一个或多个指令以便提供所述指令内容改变。
CN200580013800.6A 2004-04-29 2005-04-29 用于程序执行期间的入侵检测的方法,设备和计算机*** Expired - Fee Related CN1950775B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US56647304P 2004-04-29 2004-04-29
US60/566,473 2004-04-29
PCT/IB2005/051416 WO2005106619A1 (en) 2004-04-29 2005-04-29 Intrusion detection during program execution in a computer

Publications (2)

Publication Number Publication Date
CN1950775A CN1950775A (zh) 2007-04-18
CN1950775B true CN1950775B (zh) 2011-03-16

Family

ID=34966194

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200580013800.6A Expired - Fee Related CN1950775B (zh) 2004-04-29 2005-04-29 用于程序执行期间的入侵检测的方法,设备和计算机***

Country Status (7)

Country Link
US (1) US20070245419A1 (zh)
EP (1) EP1745340B1 (zh)
JP (1) JP2007535067A (zh)
CN (1) CN1950775B (zh)
AT (1) ATE505766T1 (zh)
DE (1) DE602005027454D1 (zh)
WO (1) WO2005106619A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1995682A1 (fr) 2007-05-21 2008-11-26 Stmicroelectronics Sa Personnalisation d'un microprocesseur et procédé de protection de données
CN100504905C (zh) * 2007-11-16 2009-06-24 中国科学院软件研究所 数据库恶意事务处理方法及其***
US9135442B1 (en) * 2008-05-30 2015-09-15 Symantec Corporation Methods and systems for detecting obfuscated executables
US20120159193A1 (en) * 2010-12-18 2012-06-21 Microsoft Corporation Security through opcode randomization
WO2016015049A2 (en) * 2014-07-25 2016-01-28 Trenchware, Inc. Detection and remediation of malware within firmware of devices
US11093603B2 (en) * 2015-08-26 2021-08-17 Robotic Research, Llc System and method for protecting software from buffer overruns
US10185550B2 (en) 2016-09-28 2019-01-22 Mcafee, Inc. Device-driven auto-recovery using multiple recovery sources
US11296935B2 (en) 2016-12-30 2022-04-05 Intel Corporation Service provision to IoT devices
JP7495371B2 (ja) 2021-03-29 2024-06-04 株式会社日立製作所 制御装置、不正命令検知方法及びプログラム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5528508A (en) * 1993-02-19 1996-06-18 International Business Machines Corporation System and method for verifying a hierarchical circuit design
US6006328A (en) * 1995-07-14 1999-12-21 Christopher N. Drake Computer software authentication, protection, and security system
US6446221B1 (en) * 1999-05-19 2002-09-03 Arm Limited Debug mechanism for data processing systems
US7117532B1 (en) * 1999-07-14 2006-10-03 Symantec Corporation System and method for generating fictitious content for a computer
US7430670B1 (en) * 1999-07-29 2008-09-30 Intertrust Technologies Corp. Software self-defense systems and methods
US6826697B1 (en) * 1999-08-30 2004-11-30 Symantec Corporation System and method for detecting buffer overflow attacks
US7296274B2 (en) * 1999-11-15 2007-11-13 Sandia National Laboratories Method and apparatus providing deception and/or altered execution of logic in an information system
US7270193B2 (en) * 2000-02-14 2007-09-18 Kabushiki Kaisha Toshiba Method and system for distributing programs using tamper resistant processor
US6986046B1 (en) * 2000-05-12 2006-01-10 Groove Networks, Incorporated Method and apparatus for managing secure collaborative transactions
US20020138748A1 (en) * 2001-03-21 2002-09-26 Hung Andy C. Code checksums for relocatable code
US7487330B2 (en) * 2001-05-02 2009-02-03 International Business Machines Corporations Method and apparatus for transferring control in a computer system with dynamic compilation capability
US7392541B2 (en) * 2001-05-17 2008-06-24 Vir2Us, Inc. Computer system architecture and method providing operating-system independent virus-, hacker-, and cyber-terror-immune processing environments
GB2396930B (en) * 2002-11-18 2005-09-07 Advanced Risc Mach Ltd Apparatus and method for managing access to a memory
US7565551B2 (en) * 2003-02-19 2009-07-21 Microsoft Corporation Enhancing software integrity through installation and verification
US7555777B2 (en) * 2004-01-13 2009-06-30 International Business Machines Corporation Preventing attacks in a data processing system

Also Published As

Publication number Publication date
DE602005027454D1 (de) 2011-05-26
JP2007535067A (ja) 2007-11-29
CN1950775A (zh) 2007-04-18
US20070245419A1 (en) 2007-10-18
WO2005106619A1 (en) 2005-11-10
ATE505766T1 (de) 2011-04-15
EP1745340A1 (en) 2007-01-24
EP1745340B1 (en) 2011-04-13

Similar Documents

Publication Publication Date Title
CN1950775B (zh) 用于程序执行期间的入侵检测的方法,设备和计算机***
CN100423013C (zh) 加载可信操作***的方法和装置
CN102592082B (zh) 通过操作码随机化的安全
CN109508536B (zh) 一种篡改程序流攻击的检测方法和装置
US6260138B1 (en) Method and apparatus for branch instruction processing in a processor
TW201941049A (zh) 用於轉換詮釋資料處理的指令的系統和方法
CN109643346B (zh) 控制流完整性
TW201732576A (zh) 用於控制有界指標的使用的設備及方法
TWI733717B (zh) 從亂序處理器中的不良儲存-至-負載轉發復原的方法與設備
US10223117B2 (en) Execution flow protection in microcontrollers
DE112017005005T5 (de) Systeme, vorrichtungen, und verfahren zur plattformsicherheit
TW201935305A (zh) 用於後快取互鎖之系統和方法
CN112328306B (zh) 一种分支预测器的隔离方法、预测方法及分支预测器
CN103870240A (zh) 用于超前运行操作的指令分类
CN1758215A (zh) 更新指令错误状态暂存器
CN101027646A (zh) 用于处理计算机***上的计算机程序的方法
CN114675889A (zh) 用于对函数调用的基于硬件的记忆化的装置和方法
CN102591761B (zh) 用于安全相关的应用中的sw的编码执行的增强型可缩放cpu
CN103140847B (zh) 调节原子存储器操作以防止拒绝服务的攻击
US8271831B2 (en) Tolerating soft errors by selective duplication
US6725362B2 (en) Method for encoding an instruction set with a load with conditional fault instruction
US6816962B2 (en) Re-encoding illegal OP codes into a single illegal OP code to accommodate the extra bits associated with pre-decoded instructions
US7039907B2 (en) Method of protecting entry addresses
KR920003182B1 (ko) 마이크로프로세서
CN110008726B (zh) 一种运行时访问控制装置和方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20090206

Address after: Holland Ian Deho Finn

Applicant after: Koninkl Philips Electronics NV

Address before: Holland Ian Deho Finn

Applicant before: Koninklijke Philips Electronics N.V.

ASS Succession or assignment of patent right

Owner name: NXP CO., LTD.

Free format text: FORMER OWNER: KONINKLIJKE PHILIPS ELECTRONICS N.V.

Effective date: 20090206

C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110316

Termination date: 20130429