CN112463536B - 一种软件堆栈区域非法篡改监控系统及方法 - Google Patents

一种软件堆栈区域非法篡改监控系统及方法 Download PDF

Info

Publication number
CN112463536B
CN112463536B CN202011356623.4A CN202011356623A CN112463536B CN 112463536 B CN112463536 B CN 112463536B CN 202011356623 A CN202011356623 A CN 202011356623A CN 112463536 B CN112463536 B CN 112463536B
Authority
CN
China
Prior art keywords
address
access address
stack
protection area
stack protection
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
Application number
CN202011356623.4A
Other languages
English (en)
Other versions
CN112463536A (zh
Inventor
刘金行
金军
郑鸿云
蒋开洪
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.)
Ningbo Tuopu Group Co Ltd
Original Assignee
Ningbo Tuopu Group Co Ltd
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 Ningbo Tuopu Group Co Ltd filed Critical Ningbo Tuopu Group Co Ltd
Priority to CN202011356623.4A priority Critical patent/CN112463536B/zh
Publication of CN112463536A publication Critical patent/CN112463536A/zh
Application granted granted Critical
Publication of CN112463536B publication Critical patent/CN112463536B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及一种软件堆栈区域非法篡改监控系统,包括:用于监控软件异常行为的堆栈保护区装置,所述堆栈保护区装置通过数据总线与数据总线访问地址更新装置连接,所述数据总线访问地址更新装置与数据访问地址循环装置连接,所述数据访问地址循环装置通过数据总线与输出映射装置连接;所述数据总线访问地址更新装置用于根据地址步长和前一次访问地址记录,得到当前目标访问地址。本发明还涉及一种软件堆栈区域非法篡改监控方法,本发明可以在软件本身已无法正常工作时仍然保持监控功能,使软件全生命周期中的堆栈行为都处于监控之下,使堆栈监控具备独立性和客观性。

Description

