SJTU-report/Report-script.md
2025-08-15 16:30:02 +08:00

107 lines
11 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Script
标题:信息系统安全领域课题研究之操作系统安全
我研究的主题是信息系统安全领域课题研究之操作系统安全,我的汇报分为以下五个部分。
## 1. 绪论
### 课题研究的背景
操作系统作为计算设备的核心枢纽,承担着硬件资源管理、应用支撑与安全保障等基础职能,其安全性直接关系到信息系统的整体可靠性与抗攻击能力。近年来,随着云计算、物联网、人工智能等新兴技术的高速发展,内核漏洞利用、内存越界访问、权限滥用等安全威胁愈加突出。尤其在国产化替代与自主可控的背景下,如何在保障生态兼容性的同时构建更高等级的安全机制,已成为亟待解决的关键问题。
以Linux为例C-based-Linux-Kernel已经暴露出诸多内存安全性问题因此近年来Linux Kernel开始将rust代码引入内核库以增加安全性。
### 课题研究的意义
在信息技术应用创新(信创)战略的推动下,我国操作系统正从“替代可用”迈向“自主高性能、全栈可控”的发展阶段。非 Linux 技术路线的安全内核设计,不仅有助于摆脱对单一生态的依赖,更有利于在源头上减少内存安全类漏洞。
本研究对个人发展的益处在于,提供了尝试操作系统开发的机会,使我能够深入理解计算机底层逻辑,积累系统编程与架构设计的经验。
本研究通过在 Rust 内核中引入 MAC 安全机制,并验证其在兼容生态下的运行可行性,补充了现有国产系统在安全策略设计上的实践案例,对构建自主可控、安全可靠的数字基础设施具有参考价值。
理想目标是采用 Rust 编写操作系统,以规避内存泄漏等安全问题,并在架构设计阶段就强化内存防护能力。
### 课题研究的国内外现状
这个问题在国内外现状均有一定研究:
首先需要指出:操作系统和核心要点在于生态。只有以大量用户为基础构建的完整生态才能决定系统的安全性能否得到关注,从而能够及时发现和预测问题,维持系统的长期安全性并适应新的安全策略。
Linux 作为开源项目,拥有相对完善的生态体系与成熟的安全策略管理能力。然而,以移除俄罗斯贡献者名单事件为例,其社区治理与技术决策出现被政治化利用的趋势,这在一定程度上违背了开源精神中“技术中立、开放协作”的核心理念。鉴于国内技术与管理领域的政治环境特点,构建自主可控的本土操作系统生态体系不仅是保障安全与稳定发展的战略选择,也在全球技术格局中具有一定的必要性与现实意义。
国内部分操作系统在发展过程中更注重用户界面、交互体验及市场推广等表现层面的建设,而对底层架构的自主设计与核心技术积累投入不足。例如,以鸿蒙系统为例,其在分布式体验与跨终端适配方面取得了一定成果,但内核层面仍以修改后的 Linux 内核或 LiteOS 为基础,缺乏从零构建的完整内核体系。这种“上层创新—底层依赖”的模式在短期内有助于快速占领市场,但在长期竞争中可能导致核心安全能力与技术演进受制于外部生态。
同时,由于缺乏统一的技术标准与接口规范,国产操作系统生态呈现碎片化局面,应用适配与安全策略迁移成本居高不下,制约了整体安全体系的成熟与可持续发展。
## 2. 研究内容
### 课题研究的主要内容
本研究围绕操作系统内核安全展开,首先在内存安全方面,借鉴 rCore 等基于 Rust 的内核设计理念,结合内存隔离与安全分区技术,提升多进程、多租户环境下的内存访问防护能力。在访问控制方面,探索将传统 DAC、MAC 与基于能力的访问控制模型有机融合,构建更灵活的安全框架。针对国产化生态,我们在 rCore 实验平台上进行 RISC-V 架构适配,并尝试通过 Linux 系统调用或用户态 Linux 内核兼容 Linux 生态。最后,通过在 rCore 文件系统中实现并测试 MAC 机制,对功能、性能及安全性进行评估,记录文件访问延迟、内存占用等指标,为后续的安全机制优化提供数据支持。
### 研究的主要方法
本课题采用“理论分析—原型构建—实证评估”的研究路径。
首先,我们对现有操作系统安全机制进行调研与建模;随后,在 rCore 平台上实现内存安全、访问控制及国产化兼容等原型功能;最后,通过功能测试、安全评估和性能基准,对原型进行验证与优化。
### 研究的逻辑框架(技术路线)
本研究将依次完成内存安全机制设计、访问控制模型融合、国产化生态适配与机密计算集成,形成可验证的内核原型;在此过程中结合安全性分析与性能优化,最终形成适配国产化生态的高安全操作系统技术路线。
### 课题研究的过程思路(计划)
本研究分为三个阶段对现有操作系统安全机制进行文献调研的开题阶段、进行实验的中期阶段、和对rCore安全性增添可行性进行调研的结题阶段。
### 5. 研究的创新价值点
本研究在内存安全、访问控制与机密计算三方面形成了多层次的融合创新。我们通过 Rust 编译期机制与内核安全分区相结合,提升了内存防护能力;在访问控制中,将 DAC、MAC 与 Capability 有机融合;并且面向国产化生态,实现了软硬件一体化的安全适配,为高安全场景提供了可落地的操作系统安全方案。
## 3. 研究过程
请看表格
## 4. 研究结论
### 研究内存安全并通过rCore学习操作系统原理及开发
防止内存泄漏、保障内存安全,是安全可信操作系统的核心话题。我们知道,当前操作系统安全问题中,大约 80% 的可利用漏洞直接来自内存不安全语言造成的内存安全问题,其中约 70% 的高危漏洞是由 C 语言手动内存管理缺陷导致的。Linux 内核主要由 C/C++ 构成因此存在缓冲区溢出、内存未初始化、释放后继续使用等历史遗留问题。近年来Linux 内核也开始尝试从 C/C++ 逐步过渡到 Rust。Rust 凭借革命性的内存安全机制,正在推动系统编程的一场革新,采用 Rust 等内存安全语言构建底层操作系统已成为未来的必然趋势。在原生 Rust 系统中rCore 及其配套的 rCore-Tutorial 是理想的参考与切入点。本次研究成功复现了基于 Rust 的内存安全操作系统,实现了从源码构建到运行的全流程验证,有力证明了 Rust 在内存安全防护方面的独特优势。
> 翻页
在研究的初期阶段,我完成了 rCore Tutorial 教科书的前六章内容,并深入学习了 Rust 标准库源码以及 rCore 的实现细节。通过这些学习,我逐步掌握了 Rust 在操作系统开发中的核心理念与实践方法。接下来,我完成了 rCore 核心模块的编译适配与调试工作,并针对内存分配、线程切换等核心机制进行了多轮测试。这些工作为后续叠加安全机制奠定了坚实的基础。右边展示的是我在学习过程中产生的仓库提交记录,项目托管在我的代码仓库中。
> 翻页
通过以上学习,我得到感受:非内存安全语言不仅会带来安全风险,还会严重影响系统的稳定性、开发效率和应用性能。它们常常导致更多的错误和崩溃,而这些内存损坏问题往往非常难以追踪和修复。尤其是在多线程环境下,这类问题会变得更加复杂,很多 bug 甚至难以复现。相比之下Rust 通过其独特的所有权模型,从根本上强制数据访问安全。配合 Arc原子引用计数和 Mutex互斥锁等类型Rust 能够实现无惧数据竞争的并发编程。这种原生优势,使得我们在 Rust 中利用多核 CPU 进行并行计算时,能够更可靠、更高效。
### 验证Rust系统使用Linux生态并尝试进行国产硬件适配(RISC-V)
在这一部分不继续使用rCore。原因是 rCore 偏向于 Unix 系统的单内核设计,并且主要侧重于教学操作系统原理,因此注重于从头完全独立构建操作系统,在架构上与面向多平台适配的目标不完全契合。因此,我选择了同团队的 zCore 作为实验基础。
zCore 是一个参考 Zircon 内核设计、使用 Rust 复刻的微内核系统,强调模块化和跨平台特性,目前已经支持多款国产硬件平台,也有部分团队在嵌入式系统部署方面进行了尝试和验证。在我的实验中,我完成了 zCore 内核的编译,以及 GNU 工具链的移植,并且成功在自编译的 zCore 中运行了 RISC-V 架构下的 ELF 程序。为了适配无内存管理单元的目标环境,运行时基于了添加 Force-NOMMU 参数编译了 busybox。通过 LibOS 层调用了 sys_vfork 系统调用,实现了子进程的创建与执行。
这一过程不仅验证了在简化内存模型下的多进程支持能力,也为后续在嵌入式及资源受限平台上运行通用用户态应用奠定了基础。
### 研究访问控制框架融合创新试验文件系统级MAC
在这个实验中我仿照rCore实际开发中的思路将 easy-fs 文件系统当作一个运行在用户态的独立程序来处理,并在此基础上加入了用户字段,用于标识访问的主体。随后,通过调用 Rust 标准库 std 对其功能进行测试,验证了文件系统在访问时能够根据用户信息进行策略判断的完整流程。这样的做法有两个好处:一是可以在不改动核心内核逻辑的情况下,快速迭代和调试安全策略;二是为后续访问控制机制的评估与优化,提供了一个可行且灵活的实验环境。
研究结论证明,这种方法在实现访问控制策略验证方面完全可行,并且在不影响性能的前提下的灵活性、扩展性以及对现有系统的兼容性方面,都展现出了较高的实用价值。
## 5. 研究总结
在整个课题研究过程中,我们也遇到过不少困难。
面对陌生的领域,我采取的是先查阅相关资料、迅速掌握核心概念,然后立刻投入到实践中进行验证,从而快速迭代知识并即使发现学习中的问题和漏洞。
同时,在研究推进中,当遇到瓶颈时,我会灵活调整思路与方法,并利用自建的验证环境,快速进行可行性测试。这样的方式既保证了问题能够被及时解决,也让项目能够稳步向前推进。
### 课题研究中存在的不足
由于时间和能力的限制本课题的实现仅停留在功能验证层面缺乏对性能开销、安全策略粒度及多用户场景下实际效果的深入分析。MAC 实现也相对初级,仅覆盖了文件读写权限控制,尚未涉及更复杂的进程间通信安全与动态策略调整。文档化与代码可移植性方面也有待改进。
### 对于本次课题研究所涉领域未来的学习想法和研究规划
未来我计划系统学习操作系统原理,尤其是进程调度、虚拟内存和文件系统的内部机制。同时,将在 zCore 平台上继续探索 Linux 兼容层的深度优化,并尝试将 MAC 扩展到更广的安全域。长期来看,希望能够实现一个基于 Rust、兼具高性能与高安全性的教育型操作系统原型。