信息系统安全测评集成工具的研究与开发毕业论文.doc_第1页
信息系统安全测评集成工具的研究与开发毕业论文.doc_第2页
信息系统安全测评集成工具的研究与开发毕业论文.doc_第3页
信息系统安全测评集成工具的研究与开发毕业论文.doc_第4页
信息系统安全测评集成工具的研究与开发毕业论文.doc_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

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

文档简介

刘砺锋 本地系统安全配置检测 信息系统安全测评集成工具的研究与开发毕业论文信息系统安全测评集成工具的研究与开发毕业论文 目 录 摘要 I ABSTRACT II 第一章 引 言 1 1 1 研究背景 1 1 2 课题来源 2 1 3 研究主要内容 2 1 4 国内外研究现状 2 1 4 1本土化阶段 2 1 4 2多国化阶段 3 1 4 3国际化阶段 3 1 4 4国内研究现状 4 1 5 论文结构 5 1 6 小结 5 第二章 关键技术概述 6 2 1 MFC 程序设计 6 2 1 1MFC 开发环境 6 2 1 2MFC 主要技术 6 2 2 组策略 8 2 2 1组策略概述 8 2 2 2运行方式 9 2 2 3 MMC 管理单元 9 2 3 注册表 10 2 3 1注册表简介 10 2 3 2注册表的组成和作用 10 2 3 3注册表的分支 键和数据类型 11 2 3 4注册表和组策略的关系 12 2 4 注册表和组策略对应关系 12 2 5 小结 14 第三章 需求分析 15 3 1 基本需求 15 3 2 功能需求 15 3 3 性能需求 16 3 4 运行环境需求 16 中原工学院计算机学院毕业 设计 论文 I 3 5 小结 16 第四章 系统设计与实现 17 4 1 总体设计 17 4 2 详细设计 18 4 2 1主要模块分析设计 18 4 2 2核心函数 用于注册表信息的提取和显示 19 4 2 3注册表读取路径 23 4 2 4主界面设计 26 4 2 5分类模块设计 26 4 2 6系统自动检测 30 4 3 小结 31 第五章 系统测试 32 5 1 测试目的 32 5 2 测试环境 32 5 3 测试过程 32 5 4 结果分析 37 5 5 小结 38 第六章 结论 39 参考文献 40 附 录 41 刘砺锋 本地系统安全配置检测 0 第一章 引 言 1 1 研究背景 随着我国国民经济和社会信息化进程的加快 网络与信息系统的基础性 全局性作用日益增强 经济社会发展对网络和信息系统的依赖性也越来越大 但由于网络与信息系统自身存在的缺陷 脆弱性以及面临的威胁 使信息系统 的运行客观上存在着潜在风险 国家信息化领导小组关于加强信息安全保障工 作的意见 中办发 2003J27 号 明确提出 要重视信息安全风险评估工作 对 网络与信息系统安全的潜在威胁 薄弱环节 防护措施等进行分析评估 综合 考虑网络与信息系统的重要性 涉密程度和面临的信息安全风险等因素 进行 相应等级的安全建设和管理 将开展信息安全风险评估工作作为提高我国信息 安全保障水平的一项重要举措 面对日益增长的信息系统安全需求 单靠技术是不可能从根本上解决信息 系统安全问题的 信息系统的安全应从系统工程的角度来看待 而在这项系统 工程中安全测评占有重要地位 它是信息系统安全的基础和前提 因此 必须 针对各种不同的威胁和系统的脆弱性 全方位地 系统化地评测一个信息系统 了解系统当前和未来的信息系统安全风险所在 测评这些安全问题可能带来的 安全威胁与影响程度 为安全策略的确定 信息系统的建立及系统安全运行提 供依据 制定信息系统的安全措施 如此才能确保信息系统安全性 我国信息安全保障工作总体上还处于起步阶段 基础薄弱 存在不少亟待 解决的问题 主要表现在 1 安全保密观念淡薄 对面临的信息安全威胁和存在的隐患缺乏足够 的认识 一些网络与信息系统不设防的情况依然存在 网络失密事件屡屡发 生 2 信息安全法律法规不够完善 现行法规不能完全适应信息安全的新 形势 3 信息安全保障制度不健全 责任不落实 管理不到位 4 信息安全自主可控能力不强 关键技术和产品受制于人 安全防护 薄弱 5 信息安全服务机构专业化程度不高 行为不规范 还不能为社会提 供系统的信息安全技术服务 6 信息安全技术与管理人才缺乏 远不能适应信息安全保障工作和信 中原工学院计算机学院毕业 设计 论文 1 息化发展的要求 随着信息技术的快速发展 特别是我国信息化进程的全面加快 网络与信 息系统的基础性 全局性作用日益增强 信息系统的安全的重要性也日益增强 因此信息系统安全的检测和评估在信息系统安全中占有重要的地位 1 2 课题来源 事实表明 人们在意识到信息安全风险的同时 仍不能有效地利用已有的 安全措施保护自己的信息资产 无法应对来自因特网或组织内部的威胁 无法 对信息系统当前的安全状况做出正确的判断 在这种情况下 信息系统安全测 评相关方法和工具的研究受到越来越多的研究人员的关注 成为近年来信息安 全领域的一个重要研究方向 因此信息系统安全测评集成工具的研究与开发也 势在必行 1 3 研究主要内容 本课题研究的内容主要包括以下内容 研究开发一个可以检测信息安全配置的软件 主要用来检测计算机本地安全 配置信息 并把配置信息显示出来 对不安全配置指出 便于用户查看 使用 户能大致了解自己计算机策略配置 1 4 国内外研究现状 1 4 1 本土化阶段 根据国防信息系统的保密需要 美国国防部于 1983 年开发了 可信计算机 系统安全评估准则 简称 TCSEC Trusted Computer System Evaluation Criteria 1985 年 TCSEC 经修改后正式发布 由于采用了橘色书皮 人们通常称其为 橘 皮书 后来在美国国防部国家计算机安全中心 NCSC 的主持下制定出了一系列 相关准则 由于每本书使用不同颜色的书皮 人们将其称之为彩虹系列 这些 准则从用户登录 授权管理 访问控制 审计踪迹 隐通道分析 可信通道建 立 安全检测 生命周期保障 文本写作 用户指南等方面均提出了规范性要 求 并且 准则根据所采用的安全策略 系统所具备的安全功能将系统分为四 类七个安全级别 验证设计 安全区域 结构化保护 标识的安全保护 受控 制的访问控制 自主安全保护 低级保护 TCSEC 第一次使用了公正的第三方 利用技术分析和测试手段 获取证据 刘砺锋 本地系统安全配置检测 2 来证明开发者正确有效地实现了标准要求的安全功能 它运用的主要安全策略 是访问控制机制 考虑的安全问题大体上局限于信息的保密性 所依据的安全 模型则是 Bell Lapadula 模型 该模型所制定的最重要的安全准则 严禁上读 下写 针对的就是信息的保密要求 TCSEC 最主要的不足是 其仅是针对操作系统的评估 而且只考虑了保密 性需求 该标准事实上成了美国国家信息安全评估标准 对世界各国也产生了 广泛影响 其的制定极大地推动了国际信息系统安全评估的研究 使信息系统 安全评估准则的研究进入了第二个阶段 1 4 2 多国化阶段 由于信息安全评估技术的复杂性和信息安全产品国际市场的逐渐形成 单 靠一个国家自行制定并实行自己的评估标准已不能满足国际交流的要求 于是 多国共同制定统一的信息安全产品评估标准被提了出来 德国信息安全局在 1990 年发出号召 与英 法 荷三国一起迈开了联合制定评估标准的步伐 1991 终于推出了 信息技术安全评估标准 简称 ITSEC 除了吸取 TCSEC 的成 功经验外 ITSEC 首次提出了信息安全的保密性 完整性 可用性的概念 把 可信计算机的概念提高到可信信息技术的高度上去认识 他们的工作成为欧共 体信息安全计划的基础 并对国际信息安全的研究 实施带来了深刻的影响 并在事实上成为欧盟各国使用的共同评估标准 ITSEC 也定义了 7 个安全级别 即 E6 形式化验证 E5 形式化分析 E4 半形式化分析 E3 数字化测试分析 E2 数字化测试 El 功能测试 EO 能充分满足保证 加拿大也在同期制定了 加拿大计算机产品评估准则 的第一版 称为 CTCPEC 其第三版于 t993 年公布 吸取了 ITSEC 和 TCSEC 的长处 并将安全 清晰地分为功能性要求和保证性要求两部分 上述这两个安全性测评准则不仅 包含了对计算机操作系统的评估 还包含了现代信息网络系统所包含的通信网 络和数据库方面的安全性评估准则 1 4 3 国际化阶段 为了紧紧把握信息安全产品技术与市场的主导权 美国在欧洲四国出台 ITSEC 之后 立即倡议欧美六国七方 即英 法 德 荷 加五国国防信息安全 机构 加上美国国防部国家安全局 NSA 和美国商务部国家标准与技术局 NIST 共 同制定一个供欧美各国通用的信息安全评估标准 前述的几个评估标准终于走 中原工学院计算机学院毕业 设计 论文 3 到了一起 形成了 信息技术安全性通用评估准则 简称 CC CC 的 0 9 版于 1994 年问世 而 1 0 版则于 1996 年出版 1997 年 有关方面提交了 CC 的 2 0 版的草案版 1998 年正式发行 1999 年发行了 CC2 1 版 CC2 1 版于 1999 年 12 月被 ISO 批准为国际标准 编号 ISO IEC15408 至此 国际上统一 度量信息技术安全性的评估准则宣告形成 CC 吸收了各先进国家对现代信息系 统安全的经验和知识 对信息安全的研究与应用带来了深刻影响 在通用准则 2 x 的基础上 国际通用准则管理机构 CCMB 根据来自用户方 开发方 评估 方以及相关专家组织的反馈 对通用准则 CC 和通用评估方法 CEM 进行了较大 改进 于 2005 年 7 月发布了 CCV3 O 征求意见稿 并提供了广泛评论 国际 通用准则管理机构 CCMB 综合这些意见 对 CC3 O 进行了修订 于 2006 年 9 月发布了通用准则 3 1 的官方正式版本 CC 的最新版本为 V3 2 但最近 CCMB 仍把 V3 1 确定为正式的官方版本 CC 的评估等级共分 7 级 EALl 到 EAL7 分别为功能测试 结构测试 系 统测试和检验 系统设计 测试和评审 半形式化设计和测试 半形式化验证 的设计和测试 形式化验证的设计和测试 1 4 4 国内研究现状 我国信息安全标准化工作 虽然起步较晚 但是近 lO 年来发展较快 在国 家质量技术监督局领导下 全国信息化标准委员会及其下属的信息安全分技术 委员会在制订我国信息安全标准方面做了大量的工作 国标 国军标 行业标 准对信息安全领域均有涉及 为适应我国信息化的迅猛发展 1997 年国务院拔 出专款设立标准攻关项目 应急制订数十项技术标准 它们成为我国信息安全 测评认证的基础 为提高我国计算机信息系统安全保护水平 1994 年 国务院发布了 147 号 令 中华人民共和国计算机信息系统安全保护条例 要求实行安全等级保护 1999 年 9 月国家质量技术监督局发布了国家标准 GB 17859 1999 计算机信息 安全保护等级划分准则 其是建立安全等级保护制度 实施安全等级管理的重 要基础性标准 该标准的制定参照了美国的 TCSEC 及 TNI 有三个主要目的 一是为计算机信息系统安全法规的制定和执法部门的监督检查提供依据 二是 为安全产品的研制提供技术支持 三是为安全系统的建设和管理提供技术指导 从目前的国际共识看 CC 代表了信息安全测评的发展方向 我国也于 2001 年 颁布了 GB T18336 等同于 IS0 IECl5408 该标准已成为我国信息系统安全 测评的依据 刘砺锋 本地系统安全配置检测 4 国务院信息办安全组为落实中办发 2003 27 号文的要求 于 2003 年 7 月 成立了 信息安全风险评估课题组 对信息安全风险评估工作的现状进行全面 深入了解 提出我国开展信息安全风险评估的对策和办法 为下一步信息安全 的建设和管理做准备 目前 CB T20984 信息安全技术信息安全风险评估规范 已正式发布实施 信息安全风险管理指南 初稿也已完成 为一下步全面推广 风险评估工作提供了理论依据和指南 1 5 论文结构 本论文主要包括以下章节 第一章 引言 本章主要介绍了论文的研究背景 课题来源 研究意义 国 内外研究现状 设计任务 主要工作和论文结构 第二章 关键技术概述 本章对本地安全策略配置需要检测的内容作出分析 列举出本课题中主要用到的技术 第三章 需求分析 本章介绍了本地安全配置检测系统的需求分析 给出了 基本需求和功能需求 第四章 系统设计与实现 本章给出了系统的总体设计方案 详细说明本地 安全配置检测子系统包含的各个模块 对系统如何实现做出了详细的解释 第五章 系统测试 本章对整个系统进行了全面的测试 并显示出测试结果 第六章 总结 对整个系统的总体设计以及本地安全配置检测系统的开发进 行了总结 1 6 小结 本章阐述了 本地系统安全配置模块 的课题来源 研究意义 对国内外 研究现状做了大致分析 并对设计任务和主要工作做了简要介绍 最后给出了 本文的组织结构 中原工学院计算机学院毕业 设计 论文 5 第二章 关键技术概述 本地系统安全配置检测模块中 主要的技术问题是实现对计算机安全配置 信息的读取和显示 其中组策略是显示和更改安全配置的主要途径 而组策略 的配置信息在注册表里都有显示 所以问题关键就变成了对注册表信息的提取 和显示 本次检测软件是基于 VC6 0 用到的编程技术就是 MFC 程序设计 综 上所述 要解决的核心问题就是找到组策略各项跟注册表的对应关系 对注册 表信息的提取 对配置信息的显示 对配置是否安全做出判断 2 1 MFC 程序设计 2 1 1MFC 开发环境 MFC 实际上是微软提供的 用于在 C 环境下编写应用程序的一个框架和引 擎 VC 是 Windows 下开发人员使用的专业 C SDK SDK Standard SoftWare Develop Kit 专业软件开发平台 MFC 就是挂在它之上的一个辅助软件开发包 MFC 作为与 VC 血肉相连的部分 注意 C 和 VC 的区别 C 是一种程序设计 语言 是一种大家都承认的软件编制的通用规范 而 VC 只是一个编译器 或 者说是一种编译器 源程序编辑器的 IDE IDE 的英文 IntegratedDevelopment Environment 即 集成开发环境 MFC 是 WinAPI 与 C 的结合 API 即 微软提供的 Windows 下应用程序的编程语言接口 是一种软件编程的规范 但 不是一种程序开发语言本身 可以允许用户使用各种各样的第三方 如我是一方 微软是一方 Borland 就是第三方 的编程语言来进行对 Windows 下应用程序的 开发 使这些被开发出来的应用程序能在 Windows 下运行 比如 VB VC Java Delhpi 编程语言函数本质上全部源于 API 因此用它们开 发出来的应用程序都能工作在 Windows 的消息机制和绘图里 遵守 Windows 作 为一个操作系统的内部实现 2 1 2MFC 主要技术 1 MFC 程序的初始化过程 建立一个 MFC 窗口很容易 只用两步 一是从 CWinApp 派生一个应用程序 类 这里是 MyApp 然后建立应用程序对象 theApp 就可以产生一个自 己需要的窗口 即需要什么样就在 InitInstance 里创建就行了 2 运行时类型识别 RTTI 刘砺锋 本地系统安全配置检测 6 运行时类型识别 RTTI 即是程序执行过程中知道某个对象属于某个类 我们平时用 C 编程接触的 RTTI 一般是编译器的 RTTI 即是在新版本的 VC 编译器里面选用 使能 RTTI 然后载入 typeinfo h 文件 就可以使用一个 叫 typeid 的运算子 它的地位与在 C 编程中的 sizeof 运算子类似的地 方 包含一个头文件 然后就有一个熟悉好用的函数 typeid 关键的地方 是可以接受两个类型的参数 一个是类名称 一个是对象指针 3 动态创建 动态创建就是运行时创建指定类的对象 在 MFC 中大量使用 如框架窗口 对象 视对象 还有文档对象都需要由文档模板类对象来动态的创建 我觉得 这是每个 MFC 的学习者很希望理解的问题 写 MFC 程序的时候 我们几乎要对每个大类进行派生改写 换句话说 MFC 并不知道我们打算怎样去改写这些类 当然也不打算全部为我们 静态 创建 这些类了 即使静态了创建这些类也没有用 因为我们从来也不会直接利用这 些类的实例干什么事情 我们只知道 想做什么事情就往各大类里塞 不管什 么变量 方法照塞 塞完之后 我们似乎并未实例化对象 程序就可以运行 4 永久保存 MFC 的连续存储 serialize 机制俗称串行化 在你的程序中尽管有着 各种各样的数据 serialize 机制会象流水一样按顺序存储到单一的文件中 而又能按顺序地取出 变成各种不同的对象数据 不知我在说上面这一句话 的时候 大家有什么反应 可能很多朋友直觉是一件很简单的事情 只是说了 一个 爽 字就没有下文了 5 消息映射 消息映射与命令传递体现了 MFC 与 SDK 的不同 在 SDK 编程中 没有消息 映射的概念 它有明确的回调函数中 通过一个 switch 语句去判断收到了何种 消息 然后对这个消息进行处理 所以 在 SDK 编程中 会发送消息和在回调 函数中处理消息就差不多可以写 SDK 程序了 在 MFC 中 看上去发送消息和处理消息比 SDK 更简单 直接 但可惜不直 观 举个简单的例子 如果我们想自定义一个消息 SDK 是非常简单直观的 用一条语句 SendMessage hwnd message wparam lparam 之后就可以在回调 函数中处理了 但 MFC 就不同了 因为你通常不直接去改写窗口的回调函数 所以只能亦步亦趋对照原来的 MFC 代码 把消息放到恰当的地方 这确实是一 样很痛苦的劳动 6 消息传递 中原工学院计算机学院毕业 设计 论文 7 有了消息映射表之后 我们得讨论到问题的关键 那就是消息发生以后 其对应的响应函数如何被调用 大家知道 所有的 MFC 窗口 都有一个同样的 窗口过程 AfxWndProc 在这里顺便要提一下的是 看过 MFC 源代码的 朋友都得 从 AfxWndProc 函数进去 会遇到一大堆曲折与迷团 因为对于这个 庞大的消息映射机制 MFC 要做的事情很多 如优化消息 增强兼容性等 这 一大量的工作 有些甚至用汇编语言来完成 对此 我们很难深究它 所以我 们要省略大量代码 理性地分析它 2 2 组策略 2 2 1 组策略概述 组策略 Group Policy 是管理员为用户和计算机定义并控制程序 网络 资源及操作系统行为的主要工具 通过使用组策略可以设置各种软件 计算机 和用户策略 所谓组策略 就是基于组的策略 它以 Windows 中的一个 MMC 管理单元的 形式存在 可以帮助系统管理员针对整个计算机或是特定用户来设置多种配置 包括桌面配置和安全配置 譬如 可以为特定用户或用户组定制可用的程序 桌面上的内容 以及 开始 菜单选项等 也可以在整个计算机范围内创建特 殊的桌面配置 简而言之 组策略是 Windows 中的一套系统更改和配置管理工 具的集合 图图 2 12 1 组策略界面组策略界面 刘砺锋 本地系统安全配置检测 8 2 2 2 运行方式 在 Windows 2000 XP 2003 系统中 系统默认已经安装了组策略程序 在 开始 菜单中 单击 运行 选项 输入 gpedit msc 并确定 即可运行 组策略 或者把 gpedit msc 复制到新建的一个 TXT 文档 最后改扩展名为 bat 以后直接双击就可以进入 使用上面的方法 打开的组策略对象是当前的计算机 而如果需要配置其 他的计算机组策略对象 则需要将组策略作为独立的 MMC 管理单元打开 Microsoft 管理控制台 可在 开始 菜单的 运行 对话框中直接输入 MMC 并确定 单元 菜单命令 在打开的对话框中单击 添加 按钮 单元 对话框中 单击 组策略 选项 然后单击 添加 按钮 组策略对象 对话框中 单击 本地计算机 选项编辑本地计算机对象 或通过单击 浏览 查找所需的组策略对象 策略管理单元即打开要编辑的组策略对象 配置 已禁用 选项即可对计算机策略进行管理 2 2 3 MMC 管理单元 若要在 MMC 控制台中通过选择 GPE 插件来打开组策略编辑器 具体方法如 下 1 单击选择 开始 运行 命令 在弹出的对话框中键入 mmc 然后单击 确定 按扭 打开 Microsoft 管理控制台窗口 2 选择 文件 菜单下的 添加 删除管理单元 命令 3 在 添加 删除管理单元 窗口的 独立 选项卡中 单击 添加 按扭 4 弹出 添加独立管理单元 对话框 并在 可用的独立管理单元 列 表中选择 组策略 选项 单击 添加 按钮 5 由于是将组策略应用到本地计算机中 故在 选择组策略对象 对话 框中 单击 本地计算机 编辑本地计算机对象 或通过单击 浏览 按扭查 找所需的组策略对象 6 单击 完成 关闭 确定 按扭 组策略管理单元即可打开 要编辑的组策略对象 中原工学院计算机学院毕业 设计 论文 9 2 3 注册表 2 3 1 注册表简介 注册表 Registry 是 Microsoft Windows 中的一个重要的数据库 用于存 储系统和应用程序的设置信息 早在 Windows 3 0 推出 OLE 技术的时候 注册 表就已经出现 随后推出的 Windows NT 是第一个从系统级别广泛使用注册表 的操作系统 但是 从 Microsoft Windows 95 开始 注册表才真正成为 Windows 用户经常接触的内容 并在其后的操作系统中继续沿用至今 2 3 2 注册表的组成和作用 注册表是 windows 操作系统中的一个核心数据库 其中存放着各种参数 直接控制着 windows 的启动 硬件驱动程序的装载以及一些 windows 应用程序 的运行 从而在整个系统中起着核心作用 这些作用包括了软 硬件的相关配 置和状态信息 比如注册表中保存有应用程序和资源管理器外壳的初始条件 首选项和卸载数据等 联网计算机的整个系统的设置和各种许可 文件扩展名 与应用程序的关联 硬件部件的描述 状态和属性 性能记录和其他底层的系 统状态信息 以及其他数据等 注册表由键 或称 项 子键 子项 和值项构成 一个键就是分支 中的一个文件夹 而子键就是这个文件夹中的子文件夹 子键同样是一个键 一个值项则是一个键的当前定义 由名称 数据类型以及分配的值组成 一个 键可以有一个或多个值 每个值的名称各不相同 如果一个值的名称为空 则 该值为该键的默认值 在注册表编辑器 Regedit exe 中 数据结构显示如下 其中 command 键是 open 键的子键 默认 表示该值是默认值 值名称为空 其数据类型为 REG SZ 数据值为 systemroot system32 NOTEPAD EXE 1 图图 2 22 2 注册表键值注册表键值 以上信息的意义是 txt 类型的文档在右键菜单里的 打开 一项使用的程序 是 NOTEPAD EXE 即用记事本打开文档 刘砺锋 本地系统安全配置检测 10 2 3 3 注册表的分支 键和数据类型 注册表数据类型 注册表的数据类型主要有以下五种 表表 2 12 1 注册表数据类型注册表数据类型 显示类型 在编辑器中 数据类型说明 REG SZ字符串文本字符串 REG BINARY二进制数二进制值 以十六进制显示 REG DWORD双字 一个 32 位的二进制值 显示为 8 位的 十六进制值 REG MULTI SZ多字符串含有多个文本值的字符串 REG EXPAND SZ 可扩充字 符串 此外 注册表还有其他的数据类型 但是均不常用 REG DWORD BIG ENDIAN REG DWORD LITTLE ENDIAN 注册表的分支 注册表有五个分支 下面是这五个分支的名称及作用 表表 2 22 2 注册表分支及作用注册表分支及作用 名称作用 HKEY CLASSES ROOT 存储 Windows 可识别的文档类型的详细列表 以及相关联的程序 HKEY CURRENT USER存储当前用户设置的信息 HKEY LOCAL MACHINE 包括安装在计算机上的硬件和软件的信息 HKEY USERS包含使用计算机的用户的信息 HKEY CURRENT CONFI G 这个分支包含计算机当前的硬件配置信息 中原工学院计算机学院毕业 设计 论文 11 2 3 4 注册表和组策略的关系 注册表是 Windows 系统中保存系统软件和应用软件配置的数据库 而随着 Windows 功能越来越丰富 注册表里的配置项目也越来越多 很多配置都可以 自定义设置 但这些配置分布在注册表的各个角落 如果是手工配置 可以想 像是多么困难和烦杂 而组策略则将系统重要的配置功能汇集成各种配置模块 供用户直接使用 从而达到方便管理计算机的目的 其实简单地说 组策略设置就是在修改注册表中的配置 当然 组策略使 用了更完善的管理组织方法 可以对各种对象中的设置进行管理和配置 远比 手工修改注册表方便 灵活 功能也更加强大 2 4 注册表和组策略对应关系 组策略信息在注册表中基本都有显示 所以要把它们一一在注册表中找出 来 以下是本程序信息的对应 注册用户 HKEY LOCAL MACHINE SOFTWARE Microsoft WindowsNT CurrentVersio n RegisteredOwner REG SZ 交互式登录 不显示最后的用户名 MACHINE Software M Windows CurrentVersion Policies System ontDisplayLastUserName REG DWORD 0 停用 1 启用 用户试图登录时消息文字 MACHINE Software M Windows CurrentVersion Policies System LegalNoticeText REG SZ 登录时间过期后注销用 MACHINE System CurrentControlSet Services LanManServer Parameters EnableForcedLogOff REG DWORD 0 停用 1 启用 可被缓冲保存的前次登录个数 MACHINE Software M WindowsNT CurrentVersion Winlogon CachedLogonsCount REG SZ 在密码到期前提示用户更改密码天数 MACHINE Software M WindowsNT CurrentVersion Winlogon asswordExpiryWarning REG DWORD 审核帐户管理 刘砺锋 本地系统安全配置检测 12 FullPrivilegeAuditing REG BINARY 0 停用 1 启用 关机 清除虚拟内存页面文件 MACHINE System CurrentControlSet Control SessionManager MemoryManageme nt ClearPageFileAtShutdown REG DWORD 数据 0 停用 1 启用 防止用户安装打印机驱动程序 MACHINE System CurrentControlSet Control Print Providers LanManPrintServices Servers AddPrinterDrivers REG DWORD 数据 0 停用 1 启用 未签名驱动程序的安装操作 MACHINE Software M DriverSigning olicy REG BINARY 数据 0 默认安装 1 允许安装但发出警告 2 禁止安装 未签名非驱动程序的安装操作 MACHINE Software M Non DriverSigning olicy REG BINARY 数据 0 默认安装 1 允许安装但发出警告 2 禁止安装 只有本地登录的用户才能访问 CD ROM MACHINE Software M WindowsNT CurrentVersion Winlogon AllocateCDRoms REG SZ 数据 0 停用 1 启用 网络安全 LAN 管理器身份验证级别 MACHINE System CurrentControlSet Control Lsa LmCompatibilityLevel REG DWORD 0 发送 LM 注册表中主要数据类型有 REG SZ REG DWORD 要有函数调用注册表信息 对 REG SZ 型数据的调用 HKEY hkey LPCTSTR path Software Microsoft Windows NT CurrentVersion LONG return0 RegOpenKeyEx HKEY LOCAL MACHINE path 0 KEY READ 其中 RegOpenKeyEx 是用来打开注册表的函数 后面的 HKEY LOCAL MACHINE 是打开注册表的主键 path 是后面定义的路径 是 一个指针 指向要打开的位置 0 是一个保留字设为 0 KEY READ 是安全访 问标记 意思为读取权限 最后一个 return If 是判断 打开注册表的函数会返回两个值 它是 BOOL 类型的 打开成 功的时候会返回 ERROR SUCCESS 打开失败的时候会返回 ERROR FAIL 所以通过一个 if 判断 可以判断出注册表打开是否成功 如果不成功就会弹出 对话框并告诉用户 打开注册表失败 LPBYTE UN new BYTE 80 中原工学院计算机学院毕业 设计 论文 19 DWORD type 1 REG SZ DWORD cbData 1 80 这里定义了几个指针 用来传递将要查询的信息 LPBYTE 是一个字符串 指针 指向 8 位的字符串 用来传递读取出的数据信息 DWORD type 1 REG SZ 是指定了要读取数据的类型 DWORD cbData 1 80 定义了长 度 即装载 lpData 缓冲区长度的一个变量 LONG return1 RegQueryValueEx hkey RegisteredOwner NULL RegQueryValueEx 是查询函数 hkey 是一个已打开项的句柄 即在上一个 函数中传递给了 hkey 一个路径 RegisteredOwner 就是路径下的键的名字 NULL 是保留字 DWORD type 1 是指定了要读取数据的类型 UN 用来传递读 取出来的信息 cbData 1 80 定义了长度为 80 if return1 ERROR SUCCESS MessageBox 查询注册表出错 return If 是判断 查询注册表的函数会返回两个值 它是 BOOL 类型的 查询成 功的时候会返回 ERROR SUCCESS 查询失败的时候会返回 ERROR FAIL 所以通过一个 if 判断 可以判断出注册表查询是否成功 如果不成功就会弹出 对话框并告诉用户 查询注册表失败 m show1 UN UpdateData FALSE delete UN RegCloseKey hkey m show1 是编辑框变量 通过打开和查询函数 已经把要查询的信息传递 给了 UN UN 再传递给编辑框变量 UpdateData FALSE 更新变量数据 delete UN 销毁数据 RegCloseKey hkey 关闭注册表 注册表中主要数据类型有 REG SZ REG DWORD 要有函数调用注册表 信息 对 REG DWORD 型数据的调用 KEY hkey 刘砺锋 本地系统安全配置检测 20 LPCTSTR path SYSTEM CurrentControlSet Control Lsa LONG return0 RegOpenKeyEx HKEY LOCAL MACHINE path 0 KEY READ if return0 ERROR SUCCESS MessageBox 打开注册表出错 return 其中 RegOpenKeyEx 是用来打开注册表的函数 后面的 HKEY LOCAL MACHINE 是打开注册表的主键 path 是后面定义的路径 是 一个指针 指向要打开的位置 0 是一个保留字设为 0 KEY READ 是安全访 问标记 意思为读取权限 最后一个 DWORD type 1 REG DWORD DWORD cbData 1 80 这里定义了几个指针 用来传递将要查询的信息 LPBYTE 是一个字符串 指针 指向 8 位的字符串 用来传递读取出的数据信息 DWORD type 1 REG SZ 是指定了要读取数据的类型 DWORD cbData 1 80 定义了长 度 即装载 lpData 缓冲区长度的一个变量 LONG return1 RegQueryValueEx hkey restrictanonymous NULL if return1 ERROR SUCCESS MessageBox 查询注册表出错 return RegQueryValueEx 是查询函数 hkey 是一个已打开项的句柄 即在上一个 函数中传递给了 hkey 一个路径 RegisteredOwner 就是路径下的键的名字 中原工学院计算机学院毕业 设计 论文 21 NULL 是保留字 DWORD type 1 是指定了要读取数据的类型 UN 用来传递读 取出来的信息 cbData 1 80 定义了长度为 80 If 是判断 查询注册表的函数会返回两个值 它是 BOOL 类型的 查询成 功的时候会返回 ERROR SUCCESS 查询失败的时候会返回 ERROR FAIL 所以通过一个 if 判断 可以判断出注册表查询是否成功 如果不成功就会弹出 对话框并告诉用户 查询注册表失败 DWORD a change UN delete UN change 函数是字符转换函数 主要作用是把 DWORD 数据类型转换为字符型 函数结果是返回一个字符型指针 具体描述见后 RegCloseKey hkey 关闭注册表 if a 0 m Shutdown 停用 m safe2 危险 if a 1 m Shutdown 启用 m safe2 安全 UpdateData FALSE 这里是判断电脑配置的安全性 前面已经把信息传递给了编辑框变量 这 里对变量进行判断 在注册表中 大部分情况是 当值为 0 的时候表示该项停 用 当值为 1 的时候表示该项启用 所以通过其是否启用判断配置安全性 比 如是 否显示上次登录用户名 这一项 当其值为 0 的时候 该项停用 这时 候我们可以判断它是危险的 当其值为 1 的时候 该项启用 这时候我们可以 判断它是安全的 所以这两个 if 函数判断了其安全性 上面提到有一个函数是实现 REG DWORD 数据的转化 change 函数 定义如下 int change LPBYTE c DWORD a 0 b 0 刘砺锋 本地系统安全配置检测 22 for int i 0 i 4 i b static cast c for int j i j 0 j b 256 a b return a 主要作用是把 DWORD 数据类型转换为字符型 函数结果是返回一个字符 型指针 这里有个循环是因为 LPBYTE 是一个字符串指针 只能保存 8 为的字 符串 而 DWORD 是 32 位 所以指针只能读取前八位 要想全部读取就要进 行循环 经过四次循环就可以读取出全部 32 位的内容了 4 2 3 注册表读取路径 以下是本程序检测信息用到的的对应 把这些配置的信息在注册表里保存的位 置找出来 再查询注册表键值 注册用户 HKEY LOCAL MACHINE SOFTWARE Microsoft WindowsNT CurrentVersio n RegisteredOwner REG SZ 交互式登录 不显示最后的用户名 MACHINE Software M Windows CurrentVersion Policies System ontDisplayLastUserName REG DWORD 0 停用 1 启用 用户试图登录时消息文字 MACHINE Software M Windows CurrentVersion Policies System LegalNoticeText REG SZ 登录时间过期后注销用 MACHINE System CurrentControlSet Services LanManServer Parameters EnableForcedLogOff REG DWORD 0 停用 1 启用 可被缓冲保存的前次登录个数 MACHINE Software M WindowsNT CurrentVersion Winlogon CachedLogonsCount REG SZ 在密码到期前提示用户更改密码天数 中原工学院计算机学院毕业 设计 论文 23 MACHINE Software M WindowsNT CurrentVersion Winlogon asswordExpiryWarning REG DWORD 审核帐户管理 FullPrivilegeAuditing REG BINARY 0 停用 1 启用 关机 清除虚拟内存页面文件 MACHINE System CurrentControlSet Control SessionManager MemoryManageme nt ClearPageFileAtShutdown REG DWORD 数据 0 停用 1 启用 防止用户安装打印机驱动程序 MACHINE System CurrentControlSet Control Print Providers LanManPrintServices Servers AddPrinterDrivers REG DWORD 数据 0 停用 1 启用 未签名驱动程序的安装操作 MACHINE Software M DriverSigning olicy REG BINARY 数据 0 默认安装 1 允许安装但发出警告 2 禁止安装 未签名非驱动程序的安装操作 MACHINE Software M Non DriverSigning olicy REG BINARY 数据 0 默认安装 1 允许安装但发出警告 2 禁止安装 只有本地登录的用户才能访问 CD ROM MACHINE Software M WindowsNT CurrentVersion Winlogon AllocateCDRoms REG SZ 数据 0 停用 1 启用 网络安全 LAN 管理器身份验证级别 MACHINE System CurrentControlSet Control Lsa LmCompatibilityLevel REG DWORD 0 发送 LM standard constructor void first void second void third void forth void fifth void sixth protected DECLARE MESSAGE MAP 我在头文件中声明了六个函数 分别是用来显示 6 个检测项目的信息 然 后响应事件的时候分别调用这六个函数 void CUSER OnButton1 TODO Add your control notification handler code here first second third forth fifth sixth 当点击 button 的时候 就会依次调用这些函数 这些函数就是分别用来显 示各项注册表的信息的 下面是这些函数的定义 差别不大 以第一个为例 void CUSER first HKEY hkey LPCTSTR path Software Microsoft Windows NT CurrentVersion 中原工学院计算机学院毕业 设计 论文 27 LONG return0 RegOpenKeyEx HKEY LOCAL MACHINE path 0 KEY READ if return0 ERROR SUCCESS MessageBox 打开注册表出错 return LPBYTE UN new BYTE 80 DWORD type 1 REG SZ DWORD cbData 1 80 LONG return1 RegQueryValueEx hkey RegisteredOwner NULL if return1 ERROR SUCCESS MessageBox 查询注册表出错 return 系统通过调用函数 RegOpenKeyEx 和 RegQueryValueEx 来打开注册表和 查询注册表信息 然后 m username UN 把读取到的数值传递给编辑框对应的变 量 由于注册表主要有两种数据类型 REG SZ 和 REG DWORD 在这个例子 中没有数据转换 因为这个是 REG SZ 长度固定的文本字符串 所以不用做数 据类型转换 后面的 REG DWORD 要用到转换 这里说下转换 REG DWORD 是 32 位数字类型 但是读取注册表信息的函数只能通过一个字 符串指针 LPBYTE 传递 所以要把信息传递出来要进行数据转换 这里用到的 转换函数为 static cast 这样可以把这个数值传递出来 m username UN UpdateData FALSE delete UN RegCloseKey hkey m safe2 安全 UpdateData FALSE 刘砺锋 本地系统安全配置检测 28 但是还有个问题 经过实际测试 当数值超过 255 的时候 会出现结果是 乱码 后来查询发现 LPBYTE 是一个字符串指针 只能保存 8 位 而 REG DWORD 是 32 位数据 所以不能全部显示 所以通过一个循环让指针进 行 4 次读取操作 函数如下 int change LPBYTE c DWORD a 0 b 0 for int i 0 i 4 i b static cast c for int j i j 0 j b 256 a b return a 这样就解决了不能读取完全的问题 其他的模块都是这样 不再一一枚举 4 2 6 系统自动检测 图 4 5 自动检测界面 中原工学院计算机学院毕业 设计 论文 29 界面效果 点击检测结果会出现检测报告 主要要两个按钮和一个列表 列表有 3 列 分别是检测内容 检测结果 安全性 先通过调用注册表信息 并对其一个个进行分析 分析其安全性 主要有 15 个检测项目 检测方法和上面相同 不同的是要把结果显示在列 表中 m ListCtrl InsertItem 插入列表 然后 m ListCtrl SetItemText 设置内容 仍以注册用户即第一个为例 void CAT first m ListCtrl InsertItem 0 注册用户 HKEY hkey LPCTSTR path Software Microsoft Windows NT CurrentVersio

温馨提示

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

评论

0/150

提交评论