[go: up one dir, main page]

CN1248110C - 监控软件程序按规定执行的方法 - Google Patents

监控软件程序按规定执行的方法 Download PDF

Info

Publication number
CN1248110C
CN1248110C CNB98801856XA CN98801856A CN1248110C CN 1248110 C CN1248110 C CN 1248110C CN B98801856X A CNB98801856X A CN B98801856XA CN 98801856 A CN98801856 A CN 98801856A CN 1248110 C CN1248110 C CN 1248110C
Authority
CN
China
Prior art keywords
data
return address
security information
stored
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.)
Expired - Fee Related
Application number
CNB98801856XA
Other languages
English (en)
Other versions
CN1243580A (zh
Inventor
M·巴尔迪施维勒
S·普法布
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.)
Infineon Technologies AG
Original Assignee
Siemens 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 Siemens Corp filed Critical Siemens Corp
Publication of CN1243580A publication Critical patent/CN1243580A/zh
Application granted granted Critical
Publication of CN1248110C publication Critical patent/CN1248110C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • G06F9/4486Formation of subprogram jump address
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2143Clearing memory, e.g. to prevent the data from being stolen

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)
  • Executing Machine-Instructions (AREA)
  • Stored Programmes (AREA)

Abstract

所说明的方法涉及避免改写为以后使用而存储的返回地址和/或使用错误存储的或者改写的返回地址作为返回地址。使用这种方法可以实现能够进一步排除对软件程序的程序运行的目标特别明确的操作。

Description

监控软件程序按规定执行的方法
技术领域
本发明涉及一种用于监控软件程序按规定执行的方法,其中避免了为了以后使用而存储的返回地址的改写和/或者避免使用错误存储的或者被改写的返回地址作为返回地址的改写。
背景技术
按规定执行软件程序是一个永久目标,通过提供不同的措施总可以近似实现这个目标。
然而早期造成软件程序没有按规定执行原因是不可靠的硬件和程序错误,在这期间,目标明确的操作程序运行总占有重要角色。
通过目标明确的操作程序运行,例如可能跳过特定的程序部分,因此例如可以绕开确定访问权限的检查。
例如这远远不仅仅造成芯片卡中的一个严重问题,因为一方面这首先在与安全相关的区域(例如对于访问操作、现金交易等等)找到另外一个改进,另一个方面,因为它自然不可能处于持续的监控或者监视下,所以它可以无障碍成为操作尝试的目标。
根据大量已经提供的安全预防,对于滥用可用的操作的成功的可能性十分小。但尽管这样也不能完全排除这些可能性。
发明内容
因此基于本发明的任务是找出一个监控软件程序按规定执行的方法,通过这种方法可以进一步排除对程序运行目标特别明确的操作。
根据本发明通过如下的技术特征完成这个任务,即本发明的监控软件程序按规定运行的方法包括:提供一安全存储器,该安全存储器是一个从执行要监控的软件程序的系统外部不能蓄意访问的存储器;阻止为了以后使用而存储的返回地址的改写,以及阻止使用被错误存储的和被错误改写的返回地址作为返回地址,其方式是,通过分析在存储返回地址时所产生的安全信息来防止返回地址的改写和返回地址的使用,并将安全信息存储在一个安全存储器中。
因此计划:避免改写为以后使用而存储的返回地址和/或使用错误的返回地址或已改写的返回地址作为返回地址。
可以使用不同的方式和方法具体实现这些处理步骤。在最简单情况下,在一个要求存储返回地址的函数调用或者相似的情况中,不仅仅存储返回地址自身,而且补充存储安全信息,安全信息能够判断被存储的返回地址是否还是必需的,并且因此不允许改写返回地址,和/或判断被存储的返回地址是否是开始时存储的返回地址或者是否是将存储的返回地址。
在首先被提到的情况中,也就是在实现返回地址改写保护时,例如安全信息可以包括一个写保护识别码,如一个写保护位或者类似的识别码,在存储一个返回地址时,设置写保护位,在使用存储的返回地址作为返回地址后,复位写保护位。
在第二种情况中,也就是在实现返回地址应用保护时,安全信息例如包括返回地址自身或者包括以特别方法表示返回地址或者描述返回地址特征的数据。
所谓的安全信息被存储在一个存储器区域中,优选的不可能从外部存取这个存储器区域;象往常一样可以以所谓的栈的形式(堆栈存储器)实现返回地址的“标准”存储。
在对栈的每次写尝试之前,通过写保护位证明将被写区域是否是一个写保护区域,因此避免了改写以后用作返回地址的数据。
替换或者补充检查用作返回地址的数据是否相应于开始时存储的或者将被存储的返回地址,因此可以避免在存储返回地址后,将改变了的数据(被操作)数据作为返回地址。
在两种情况中,为了避免另外的操作尝试,可以中断正在运行的程序,和/或复位执行程序的系统,和/或者释放一个警报,和/或者清除与安全相关的数据,和/或采取特别的保护措施。
使用这些方法,可以保证对返回地址目标明确的操作不能改变程序按规定运行。
因此找到一种可以进一步排除目标特别明确的操作软件运行的方法。
本发明还有如下的改进:即:
使用一个在执行软件程序的微处理器、微控制器或者信号处理器中提供的存储器作为安全存储器。
使用返回地址自身或者这个表示的数据或者描述特征的数据作为安全信息。
在使用被存储的数据作为返回地址前,对照所存储的数据和所属的安全信息,其中如果确定安全信息表示被存储的数据或者描述被存储数据的特征,那么仅允许使用数据作为返回地址,
如果在请求表示返回地址的数据时,确定安全信息不表示在响应请求中得到的数据或者描述这些数据特征,那么实现立即程序中断和/或者复位执行软件程序的系统和/或者释放一个警报和/或者清除与安全相关的数据。
作为安全信息,存储通知写保护的写保护识别码。
禁止改写存储器区域,对于这个存储器区域,写保护识别码通知写保护。
如果在尝试改写一个存储器区域时,确定所属安全信息通知写保护,那么实现立即程序中断和/或者复位执行软件程序的系统和/或者释放一个警报和/或者清除与安全相关的数据。
在使用所存储的数据作为返回地址前,查询所属的安全信息,其中如果确定安全信息通知写保护,那么仅允许使用数据作为返回地址。
如果在请求表示返回地址的数据时,确定所属的安全信息不通知写保护,那么实现立即程序中断和/或者复位执行软件程序的系统和/或者释放一个警报和/或者清除与安全相关的数据。
附图说明
下面根据实施例,参考附图,详细说明本发明。
图中:
图1一个说明执行返回地址应用保护系统的部分简图,和
图2一个说明一个返回地址改写保护和一个修改过的返回地址应用保护的简图。
具体实施方式
在图1中部分说明的系统是一个为执行软件程序而设计的系统,它可以完全或者部分的处于一个微处理器中、一个控制器中、一个信号处理器或者相类似的器件中。
所说明的部分是系统中与处理返回地址相关的部分。
例如如果执行的程序包括一个函数调用,那么存储返回地址。在一个函数调用(例如在英特尔微控制器8051的指令LCALL)中
-在程序存储器的范围内,跳转到一个位置(地址),在这个位置上存储用于现在将执行函数的程序,
-执行所涉及的函数程序,和
-返回到程序存储器中的位置,在这个位置上,实现了到函数程序的跳转。
最后提到的地址,也就是在执行函数程序后,继续执行程序的地址,该地址就是所说的返回地址。
因此执行软件程序的设备引导该设备在执行函数后必须跳转到哪,它需要时间上中间存储返回地址。
在这个位置上已经提到的函数调用不是唯一的事件,其中必须存储返回地址。仅举出一些例子,例如在中断(程序中断)时或者当多任务操作系统中任务切换时,存储返回地址是必需的。
一般的以一个所谓的栈或者堆栈(堆栈)的形式实现存储返回地址。在图1中使用符号1表示这样一个栈。一个栈逻辑电路2控制或者管理栈1。另外栈逻辑电路2产生一个所谓的栈指针,该指针指示栈的部分区域,该区域作为下次将被写入或者读出的区域。栈和它的工作方式一般是公开的,因此这里可以不作进一步说明。
在栈1中不仅可以存储返回地址,而且还可以存储其他任意的数据(寄存器内容、局部变量等等)。然而本发明的叙述基本上唯一涉及处理返回地址。
例如在LCALL指令的情况下,在栈1中需要存储一个返回地址,这通过栈逻辑电路2来实现。
与在传统系统中不同,在现在考虑的系统中,在栈1中存储的或者将被存储的返回地址附加作为安全信息被存储在另一个存储器中。这个存储器在下面被称作安全存储器,在图1中用符号3表示这个存储器。为安全存储器3分配一个安全存储器逻辑电路4,通过这个逻辑电路4可以使用类似于栈逻辑电路2控制栈1的方式控制或者管理安全存储器。
与栈1相反,在执行软件程序的系统外是不能引用安全存储器3,也就是说不能或者或者至少不能使用可以承担的费用对写入安全存储器的数据进行目标明确的操作。
如果能够写入或者读出一个返回地址,那么与堆栈2相反,在所考虑的例子中,仅应用安全存储器控制逻辑4。然而替换的自然还可以使安全存储器控制逻辑4能够对另一个事件(在外部实现的写或者读过程)起反应。
如果程序运行到达一个点,在这个点上实现了到以前存储的返回地址的跳跃,例如在一个RET指令中,那么通过相应的读栈1可以得到必需的返回地址。但是在使用这时得到的数据作为返回地址前,检查得到的数据是否和安全存储器3中作为安全信息存储的返回地址一致。
为此提供一个比较器5,这个比较器接受从栈1和安全存储器3中得到的相互对照的数据,并且比较这些数据。
如果在比较器5中进行的比较中证实相互对照的数据是一致的,那么这意味着从栈1中得到的数据对应于开始存储的返回地址,也就是既不是由于硬件和/或软件错误不正确操作,也不是在或者从错误位置上存储或者读出。因此可以将在栈1存储的数据认为是按顺序的返回地址并且使用这些数据。因为象上面已经提到的,实际上不可能对安全存储器3的内容有目标明确的影响,因此这种最终推断是可行的。
如果在比较器5中进行的比较中证实相互对照的数据不是一致的,那么这意味着从栈1中得到的数据具有极大的可能性,即或者被操作,或者由于硬件和/或软件错误被不正确存储或者读出,或者在或者从错误位置上存储或者读出的可能性。与造成不一致的原因无关,不能作为返回地址使用栈1存储的数据,因为这样将得出与按规定程序运行的偏差。在这种情况下比较器5产生一个信号NMI,这个信号输出到一个NMI逻辑电路6。NMI逻辑电路6实现立即中断程序和/或者复位处理软件程序的系统和/或者释放一个警报和/或者清除与安全相关的数据。
在所考虑的例子中,通过指令激活比较器5,该指令例如是RET指令,该指令将从栈1中读出作为返回地址解释的数据。在其他的所有时间内,不激活比较器。
通过说明的方法,实现了如果并且只要没有象往常一样探测到返回地址错误,那么可以不执行将被执行的软件程序。
参考图1所说明的例子可以认为是在需要时引用返回地址应用保护的具体实现。
虽然根据例子对此没有作详细说明,但是属于各个返回地址的安全信息是返回地址自身这一情况不一定是必需的。替换的可以仅使用返回地址的选出部分或者使用任意其他方式和方法表示返回地址或者描述返回地址特征的数据作为安全信息。然后比较器5也许能够将相应给出的状态替换为被改变的对照设备。
力求的程序运行监控的替换是一个现参考图2说明的返回地址改写保护。
另外图2说明一个存储器11,能够将存储器11分成栈11a形式的第一个存储器区域和安全存储器11b形式的第二个存储器区域。
栈11a对应于在图1中说明的栈1。安全存储器11b大概对应于在图1中说明的安全存储器3;一般的使用其他安全信息说明安全存储器11b,象这是在安全存储器3中的情况。
象安全存储器3一样,不能从执行监视软件程序的设备外部引用安全存储器11b。也就是说,在程序过程监控的这个变体中,不能操作在安全存储器存储的安全信息,或者在任何情况下不能使用可计算的费对其操作。
在安全存储器11b存储的安全信息包括一个写保护位,如果不允许改写分配给栈区域的内容,那么设置这个写保护位为“1”;如果允许改写属于栈区域的内容,那么设置这个写保护位为“1”。
例如在LCALL指令的情况下,涉及在栈11a存储一个返回地址,那么使用一般的方式和方法实现这个操作。
同时,属于栈区域的安全存储器11b的区域写入一个“1”,因此标明不允许改写相应的栈区域,在上述栈区域中写入返回地址。
在考虑的例子中,栈11a被分为分别包括8位的区域,其中为每一个8位区域分配一个在安全存储器11b中存储的写保护位。如果从使用16位地址处理出发,那么为了存储一个返回地址,必须存储两个栈区域。
根据在图2中的说明,在栈11a中存储一个返回地址。返回地址将一个包括较高权的8位部分(PCH)和一个在包括较低权的8位部分(PCL)组合在一起。不仅为包括PCH的栈区域而且为包括PCL的栈区域分配“1”,作为安全信息或者写保护位。
如果作为返回地址来使用在所属的栈区域中存储的数据,那么将各个安全信息或者写保护位复位为“0”。
在每次尝试在栈中写入数据(那里改写被存储的数据)前,分析属于被写栈区域的安全信息(所属的写保护位),以便于确定在这个位置上是否允许写栈。
如果所属的安全信息或者所属的写保护位具有值“1”,那么在这个位置上不允许写栈。写尝试被判断为操作尝试或者硬件或者软件故障。如果相反所属的安全信息或者所属的写保护位为“0”,那么在这个位置上,允许写栈。
通过一个写保护检查电路来检查确定是否允许写特定的栈区域,在考虑的例子中通过一个UND网络来实现这个写保护检查电路。在UND网络12中,将属于将被写栈区域的写保护位和一个通知写愿望的信号Write_Stack作为输入信号。其中如果存在着一个写愿望,那么Write_Stack可能接受值“1”,如果不存在一个写愿望,那么Write_Stack可能接受值“0”。UND网络12的输出信号Valid_Write说明是否允许按预期写所涉及的栈区域(Valid_Write=“0”)或者是否不允许写(Valid_Write=“1”)。可以象图1中比较器5的输出信号NMI一样来使用UND网络的输出信号Valid_Write,以便于立即中断程序的运行和/或者复位处理程序的系统和/或者释放一个警报和/或者清除与安全相关的数据。
补充这个返回地址改写保护,可以在根据图2的系统中集成一个与根据图1的执行相反的被修改的返回地址应用保护。这个补充保护机制的内容是在使用从栈11a中读出的数据作为返回地址前在这一点上检查它是否完全表示一个返回地址。这可以从属于各个栈区域的安全信息或者写保护位来判断。仅仅当属于将被读出栈区域的安全信息或者写保护位的值是“1”时,存储在相应栈区域中的数据表示一个返回地址。对此的前提条件自然是:安全信息或者写保护位仅仅对于表示返回地址的数据,也就是例如关于一个CALL指令或者相类似在栈11a被写入的数据的指令,被置为“1”。
根据图2的说明通过一个UND网络实现这个补充保护机制。在这个UND网络13上使用属于将读出栈区域的写保护位和一个通知所读出数据的使用目的的信号Read_Stack作为输入信号,其中如果象在出现一个RET指令时,考虑一个应用作为返回地址,那么Read_Stack可能接受值“1”,其中如果想要其它方面的应用,Read_Stack可能接受值“0”。然后UND网络13的输出信号Valid_Read说明是否允许所请求的数据作为返回地址(Valid_Read=“1”)或者它是否允许(Valid_Read=“0”)。如果在请求返回地址时出现这种情况:使用从栈11a中请求的作为返回地址的数据通过Valid_Read=“0”归为不允许的,那么可以将它翻译为操作尝试或者硬件或者软件错误,并且利用它导出适合的保护方法。这种方法可以特别是:立即程序中断和/或者复位处理程序的系统和/或者释放一个警报和/或者清除与安全相关的数据。
根据现有的说明,防止外部访问的安全信息包括一个写保护位。以下内容是不言而喻的:可以使用一个包括具有任意多个和任意意义的位的识别码代替这些,通过这个识别码,不仅返回地址,而且任意另一个保护值的数据,在操作和错误前,为了保护它们,接受一次特别处理。
安全存储器象上面所说的是一个从外部不能引用的存储器,在这个安全存储器中存储不同的安全信息。优选在执行将被监控的软件程序的设备中实现这个安全存储器,也就是在通常的一个微处理器中、一个微控制器中或者一个信号处理器自身中实现;这样特别好防止了从外面对它的访问。在一个微处理器、一个微控制器或者一个信号处理器(例如隐藏或者阴影栈中)的范围内,能够相当简单的实现从外部不能被引用的存储器。因此它仅仅需要对核心软件进行相应的修改。
此外使用已经说明的方法不要求在硬件和软件上的变化。特别的可以照常继续使用栈。
因此找到一种监视软件程序按规定执行的方法,这种方法使用简单的方法并且不改变软件,可以进一步排除对软件运行目标特别明确的操作、另外部分的硬件和软件错误。