一种软件堆栈区域非法篡改监控系统及方法
技术领域
本发明涉及安全系统监控技术领域,特别是涉及一种软件堆栈区域非法篡改监控系统及方法。
背景技术
软件运行时需要使用堆栈用于保存函数调用前和调用后的现场数据,如局部变量数据、函数返回地址等,有些单片机嵌入式软件还需要保存计算单元寄存器数据,用于在硬件中断发生时保存计算单元的数据,并在中断服务函数结束时将这些数据读回计算单元,继续运行被中断暂停的计算任务。与软件设计的复杂度相关,软件运行过程中在不同的时刻实际使用的堆栈空间的是不固定的。但一般都能够根据软件设计推理出一个理论空间需求,为了确保堆栈空间肯定够用,往往在理论空间需求的基础上再额外增加一个空间,这个空间叫做堆栈保护区。
常用的堆栈保护区检查机制是通过软件读取的方式进行循环检查,通过在软件中设置专用的读取和判断机制,将堆栈保护区的数据从随机存储器中读出,然后判断堆栈保护区的数值是否被修改过,依据判断的结果,得到软件是否有异常的结果。
传统技术实现成本较低,有一定的有效性,但是无法识别所有的工况,尤其是当堆栈区溢出已经对软件产生严重影响,使软件完全无法正常运行的工况,此时无法依赖软件本身检测堆栈区的问题。
发明内容
本发明所要解决的技术问题是提供一种软件堆栈区域非法篡改监控系统及方法,当软件检测不可信时,通过硬件系统来解决监控堆栈区域被非法篡改的问题。
本发明解决其技术问题所采用的技术方案是:提供一种软件堆栈区域非法篡改监控系统,包括:用于监控软件异常行为的堆栈保护区装置,所述堆栈保护区装置通过数据总线与数据总线访问地址更新装置连接,所述数据总线访问地址更新装置与数据访问地址循环装置连接,所述数据访问地址循环装置通过数据总线与输出映射装置连接;
所述数据总线访问地址更新装置用于根据地址步长和前一次访问地址记录,得到当前目标访问地址;
所述数据访问地址循环装置根据所述当前目标访问地址、堆栈保护区开始地址AddrS和堆栈保护区结束地址AddrE,得到最终目标访问地址;
所述堆栈保护区装置将所述最终目标访问地址在堆栈保护区开始地址AddrS与堆栈保护区结束地址AddrE之间来回循环;
所述输出映射装置用于将数据总线读出的值通过输出映射器映射至电平中。
所述数据总线访问地址更新装置根据所述地址步长和前一次访问地址记录,通过地址加法器得到当前目标访问地址,并将所述当前目标访问地址保存在目标地址存储器中。
所述数据访问地址循环装置通过地址比较器将所述当前目标访问地址和堆栈保护区结束地址AddrE进行比较,若所述当前目标访问地址大于堆栈保护区结束地址AddrE,则通知地址选择器选择堆栈保护区开始地址AddrS存入访问地址存储器;若所述当前目标访问地址小于等于堆栈保护区结束地址AddrE,则所述地址选择器将所述当前目标访问地址存入访问地址存储器。
所述输出映射装置与并联正向二极管电路装置连接,所述并联正向二极管电路装置用于将每个电平对应的硬件电平信号通过二极管阵列输出至保护信号。
所述电平的数目为8的倍数。
本发明解决其技术问题所采用的技术方案是:提供一种软件堆栈区域非法篡改监控方法,包括:
步骤(1):在地址参数存储器中输入堆栈保护区开始地址AddrS和堆栈保护区结束地址AddrE,并设置地址步长和监控时钟周期;
步骤(2):根据所述监控时钟周期、地址步长和前一次访问地址记录,得到当前目标访问地址;
步骤(3):根据所述当前目标访问地址、堆栈保护区开始地址AddrS和堆栈保护区结束地址AddrE,得到最终目标访问地址值;
步骤(4):所述数据总线根据所述监控时钟周期和最终目标访问地址,在随机存储器中来回循环从堆栈保护区开始地址值AddrS到堆栈保护区结束地址值AddrE之间所有堆栈保护区的值,并把每个循环到的堆栈保护区的值发送至硬件电平输出控制位;
步骤(5):所述硬件电平输出控制位将所述堆栈保护区的值通过输出映射器,来控制对应输出电路的电平;
步骤(6):重复执行所述步骤(2)至步骤(5)。
所述步骤(2)具体为:所述监控时钟跳动一个周期,则地址加法器将所述访问地址存储器增加一个地址步长,得到当前目标访问地址,并将所述当前目标访问地址保存在目标地址存储器中。
所述步骤(3)具体为:通过所述地址比较器将所述当前目标访问地址与堆栈保护区结束地址AddrE进行比较,若所述当前目标访问地址大于堆栈保护区结束地址AddrE,则通知地址选择器选择堆栈保护区开始地址AddrS存入访问地址存储器;若所述当前目标访问地址小于等于堆栈保护区结束地址AddrE,则地址选择器将所述当前目标访问地址存入访问地址存储器。
所述步骤(2)至步骤(5)的监控耗时的公式为:
Figure BDA0002802749660000031
其中,Twait为监控耗时,AddrE为堆栈保护区结束地址,AddrS为堆栈保护区开始地址,AddrStep为地址步长,Pclock为监控时钟周期。
所述监控耗时Twait还包括:通过减小堆栈保护区、减小监控时钟周期或增加地址步长来减少监控耗时Twait
有益效果
由于采用了上述的技术方案,本发明与现有技术相比,具有以下的优点和积极效果:本发明可以在软件本身已无法正常工作时仍然保持监控功能,使软件全生命周期中的堆栈行为都处于监控之下,使堆栈监控具备独立性和客观性。本发明可以针对性地对有高度安全性、可靠性要求的嵌入式软件实施,由于采用了硬件的监控方式,本发明的监控系统不依赖软件,无论软件做任何操作,一旦堆栈保护区的值被篡改,就说明软件的行为超出设计值,外部保护机制即可根据保护信号的硬件边沿跳变做出相应的动作。本发明的监控系统独立于软件以外,当堆栈异常造成软件行为不可信时,可以从软件之外的硬件机制上限制因软件异常造成的风险和损失,相比于需要依赖软件本身进行的软件堆栈监控方法更加安全和可靠。
附图说明
图1是本发明实施方式的系统原理图;
图2是本发明实施方式中系统检测出堆栈保护区产生异常示意图;
图3是本发明实施方式的内存bit位与外部电平对应的示意图;
图4是本发明实施方式的堆栈区域示意图;
图5是本发明实施方式的常规堆栈保护区检查方法示意图;
图6是本发明实施方式的无限循环过程图;
图7是本发明实施方式的整体构思示意图。
具体实施方式
下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。
本发明的实施方式涉及一种软件堆栈区域非法篡改监控系统,如图1所示,为本发明实施方式的系统原理图,包括:预设的堆栈保护区1、数据总线2、输出映射器3、硬件电平信号4、硬件电平输出控制位5、内存bit位6、堆栈保护区开始地址AddrS7、堆栈保护区结束地址AddrE8、用于驱动地址更换的监控时钟9、地址步长10、地址加法器11、用于循环过程不断更新的目标地址存储器12、用于选出最终总线访问地址的地址选择器13、访问地址存储器14、电阻器15、二极管阵列16、地址更新环路17和保护信号18。
本实施方式具体包括堆栈保护区装置,所述堆栈保护区装置通过数据总线2与数据总线访问地址更新装置连接,所述数据总线访问地址更新装置与数据访问地址循环装置连接,所述数据访问地址循环装置通过数据总线2与输出映射装置连接,所述输出映射装置与并联正向二极管电路装置连接。
所述堆栈保护区装置为划定软件运行硬件载体的堆栈保护区,用于监控软件异常行为。
所述数据总线访问地址更新装置用于根据地址步长10和前一次访问地址记录,得到当前目标访问地址。
所述数据总线访问地址更新装置用于根据地址步长10和前一次访问地址记录,得到当前目标访问地址。具体地,所述数据总线访问地址更新装置根据所述地址步长10和前一次访问地址记录,通过地址加法器11得到当前目标访问地址,并将所述当前目标访问地址保存在目标地址存储器12中。
所述数据访问地址循环装置根据所述当前目标访问地址、堆栈保护区开始地址AddrS7和堆栈保护区结束地址AddrE8,得到最终目标访问地址值,并将比较得出的选择结果存储于访问地址存储器14,实现数据访问地址的无限循环。具体地,所述数据访问地址循环装置通过地址比较器将所述当前目标访问地址和堆栈保护区结束地址AddrE8进行比较,若所述当前目标访问地址大于堆栈保护区结束地址AddrE8,则通知地址选择器13选择堆栈保护区开始地址AddrS7存入访问地址存储器14;若所述当前目标访问地址小于等于堆栈保护区结束地址AddrE8,则所述地址选择器13将所述当前目标访问地址存入访问地址存储器14。最后所述堆栈保护区装置将所述最终目标访问地址值在堆栈保护区开始地址AddrS7与堆栈保护区结束地址AddrE8之间来回循环。
所述输出映射装置用于将数据总线2读出的值通过输出映射器3映射至电平中,一路电平对应数值的一个bit,电平的数目与地址步长有关,电平的数目越多,一次映射操作所监控的内存bit位6就越多,地址步长10就更长,电平的数目一般是8或8的倍数,如16、32、64等,如果电平的数目为8,则地址步长为1字节,步长为2字节、4字节和8字节时,对应的电平数分别为16、32和64。
所述并联正向二极管电路装置用于将每个电平对应的硬件电平信号4通过二极管阵列16输出至保护信号18。每路电平都可以将高电平通过二极管输出至保护信号,因此,只要堆栈保护区内有不为0的bit存在,本系统一定可以产生至少1个的上升边沿。
进一步地,预先在电路中的地址参数存储器中存储堆栈保护区开始地址AddrS7和堆栈保护区结束地址AddrE8;如图4所示,堆栈保护区是在随机存储器中专门划分出来,用于将软件运行时的堆栈数据与普通数据隔开的区域,这部分区域就叫做堆栈保护区。堆栈保护区在软件运行过程中的值是稳定不变的,如果监测发现堆栈保护区的值发生了变化,就说明软件中发生了对堆栈保护区的篡改操作,此时整个软件将不再可靠。由于堆栈保护区在堆栈区中,软件的堆栈会随着函数调用等操作采用后入先出的原则使用堆栈空间,因此堆栈保护区被篡改的最大可能原因,就是堆栈数据发生溢出。
图5是常规堆栈保护区检查方法,是通过软件读取的方式进行循环检查,相比于传统的方法,本系统通过硬件来实现监控堆栈区域软件行为异常的目的,本系统主要包括监控时钟9、地址加法器11、地址比较器、地址选择器13、访问地址存储器14、目标地址存储器12、数据总线2、输出映射器3和硬件电平输出控制位5。
(1)监控时钟9:监控时钟9的作用是提供工作节奏,监控时钟9的跳动一个节拍,通过地址加法器11将访问地址存储器14增加一个地址步长10,并将结果保存在目标地址存储器12中。
(2)地址加法器11:地址加法器11的作用是根据监控时钟9的周期,不断更新目标地址存储器12中的地址值。
(3)地址比较器:地址比较器的作用是将目标地址存储器12中的值与堆栈保护区结束地址AddrE8进行比较,如果目标地址存储器12中的值大于堆栈保护区结束地址AddrE8,就通知地址选择器13选择堆栈保护区开始地址AddrS7存入访问地址存储器14。
(4)地址选择器13:地址选择器13根据不同的情况选择合适的值存入访问地址存储器14中,当地址比较器有通知时,将堆栈保护区开始地址AddrS7存入访问地址存储器14;如果地址比较器无通知,则将目标地址存储器12的值转存入访问地址存储器14;此时的目标地址存储器12的值已由地址加法器11更新过。
(5)数据总线2:数据总线2根据监控时钟9的节拍和访问地址存储器14中的值,访问对应随机存储器地址的堆栈保护区的值,然后复制堆栈保护区的值至硬件电平输出控制位5。
(6)硬件电平输出控制位5:硬件电平输出控制位5与硬件电平信号4通过输出映射器3连接,硬件电平输出控制位可以根据内存bit位6的0值或1值,控制对应输出电路的电平为低电平或高电平。
(7)输出映射器3:连接硬件电平输出控制位5至输出电路。
进一步地,最关键的部分为地址比较器和地址选择器13,通过控制访问地址存储器14中的值在堆栈保护区开始地址AddrS7与堆栈保护区结束地址AddrE8之间来回循环,达到使数据总线2总能够不断循环获取随机存储器中堆栈保护区中的值的效果,具体循环过程见图6。
如图3所示,为本发明实施方式的内存bit位与外部电平对应的示意图,即硬件电平输出控制位5和输出映射器3可以实现将随机存储器中的内存bit位6对应的0值或1值用外部电平表现出来。
图3中,由于堆栈保护区有一个内存bit位6从0值变为了1值,因此,本系统在循环监控到堆栈保护区的这个字节时,外部输出电平产生了一个高电平,这个高电平在二极管阵列16的作用下,在输出的保护信号18中产生了一个向上的边沿跳变,这个跳变用于告诉系统此时软件在堆栈区的行为产生了异常,整个过程如图2所示。
进一步地,由于本系统可以监控整个堆栈保护区的值中所有内存bit位6从0变1的状态,因此在开始大面积监控动作之前,本实施方式需要将堆栈保护区中的所有值设置为0值,通过使用硬件方法进行清0操作可以使系统完全摆脱软件本身的影响,使堆栈监控安全等级更高;也可以使用软件进行清0操作,只要先确保监控电路扫描完一遍堆栈保护区而没有输出保护信号18即可,扫描等待时间计算公式为:
Figure BDA0002802749660000071
其中,Twait为扫描等待时间(监控耗时),AddrE为堆栈保护区结束地址,AddrS为堆栈保护区开始地址,AddrStep为地址步长,Pclock为监控时钟的周期;若本系统没有保护信号18发出,则说明软件清0操作没有问题,之后即可进行正常监控。
本发明还涉及一种软件堆栈区域非法篡改监控方法,包括:
步骤(1):在地址参数存储器中输入堆栈保护区开始地址AddrS7和堆栈保护区结束地址AddrE8,并设置地址步长10和监控时钟9周期;
步骤(2):根据所述监控时钟9周期、地址步长10和前一次访问地址记录,得到当前目标访问地址;
所述步骤(2)具体为:所述监控时钟9跳动一个周期,则地址加法器11将所述访问地址存储器14增加一个地址步长10,得到当前目标访问地址,并将所述当前目标访问地址保存在目标地址存储器12中。
步骤(3):根据所述当前目标访问地址、堆栈保护区开始地址AddrS7和堆栈保护区结束地址AddrE8,得到最终目标访问地址值;
所述步骤(3)具体为:通过所述地址比较器将所述当前目标访问地址与堆栈保护区结束地址AddrE8进行比较,若所述当前目标访问地址大于堆栈保护区结束地址AddrE8,则通知地址选择器13选择堆栈保护区开始地址AddrS7存入访问地址存储器14;若所述当前目标访问地址小于等于堆栈保护区结束地址AddrE8,则地址选择器13将所述当前目标访问地址存入访问地址存储器14。
步骤(4):所述数据总线2根据所述监控时钟9周期和访问地址存储器14中的最终目标访问地址值,在随机存储器中来回循环从堆栈保护区开始地址值AddrS 7到堆栈保护区结束地址值AddrE8之间所有堆栈保护区的值,并把每个循环到的堆栈保护区的值发送至硬件电平输出控制位5;
步骤(5):所述硬件电平输出控制位5将所述堆栈保护区的值通过输出映射器3,来控制对应输出电路的电平;
步骤(6):重复执行所述步骤(2)至步骤(5)。
所述步骤(2)至步骤(5)的监控耗时的公式为:
Figure BDA0002802749660000081
其中,Twait为监控耗时,AddrE为堆栈保护区结束地址,AddrS为堆栈保护区开始地址,AddrStep为地址步长,Pclock为监控时钟的周期。
如图7所示,为本发明实施方式的整体构思示意图,先在硬件外部定义并输入堆栈保护区开始地址AddrS7、堆栈保护区结束地址AddrE8、地址步长10以及监控时钟9,本系统就可以从堆栈保护区开始地址AddrS7到堆栈保护区结束地址AddrE8以每时钟节拍跳跃一个地址步长的速度对整个堆栈保护区的随机存储器值进行监控。此例假设堆栈保护区开始地址AddrS=0x0000f100,堆栈保护区结束地址AddrE=0x0000f200(实际堆栈保护区长度为256字节),地址步长10为1字节,监控时钟9为25MHz,则对堆栈保护区进行一次完整的监控耗时为:
Figure BDA0002802749660000082
换言之,当软件发生堆栈溢出这样的严重问题时,最多使用10.24us的时间就能发现这个故障。
根据监控耗时的公式可以看出,本实施方式的识别时间与监控时钟9周期成正比,与地址步长10成反比,与堆栈保护区的面积成正比,因此,若想获得更快的监控识别时间,可以通过减小堆栈保护区、减小监控时钟9周期、增加地址步长10(需要增加更多的二极管阵列16、硬件电平输出控制位5、输出映射器3)来实现。
由此可见,本发明提供的软件堆栈区域非法篡改监控系统及方法将堆栈监控从软件功能中独立出来,软件和硬件监控功能完全是独立运行的,避免了因软件本身无法正常工作导致的堆栈区检测功能失效,使整个系统达到了极高的安全性和可靠性。

