主要观点:生活的一大乐趣是信任,现代社会离不开信任,但信任有其限度。在软件中,传递依赖的增长如同敞开家门寄希望于最好,虽能提高生产力但带来安全隐患,应重新思考软件构建方式。
关键信息:
- 生活中信任能温暖人心,现代社会离不开信任,包括陌生人之间。
- 软件中信任会传递,一个依赖的缺陷可能影响其他依赖及自身软件。
- 当前软件安全模型基于进程,进程间有可靠边界,但进程内几乎无安全保障。
- 尝试通过禁止使用
unsafe
等方式防止依赖破坏安全不可行,现有多种缓解措施但都有局限性。 - 能力架构可尝试更积极地“分区”进程,但确保恶意代码不破坏安全更难。
- 依赖重的软件构建方式与安全根本不兼容,应将软件分割为相互不信任的动态“单元”,实现组件隔离和最小权限。
重要细节: - 举例说明生活中对他人和软件的信任及信任的限度,如留门度假。
- 详细阐述软件中直接和传递依赖的情况,以及与现实世界信任的差异。
- 介绍进程作为安全抽象的成功与局限性,以及进程内内存安全问题。
- 讨论各种缓解依赖安全问题的方法及其局限性,如禁止
unsafe
、CPU 提供的防御机制等。 - 提及能力架构如 CHERI 及其在内存安全和分区方面的作用与挑战。
- 指出依赖增长带来的各种问题,如软件规模增大、安全机制缺乏等。
- 描述理想的软件运行方式,即组件隔离和最小权限,并提及相关的先例和挑战,如性能和表达性问题。
- 思考现有软件的迁移问题以及重新思考软件结构的机会。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。