CN107798241A - 攻击检测装置、系统及方法 - Google Patents

攻击检测装置、系统及方法 Download PDF

Info

Publication number
CN107798241A
CN107798241A CN201610806677.3A CN201610806677A CN107798241A CN 107798241 A CN107798241 A CN 107798241A CN 201610806677 A CN201610806677 A CN 201610806677A CN 107798241 A CN107798241 A CN 107798241A
Authority
CN
China
Prior art keywords
destination address
transfer instruction
processor
address
attack
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.)
Granted
Application number
CN201610806677.3A
Other languages
English (en)
Other versions
CN107798241B (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.)
Loongson Technology Corp Ltd
Original Assignee
Loongson Technology Corp 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 Loongson Technology Corp Ltd filed Critical Loongson Technology Corp Ltd
Priority to CN201610806677.3A priority Critical patent/CN107798241B/zh
Publication of CN107798241A publication Critical patent/CN107798241A/zh
Application granted granted Critical
Publication of CN107798241B publication Critical patent/CN107798241B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供一种攻击检测装置、系统及方法。其中,攻击检测装置包括:执行信息监测单元和安全检测单元;所述执行信息监测单元,用于获取与处理器运行的每条转移指令相对应的执行信息;其中,所述执行信息包括所述转移指令的目的地址;所述安全检测单元,用于在记录执行阶段获取安全目的地址集合,以及在检测执行阶段根据转移指令的目的地址和安全目的地址集合确定所述处理器是否被攻击。本发明提供的攻击检测装置,可以提升系统效率。

Description

攻击检测装置、系统及方法
技术领域
本发明涉及计算机安全技术领域,尤其涉及一种攻击检测装置、系统及方法。
背景技术
随着计算机技术的发展,计算机的安全问题越来越受到关注。计算机系统是复杂的软硬件系统,漏洞的存在几乎是不可避免的,攻击者往往会找到各种漏洞来进行攻击,造成计算机系统的脆弱性。其中,软件层面的攻击是目前最为主流的攻击类型,例如:基于内存错误导致的软件层面的攻击。所谓基于内存错误的攻击,是指攻击者利用内存错误漏洞,构造恶意输入,导致输入数据被处理时出现错误,将输入数据写入内存中的某些特定敏感位置,从而改变程序控制流,执行攻击代码,从而造成对计算机系统的攻击。
目前,针对基于内存错误的攻击,通常采用控制流完整性(Control FlowIntegrity,简称CFI)算法,具体的,给每个间接转移(间接调用和函数返回)的目标地址增加一个标识(identification,简称ID)号,在间接转移前进行ID号比对,即进行完整性校验,如果对比成功,则执行间接转移指令,如果比对不成功,则进行错误报警。其中,ID号的生成主要通过静态分析工具分析程序控制流程图来生成。可见,CFI算法在软件层面上通过在程序执行时动态检查间接转移地址的合法性从而确定计算机是否被攻击。
但是,CFI算法需要给每个间接转移的目标地址增加标识号,对程序运行造成了较大的干扰和性能损失,使得系统效率较低。
发明内容
本发明提供一种攻击检测装置、系统及方法,可以提升系统效率。
本发明提供的攻击检测装置,用于检测计算机系统是否受到基于内存错误而导致的改变程序控制流的攻击,攻击检测装置包括:执行信息监测单元和安全检测单元;
所述执行信息监测单元,用于获取与处理器运行的每条转移指令相对应的执行信息;其中,所述执行信息包括所述转移指令的目的地址;
所述安全检测单元,用于在记录执行阶段获取安全目的地址集合,以及在检测执行阶段根据转移指令的目的地址和所述安全目的地址集合确定所述处理器是否被攻击。
本发明提供的攻击检测系统,用于检测计算机系统是否受到基于内存错误而导致的改变程序控制流的攻击,攻击检测系统包括:处理器以及如本发明任一实施例提供的攻击检测装置。
本发明提供的攻击检测方法,用于检测计算机系统是否受到基于内存错误而导致的改变程序控制流的攻击,攻击检测方法包括:
获取与处理器运行的每条转移指令相对应的执行信息;其中,所述执行信息包括所述转移指令的目的地址;
在记录执行阶段获取安全目的地址集合,以及在检测执行阶段根据转移指令的目的地址和安全目的地址集合确定所述处理器是否被攻击。
本发明提供一种攻击检测装置、系统及方法,其中,攻击检测装置用于检测计算机系统是否受到基于内存错误而导致的改变程序控制流的攻击,包括执行信息监测单元和安全检测单元。本发明提供的攻击检测装置,通过执行信息监测单元对处理器运行的转移指令的目的地址进行获取,通过安全检测单元对转移指令的目的地址进行分析,从而确定处理器是否受到攻击。由于不会干扰软件程序的执行,同时没有增加系统负荷,因此提高了系统效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一提供的攻击检测装置的结构示意图;
图2为本发明实施例二提供的攻击检测装置的结构示意图;
图3为本发明实施例二提供的攻击检测装置中缓存部件的数据格式示意图;
图4为本发明实施例一提供的攻击检测系统的结构示意图;
图5为本发明实施例一提供的攻击检测方法的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明主要用于检测计算机系统是否受到基于内存错误而导致的改变程序控制流的攻击,例如:缓冲区溢出攻击、返回到系统库函数的攻击(Return-to-libc,也称为Ret2libc)、返回导向编程的攻击(Return Oriented Programming,简称POP),等等。
其中,缓冲区溢出攻击是指,由于缓冲区溢出而使得有用的存储单元被改写的攻击方式。程序在运行过程中,一般都要分配一些内存空间用于临时存取数据,这些空间称为缓冲区。如果向缓冲区中写入超过其本身长度的数据,缓冲区将无法容纳,就会造成缓冲区以外的存储单元被改写,这种现象就称为缓冲区溢出。缓冲区的长度一般与用户自己定义的缓冲变量的类型有关。
Ret2libc攻击的基本思想为:攻击者设定的函数返回地址并不直接指向恶意代码,而是指向一个已存在的系统函数的入口地址。由于系统函数所在的页面权限是可执行的,这样就不会触发数据执行保护(Data Execution Prevention,简称DEP)异常。例如,在Unix系统下,libc是一个共享的C动态执行库,里面有许多非常有用的函数,例如system函数,system函数可通过运行环境来执行其它程序,例如启动Shell等等,那么,攻击者就可以通过构造相应堆栈结构来执行Shell,实现攻击。
ROP攻击的基本思想为:在整个进程空间内现存的函数中寻找适合指令片断(也称为gadget),通过设计返回堆栈把各个gadget拼接起来,从而进行恶意攻击。
基于内存错误的攻击可以看作是系统层面的攻击,它会导致整个计算机系统被攻击者控制,危害很大。基于内存错误的攻击导致了程序控制流发生改变,改变程序控制流,通常都需要精心构造堆栈结构,最后通过转移指令跳转到攻击代码上。因此,可以通过监控跳转指令的目标地址来达到安全性检查的目标。本发明提供的攻击检测装置及方法,通过监控转移指令的目标地址从而检测计算机是否收到攻击,可以提升系统效率。
图1为本发明实施例一提供的攻击检测装置的结构示意图。如图1所示,本实施例提供的攻击检测装置,用于检测计算机系统是否受到基于内存错误而导致的改变程序控制流的攻击,可以包括:执行信息监测单元11和安全检测单元12。
执行信息监测单元11,用于获取与处理器运行的每条转移指令相对应的执行信息。其中,执行信息包括转移指令的目的地址。
安全检测单元12,用于在记录执行阶段获取安全目的地址集合,以及在检测执行阶段根据转移指令的目的地址和安全目的地址集合确定处理器是否被攻击。
其中,转移指令是指不按程序的语句流程执行的指令,包括:无条件转移指令、条件转移指令、循环指令、中断,等等。
其中,安全目的地址集合是指处理器运行的安全的转移指令,其目的地址组成的集合。
其中,记录执行阶段是指处理器不容易受到攻击运行稳定的阶段,检测执行阶段是指处理器容易受到攻击运行不稳定的阶段。
在本实施例中,处理器运行转移指令,执行信息监测单元11获取每条转移指令的执行信息,具体为每条转移指令的目的地址,安全检测单元12通过对转移指令的目的地址进行分析从而可以确定处理器是否受到攻击,具体的,在记录执行阶段,由于处理器不容易受到攻击,因此可以获取安全目的地址集合,在检测执行阶段,由于处理器容易受到攻击,因此根据每条转移指令的目的地址以及安全目的地址集合判断处理器是否收到攻击。
可见,本实施例提供的攻击检测装置,相比于现有技术,不需要给转移指令的目标地址增加标识号,仅仅对处理器运行的转移指令的执行信息进行监控获取,通过对转移指令的执行信息进行分析,就可以确定处理器是否受到攻击。相比于现有技术中增加额外信息实现攻击检测,本实施例提供的攻击检测装置,不会增加系统负荷以及干扰软件程序的执行,提高了系统效率。
需要说明的是,本实施例对于处理器的类型不做特别限制,例如:可以是个人计算机系统中的中央处理器(Central Processing Unit,简称CPU)或者微处理器,也可以是智能手持终端中的处理器,等等。
需要说明的是,在本实施例中,执行信息监测单元11可以通过电子电路实现,安全检测单元12可以通过电子电路或者软件实现,本实施例对于执行信息监测单元11和安全检测单元12的具体实现方式不做特别限制,只要实现相应功能即可。
需要说明的是,本实施例中的执行信息监测单元11和安全检测单元12,可以集成在处理器中,也可以位于处理器外部,本实施例对此不加以限制。例如:执行信息监测单元11集成在处理器中,安全检测单元12位于处理器外部。
本实施例提供了一种攻击检测装置,包括:执行信息监测单元和安全检测单元。本实施例提供的攻击检测装置,执行信息监测单元获取处理器运行的转移指令的执行信息,安全检测单元在记录执行阶段获取安全目的地址集合,在检测执行阶段根据转移指令的目的地址和安全目的地址集合确定处理器是否被攻击。本实施例提供的攻击检测装置,通过对转移指令的目的地址进行分析,从而确定处理器是否受到攻击。由于不会干扰软件程序的执行,没有增加系统负荷,因此提高了系统效率。
图2为本发明实施例二提供的攻击检测装置的结构示意图,本实施例在实施例一的基础上,提供了攻击检测装置的另一种实现结构。如图2所示,本实施例提供的攻击检测装置,可以包括:执行信息监测单元11和安全检测单元12。
其中,执行信息监测单元11可以包括:获取模块111、信息缓存模块112、输出模块113和缓存部件114。
获取模块111,用于监控处理器,并获取处理器运行的每条转移指令的目的地址。
信息缓存模块112,用于将每条转移指令的目的地址存储至缓存部件114中。
输出模块113,用于按照执行信息监测单元11与安全检测单元12之间的预设接口协议从缓存部件114中读取预设存储大小的目的地址,将预设存储大小的目的地址发送至安全检测单元12。
其中,安全检测单元12可以包括:接收模块121、信息处理模块122、检测模块123和存储器124。
接收模块121,用于按照执行信息监测单元11与安全检测单元12之间的预设接口协议接收执行信息监测单元11发送的预设存储大小的目的地址,将预设存储大小的目的地址中的每个目的地址输出至信息处理模块122。
信息处理模块122,用于确定当前时刻对应的信息处理阶段。若当前时刻对应的信息处理阶段为记录执行阶段,则用于将接收模块121输出的目的地址存储至存储器124中,所述存储器124中存储的所有目的地址构成安全目的地址集合。若当前时刻对应的信息处理阶段为检测执行阶段,则用于将接收模块121输出的目的地址输出至检测模块123。
检测模块123,用于在当前时刻对应的信息处理阶段为检测执行阶段时,根据信息处理模块122输出的目的地址以及安全目的地址集合确定处理器是否被攻击。
具体的,处理器运行转移指令,获取模块111监控处理器,获取每条转移指令的目的地址,信息缓存模块112将转移指令的目的地址存储在缓存部件114中,输出模块113从缓存部件114中读取预设存储大小的目的地址,并将预设存储大小的目的地址发送至接收模块121。接收模块121接收输出模块113发送的预设存储大小的目的地址,信息处理模块122根据当前时刻对应的信息处理阶段是记录执行阶段还是检测执行阶段,相应的对转移指令的目的地址进行存储或者进行攻击检测。
其中,执行信息监测单元11和安全检测单元12之间遵循相同的预设接口协议,接口协议中定义有接口总线的宽度。由于转移指令的目的地址具有一定的二进制存储位数,转移指令的目的地址的存储位数与预设接口协议定义的接口总线的宽度可能不一致,因此,在获取模块111获取到转移指令的目的地址之后,信息缓存模块112先将转移指令的目的地址进行缓存,之后,输出模块113按照预设接口协议定义的接口总线的宽度读取预设存储大小的目的地址,将预设存储大小的目的地址发送至安全检测单元12。安全检测单元12中的接收模块121按照预设接口协议从执行信息监测单元11接收预设存储大小的目的地址。
例如:转移指令的目的地址为16位二进制数,而接口总线的宽度为32位,则执行信息监测单元11和安全检测单元12之间遵循的预设接口协议一次可以传输32位/16位=2个目的地址。
需要说明的是,本实施例对于缓存部件114的数据存储格式不做特别限制,根据需要进行设置。
可选的,作为一种具体的实现方式,图3为本发明实施例二提供的攻击检测装置中缓存部件114的数据格式示意图,如图3所示,转移指令的执行信息包括转移指令的目的地址,在缓存部件114中,以64位进行转移指令的目的地址的存储。
需要说明的是,本实施例对于执行信息监测单元11与安全检测单元12之间的预设接口协议不做特别限制,根据需要进行设置。例如:可以采用现有的并行接口协议、也可以采用现有的串行接口协议、或者是自定义的新的接口协议。其中,接口协议定义的接口总线的宽度根据需要进行设置,例如:接口总线的宽度可以为8位、16位、32位、64位,等等。
可选的,检测模块123具体用于:
若当前时刻处于预设的记录执行阶段对应的时间段中,则确定当前时刻对应的信息处理阶段为记录执行阶段。
若当前时刻处于预设的检测执行阶段对应的时间段中,则确定当前时刻对应的信息处理阶段为检测执行阶段。
需要说明的是,本实施例对于记录执行阶段以及检测执行阶段的设置不做特别限制,根据需要进行设置。例如:根据程序的运行特性或者运行环境特征,将程序运行时不容易被修改的阶段设置为记录执行阶段,将程序运行时容易修改的阶段设置为检测执行阶段。又例如:根据程序运行的环境特性,将稳定的熟悉的运行环境设置为记录执行阶段,将不稳定的陌生的运行环境设置为检测执行阶段。
需要说明的是,本实施例对于缓存部件114和存储器124的类型不加以限制,可以是现有的任意一种存储设备,例如:动态随机存取存储器(Dynamic Random AccessMemory,简称DRAM)、静态随机存取存储器(Static Random Access Memory,简称SRAM)、硬盘,等等。
可选的,信息缓存模块112具体用于:
判断当前时刻处理器是否提交转移指令。
若是,则将当前时刻获取模块111获取到的转移指令的目的地址存储至缓存部件114中。
若否,则对当前时刻获取模块111获取到的转移指令的目的地址不进行存储。
具体的,若当前时刻处理器提交了转移指令,说明当前时刻获取模块111获取到的目的地址是有效的,则对该条目的地址进行存储,若当前时刻处理器没有提交转移指令,说明当前时刻获取模块111获取到的目的地址是无效的,则不需要对该条目的地址进行存储。
可选的,信息处理模块122具体用于:
若当前时刻对应的信息处理阶段为记录执行阶段,则判断接收模块121输出的目的地址是否已经存储于存储器124中。
若否,则将目的地址存储至存储器124中。
若否,则对目的地址不进行存储。
具体的,信息处理模块122在记录执行阶段对接收模块121输出的目的地址进行存储时,需要首先判断存储器124中是否已经存储有该目的地址。只有当存储器124中没有存储过该目的地址时,才需要对该目的地址进行存储,如果存储器124中已经存储过该目的地址,则对该目的地址不进行存储,以避免重复存储。
可选的,检测模块123具体用于:
在当前时刻对应的信息处理阶段为检测执行阶段时,判断信息处理模块122输出的目的地址是否存储于安全目的地址集合中。
若否,则确定处理器受到攻击,进行报警。
具体的,信息处理模块122在检测执行阶段,将信息处理模块122输出的目的地址与存储器124中所有的目的地址进行比较,由于存储器124中存储的目的地址是安全的,如果存储器124中已经存储有该目的地址,说明与该目的地址相对应的转移指令是安全的,处理器没有受到攻击,如果存储器124中没有存储过该目的地址,说明与该目的地址相对应的转移指令是非安全的,处理器受到攻击,同时进行报警。
本实施例提供一种攻击检测装置,其中,执行信息监测单元包括获取模块、信息缓存模块、输出模块和缓存部件,安全检测单元包括接收模块、信息处理模块、检测模块和存储器。本实施例提供的攻击检测装置,执行信息监测单元获取转移指令的目的地址,安全检测单元在记录执行阶段对目的地址进行存储获取安全目的地址集合,在检测执行阶段通过将目的地址与存储器中存储的安全目的地址集合进行比对,从而确定处理器是否受到攻击。由于不会干扰软件程序的执行,没有增加系统负荷,因此提高了系统效率。
图4为本发明实施例一提供的攻击检测系统的结构示意图。如图4所示,本实施例提供的攻击检测系统,用于检测计算机系统是否受到基于内存错误而导致的改变程序控制流的攻击,可以包括:处理器21以及如图1~图3任一实施例提供的攻击检测装置22。
本实施例提供的攻击检测系统,包括图1~图3任一装置实施例提供的攻击检测装置,其技术原理和技术效果类似,此处不再赘述。
图5为本发明实施例一提供的攻击检测方法的流程图,本实施例提供的攻击检测方法,执行主体可以为图1~图3任一装置实施例提供的攻击检测装置。如图5所示,本实施例提供的攻击检测方法,用于检测计算机系统是否受到基于内存错误而导致的改变程序控制流的攻击,可以包括:
步骤101、获取与处理器运行的每条转移指令相对应的执行信息。
其中,执行信息包括转移指令的目的地址;
步骤102、在记录执行阶段获取安全目的地址集合,以及在检测执行阶段根据转移指令的目的地址和安全目的地址集合确定所述处理器是否被攻击。
可选的,获取与处理器运行的每条转移指令相对应的执行信息,可以包括:
监控处理器,获取处理器运行的每条转移指令的目的地址。
对每条转移指令的目的地址进行存储。
按照预设接口协议读取预设存储大小的目的地址。
可选的,对每条转移指令的目的地址进行存储,可以包括:
判断当前时刻处理器是否提交转移指令。
若是,则将当前时刻获取到的转移指令的目的地址进行存储。
可选的,在记录执行阶段获取安全目的地址集合,以及在检测执行阶段根据转移指令的目的地址和安全目的地址集合确定处理器是否被攻击,可以包括:
确定当前时刻对应的信息处理阶段。
若当前时刻对应的信息处理阶段为记录执行阶段,则对预设存储大小的目的地址中的每个目的地址进行存储。存储器中存储的所有目的地址构成安全目的地址集合。
若当前时刻对应的信息处理阶段为检测执行阶段,则根据预设存储大小的目的地址中的每个目的地址以及安全目的地址集合确定处理器是否被攻击。
可选的,对预设存储大小的目的地址中的每个目的地址进行存储,可以包括:
依次判断预设存储大小的目的地址中的每个目的地址是否进行过存储。
若否,则对目的地址进行存储。
可选的,根据预设存储大小的目的地址中的每个目的地址以及安全目的地址集合确定处理器是否被攻击,可以包括:
依次判断预设存储大小的目的地址中的每个目的地址是否存储于安全目的地址集合中。
若否,则确定处理器受到攻击,进行报警。
可选的,确定当前时刻对应的信息处理阶段,可以包括:
若当前时刻处于预设的记录执行阶段对应的时间段中,则确定当前时刻对应的信息处理阶段为记录执行阶段。
若当前时刻处于预设的检测执行阶段对应的时间段中,则确定当前时刻对应的信息处理阶段为检测执行阶段。
本实施例提供的攻击检测方法,为图1~图3任一装置实施例中攻击检测装置执行的操作,其技术原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (11)

