CN112182580A - 一种基于处理器芯片的内存漏洞检测方法及电子装置 - Google Patents

一种基于处理器芯片的内存漏洞检测方法及电子装置 Download PDF

Info

Publication number
CN112182580A
CN112182580A CN202010987194.4A CN202010987194A CN112182580A CN 112182580 A CN112182580 A CN 112182580A CN 202010987194 A CN202010987194 A CN 202010987194A CN 112182580 A CN112182580 A CN 112182580A
Authority
CN
China
Prior art keywords
virtual address
access trap
memory
trap
access
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
CN202010987194.4A
Other languages
English (en)
Other versions
CN112182580B (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.)
Institute of Information Engineering of CAS
Original Assignee
Institute of Information Engineering of CAS
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 Institute of Information Engineering of CAS filed Critical Institute of Information Engineering of CAS
Publication of CN112182580A publication Critical patent/CN112182580A/zh
Application granted granted Critical
Publication of CN112182580B publication Critical patent/CN112182580B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security

Landscapes

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

Abstract

本发明提供一种基于处理器芯片的内存漏洞检测方法及电子装置,包括将一程序经中央处理器中解码单元译码,获取执行指令中的虚拟地址;计算所述虚拟地址的ID,若所述ID在内存管理单元的访存陷阱索引表内,则将所述虚拟地址发送至操作系统;根据操作系统的访存陷阱索引表内的ID与访存陷阱表的对应关系,获取相应访存陷阱表,其中内存管理单元的访存陷阱索引表与操作系统的访存陷阱索引表中的ID同步更新;若所述虚拟地址在相应访存陷阱表内,则判断该程序为恶意程序。本发明可以细粒度的保护内存安全,提高了恶意篡改行为的检测精度,通过提出了二次搜索策略,提升了程序的序性能。

Description

