CN108052461A - 一种操作***的内存保护方法 - Google Patents
一种操作***的内存保护方法 Download PDFInfo
- Publication number
- CN108052461A CN108052461A CN201711484638.7A CN201711484638A CN108052461A CN 108052461 A CN108052461 A CN 108052461A CN 201711484638 A CN201711484638 A CN 201711484638A CN 108052461 A CN108052461 A CN 108052461A
- Authority
- CN
- China
- Prior art keywords
- application
- access rights
- memory
- operating system
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种操作***的内存保护方法,其属于内存管理领域的技术,为每一应用设置一第一级访问权限映射表,所述第一级访问权限映射表记录所述应用对其它所述应用的应用访问权限以及对所述操作***的***内核的内核访问权限;将所述操作***的内存空间划分为若干保护区域;对每一应用设置一第二级访问权限映射表,所述第二级访问权限映射表记录所述应用对不同的所述保护区域的内存访问权限。该技术方案的有益效果是:本发明将内存保护的区域从逻辑上进行归类划分,减少了***在内存保护上的开销;并通过硬件实现权限的设置和保护,有效减少CPU的负载率,提高了内存保护效率的同时又保证了***的实时性。
Description
技术领域
本发明涉及的是一种内存管理领域的技术,具体是一种操作***的内存保护方法。
背景技术
现有嵌入式操作***的内存管理机制能够让用户灵活动态的操纵内存,在便于使用的同时也带来了极大的安全隐患。
随着软件复杂度越来越高,软件规模越来越大,尤其是多核***里,内存使用随意性和复杂性都大大提高。导致***极为不稳定,甚至崩溃,导致设备无法正常工作。
现有的内存保护解决方案,一种是较为简单的机制是在对整块内存加以保护的同时还采用了内存记录日志***对内存使用情况进行了有效的跟踪记录。另一种是从应用层软件的角度对底层的内存区域进行保护,利用操作***中提供的以页面为单位的内存保护机制,应用层可以调用操作***的接口函数对某一个页面进行保护操作,当有操作访问到保护页区域,可认为该操作属于非法修改重要内存,实时操作***可以很快的发现并报告内存访问异常,便于及时的发现异常隐患。
现有的解决方案在一定程度上解决了ー些内存的隐患,降低了内存访问异常的风险,但还存在严重的不足。第一种内存保护机制只是对内存使用情况以及异常有很好的监督,但在防止内存访问异常的发生以及防止异常扩散上没有作用。第二种内存保护机制不足之处在于效率很低,通过上层操作***的接口修改底层内存的访问权限,会影响***的实时性;通过软件的方式对内存进行保护,会占用CPU使用率;以页面为单位进行保护,当需要保护区域容量较大时,操作***的负载率更大,会严重影响实时性。
发明内容
本发明针对现有技术存在的上述不足,提出一种操作***的内存保护方法。本发明将内存保护的区域从逻辑上进行归类划分,减少了***在内存保护上的开销;并通过硬件实现权限的设置和保护,有效减少CPU的负载率,提高了内存保护效率的同时又保证了***的实时性。
本发明是通过以下技术方案实现的:
本发明涉及一种操作***的内存保护方法,包括:
为每一应用设置一第一级访问权限映射表,所述第一级访问权限映射表记录所述应用对其它所述应用的应用访问权限以及对所述操作***的***内核的内核访问权限;
将所述操作***的内存空间划分为若干保护区域;
对每一应用设置一第二级访问权限映射表,所述第二级访问权限映射表记录所述应用对不同的所述保护区域的内存访问权限;
所述应用根据所述第一级访问权限映射表和所述第二级访问权限映射表访问其它所述应用、所述***内核以及所述内存空间中的不同的所述保护区域。
优选的,该操作***的内存保护方法,其中,所述保护区域包括:位于RAM内存空间内的栈区、位于PFlash内存空间中的代码段区、位于RAM内存空间内的数据段区以及位于ROM内存空间内的只读数据区。
优选的,该操作***的内存保护方法,其中,所述内存访问权限包括:第一访问权限和第二访问权限;
若一个所述应用具有所述第一访问权限,则在所述操作***中运行有任务或中断时,所述应用对所述栈区具有读写权限,对所述数据段区具有读写权限,对所述代码段区具有可执行权限,以及对所述只读数据区具有只读权限;
若一个应用具有所述第二访问权限,则在所述操作***中运行有任务或者中断时,所述应用对所述栈区具有只读权限,对所述数据段区具有只读权限,对所述代码段区具有可执行权限,以及对所述只读数据区具有只读权限。
优选的,该操作***的内存保护方法,其中,在所述操作***中运行有任务或者中断时,具有所述第二访问权限的所述应用对关联于自身的所述栈区具有读写权限,以及对关联于自身的所述数据段区具有读写权限。
优选的,该操作***的内存保护方法,其中,所述应用按预设规则划分为可信应用和不可信应用,所述可信应用具有所述第一访问权限,所述不可信应用具有所述第二访问权限。
优选的,该操作***的内存保护方法,其中,所述保护区域的映射地址通过预编译指令和连接脚本透传至所述第二级访问权限映射表。
优选的,该操作***的内存保护方法,其中,所述第一访问权限和所述第二访问权限均通过一内存保护单元设置。
上述技术方案的有益效果是:本发明将内存保护的区域从逻辑上进行归类划分,减少了***在内存保护上的开销;并通过硬件实现权限的设置和保护,有效减少CPU的负载率,提高了内存保护效率的同时又保证了***的实时性。
附图说明
图1为本发明的较佳的实施例中,应用划分示意图;
图2为本发明的较佳的实施例中,对外访问权限表示结构意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。
本实施例涉及一种操作***的内存保护方法,包括以下内容:
为每一应用设置一第一级访问权限映射表,第一级访问权限映射表记录应用对其它应用的应用访问权限以及对操作***的***内核的内核访问权限。
应用按预设规则划分为可信应用和不可信应用,可信应用具有第一访问权限,不可信应用具有第二访问权限。
较佳的实施例中,预设规则可为:将用于外设控制以及人机交互操作控制的应用划分为不可信应用,将其它应用划分为可信应用。
将应用按照运行时所属的内核以及对内存空间的访问权限划分为两类应用:可信应用和不可信应用。即按照第一访问权限和第二访问权限来划分可信应用和不可信应用。
不可信应用对***内核的内核访问权限和对其它应用的应用访问权限受到严格的限制,并与可信应用严格的隔离。
可信应用对其它应用的访问和对***内核的访问受限较低,可以根据需要来进行选择,从而可以进行灵活配置。
如图1,每一应用都被划入可信应用或不可信应用,可信应用实行若隔离,而不可信应用实行强隔离。
第一级访问权限表中记录了每一应用自身的对外访问权限,即应用访问权限以及对操作***的***内核的内核访问权限。
无论可信应用还是不可信应用,其对自身的访问不受限制。
将操作***的内存空间划分为若干保护区域。
每一应用在逻辑上,是空间隔离单位,但在实际运行层面上看,运行实体只有任务和中断。因此,从任务和中断的角度出发,将任务和中断涉及的不同内存空间划分为不同保护区域。对不同的保护区域进行权限控制。
保护区域包括:位于RAM内存空间内的栈区、位于PFlash内存空间中的代码段区、位于RAM内存空间内的数据段区以及位于ROM内存空间内的只读数据区。
栈区,即任务和中断各自的占空间,存放于内存空间的RAM中,可读可写。
代码段区,包括各个应用的应用代码和操作***的***内核代码,存放于PFlash中,可执行。
数据段区,包括各个应用的数据、中断的数据以及各个任务的数据,存放与RAM中,可读可写。
只读数据区,包括各个应用、中断以及各个任务的只读数据,存放于ROM中,可读。
在操作***中运行有任务或者中断时,具有第二访问权限的所述应用对关联于自身的栈区具有读写权限,以及对关联于自身的数据段区具有读写权限。
如图2所示,对每一应用设置一第二级访问权限映射表,第二级访问权限映射表记录应用对不同的保护区域的内存访问权限。
内存访问权限包括:第一访问权限和第二访问权限;
若一个应用具有第一访问权限,则在操作***中运行有任务或中断时,应用对栈区具有读写权限,对数据段区具有读写权限,对代码段区具有可执行权限,以及对只读数据区具有只读权限;
若一个应用具有第二访问权限,则在操作***中运行有任务或者中断时,应用对栈区具有只读权限,对数据段区具有只读权限,对代码段区具有可执行权限,以及对只读数据区具有只读权限。
可信应用具有第一访问权限,不可信应用具有第二访问权限。
不可信应用具有第二访问权限,不可信应用的访问权限小于可信应用的访问权限。
不可信应用对栈区具有只读权限。
不可信应用对数据段区具有只读权限。
不可信应用对代码段区具有可执行权限。
不可信应用对只读数据区具有只读权限。
可信应用具有:
对栈区具有读写权限;
对数据段区具有读写权限;
对代码段区具有可执行权限;以及
对只读数据区具有只读权限。
应用根据第一级访问权限映射表和第二级访问权限映射表访问其它应用、***内核以及内存空间中的不同的保护区域。
可信应用的对内存空间的第一访问权限以及不可信应用的对内存空间的第二访问权限通过一内存保护单元来设置。
内存保护单元与硬件平台具有高度的相关的特性,利用硬件中的内存保护单元(Memory Protection Unit,MPU)来设置可信应用的第一访问权限和不可信应用的第二访问权限。即设置可信应用对各个保护区域的访问权限,以及不可信应用对各个保护区域的访问权限。
通过该内存保护单元使得可信应用具有:对栈区具有读写权限,对数据段区具有读写权限,对代码段区具有可执行权限,以及对只读数据区具有只读权限。
通过该内存保护单元使得可信应用具有:对栈区具有只读权限,对数据段区具有只读权限,对代码段区具有可执行权限,以及对只读数据区具有只读权限。
保护区域的映射地址通过预编译指令和连接脚本透传至第二级访问权限映射表。
通过预编译指令和连接脚本,将需要进行保护的内存空间中的各个保护区域的地址透传。
以应用为单位,将同一应用的代码段映射到PFlash中的代码段区,将栈和数据段映射到RAM中的栈区和数据段区,只读数据映射到位于ROM中的只读数据区中。
本发明的操作***的内存保护方法,与现有技术相比:本发明将内存保护的区域从逻辑上进行归类划分,减少了***在内存保护上的开销;并通过硬件实现权限的设置和保护,有效减少CPU的负载率,提高了内存保护效率的同时又保证了***的实时性。
以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。
Claims (7)
1.一种操作***的内存保护方法,其特征在于,包括以下步骤:
为每一应用设置一第一级访问权限映射表,所述第一级访问权限映射表记录所述应用对其它所述应用的应用访问权限以及对所述操作***的***内核的内核访问权限;
将所述操作***的内存空间划分为若干保护区域;
对每一应用设置一第二级访问权限映射表,所述第二级访问权限映射表记录所述应用对不同的所述保护区域的内存访问权限;
所述应用根据所述第一级访问权限映射表和所述第二级访问权限映射表访问其它所述应用、所述***内核以及所述内存空间中的不同的所述保护区域。
2.根据权利要求1所述的操作***的内存保护方法,其特征是,
所述保护区域包括:位于RAM内存空间内的栈区、位于PFlash内存空间中的代码段区、位于RAM内存空间内的数据段区以及位于ROM内存空间内的只读数据区。
3.根据权利要求2所述的操作***的内存保护方法,其特征是,
所述内存访问权限包括:第一访问权限和第二访问权限;
若一个所述应用具有所述第一访问权限,则在所述操作***中运行有任务或中断时,所述应用对所述栈区具有读写权限,对所述数据段区具有读写权限,对所述代码段区具有可执行权限,以及对所述只读数据区具有只读权限;
若一个应用具有所述第二访问权限,则在所述操作***中运行有任务或者中断时,所述应用对所述栈区具有只读权限,对所述数据段区具有只读权限,对所述代码段区具有可执行权限,以及对所述只读数据区具有只读权限。
4.根据权利要求3所述的操作***的内存保护方法,其特征是,
在所述操作***中运行有任务或者中断时,具有所述第二访问权限的所述应用对关联于自身的所述栈区具有读写权限,以及对关联于自身的所述数据段区具有读写权限。
5.根据权利要求3所述的操作***的内存保护方法,其特征是,
所述应用按预设规则划分为可信应用和不可信应用,所述可信应用具有所述第一访问权限,所述不可信应用具有所述第二访问权限。
6.根据权利要求1所述的操作***的内存保护方法,其特征是,
所述保护区域的映射地址通过预编译指令和连接脚本透传至所述第二级访问权限映射表。
7.根据权利要求3所述的操作***的内存保护方法,其特征是,
所述第一访问权限和所述第二访问权限均通过一内存保护单元设置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711484638.7A CN108052461A (zh) | 2017-12-29 | 2017-12-29 | 一种操作***的内存保护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711484638.7A CN108052461A (zh) | 2017-12-29 | 2017-12-29 | 一种操作***的内存保护方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108052461A true CN108052461A (zh) | 2018-05-18 |
Family
ID=62129289
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711484638.7A Pending CN108052461A (zh) | 2017-12-29 | 2017-12-29 | 一种操作***的内存保护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108052461A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109743441A (zh) * | 2018-12-13 | 2019-05-10 | 北京小米移动软件有限公司 | 读写权限设置方法及装置 |
CN109947673A (zh) * | 2019-03-26 | 2019-06-28 | 北京经纬恒润科技有限公司 | 一种内存保护方法、保护装置及单片机 |
CN110929304A (zh) * | 2019-12-04 | 2020-03-27 | 四川虹微技术有限公司 | 一种基于risc-v的内存保护方法 |
CN113722247A (zh) * | 2021-08-06 | 2021-11-30 | 平头哥(上海)半导体技术有限公司 | 物理内存保护单元、物理内存权限控制方法和处理器 |
WO2022001514A1 (zh) * | 2020-06-30 | 2022-01-06 | 华为技术有限公司 | 内核和任务隔离的方法和装置 |
US11334501B2 (en) | 2020-01-28 | 2022-05-17 | Hewlett Packard Enterprise Development Lp | Access permissions for memory regions |
CN116795494A (zh) * | 2023-08-23 | 2023-09-22 | 北京紫光芯能科技有限公司 | 内存保护单元信息的处理方法、***以及可读介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103440176A (zh) * | 2013-09-13 | 2013-12-11 | 北京经纬恒润科技有限公司 | 一种实时操作***中内存的保护方法及装置 |
CN105069352A (zh) * | 2015-07-29 | 2015-11-18 | 浪潮电子信息产业股份有限公司 | 一种在服务器上构建可信应用程序运行环境的方法 |
CN105787360A (zh) * | 2016-03-02 | 2016-07-20 | 杭州字节信息技术有限公司 | 一种嵌入式***内存安全访问控制的技术实现方法 |
CN106815494A (zh) * | 2016-12-28 | 2017-06-09 | 中软信息***工程有限公司 | 一种基于cpu时空隔离机制实现应用程序安全认证的方法 |
CN106845174A (zh) * | 2015-12-03 | 2017-06-13 | 福州瑞芯微电子股份有限公司 | 一种安全***下的应用权限管理方法及*** |
CN107025405A (zh) * | 2015-12-22 | 2017-08-08 | 英特尔公司 | 使用安全堡垒提高云可用性和硅隔离的方法 |
CN107066331A (zh) * | 2016-12-20 | 2017-08-18 | 华为技术有限公司 | 一种基于TrustZone的资源分配方法及设备 |
US9754124B1 (en) * | 2016-08-03 | 2017-09-05 | International Business Machines Corporation | Data protection for storage device |
-
2017
- 2017-12-29 CN CN201711484638.7A patent/CN108052461A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103440176A (zh) * | 2013-09-13 | 2013-12-11 | 北京经纬恒润科技有限公司 | 一种实时操作***中内存的保护方法及装置 |
CN105069352A (zh) * | 2015-07-29 | 2015-11-18 | 浪潮电子信息产业股份有限公司 | 一种在服务器上构建可信应用程序运行环境的方法 |
CN106845174A (zh) * | 2015-12-03 | 2017-06-13 | 福州瑞芯微电子股份有限公司 | 一种安全***下的应用权限管理方法及*** |
CN107025405A (zh) * | 2015-12-22 | 2017-08-08 | 英特尔公司 | 使用安全堡垒提高云可用性和硅隔离的方法 |
CN105787360A (zh) * | 2016-03-02 | 2016-07-20 | 杭州字节信息技术有限公司 | 一种嵌入式***内存安全访问控制的技术实现方法 |
US9754124B1 (en) * | 2016-08-03 | 2017-09-05 | International Business Machines Corporation | Data protection for storage device |
CN107066331A (zh) * | 2016-12-20 | 2017-08-18 | 华为技术有限公司 | 一种基于TrustZone的资源分配方法及设备 |
CN106815494A (zh) * | 2016-12-28 | 2017-06-09 | 中软信息***工程有限公司 | 一种基于cpu时空隔离机制实现应用程序安全认证的方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109743441A (zh) * | 2018-12-13 | 2019-05-10 | 北京小米移动软件有限公司 | 读写权限设置方法及装置 |
CN109947673A (zh) * | 2019-03-26 | 2019-06-28 | 北京经纬恒润科技有限公司 | 一种内存保护方法、保护装置及单片机 |
CN109947673B (zh) * | 2019-03-26 | 2021-10-15 | 北京经纬恒润科技股份有限公司 | 一种内存保护方法、保护装置及单片机 |
CN110929304A (zh) * | 2019-12-04 | 2020-03-27 | 四川虹微技术有限公司 | 一种基于risc-v的内存保护方法 |
US11334501B2 (en) | 2020-01-28 | 2022-05-17 | Hewlett Packard Enterprise Development Lp | Access permissions for memory regions |
WO2022001514A1 (zh) * | 2020-06-30 | 2022-01-06 | 华为技术有限公司 | 内核和任务隔离的方法和装置 |
CN113722247A (zh) * | 2021-08-06 | 2021-11-30 | 平头哥(上海)半导体技术有限公司 | 物理内存保护单元、物理内存权限控制方法和处理器 |
CN113722247B (zh) * | 2021-08-06 | 2024-04-26 | 杭州中天微***有限公司 | 物理内存保护单元、物理内存权限控制方法和处理器 |
CN116795494A (zh) * | 2023-08-23 | 2023-09-22 | 北京紫光芯能科技有限公司 | 内存保护单元信息的处理方法、***以及可读介质 |
CN116795494B (zh) * | 2023-08-23 | 2024-01-02 | 北京紫光芯能科技有限公司 | 内存保护单元信息的处理方法、***以及可读介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108052461A (zh) | 一种操作***的内存保护方法 | |
CN103946815B (zh) | 用于区域访问控制的方法、存储设备和装置 | |
CN105245543B (zh) | 一种基于安全标记随机化的操作***强制访问控制方法 | |
CN104268484B (zh) | 一种基于虚拟隔离机制的云环境下数据防泄漏方法 | |
CN105787360A (zh) | 一种嵌入式***内存安全访问控制的技术实现方法 | |
US12032494B2 (en) | Kernel integrity protection method and apparatus | |
DE102019110309A1 (de) | Integritätsschutz mit geringem overhead und hoher verfügbarkeit für vertrauensdomänen | |
DE112016004330T5 (de) | Prozessoren, Verfahren, Systeme und Befehle zum Zulassen sicherer Kommunikationen zwischen einem geschützten Containerspeicher und Eingabe-/Ausgabegeräten | |
US7130977B1 (en) | Controlling access to a control register of a microprocessor | |
CN103890852A (zh) | 对包括机密信息的存储器区域的访问 | |
CN107800724A (zh) | 云主机防破解方法、***及处理设备 | |
CN102254123B (zh) | 强化应用软件安全性的方法及装置 | |
US20220180009A1 (en) | Peripheral component interconnect express protection controller | |
JP2005276160A5 (zh) | ||
US11509576B2 (en) | Protected information stream allocation using a virtualized platform | |
CN106970823A (zh) | 高效的基于嵌套虚拟化的虚拟机安全保护方法及*** | |
WO2020057394A1 (zh) | 监控样本进程的内存访问行为的方法和装置 | |
CN108062486A (zh) | 一种针对间接访问存储控制器的存储保护装置 | |
CN100476761C (zh) | 一种实现硬盘安全隔离的装置及方法 | |
CN103136124A (zh) | 一种智能卡硬件防火墙***及其实现方法 | |
KR20050027085A (ko) | 개선된 메모리 엑세스 보안을 제공하는 메모리에 디바이스엑세스를 제어하기 위한 시스템 및 방법 | |
CN108156153A (zh) | 一种基于分布式安全域的微分段防护方法 | |
CN109766711A (zh) | 一种安全管理数据库的方法 | |
CN107301021A (zh) | 一种利用ssd缓存对lun进行加速的方法和装置 | |
CN109165486A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180518 |