1.一种攻击检测装置,其特征在于,用于检测计算机系统是否受到基于内存错误而导致的改变程序控制流的攻击,所述装置包括:执行信息监测单元和安全检测单元;
所述执行信息监测单元,用于获取与处理器运行的每条转移指令相对应的执行信息;其中,所述执行信息包括所述转移指令的目的地址;
所述安全检测单元,用于在记录执行阶段获取安全目的地址集合,以及在检测执行阶段根据转移指令的目的地址和所述安全目的地址集合确定所述处理器是否被攻击。
2.根据权利要求1所述的装置,其特征在于,所述执行信息监测单元包括:获取模块、信息缓存模块、输出模块和缓存部件;
所述获取模块,用于监控所述处理器,并获取所述处理器运行的每条转移指令的目的地址;
所述信息缓存模块,用于将每条转移指令的目的地址存储至所述缓存部件中;
所述输出模块,用于按照所述执行信息监测单元与所述安全检测单元之间的预设接口协议从所述缓存部件中读取预设存储大小的目的地址,将所述预设存储大小的目的地址发送至所述安全检测单元。
3.根据权利要求2所述的装置,其特征在于,所述信息缓存模块具体用于:
判断当前时刻所述处理器是否提交转移指令;
若是,则将当前时刻所述获取模块获取到的转移指令的目的地址存储至所述缓存部件中。
4.根据权利要求1所述的装置,其特征在于,所述安全检测单元包括:接收模块、信息处理模块、检测模块和存储器;
所述接收模块,用于按照所述执行信息监测单元与所述安全检测单元之间的预设接口协议接收所述执行信息监测单元发送的预设存储大小的目的地址,将所述预设存储大小的目的地址中的每个目的地址依次输出至所述信息处理模块;
所述信息处理模块,用于确定当前时刻对应的信息处理阶段;若当前时刻对应的信息处理阶段为记录执行阶段,则用于将所述接收模块输出的目的地址存储至所述存储器中,所述存储器中存储的所有目的地址构成所述安全目的地址集合;若当前时刻对应的信息处理阶段为检测执行阶段,则用于将所述接收模块输出的目的地址输出至所述检测模块;
所述检测模块,用于在当前时刻对应的信息处理阶段为所述检测执行阶段时,根据所述信息处理模块输出的目的地址以及所述安全目的地址集合确定所述处理器是否被攻击。
5.根据权利要求4所述的装置,其特征在于,
所述信息处理模块具体用于:
若当前时刻对应的信息处理阶段为所述记录执行阶段,则判断所述接收模块输出的目的地址是否已经存储于所述存储器中;若否,则将目的地址存储至所述存储器中;
所述检测模块具体用于:
在当前时刻对应的信息处理阶段为所述检测执行阶段时,判断所述信息处理模块输出的目的地址是否存储于所述安全目的地址集合中;若否,则确定所述处理器受到攻击,进行报警。
6.一种攻击检测系统,其特征在于,用于检测计算机系统是否受到基于内存错误而导致的改变程序控制流的攻击,所述攻击检测系统包括:处理器以及如权利要求1至5任一项所述的攻击检测装置。
7.一种攻击检测方法,其特征在于,用于检测计算机系统是否受到基于内存错误而导致的改变程序控制流的攻击,所述方法包括:
获取与处理器运行的每条转移指令相对应的执行信息;其中,所述执行信息包括所述转移指令的目的地址;
在记录执行阶段获取安全目的地址集合,以及在检测执行阶段根据转移指令的目的地址和所述安全目的地址集合确定所述处理器是否被攻击。
8.根据权利要求7所述的方法,其特征在于,所述获取与处理器运行的每条转移指令相对应的执行信息,包括:
监控所述处理器,获取所述处理器运行的每条转移指令的目的地址;
对每条转移指令的目的地址进行存储;
按照预设接口协议读取预设存储大小的目的地址。
9.根据权利要求8所述的方法,其特征在于,所述对每条转移指令的目的地址进行存储,包括:
判断当前时刻所述处理器是否提交转移指令;
若是,则将当前时刻获取到的转移指令的目的地址进行存储。
10.根据权利要求7所述的方法,其特征在于,所述在记录执行阶段获取安全目的地址集合,以及在检测执行阶段根据转移指令的目的地址和所述安全目的地址集合确定所述处理器是否被攻击,包括:
确定当前时刻对应的信息处理阶段;
若当前时刻对应的信息处理阶段为记录执行阶段,则对预设存储大小的目的地址中的每个目的地址进行存储;所述存储器中存储的所有目的地址构成所述安全目的地址集合;
若当前时刻对应的信息处理阶段为检测执行阶段,则根据所述预设存储大小的目的地址中的每个目的地址以及所述安全目的地址集合确定所述处理器是否被攻击。
11.根据权利要求10所述的方法,其特征在于,
所述对预设存储大小的目的地址中的每个目的地址进行存储,包括:
依次判断所述预设存储大小的目的地址中的每个目的地址是否进行过存储;若否,则对目的地址进行存储;
所述根据所述预设存储大小的目的地址中的每个目的地址以及所述安全目的地址集合确定所述处理器是否被攻击,包括:
依次判断所述预设存储大小的目的地址中的每个目的地址是否存储于所述安全目的地址集合中;若否,则确定所述处理器受到攻击,进行报警。
CN201610806677.3A 2016-09-07 2016-09-07 攻击检测装置、系统及方法 Active CN107798241B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610806677.3A CN107798241B (zh) 2016-09-07 2016-09-07 攻击检测装置、系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610806677.3A CN107798241B (zh) 2016-09-07 2016-09-07 攻击检测装置、系统及方法

