(完整版)应用系统剩余信息保护的技术实现_第1页
(完整版)应用系统剩余信息保护的技术实现_第2页
(完整版)应用系统剩余信息保护的技术实现_第3页
(完整版)应用系统剩余信息保护的技术实现_第4页
(完整版)应用系统剩余信息保护的技术实现_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、0.引言随着信息化的推进,信息系统的安全问题成为了世界各国都十分关心的问题。我国则 推出了 GB/T 22239-2008 信息安全技术信息系统安全等级保护基本要求(以下简称基 本要求)来对信息系统进行保护。基本要求对三级以上信息系统提出了 “剩余信息保护 ”的要求。中国软件评测中心 作为公安部信息安全等级保护测评推荐机构, 在信息系统等级保护测评的过程中发现很多被 测系统在 “剩余信息保护 ”方面做的不是十分到位。 接下来, 本文会较详细地介绍剩余信息保 护的定义、技术实现以及检测方法。1. 剩余信息保护的定义在介绍基本要求中对于剩余信息保护要求项的定义前,先要简单介绍一下一些背 景知识。1

2、.1基本要求对于要求项的划分从整体上,基本要求为技术要求和管理要求两大类。其中,技术要求按其保护的 侧重点的不同被划分为以下三类:1)业务信息安全类( S 类):主要关注的是保护数据在存储、传输、处理过程中不被 泄露、破坏和免受未授权的修改。2)系统服务安全类( A 类):关注的是保护系统连续正常的原型,避免因对系统未授 权修改、破坏而导致系统不可用。3)通用安全保护类( G 类):既关注保护业务信息的安全性,同时也关注保护系统的 连续可用性。基本要求中的所有的要求项都被分为上述三类,剩余信息保护要求项是在三级以上系统中才出现的,是属于 S类的,一般被分为 S3 (适用于三级系统)或者是 S4

3、 (适用于 四级系统)。此外,技术要求还被划分为物理层面安全要求、网络层面安全要求、主机层面安全要 求(简称 “主机安全 ”)、应用层面安全要求(简称 “应用安全 ”)以及数据和备份恢复层面安 全要求。剩余信息保护要求项是出现在主机安全和应用安全方面的。1.2基本要求对于剩余信息保护安全项的定义在主机安全方面,剩余信息保护安全项( S3或S4)的要求包括:1)应保证操作系统和数据库系统用户的鉴别信息所在的存储空间,被释放或再分配给 其他用户前得到完全清除,无论这些信息是存放在硬盘上还是在内存中;2)应确保系统内的文件、 目录和数据库记录等资源所在的存储空间, 被释放或重新分 配给其他用户前得到

4、完全清除。在应用安全方面,剩余信息保护安全项( S3或S4)的要求包括:1)应保证用户鉴别信息所在的存储空间被释放或再分配给其他用户前得到完全清除, 无论这些信息是存放在硬盘上还是在内存中;2)应保证系统内的文件、目录和数据库记录等资源所在的存储空间被释放或重新分配 给其他用户前得到完全清除。2. 应用系统剩余信息保护的技术实现从基本要求对于剩余信息保护要求项的描述来看,该要求项要保护的客体(也即对象) “剩余信息 ”主要是内存或者硬盘的存储空间, 要保护的时间是被释放或重新分配 给其他用户后。2.1 内存中的剩余信息保护内存中剩余信息保护的重点是:在释放内存前,将内存中存储的信息删除,也即将

5、内 存清空或者写入随机的无关信息。 下面以应用程序对用户的身份鉴别流程 (参见图 1)为例, 介绍一下如何对内存中的剩余信息进行保护。假设用户甲在登录应用程序A 的时候,输入了用户名和密码。一般情况下,应用程序 A 会先将用户输入的用户名和密码存储在两个字 符串类型(也可能是数组等)变量中。通常情况下, 为了防止攻击者采用自动脚本对应用程 序进行攻击, 应用系统会要求用户输入校验码, 并优先对校验码进行验证。 如果用户输入的 校验码错误, 应用系统应要求用户重新输入校验码。 在校验码验证通过后, 应用系统应从数 据库中读取用户身份信息表, 并在其中查找是否存在用户输入的用户名。 如果未查找到,

6、 则 应用系统应返回 “用户名不存在 ”(或者较模糊地返回 “用户名不存在或者密码错误 ”)。如果 在用户身份信息表中找到用户名,应用程序一般应采用一种哈希(hash)算法(通常是MD5算法)对用户输入的密码进行运算得到其哈希值, 并与数据库用户身份信息表中存储的密码哈希值进行比较。这里需要说明的是, 数据库中一般不明文存储用户的密码,而是存储密码|7!irKJr-nr,用户齐劎锵;MfflK-Hdt的MD5值。图1应用程序对其用户的身储鉴别流程图*图1应用程序对其用户的身份鉴别流程图通常情况下,应用系统在使用完内存中信息后,是不会对其使用过的内存进行清理的。这些存储着信息的内存在程序的身份认