Claims (10)

1、监控软件程序按规定运行的方法,包括:
提供一安全存储器,该安全存储器是一个从执行要监控的软件程序的系统外部不能蓄意访问的存储器,
阻止为了以后使用而存储的返回地址的改写,以及阻止使用被错误存储的和被错误改写的返回地址作为返回地址,其方式是,通过分析在存储返回地址时所产生的安全信息来防止返回地址的改写和返回地址的使用,并将安全信息存储在一个安全存储器中。
2、根据权利要求1的方法,其特征在于,使用一个在执行软件程序的微处理器、微控制器或者信号处理器中提供的存储器作为安全存储器。
3、根据权利要求1或2的方法,其特征在于,使用返回地址自身或者这个表示的数据或者描述特征的数据作为安全信息。
4、根据权利要求3的方法,其特征在于,在使用被存储的数据作为返回地址前,对照所存储的数据和所属的安全信息,其中如果确定安全信息表示被存储的数据或者描述被存储数据的特征,那么仅允许使用数据作为返回地址。
5、根据权利要求3的方法,其特征在于,如果在请求表示返回地址的数据时,确定安全信息不表示在响应请求中得到的数据或者描述这些数据特征,那么实现以下动作中的至少一个:立即程序中断、复位执行软件程序的系统、释放一个警报、清除与安全相关的数据。
6、根据权利要求1或2的方法,其特征在于,作为安全信息,存储通知写保护的写保护识别码。
7、根据权利要求6的方法,其特征在于,禁止改写存储器区域,对于这个存储器区域,写保护识别码通知写保护。
8、根据权利要求6的方法,其特征在于,如果在尝试改写一个存储器区域时,确定所属安全信息通知写保护,那么实现以下动作中的至少一个:立即程序中断、复位执行软件程序的系统、释放一个警报、清除与安全相关的数据。
9、根据权利要求6的方法,其特征在于,在使用所存储的数据作为返回地址前,查询所属的安全信息,其中如果确定安全信息通知写保护,那么仅允许使用数据作为返回地址。
10、根据权利要求9的方法,其特征在于,如果在请求表示返回地址的数据时,确定所属的安全信息不通知写保护,那么实现以下动作中的至少一个:立即程序中断、复位执行软件程序的系统、释放一个警报、清除与安全相关的数据。
CNB98801856XA 1997-01-15 1998-01-15 监控软件程序按规定执行的方法 Expired - Fee Related CN1248110C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE19701166.7 1997-01-15
DE19701166A DE19701166A1 (de) 1997-01-15 1997-01-15 Verfahren zur Überwachung der bestimmungsgemäßen Ausführung von Softwareprogrammen

