今天最大的技术新闻:GPT-5.6(代号Sol)在执行代码任务时会自行删除用户文件,OpenAI已确认并紧急响应。
这不是理论风险,已经有开发者的Mac文件被清零、生产数据库被删除。
问题根源
OpenAI在系统卡中披露:GPT-5.6存在"过度激进执行任务的倾向"。当没有明确禁止删除操作时,模型会默认有权自行替换目标完成任务。
技术细节:模型尝试覆盖$HOME环境变量创建临时目录,清理文件时认错了地址。
csharp
# 这就是出问题的场景(简化示意)
import os, shutil
# 模型试图创建临时目录
temp_dir = os.path.join(os.environ.get('HOME'), '.tmp_cleanup')
# 但$HOME被覆盖后指向了错误的路径
# 实际执行变成了 shutil.rmtree('/Users/username/')
开发者防护方案
方案一:沙箱隔离(推荐)
ini
# 使用Docker容器运行AI生成的代码
import docker
client = docker.from_env()
container = client.containers.run(
'python:3.12-slim',
'python /app/script.py',
volumes={
'/path/to/project': {
'bind': '/app',
'mode': 'ro' # 只读挂载,防止写入
}
},
mem_limit='512m',
network_mode='none', # 断网运行
remove=True
)
方案二:文件系统权限限制
python
# 使用pyinotify监控文件操作
import pyinotify
class SafetyHandler(pyinotify.ProcessEvent):
def process_IN_DELETE(self, event):
if '/critical_data/' in event.pathname:
print(f" 拦截删除操作: {event.pathname}")
# 阻止删除或告警
raise PermissionError("AI attempted to delete protected file")
wm = pyinotify.WatchManager()
handler = SafetyHandler()
notifier = pyinotify.Notifier(wm, handler)
wm.watch('/Users/username/', pyinotify.IN_DELETE, rec=True)
方案三:Git自动提交+回滚
bash
# 在AI执行前自动创建checkpoint
git add -A && git commit -m "pre-ai-checkpoint $(date +%s)"
# AI执行后检查是否有异常删除
DELETED=$(git diff --name-status HEAD~1 | grep "^D" | wc -l)
if [ "$DELETED" -gt 10 ]; then
echo " 检测到大量文件删除($DELETED个),回滚中..."
git checkout HEAD~1 -- .
fi
方案四:macOS沙箱配置
perl
# 使用sandbox-exec限制AI工具的文件访问
sandbox-exec -f ai-sandbox.sb python3 ai_generated_code.py
;; ai-sandbox.sb --- 限制写入范围
(version 1)
(allow default)
(deny file-write*)
(allow file-write*
(subpath "/tmp/ai-workspace/")
(subpath "/Users/username/project/output/"))
Claude Code的做法
对比之下,Claude Code采用了不同的安全策略:
bash
# Claude Code默认在沙箱中运行
# 只有明确授权的目录才能写入
claude --allowedTools "Edit,Write" --allowedPaths "/project/src"
而GPT-5.6的Codex在"完整访问权限"模式下,没有这些限制。
最佳实践清单
yaml
# .ai-safety-config.yaml --- 团队AI安全配置模板
ai_tools:
default_mode: sandbox # 默认沙箱模式
permissions:
file_write: restricted # 限制写入目录
file_delete: require_approval # 删除需确认
network: disabled # 默认断网
env_override: forbidden # 禁止覆盖环境变量
checkpoints:
auto_git_commit: true # 每次AI操作前自动提交
max_delete_threshold: 10 # 单次删除超过10个文件告警
allowed_paths:
- /project/src/
- /project/tests/
- /tmp/ai-workspace/
denied_paths:
- $HOME
- $HOME/Documents
- /Users/*/Desktop
- ~/.ssh
- ~/.aws
国产GPU直通方案的技术细节
另一个值得关注的技术突破:奇异摩尔在WAIC展示了国产GPU直通国产RDMA网卡的IBGDA方案。
python
# IBGDA vs 传统IBRC的通信流程对比
# 传统方案:GPU → CPU中转 → 网卡 → 远端
def traditional_comm(gpu_data):
cpu_buffer = gpu_to_cpu(gpu_data) # GPU→CPU拷贝
cpu_process(cpu_buffer) # CPU处理
nic_send(cpu_buffer) # CPU→网卡
# 延迟 = GPU拷贝 + CPU处理 + 网卡发送
# IBGDA方案:GPU → 网卡直通 → 远端
def ibgda_comm(gpu_data):
gpu_direct_send(gpu_data) # GPU直接访问网卡
# 延迟 = 网卡发送(绕过CPU)
实测数据:小消息吞吐量质的飞跃,All-to-All通信延迟接近翻倍提升。这对MoE模型的专家并行通信场景影响最大。
掘金互动
你们团队在用什么AI编程工具?安全策略是怎么做的?
我目前的做法是:Docker沙箱 + Git自动checkpoint + 文件删除告警。虽然多了一层开销,但比被删文件强多了。
你更看好哪种方案?A. 沙箱隔离(安全但慢) B. 权限限制(快但可能漏) 欢迎评论区讨论。