一种基于处理器芯片的内存漏洞检测方法及电子装置
技术领域
本发明属于计算机信息安全领域,涉及一种基于处理器芯片的内存漏洞检测方法及电子装置。
背景技术
对内存的恶意篡改,是构建诸如代码注入攻击,代码复用攻击,以及数据流劫持攻击等隐蔽攻击手段的前提条件。建立针对内存安全的检测机制,可以阻止此类具有图灵完整性的攻击方式。
目前,基于页表的权限检查机制,是部署最为广泛的一种保护内存安全的措施。该机制中,对访存地址的权限检查,发生在内存管理单元通过转址旁路缓存(TLB)进行虚实地址转译之时,对进行相关的页表项进行权限检查。基于页表的权限检查有两个缺点:其一:,基于页表的权限检查的粒度是页,对同一个物理页中的对象之间,无法做到细粒度的权限检查。其二,当其中某一页的权限变化时,内存管理单元中的整个TLB,需要全部刷新,这带来了极高的的性能损失,使得基于页表的权限检查机制无法在实际的应用中进行部署。
发明内容
鉴于现有技术中存在的问题,本发明提供了一种基于处理器芯片的内存漏洞检测方法及电子装置,其在程序地址空间中离散的设置访存陷阱,可以有效的侦测到恶意的攻击行为。
本发明的技术方案包括:
一种基于处理器芯片的内存漏洞检测方法,其步骤包括:
1)将一程序经中央处理器中解码单元译码,获取执行指令中的虚拟地址;
2)计算所述虚拟地址的ID,若所述ID在内存管理单元的访存陷阱索引表内,则将所述虚拟地址发送至操作系统;
3)根据操作系统的访存陷阱索引表内的ID与访存陷阱表的对应关系,获取相应访存陷阱表,其中内存管理单元的访存陷阱索引表与操作系统的访存陷阱索引表中的ID同步更新;
4)若所述虚拟地址在相应访存陷阱表内,则判断该程序为恶意程序。
进一步地,所述虚拟地址的ID包括:所述虚拟地址的哈希值。
进一步地,通过搜索算法,判断所述虚拟地址是否在相应访存陷阱表内。
进一步地,所述搜索算法包括:二叉树搜索算法。
进一步地,若该程序为恶意程序,则操作系统产生一个安全中断,执行程序自定义的处理安全中断的句柄。
进一步地,通过以下策略对操作系统的访存陷阱索引表及访存陷阱表进行更新:
1)获取待更新虚拟地址及该待更新虚拟地址的ID;
2)若该待更新虚拟地址的ID在操作系统的访存陷阱索引表中,则获取待更新的访存陷阱表,并对待更新的访存陷阱表进行访存陷阱的重排序;
3)若该待更新虚拟地址的ID不在操作系统的访存陷阱索引表中,则生成一新的访存陷阱表,并将待更新虚拟地址存入新的访存陷阱表中。
一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述所述的方法。
一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机以执行上述所述的方法。
和现有的技术相比,本发明的积极效果为:
1)本发明的方法,可以细粒度的保护内存安全,提高了恶意篡改行为的检测精度。
2)本发明中提出了二次搜索策略,提升了程序的序性能。
附图说明
图1是本发明的访存陷阱索引库图。
图2是本发明的访存陷阱触发机制的流程图。
图3是本发明的访存陷阱更新机制的流程图。
图4是本发明一实施例的普通用户程序的地址空间。
图5是本发明一实施例的基于访存陷阱保护的用户程序的地址空间。
具体实施方式
本发明完整的具体实施包含访存陷阱库,访存陷阱触发机制和访存陷阱更新机制三个部分。
当正常的程序,会严格遵循指令预先设定好的语义,对其内存空间中合法的地址范围进行的读写,如特定大小的缓存,数组等等;当存在恶意的内存篡改行为,则建立在对内存地址空间进行不特定的,越界的访问。如通过缓存或者数组的溢出,篡改返回地址等。因此,在程序的内存空间中,针对性的插入访存陷阱,可以有效的侦测到恶意的攻击行为。如在缓存的首尾设置访问陷阱,可以有效的检测缓存溢出攻击。
第1步:建立访存陷阱索引库
访存陷阱索引库由2张索引表和N张陷阱表构成。期中两张索引表的分别由内存管理单元和操作系统进行管理,两张索引表通过同步,保持内容的一致性。N张陷阱表由操作系统进行管理。
索引表中将每个陷阱表的哈希值存入表中,作为陷阱表的索引值。陷阱表用来访存指令中虚拟地址的值。任何一张陷阱表中的每个访存陷阱的虚拟地址值,都具有相同的哈希值。
第2步:访存陷阱触发机制
有内存管理单元对存放的逻辑地址(虚拟地址)进行哈希之后,用哈希值在其索引表中检索。命中时,由操作系统针对索引到的陷阱表进行搜索。不命中,继续执行内存管理单元的地址转化。
第3步:访存陷阱更新机制
在合法的用户过程中,需要快速的对陷阱表进行更新,更新模块可以由操作系统,用户程序,或者外围设备等完成。
在插入或者删除访存陷阱表之后,需要对该表进行二次排序。如二叉树排序等。
具体来说:
第一部分,如图1所示,为本发明的访存陷阱索引库。
访存陷阱索引库主要包含两类表,访存陷阱表(图1中称为陷阱表)和索引表。其中在操作系统的地址空间中存有N个访存陷阱表和一个或一个以上的索引表。在内存管理单元中,存有一个或一个以上的索引表。内存管理单元中的索引表和操作系统中的索引表同步。
其中:
1.访存陷阱表。每个访存陷阱表存放某一类具有相同属性的访存陷阱地址(即图1中的“虚拟地址”)。这些属性包括但是不限于哈希值属性等。比如M个具有相同哈希值的访存陷阱地址,会一起存放在第K张表中。
2.操作系统端的索引表,至少具有两个数据列,哈希值列和对应的陷阱表地址列。陷阱表地址列中,每一行代表着某一个访存陷阱表的地址。哈希值对应列中的每一行,对应的是访存陷阱表的某一个特有属性,如对应访存陷阱表的哈希值。
3.内存管理单元端的索引表。该索引表位于内存管理单元中,该表包含每个陷阱表中的哈希值。该表会实时地和操作系统端的索引表进行数据同步。
由于访存陷阱中存放的是内存空间的索引地址,因此,本发明可以允许编译器或者操作系统任意的指定访存陷阱的大小。
第二部分,如图2所示,访存陷阱触发机制。
访存陷阱的触发机制的输入是中央处理器中解码单元经过译码后,执行指令中的虚拟地址。内存管理单元(MMU)在虚拟地址映和物理地址映射的过程中,并行的对该虚拟地址进行哈希值的计算。
根据生成的哈希值,在内存管理单元的索引表中进行快速检索。如果不命中,说明没有触发访存陷阱,程序继续执行内存管理单元后续的地址转化工作,即图2中的将虚拟地址传给TLB(Translation Lookaside Buffer,即页表缓存,用于改进虚拟地址到物理地址转换速度)进行地址转化。如果命中,有两种可能性,触发访存陷阱和哈希值冲突导致的误报,因此内存管理单元将虚拟地址交由操作系统。
操作系统根据虚拟地址,在对应的访存陷阱表进行地址查找。搜索算法包括但不限于二叉树搜索算法。
如果没有命中,说明是仅仅是由于哈希值冲突导致的误报,程序继续返回内存管理单元执行后续的转化工作。
如果命中,程序由于恶意的操作,触发了访存陷阱,操作系统会产生一个安全中断,执行程序自定义的处理安全中断的句柄。
第三部分,如图3所示,访存陷阱更新机制。
更新的行为包括但是不限于访存陷阱的插入,访存陷阱的删除等。
在程序的执行过程中,须要动态的更新访存陷阱索引库,基于两方面的考虑:第一,安全性。静态的部署访存陷阱,容易使攻击者猜测出访存陷阱的位置,从而在攻击者绕过该访存陷阱。而动态的更新访存陷阱的位置,可以有效降低访存陷阱位置分布的确定性和预见性。即使攻击者猜测出某个访存陷阱的位置,该位置也会在一定时间窗口后,发生改变。因此使得攻击者无法持之以恒的利用该漏洞。第二,程序在执行过程中,其合法的地址空间范围会发生动态的改变,由于访存陷阱是紧耦合的内嵌在程序地址空间中,因此访存陷阱的也需要根据程序进行动态的更新。
访存陷阱的更新机制的输入是虚拟地址。操作系统通过哈希算法生成该虚拟地址的哈希值。通过生成的哈希值,操作系统在自己的索引表中,进行检索。
如果命中,更新对应的陷阱表,之后对该陷阱表进行重新排序。
如果没有命中,在索引表中插入上一个步骤中计算出的哈希值,同时生成对应的访存陷阱表。同步内存管理单元中的索引表。
下面为本发明的一具体实例:
如图4所示,攻击者通过缓存溢出技术,依次向下越界读取内存内容,直到读到敏感的数据,如用户密码,数字证书等等。
如图5所示,在缓存的尾部设置访存陷阱。攻击者通过缓存溢出技术非法读取内存时,将会不可避免的读到访存陷阱的位置,从而触发异常。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的原理和范围,本发明的保护范围应以权利要求书所述为准。

