系统安全实验设计论文

系统安全实验设计论文

1实验平台

实验的硬件环境为两台计算机:一台作为宿主机,运行各种安全实验的代码;另一台作为调试机,运行被实验的内核。两台机器通过串口进行连接,传送调试指令和调试数据。具体实验时,可使用虚拟机以WRK内核引导系统运行,既可以防止实验对真实的硬件和文件系统产生负面影响,也可以方便地通过一个命名管道连接虚拟机和物理机,将虚拟机作为被调试机、物理机器作为调试机来进行实验。

2实验模块

实验内容的设计是以Hook技术为基础,从影响操作系统安全的外设事件、进程保护、文件管理、网络安全等方面进行设计。Windows操作系统是建立在事件驱动机制之上的,系统各部分之间的沟通也都是通过消息的相互传递而实现。Hook(钩子)技术是Windows系统的一种非常重要的接口,可以截获并处理在其他应用程序之间传递的消息,并由此完成一些普通应用程序难以实现的特殊功能。Hook技术分为应用层Hook技术和内核层Hook技术。该实验采用Hook技术设计了全局键盘监听、进程隐藏与保护、文件监视、网络监听等具体实验内容。

2.1全局键盘监听

本模块的实验目的是让学生理解Windows的消息处理机制——回调函数、Hook技术的原理,并能运用这些原理改变系统消息的控制权,达到维护系统安全的目的。实验内容是通过回调函数定制新的键盘钩子,在主控机上通过windbg把钩子以DLL的形式加入到目标机的所有运行进程中,实现全局键盘监听。钩子函数将获取的键盘信息返回给主控机,在其dbgview上显示键盘的输入信息。

2.2进程隐藏与保护

本模块的实验目的是为了让学生理解系统服务的原理和执行流程,并能利用SSDTHook技术改变系统服务的地址和执行流程,达到改变相关进程的控制权并保护该进程的目的。实验内容分为两部分,首先是通过修改SSDT(即系统服务描述符表)中NtQuerySystem-InformationAPI的地址,将其替换为自定义的服务函数NtQuerySystemInformation(即SSDTHook)地址,实现在被调试机中隐藏指定进程的目的;然后,通过修改SSDT中NtTerminateProcessAPI阻止进程被任务管理器等进程管理工具杀掉,达到保护进程的目的。为了保证系统的稳定性(至少不让其崩溃),应当在自定义的服务函数中调用系统中原来的服务。

2.3文件监视

本模块的实验目的是为了让学生理解文件监视的原理,运用相关的Hook技术保护指定文件,达到防止病毒木马等恶意修改或删除文件、维护文件系统安全的目的。实验的内容是当删除一个需要受保护文件时,利用SHFileOperationHook替换原来的API函数,禁止删除该文件的操作,并提示该文件受保护。

2.4网络监听

本模块的实验目的是帮助学生理解网络抓包技术的原理,并运用相关的HookWinSocketAPI实现抓包,达到监测网络传输和排除网络故障的目的。实验内容是首先利用Hook技术完成消息的截获,提取出感兴趣的消息;其次,利用API拦截技术拦截相应的网络程序的SOCKET网络函数;第三,利用DLL技术将HookAPI拦截的代码封装,利用EXE程序将DLL映射到进程中。相关网络函数被调用时将触发API函数拦截。最后,从网络函数中提取我们想要得到的数据包。

3实施方法

操作系统安全实验是信息安全专业实践内容的重要部分,由于实验内容需要一定的内核知识基础且具有一定难度,因此将其定位为开放式实验,并安排在操作系统原理和信息系统安全等相关专业课程学习之后实施。借助网络学习平台,将所有实验信息对信息安全专业学生开放;学生按照教师定制的学习路径,自主获取实验的基本信息、网络查询实验资料和相关技术及应用方法、自主完成实验步骤、提交实验结果,并可以在实验过程中改进实验内容。对于实验要求,教师可以在学习路径中分别指定基础性要求和创新性要求,这样既能保障基础安全实践能力的训练内容,又能激发学生的创新能力。

4结语

WRK内核为操作系统安全实验提供了基础,操作系统安全实验的设计丰富了信息安全专业在系统安全方面的实践环节,促进了学生对Windows内核安全原理的理解,为提升学生系统安全实践能力提供有效的实践过程支持,还增强了学生信息系统安全意识。后续工作,我们将从操作系统安全的各个层次进一步拓展和完善实验的内容。

作者:潘林 王金双 尤峻 陈融 张涛 单位:解放军理工大学