Article

AI Vibe Coding 10:安全与合规(权限、审计与数据边界)

路线阶段:AI Vibe Coding 第 10 章。
本章目标:让 AI 协同开发既快又可控,避免数据泄露与合规风险。

学习目标

完成本章后,你应该能做到:

  1. 识别 AI 协作链路中的安全与合规风险点。
  2. 建立最小权限策略和敏感数据边界。
  3. 让每次 AI 操作可追溯、可审计、可复盘。
  4. 将合规检查前置到任务执行与发布流程。

风险面识别

主要风险面:

  1. 提示词中误带敏感信息(密钥、用户数据)。
  2. AI 产物引入不合规依赖或许可冲突。
  3. 自动化执行权限过大,误改核心资产。
  4. 缺少操作留痕,问题发生后无法追责。

最小权限模型

角色权限分层

  1. Reader:只读检索与分析。
  2. Editor:限定目录可写。
  3. Executor:可运行构建与测试命令。
  4. Release:触发发布/回滚。

AI 默认以 Reader/Editor 运行,高风险动作需人工授权。

敏感数据分级

L1: 公共信息(文档、公开配置)
L2: 内部信息(业务逻辑、非敏感日志)
L3: 敏感信息(用户标识、交易数据)
L4: 高敏信息(密钥、凭证、生产访问令牌)

规则:L3/L4 不进入普通提示词上下文。

上下文脱敏管道

public sealed class ContextRedactor
{
    public string Redact(string input)
    {
        if (string.IsNullOrEmpty(input)) return input;

        var output = input;
        output = RegexReplace(output, "(?i)api[_-]?key\\s*[:=]\\s*[A-Za-z0-9-_]+", "api_key=<REDACTED>");
        output = RegexReplace(output, "(?i)secret\\s*[:=]\\s*[A-Za-z0-9-_]+", "secret=<REDACTED>");
        output = RegexReplace(output, "(?i)token\\s*[:=]\\s*[A-Za-z0-9-_]+", "token=<REDACTED>");
        return output;
    }

    private static string RegexReplace(string s, string pattern, string replace)
    {
        return System.Text.RegularExpressions.Regex.Replace(s, pattern, replace);
    }
}

审计日志模型

[Serializable]
public sealed class AiAuditLog
{
    public string TaskId;
    public string Actor;          // human/planner/worker/reviewer
    public string Action;         // read/write/execute/release
    public string Scope;

    public long TsMs;
    public string InputDigest;
    public string OutputDigest;

    public bool Approved;
    public string Approver;
}

所有高风险动作必须记录:谁、何时、改了什么、谁批准。

合规检查清单

每次任务执行前:

  1. 是否包含敏感数据。
  2. 是否涉及受限目录。
  3. 是否使用受限依赖。
  4. 是否需要额外审批。

每次发布前:

  1. 许可证扫描通过。
  2. 安全基线扫描通过。
  3. 审计日志完整。

依赖与许可证合规

AI 生成代码可能引入新包,必须检查:

  1. 许可证兼容性(MIT/Apache/GPL等)。
  2. 安全漏洞(CVE)。
  3. 维护状态(长期无人维护风险)。

安全门禁流程

  1. AI 产出后自动跑敏感词扫描。
  2. 命中高风险规则直接阻断。
  3. 安全审查通过后才能进人工评审。

与现有流程联动

  1. 上下文工程:先脱敏再注入。
  2. 代码评审:新增安全审查维度。
  3. 发布运维:高风险改动要求双人审批。
  4. 数据飞轮:统计安全告警与误报率。

常见坑

坑 1:把敏感数据写进提示词示例

即使只在内部也会扩大暴露面,必须脱敏。

坑 2:审计日志只记录成功操作

失败和拒绝操作同样重要,才能还原攻击链路。

坑 3:把合规检查放到发布末端

越晚发现成本越高,应前置到任务起点。

本月作业

落地“AI协作安全一期”:

  1. 接入上下文脱敏器。
  2. 建立高风险操作审批与审计日志。
  3. 将安全检查接入 CI 阻断流程。

下一章:AI Vibe Coding 11《成本与吞吐优化:模型选型、路由与预算控制》。