CN112114964A - 一种适用于嵌入式***的应用安全访问内核方法 - Google Patents
一种适用于嵌入式***的应用安全访问内核方法 Download PDFInfo
- Publication number
- CN112114964A CN112114964A CN202010958726.1A CN202010958726A CN112114964A CN 112114964 A CN112114964 A CN 112114964A CN 202010958726 A CN202010958726 A CN 202010958726A CN 112114964 A CN112114964 A CN 112114964A
- Authority
- CN
- China
- Prior art keywords
- memory
- memory space
- kernel
- user mode
- data
- 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
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000010586 diagram Methods 0.000 description 5
Images
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
- G06F12/1491—Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供一种适用于嵌入式***的应用安全访问内核方法,用于解决因内核或者驱动往用户态程序内存空间中写越界所产生的用户态程序内存空间数据错乱的问题。主要包括:用户态程序申请的内存;用户态程序申请的内存尾部的flag;***态程序申请的内存;***态程序申请的内存尾部flag。采用本发明提供的适用于嵌入式***的应用安全访问内核方法,可以让用户态小程序在动态内存堆中申请的内存空间不会被内核或者驱动写越界导致后续的数据不正确,增加用户态程序内存使用的可靠性、嵌入式软件***应用的数据正确性,提高整体***的数据安全。
Description
技术领域
本公开涉及嵌入式领域和实时操作***领域,具体而言是指涉及一种适用于嵌入式***的应用安全访问内核方法。
背景技术
在传统的嵌入式实时操作***上,操作***内核和用户态程序内存空间都是可以相互访问且可读写的,用户态程序的内存空间十分容易被内核或者驱动写越界,导致后续的数据被错误数据覆盖,从而导致用户态程序在传输数据时候产生错乱,故需要一种安全可行的方法去尽可能的规避这个问题。这种设计思想对开发人员提出了更高的要求。
然而,内存空间是连续分布的,当数据写越界的时候,其实对于用户态程序来说是不知道的,一旦发生数据写越界,对于当前数据来说是不完整的,对于后续数据来说是错乱的,故需要在用户态程序申请内存空间时候,在尾部加上一个flag标志位,同时***态程序中也需要申请相同大小的临时内存空间,写数据完毕后判断flag标志位是否被破坏,被破坏了就不把数据搬运到用户态程序,并及时释放掉这部分内存空间,如此而来就能到达安全可靠的避免数据写越界的问题出现。
发明内容
本发明所要解决的技术问题在于提供一种适用于嵌入式***的应用安全访问内核方法,以解决***态程序把用户态程序内存空间写越界的问题。
本发明提供的实现的一种适用于嵌入式***的应用安全访问内核方法,包括:
用户态程序申请的内存,其用于存放用户态程序所需的数据;
用户态程序申请的内存尾部的flag,其用于检测数据是否有写越界;
***态程序申请的内存,其用于临时存放用户态所需的数据;
***态程序申请的内存尾部flag,其用于检测数据是否有写越界。
进一步地,所述的用户态程序申请的内存,是排布在嵌入式芯片片内RAM上的,用于存放用户态程序所需数据。
进一步地,所述的用户态程序申请的内存尾部的flag,是分布在用户态程序申请的内存空间之后的,内存空间与flag拼接成一个更大一些的内存空间。
进一步地,所述的***态程序申请的内存,在需要个用户态程序申请出来的内存空间大小需要一致,起一个临时存放数据的作用,在使用完毕之后需要及时释放这段内存空间出来的。
进一步地,所述的***态程序申请的内存尾部flag,是与用户态程序内存空间尾部的flag是一致的,写入数据完毕之后,需要判断这个flag是否有被破坏,若是完好的,说明数据并没有写越界,此时可以将这部分数据搬运到用户态程序中来,若已经被破坏,那么就不进行搬运,确保用户态程序所需要的内存空间中的数据是完好的,是不能被写越界的,此时需要及时释放***态程序的这部分内存空间,当然,在flag没有被破坏的情况下进行数据搬运之后,也需要及时将***态中的临时的内存空间释放掉,确保***中的这部分内存不会一直被占用。
附图说明
为了更加清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单介绍,应当理解,以下附图仅仅示出了本公开的某些实施例,因此不应被看作是对本发明的限定,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获取前提相关的附图。
图1为本发明具体实施方式的一种适用于嵌入式***的应用安全访问内核方法的框架图。
图2为本发明具体实施方式的整体流程图,阐述所实施的一种适用于嵌入式***的应用安全访问内核方法的过程。
图3为本发明具体实施方式的用户态程序内存空间与***态程序的临时内存空间之间的关系示意图。
图4为本发明具体实施方式的芯片片内RAM与ROM数据分布示意图。
具体实施方式
下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整的描述,显然所描述的实施例仅仅是本发明的部分实施例,而不是全部的实施例。提供的实施例是为了详尽地且完全地公开本发明,并且向所属技术领域的技术人员充分传达本发明的范围。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而仅仅表示本发明的选定实施例。基于本发明的实施例,本领域的普通技术人员在没有做出创造性劳动的前提下所有获得的前提实施例,都属于本发明保护的范围。
本发明实施例提供一种适用于嵌入式***的应用安全访问内核方法说明,图1所示,该方法由是用户态程序申请的内存11、用户态程序申请的内存尾部的flag12、***态程序申请的内存13、***态程序申请的内存尾部flag14组成。
用户态程序申请的内存11,其用于存放小程序的代码数据;
用户态程序申请的内存尾部的flag12,其用于存放小程序的堆栈数据以及赋有初值的全局变量;
***态程序申请的内存13,其用于临时存放用户态所需的数据;
***态程序申请的内存尾部flag14,其用于检测数据是否有写越界。
图2为本发明具体实施方式的整体流程图,阐述所实施的一种适用于嵌入式***的应用安全访问内核方法的过程。所述流程从步骤S201开始。
在步骤S201中,用户态程序在运行过程中申请内存空间。
在步骤S202中,在用户态程序申请到内存空间之后在其尾部追加一个标志位flag,追加之后需要进行字节对齐操作,对齐之后与标志位flag形成一个新的连续的内存空间。
在步骤S203中,***会根据用户态程序申请内存大小,临时的也申请相同大小的内存,也是需要在尾部追加一个标志位flag,最后需要进行字节对齐操作。
在步骤S204中,驱动或者***会写入数据。
在步骤S205中,写入数据完毕之后,需要判断一下那块内存空间尾部的标志位flag时是否被破坏了。
在步骤S206中,如果flag完好,说明驱动或者***的写数据操作并没有越界,可以将数据搬运到用户态程序空间中,最后释放掉***态程序的临时内存空间。
在步骤S207,无论标志位是否有被破坏,临时的内存空间都是需要被释放掉的,如果flag被破坏了,说明数据写越界了,此时这个临时空间的数据不能搬运到用户态空间来。
图3为本发明具体实施方式的小程序运行过程的存储器数据排布以及MPU保护设定示意图。所述流程从步骤S301开始。
在步骤S301中,展示的是用户态程序申请了一块内存空间;
在步骤S302中,展示的是用户态程序申请的内存空间尾部追加flag,以及进行对齐操作;
在步骤S303中,展示的是在***态程序中申请出来的临时的内存空间,大小,在加上flag并进行字节对齐之后的大小是需要和用户态程序中的内存空间大小保持一致的;驱动程序或者内核程序可以在其中填写数据;
在步骤S304中,展示的是***态程序申请的内存空间尾部追加的一个标志位flag,加上标志位之后是需要进行字节对齐的,在驱动程序或者内核程序往其中写入数据之后,需要及时判断尾部的这个flag标志位是否被破坏,如果标志位完好,表示这段临时内存空间中的数据是完好的,并没有被驱动程序或者内核程序写穿,也不会影响后数据为完整性,此时可以将这数据搬运到用户态程序的内存空间中来,并及时释放在***态程序中申请的这段临时的内存空间。
在步骤S305中,展示的是用户态程序申请的另一块内存空间;
在步骤S306中,展示的是用户态程序申请的内存空间尾部追加flag,以及进行对齐操作;
在步骤S307中,展示的是在***态程序中申请出来的临时的内存空间,大小,在加上flag并进行字节对齐之后的大小是需要和用户态程序中的内存空间大小保持一致的;驱动程序或者内核程序可以在其中填写数据;
在步骤S308中,展示的是***态程序申请的内存空间尾部追加的一个标志位flag,加上标志位之后是需要进行字节对齐的,在驱动程序或者内核程序往其中写入数据之后,需要及时判断尾部的这个flag标志位是否被破坏,如果标志位已经被破坏,表示该内存空间中的数据被写越界,或者被称为写穿,进一步的可以理解为数据是不完整的了,以及这部分内存空间之后的一部分数据是被写覆盖了的,此时,并不能把***态程序中的临时内存空间中的数据搬运到用户态程序的内存空间中来,需要在内核中输出log提示标志位已经被破坏,并及时释放这段临时的内存空间。
图4为本发明具体实施方式的参数段经过拼接之后存储区数据排布以及MPU保护设定示意图。所述流程从步骤S401开始。
在步骤S401中,展示的是在***运行起来之后,用户态程序在***heap空间中申请出来的内存空间;
在步骤S402中,展示的是在上述步骤S401的内存空间尾部追加的标志位flag,需要进行字节对齐;
在步骤S403中,展示的是在***运行过程中,***态程序在***heap空间中申请出来的临时内存空间,其大小与用户态程序申请的内存空间在添加标志位和字节对齐之后的大小一致;
在步骤S404中,展示的是在***态程序申请的临时内存空间尾部追加的标志位flag,添加之后需要对整块内存空间进行字节对齐。
在步骤S405中,展示的是在驱动程序或者内核程序写入数据之后判断标志位flag没有被破坏的情况下,将数据搬运到用户态程序申请的内存空间,并及时把临时空间释放掉。
Claims (5)
1.一种适用于嵌入式***的应用安全访问内核方法,其特征在于,可以让用户态小程序在动态内存堆中申请的内存空间不会被内核或者驱动写越界导致后续的数据不正确,增加用户态程序内存使用的可靠性、嵌入式软件***应用的数据正确性,提高整体***的数据安全。
2.根据权利要求1所述的适用于嵌入式***的应用安全访问内核方法,其特征在于:用户态小程序在动态内存堆中申请的内存空间可以是一段内存池,一个内存块,或者是一个变量等。
3.根据权利要求1所述的适用于嵌入式***的应用安全访问内核方法,其特征在于:用户态小程序在动态内存堆中申请的内存空间尾部需要加上一个标志位flag,整个内存空间大小包括这个标志位。
4.根据权利要求1所述的适用于嵌入式***的应用安全访问内核方法,其特征在于:为确保用户态小程序在动态内存堆中申请的内存空间不会被内核或者驱动写越界导致后续的数据不正确,***态程序中也需要申请也用户态的内存空间相同大小的内存空间出来,尾部一样是需要加上一个标志位flag的。
5.根据权利要求1所述的适用于嵌入式***的应用安全访问内核方法,其特征在于:***态的这个内存空间只是一个临时使用的一段空间而已,等内核或者驱动把数据写进去之后需要判断尾部的标志位是否还完好,完好即可把数据搬运到用户态程序中去,然后把***态的内存空间释放掉。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2020108265129 | 2020-08-17 | ||
CN202010826512 | 2020-08-17 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112114964A true CN112114964A (zh) | 2020-12-22 |
Family
ID=73803142
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010958726.1A Pending CN112114964A (zh) | 2020-08-17 | 2020-09-11 | 一种适用于嵌入式***的应用安全访问内核方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112114964A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101145129A (zh) * | 2007-07-18 | 2008-03-19 | 中兴通讯股份有限公司 | 一种嵌入式***内存写越界的检测方法及*** |
CN104090848A (zh) * | 2014-07-16 | 2014-10-08 | 云南大学 | 一种周期性大数据处理的内存管理方法及装置 |
CN105183382A (zh) * | 2015-09-09 | 2015-12-23 | 浪潮(北京)电子信息产业有限公司 | 一种数据块保护方法及装置 |
CN109547566A (zh) * | 2018-12-25 | 2019-03-29 | 华南理工大学 | 一种基于内存分配的多线程上传优化方法 |
CN110413521A (zh) * | 2019-07-24 | 2019-11-05 | 杭州迪普信息技术有限公司 | 一种堆内存的写越界检测方法和装置 |
CN110515751A (zh) * | 2018-05-22 | 2019-11-29 | 中车株洲电力机车研究所有限公司 | 一种加载运行VxWorks实时保护进程的方法及*** |
CN110569037A (zh) * | 2019-09-06 | 2019-12-13 | 北京小米移动软件有限公司 | 数据写入的方法和装置 |
CN110674050A (zh) * | 2019-10-08 | 2020-01-10 | 腾讯科技(深圳)有限公司 | 内存越界检测方法、装置、电子设备及计算机存储介质 |
-
2020
- 2020-09-11 CN CN202010958726.1A patent/CN112114964A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101145129A (zh) * | 2007-07-18 | 2008-03-19 | 中兴通讯股份有限公司 | 一种嵌入式***内存写越界的检测方法及*** |
CN104090848A (zh) * | 2014-07-16 | 2014-10-08 | 云南大学 | 一种周期性大数据处理的内存管理方法及装置 |
CN105183382A (zh) * | 2015-09-09 | 2015-12-23 | 浪潮(北京)电子信息产业有限公司 | 一种数据块保护方法及装置 |
CN110515751A (zh) * | 2018-05-22 | 2019-11-29 | 中车株洲电力机车研究所有限公司 | 一种加载运行VxWorks实时保护进程的方法及*** |
CN109547566A (zh) * | 2018-12-25 | 2019-03-29 | 华南理工大学 | 一种基于内存分配的多线程上传优化方法 |
CN110413521A (zh) * | 2019-07-24 | 2019-11-05 | 杭州迪普信息技术有限公司 | 一种堆内存的写越界检测方法和装置 |
CN110569037A (zh) * | 2019-09-06 | 2019-12-13 | 北京小米移动软件有限公司 | 数据写入的方法和装置 |
CN110674050A (zh) * | 2019-10-08 | 2020-01-10 | 腾讯科技(深圳)有限公司 | 内存越界检测方法、装置、电子设备及计算机存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20110029726A1 (en) | Data updating method, memory system and memory device | |
CN107357666A (zh) | 一种基于硬件保护的多核并行***处理方法 | |
KR100316981B1 (ko) | 플래시 메모리를 구비한 마이크로컴퓨터 및 플래시 메모리에 프로그램을 저장하는 방법 | |
EP3242214B1 (en) | Method and device for protecting information of mcu chip | |
CN106708754A (zh) | 数据储存装置及其数据维护方法 | |
CN102890647B (zh) | 一种数据的存储与更新方法及装置 | |
WO2023092942A1 (zh) | 数据存储方法、装置、电子设备及可读存储介质 | |
CN112114964A (zh) | 一种适用于嵌入式***的应用安全访问内核方法 | |
CN110647764B (zh) | 针对用户态非易失性内存文件***的保护方法及*** | |
CN107422987B (zh) | 一种在非易失性存储器中存储数据的方法及装置 | |
CN113836600B (zh) | 一种Embedded Flash误写保护方法 | |
CN113094107B (zh) | 数据保护方法、装置、设备及计算机存储介质 | |
CN103136234A (zh) | 处理数据的方法和装置 | |
CN105138378A (zh) | 一种bios刷写方法及电子设备 | |
CN111552650A (zh) | 一种数据保存方法、装置、存储介质和数据存储设备 | |
CN111176572B (zh) | 一种存储数据的保护方法、装置、设备及介质 | |
CN113126927B (zh) | 一种数据删除方法及相关装置 | |
JPS58211254A (ja) | 蓄積プログラム制御方式 | |
CN112540732B (zh) | 数据处理方法及相关产品 | |
CN110515751A (zh) | 一种加载运行VxWorks实时保护进程的方法及*** | |
KR100526547B1 (ko) | 듀얼 칩을 구비하는 단말기에서 nand 플래쉬 메모리관리방법 | |
CN117591036B (zh) | 基于固件与芯片微内核的占位数据补齐方法及*** | |
CN112464499B (zh) | 非易失芯片擦写数据检查方法、装置、存储介质和终端 | |
CN111124462B (zh) | 一种嵌入式多媒体卡更新方法、装置、服务器和存储介质 | |
TWI446351B (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 |
Application publication date: 20201222 |
|
RJ01 | Rejection of invention patent application after publication |