Claims (10)

1.一种软件堆栈区域非法篡改监控系统,其特征在于,包括:用于监控软件异常行为的堆栈保护区装置,所述堆栈保护区装置通过数据总线(2)与数据总线访问地址更新装置连接,所述数据总线访问地址更新装置与数据访问地址循环装置连接,所述数据访问地址循环装置通过数据总线(2)与输出映射装置连接;
所述数据总线访问地址更新装置用于根据地址步长(10)和前一次访问地址记录,得到当前目标访问地址;
所述数据访问地址循环装置根据所述当前目标访问地址、堆栈保护区开始地址AddrS(7)和堆栈保护区结束地址AddrE(8),得到最终目标访问地址;
所述堆栈保护区装置将所述最终目标访问地址在堆栈保护区开始地址AddrS(7)与堆栈保护区结束地址AddrE(8)之间来回循环;
所述输出映射装置用于将数据总线(2)读出的值通过输出映射器(3)映射至电平中,具体为:在运行之前,所述堆栈保护区装置中的所有值设置为0,所述输出映射装置将数据总线(2)将读出的0变1的状态通过输出映射器(3)映射至电平中。
2.根据权利要求1所述的软件堆栈区域非法篡改监控系统,其特征在于,所述数据总线访问地址更新装置根据所述地址步长(10)和前一次访问地址记录,通过地址加法器(11)得到当前目标访问地址,并将所述当前目标访问地址保存在目标地址存储器(12)中。
3.根据权利要求1所述的软件堆栈区域非法篡改监控系统,其特征在于,所述数据访问地址循环装置通过地址比较器将所述当前目标访问地址和堆栈保护区结束地址AddrE(8)进行比较,若所述当前目标访问地址大于堆栈保护区结束地址AddrE(8),则通知地址选择器(13)选择堆栈保护区开始地址AddrS(7)存入访问地址存储器(14);若所述当前目标访问地址小于等于堆栈保护区结束地址AddrE(8),则所述地址选择器(13)将所述当前目标访问地址存入访问地址存储器(14)。
4.根据权利要求1所述的软件堆栈区域非法篡改监控系统,其特征在于,所述输出映射装置与并联正向二极管电路装置连接,所述并联正向二极管电路装置用于将每个电平对应的硬件电平信号(4)通过二极管阵列(16)输出至保护信号(18)。
5.根据权利要求1所述的软件堆栈区域非法篡改监控系统,其特征在于,所述电平的数目为8的倍数。
6.一种软件堆栈区域非法篡改监控方法,其特征在于,包括:
步骤(1):在地址参数存储器中输入堆栈保护区开始地址AddrS(7)和堆栈保护区结束地址AddrE(8),并设置地址步长(10)和监控时钟(9)周期;在运行之前,将堆栈保护区开始地址AddrS(7)至堆栈保护区结束地址AddrE(8)的所有值设置为0;
步骤(2):根据所述监控时钟(9)周期、地址步长(10)和前一次访问地址记录,得到当前目标访问地址;
步骤(3):根据所述当前目标访问地址、堆栈保护区开始地址AddrS(7)和堆栈保护区结束地址AddrE(8),得到最终目标访问地址;
步骤(4):数据总线(2)根据所述监控时钟(9)周期和所述最终目标访问地址,在随机存储器中来回循环从堆栈保护区开始地址值AddrS(7)到堆栈保护区结束地址值AddrE(8)之间所有堆栈保护区的值,并把每个循环到的堆栈保护区的值发送至硬件电平输出控制位(5);其中,每个循环到的堆栈保护区的值为0变1的值;
步骤(5):所述硬件电平输出控制位(5)将每个所述堆栈保护区的值通过输出映射器(3),来控制对应输出电路的电平;
步骤(6):重复执行所述步骤(2)至步骤(5)。
7.根据权利要求6所述的软件堆栈区域非法篡改监控方法,其特征在于,所述步骤(2)具体为:所述监控时钟(9)跳动一个周期,则地址加法器(11)将所述访问地址存储器(14)增加一个地址步长(10),得到当前目标访问地址,并将所述当前目标访问地址保存在目标地址存储器(12)中。
8.根据权利要求6所述的软件堆栈区域非法篡改监控方法,其特征在于,所述步骤(3)具体为:通过所述地址比较器将所述当前目标访问地址与堆栈保护区结束地址AddrE(8)进行比较,若所述当前目标访问地址大于堆栈保护区结束地址AddrE(8),则通知地址选择器(13)选择堆栈保护区开始地址AddrS(7)存入访问地址存储器(14);若所述当前目标访问地址小于等于堆栈保护区结束地址AddrE(8),则地址选择器(13)将所述当前目标访问地址存入访问地址存储器(14)。
9.根据权利要求6所述的软件堆栈区域非法篡改监控方法,其特征在于,所述步骤(2)至步骤(5)的监控耗时的公式为:
Figure FDA0003709568250000021
其中,Twait为监控耗时,AddrE为堆栈保护区结束地址,AddrS为堆栈保护区开始地址,AddrStep为地址步长,Pclock为监控时钟周期。
10.根据权利要求9所述的软件堆栈区域非法篡改监控方法,其特征在于,所述监控耗时Twait还包括:通过减小堆栈保护区、减小监控时钟(9)周期或增加地址步长(10)来减少监控耗时Twait
CN202011356623.4A 2020-11-27 2020-11-27 一种软件堆栈区域非法篡改监控系统及方法 Active CN112463536B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011356623.4A CN112463536B (zh) 2020-11-27 2020-11-27 一种软件堆栈区域非法篡改监控系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011356623.4A CN112463536B (zh) 2020-11-27 2020-11-27 一种软件堆栈区域非法篡改监控系统及方法

