基于开源软件的计算机系统安全课程教学与实践

2017-05-12 11:45李红娇李晋国
计算机教育 2017年4期

李红娇+李晋国

(上海电力学院 计算机科学与技术学院,上海 200090)

摘 要:分析网络空间安全学科的人才培养目标与信息系统安全的学科定位,讨论开源Linux平台与计算机系统安全课程教学的融合;从课程教学、课堂实验、课程设计以及第二课堂创新实践4个方面探讨基于开源平台的计算机系统安全课程的教学与实践,以期建立面向应用的信息安全人才培养模式。

关键词:网络空间安全;开源软件;计算机系统安全;Linux

0 引 言

目前,网络空间和网络空间安全成为社会公众关注的话题,网络空间安全人才培养体系更是人们关注的焦点。网络空间安全人才需具备较强的实践能力,需要强化对人才的网络空间安全实战技能培养和实习实训。通过建设开放实训平台,提高网络攻防实践能力,搭建基于网络的仿真模拟训练平台,支持实验课程设计,开展全国网络空间安全技能竞赛,以此来激发学生的创新积极性,提高实践攻关能力[1-3]。课程教学是网络空间安全人才培养中非常重要的内容,建立一套科学、合理的课程讲授方式,才能实现预定的教学目标。在应用型信息安全本科专业课程教学方面,尤其在专业课的講授过程中,应注重拓展学生的知识面,训练他们的实践能力和综合实训能力。

1 系统安全与开源软件

1.1 系统安全在网络空间安全学科中的地位

网络空间安全涉及数学、计算机科学与安全、信息与通信工程等多个学科,已形成了一个相对独立的教学和研究领域。通过网络空间安全学科的培养,学生能够掌握密码和网络空间安全的基础理论和技术方法,掌握信息系统安全、网络基础设施安全、信息内容安全和信息对抗等相关专门知识,并具有较高的网络空间安全综合专业素质、较强的实践能力和创新能力,能够承担科研院所、企事业单位和行政管理部门对网络空间安全方面的科学研究、技术开发及管理工作。

网络空间安全学科主要研究方向及内容包括网络空间安全基础理论、物理安全、系统安全、网络安全、数据与信息安全等方面的理论与技术[4]。其中,系统安全保证网络空间中单元计算系统安全、可信;在信息安全知识体系中,信息系统安全主要涉及信息安全体系中的系统安全内容。为了掌握以主机系统为中心的信息系统安全性方面的知识,有必要从信息安全体系结构整体安全需求的角度去了解系统安全的地位和作用。另外,当今的计算机系统基本都与网络关系密切,网络已经成为计算机系统工作的基本环境,以主机系统为中心的系统安全离不开网络安全,应该从网络安全的角度去认识系统安全问题。

1.2 开源软件与网络安全

互联网的高速发展引发的网络信息安全问题越来越多。据报道,42%的企业组织将安全列为应解决的首要问题。对于如何利用已有资源来解决网络安全问题,开源网络信息安全软件提供了一个可供选择的途径。开源软件具备投入小、更新功能灵活、开放性和开源化、促进行业良性循环等优势,特别在服务器操作系统、数据库、WEB服务器这3项最基础的领域中得到了广泛应用,且都超过同类商业产品[5]。在网络安全防护中, 开源软件的应用也越来越多,如Linux的Netfilter /iptables、 Snort、 服务器漏洞扫描工具Nmap。 此外,开源的企业级公钥加密体系和证书授权中心通过OpenCA、OpenPKI和Open SSL 构建等。

2 基于开源软件的计算机系统安全课程教学实践

解决信息网络中的安全问题,主机系统安全是其中不可或缺的成分和基础。计算机系统安全作为信息安全学科的重要分支,极大影响着社会信息化的发展。计算机系统安全课是信息安全专业的核心专业课程,也可作为计算机科学与技术专业高年级学生了解计算机主机系统安全的课程。通过对该课程的学习,学生能了解、掌握计算机系统安全知识框架的整体概貌;掌握系统安全的基础知识和关键技术;能熟练地在流行的操作系统和数据库管理系统上进行安全相关的操作;掌握系统安全设计方法和步骤以及开发系统安全技术的基本能力。

