文章编号:1672-5913(2008)18-0115-03
摘要:鉴于在中国科学院软件研究所长期从事的安胜安全操作系统的研发经验和成果,我们从模块化知识体系和工程实践角度,采取了集课堂讲授、讨论交流、实例演示、实验和课程项目为一体的多模式教学方法。本文介绍了我们的研究成果。
关键词:操作系统安全;模块化知识体系;多模式教学方法
中图分类号:G642 文献标识码:B
1引言
作为计算机软件基础部分,操作系统的安全性对上层应用的安全起着至关重要的作用。随着网络应用的普及和移动计算的兴起,操作系统所面临的安全威胁日趋多样化和复杂化。因此迫切需要研制能够提供高安全等级的操作系统,以满足在当前计算环境下不同应用系统的不同程度的安全需求。操作系统安全课程的开设,正是鉴于我们在操作系统安全领域的长期研究、技术积累与工程实践,包括符合国标GB17859第三级的安胜安全操作系统原型的科研成果、以及符合国标GB17859第四级的安胜安全操作系统原型的科研成果,以及在中国科学院科学出版基金的支持下,于2003年初由科学出版社出版国内首部该领域专著—《操作系统安全导论》,于2004年在清华大学出版社与高等院校信息安全专业系列丛书编委会的大力推动与支持下出版的研究生教材《操作系统安全》。
2006年,北京大学软件与微电子学院正式成立信息安全系,开始了面向软件工程硕士的专业课程体系建设,“操作系统安全”课程作为专业选修课在本系硕士研究生中首次开设,至今已经面向2006级、2007级的统招硕士生和在职硕士生开设了四次。经过教学、科研的相互促进,以及教学方法的不断改进和创新,我们已经逐步形成了注重学生研究能力、工程实践能力、创新能力培养的课程内容和教学方法,取得了比较理想的教学效果。
此外,目前国内外对基础软件的研发非常重视,操作系统安全与可信计算、虚拟机技术等新兴领域的结合和发展也成为新趋势。本课程在现有科研成果、教学成果的基础之上,也十分强调知识体系的可拓展性,力求为我国该领域培养出更多实践性强和创新型人才。
2明确培养目标,模块化课程内容,突出教学特色
2.1明确课程的培养目标
作为面向软件工程硕士开设的专业课程,需要以培养学生的工程实践能力为主要目标。为此,本课程的主要培养目标是:在让学生充分了解和掌握操作系统安全的知识体系基础之上,能够让学生系统地学习和实践操作系统安全相关技术的设计与实现方法。通过本课程的学习,学生可以具备综合运用所学知识进行操作系统安全分析、设计和实现的能力,也可以具备对相关领域研究方向和技术发展趋势的研究、实践和创新的能力。
2.2模块化课程的教学内容
本课程从理论和实践相结合的角度,依据国外和我国在该领域的研究和实践,从“操作系统安全背景知识”、“操作系统安全理论技术”、“操作系统安全设计实践”、“相关领域研究发展趋势”四大模块(如图1所示),系统地为学生介绍该领域的知识体系、实践技术和发展方向。各大模块的具体教学内容建设如下:
(1) 操作系统安全背景知识模块
本模块在全面分析国内外相关研究现状的基础之上,为学生引入操作系统安全的基本概念,帮助学生了解评估一个操作系统安全等级的相关标准,以及操作系统所需提供的基本安全机制。在基本安全概念方面,界定可信与安全的区别、系统边界与安全周界、访问监控器、可信计算基TCB等的涵义。针对相关标准,重点分析美国TCSEC可信计算机系统评测标准(对应我国国家标准GB17859-1999)、ISO国际标准CC通用安全测评标准(对应我国国家推荐标准GB/T18336.1-3)要求与应用。在安全机制部分,针对目前主流操作系统,尤其以我们自主研发的符合国标GB17859第三级、第四级(等价于TCSEC的B1级、B2级)的安胜安全操作系统为例,介绍标识与鉴别、自主访问控制、强制访问控制、最小特权管理、可信路径、安全审计、密码服务、隐蔽通道分析等基本安全机制的工作原理。
(2) 操作系统安全理论技术模块
本模块的目标是让学生掌握构建操作系统的基本理论和核心技术,主要涉及安全性建模理论和方法、安全体系结构设计和实现方法、隐蔽通道的标识与处理技术。在安全建模方面,重点分析机密性、完整性策略及其建模思想,并以经典Bell-LaPadula机密性模型,Biba、Clark Wilson完整性模型为例介绍安全建模的一般方法,而对于Chinese Wall、RBAC(Role Based Access Control)、DTE(Domain and Type Enforcement)等其他常用安全模型的介绍,是让学生了解和掌握信息系统安全领域目前更加实用的安全建模理论和技术。针对安全体系结构的设计,重点以FLASK安全体系结构和LSM(Linux Security Module)体系框架为例,引导学生掌握支持动态多策略的安全体系结构设计思想和实现方法。隐蔽通道的标识与处理是更高安全等操作系统的要求,这部分将主要介绍隐蔽通道的判别标准与构造方法、隐蔽通道的标识技术、隐蔽通道带宽计算方法、以及隐蔽通道的常用处理技术等。
(3) 操作系统安全设计实践模块
本模块以自主研发的安胜安全操作系统原型和国外经典SELinux操作系统原型为例,系统地介绍高安全等级操作系统的需求分析、设计和实现方法,及其在安全WEB系统、高保障防火墙系统、安全数据库系统中的应用和安全扩展方法。在设计实例分析方面,以安全系统设计原则和常用开发方法为基础,重点对安胜安全操作系统和SELinux系统中的机密性、完整性、最小特权等安全策略、模型,安全体系结构设计,安全模块的设计和开发方法、隐蔽通道的标识和处理技术等进行详细剖析。在应用实例分析方面,以安全WEB系统、高保障防火墙系统、安全数据库为例,分析各应用系统在操作系统提供的安全性基础之上进一步扩展整个系统安全性的技术和方法。
(4) 相关领域研究发展趋势模块
本模块是在学生对操作系统的安全理论、技术和实现方法有了一个比较系统的了解、掌握和实践之后,帮助学生拓展相关领域的新技术及热点问题,使他们能够把握新技术的脉搏、适应未来的发展趋势和应用。目前,该模块涉及的主要内容包括可信计算技术、虚拟机技术,以及他们的安全研究热点,也涉及他们对未来操作系统安全研究的改变。
2.3突出课程的教学特色
本课程的教学形成自己的特色,主要包括以下几点:
第一,本课程的知识体系完备,模块清晰、并具有递进化的层次结构。
第二,本课程是从自主研发的“安胜安全操作系统”,以及国外经典“SELinux”开源项目的工程实践角度,剖析操作系统的安全理论、技术、开发方法和应用。
第三,本课程重点培养学生基于Linux操作系统的安全增强技术和方法上的实践。
第四,本课程既有课堂讲授,也有实例演示和实验课,并通过课程项目的驱动,注重学生分析问题、解决问题能力,以及实际动手实践能力的培养。
第五,本课程注重拓展学生的领域知识,引导学生对最新技术和发展方向的把握。
3多模式教学方法,以培养实践能力和创新能力为核心
过多的理论介绍,既增加学生的学习负担,又不能突出教学重点,还会挫伤学生的学习积极性。尤其是对于软件工程硕士的培养,一方面我们要注重理论体系的教学,另一方面我们更应该重视学生工程实践能力和创新能力的培养。为此,在“操作系统安全”课程建设的过程中,经过不断的改革和探索,我们采取了一种集课堂讲授、技术交流讨论、实例演示、实验和课程项目为一体的多模式教学方法(如图2所示)。这种多模式教学方法的实践表明,能够有利于学生发挥学习的主观能动性和积极性,能够在知识掌握、实践能力、分析问题和解决问题能力、创新能力等方面得到锻炼和提高,效果比较理想。
3.1课堂讲授模式
课堂讲授是课程教学的主要模式和基础,在本课程中约占总学时的60%,以系统介绍2.2节知识模块1-3为主。在本模式中,我们注重课件的建设,形成了层次化的知识模块结构(如图1所示),强调每一个模块中关键知识点之间保持连贯性。如:在Biba完整性模型介绍中,从“分析主客体完整性涵义→引入安全信息传输路径概念→解释Biba模型规则”一脉相承。此外,也注重课堂讲授过程中启发性和互动性,让学生变被动吸收为主动理解。
3.2技术交流与讨论模式
在课堂讲授操作系统基本知识体系的基础之上,通过行业专家配合课程内容,介绍相关领域的前沿工程技术与实践。例如,我们聘请中国科学院信息安全国家重点实验室张敏博士作关于数据库安全技术的专题报告,秦宇博士作关于可信计算平台和虚拟机安全技术的专题报告,还聘请解放军某部季庆光博士作关于操作系统安全设计与未来发展趋势分析的专题报告。围绕核心技术,我们还通过课内外分组讨论指定专题方式,充分调动学生学习的主动性和积极性,锻炼学生分析问题、解决问题的能力和勇于创新的能力。
3.3实例演示模式
实例演示是专业课程的一个重要教学环节。在操作系统安全教学过程中,抽象的理论和技术内容,仅凭讲解是不够的,实例的演示和分析可以让抽象内容具体化,便于学生理解和掌握。为此,我们以自主研发的安胜安全操作系统原型为基础,通过建设典型的实例演示和分析,展示操作系统的主要安全机制、技术和实现方法。例如:对于自主访问控制机制和强制访问控制机制的本质区别,我们拟的演示实例如图3所示(其中安全级支配关系为SYS_ADMIN≥SYS_SECURITY≥SYS_PUBLIC,依据BLP模型,主体支配客体才能读访问):
这样,如果要授权user2可读file1,只需file1属主user1执行A1授权(自主访问控制允许);但是,如果要授权user3可读file1,必须经过两个授权:(1)由file1属主user1 执行B1授权(自主访问控制允许);(2)由管理员 root 执行B2授权(强制访问控制允许)。通过这样的典型实例,可以让学生清晰地了解这两种机制的工作原理和本质区别。
3.4实验课模式
实验课是让学生掌握操作系统安全核心技术和方法必不可少的环节,通过实验课的设置我们还可以培养学生的实际编程能力、动手实践的能力,并通过严格的实验报告要求培养学生规范的文档组织和写作能力,以及对实验结果的总结分析能力。以我们开设的实验--“隐蔽存储通道场景的构造实现”为例,一方面,让大家熟悉安胜OS的基本安全机制和操作、清楚隐蔽存储通道的工作机理,另一方面,让大家练习Linux环境下的C程序设计,在安胜OS实际环境中编写隐蔽存储通道的发送程序、接收程序,并实际运行和测试。实验结果表明,学生在锻炼动手实践能力的同时,可以更加深入地掌握相关理论和技术。
3.5课程项目模式
本课程项目是在学生对操作系统安全理论和技术具有一定了解的基础之上,通过老师指导选题,主要以课外分组讨论、设计和实现的方式完成一个实践性项目或研究性项目,并要求进行选题陈述、结题陈述、实例演示和完成课程项目技术报告。重点培养学生中英文献检索能力、阅读和理解能力,综合运用所学操作系统安全理论、技术与方法分析问题和解决问题的能力,以及对相关技术和新技术的研究、分析、设计实践和创新的能力。以下是目前本课程项目涉及的六个主要方向,但可以不限于这些方向。
(1)windows(比如windows vista)系统安全机制分析、设计及实践技术
(2)Linux/UNIX(比如Linux 2.6, SELinux, Solaris 10)安全机制分析、设计及实现技术
(3) 操作系统安全实用理论模型设计、分析、验证和模拟演示技术
(4) 面向操作系统安全的渗透测试经典方法、实例分析和实践技术
(5) 可信计算平台安全问题研究、分析、设计与实现技术
(6) 虚拟机安全问题研究、分析、设计与实现技术
4结束语
模块化知识体系和多模式教学方法的应用,使“操作系统安全”课程在教学设计上实现了理论教学和实践教学的有机结合、构成了“讲授 + 交流 + 实例 + 实验 + 项目”体系的教学新思路。在教学过程中始终贯彻“教学、科研、实践”互动的原则,使学生在学习课程知识时,依托真实、具体的自主研发成果-安胜安全操作系统,以及NSA经典开源项目SELinux系统,在实例、实验、项目、新技术交流的引导之下,强调对学生实践能力和创新能力的培养,避免了停留在抽象枯燥的理论层面。两年来的教学实践证明,这种教学方法的应用极大地激发了学生学习的积极性和兴趣,提高了学生的专业素质和综合能力。
参 考 文 献
[1] 卿斯汉,刘文清,刘海峰. 操作系统安全导论[M]. 北京:科学出版社,2003.
[2] 卿斯汉,刘文清,温红子. 操作系统安全[M]. 北京:清华大学出版社,2004.
[3] 柳翔. 嵌入式软件工程人才培养模式的探索与实践[J]. 计算机教育,2005,(11).
[4] 李文新. 加强基础,提供平台,营造氛围,全方位培养创新能力[J]. 计算机教育,2008,(1):20-22.
[5] 王文. 项目驱动的”Linux操作系统"课程教学改革[J]. 计算机研究,2007,(9):77-79.
[6] 肖竞华,陈建勋. ”计算机操作系统"教学改革探索与实践[J]. 高等理科教育,2007,(3):68-70.