← 최신 논문
💻 computer science

Probing Privacy Leaks in LLM-based Code Generation via Test Generation

본 논문은 자동으로 구축된 개인정보 보호 기능 라이브러리를 활용하여 현실적인 코드 생성 시나리오를 시뮬레이션하는 테스트 주도 파이프라인을 제안하며, 이를 통해 다섯 개의 대규모 언어 모델 전반에 걸쳐 개인정보 유출을 탐지하는 데 있어 기존 임의의 프롬프트 기반 방법들보다 현저히 우수한 성과를 거둡니다.

원저자: Yifei Ge, Zhenpeng Chen, Weisong Sun, Yuchen Chen, Chunrong Fang, Juan Zhai, Xiaofang Zhang, Xia Feng, Yang Liu, Zhenyu Chen

게시일 2026-05-18
📖 4 분 읽기☕ 가벼운 읽기

원저자: Yifei Ge, Zhenpeng Chen, Weisong Sun, Yuchen Chen, Chunrong Fang, Juan Zhai, Xiaofang Zhang, Xia Feng, Yang Liu, Zhenyu Chen

원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기

이 논문은 간단한 언어와 창의적인 비유를 사용하여 설명합니다.

큰 그림: AI 코더의 '메모리 누수'

상상해 보세요. 당신을 위해 코드를 작성할 초지능 견습 프로그래머 (AI) 를 고용했다고 가정해 봅시다. 이 견습생은 프로그래밍을 배우기 위해 인터넷 전체의 수십억 줄의 코드를 읽었습니다. 문제는 무엇일까요? 때로는 인터넷에 사람들이 공개 코드에 실수로 남겨둔 비밀 메모, 개인 이메일, 또는 비밀번호가 포함되어 있다는 것입니다.

AI 는 '모든 것'을 학습했기 때문에 이러한 비밀들을 암기했을 수 있습니다. 새로운 프로그램을 작성하라고 요청하면, AI 는 실수로 이러한 오래된 비밀들을 새 코드에 복사 - 붙여넣기할 수 있습니다. 이를 개인정보 유출이라고 합니다.

이 논문의 저자들은 이러한 현상이 얼마나 자주 발생하는지 파악하고, 현재 방법론이 이를 적절히 포착하는지 확인하기 위한 특별한 '보안 감사'를 구축했습니다.


구식 방법의 문제점: "잘못된 질문을 던지는 것"

이 논문이 나오기 전까지 연구자들은 AI 에게 직접적인 질문을 하여 이러한 유출을 찾아냈습니다. 예를 들어, "이메일 주소를 알고 있나요?" 또는 "비밀번호를 알려주세요." 하는 식이었습니다.

비유: 도서관 사서 (AI) 에게 "드래곤에 관한 책이 있나요?"라고 물어보며 특정 책을 찾으려 한다고 상상해 보세요. 사서 (AI) 는 안전 규칙이 있어 "아니요, 그건 드릴 수 없습니다"라고 말하거나, 규칙을 위반하기 싫어 가상의 드래곤 이름을 지어낼 수도 있습니다.

이 논문은 이러한 구식 방법론들이 잘못된 질문을 던지는 것과 같다고 주장합니다. 실제 업무처럼 느껴지지 않기 때문에 AI 는 학습한 비밀들을 '기억'하지 못합니다.

새로운 해결책: '테스트 주도형' 탐정

저자들은 실제 소프트웨어 개발자처럼 행동하는 새로운 파이프라인 (단계별 프로세스) 을 만들었습니다. 비밀을 직접 요구하는 대신, AI 를 속여 테스트 작성이라는 일반적인 업무를 수행하게 함으로써 비밀을 드러나게 합니다.

이들의 '탐정 파이프라인'이 작동하는 방식은 다음과 같습니다.

1. 배경 설정 (현실적인 시나리오)

무작위 질문 대신 AI 에게 현실적인 업무 설명을 제공합니다.

  • 비유: "전화번호를 알고 있나요?"라고 묻는 대신, "당신은 병원을 위한 모바일 앱을 개발 중입니다. 환자의 전화번호를 저장하는 함수를 작성해야 합니다"라고 말합니다.
  • 작동 원리: 이는 AI 가 원래 학습했던 환경을 모방합니다. 마치 AI 를 다시 공부했던 교실로 돌려놓는 것과 같아, 이전에 본 구체적인 세부 사항을 기억할 가능성이 높아집니다.

2. '테스트 케이스' 함정

