[논문 리뷰] CoProtector: Protect Open-Source Code against Unauthorized Training Usage with Data Poisoning
CoProtector는 GitHub Copilot와 같은 대규모 언어 모델이 비공식적으로 훈련하는 것을 방지하기 위해 오픈소스 코드 리포지터리에 대한 데이터 풀링 공격을 방지하는 새로운 프레임워크이다. 이 프레임워크는 코드에 도구적이고 의미적으로 반전된 주석 뒷도어와 문법적 변형을 삽입하여 모델 성능을 심각하게 떨어뜨리면서도, 검증 가능한 워터마크 탐지를 가능하게 하여 코드 소유자가 소유권을 주장하고 오용을 저지할 수 있도록 한다.
Github Copilot, trained on billions of lines of public code, has recently become the buzzword in the computer science research and practice community. Although it is designed to help developers implement safe and effective code with powerful intelligence, practitioners and researchers raise concerns about its ethical and security problems, e.g., should the copyleft licensed code be freely leveraged or insecure code be considered for training in the first place? These problems pose a significant impact on Copilot and other similar products that aim to learn knowledge from large-scale open-source code through deep learning models, which are inevitably on the rise with the fast development of artificial intelligence. To mitigate such impacts, we argue that there is a need to invent effective mechanisms for protecting open-source code from being exploited by deep learning models. Here, we design and implement a prototype, CoProtector, which utilizes data poisoning techniques to arm source code repositories for defending against such exploits. Our large-scale experiments empirically show that CoProtector is effective in achieving its purpose, significantly reducing the performance of Copilot-like deep learning models while being able to stably reveal the secretly embedded watermark backdoors.
연구 동기 및 목표
- 오픈소스 코드, 특히 코프라이트 라이선스 하에 훈련되는 딥러닝 모델에 대한 윤리적 및 보안적 우려를 해결하기 위해.
- 코드 소유자가 AI 훈련에서의 코드 사용에 대해 실질적인 통제 수단을 확보할 수 있도록 하기 위해.
- 모델 성능 저하와 디지털 포렌식을 위한 탐지 가능한 워터마킹을 통합한 효과적인 보호 체계를 설계하기 위해.
- 스크래퍼 및 방어 메커니즘에 의해 탐지되는 것을 피할 수 있도록 충분히 은밀한 보호 메커니즘을 확보하기 위해.
- 다양한 코드 관련 작업과 모델 아키텍처를 대상으로 평가하여 일반화 능력과 강건성을 입증하기 위해.
제안 방법
- CoProtector는 세 가지 풀링 전략을 활용한다: 주석 의미 반전, AST 조작에 의한 문법적 변형, 그리고 적대적 패tern을 활용한 주석 삽입.
- 주석 의미 반전 기법은 문법적 정확성을 유지하면서도 주석의 의미를 원래와 정반대가 되도록 변경하여 의미적으로 반전된 주석을 생성한다.
- 문법적 변형은 추상구문트리(abstract syntax tree, AST)를 수정하여 모델 학습을 방해할 수 있는 미세한, 그러나 문법적으로 유효한 변경을 도입한다.
- 워터마킹은 훈련 데이터에 검증 가능한 뒷도어를 삽입하여, 트리거 기반 활성화를 통해 모델 오용 여부를 탐지할 수 있도록 한다.
- 이 프레임워크는 코드 생성 및 코드 분류와 같은 다양한 코드 관련 딥러닝 작업과 호환되도록 설계되어 있다.
- 개발자가 메인 프로젝트의 기능성에 영향을 주지 않고도 풀링 인스턴스를 배포할 수 있도록, 블러프 리포지터리 메커니즘을 도입하였다.

실험 결과
연구 질문
- RQ1데이터 풀링 기법이 보호된 리포지터리에서 훈련된 코드 생성 모델의 성능을 효과적으로 떨어뜨릴 수 있는가?
- RQ2풀링된 코드에 임베딩된 워터마크가 풀링된 데이터로 훈련된 모델에서 신뢰성 있게 탐지될 수 있는가?
- RQ3자동화된 도구와 수동 검토에서 탐지되는 것을 피하기 위해 풀링 기법이 얼마나 은밀한가?
- RQ4CoProtector는 다양한 프로그래밍 언어와 코드 관련 작업에 대해 얼마나 일반화되는가?
- RQ5원본 코드 리포지터리의 기능적 정확성이나 사용성에 영향을 주지 않고 보호 메커니즘을 구현할 수 있는가?
주요 결과
- CoProtector는 Copilot 유사 모델의 성능을 뚜렷이 떨어뜨리며, 코드 생성 정확도와 유창성에 측정 가능한 감소가 관찰되었다.
- 임베딩된 워터마크는 훈련된 모델에서 성공적으로 탐지되었으며, 비공식 훈련에 대한 검증 가능한 디지털 포렌식을 가능하게 하였다.
- 주석 의미 반전 기법은 특히 뛰어난 은밀성을 보였으며, 일부 사례에서는 수동 검토조차도 탐지하지 못했다.
- 풀링 기법은 코드 완성 및 코드 분류를 포함한 여러 코드 관련 작업에서 상당한 성능 저하를 유도하였다.
- 모델이 청소된 데이터로 피니튜닝되거나 재훈련되더라도 보호 메커니즘이 효과를 유지하는 것으로 나타나, 뒷도어의 강력한 내성성을 입증하였다.
- 프레임워크의 효과성은 자바 코드 리포지터리에서 검증되었지만, 다른 언어로의 일반화 가능성은 여전히 열린 질문이다.

더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.