7、证函数(或者方法)退出后,仍然存储在内存中,如果攻击者对内存进行扫描就会得到存储在其中的信息。为了达到对剩余信息进行保护的目的,需要身份认证函数在使用完用户名和密码信息后,对曾经存储过这些信息的内存空间进行重 新的写入操作, 将无关(或者垃圾) 信息写入该内存空间,也可以对该内存空间进行清零操 作。下面以 C 语言为例,对存储过用户名和密码的数组进行清零操作。void IsCorrectUser ()char* pcUserName = NULL;char* pcPassword = NULL;pcUserName = (char*) malloc(128 * sizeof(char);pcP

8、assword = (char*) malloc(128 * sizeof(char);GetUserNameAndPassword(pcUserName, pcPassword);CheckUserNameAndPassword(pcUserName, pcPassword);int i = 0;for (i = 0; i 128; i+)*( pcUserName + i) = 0;*( pcPassword + i) = 0;free(pcUserName);pcUserName = NULL;free(pcPassword);pcPassword = NULL;return;函数 Is

9、CorrectUser 采用 malloc 函数为存储用户名和密码分别动态申请了 128 字节的内 存。在使用后, 对内存进行了清空和释放的操作, 这样就能够保证对剩余信息的保护。 此外, 需要说明的是在 GetUserNameAndPassword 和 CheckUserNameAndPassword 函数中也要同样 对存储过用户名和密码的内存进行使用后清空操作,才能够完成对剩余信息的保护工作。2.2 硬盘中的剩余信息保护硬盘中剩余信息保护的重点是:在删除文件前,将对文件中存储的信息进行删除,也即将文件的存储空间清空或者写入随机的无关信息。面以应用程序对一个文件的删除为例,介绍一下如何对硬盘

10、中的剩余信息进行保护。通常应用程序在删除文件的时候, 仅仅是调用删除函数,判断删除函数的返回值是否正常。void DeleteFile (char* pcFilePath)long lCurrentPosition = 0;FILE* fpFilePointer = NULL;int iCounter = 0;char cTempChar = 0;fpFilePointer = fopen(pcFilePath, r+);if(NULL = fpFilePointer)printf(nfail to open file %s, pcFilePath) ;while ( 0 = feof(fpF

11、ilePointer) )lCurrentPosition = ftell(fpFilePointer);cTempChar = fgetc(fpFilePointer);if (EOF = cTempChar)break;GetRandomCharacter(&cTempChar);fseek(fpFilePointer, lCurrentPosition, SEEK_SET);fputc(cTempChar, fpFilePointer);lCurrentPosition = lCurrentPosition + 1; fseek(fpFilePointer, lCurrentPositi

12、on, SEEK_SET);fclose(fpFilePointer);fpFilePointer = NULL;if ( 0 != remove(pcFilePath) )删除文件失败,打印错误信息printf(nfail to remove file %s, pcFilePath) ;return;在函数 DeleteFile 中,函数每从文件中读出一个字符就调用GetRandomCharacter 函数对该字符进行了操作, 并将进行操作后的字符写回文件中。 这样就能够保证要被删除的文件 中的内容也经过处理了。 而处理的方法可以是将文件中的内容都设置成零, 也可以是对原有 信息进行操作。本

13、文也以 C 语言为例,给出了如下两种实现方式。void GetRandomCharacter (char* pcChar)int iOperator = 0;int iOperand = 0;randomize();iOperator = random (4);iOperand = random (128);switch(iOperator)case 1:*pcChar = *pcChar + iOperand;break;case 2:*pcChar = *pcChar - iOperand;break;case 3:*pcChar = *pcChar * iOperand;break;de

14、fault:*pcChar = iOperand;break;return;3. 应用系统剩余信息保护的检测方法简介在应用系统剩余信息保护的检测方面,主要从访谈、检查和测试三部分分别描述。1) 访谈询问应用系统开发人员,是否对应用系统中的剩余信息进行了保护。如果开发人员连 剩余信息保护的概念都不清楚,那么也就不可能对剩余信息进行保护。2) 检查查看源代码,看在内存释放或者删除文件前,应用系统是否进行了处理。检查应用系 统操作手册中是否有相关的描述。3) 测试为了确认内存中是否有剩余信息,可以在采用内存扫描软件(或者内存监视软件)进 行扫描。对于存储在磁盘中的文件, 可以尝试在应用系统删除文件后, 用恢复软件恢复文件, 并对比恢复文件和原文件。4. 总结和讨论本文主要针对等保应用安全对剩余信息保护的技术实现和检测做了介绍。对于通用操 作系统来说, 考虑到系统的运行效率, 没有在系统内核层面默认实现剩余信息保护功能, 只 能通过第三方工具来实现 (2)。对剩余信息的清

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论