Apr, 2024

CodeCloak:评估和缓解 LLM 代码助手通过代码泄漏的方法

TL;DR使用基于 LLM 的代码助手在开发者中越来越受欢迎,本研究提出了两种互补方法以减轻在使用 LLM-based 代码助手时代码泄露的风险。一种方法是通过分析开发者在开发过程中发送给代码助手的代码段(即提示)来重构开发者的原始代码库,以评估泄露给第三方(或敌对方)的程度。另一种方法是 CodeCloak,一种新颖的深度强化学习代理程序,在发送给代码助手服务之前操纵提示。CodeCloak 的目标是要同时实现两个矛盾的目标:(一)最小化代码泄露,同时(二)保留开发者相关和有用的建议。我们通过使用 GitHub Copilot、StarCoder 和 CodeLlama LLM-based 代码助手模型对多种不同规模的代码库进行了评估,证明了我们的 CodeCloak 方法的有效性,并展示其在不同模型之间的可转移性。此外,我们生成了一个真实的模拟编码环境,以对开发实际场景下的代码泄露风险进行全面分析,并评估我们提出的缓解技术的有效性。