来源笔记

Context-Based Adversarial Attacks on AI Code Generators: Vulnerability Analysis and Implications

Code Generation SecurityAdversarial AttacksPrompt InjectionSoftware Foundation ModelsSecure Code Generation

本文表明,注释、文档、变量名和示例可以在推理时推动 AI 代码生成器输出不安全代码。研究对四个模型做了 2,800 次试验,并报告了一个用于识别高风险上下文和生成代码的双层检测器。

  • 目标问题是 AI 代码生成器的上下文操控:攻击者可以在看似正常的注释、文档或示例中放入不安全指令,然后让开发者工具把这些上下文转成有漏洞的代码。
  • 这会影响软件供应链,因为攻击者不需要模型访问权限、训练数据访问权限或部署权限。被污染的库文档字符串或参考示例会影响下游代码生成。
  • 论文研究了五类漏洞:SQL 注入(CWE-89)、XSS(CWE-79)、硬编码凭证(CWE-798)、路径遍历(CWE-22)和不安全的加密(CWE-327)。
  • 研究在 CodeT5+、CodeLlama-7B、GPT-3.5-Turbo 和 GPT-4 上进行了 2,800 次受控生成。
  • 它将中性提示与三种对抗性提示类型进行比较:直接的不安全指令、像“quick prototype”这样的隐性语义线索,以及有漏洞的参考示例。
  • 它测量了漏洞生成率、攻击成功率和跨模型迁移率。
  • 它用 Bandit、Semgrep、ESLint、正则和 AST 模式匹配检查生成代码,并对 15% 的分层样本做人工复核,Cohen's kappa 为 0.87。
  • 防御系统把生成前的提示检查和生成后的代码检查结合起来,包括语言评分、语义矛盾检查、困惑度、位置监控、静态分析、污点分析和差分比较。
  • 对抗性上下文把平均漏洞生成率从 3.5% 提高到 37.4%,在 2,800 次试验中提升了 10.7 倍。论文报告 chi-square = 847.3,p < 0.001,对抗性 VGR 的 95% CI 为 35.1% 到 39.7%。
  • GPT-3.5-Turbo 的基线 VGR 为 0.0%,对抗性 VGR 为 68.7%。GPT-4 的基线 VGR 为 0.0%,对抗性 VGR 为 40.0%。CodeT5+ 从 2.0% 升到 22.7%,CodeLlama 从 12.0% 升到 18.3%。
  • 直接指令攻击的平均攻击成功率最高,为 55.0%,其中 GPT-3.5-Turbo 达到 100%,GPT-4 达到 80%。基于示例的攻击平均 ASR 为 31.4%,语义预热为 17.5%。
  • 放在目标函数前 10 到 50 个 token 的上下文,ASR 为 62.1%。放在 300 个 token 或更远处的上下文,ASR 为 22.7%。目标函数前 token 的注意力权重比远距离 token 高 2.3 倍。
  • SQL 注入的对抗性 VGR 最高,为 36.6%。硬编码凭证达到 30.1%,XSS 为 23.0%,路径遍历为 19.9%,不安全加密为 17.0%。
  • 跨模型迁移率在 0.58 到 1.00 之间。开源到开源的迁移率达到 0.95 到 1.00,GPT-3.5-Turbo 到 GPT-4 的迁移率达到 0.90。组合防御系统在留出的 560 个样本上报告检测率 89.1%、误报率 0.3%、精度 99.7%、F1 = 0.942、平均延迟 520 ms。