CN107133515B - 一种基于硬件的缓冲区溢出攻击检测方法 - Google Patents
一种基于硬件的缓冲区溢出攻击检测方法 Download PDFInfo
- Publication number
- CN107133515B CN107133515B CN201710136212.6A CN201710136212A CN107133515B CN 107133515 B CN107133515 B CN 107133515B CN 201710136212 A CN201710136212 A CN 201710136212A CN 107133515 B CN107133515 B CN 107133515B
- Authority
- CN
- China
- Prior art keywords
- module
- static
- data
- dynamic
- labels
- 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
- 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/52—Monitoring 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及一种基于硬件的缓冲区溢出攻击检测方法,该方法具体步骤如下:步骤一:数据准备;步骤二:系统准备;步骤三:系统运行;步骤四:系统检测及告警。本发明采用了静态模型和动态模型互相对比,大大提高了检测精度,保证了攻击检测的准确性;本发明包含一个硬件安全模块,与处理器并行运行,不占用处理器计算能力,有效的提高了检测的速度,同时对嵌入式系统的影响也是最小的;本发明所涉及的硬件安全模块,采用了标准IP核设计,为后继的维护和移植提供了方便;本发明所涉及的硬件结构具有良好的可扩展性和更新能力,通过简单更改相关系统参数的数值就可以应用于其它类型的嵌入式系统中。
Description
技术领域
本发明涉及一种基于硬件的缓冲区溢出攻击检测方法,它是一种利用硬件安全模块实时检测嵌入式处理器运行过程中受到的缓冲区溢出攻击的一种方法,属于嵌入式处理器保护技术领域。本发明尤其可以被用于提高嵌入式处理器自我保护能力,保证嵌入式处理器运行过程的稳定性和安全性,增强嵌入式系统的整体可靠性。
背景技术
随着科学技术的不断发展和创新,嵌入式系统的硬件复杂度和性能不断提高,得到了广泛的应用,从大型运输工具、工业设备到家用电器、个人便携式设备,嵌入式系统在我们的社会生活中扮演了越来越重要的角色。并且,随着家庭网络和无线网络(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软件将静态数据文件下载到目标系统的存储器件。在本专利中,是一个与处理器独立的外部存储器件,该器件与处理器和静态模型模块以通用总线相连。系统运行时,存储器件与处理器的总线连接是关闭的,从外部无法直接访问,从而能有效的避免物理攻击行为的发生。
步骤三、数据生成:系统运行阶段,静态标签模块从存储器模块读取数据,通过安全算法解密数据得到静态标签,建立静态模型。动态模型模块通过总线获取嵌入式处理器的指令取指(IF),数据读(load)和写(store)操作以及相关的多个寄存器,通过安全算法生成动态标签,建立动态模型。
步骤四、攻击检测:系统检测及告警阶段,运算分析模块主要完成两个作用。一是对比动态标签和静态标签,对比动态模型和静态模型;二是判断是否执行了预期的安全策略。当检测到一次取指令操作时候,根据当前的安全标签值判断当前指令是否是在可执行内存段取得。如果发现动态标签值与静态标签值不一致,再进一步判断当前指令地址是否在可执行的内存段,则可正确判断出系统是否受到缓冲区溢出攻击,并根据判断结果发出相应的报警信号,触发嵌入式处理器应急响应。
算法的结束与否取决于攻击判断模块。若该模块检测到系统受到攻击,则给出报警信号,算法终止;若未受攻击,则由控制模块继续控制各个模块依次运行。
Claims (2)
1.一种基于硬件的缓冲区溢出攻击检测方法,特征在于:该方法具体步骤如下:
步骤一:数据准备
在程序的交叉编译链接阶段,将程序分成多个以跳转指令为起始的代码段作为基本块,使用编译器和安全标签分析软件对基本块生成安全标签即静态标签,建立程序的静态模型,得到程序的相关信息,称为静态数据;
步骤二:系统准备
将编译好的程序和静态数据一起下载到嵌入式系统即目标系统的存储器件中,目标系统内包含了嵌入式处理器,硬件安全模块,以及相关的外围器件,目标系统是由上述三个模块共同组成的一个完整可运行的SOC系统;
步骤三:系统运行
目标系统开始运行,存储器件中的数据随着嵌入式处理器的程序运行被读取,得到静态标签,生成静态模型,同时,硬件安全模块实时监控嵌入式处理器的指令取指,数据读和写操作以及相关的多个寄存器,动态生成安全标签即动态标签,建立动态模型;
步骤四:系统检测及告警
硬件安全模块强制执行预先设定的安全策略,通过对比静态标签和动态标签,结合静态模型和动态模型,分析并正确检测出是否受到缓冲区溢出攻击,一旦发现非法操作,则发送中断信号,触发嵌入式处理器应急响应机制,嵌入式处理器可以根据情况做出判断,是否中止系统运行或者发出告警并恢复;否则继续步骤三。
2.根据权利要求1所述方法的一种基于硬件的缓冲区溢出攻击检测模块,特征在于:主要包括五个部分,控制模块,静态模型模块,动态模型模块,运算分析模块和存储器模块:
控制模块:负责向其它模块发出控制信号,使各个模块配合工作;
静态模型模块:接收控制模块的控制信号,读取存储器模块的数据,建立静态模型;
动态模型模块:接收控制模块的控制信号,监控嵌入式处理器,生成动态标签,建立动态模型;
运算分析模块:接收控制模块的控制信号,从静态模型模块和动态模型模块读取数据,进行分析比较并反馈结果给控制模块;
存储器模块:接收控制模块的控制信号,读取存储器件的数据,解密生成静态标签。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710136212.6A CN107133515B (zh) | 2017-03-09 | 2017-03-09 | 一种基于硬件的缓冲区溢出攻击检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710136212.6A CN107133515B (zh) | 2017-03-09 | 2017-03-09 | 一种基于硬件的缓冲区溢出攻击检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107133515A CN107133515A (zh) | 2017-09-05 |
CN107133515B true CN107133515B (zh) | 2019-10-18 |
Family
ID=59721884
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710136212.6A Active CN107133515B (zh) | 2017-03-09 | 2017-03-09 | 一种基于硬件的缓冲区溢出攻击检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107133515B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112597491B (zh) * | 2020-12-23 | 2024-01-26 | 北京天融信网络安全技术有限公司 | 一种缓冲区溢出攻击的检测方法及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101814053A (zh) * | 2010-03-29 | 2010-08-25 | 中国人民解放军信息工程大学 | 一种基于功能模型的二进制代码漏洞发现方法 |
CN104766015A (zh) * | 2015-04-10 | 2015-07-08 | 北京理工大学 | 一种基于函数调用的缓冲区溢出漏洞动态检测方法 |
CN104866767A (zh) * | 2015-05-11 | 2015-08-26 | 北京航空航天大学 | 一种新型安全机制的嵌入式模块 |
CN106295322A (zh) * | 2016-07-26 | 2017-01-04 | 北京航空航天大学 | 一种针对缓冲区溢出攻击的硬件保护模型 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101593163B1 (ko) * | 2014-05-12 | 2016-02-15 | 한국전자통신연구원 | 실 환경 악성코드 분석 장치 및 방법 |
-
2017
- 2017-03-09 CN CN201710136212.6A patent/CN107133515B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101814053A (zh) * | 2010-03-29 | 2010-08-25 | 中国人民解放军信息工程大学 | 一种基于功能模型的二进制代码漏洞发现方法 |
CN104766015A (zh) * | 2015-04-10 | 2015-07-08 | 北京理工大学 | 一种基于函数调用的缓冲区溢出漏洞动态检测方法 |
CN104866767A (zh) * | 2015-05-11 | 2015-08-26 | 北京航空航天大学 | 一种新型安全机制的嵌入式模块 |
CN106295322A (zh) * | 2016-07-26 | 2017-01-04 | 北京航空航天大学 | 一种针对缓冲区溢出攻击的硬件保护模型 |
Non-Patent Citations (2)
Title |
---|
A Comparison of Publicly Available Tools for Dynamic Buffer Overflow;John Wilander,et al.;《http://users.ece.cmu.edu/-adrian/630-f03/readings.wilander-comparison.pdf》;20031231;第1-14页 * |
Windows中基于硬件的缓冲区溢出攻击防范技术——DEP;池瑞楠;《电脑知识与技术》;20070208;第665-666页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107133515A (zh) | 2017-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zolanvari et al. | Effect of imbalanced datasets on security of industrial IoT using machine learning | |
Mallouhi et al. | A testbed for analyzing security of SCADA control systems (TASSCS) | |
CN104766011A (zh) | 基于主机特征的沙箱检测告警方法和系统 | |
Caselli et al. | Sequence-aware intrusion detection in industrial control systems | |
US8621629B2 (en) | System, method, and computer software code for detecting a computer network intrusion in an infrastructure element of a high value target | |
CN102088379B (zh) | 基于沙箱技术的客户端蜜罐网页恶意代码检测方法与装置 | |
Carcano et al. | State-based network intrusion detection systems for SCADA protocols: a proof of concept | |
Robles-Durazno et al. | PLC memory attack detection and response in a clean water supply system | |
US20150230108A1 (en) | Hardware Assisted Asset Tracking for Information Leak Prevention | |
EP3151152B1 (en) | Non-intrusive software agent for monitoring and detection of cyber security events and cyber-attacks in an industrial control system | |
WO2016014236A1 (en) | Methods and systems for detecting malware and attacks that target behavioral security mechanisms of a mobile device | |
CN110213226A (zh) | 基于风险全要素辨识关联的网络攻击场景重建方法及系统 | |
CN110572412A (zh) | 云环境下基于入侵检测系统反馈的防火墙及其实现方法 | |
CN104866767B (zh) | 一种安全机制的嵌入式模块 | |
CN104008332A (zh) | 一种基于Android平台的入侵检测系统 | |
Garcia et al. | Detecting PLC control corruption via on-device runtime verification | |
CN110381092A (zh) | 一种自适应闭环解决网络威胁的防御系统及方法 | |
CN111931166A (zh) | 基于代码注入和行为分析的应用程序防攻击方法和系统 | |
CN107864675B (zh) | 使用iot传感器融合的关键工业解决方案的认知保护 | |
CN106357637A (zh) | 一种针对智慧能源终端数据的主动防御系统 | |
EP4022405A1 (en) | Systems and methods for enhancing data provenance by logging kernel-level events | |
CN110647748B (zh) | 一种基于硬件特性的代码复用攻击检测系统及方法 | |
Rajput et al. | Remote non-intrusive malware detection for plcs based on chain of trust rooted in hardware | |
CN107133515B (zh) | 一种基于硬件的缓冲区溢出攻击检测方法 | |
Ruiz-Heras et al. | ADroid: anomaly-based detection of malicious events in Android platforms |
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 |