CN1967508A - 一种对内存进行保护的方法 - Google Patents
一种对内存进行保护的方法 Download PDFInfo
- Publication number
- CN1967508A CN1967508A CN 200510101462 CN200510101462A CN1967508A CN 1967508 A CN1967508 A CN 1967508A CN 200510101462 CN200510101462 CN 200510101462 CN 200510101462 A CN200510101462 A CN 200510101462A CN 1967508 A CN1967508 A CN 1967508A
- Authority
- CN
- China
- Prior art keywords
- protection
- memory
- page
- write operation
- region
- 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
Images
Landscapes
- Storage Device Security (AREA)
Abstract
一种对内存进行保护的方法,包括:(a)定义需保护的内存区域,将所有需要保护的内存定义在一个连续的空间上;(b)在操作系统初始化时,对需要保护的所有内存加页保护;(c)需要对被保护的内存进行写操作时,对该写操作所涉及到的内存的页面进行去页保护;(d)对所述已经去页保护的页面进行写操作;(e)对已进行写操作的页面重新加页保护。本发明可对内存整体进行有效的保护,且对被保护的内存区域频繁进行合法的写操作时,不会因为该内存已进行的保护而降低系统效率,并且能发现对被保护的内存区域内任何一点所进行的非法写操作。
Description
技术领域
本发明涉及到一种内存保护方法,具体来说,涉及一种对操作系统下频繁读写的内存进行保护的方法。
背景技术
在操作系统中一般提供以页面为单位的内存保护机制,应用层可以调用操作系统的接口函数对某一个页面进行保护操作或去保护操作,这些保护页的属性为不可访问,当有操作访问到保护页所在的区域,可认为该操作就有非法修改重要内存的企图,同时,实时操作系统可以很快的发现并报告内存访问异常,便于及时的发现异常隐患。具体来说,就是当被保护的内存页发生写操作时CPU会产生中断,应用层可以通过中断处理函数对这种非法操作进行现场记录,以利于问题定位,也可以在中断中进行挽救性处理或重新启动系统以保证应用业务的准确性。
内存保护会对系统资源有一定的消耗,因而一般用来保护容量较小、写操作较少的数据区域,一般不会对大面积、写操作频繁的数据区进行保护,特别是实时操作系统对系统性能要求高,如果其对大量内存区域(几十兆,上百兆)频繁的去保护、保护操作,则所带来的系统开销是非常大的,甚至不能忍受。
如图1所示,是现有的一种内存保护方法的示意图,其是在需要保护的大面积内存的两端各设置一个保护页,即在该大面积内存的起始地址及结束地址处均设一个操作系统内存保护页;对该两个保护页进行非法操作就会触发CPU中断。
但是这种方法也有不足之处,因为只有对内存的访问是连续的,则本发明能达到保护的作用。但是大部分非法访问是非连续的,是随机的,跳跃性访问。在本方法中,如果直接对大面积内存中两个保护页之间的部分进行非法写入,则不会触发操作系统的内存保护机制,即无法发现这种非法写入,故这种方法实际上不能对需要保护的内存区域提供有效的保护。
现在还有一种方法,是对需要保护的大面积内存全部保护起来,在需要对这部分内存进行合法的写操作的时候,将全部内存去保护,写完后再全部加保护。
但是这种方法也存在有不足之处,这种方法在在内存量比较小的情形下是可行的,但是当内存容量达到一定限度(如10M字节)时,则这种方法所带了的系统开销就是不可忽视的,会严重影响系统的实时性。因此这种方法在实时操作系统很少采用。
发明内容
本发明要解决的技术问题在于,为克服现有技术中的不足,而提供一种对大面积内存进行保护的方法,可在实时操作系统中,在不降低系统效率的情况下,利用操作系统提供的页保护接口函数,对大面积的内存实施整体有效的保护。
本发明为解决其技术问题所提供的技术方案是:提供一种对内存进行保护的方法,包括:(a)定义需保护的内存区域,将所有需要保护的内存定义在一个连续的空间上;(b)在操作系统初始化时,对需要保护的所有内存加页保护;(c)需要对被保护的内存进行写操作时,对该写操作所涉及到的内存页面进行去页保护;(d)对所述已进行去页保护的内存页面进行写操作;(e)对所述已进行写操作的内存页面重新加页保护。
在本发明的对内存进行保护的方法中,步骤(a)包括在需要保护的内存区域的起始地址之前及结束地址之后各预留一个页面大小的内存区域。
在本发明的对内存进行保护的方法中,所述步骤(a)中在定义被保护的内存区域的步骤可通过指针操作将内存区域的起始地址、结束地址定义在操作系统内存页面的起始位置。
在本发明的对内存进行保护的方法中,所述内存区域存储有通讯系统中设备的用户配置信息或/及自我学习信息。
在本发明的对内存进行保护的方法中,所述内存区域为通讯系统中的话单池。
在本发明的对内存进行保护的方法中,所述步骤(c)包括:取出该写操作的内存的起始地址及需写操作的内存的长度,确定该写操作所涉及的内存页面信息。
在本发明的对内存进行保护的方法中,所述加页保护和去页保护均是通过调用操作系统页保护接口函数来实现。
在本发明的对内存进行保护的方法中,进一步包括,对被保护的内存区域进行非法写操作时,产生CPU中断的步骤。
在本发明的对内存进行保护的方法中,所述操作系统为实时操作系统。
实施本发明的一种对内存进行保护的方法,具有以下有益效果:利用操作系统提供的页保护接口函数,对内存进行整体有效的保护。对被保护的内存区域频繁进行合法的写操作不会因为内存保护而降低系统效率。且能够发现对被保护的内存区域内任何一点所进行的非法写操作。
附图说明
图1是是现有的一种内存保护方法的示意图;
图2是本发明对内存进行保护的方法的流程图;
图3是本发明对内存进行保护的方法的定义内存区域的示意图;
图4是本发明对内存进行保护的方法的增加页保护的示意图;
图5是本发明本发明对内存进行保护的方法中对已保护的内存进行写操作的示意图。
具体实施方式
如图2所示,是本发明的主流程图。第一步要定义需保护的内存区域。该过程可参见图3,在本发明中,在内存划分上将所有需要保护的内存定义在一个连续的空间上(需要说明一下,对应用层可见的一般是虚拟地址,虚拟地址是连续的情况下,对应物理地址可以是不连续的,但是保护一个虚拟地址页面也就是保护物理地址的对应的页面,对应用层的操作没有影响,此处内存区域可以是连续的虚拟地址或者是连续的物理地址),在需要保护的内存区域前后各预留一个页面大小的内存区域。,应用层定义内存区域是在编译时分配的,所以需要保护内存的起始地址并不一定在一个页面的开始位置,在对起始位置和结束位置加内存保护时必然对该位置所属页面进行保护,为防止将不需要保护的数据区加上保护,可以在内存的起始地址之前和结束地址之后均预留一个页面大小不再使用的内存区域。图中虚线表示操作系统定义的页面分界。
第二步:在操作系统初始化时,允许业务操作前对需要保护的所有内存,调用操作系统页保护接口函数加上页保护。如图4中所示,图中斜线部分表示已经加上页保护的内存,其是从需保护的内存的起始地址前的预留的内存区域的页面分界开始,至需保护的内存的结束地址后的预留的内存区域的页面分界结束。因为在此时还没有进行业务,为内存增加页保护消耗的时间对用户来说是可以接受的。
第三步:在操作系统的实时处理过程中,当应用层需要对被保护的内存进行写操作时,首先要取出本次需要写入的内存的起始地址和需要进行写操作的内存的长度,根据这两个上述两个参数可以确定本次写操作所涉及到的页面信息,包括诸如从哪个页面分界开始,至哪个页面分界结束;则调用操作系统的接口函数将本次写操作涉及的页面进行去除页保护的操作;
第四步:对所涉及到的页面进行具体的写操作过程;
第五步:等写操作结束后,再调用操作系统的接口函数将上述涉及到的页面重新加上页保护。
其中第三、四、五个步骤可参见图5所示,在图5中示出了对已保护的内存中进行写操作的示意图,其中本次写操作所涉及到的页面共两个,见图中中间部份所示意的。
由于,对内存进行一次写操作一般只能涉及操作系统的一两个页面,对一两个页面进行去保护、和重新加保护操作所占用的系统资源并不多,基本可以忽略不计,所以不会降低实时操作系统的使用效率。
在本发明中,由于是只有在需要对哪个/哪几个页面进行写操作时,才对该页面进行去保护,待写操作完成后立刻对该页面进行加保护,这样对于不具有对被保护内存区域进行合法写操作权限的代码来说,该页面一直是处于保护状态的,任何非法的写操作均会引起CPU中断,当出现非法写操作时,就可以捕获现场的信息,进行补救工作。
在本发明的另外一个实施例中,在定义被保护区域的时候,通过指针操作直接将区域的起始地址、结束地址定义在操作系统内存页面的起始位置。这样可以不用在被保护区域起始结束位置增加无用内存区域。
在本发明的再一个实施例中,可以将被保护的内存区域分段,使用校验算法对每段进行CRC校验,将校验结果保存在每段内存的结束位置。每次访问一段内存区域前先进行CRC校验,如果发现校验错则认为该段内存区域的数据被非法改写过,可以采取补救措施并对用户输出警告。
本发明可以应用在那些需要经常进行频繁读写的大内存中。下面举两个具体的应用实例,可加深对本发明的理解:
1、用于数据区保护:
通讯系统中的设备会有大量的用户配置信息和自我学习信息保存在内存中,这部分数据数量大,读写频繁,控制着设备的业务逻辑,安全性要求很高,需要采用内存保护的方式保护起来。本方案可以解决这类数据区内存保护的问题。
2、用于话单存储空间(如,话单池)的保护:
在通讯系统中,网络实体(包括但不限于:交换控制中心(MSC)、业务控制点(SCP)、短消息中心(MC)等)会生成话单,用于对终端用户计费或网间结算,由于计费中心是周期获取话单的,这些设备必须开辟数十兆的内存空间作为暂存话单的话单池。输出错误的话单会导致终端用户的投诉,是运营商不希望出现的情况,因此话单池的安全性要求很高,而且读写非常频繁,是比较典型的安全性很高,需要进行保护的却又读写频繁、大面积的内存区。
在话单池被非法写入数据的时候,设备必须采取一定的补救措施,如通过系统告警通知运营商哪些话单可能是错误的或删除出错的话单。
利用本发明,可在实时操作系统中,在不降低系统效率的情况下,利用操作系统提供的页保护接口函数,对内存整体有效的保护。对被保护的内存区域频繁进行合法的写操作时,不会因为对内存进行了保护而降低系统效率,且能够发现对被保护的内存区域内任何一点的非法写操作。本发明在对诸如通信系统的数据区及话单存储空间的保护方面具有很大的优势之处。
Claims (9)
1、一种对内存进行保护的方法,其特征在于,包括:
(a)定义需保护的内存区域,将所有需要保护的内存定义在一个连续的空间上;
(b)在操作系统初始化时,对需要保护的所有内存加页保护;
(c)需要对被保护的内存进行写操作时,对该写操作所涉及到的内存页面进行去页保护;
(d)对所述已进行去页保护的内存页面进行写操作;
(e)对所述已进行写操作的内存页面重新加页保护。
2、如权利要求1所述的对内存进行保护的方法,其特征在于,步骤(a)包括在需要保护的内存区域的起始地址之前及结束地址之后各预留一个页面大小的内存区域。
3、如权利要求1所述的对内存进行保护的方法,其特征在于,所述步骤(a)中在定义被保护的内存区域的步骤可通过指针操作将内存区域的起始地址、结束地址定义在操作系统内存页面的起始位置。
4、如权利要求1至3任一项所述的对内存进行保护的方法,其特征在于,所述内存区域存储有通讯系统中设备的用户配置信息或/及自我学习信息。
5、如权利要求1至3任一项所述的对内存进行保护的方法,其特征在于,所述内存区域为通讯系统中的话单池。
6、如权利要求5所述的对内存进行保护的方法,其特征在于,所述步骤(c)包括:取出该写操作的内存的起始地址及需写操作的内存的长度,确定该写操作所涉及的内存页面信息。
7、如权利要求6所述的对内存进行保护的方法,其特征在于,所述加页保护和去页保护均是通过调用操作系统页保护接口函数来实现。
8、如权利要求7所述的对内存进行保护的方法,其特征在于,进一步包括,对被保护的内存区域进行非法写操作时,产生CPU中断的步骤。
9、如权利要求8所述的对内存进行保护的方法,其特征在于,所述操作系统为实时操作系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200510101462 CN1967508A (zh) | 2005-11-15 | 2005-11-15 | 一种对内存进行保护的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200510101462 CN1967508A (zh) | 2005-11-15 | 2005-11-15 | 一种对内存进行保护的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1967508A true CN1967508A (zh) | 2007-05-23 |
Family
ID=38076288
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200510101462 Pending CN1967508A (zh) | 2005-11-15 | 2005-11-15 | 一种对内存进行保护的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1967508A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102650948A (zh) * | 2012-03-31 | 2012-08-29 | 福建升腾资讯有限公司 | Windows Xpe系统内存保护模式下实现数据更新与保存的方法 |
CN103620614A (zh) * | 2011-07-01 | 2014-03-05 | 英特尔公司 | 已中断事件的安全处置 |
WO2014122554A1 (en) * | 2013-02-06 | 2014-08-14 | International Business Machines Corporation | Key-based data security management |
CN105184186A (zh) * | 2015-09-08 | 2015-12-23 | 北京元心科技有限公司 | 保护智能终端文件系统的方法以及智能终端 |
CN105183676A (zh) * | 2015-10-21 | 2015-12-23 | 上海斐讯数据通信技术有限公司 | 对存储器写保护的系统及方法 |
CN106294089A (zh) * | 2015-06-23 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 辅助对被监控内存空间的访问监控的方法和装置 |
CN106815520A (zh) * | 2016-12-30 | 2017-06-09 | 东软集团股份有限公司 | 引擎保护方法和装置 |
CN112703490A (zh) * | 2018-09-18 | 2021-04-23 | 华为技术有限公司 | 用于存储器保护的装置和方法 |
CN117648196A (zh) * | 2024-01-29 | 2024-03-05 | 苏州元脑智能科技有限公司 | 一种内存分配的保护方法、装置、设备及介质 |
-
2005
- 2005-11-15 CN CN 200510101462 patent/CN1967508A/zh active Pending
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103620614B (zh) * | 2011-07-01 | 2017-02-15 | 英特尔公司 | 已中断事件的安全处置 |
CN103620614A (zh) * | 2011-07-01 | 2014-03-05 | 英特尔公司 | 已中断事件的安全处置 |
CN102650948A (zh) * | 2012-03-31 | 2012-08-29 | 福建升腾资讯有限公司 | Windows Xpe系统内存保护模式下实现数据更新与保存的方法 |
US10255204B2 (en) | 2013-02-06 | 2019-04-09 | International Business Machines Corporation | Key-based data security management |
US9858207B2 (en) | 2013-02-06 | 2018-01-02 | International Business Machines Corporation | Page level key-based memory protection |
WO2014122554A1 (en) * | 2013-02-06 | 2014-08-14 | International Business Machines Corporation | Key-based data security management |
US10678711B2 (en) | 2013-02-06 | 2020-06-09 | International Business Machines Corporation | Key-based data security management |
CN106294089A (zh) * | 2015-06-23 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 辅助对被监控内存空间的访问监控的方法和装置 |
CN105184186A (zh) * | 2015-09-08 | 2015-12-23 | 北京元心科技有限公司 | 保护智能终端文件系统的方法以及智能终端 |
CN105183676A (zh) * | 2015-10-21 | 2015-12-23 | 上海斐讯数据通信技术有限公司 | 对存储器写保护的系统及方法 |
CN106815520A (zh) * | 2016-12-30 | 2017-06-09 | 东软集团股份有限公司 | 引擎保护方法和装置 |
CN112703490A (zh) * | 2018-09-18 | 2021-04-23 | 华为技术有限公司 | 用于存储器保护的装置和方法 |
CN112703490B (zh) * | 2018-09-18 | 2024-06-25 | 华为技术有限公司 | 用于存储器保护的装置和方法 |
CN117648196A (zh) * | 2024-01-29 | 2024-03-05 | 苏州元脑智能科技有限公司 | 一种内存分配的保护方法、装置、设备及介质 |
CN117648196B (zh) * | 2024-01-29 | 2024-04-26 | 苏州元脑智能科技有限公司 | 一种内存分配的保护方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1967508A (zh) | 一种对内存进行保护的方法 | |
CN100487658C (zh) | 一种检测内存访问越界的方法 | |
US8069317B2 (en) | Providing and utilizing high performance block storage metadata | |
CN101996293B (zh) | 基于加密狗的软件认证方法 | |
CN1223947C (zh) | 安全存储系统及提供安全存储元件的方法 | |
US20140020112A1 (en) | Method of Securing Memory Against Malicious Attack | |
US20120239634A1 (en) | Method and apparatus for accessing database and database application system | |
CN1588889A (zh) | 一种附网存储设备中用户访问行为的异常检测方法 | |
DE102011082184A1 (de) | Sicherheitsschutz für Speicherinhalt von Prozessorhauptspeicher | |
US20200159460A1 (en) | Method and Apparatus for Selective Erase of Persistent and Non-Volatile Memory Devices | |
CN1700642A (zh) | 一种单调计数器的实现方法 | |
CN106020735A (zh) | 一种数据存储方法及数据存储装置 | |
EP2842041A1 (en) | Data processing system and method for operating a data processing system | |
CN101067835A (zh) | 用于可信平台模块数据一致性的方法和数据处理系统 | |
CN114679315A (zh) | 攻击检测方法、装置、计算机设备、存储介质和程序产品 | |
Wang et al. | Review of NAND flash information erasure based on overwrite technology | |
CN109376530B (zh) | 基于标记的进程强制行为控制方法和系统 | |
CN1808402A (zh) | 一种内存访问监控方法 | |
CN102880461B (zh) | 一种编译链接方法及装置 | |
CN115543463B (zh) | 一种检测傀儡进程创建的方法及系统 | |
CN102207907B (zh) | 数据操作的方法、装置及计算机 | |
CN110865869A (zh) | 一种申威架构上的虚拟机访存特征提取方法及系统 | |
Younan et al. | Security of memory allocators for C and C++ | |
CN113836600B (zh) | 一种Embedded Flash误写保护方法 | |
CN103389943A (zh) | 控制装置、存储装置及存储控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |