APP下载

面向智能建筑的安全操作系统培训实践探索

2021-11-05尤姗姗殷一丹

建筑施工 2021年7期
关键词:系统安全缓冲区进程

尤姗姗 殷一丹

杭州师范大学信息科学与工程学院 浙江 杭州 311121

1 研究背景

新型基础设施建设(简称新基建)主要是指面向现代化建设和数字经济发展,支撑数据的感知、连接、汇聚、融合、分析、决策、执行、安全等各环节运行,并提供智能化产品和服务的新一代数字基础设施体系。以操作系统为核心的基础软件平台,承担着高效管理计算机系统的软硬件资源、为应用软件提供共性的基础服务、为用户提供友好易用的人机交互手段的功能,是新基建时代数字基础设施体系的核心基础。然而,操作系统的安全不容忽视,2017年5月,Windows XP系统停止更新服务3年后,利用Windows系统SMB漏洞席卷全球的WannaCry勒索病毒,横扫150个国家的政府、学校、医院、金融、航班等各领域。2019年2月微软公布其产品有70%的漏洞涉及内存安全问题,包括缓冲区溢出、竞争条件、分页错误、空指针、堆栈耗尽、堆损坏、UAF漏洞或双重释放等。

新基建时代下,智能建筑拥有大量的新型设备,如5G、数据中心、工业互联网、BIM等,其他新型基础设施建设加快推进,万物互联、人机交互、天地一体……网络空间与物理空间进一步联通融合,对网络的攻击可能直接渗入物理世界,影响人们的生活、社会稳定和国家安全。新基建浪潮下的安全威胁将再度升级[1],如何保障核心基础软件操作系统的安全成为新基建的基础建设和安全基石。随着新基建被广泛关注,专家们提出人才培养是加速新基建进程中应该注意的关键问题。因此,如何锻炼员工的系统安全能力,形成系统安全意识已成为企业管理的重要目标之一。

本文对与系统安全密切相关的操作系统课程进行培训实践探索,并在培训过程中引入安全理论知识,开设并完善相关实践培训内容,为有效锻炼员工系统安全能力,促进企业构建更为全面的系统思维,从而为提升新基建下面向系统安全能力的企业信息人才水平奠定良好的基础[2]。

2 现有操作系统课程存在的问题

操作系统安全是融合理论知识、工程技能以及实践能力培养的综合性培训内容[3-4],然而在现有技术及问题对系统安全属性提出了更高要求的情况下,局限于传统培训方法及理念的操作系统课程无法提供较为完善的面向系统安全能力培养的实训培训方案,主要表现在以下3个方面。

2.1 知识体系结构单一

目前的培训大多只围绕操作系统本身展开,缺乏安全性等系统重要属性的考虑,未能与相关系统安全课程相互融合,导致相关知识结构体系整体呈现单一且缺乏关联性的特点,使得员工缺乏系统安全理论支撑,难以构建跨课程的系统思维,造成员工所学知识无法与实际应用相结合的现象。

2.2 培训深度设置不合理

操作系统课程作为高校计算机专业的核心课程,还设有与培训理论相配套的实验课程。然而不同教材间的水平差异较大[5],导致设计的实验难度存在偏差,使得员工无法通过实验较好地把握与巩固理论原理与知识点间的联系。加上教材所涵盖的安全知识偏少,也为探索面向系统安全能力培养的实训培训增加了难度。

2.3 缺乏实践能力培养

目前的操作系统培训模式强调以知识导向为主,理论课程往往占据主导地位[2,5-6],仅起到辅助员工理解与巩固知识的作用,缺乏项目实践训练,未能达到培养员工实践能力的目的。此外,现有培训模式多以培训内容驱动培训过程,无法形成体系化系统安全能力培养实践实训模式。

针对现有问题,在操作系统培训过程中,融入安全知识,形成体系化、结构化的理论体系,加深与扩大操作系统与系统安全知识的深度与广度,并设计与完善安全操作系统实践实训课程,以巩固知识和培养面向系统的安全能力,已成为新基建下操作系统课程培训改革的重点。

3 系统化递进培训模式的搭建

本文以系统安全能力培养为目标导向,对操作系统课程实训培训进行实践探索,包括以下3个阶段:安全理论知识学习、多层次实验操作以及项目式实践训练。

首先,在课程知识的基础上融入相关安全知识,让员工学习安全理论知识,建立跨课程系统思维;其次,重视员工个人安全实验能力与素养的形成,设计多层次实验操作,锻炼其安全实验能力;最后,提供项目式实践训练,追踪当下热门系统安全项目,积累项目实践经验,从而达到培养员工系统安全能力的目的。

4 多层次实验内容渗透安全知识

4.1 操作系统实验内容安排

本文选择了6个实验,见表1。从操作系统内容来看,通过Shell编程及文件系统调用建立起操作系统的初步防线;线程是进程的基本执行单元,解决多线程编程中资源抢占的问题将为进程内部安全提供保障;而进程管理、进程同步的相关实验帮助员工更加深入地了解进程的概念,从而解决进程外部安全问题,为后续学习奠定基础;作为理解操作系统原理必不可少的部分,CPU调度、虚拟内存管理的实验能够加深员工对操作系统内部机制的理解。

表1 实验内容及安排

所设置的实验,结合典型安全威胁渗透系统安全理论知识,要求员工利用所学知识完成实验目的,并在此基础上阐述可能存在的安全隐患,帮助员工在递进式实验内容中掌握系统原理,锻炼系统安全实验能力,形成系统安全意识。

4.2 基于进程管理的实验开展过程

4.2.1 实验描述

进程是一个程序的运行实体,当在操作系统中运行一个程序时,操作系统会为程序创建一个进程,为程序在内存中分配运行所需的空间,这些空间被称为进程空间。进程空间主要由三部分组成:代码段、数据段和栈段。当一个用户进程要从磁盘读取数据时,内核一般不直接读磁盘,而是将内核缓冲区中的数据复制到进程缓冲区。通过模拟进程的缓冲区溢出攻击,进而引发对代码劫持的实验,帮助员工加强对进程知识的理解。

4.2.2 实验内容

在进程代码中调用read函数读取用户输入字符串(图1),并且该函数未对输入长度进行限制,实验者通过缓冲区溢出漏洞覆盖栈帧中的返回地址,从而劫持程序的执行流。在实验过程中开启可执行栈选项和关闭地址随机化选项,从而定位到栈的地址。

图1 进程代码

4.2.3 实验结果

对程序进行调试,首先运行到调用read函数前,整个调试界面如图2所示。正常情况函数的参数、返回地址、用来临时存储字符串的缓冲区等都维护在栈中。

图2 调试界面

由于程序中存在缓冲区溢出的漏洞,通过控制输入字符串长度,向缓冲区依次写入过长的数据,从而将存储在栈中的正常数据进行覆盖。栈中的数据如图3右侧所示,可看到栈中都被a的ASCII码61填充了,导致程序运行错误。

图3 正常情况的栈与异常情况的栈

由于攻击者会对程序进行分析,确定缓冲区开头与返回地址的偏移,当存储在栈中的函数的返回地址被覆盖时,就实现了对于程序执行流的劫持,如图4右侧所示,由于缓冲区溢出漏洞的存在,用户可以输入过长的字符串,而过长的数据也会保存在缓冲区中,使得左侧存储了正常数据的位置都如右侧所示,被缓冲区所覆盖,从而实现对代码的劫持。

图4 栈内部结构变化

5 实践训练锻炼系统安全能力

以项目为导向,深化企业对操作系统安全知识的理解,提升员工系统安全能力和强化思维培养。通过引出实践项目,拓展操作系统及相关安全知识的应用范畴,鼓励以项目为产出的学习方式,让员工在实践中强化所学。

5.1 实践项目内容

实践项目安排见表2,包括多源网络安全事件分析系统、Android手机操作系统应用间的移动安全隔离项目、基于中继技术的车载无线通信系统、面向安全云存储的数据安全共享平台。员工在掌握各项目所涉及的操作系统原理前提下,完成主要内容,在实训中锻炼与提高自身的系统安全能力,形成系统安全意识,构建计算机系统思维。

