面向网络空间安全专业的操作系统实践课程教学改革探索与实践
作者: 冯鹏斌 习宁 苗银宾 李兴华
摘要:操作系统课程是计算机大类学科的核心基础课程,结合实践型网络安全人才的培养需求,进行网络空间安全(以下简称网安)专业操作系统课程实践教学改革探索,引导学生建立攻防对抗思维,提升实际网络安全问题的解决能力,强化操作系统课程对网安学科的支撑作用。针对实践课程教学里存在的实验内容滞后、实践性不足和评价方式单一等问题,通过实验内容的优化与拓展,构建了面向网安专业的混合式实践教学模式,经过上述改革措施,学生实验课程的参与度、扩展性实验的完成度以及实验报告的提交质量显著提高。
关键词:操作系统;网络空间安全;实践教学;混合式教学;攻防对抗实验
中图分类号:G642 文献标识码:A
文章编号:1009-3044(2025)06-0005-04 开放科学(资源服务)标识码(OSID):
0 引言
操作系统是网络空间安全(以下简称网安)专业的基础课程,是一门涉及硬件资源高效管理的计算机软件课程。操作系统是计算机系统中的核心软件,也是整个网络空间的构建基础。网络空间的安全问题与操作系统的软件功能设计和实现息息相关。因此,操作系统课程也是网安专业学生理解网络空间运行机理及学习后续安全课程的基础。其实践课程对理论课程具有重要的支撑作用,是理论知识验证、深化复杂概念理解和提升课程兴趣的重要途径。面向实践型网安人才培养需求,本文对网安专业操作系统课程实践教学模式进行改革探索,引入攻防对抗实验,强化操作系统课程对网安学科的支撑作用。
近年来,研究者们对操作系统实践课程的改革模式进行了多个方面的探索。罗芳等[1]提出了分层次实验的教学模式,设置四种类型课程实验,由易到难、层层递进,逐步培养学生分析问题和解决问题的能力。王颖等[2]从教学实践、教学方案、考核方式、过程评价等四个方面阐述了混合式教学评价体系。巩倩倩等[3]以创新创业教育为背景,从赛教结合模式出发,探索课程改革新方式,主要提出项目驱动式教学、赛教结合教学模式、搭建互助合作工作坊平台等改革措施。刘蓉蓉[4]探索了三维课程教学模式下操作系统课程的实践改革方法,充分利用“课前、课中、课后”三个阶段开展课程教学,提升学生的学习兴趣。王若凡等[5]针对“嵌入式操作系统”内容宽泛、教学复杂的问题,提出了项目驱动的课程教学改革策略,充分发挥项目驱动教学的优势,从项目设计、项目实施、优化结构、引入案例和改革考核五个方面,促使学生提高综合能力。杨晓文等[6]针对系统能力培养方面存在的缺陷,提出了多模式融合的教学方式,以页面置换算法为例,设计动画交互系统的实验项目案例开发过程,充分调动学生的学习积极性,提升学生的系统能力。张赛男等[7]提出了突出工程实践能力培养的课程改革思路,主要从理论与实践高耦合的课程体系构建和层层递进的实验教学内容优化方面推进课程实践改革。陈意[8]结合信息安全专业特色,在操作系统课程的混合式教学培养模式方面进行了探索,从完善培养模式、优化课程设置、建设师资队伍和健全评价机制四个方面详细阐述了教学模式的改革措施,为复合型人才培养提供参考。然而,已有研究未建立操作系统课程与网络安全的内在关联,导致学生无法感知操作系统课程对网安专业的支撑作用。紧跟时代发展脚步,结合专业特色,优化和扩展实验内容,剖析攻防对抗机制,构建了面向网安专业的混合式实践教学模式,引导网安专业学生重视操作系统课程的学习,为实践型网络安全人才培养提供支撑。
网安专业涉及多个学科,要求学生具有扎实的理论与技术知识,但只强调密码学、网络协议安全、软件安全等安全理论课程的重要性,却忽略了操作系统课程对网络空间的支撑作用。与此同时,当前网安专业的操作系统实践教学仍存在一些问题。
1 网络空间安全专业操作系统实践教学问题
操作系统是网络安全专业的技术基石,其实践教学一直是帮助学生深刻理解操作系统运行原理和培养解决实际问题能力的重要环节。在面向网安专业学生时,其实践教学模式存在以下问题。
实验内容滞后:实验内容多停留在传统的基础知识验证层面,例如进程调度、内存分配和文件系统管理等。这些实验侧重于操作系统基础功能的理解和实现,缺乏与实际网络安全需求的结合,难以帮助学生认识操作系统在网络安全中的关键作用,导致学生难以将操作系统知识应用于网络安全领域的实际场景。例如,在许多高校的操作系统实践课程中,实验主要集中在模拟单机环境下的功能验证,如进程优先级调度、简单内存分配算法的实现,而很少涉及现代网络环境中的操作系统安全技术,如容器技术、沙箱隔离、恶意代码动态分析等。
实践性不足:大部分实验内容主要以功能模块的简单验证为主,例如实现某种调度算法或模拟特定的内存分配机制。学生仅需按照实验指导书中的步骤完成操作,即可实现预期目标。这种模式虽然能够帮助学生理解基础概念,但实验任务的系统性和创新性明显不足,未能引导学生结合课程理论知识分析实验原理,难以有效培养学生的工程能力和实际问题解决能力。缺乏综合性实验和开放性探索任务,无法激发学生提出新方案或优化设计的兴趣,导致学生无法深入理解操作系统模块之间的交互机制以及其对系统整体性能和安全性的影响。例如,许多高校的操作系统实践课程未设置基于网络攻防场景的任务,导致学生无法体验操作系统在网络安全中的关键作用。
评价方式单一:当前的评价方式主要以实验结果的正确性为导向,忽视了对实验过程的考察。学生完成实验的路径、思考过程和课程理论知识的深入分析通常未被纳入评分标准。这种单一的评价方式导致学生更倾向于机械地完成实验任务,而缺乏对实验本质问题的深入思考。学生在实验过程中是否独立思考、解决实际问题的能力,以及提出新思路的能力往往未被有效考量,使得实验变得缺乏挑战性和吸引力,导致评价方式无法全面反映学生的实践能力和综合素质。例如,在实验课程中,学生提交的实验代码中,大部分实现与指导书提供的参考代码相似,学生仅简单修改、运行代码即可完成实验,对理论知识的分析及优化思考均未得到评价。
2 实践课程教学改革及效果分析
2.1 教学目标改革
操作系统实践课程的教学目标是,通过实验和动手操作,在16周内全面培养学生对操作系统核心原理与运行机制的理解,设置攻防对抗实验,培养学生在网络空间安全领域应用操作系统知识的能力,包括完成系统调用分析、进程管理和文件系统等功能模块的实现,并能将这些知识用于网络安全场景,熟悉恶意软件攻击行为分析、沙箱规避与对抗等关键技术。课程要求学生完成至少7个基础实验,根据自身时间可选择完成扩展性实验和综合性实验。实验完成率需达到90%以上,代码质量和原理分析需满足评分标准(80分以上)。实验内容紧密围绕网络空间安全专业需求,主要包括操作系统功能相关的网络攻防机制的设计与实现,从基础到高级逐步递进,实验设计采用分层教学策略,确保所有学生能够完成基础任务,同时为能力较强的学生提供扩展性和综合性任务,为学生未来从事操作系统开发、安全检测与防护等职业方向奠定坚实基础。
2.2 教学方法改革
混合式教学方法结合线上与线下教学、项目驱动、攻防对抗实验设置等多种手段,为网络安全专业操作系统课程实践教学提供了灵活、高效和互动的教学模式。线上教学主要通过智课平台开展,主要包括操作系统原理视频讲解、实验指导与基础操作训练。学生通过观看进程调度、内存管理和文件系统等操作系统核心模块的教学视频,完成在线测试、掌握基础知识。同时,在线发布实验指导书和视频教程,帮助学生配置实验环境并预习实验任务。建立在线讨论区为学生提供即时问题解决支持,促进师生互动。学生按时提交阶段性实验结果,确保学习进度可控,为线下指导做好准备。线下教学内容主要集中于复杂实验任务的完成、综合项目的实施以及师生之间的深入互动。课堂中,教师通过面对面的引导帮助学生解决实验中的关键难点,如资源使用行为监控、内核安全功能模块开发或恶意软件动态分析与对抗等。学生分组完成综合性实验任务,并通过讨论和交流优化设计方案。学生以现场展示的方式汇报实验进展和创新成果,接受教师和同学的评价和建议,进一步完善任务成果并深化对课程内容的理解。线上线下教学通过任务分解和反馈机制实现无缝衔接。线上部分聚焦理论知识学习和基础实验准备,为线下实践奠定基础;线下则专注于复杂任务的深入探索和综合项目的实施,并针对共性问题开展详细讲解和优化指导。项目驱动的教学模式将实验任务分解为多个阶段,逐步提高难度,培养学生解决实际问题的能力,并通过综合性任务引导学生将操作系统理论知识与解决网络安全实际问题相结合。攻防对抗实验进一步强化实践,通过真实恶意软件规避与对抗机制的实现,让学生以恶意软件系统资源使用行为动态监控为切入点,从攻击与防御双视角深刻理解操作系统在安全保障中的关键作用。
2.3 实验内容改革
围绕网安专业特色,对传统课程实验内容进行扩展,引导学生建立攻防对抗思维,加强同学们对操作系统课程重要性的理解。具体而言,在操作系统基本功能原理验证的基础上,增加安全攻防实验探索,结合该课程的知识点,扩展实验教学内容,原始实验教学内容(图1左侧),扩展设计实验教学内容(图1右侧)。扩展的实验教学内容在原有操作系统功能原理验证的基础上,从多个维度引入攻防对抗机制的设计与实现,引导网安专业学生理解操作系统的基础作用,从而重视操作系统课程知识的学习。
在系统调用基础实验方面,要求学生分析程序执行流程与追踪系统调用序列之间的对应关系,深入理解操作系统服务接口的功能。程序底层资源的使用均需通过系统调用来实现,要求学生使用Seccomp机制设置系统调用白名单列表,防止未授权攻击代码的操作,缩小攻击面。首先,运行strace命令追踪当前程序运行所需系统调用列表(白名单)。其次,使用sec⁃comp_init(SCMP_ACT_KILL)创建Seccomp 上下文,默认拒绝所有系统调用。再次,通过seccomp_rule_add方法,添加程序运行所需系统调用,并使用sec⁃comp_load 方法将规则加载到当前进程。然后,在当前程序中添加新的系统调用执行代码。最后,运行程序测试Seccomp机制有效性,允许的系统调用会正常执行,新添加的非白名单系统调用会触发Seccomp机制终止执行。
在多进程编程实验方面,要求学生深入理解fork 和exec函数的工作原理,并引入进程炸弹和限制子进程数量等机制的实现。通过编写攻击程序,不断地调用fork创建大量子进程,迅速耗尽系统的进程表和资源,从而发起拒绝服务攻击。可以通过使用ulimit限制用户能够创建的最大进程数来抵御上述攻击。
在多线程编程实验方面,要求学生模拟实现竞争条件、死锁和线程资源耗尽等攻击手段并设置相应的防御机制。编写程序模拟竞争条件攻击场景,其中两个线程试图修改同一全局变量而没有适当的同步机制,导致数据不一致和意外行为。在程序中添加全局变量的同步机制,可以确保程序的正确执行。编写程序模拟死锁触发,两个线程分别占有资源,并在等待对方的资源时陷入死锁。可以设置线程通过固定顺序获取锁,避免交叉等待,从而避免死锁触发。编写线程资源耗尽攻击程序,通过创建大量线程,耗尽系统的线程资源或引发内存不足,导致系统性能下降或崩溃。可以通过配置用户可创建的最大线程数来抵御此类攻击。
在多线程与信号量实验方面,要求学生深入分析信号量机制的实现原理,模拟实现信号量耗尽和死锁攻击手段并设置相应的防御机制。编写程序模拟信号量耗尽攻击,在短时间内反复请求信号量资源,导致信号量被耗尽,其他线程无法获取信号量资源,系统功能受限或性能大幅下降。可以通过实现信号量监控机制,当信号量过多占用时释放不必要的资源。编写程序模拟多个线程互相持有信号量,且等待其他线程释放信号量,从而形成循环等待,导致形成信号量死锁攻击。可以通过所有线程按照相同顺序获取信号量,避免循环等待,抵御信号量死锁。
在文件系统实验方面,要求学生深入分析基于inode的文件系统的管理机理,模拟实现符号链接攻击、硬链接攻击和inode耗尽攻击,并设置相应的防御机制。编写程序使用符号链接特性,建立指向敏感文件的符号链接,从而非法获取或修改敏感数据。可以通过限制符号链接的创建权限,确保非特权用户无法操作敏感目录。编写程序通过创建硬链接指向敏感文件,使得文件无法被正常删除或超出原有权限范围被访问。可以通过Linux内核参数fs.protected_hardlinks限制非特权用户创建硬链接。编写程序通过大量创建小文件或目录,消耗文件系统的inode表,导致新文件无法创建,影响系统的正常功能。可以通过启用文件系统配置quota,限制每个用户可以创建的文件数量。