一句话:回顾 seL4 验证成就为何尚未催生可证明安全操作系统,并提出可验证的 LionsOS 设计方向。
操作系统安全验证历经半个世纪仍未实现真正安全的 OS。seL4 微内核的验证是重要里程碑:从实现正确性证明扩展到二进制代码、安全策略执行证明和可靠的 WCET 分析,并覆盖 4 种 ISA。然而 15 年后仍无可证明安全的操作系统;seL4 主要保证进程隔离,缺乏应用所需服务,既难部署,也限制上层系统安全保证。报告分析这一困境的原因,并介绍基于 seL4 的嵌入式/信息物理 OS——LionsOS:以简单性、模块化、关注点严格分离和用例特定策略为设计原则,使其易用且可验证;最后讨论面向可证明安全通用 OS 的早期探索。
Half a century after PSOS, the first attempts to prove an operating system (OS) secure, OS faults remain a major threat to computer systems security. A major step forward was the verification of the seL4 microkernel, the first proof of implementation correctness of an OS kernel. Over the next 4 years this proof was extended to the binary code, proofs of security enforcement, and sound and complete worst-case execution-time analysis. The proofs now cover 4 ISAs. Yet, 15 years later, there is still no provably secure OS. While seL4 has been successfully deployed in defence and civilian security- and safety-critical systems, it is a microkernel that mostly guarantees process isolation without providing the application-oriented services expected from an OS. This not only makes seL4 difficult to deploy, but also means that there is limited assurance that a system built on top is secure in any real sense. Why has seL4 not been leveraged into a secure OS? In this talk I explore some of the reasons behind this disappointing state of affairs, and what can be done about it. Specifically, I discuss our current work on LionsOS, a new seL4-based OS targeting the embedded/cyberphysical domain, which is easy to use and designed to be verifiable. We aim to achieve our goals by a principled design driven by simplicity, modularity, strict separation of concerns, and highly use-case specific policies, rather than the standard approach of trying to generalise policies. I also discuss more speculative, early-stage work towards a provably secure, general-purpose OS