一种基于硬件的缓冲区溢出攻击检测方法技术

技术编号:16153608 阅读:47 留言:0更新日期:2017-09-06 18:40
本发明专利技术涉及一种基于硬件的缓冲区溢出攻击检测方法,该方法具体步骤如下:步骤一:数据准备;步骤二:系统准备;步骤三:系统运行;步骤四:系统检测及告警。本发明专利技术采用了静态模型和动态模型互相对比,大大提高了检测精度,保证了攻击检测的准确性;本发明专利技术包含一个硬件安全模块,与处理器并行运行,不占用处理器计算能力,有效的提高了检测的速度,同时对嵌入式系统的影响也是最小的;本发明专利技术所涉及的硬件安全模块,采用了标准IP核设计,为后继的维护和移植提供了方便;本发明专利技术所涉及的硬件结构具有良好的可扩展性和更新能力,通过简单更改相关系统参数的数值就可以应用于其它类型的嵌入式系统中。

【技术实现步骤摘要】
一种基于硬件的缓冲区溢出攻击检测方法
本专利技术涉及一种基于硬件的缓冲区溢出攻击检测方法,它是一种利用硬件安全模块实时检测嵌入式处理器运行过程中受到的缓冲区溢出攻击的一种方法,属于嵌入式处理器保护
本专利技术尤其可以被用于提高嵌入式处理器自我保护能力,保证嵌入式处理器运行过程的稳定性和安全性,增强嵌入式系统的整体可靠性。
技术介绍
随着科学技术的不断发展和创新,嵌入式系统的硬件复杂度和性能不断提高,得到了广泛的应用,从大型运输工具、工业设备到家用电器、个人便携式设备,嵌入式系统在我们的社会生活中扮演了越来越重要的角色。并且,随着家庭网络和无线网络(HomeRF,Bluetooth,无线以太网,移动互联网等)的逐渐流行,使得网络也变得越来越普及,具有移动特性的嵌入式系统日趋普及。随着嵌入式系统应用越来越广泛,随之表现出来的安全问题也日益严重,针对嵌入式系统的恶意攻击逐渐流行和蔓延开来,涉及政府机构、军事部门、科研院校、金融商业系统,严重干扰了人们的日常生活,侵犯了公民隐私,造成巨大的经济损失,甚至威胁到国防安全。因此,对嵌入式系统系统的安全性和可靠性都提出了越来越高的要求。在所有针对嵌入式系统的攻击中,缓冲区溢出攻击被认为是头号公敌。它的攻击手段主要包括栈溢出、堆溢出、悬挂指针引用、格式化字符串漏洞和整数错误等。根据提供的近几年的统计数据,利用缓冲区溢出实施的攻击事件占所有系统攻击事件的50%以上。缓冲区溢出攻击的危害性很大,它可以使程序运行失败、系统死机,还可能被攻击者利用造成拒绝服务攻击,或利用它执行非授权指令,进行各种非法操作。为了有效检测和防御缓冲区溢出攻击,传统是利用软件去检测和防御,存在防御不全面,检测速度慢,检测不够全面等问题,本专利技术提出了一种使用与嵌入式处理器并行的硬件模块,在处理器运行期间实时检测缓冲区溢出攻击的方法,有效的保证了嵌入式系统运行的安全性。本专利技术是基于OPENRISC的处理器,经过一些修改,可应用于其他嵌入式处理器。
技术实现思路
1、目的:本专利技术的目的是提供一种基于硬件的缓冲区溢出攻击检测方法,它是在嵌入式处理器的运行过程中,使用硬件安全模块实时监测嵌入式处理器的多个寄存器,对比静态模型和动态模型,分析并正确检测出是否受到缓冲区溢出攻击,保证嵌入式系统的安全可靠运行。2、技术方案:见图1,本专利技术为一种基于硬件的缓冲区溢出攻击检测方法,该方法具体步骤如下:步骤一:数据准备在程序的交叉编译链接阶段,将程序分成多个以跳转指令为起始的代码段作为基本块,使用编译器和安全标签分析软件对基本块生成安全标签(以下称为静态标签),建立程序的静态模型,得到程序的相关信息,称为静态数据。步骤二:系统准备将编译好的程序和静态数据一起下载到嵌入式系统(以下称为目标系统)的存储器件中,目标系统内包含了嵌入式处理器,硬件安全模块,以及相关的外围器件(包含存储器件)组成一个完整可运行的SOC系统。步骤三:系统运行目标系统开始运行,存储器件中的数据随着嵌入式处理器的程序运行被读取,得到静态标签,生成静态模型,同时,硬件安全模块实时监控嵌入式处理器的指令取指(IF),数据读(load)和写(store)操作以及相关的多个寄存器,动态生成安全标签(以下称为动态标签),建立动态模型。步骤四:系统检测及告警硬件安全模块强制执行预先设定的安全策略,通过对比静态标签和动态标签,结合静态模型和动态模型,分析并正确检测出是否受到缓冲区溢出攻击,一旦发现非法操作,则发送中断信号,触发嵌入式处理器应急响应机制,嵌入式处理器可以根据情况做出判断,是否中止系统运行或者发出告警并恢复。否则继续步骤三。其中,本专利技术的一种基于硬件的缓冲区溢出攻击检测模块的结构主要包括五个部分,控制模块,静态模型模块,动态模型模块,运算分析模块和存储器模块:控制模块:负责向其它模块发出控制信号,使各个模块配合工作;静态模型模块:接收控制模块的控制信号,读取存储器模块的数据,建立静态模型;动态模型模块:接收控制模块的控制信号,监控嵌入式处理器,生成动态标签,建立动态模型;运算分析模块:接收控制模块的控制信号,从静态模型模块和动态模型模块读取数据,进行分析比较并反馈结果给控制模块;存储器模块:接收控制模块的控制信号,读取存储器件的数据,解密生成静态标签。3.优点本专利技术可以通过硬件模块实时检测缓冲区溢出攻击,解决了嵌入式系统的安全问题。本专利技术具备以下几个优点:(1)本专利技术采用了静态模型和动态模型互相对比,大大提高了检测精度,保证了攻击检测的准确性;(2)本专利技术包含一个硬件安全模块,与处理器并行运行,不占用处理器计算能力,有效的提高了检测的速度,同时对嵌入式系统的影响也是最小的;(3)本专利技术所涉及的硬件安全模块,采用了标准IP核设计,为后继的维护和移植提供了方便;(4)本专利技术所涉及的硬件结构具有良好的可扩展性和更新能力,通过简单更改相关系统参数的数值就可以应用于其它类型的嵌入式系统中。附图说明图1是本专利技术技术涉及的方法流程图。图2是本专利技术核心硬件整体结构图。具体实施方式本专利技术的核心硬件部分如图2所示,该部分需要完成静态模型的读取、解密和建立,动态模型的建立,静态动态模型的运算、分析、比较和攻击判断功能。整体核心硬件模块的结构主要包括五个部分,控制模块,静态模型模块,动态模型模块,运算分析模块和存储器模块:1.控制模块:负责向其它模块发出控制信号,使各个模块配合工作;2.静态模型模块:接收控制模块的控制信号,读取存储器模块的数据,建立静态模型;3.动态模型模块:接收控制模块的控制信号,监控嵌入式处理器,生成动态标签,建立动态模型;4.运算分析模块:接收控制模块的控制信号,从静态模型模块和动态模型模块读取数据,进行分析比较并反馈结果给控制模块;5.存储器模块:接收控制模块的控制信号,读取存储器件的数据,解密生成静态标签。在具体实施过程中,包含一个状态机的控制模块控制其他各模块的循环调用,融合各个模块完成不同功能并互相通信,最终调用运算分析模块判断出系统是否受到缓冲区溢出攻击,若受到攻击,则给出告警信号,算法终止;若未受攻击,则继续运行。安全策略设计:一、代码段是程序运行的核心,代码段的攻击主要有:1.代码段被篡改;2.缓冲区溢出,程序跳转到攻击者植入的代码段执行。二、本专利技术主要针对缓冲区溢出攻击,因此,我们设定缓冲区溢出保护的安全策略如下:1、确保代码段的完整性;2、确保执行的指令都是从可执行的内存段获取的;3、跳转指令的目标在可执行的内存段内。攻击判断的算法是本专利技术提出的方法的核心部分,有以下几个步骤。步骤一:静态标签数据提取:数据准备阶段,应用程序的各个段的起始地址及深度在交叉编译阶段就可以被完全确定,通过对应用程序反汇编,我们可以得到相应的段参数。Size代表段的深度,VMA代表段的起始地址,因此可以确定应用程序的每个段的确切位置,完成每个段的安全标签的静态提取,并通过安全算法得到静态标签数据,进一步分析得到应用程序的静态模型,生成应用程序专用的静态数据文件。步骤二、静态数据文件下载:系统准备阶段,使用JTAG软件将静态数据文件下载到目标系统的存储器件。在本专利中,是一个与处理器独立的外部存储器件,该器件与处理器和静态模型模块以通用总线相连。系统本文档来自技高网
...
一种基于硬件的缓冲区溢出攻击检测方法