Claims (8)

1.一种基于处理器芯片的内存漏洞检测方法,其步骤包括:
1)将一程序经中央处理器中解码单元译码,获取执行指令中的虚拟地址;
2)计算所述虚拟地址的ID,若所述ID在内存管理单元的访存陷阱索引表内,则将所述虚拟地址发送至操作系统;
3)根据操作系统的访存陷阱索引表内的ID与访存陷阱表的对应关系,获取相应访存陷阱表,其中内存管理单元的访存陷阱索引表与操作系统的访存陷阱索引表中的ID同步更新;
4)若所述虚拟地址在相应访存陷阱表内,则判断该程序为恶意程序。
2.如权利要求1所述的方法,其特征在于,所述虚拟地址的ID包括:所述虚拟地址的哈希值。
3.如权利要求1所述的方法,其特征在于,通过搜索算法,判断所述虚拟地址是否在相应访存陷阱表内。
4.如权利要求3所述的方法,其特征在于,所述搜索算法包括:二叉树搜索算法。
5.如权利要求1所述的方法,其特征在于,若该程序为恶意程序,则操作系统产生一个安全中断,执行程序自定义的处理安全中断的句柄。
6.如权利要求1所述的方法,其特征在于,通过以下策略对操作系统的访存陷阱索引表及访存陷阱表进行更新:
1)获取待更新虚拟地址及该待更新虚拟地址的ID;
2)若该待更新虚拟地址的ID在操作系统的访存陷阱索引表中,则获取待更新的访存陷阱表,并对待更新的访存陷阱表进行访存陷阱的重排序;
3)若该待更新虚拟地址的ID不在操作系统的访存陷阱索引表中,则生成一新的访存陷阱表,并将待更新虚拟地址存入新的访存陷阱表中。
7.一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1-6中任一所述方法。
8.一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行如权利要求1-6中任一所述方法。
CN202010987194.4A 2019-09-19 2020-09-18 一种基于处理器芯片的内存漏洞检测方法及电子装置 Active CN112182580B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910886743 2019-09-19
CN2019108867436 2019-09-19

Publications (2)

Publication Number Publication Date
CN112182580A true CN112182580A (zh) 2021-01-05
CN112182580B CN112182580B (zh) 2024-04-09

Family

ID=73955211

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010987194.4A Active CN112182580B (zh) 2019-09-19 2020-09-18 一种基于处理器芯片的内存漏洞检测方法及电子装置

Country Status (1)

