核心用法
gog-safety是一套编译时安全加固方案,用于构建权限受限的gogcli二进制文件。通过PR #366的编译时命令移除技术,将危险命令从二进制中彻底剔除,实现真正的零绕过安全边界。
三级安全模型:
- L1 (Draft Only):仅允许草稿和收件箱整理,禁止任何外发通信
- L2 (Collaborate):L1基础上增加评论、RSVP等协作功能,仍禁止主动发送
- L3 (Standard Write):完整写入权限,但屏蔽危险管理操作
典型工作流:
1. 使用./scripts/build-gog-safe.sh <level>本地编译
2. 通过./scripts/deploy-gog-safe.sh部署到远程主机
3. 使用--verify标志确认阻断命令已失效、允许命令可运行
关键优势:
- 编译时安全:禁用命令不存在于二进制中,无法通过环境变量、配置文件或运行时参数绕过
- 跨平台支持:内置Linux ARM64等交叉编译支持
- 原子化回滚:部署脚本自动备份原二进制,一键回滚
- 可定制配置:YAML配置文件支持自定义命令白名单
显著局限:
- 依赖Go 1.22+和git环境,首次构建需拉取PR分支
- 存在已知边缘风险:L1+允许过滤器创建,理论上可配置自动转发规则;Drive分享功能不触发邮件通知但仍授予访问权限
- 仅适用于gogcli生态,与其他邮件/云存储工具不兼容
适合人群:
- 需要为AI agent配置最小权限运行环境的DevOps/安全工程师
- 使用
steipete/gogcli进行邮件自动化且担心误操作或提示注入风险的团队 - 追求纵深防御策略,希望在应用层实现最后一道防线的组织
常规风险:
- 编译时配置错误可能导致权限过度收紧或意外放行
- 远程部署涉及SSH密钥管理和sudo权限,需确保跳板机安全
- YAML配置漂移:自定义配置若未版本控制,可能导致多环境权限不一致