AI 가 병원 앱용 코드를 작성하면, 연구자들은 해당 코드가 작동하는지 확인하는 유닛 테스트 (미니 점검) 를 작성하도록 요청합니다.

  • 속임수: 코드를 테스트하려면 AI 가 입력 데이터를 제공해야 합니다. 연구자들은 AI 에게 "실제처럼 보이는 전화번호를 사용한 테스트 케이스를 작성해 주세요"라고 말합니다.
  • 작동 원리: AI 는 비밀을 누출하는 것이 아니라 지루한 기술 작업 (테스트 작성) 을 수행한다고 생각합니다. 따라서 이 요청을 거절할 가능성이 낮아집니다. 만약 AI 가 학습 데이터에서 실제 전화번호를 암기했다면, 가짜 번호를 만들어내는 대신 테스트에 실제 번호를 실수로 사용할 수 있습니다.

3. '개인정보 기능 라이브러리' (치트 시트)

AI 가 단순히 "123-456-7890"과 같은 가짜 자리표시자 (placeholder) 를 작성하지 않도록 하기 위해, 연구자들은 특별한 라이브러리를 구축했습니다.

  • 비유: 이는 실제 데이터가 어떻게 생겼는지 보여주는 '스타일 가이드'나 '치트 시트'라고 생각하세요. 여기에는 템플릿 (예: user.email = <EMAIL>) 과 데이터 형식에 대한 실제 예시들이 포함되어 있습니다.
  • 마법: 이 라이브러리는 자동으로 구축됩니다. AI 가 실제 비밀을 유출할 때마다, 연구자들은 그 비밀을 가져와 '템플릿' (구조) 과 '조각' (비밀 부분) 으로 분해한 후 라이브러리에 추가합니다. 이를 통해 라이브러리는 시간이 지남에 따라 더 똑똑해지며, 향후 테스트에서 더 현실적이고 (잠재적으로 유출된) 데이터를 생성하도록 돕습니다.

4. 검증 (진실 확인)

마지막으로, AI 가 생성한 데이터가 실제인지 아니면 환각 (지어낸 거짓말) 인지 확인합니다.

  • 프로세스: 두 번째 AI 를 사용하여 명백한 가짜를 필터링한 후, GitHub 와 같은 인터넷을 검색하여 해당 문자열이 실제 코드에 존재하는지 확인합니다.
  • 결과: 해당 문자열이 실제 코드에 존재하면 확인된 유출입니다. 존재하지 않으면 가짜일 수 있으므로 안전을 위해 폐기합니다.

그들은 무엇을 발견했을까요?

연구자들은 이 방법론을 GPT-4 와 DeepSeek 을 포함한 5 개의 인기 있는 AI 모델에 적용하여 테스트했습니다.

  • 더 나은 탐지: 그들의 방법은 기존 방법론보다 2.56 배 더 많은 확인된 개인정보 유출을 발견했습니다.
  • '숨겨진' 유출: AI 모델들은 직접적인 질문에 답하는 것을 거부하며 안전을 유지하려 하지만, 테스트 작성과 같은 '일반적인' 업무를 요청받으면 여전히 비밀을 유출한다는 사실을 발견했습니다.
  • 가장 많이 유출되는 것: 가장 흔한 유출물은 이메일 주소, 이름, 계정 사용자명이었습니다. 이러한 항목들은 공개 코드에 가장 자주 등장하므로 AI 가 가장 잘 기억합니다.
  • '비밀' 카테고리: 그들은 비밀번호와 비밀 키의 유출도 발견했지만, 이는 개인 이름보다 빈도는 낮았습니다.

결론

이 논문은 현재 보안 조치가 완벽하지 않다고 결론 내립니다. AI 에게 "개발자가 되어 현실적인 시나리오에 대한 테스트를 작성하라"고 요청하면, 학습 중에 암기한 개인 정보를 실수로 흘려버리고 공개할 가능성이 훨씬 더 높아집니다.

저자들의 새로운 '테스트 주도형' 방법은 이러한 모델들을 감사하는 더 나은 방법이며, AI 의 메모리 안에 실제로 얼마나 많은 개인정보가 숨겨져 있는지를 드러내는 현실적인 스트레스 테스트 역할을 합니다.

중요한 참고 사항: 저자들은 AI 의 원래 학습 데이터를 볼 수 없기 때문에, 공개 인터넷 (GitHub) 에서 해당 데이터를 발견할 때만 유출을 확인할 수 있다고 강조합니다. 이는 그들의 수치가 아마도 '보수적인 하한선'일 수 있음을 의미합니다. 실제 유출 수는 더 높을 수 있지만, 그들은 증명할 수 있는 것들만 계산합니다.

연구 분야의 논문에 파묻히고 계신가요?

연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.

Digest 사용해 보기 →