Country Link
CN (1) CN112182580B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2147529A1 (en) * 1994-06-22 1995-12-23 James Michael Magee Memory and apparatus for management of mapped and unmapped regions of memory in a microkernel data processing system
KR20000022522A (ko) * 1997-04-23 2000-04-25 마이클 에이치.모리스 포인터 저장기에 교차하는 가비지 수집 페이지 경계를 트랩하는장치 및 방법
US20060095895A1 (en) * 2004-08-26 2006-05-04 Hewlett-Packard Development Company, L.P. Method and apparatus for inserting code
US8515075B1 (en) * 2008-01-31 2013-08-20 Mcafee, Inc. Method of and system for malicious software detection using critical address space protection
CN104636256A (zh) * 2015-02-17 2015-05-20 中国农业银行股份有限公司 一种内存访问异常的检测方法及装置
US20180247069A1 (en) * 2015-08-18 2018-08-30 The Trustees of Columbia University in the City of New Yoirk Inhibiting memory disclosure attacks using destructive code reads
CN109840411A (zh) * 2018-02-27 2019-06-04 中国科学院计算技术研究所 一种应用的保护方法及系统
US20190243776A1 (en) * 2018-02-06 2019-08-08 Vmware, Inc. 32-bit address space containment to secure processes from speculative rogue cache loads

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2147529A1 (en) * 1994-06-22 1995-12-23 James Michael Magee Memory and apparatus for management of mapped and unmapped regions of memory in a microkernel data processing system
KR20000022522A (ko) * 1997-04-23 2000-04-25 마이클 에이치.모리스 포인터 저장기에 교차하는 가비지 수집 페이지 경계를 트랩하는장치 및 방법
US20060095895A1 (en) * 2004-08-26 2006-05-04 Hewlett-Packard Development Company, L.P. Method and apparatus for inserting code
US8515075B1 (en) * 2008-01-31 2013-08-20 Mcafee, Inc. Method of and system for malicious software detection using critical address space protection
CN104636256A (zh) * 2015-02-17 2015-05-20 中国农业银行股份有限公司 一种内存访问异常的检测方法及装置
US20180247069A1 (en) * 2015-08-18 2018-08-30 The Trustees of Columbia University in the City of New Yoirk Inhibiting memory disclosure attacks using destructive code reads
US20190243776A1 (en) * 2018-02-06 2019-08-08 Vmware, Inc. 32-bit address space containment to secure processes from speculative rogue cache loads
CN109840411A (zh) * 2018-02-27 2019-06-04 中国科学院计算技术研究所 一种应用的保护方法及系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
刘武, 杨路, 任萍, 舒航: "缓冲区溢出攻击的分析和一种防卫算法RAP", 计算机应用, no. 01, pages 4 - 6 *
邹丽霞;: "ARP协议漏洞攻击实现与防范", 内江科技, no. 11, pages 170 - 171 *
韩万军;王震宇;: "Windows平台下地址空间分布随机化技术研究及实现", 计算机应用与软件, no. 04, pages 117 - 120 *
马梦雨: "内存数据污染攻击和防御综述", 信息安全学报, vol. 02, no. 04, pages 82 - 98 *

Also Published As

Publication number Publication date
CN112182580B (zh) 2024-04-09

Similar Documents

Publication Publication Date Title
Lee et al. An {Off-Chip} attack on hardware enclaves via the memory bus
US8301433B2 (en) Software behavior modeling apparatus, software behavior monitoring apparatus, software behavior modeling method, and software behavior monitoring method
US11121853B2 (en) Techniques for preventing memory timing attacks
US9270698B2 (en) Filter for network intrusion and virus detection
US5696822A (en) Polymorphic virus detection module
US9141800B2 (en) Method and apparatus for detecting intrusions in a computer system
US9392005B2 (en) System and method for matching pattern
EP2891104B1 (en) Detecting a malware process
WO1998030957A2 (en) Polymorphic virus detection module
CN110018811B (zh) Cache数据处理方法以及Cache
CN111191243B (zh) 一种漏洞检测方法、装置和存储介质
US11354409B1 (en) Malware detection using locality sensitive hashing of API call sequences
EP3899774A1 (en) Integrity tree for memory integrity checking
CN112182580B (zh) 一种基于处理器芯片的内存漏洞检测方法及电子装置
CN115481397B (zh) 基于内存结构逆向分析的代码注入攻击取证检测方法与系统
CN115509960A (zh) 一种基于页表条目的shellcode注入检测方法
Xue et al. CTPP: A Fast and Stealth Algorithm for Searching Eviction Sets on Intel Processors
CN115964758A (zh) 一种基于TrustZone的内核数据完整性保护方法
US10990538B2 (en) Arithmetic processing device, information processing apparatus, and method for controlling arithmetic processing device
KR101052735B1 (ko) 메모리 조작유무를 감지하는 방법 및 이를 이용한 장치
Champagne et al. The reduced address space (ras) for application memory authentication
CN113051569A (zh) 一种病毒检测方法、装置、电子设备及存储介质
CN107688745B (zh) 处理、生成内核镜像的方法、内核初始化方法、装置和设备
US8397295B1 (en) Method and apparatus for detecting a rootkit
Lymn Verified Exec-Extending the Security Perimeter

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