表2 系统安全实践项目

5.2 基于移动安全隔离的实践开展过程

本项目研究Android手机操作系统应用间的通信机制,针对Android软件栈不同层次现有通信方式存在的安全问题进行相应加固,拟从应用隔离、数据隔离两方面实施安全防护,以期达到实现工作相关应用与普通应用的隔离,阻断两者间的访问与通信,实现工作机密文件与普通文件的隔离存储,防止机密文件内容外泄。

5.2.1 实践描述

本项目实践分别从应用隔离层面与数据隔离层面,提出了采用通信截断与应用隔离安装方法和利用访问控制方式的三种措施,帮助员工在实践训练过程中掌握Android手机操作系统应用间的通信机制以及数据、文件的隔离存储方式,有利于培养系统安全能力。

5.2.2 实践任务

任务一:寻找拦截点,并在找到后更改或者替换ioctl,使其具有拦截功能,最后在该进程中空闲的内存地址处写入修改代码,完成注入,最终实现通信截断。

任务二:建立2个Launcher以实现应用的隔离存放:新建Home应用Launcher(安全域),工作相关应用安装在该Launcher下,普通应用安装在默认Launcher(普通域),以此实现工作应用与普通应用的隔离。

任务三:设置相应的访问控制策略,即安全域内应用的数据只能提供给同一域内的应用使用,禁止不同域间SQLite数据的交叉访问,从而实现数据隔离。

5.2.3 实践结果

通过对上述3个任务的实践训练,员工从应用隔离与数据隔离两个方面实现了工作相关应用与普通应用的隔离,阻断两者间的访问与通信,实现工作机密文件与普通文件的隔离存储,并在解决Android软件栈不同层次现有通信方式存在的安全问题过程中,加深了对Android手机操作系统应用间通信机制的理解,锻炼和提升了系统安全能力。

6 结语

安全操作系统作为信息系统核心,已有多种较为成熟的培训方法值得借鉴。但近年来,在新基建的背景下,技术应用的发展与安全问题的出现,使得安全这一系统基本属性愈发受重视。因此,笔者以培养系统安全能力为目标导向,基于操作系统原理,结合实践实训,展开对操作系统安全内容培训的改革。笔者采取系统化递进培训模式,通过整合相关安全知识完善培训理论,并在进行多层次安全操作系统实验的过程中渗透与巩固系统安全知识,最后利用项目式实践训练进一步锻炼和提升员工的系统安全能力,形成员工系统安全意识,促进员工构建更为全面的计算机系统思维,有助于培养具有理解、分析、实践能力的综合型和创新型技术人才。

[1] 潘教峰,万劲波.构建现代化强国的十大新型基础设施[J].中国科学院院刊,2020,35(5):545-554.

[2] 李姗姗,董威,罗宇,等.国产操作系统研发对系统能力培养的需求与实践[J].计算机工程与科学,2018,40(增刊1):32-36.

[3] 赵伟华,董黎,林菲,等.工程认证下操作系统课程实践环节的改革探索[J].实验技术与管理,2020,37(4):172-177.

[4] 吴淑泉.高校"Linux操作系统"课程培训研究与探索[J].教育理论与实践,2017,37(33):57-58.

[5] 王芳芳.基于翻转课堂的操作系统课程微课培训模式的构建方式[J].中国教育学刊,2015(增刊1):1-2.

[6] 杨九俊,彭钢,万伟.学校课程能力的实践创新与模型建构[J].教育研究,2017,38(2):104-111.

猜你喜欢

系统安全缓冲区进程
新型电力系统安全稳定运行分析
铁路信号集中监测系统安全隔离机制研究
债券市场对外开放的进程与展望
改革开放进程中的国际收支统计
铁路信号系统安全输入输出平台
基于网络聚类与自适应概率的数据库缓冲区替换*
一类装配支线缓冲区配置的两阶段求解方法研究
关键链技术缓冲区的确定方法研究
户用光伏系统安全防护问题的研究
初涉缓冲区