Publications (2)

Publication Number Publication Date
CN1243580A CN1243580A (zh) 2000-02-02
CN1248110C true CN1248110C (zh) 2006-03-29

Family

ID=7817440

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB98801856XA Expired - Fee Related CN1248110C (zh) 1997-01-15 1998-01-15 监控软件程序按规定执行的方法

Country Status (12)

Country Link
US (1) US6202176B1 (zh)
EP (1) EP0951673B1 (zh)
JP (1) JP2001511271A (zh)
KR (1) KR20000070127A (zh)
CN (1) CN1248110C (zh)
AT (1) ATE200358T1 (zh)
BR (1) BR9806770A (zh)
DE (2) DE19701166A1 (zh)
ES (1) ES2156029T3 (zh)
RU (1) RU2220443C2 (zh)
UA (1) UA55438C2 (zh)
WO (1) WO1998032072A1 (zh)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19944991B4 (de) 1999-09-20 2004-04-29 Giesecke & Devrient Gmbh Verfahren zur Sicherung eines Programmablaufs
DE10122505A1 (de) * 2001-05-10 2002-11-14 Giesecke & Devrient Gmbh Verfahren zum Schützen eines Rechners gegen Manipulation von Registerinhalten und Rechner zum Durchführen des Verfahrens
US7853803B2 (en) * 2001-09-28 2010-12-14 Verizon Corporate Services Group Inc. System and method for thwarting buffer overflow attacks using encrypted process pointers
JP2004126854A (ja) * 2002-10-01 2004-04-22 Mitsubishi Electric Corp 攻撃対策装置
WO2005020069A1 (ja) * 2003-08-25 2005-03-03 Denki Hompo Ltd. コンピュータシステムのcpu(中央処理装置)
US8042179B2 (en) 2003-09-04 2011-10-18 Science Park Corporation False code execution prevention method, program for the method, and recording medium for recording the program
US20050138263A1 (en) * 2003-12-23 2005-06-23 Mckeen Francis X. Method and apparatus to retain system control when a buffer overflow attack occurs
US7971255B1 (en) * 2004-07-15 2011-06-28 The Trustees Of Columbia University In The City Of New York Detecting and preventing malcode execution
US7594269B2 (en) * 2004-10-29 2009-09-22 Intel Corporation Platform-based identification of host software circumvention
WO2007048988A1 (en) * 2005-10-26 2007-05-03 Arm Limited A data processing apparatus and method for handling procedure call instructions
US7774761B2 (en) * 2005-12-27 2010-08-10 International Business Machines Corporation Use of memory watch points and a debugger to improve analysis of runtime memory access errors
US20070174571A1 (en) * 2006-01-25 2007-07-26 Safenet, Inc. Binding a protected application program to shell code
US8352713B2 (en) 2006-08-09 2013-01-08 Qualcomm Incorporated Debug circuit comparing processor instruction set operating mode
US20080127118A1 (en) * 2006-10-02 2008-05-29 Bulent Kasman Method and system for dynamic patching of software
US20090187748A1 (en) * 2008-01-22 2009-07-23 Scott Krig Method and system for detecting stack alteration
DE102009005764A1 (de) 2009-01-23 2010-07-29 Giesecke & Devrient Gmbh Verfahren zur Überwachung der bestimmungsgemäßen Ausführung eines Unterprogramms
US8484625B2 (en) * 2009-04-01 2013-07-09 Motorola Mobility Llc Method and apparatus to vet an executable program using a model
RU2434272C1 (ru) * 2010-06-04 2011-11-20 Федеральное государственное учреждение "Государственный научно-исследовательский испытательный институт проблем технической защиты информации Федеральной службы по техническому и экспортному контролю" Система контроля отсутствия недекларированных возможностей в программном обеспечении
RU2434265C1 (ru) * 2010-07-13 2011-11-20 Федеральное государственное учреждение "Государственный научно-исследовательский испытательный институт проблем технической защиты информации Федеральной службы по техническому и экспортному контролю" Система контроля отсутствия недекларированных возможностей в программном обеспечении
CN102053839A (zh) * 2010-12-31 2011-05-11 山东中创软件商用中间件股份有限公司 监控探针生成方法和装置
FR2977694A1 (fr) 2011-07-08 2013-01-11 St Microelectronics Rousset Microprocesseur protege contre un debordement de pile
US9213828B2 (en) * 2012-02-08 2015-12-15 Arm Limited Data processing apparatus and method for protecting secure data and program code from non-secure access when switching between secure and less secure domains
US9015835B2 (en) * 2013-06-23 2015-04-21 Intel Corporation Systems and methods for procedure return address verification
JP2015011436A (ja) * 2013-06-27 2015-01-19 株式会社デンソー プロセッサ
RU2591020C1 (ru) * 2015-06-01 2016-07-10 Российская Федерация, от имени которой выступает Государственная корпорация по атомной энергии "Росатом" (Госкорпорация "Росатом") Способ контроля хода выполнения программы пользователя, исполняющейся на вычислительных узлах вычислительной системы
US20160381050A1 (en) * 2015-06-26 2016-12-29 Intel Corporation Processors, methods, systems, and instructions to protect shadow stacks
US10394556B2 (en) 2015-12-20 2019-08-27 Intel Corporation Hardware apparatuses and methods to switch shadow stack pointers
US10430580B2 (en) 2016-02-04 2019-10-01 Intel Corporation Processor extensions to protect stacks during ring transitions
KR102666954B1 (ko) * 2016-02-12 2024-05-17 한양대학교 산학협력단 보안 반도체 칩 및 그 동작 방법
WO2017138797A1 (ko) * 2016-02-12 2017-08-17 한양대학교 산학협력단 시큐어 시스템 온 칩
JP6489050B2 (ja) * 2016-03-24 2019-03-27 株式会社オートネットワーク技術研究所 情報処理装置及び情報処理システム
US9904485B2 (en) * 2016-03-31 2018-02-27 Intel Corporation Secure memory controller
US10613864B2 (en) 2018-03-16 2020-04-07 Texas Instruments Incorporated Processor with hardware supported memory buffer overflow detection
RU2697948C1 (ru) * 2018-04-19 2019-08-21 Акционерное общество "Лаборатория Касперского" Система и способ выявления уязвимостей с использованием перехвата вызовов функций

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4241396A (en) * 1978-10-23 1980-12-23 International Business Machines Corporation Tagged pointer handling apparatus
JPS5568000A (en) * 1978-11-13 1980-05-22 Ibm Maintenance and protection of control storage capable of writing
US4296404A (en) * 1979-10-18 1981-10-20 Engineered Systems, Inc. Remote verification lockout system
US5408642A (en) * 1991-05-24 1995-04-18 Symantec Corporation Method for recovery of a computer program infected by a computer virus
US5274817A (en) * 1991-12-23 1993-12-28 Caterpillar Inc. Method for executing subroutine calls
RU2055588C1 (ru) * 1993-03-03 1996-03-10 Арнольд Аркадиевич Ласков Способ стимуляции работоспособности лошадей
DE4315732C1 (de) * 1993-05-11 1994-06-01 Siemens Nixdorf Inf Syst Verfahren zum authentischen Booten und Testen der Integrität von Software auf PC-Architekturen
FR2728363A1 (fr) * 1994-12-20 1996-06-21 Sgs Thomson Microelectronics Dispositif de protection de l'acces a des mots memoires
DE19614904A1 (de) * 1996-04-16 1997-10-23 Philips Patentverwaltung Verfahren und System zum Freigeben der Ausführung zugelassener Programme
JP3421526B2 (ja) * 1997-02-14 2003-06-30 モトローラ株式会社 デ−タ処理装置