【技术保护点】
一种基于硬件的缓冲区溢出攻击检测方法,特征在于:该方法具体步骤如下:步骤一:数据准备在程序的交叉编译链接阶段,将程序分成多个以跳转指令为起始的代码段作为基本块,使用编译器和安全标签分析软件对基本块生成安全标签即静态标签,建立程序的静态模型,得到程序的相关信息,称为静态数据;步骤二:系统准备将编译好的程序和静态数据一起下载到嵌入式系统即目标系统的存储器件中,目标系统内包含了嵌入式处理器,硬件安全模块,以及相关的外围器件组成一个完整可运行的SOC系统;步骤三:系统运行目标系统开始运行,存储器件中的数据随着嵌入式处理器的程序运行被读取,得到静态标签,生成静态模型,同时,硬件安全模块实时监控嵌入式处理器的指令取指,数据读和写操作以及相关的多个寄存器,动态生成安全标签即动态标签,建立动态模型;步骤四:系统检测及告警硬件安全模块强制执行预先设定的安全策略,通过对比静态标签和动态标签,结合静态模型和动态模型,分析并正确检测出是否受到缓冲区溢出攻击,一旦发现非法操作,则发送中断信号,触发嵌入式处理器应急响应机制,嵌入式处理器可以根据情况做出判断,是否中止系统运行或者发出告警并恢复;否则继续步骤三。

【技术特征摘要】
1.一种基于硬件的缓冲区溢出攻击检测方法,特征在于:该方法具体步骤如下:步骤一:数据准备在程序的交叉编译链接阶段,将程序分成多个以跳转指令为起始的代码段作为基本块,使用编译器和安全标签分析软件对基本块生成安全标签即静态标签,建立程序的静态模型,得到程序的相关信息,称为静态数据;步骤二:系统准备将编译好的程序和静态数据一起下载到嵌入式系统即目标系统的存储器件中,目标系统内包含了嵌入式处理器,硬件安全模块,以及相关的外围器件组成一个完整可运行的SOC系统;步骤三:系统运行目标系统开始运行,存储器件中的数据随着嵌入式处理器的程序运行被读取,得到静态标签,生成静态模型,同时,硬件安全模块实时监控嵌入式处理器的指令取指,数据读和写操作以及相关的多个寄存器,动态生成安全标签即动态标签,建立动态模型;步骤四:系统检测及告警硬件安全模块强制执行预先设定的安全策略,通过对比静态标签和动...

【专利技术属性】
技术研发人员:王翔徐斌王维克李明哲周成
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1