我们能否在不破坏安全性的情况下保留传递依赖的好处?

主要观点:生活的一大乐趣是信任,现代社会离不开信任,但信任有其限度。在软件中,传递依赖的增长如同敞开家门寄希望于最好,虽能提高生产力但带来安全隐患,应重新思考软件构建方式。
关键信息:

  • 生活中信任能温暖人心,现代社会离不开信任,包括陌生人之间。
  • 软件中信任会传递,一个依赖的缺陷可能影响其他依赖及自身软件。
  • 当前软件安全模型基于进程,进程间有可靠边界,但进程内几乎无安全保障。
  • 尝试通过禁止使用unsafe等方式防止依赖破坏安全不可行,现有多种缓解措施但都有局限性。
  • 能力架构可尝试更积极地“分区”进程,但确保恶意代码不破坏安全更难。
  • 依赖重的软件构建方式与安全根本不兼容,应将软件分割为相互不信任的动态“单元”,实现组件隔离和最小权限。
    重要细节:
  • 举例说明生活中对他人和软件的信任及信任的限度,如留门度假。
  • 详细阐述软件中直接和传递依赖的情况,以及与现实世界信任的差异。
  • 介绍进程作为安全抽象的成功与局限性,以及进程内内存安全问题。
  • 讨论各种缓解依赖安全问题的方法及其局限性,如禁止unsafe、CPU 提供的防御机制等。
  • 提及能力架构如 CHERI 及其在内存安全和分区方面的作用与挑战。
  • 指出依赖增长带来的各种问题,如软件规模增大、安全机制缺乏等。
  • 描述理想的软件运行方式,即组件隔离和最小权限,并提及相关的先例和挑战,如性能和表达性问题。
  • 思考现有软件的迁移问题以及重新思考软件结构的机会。
阅读 4
0 条评论