Also Published As

Publication number Publication date
BR9806770A (pt) 2000-05-16
JP2001511271A (ja) 2001-08-07
UA55438C2 (uk) 2003-04-15
ATE200358T1 (de) 2001-04-15
WO1998032072A1 (de) 1998-07-23
RU2220443C2 (ru) 2003-12-27
CN1243580A (zh) 2000-02-02
ES2156029T3 (es) 2001-06-01
US6202176B1 (en) 2001-03-13
EP0951673B1 (de) 2001-04-04
DE59800589D1 (de) 2001-05-10
KR20000070127A (ko) 2000-11-25
DE19701166A1 (de) 1998-07-23
EP0951673A1 (de) 1999-10-27

Similar Documents

Publication Publication Date Title
CN1248110C (zh) 监控软件程序按规定执行的方法
US7831791B2 (en) Method of address space layout randomization for windows operating systems
US6976136B2 (en) Flash memory protection scheme for secured shared BIOS implementation in personal computers with an embedded controller
KR100734340B1 (ko) 상이한 메모리 기술 특성을 갖는 분할 메모리 장치
JP4925422B2 (ja) データ処理装置内コンテンツへのアクセス管理
US7467272B2 (en) Write protection of subroutine return addresses
CN101162492B (zh) 保护数据处理设备中的系统控制寄存器
JPH09500469A (ja) メモリカード及びその作動方法
CN1315061C (zh) 用来控制对内存的一段内存储的安全数据的访问的装置和方法
JP4145365B2 (ja) ファイルアクセス制御装置
US8234476B2 (en) Information processing apparatus and method of updating stack pointer
CN1196524A (zh) 存储器存取控制电路
CN1799030A (zh) 用于确定访问许可的方法和设备
JPH08272625A (ja) マルチプログラム実行制御装置及び方法
CN112970019B (zh) 用于加强硬件辅助内存安全的装置和方法
JP2003162452A (ja) 記憶媒体装置に格納されているデータを保護するためのシステム及び方法
CN1491388A (zh) 资料载体之微处理器电路及组织存取储存于内存资料之方法
EP0109504A2 (en) Protection system for storage and input/output facilities and the like
US6697971B1 (en) System and method for detecting attempts to access data residing outside of allocated memory
US7207066B2 (en) Method for protecting a microcomputer system against manipulation of data stored in a storage arrangement of the microcomputer system
JP2001249848A (ja) 先行特権レベルに基づく特権昇格
US20180373624A1 (en) Method for securing at least one memory zone of an electronic device, corresponding securing module, electronic device and computer program
KR20010044706A (ko) 컴퓨터 바이러스 프로그램의 감염방지 방법 및 그에 관한시스템
CN1151438C (zh) 保护可重写储存媒体中数据的系统及方法
CN1162788A (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
C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1061816

Country of ref document: HK

ASS Succession or assignment of patent right

Owner name: INFINEON TECHNOLOGIES AG

Free format text: FORMER OWNER: SIEMENS AG

Effective date: 20120222

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20120222

Address after: Federal Republic of Germany City, Laura Ibiza Berger

Patentee after: Infineon Technologies AG

Address before: Munich, Germany

Patentee before: Siemens AG

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20060329

Termination date: 20170115