Publications (2)

Publication Number Publication Date
CN107798241A true CN107798241A (zh) 2018-03-13
CN107798241B CN107798241B (zh) 2020-01-31

Family

ID=61530677

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610806677.3A Active CN107798241B (zh) 2016-09-07 2016-09-07 攻击检测装置、系统及方法

Country Status (1)

Country Link
CN (1) CN107798241B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108959936A (zh) * 2018-06-28 2018-12-07 中国人民解放军国防科技大学 一种基于路径分析的缓冲区溢出漏洞自动利用方法
CN110348211A (zh) * 2018-07-17 2019-10-18 清华大学 记录处理器输入输出操作的方法、装置、系统及介质
WO2021090096A1 (en) * 2019-11-08 2021-05-14 International Business Machines Corporation Enhancing memory safe programming using page frame tag mechanism

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006139502A (ja) * 2004-11-11 2006-06-01 Murata Mach Ltd 画像処理装置
CN101159732A (zh) * 2007-08-14 2008-04-09 电子科技大学 基于数据流分析的恶意攻击检测方法
CN101154259A (zh) * 2007-08-27 2008-04-02 电子科技大学 通用自动化脱壳引擎与方法
CN101470661B (zh) * 2007-12-28 2012-03-14 鸿富锦精密工业(深圳)有限公司 计算机程序除错系统及方法
CN101630269B (zh) * 2009-07-03 2012-08-29 中国人民解放军国防科学技术大学 基于块对目标代码扫描并替换敏感指令的方法
CN104504329A (zh) * 2014-12-30 2015-04-08 中国人民解放军装备学院 一种程序运行时处理器指令校验方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108959936A (zh) * 2018-06-28 2018-12-07 中国人民解放军国防科技大学 一种基于路径分析的缓冲区溢出漏洞自动利用方法
CN110348211A (zh) * 2018-07-17 2019-10-18 清华大学 记录处理器输入输出操作的方法、装置、系统及介质
CN110348211B (zh) * 2018-07-17 2020-10-16 清华大学 记录处理器输入输出操作的方法、装置、系统及介质
WO2021090096A1 (en) * 2019-11-08 2021-05-14 International Business Machines Corporation Enhancing memory safe programming using page frame tag mechanism
GB2603444A (en) * 2019-11-08 2022-08-03 Ibm Enhancing memory safe programming using page frame tag mechanism
GB2603444B (en) * 2019-11-08 2023-01-25 Ibm Enhancing memory safe programming using page frame tag mechanism

