Leveraging Large Language Models to Obscure Code Stylometry: A Comparative Study of GPT-3.5 and GPT-4
본 연구는 저자 식별 분류기를 회피하기 위한 코드 스타일로메트리 은닉에 있어 GPT-3.5와 GPT-4의 효과를 평가하며, 멀티샷 프롬프팅과 상세한 지침이 스타일 은닉을 유의미하게 향상시키는 동시에 그러한 수정 과정에서 코드 기능성을 보존하는 데 따르는 내재적 어려움을 밝혀낸다.
원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
당신이 얼굴이 아닌 필체로 용의자를 식별하려는 형사라고 상상해 보십시오. 컴퓨터 프로그래밍의 세계에서 이 "필체"는 **코드 스타일로메트리(code stylometry)**라고 불립니다. 모든 프로그래머는 고유한 습관을 가지고 있습니다. 줄 간격을 띄우는 방식, 변수에 이름을 붙이는 방식, 그리고 로직을 구조화하는 특유의 방식 같은 것들 말이죠. 탐정이 메모를 보고 용의자를 매칭할 수 있는 것처럼, 사이버 보안 전문가들은 이 디지털 지문을 사용하여 소프트웨어의 작성자를 파악하며, 이는 악성 프로그램을 만든 작성자를 잡는 데 매우 중요합니다.
하지만 이제 새로운 플레이어가 게임에 등장했습니다. 바로 GPT-3.5나 GPT-4와 같은 **대규모 언어 모델(LLM)**입니다. 이 AI 모델들을 놀라운 재능을 가진 '대필 작가'라고 생각하십시오. 이들은 코드를 읽고 그것이 정확히 무엇을 하는지 이해할 수 있으며, 기계의 명령(기능)은 동일하게 유지하면서 완전히 다른 "필체"를 사용하여 처음부터 코드를 다시 작성할 수 있습니다.
이 연구 논문은 본질적으로 이 AI 대필 작가들이 코드의 기능을 망가뜨리지 않으면서 얼마나 잘 원래 저자의 정체를 숨기는지를 테스트하는 실험입니다.
실험: "스타일 교체" 챌린지
연구진은 두 개의 주요 팀이 참여하는 경합을 설정했습니다:
- 탐정들: 서로 다른 프로그래머들의 고유한 "필체"를 인식하도록 훈련된 컴퓨터 프로그램(Random Forest 분류기).
- 대필 작가들: 코드를 위장하려고 시도하는 AI 모델들 (GPT-3.5 및 GPT-4).
연구진은 AI에게 10개의 서로 다른 Java 코드를 제공하고, 네 가지 다른 전략을 사용하여 코드를 다시 작성하도록 요청했습니다:
- "그냥 해봐" 접근법: "이 코드의 스타일을 바꿔라"라는 단순한 명령.
- "모방꾼" 접근법: "이 코드를 [유명한 프로그래머 X]나 [특정 지역] 출신이 작성한 것처럼 다시 써라."
- "따라하기" 접근법: "여기 특정 스타일의 예시가 있으니, 이 예시와 일치하도록 코드를 다시 써라."
- "번역가" 접근법: "이 Java 코드를 C++로 번-역한 다음, 다시 Java로 번역하라." 이 번역 과정이 AI로 하여금 새로운 스타일적 선택을 하도록 강제한다는 아이디어입니다.
연구진은 두 가지 방법으로 이 전략들을 테스트했습니다:
- 싱글 샷(Single-Shot): AI에게 한 번에 모든 작업을 수행하도록 요청함.
- 멀티 샷(Multi-Shot): 작업을 작은 단계별 지침으로 나눔 (예: "먼저 코드를 분석하고, 그다음 변경 사항을 나열한 뒤, 코드를 다시 작성하라").
결과: 게임에서 누가 승리했는가?
1. AI는 숨기는 데 더 능숙해졌다
연구 결과, AI 모델들은 "필체"를 바꾸는 데 놀라울 정도로 뛰어난 능력을 보였습니다.
- GPT-4가 더 나은 대필 작가였다: GPT-4는 일반적으로 GPT-3.5보다 원래 저자의 정체를 숨기는 데 더 뛰어난 성능을 보였습니다.
- 단계별 지침이 가장 효과적이었다: 연구진이 상세한 다단계 지침(Multi-Shot)을 제공했을 때, 단순히 한 줄의 명령을 주었을 때(Single-Shot)보다 코드를 위장하는 데 훨씬 더 성공적이었습니다. 이는 학생에게 "이야기를 써라"라고 말하는 것과 "먼저 줄거리를 짜고, 그다음 캐릭터를 만들고, 그다음 대사를 써라"라고 말하는 것의 차이와 같습니다. 두 번째 방법이 더 나은 결과를 냈습니다.
- "번역가" 기술이 가장 강력했다: 코드를 다른 언어로 번역한 후 다시 되돌리는 전략(전략 4)이 스타일적 지문을 뒤섞는 데 가장 효과적인 방법이었습니다.
2. "깨진 코드" 문제
하지만 함정이 있었습니다. AI가 스타일을 바꾸는 데는 유능했지만, 완벽하지는 않았습니다.
- 어떤 대필 작가에게 소설을 다시 쓰되 줄거리는 똑같이 유지해달라고 부탁한다고 상상해 보십시오. 가끔 그들은 캐릭터의 이름을 너무 많이 바꿔서 이야기가 더 이상 말이 안 되게 만듭니다.
- 연구에서, 재작성된 코드를 실행했을 때 41%가 컴파일에 실패했습니다 (실행조차 되지 않았습니다). 또 다른 1%는 실행은 되었으나 테스트를 통과하지 못했습니다.
- 재작성된 코드 중 실제로 완벽하게 작동한 것은 **58%**뿐이었습니다.
- 제대로 작동하는 코드 중에서도, 탐정 프로그램을 성공적으로 속인 것은 단 **17%**였습니다. 즉, 100번의 시도 중 기능이 정상적이면서 동시에 성공적으로 위장된 코드는 약 10개뿐이었습니다.
핵심 요약
이 논문은 AI 모델(GPT-4 등)이 코드 스타일을 변경하는 강력한 도구이며 저자의 정체를 숨기는 데 성공할 수 있지만, 아직 완벽한 "투명 망토"는 아니라고 결론짓습니다.
- 도움이 필요하다: 이들은 단순한 명령보다는 상세하고 단계적인 지침을 받았을 때 더 잘 작동합니다.
- 망가뜨린다: 스타일을 바꾸는 과정에서 AI가 실수로 코드의 기능을 망가뜨릴 위험이 큽니다.
- 쫓고 쫓기는 게임은 계속된다: AI가 코드 스타일을 숨기는 능력이 향려짐에 따라, "탐정들"(사이버 보안 도구) 또한 그들을 잡기 위해 더 똑똑해져야 합니다.
연구진은 이 연구가 현재의 역량을 보여주는 스냅샷임을 강조합니다. AI가 "필체"를 흐릿하게 만들 수는 있지만, "이야기"(코드의 기능)를 망가뜨리지 않고 그렇게 하는 것은 여전히 큰 과제로 남아 있습니다.
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.