CN112182580B - 一种基于处理器芯片的内存漏洞检测方法及电子装置 - Google Patents
一种基于处理器芯片的内存漏洞检测方法及电子装置 Download PDFInfo
- Publication number
- CN112182580B CN112182580B CN202010987194.4A CN202010987194A CN112182580B CN 112182580 B CN112182580 B CN 112182580B CN 202010987194 A CN202010987194 A CN 202010987194A CN 112182580 B CN112182580 B CN 112182580B
- Authority
- CN
- China
- Prior art keywords
- memory
- trap
- virtual address
- operating system
- index table
- 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
- 238000001514 detection method Methods 0.000 title claims abstract description 10
- 238000000034 method Methods 0.000 claims abstract description 11
- 238000012545 processing Methods 0.000 claims abstract description 5
- 238000004590 computer program Methods 0.000 claims description 7
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 230000001360 synchronised effect Effects 0.000 claims description 3
- 230000006399 behavior Effects 0.000 abstract description 6
- 238000013519 translation Methods 0.000 description 6
- 238000010845 search algorithm Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 2
- 239000000243 solution Substances 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing 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 (4)
1.一种基于处理器芯片的内存漏洞检测方法,其步骤包括:
1)建立访存陷阱索引库;其中,所述访存陷阱索引库包括:内存管理单元的索引表、操作系统的索引表和N个访存陷阱表,所述访存陷阱表存放某一类具有相同属性的访存陷阱地址,所述内存管理单元的索引表与所述操作系统的索引表分别存储所述访存陷阱表的哈希值,所述内存管理单元中的索引表与所述操作系统中的索引表同步;
2)将一程序经中央处理器中解码单元译码,获取执行指令中的虚拟地址;
3)对所述虚拟地址进行哈希之后,用哈希值在内存管理单元的索引表进行检索;
4)如果该哈希值在内存管理单元的索引表不命中,则进行所述虚拟地址的地址转化;如果该哈希值在内存管理单元的索引表命中,则操作系统基于所述操作系统的索引表和所述虚拟地址,在对应的访存陷阱表进行地址查找;
5)如果该虚拟地址在对应的访存陷阱表不命中,则进行所述虚拟地址的地址转化;如果该虚拟地址在对应的访存陷阱表命中,则操作系统产生一个安全中断,且执行程序自定义的处理所述安全中断的句柄。
2.如权利要求1所述的方法,其特征在于,通过以下策略对操作系统的访存陷阱索引表及访存陷阱表进行更新:
1)获取待更新虚拟地址及该待更新虚拟地址的哈希值;
2)若该待更新虚拟地址的哈希值在操作系统的访存陷阱索引表中,则获取待更新的访存陷阱表,并对待更新的访存陷阱表进行访存陷阱的重排序;
3)若该待更新虚拟地址的哈希值不在操作系统的访存陷阱索引表中,则生成一新的访存陷阱表,并将待更新虚拟地址存入新的访存陷阱表中。
3.一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1-2中任一所述方法。
4.一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行如权利要求1-2中任一所述方法。
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 CN112182580A (zh) | 2021-01-05 |
CN112182580B true 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 (5)
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 | 마이클 에이치.모리스 | 포인터 저장기에 교차하는 가비지 수집 페이지 경계를 트랩하는장치 및 방법 |
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 | 中国农业银行股份有限公司 | 一种内存访问异常的检测方法及装置 |
CN109840411A (zh) * | 2018-02-27 | 2019-06-04 | 中国科学院计算技术研究所 | 一种应用的保护方法及系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2417579A (en) * | 2004-08-26 | 2006-03-01 | Hewlett Packard Development Co | Method for dynamically inserting code into a process by enabling taken branch traps to intercept a branch during the execution of the process |
US11227056B2 (en) * | 2015-08-18 | 2022-01-18 | The Trustees Of Columbia University In The City Of New York | Inhibiting memory disclosure attacks using destructive code reads |
US10599835B2 (en) * | 2018-02-06 | 2020-03-24 | Vmware, Inc. | 32-bit address space containment to secure processes from speculative rogue cache loads |
-
2020
- 2020-09-18 CN CN202010987194.4A patent/CN112182580B/zh active Active
Patent Citations (5)
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 | 마이클 에이치.모리스 | 포인터 저장기에 교차하는 가비지 수집 페이지 경계를 트랩하는장치 및 방법 |
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 | 中国农业银行股份有限公司 | 一种内存访问异常的检测方法及装置 |
CN109840411A (zh) * | 2018-02-27 | 2019-06-04 | 中国科学院计算技术研究所 | 一种应用的保护方法及系统 |
Non-Patent Citations (4)
Title |
---|
ARP协议漏洞攻击实现与防范;邹丽霞;;内江科技(第11期);第170-171页 * |
Windows平台下地址空间分布随机化技术研究及实现;韩万军;王震宇;;计算机应用与软件(第04期);第117-120页 * |
内存数据污染攻击和防御综述;马梦雨;信息安全学报;第02卷(第04期);第82-98页 * |
缓冲区溢出攻击的分析和一种防卫算法RAP;刘武, 杨路, 任萍, 舒航;计算机应用(第01期);第4-6页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112182580A (zh) | 2021-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Lee et al. | An {Off-Chip} attack on hardware enclaves via the memory bus | |
Wang et al. | Leaky cauldron on the dark land: Understanding memory side-channel hazards in SGX | |
Briongos et al. | {RELOAD+ REFRESH}: Abusing Cache Replacement Policies to Perform Stealthy Cache Attacks | |
Gruss et al. | Prefetch side-channel attacks: Bypassing SMAP and kernel ASLR | |
US10268819B2 (en) | Techniques for enforcing control flow integrity using binary translation | |
CN108090346B (zh) | 一种基于数据流监控的代码复用攻击防御方法及系统 | |
US11121853B2 (en) | Techniques for preventing memory timing attacks | |
US8301433B2 (en) | Software behavior modeling apparatus, software behavior monitoring apparatus, software behavior modeling method, and software behavior monitoring method | |
US5696822A (en) | Polymorphic virus detection module | |
US8370931B1 (en) | Multi-behavior policy matching for malware detection | |
CN103842971B (zh) | 用于间接接口监视和垂线探测的系统和方法 | |
US9270698B2 (en) | Filter for network intrusion and virus detection | |
US8479174B2 (en) | Method, computer program and computer for analyzing an executable computer file | |
Mowery et al. | Are AES x86 cache timing attacks still feasible? | |
US20130227680A1 (en) | Automated protection against computer exploits | |
CN110018811B (zh) | Cache数据处理方法以及Cache | |
CN108920253B (zh) | 一种无代理的虚拟机监控系统和监控方法 | |
CN110851836B (zh) | 一种面向Meltdown攻击的主动防御方法 | |
CN112463288A (zh) | 基于插桩的行为监控方法及系统 | |
CN112182580B (zh) | 一种基于处理器芯片的内存漏洞检测方法及电子装置 | |
Xue et al. | CTPP: A Fast and Stealth Algorithm for Searching Eviction Sets on Intel Processors | |
CN112464231A (zh) | 基于虚拟机的威胁检测方法及系统 | |
CN115509960A (zh) | 一种基于页表条目的shellcode注入检测方法 | |
US10990538B2 (en) | Arithmetic processing device, information processing apparatus, and method for controlling arithmetic processing device | |
Champagne et al. | The reduced address space (ras) for application memory authentication |
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 |