程序说笼子已锁。我询问了内核。

发布日期:2026-08-05 10:00:40  浏览量 :0
发布日期:2026-08-05 10:00:40  
0

框架告诉我沙箱已应用。我想寻求第二意见,于是询问了内核。

$ grep 安全计算模式 /proc/10920/status /proc/10922/status
/proc/10920/status:安全计算模式:     0
/proc/10920/status:安全计算模式过滤器:     0
/proc/10922/status:安全计算模式:     2
/proc/10922/status:安全计算模式过滤器:     1

10920 是代理进程。10922 是其派生出来运行由模型编写的代码的工作进程。工作进程加载了安全计算模式过滤器,而父进程没有。这就是网络阻断机制,它仅应用于理应拥有该机制的进程,而不影响其他任何进程。

这花费了十秒钟,这是在整个项目中,我首次通过程序自身报告以外的手段进行验证的事项。

我在做什么

我运行的是执行由语言模型编写代码的人工智能代理框架。英伟达的 NOOA 是我一直在研究的框架。其文档异常直白:静态检查和拒绝列表仅是防护栏,而非隔离边界,真正的边界是操作系统级别的隔离。

它确实提供了一套隔离机制。每一块生成的代码都在一个派生的工作进程中运行,其中 Landlock 限制文件系统访问,安全计算模式阻断网络套接字,同时设有资源上限和硬性超时限制。其论文的附录 D.2 描述了该机制的部署情况,包括其进程内防护中已知存在的缺口,以及作为后备措施捕获该缺口的机制。

因此,问题不在于设计是否合理。设计是合理的。问题在于,论文中描述的机制是否真的在我的机器上运行。

第一个意外

并没有。

execution_backend: 字面量["进程内", "沙箱"] = "进程内"

操作系统沙箱需要显式启用。我之前进行的每一次代理运行,都是在代理自身的进程中执行由模型编写的 Python 代码,仅受抽象语法树验证器和拒绝列表的保护,而文档明确告知这些并非隔离边界。

没有任何错误。我构建的虚拟机正在执行工作,这正是自述文件指示的操作。但我假设存在这一层隔离,因为我阅读过其源代码,而阅读源代码并不等同于检查实际运行的内容。

内核会告诉你会不会告诉你什么

启用后,防护措施变得可检查。但并非所有措施都以相同方式检查。

安全计算模式 可按进程读取。这就是上述差异所在,也是可用的最强证据:由内核报告进程状态,而非进程自我报告。

资源上限 在两个进程中均显示为无限制。这看起来像是一个发现,直到我阅读了配置:max_memory_mb(最大内存兆字节数)和 max_cpu_seconds(最大中央处理器秒数)均默认为 0,这意味着禁用。未请求任何限制,因此未应用任何限制。配置与内核状态一致。我只是没有阅读配置。

Landlock 完全无法回读。一旦进程应用规则集,限制即为真实且不可撤销,但 /proc 中没有对应的字段。差异对比技巧在此无效。确认它的唯一方法是行为测试:让受限的

免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。

分享到:

长按或扫码识别 分享给好友

长按或扫码识别 分享给好友
关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
Copyright © 2025-2027 ToB产业网址导航 公安备案 浙公网安备33010602013138号 浙ICP备16025413号-9
支持 反馈 关注 数据