Publications (2)

Publication Number Publication Date
CN112463536A CN112463536A (zh) 2021-03-09
CN112463536B true CN112463536B (zh) 2022-08-05

Family

ID=74809005

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011356623.4A Active CN112463536B (zh) 2020-11-27 2020-11-27 一种软件堆栈区域非法篡改监控系统及方法

Country Status (1)

Country Link
CN (1) CN112463536B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1564098A (zh) * 2004-04-09 2005-01-12 南京大学 一种防止缓冲区溢出攻击的动态堆栈内存管理方法
CN102298677A (zh) * 2011-08-29 2011-12-28 瑞斯康达科技发展股份有限公司 一种堆栈溢出的保护方法和装置
CN102521079A (zh) * 2011-12-02 2012-06-27 华中科技大学 软件栈缓冲区溢出的容错方法
CN105468965A (zh) * 2014-08-21 2016-04-06 西安慧泽知识产权运营管理有限公司 一种动态堆栈内存管理方法
CN109214169A (zh) * 2017-06-30 2019-01-15 芜湖美的厨卫电器制造有限公司 堆栈溢出检测方法、装置及家用电器
CN109409082A (zh) * 2018-09-21 2019-03-01 中国科学院信息工程研究所 检测堆栈中返回地址被篡改的方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6996677B2 (en) * 2002-11-25 2006-02-07 Nortel Networks Limited Method and apparatus for protecting memory stacks
DE602005024514D1 (de) * 2005-03-31 2010-12-16 Texas Instruments Inc Verfahren und System zum Vereiteln und Neutralisieren von Pufferüberläufangriffen
FR2977694A1 (fr) * 2011-07-08 2013-01-11 St Microelectronics Rousset Microprocesseur protege contre un debordement de pile

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1564098A (zh) * 2004-04-09 2005-01-12 南京大学 一种防止缓冲区溢出攻击的动态堆栈内存管理方法
CN102298677A (zh) * 2011-08-29 2011-12-28 瑞斯康达科技发展股份有限公司 一种堆栈溢出的保护方法和装置
CN102521079A (zh) * 2011-12-02 2012-06-27 华中科技大学 软件栈缓冲区溢出的容错方法
CN105468965A (zh) * 2014-08-21 2016-04-06 西安慧泽知识产权运营管理有限公司 一种动态堆栈内存管理方法
CN109214169A (zh) * 2017-06-30 2019-01-15 芜湖美的厨卫电器制造有限公司 堆栈溢出检测方法、装置及家用电器
CN109409082A (zh) * 2018-09-21 2019-03-01 中国科学院信息工程研究所 检测堆栈中返回地址被篡改的方法及装置