计算机系统安全课程理论性强、信息量大且抽象,为提升教学效果, 本课程从课堂教学知识点的讲授、课堂实验对知识点的掌握与编程实现、课程设计等方面,结合开源Linux 平台,基于开源工具,循序渐进地帮助学生掌握基础知识,有效培养学生的自主学习能力、实际动手能力、分析和解决问题的能力,以及综合应用所学知识进行开发设计的能力。

2.1 课堂教学

为尽可能帮助学生理解抽象的知识点,从介绍Linux操作系统内核结构开始,层层深入,根据Linux 操作系统上对应的安全机制讲授核心知识点,具体对应见表1。

(1)身份认证技术。

身份认证以Linux的 /etc/passwd、/etc/group 文件为例,讲述用户账户信息数据库中的格式、用户信息文件及用户组信息文件中各字段的含义,进一步根据口令信息的处理方法讲解口令信息的维护与运用、撒盐措施、口令信息管理和身份认证方案,基于/etc/shadow文件讲述口令信息与账户信息分离的实现。

网络环境下的身份认证以SUN公司的NIS系统为例讲述客户机和服务器协同完成身份认证的方案,以NIS+为例讲述安全网络身份认证方案,Kerberos系统是用户身份认证和服务请求认证思想的具体实现。

(2)操作系统基础安全机制。

操作系统基础安全机制讨论访问控制机制、加密文件系统以及系统安全审计,其中访问控制是核心。访问控制以Linux基于权限位的文件访问为例,介绍使用二进制位三分用户法表达文件访问权限的方案及其访问控制算法。据此,进一步讨论访问控制的进程实施机制。为了解决用户三分法粒度过粗的问题,以Linux 的ACL机制讲述细粒度访问控制的定义与实施。加密文件系统以开源eCryptfs 为例介绍加密文件系统的原理和加解密实施机制。Linux的Syslog机制提供了丰富的日志信息处理功能,有助于了解系统审计的基本方法。

(3)操作系统强制安全机制。

操作系统强制安全机制从TE模型开始,以TE模型为例讲述强制访问控制的思想与实施方案。DTE模型使用高级语言描述访问控制策略,采用隐含方式表示文件安全属性,是TE模型的改进, SETE模型是DTE模型在Linux上的具体实现,类型更细分,权限更细化。进程工作域的切换以在SETE模型控制下的口令修改为例,分析可能涉及的域的情况及其访问权限。SeLinux 基于LSM框架,以FLASK安全体系结构为基础实现SETE模型。

(4)数据库系统安全机制。

数据库系统安全机制的核心是授权回收与发放,通过GRANT和REVOKE语句实现,基于内容的访问控制通过视图机制实现,进一步可实现RBAC和数据库推理控制。数据库强制访问控制以ORACLE的OLS机制为例讲授OLS-BLP模型,实现原理及安全等级标签。

(5)系统可信检查。

系统可信检查侧重系统完整性,以AEGIS为例,介绍系统引导过程,深入介绍组件完整性验证的可信引导,进一步介绍带有系统恢复功能的安全引导。MIT-AEGIS是基于安全CPU的完整性验证机制,IBM的IMA是基于TPM的完整性度量机制。Tripwire主要针对文件系统进行完整性检查。

2.2 课程实验

作为课堂教学的巩固,课程实验进一步加深对计算机系统安全核心知识点的掌握,提升动手实践能力。计算机系统安全的课程实验全部在开源Linux平台上完成,从介绍Linux 平台、Linux 内核机制、Linux服务器开始,学生依据自身基础选择学习Linux 的起点。每个实验包括验证和编程两部分 。其中,验证过程利用Linux的开源工具对课堂教学知识点进行巩固,加深理解, 课程实验与开源工具的对应见表2。

在验证的基础上,编程进一步深化对课堂教学知识点的巩固和应用。编程练习也在Linux 平台上完成,主要包括身份认证机制中的字符串变换、基于权限位的访问控制模拟实现、加密文件系统模拟、守护进程、DTE模型模拟、Grub安全引导以及莫科尔树模型实现等。

2.3 课程设计

