专利名称:一种基于硬件的嵌入式系统程序执行安全增强模块的制作方法
技术领域:
本发明涉及一种增强程序执行安全的模块,尤其涉及一种基于硬件的嵌入 式系统程序执行安全增强模块,它利用硬件辅助模式来进行程序执行监控,防 止软件攻击带来的恶意执行行为的发生,阻止恶意代码的执行。属于嵌入式系 统安全技术领域。
(二)
背景技术:
嵌入式系统在当今社会中扮演了越来越重要的角色,从消费电子产品到航 空航天、军事产品,嵌入式系统和我们的关系越来越紧密了。然而在应用更为 广泛的同时,嵌入式系统的运行安全问题也变得更加的重要。但是其资源受限 特性使得相关的安全保护设计更加困难。
通常的软件攻击都是利用程序漏洞,为了增强嵌入式系统程序执行的安全
性,通常有3种技术可以采用,它们是基于软件的静态分析技术、基于软件 的实时保护技术以及基于硬件的实时保护技术。第一种技术利用离线代码分析 进行相关程序漏洞检测修复,避免攻击者在程序执行时利用这些漏洞进行攻击; 第二种技术则通过软件方式在程序中加入监测代码的方式对程序实时执行加以
监控,防止攻击导致的错误的程序执行行为;最后一种就是从硬件的角度来保 障程序的执行行为的正确性,通过堆栈保护、安全协处理器等方式对程序的执 行过程进行保护。本发明属于最后一种技术,利用一个与处理器并行运行的监 控硬件模块来实现对处理器执行过程的实时监控,增强其安全性。
(三)
发明内容
1、 目的本发明的目的是提供一种基于硬件的嵌入式系统程序执行安全增 强模块,它是一种针对处理器执行状态的实时监控模块。该模块涉及一个用于 监控的硬件,它与处理器并行运行,通过对处理器执行路径信息的分析,判定 其执行行为的合法性,由此可以阻止任何被判定为非法的执行行为。
2、 技术方案 一种基于硬件的嵌入式系统程序执行安全增强模块,该模块由一个存储器组和一个信息分析比较逻辑电路组成。
所述存储器组是由3个静态随机存储器SRAM1, SRAM2和SRAM3 (采用 现有器件)构成,其主要功能是存储监控模型和堆栈映射存储。其中监控模型 描述了程序的合法控制流行为的范围,是通过离线的程序分析得到的,包括函 数信息与基本块信息。3个静态随机存储器中,SRAM1用于存储监控模型中的 函数信息,SRAM2用于存储监控模型中的基本块信息,SRAM3则用于存储堆 栈映射信息。利用该存储器组中的信息,可以得到一个确定的程序合法控制流 行为描述。
所述信息分析比较逻辑电路是模块的主控制部分,它接收外部的处理器输 出的程序计数器信号,调用存储器组的信息,对嵌入式处理器的实时运行控制 流行为的合法性进行判定,如果发现了非法的控制流行为,该电路发出中断控 制信号输入到处理器相关的中断接口触发相应的中断应急响应。该部分主要由3 个功能电路组成,分别是1,信息调用;2,监控比较;3,堆栈映射。所述信 息调用,完成对存储器的数据读出,每次发生控制流转换后,将开始计算下一 次的控制流跳转可能目标所对应的SRAM中的信息地址。所述监控比较,是通 过对存储器输出的数据信息(包括函数信息和基本块信息)进行分析计算,计 算出下一次程序控制流跳转的可能的目标地址,即合法的执行路径,并且通过处 理器的执行控制流信息(程序计数器PC)进行控制流转换的判定。所述堆栈映射, 将模拟处理器中堆栈的运行过程,实时保存了函数调用的返回地址,并在函数 返回时可以对该返回地址进行冲交验。
存储器组与信息分析比较逻辑电路之间的数据信号端口 、地址信号端口及 读写控制信号端口进行互连。信息分析比较逻辑电路通过输出读写控制信号及
地址信号到存储器组,以对存储器组的相应地址进行读写控制。数据信号则是 一个双向信号,对于存储器组和信息分析比较逻辑电路而言,它可以是输入信
号也可能是输出信号,这都取决于读写操作的类型。
本发明可以检测出任何违背合法定义的程序执行行为。这种实时监控模块 主要具备以下几个优点
(1) 本发明所涉及的硬件监控模块因为采用了基于程序控制流的设计,对任何 种类的攻击都有很好的监控效果。
(2) 本发明所涉及的硬件监控模块,通过硬件优化,能够实现在一个时钟周期 内的实时检测,大大提高了检测效率。
(3) 本发明所涉及的硬件监控模块具有独立性,监控模块本身具备软件攻击的不每丈感性。
(4) 本发明所涉及的监控模块对硬件资源的占用少,在提高了可靠性的同时降 低了监测成本。
(5) 本发明所涉及的硬件监控模块不需要改变原有嵌入式系统的开发程序,只 需对程序进行离线分析,将分析得到的监控模型存入监控硬件的存储器中,不 需修改硬件逻辑。
(6) 本发明所涉及的硬件监控模块具有很好的可扩展性,能适应不同种类的嵌 入式系统。
(四)
图l是本发明模块与传统嵌入式系统的关系示意图 图2是本发明模块结构示意图
图3是具备本发明模块的系统的应用开发流程示意图 图中符号说明如下
SRAM1 静态随机存储器l; SRAM2 静态随机存储器2; SRAM3 静态随机存 储器3。
(五)
具体实施例方式
见图l、图2、图3所示,其具体实施方式
如下
如图2所示为一种基于硬件的嵌入式系统程序执行安全增强模块的结构示 意图,由图中可以看出该模块由一个存储器组(右部分方框所示)和一个信息 分析比较逻辑电路(左部分方框所示)组成。所述模块接收控制流信息,输出 中断控制信号。该模块需要完成程序执行的实时状态监控及相应监控反馈信号 的生成。
所述存储器组是包括3个静态随机存储器SRAM1, SRAM2和SRAM3, 当然也可以用其它类型存储器(如动态存储器DRAM等)来代替。这3个存储 器中的SRAM1和SRAM2的被用于存储监控模型中的函数信息和基本块信息。 所述监控模型是通过软件进行的离线的程序控制流分析而得到的,包括函数信 息和基本块信息。监控模型的功能则是对程序运行的合法控制流执行路径进行 描述,其中函数信息包括函数的首地址和对应基本块的索引;基本块信息包括 基本块类型、首地址、目标索引和对应函数索引。利用SRAM1和SRAM2中存 储的函数信息及基本块信息,可以对静态分析的程序合法控制流执行路径进行 描述。SRAM3被用于存储堆栈映射信息,该部分信息是实时动态跟新的,它模 拟了一个处理器堆栈存储功能,利用这个堆栈映射信息可以推断出函数返回地址,从而保证对整个程序的合法控制流路径进行完整描述。3个静态随机存储器 没有互连的接口。
所述信息分析比较逻辑电路接收外部的嵌入式处理器输出的程序计数器信 号,调用存储器组的信息,对嵌入式处理器的实时运行控制流行为的合法性进
行监控。所述电路主要由3个功能部分組成,分别是信息调用、监控比较和 堆栈映射控制。信息调用完成对存储器的数据读出,每次发生控制流转换后, 将开始计算下一次的控制流跳转可能目标所对应的SRAM中的信息地址。监控 比较是通过对存储器输出的数据信息(包括函数信息和基本块信息)进行分析 计算,计算出下一次程序控制流跳转的可能的目标地址,即合法的执行路径,并 且通过处理器的执行控制流信息(程序计数器PC)进行控制流转换的判定,如果 发生转换,则将实际跳转地址和之前计算出的地址进行比较,如果不一致则生 成一个反馈控制信号中断处理器的运行,并让其执行相应的安全响应机制。堆 栈映射将模拟处理器中堆栈的运行过程,当程序执行过程中发生了函数调用, 则将当前的函数信息索引和基本块信息索引压入栈中,即将堆栈值存储在 SRAM中之后,再将SRAM地址加一。如果当前的基本块跳转类型为函数返回, 则将堆栈映射SRAM2中当前地址的数据推出,并将地址减一。这样就保存了函 数的返回地址,并在函数返回时可以对该返回地址进行校验,如果程序时由于 堆栈溢出攻击而导致返回地址破坏,则该模块可以很好的将其检测。
存储器组和信息分析比较逻辑电路的连接信号包括有数据信号,地址信号 与读写控制信号。其中数据信号是一个双向信号,当进行存储器写操作时,数 据信号走向由信息分析比较逻辑电路至存储器,当进行存储器读操作时,其信 号走向则刚好相反。另外地址信号和读写控制信号的信号走向都是由信息分析 比较逻辑电路至存储器。
实际应用中,该模块需要与嵌入式处理器相连接,如图1所示,传统的嵌 入式处理器与安全增强模块之间通过硬线连接,交互执行流信息和中断控制信 息,两者之间在实时运行时并行运行。对于采用了该模块的嵌入式系统,其相 应的开发流程如图3所示左上方的部分与一般的嵌入式系统软件开发流程一 致,而差别仅仅在右上方部分,需要对目标代码及二进制代码进行程序分析, 提取信息并生成描述程序合法控制流行为的监控模型,再将监控模型存储于相 应的监控存储器中。当二进制代码程序和监控模型都已存好,就可以运行系统, 处理器与监控硬件将并行运行,监控硬件接收处理器的执行信息并对其控制流 进行验证。从整个开发流程可以看出,该系统开发流程并不改变处理器相关的传统开发流程,而只是增加了一些额外的与监控有关的流程,这对于其应用是 有很大的好处的,因为其意味着它对以往的软件是有继承性的,即原有的软件 要移植到这个系统中不用改变原来的设计。
权利要求
1、一种基于硬件的嵌入式系统程序执行安全增强模块,其特征在于该模块由一个存储器组和一个信息分析比较逻辑电路组成;所述存储器组是由3个静态随机存储器SRAM1,SRAM2和SRAM3构成,其主要功能是存储监控模型和堆栈映射存储;其中监控模型描述了程序的合法控制流行为的范围,是通过离线的程序分析得到的,包括函数信息与基本块信息;3个静态随机存储器中,SRAM1用于存储监控模型中的函数信息,SRAM2用于存储监控模型中的基本块信息,SRAM3则用于存储堆栈映射信息,利用该存储器组中的信息,可以得到一个确定的程序合法控制流行为描述;所述信息分析比较逻辑电路是模块的主控制部分,它接收外部的处理器输出的程序计数器信号,调用存储器组的信息,对嵌入式处理器的实时运行控制流行为的合法性进行判定,如果发现了非法的控制流行为,该电路发出中断控制信号输入到处理器相关的中断接口触发相应的中断应急响应;该部分主要由3个功能电路组成,分别是1,信息调用;2,监控比较;3,堆栈映射;所述信息调用,完成对存储器的数据读出,每次发生控制流转换后,将开始计算下一次的控制流跳转可能目标所对应的SRAM中的信息地址;所述监控比较,是通过对存储器输出的数据信息即包括函数信息和基本块信息进行分析计算,计算出下一次程序控制流跳转的可能的目标地址,即合法的执行路径,并且通过处理器的执行控制流信息即程序计数器PC进行控制流转换的判定;所述堆栈映射,将模拟处理器中堆栈的运行过程,实时保存了函数调用的返回地址,并在函数返回时可以对该返回地址进行校验;存储器组与信息分析比较逻辑电路之间的数据信号端口、地址信号端口及读写控制信号端口进行互连;信息分析比较逻辑电路通过输出读写控制信号及地址信号到存储器组,以对存储器组的相应地址进行读写控制;数据信号则是一个双向信号,对于存储器组和信息分析比较逻辑电路而言,它可以是输入信号也可能是输出信号,这都取决于读写操作的类型。
全文摘要
一种基于硬件的嵌入式系统程序执行安全增强模块,它由一个存储器组和一个信息分析比较逻辑电路组成。所述存储器组是由3个静态随机存储器构成,其主要功能是存储监控模型和堆栈映射存储;所述信息分析比较逻辑电路是模块的主控制部分,它接收外部的处理器输出的程序计数器信号,调用存储器组的信息,对嵌入式处理器的实时运行控制流行为的合法性进行判定;它由信息调用、监控比较、堆栈映射3个功能电路组成。存储器组与信息分析比较逻辑电路之间的数据信号端口、地址信号端口及读写控制信号端口进行互连。该模块通过对处理器执行路径信息的分析,判定其执行行为的合法性,由此可以阻止任何被判定为非法的执行行为。它增强了系统程序的安全性。
文档编号G06F21/00GK101477605SQ20091007669
公开日2009年7月8日 申请日期2009年1月15日 优先权日2009年1月15日
发明者翔 王, 伟 雷 申请人:北京航空航天大学