Also Published As

Publication number Publication date
CN112463536A (zh) 2021-03-09

Similar Documents

Publication Publication Date Title
US7350007B2 (en) Time-interval-based system and method to determine if a device error rate equals or exceeds a threshold error rate
US7454631B1 (en) Method and apparatus for controlling power consumption in multiprocessor chip
US8543866B2 (en) Remote access diagnostic mechanism for communication devices
US6502206B1 (en) Multi-processor switch and main processor switching method
US10860714B2 (en) Technologies for cache side channel attack detection and mitigation
JP2014182561A (ja) 計算機システム、プロセス及びスレッドの監視方法
CN105404559B (zh) 在数据处理装置中进行除错
JP2019095893A (ja) 半導体装置
CN112199240B (zh) 一种节点故障时进行节点切换的方法及相关设备
CN112463536B (zh) 一种软件堆栈区域非法篡改监控系统及方法
US20160041860A1 (en) Microcomputer and microcomputer system
CN116627852B (zh) 堆栈溢出的检测方法、装置和计算设备
US5926777A (en) Method and apparatus for monitoring computer system service life parameters
JP4668556B2 (ja) タスク管理システム
CN111400136A (zh) 服务器专用的gpu故障保护装置、方法、设备及介质
US7603489B2 (en) Direct memory access controller including first and second transfer setting registers
US6026504A (en) Multiprocessor system and method for error tracking
KR100697988B1 (ko) 과도한 인터럽트로부터 시스템을 보호하는 장치 및 그 방법
US11669336B2 (en) Out-of-band custom baseboard management controller (BMC) firmware stack monitoring system and method
JP6049961B1 (ja) Cpu監視装置
CN115576734A (zh) 一种多核异构日志存储方法和系统
US11914703B2 (en) Method and data processing system for detecting a malicious component on an integrated circuit
US20090204844A1 (en) Error-tolerant processor system
CN116431377B (zh) 一种看门狗电路
CN115292124A (zh) 一种数据监测方法、装置、计算机设备及存储介质

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