计算机系统安全课程设计要求学生综合利用本课程的有关知识,在Linux平台上选择相应开发环境,针对操作系统安全的具体问题,完成从安全需求分析、安全机制设计、安全机制实施等过程,运用所熟悉的高级语言进行編程、调试,最终实现一个可在特定环境下正常运行、较为完整的系统安全机制。通过该课程设计,学生能掌握计算机系统安全知识框架的整体概貌,掌握系统安全的基础知识和关键技术,综合运用所学知识设计小型安全系统以及培养团队合作能力。 课程设计备选题目课程设计具体实施过程如下: 首先,学生自主选题,根据选题结果组建团队(每个团队3~6人),协同合作完成需求分析、安全机制设计与实施、程序调试以及报告撰写等工作。然后,按照团队进行答辩,团队成员各自讲述个人的工作以及合作部分,这样每个学生都能总体上把握课程设计的各个环节,也较好地实现了团队合作。

2.4 第二课堂创新实践

目前,信息安全知识已渗透到各个相关专业。为了培养学生的创新能力,信息安全专业开展了“第二课堂创新计划”项目,根据教师提出的课题以及学生的兴趣,对入选的项目予以资金支持并安排老师负责指导。力图通过“第二课堂创新计划”项目训练的实施,整合信息安全实验平台的使用与学生工程素质的培养。由于在课堂上培养了较好的基础,通过课程实验进行了实践训练,课程设计过程中能综合应用所学知识进行设计实施,不少学生主动联系教师,积极参与移动终端安全、工业控制系统安全、软件安全等与系统安全相关的科研项目。

为了宣传信息安全知识,培养大学生的创新意识和团队合作精神,提高大学生的信息安全技术水平和综合设计能力,我们鼓励学生报名参加全国大学生信息安全竞赛、大学生创新创业大赛等赛事,以增进同其他院校的交流,提升专业水平。采用上述教学方法以来,通过Linux 平台上的开源工具使用以及该平台上的编程实践,以实际平台为依托,学生对知识点的掌握非常全面,也能进行动手实践,这对于学生深入理解课堂知识,较好地掌握Linux应用、内核架构、网络配置,以及深入学习信息系统安全、综合利用所学知识解决实际问题有非常好的帮助。在该课程学习的基础上,学生积极参与Linux 认证、Linux 架站等专业培训,成为Linux 高手。还有一些同学参加了CISSP、 CISP等信息安全认证培训或等级保护、安全管理等专项培训,成为信息系统安全的高手。

“课堂教学——课程实验——课程设计——第二课堂创新实践”这样一个多样化、自主性强的教学实践过程,有助于使学生更好地了解整个课程的知识体系,锻炼他们运用本课程的知识和方法解决复杂实际问题的能力,以使学生获得良好的工程训练和设计、合作能力,为其后的研究或设计工作打下牢固的基础。

3 结 语

提升实践能力是网络空间安全人才培养的一个重要方面。针对计算机系统安全课程的教学,将实践能力提升融入课程教学的各个环节,提升学生在网络空间安全领域的研发能力,为培养应用型人才打下良好的基础。 后续我们将从教学模式的规划、教材引进、教学方法的更新以及教学评价体系等几个方面入手,进一步探索、实践和完善。

基金项目:上海市信息安全综合管理技术研究重点实验室开放课题(AGK2015005);上海电力学院2016年课程建设与教改项目(A-0008-16-607)。

第一作者简介 :李红娇,女,副教授,研究方向为信息系统安全、云计算与大数据安全和可信计算,hjli@shiep.edu.cn。

参考文献:

[1]李建华, 邱卫东, 孟魁, 等. 网络空间安全一级学科内涵建设和人才培养思考[J].信息安全研究, 2015, 1(2): 149-154.

[2]崔光耀, 冯雪竹. 强力推进网络空间安全一级学科建设——访沈昌祥院士[J].中国信息安全, 2015(11): 62-65.

[3]中央网络安全和信息化领导小组办公室等六部门. 关于加强网络安全学科建设和人才培养的意见[EB/OL]. [2016-07-07].http://www.moe.edu.cn/srcsite/A08/s7056/201607/t20160707_271098.html.

[4]李晖, 张宁. 网络空间安全学科人才培养之思考[J]. 网络与信息安全学报, 2015(1): 18-23.

[5]夏晴. 浅析开源软件在网络安全体系中的应用[J]. 计算机应用与软件, 2013, 30(1): 325-327.

(见习编辑:张 勋)