Also Published As

Publication number Publication date
CN107798241B (zh) 2020-01-31

Similar Documents

Publication Publication Date Title
US9432400B2 (en) Method and system for protecting against unknown malicious activities by detecting a heap spray attack on an electronic device
US11777705B2 (en) Techniques for preventing memory timing attacks
CN104685508B (zh) 数据处理装置和数据处理方法
US10007784B2 (en) Technologies for control flow exploit mitigation using processor trace
EP2805246B1 (en) Dynamic execution prevention to inhibit return-oriented programming
CN104081350B (zh) 使用动态编程语言的元数据的运行时优化方法和系统
CN109643346B (zh) 控制流完整性
CN107315961B (zh) 程序漏洞检测方法及装置、计算设备、存储介质
US8037529B1 (en) Buffer overflow vulnerability detection and patch generation system and method
US11004003B2 (en) Machine learning based exploit detection
US20090187396A1 (en) Software Behavior Modeling Apparatus, Software Behavior Monitoring Apparatus, Software Behavior Modeling Method, And Software Behavior Monitoring Method
US20160196427A1 (en) System and Method for Detecting Branch Oriented Programming Anomalies
US20190318081A1 (en) Injecting trap code in an execution path of a process executing a program to generate a trap address range to detect potential malicious code
CN107798241A (zh) 攻击检测装置、系统及方法
CN107330323B (zh) 一种基于Pin工具的ROP及其变种攻击的动态检测方法
WO2018063756A1 (en) System, apparatus and method for performing on-demand binary analysis for detecting code reuse attacks
CN107590385A (zh) 一种硬件辅助抗代码复用攻击防御系统及方法
CN107194246A (zh) 一种用于实现动态指令集随机化的cpu
US10496825B2 (en) In-memory attack prevention
US7774587B2 (en) Dynamic redundancy checker against fault injection
US11308393B2 (en) Cyber anomaly detection using an artificial neural network
US20070083770A1 (en) System and method for foiling code-injection attacks in a computing device
CN107220560A (zh) 一种基于数据缓存扩充的嵌入式系统数据完整性保护方法
US20180107823A1 (en) Programmable Hardware Security Counters
Deng et al. A Pattern‐Based Software Testing Framework for Exploitability Evaluation of Metadata Corruption Vulnerabilities

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
CP01 Change in the name or title of a patent holder

Address after: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing

Patentee after: Loongson Zhongke Technology Co.,Ltd.

Address before: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing

Patentee before: LOONGSON TECHNOLOGY Corp.,Ltd.

CP01 Change in the name or title of a patent holder