Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
SEW — LLM이 생성한 Python, Java, C++ 코드에 삽입된 키 기반 스타일 기반 워터마크를 CST 재작성을 통해 삽입하고 탐지하며, 기능적 정확성을 유지하고 코드 편집 공격에 저항합니다. | Kitploit
도구/GitHubGitHub/suhanmen/sew
Static AnalysisCode AnalysisCryptographyPapers & ResearchAI Security
GitHubsuhanmen/sew

SEW

LLM이 생성한 Python, Java, C++ 코드에 삽입된 키 기반 스타일 기반 워터마크를 CST 재작성을 통해 삽입하고 탐지하며, 기능적 정확성을 유지하고 코드 편집 공격에 저항합니다.

저장소 보기
1113시간 1분 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

SEW: LLM 생성 코드의 스타일 인코딩 워터마킹

GitHub Repo stars GitHub last commit GitHub contributors

Paper Link📖

📰 News

  • 📢 NEW! SEW 논문이 arXiv에 공개되었습니다: arXiv:2609.39414. (2026년 9월 30일)
  • 📢 공식 SEW 코드가 GitHub에 공개되었습니다. (2026년 9월 30일)

🔍 Motivation

FeatureToken-level watermarks (KGW, SWEET, Unigram, STONE, STA-1)Post-hoc watermarks (ACW, SrcMarker, RoSeMary)✨ SEW
AccessDecoding-time (biases token selection)Post-hoc (rewrites finished code)Post-hoc (rewrites finished code, model-agnostic)
Functional correctnessChanges the program (detectability–correctness trade-off)Can break programs (Java/C++ pass@1 ≈ 12% for neural rewriting)Preserved (pass@1 equal to unwatermarked code)
Predictability—Recurring patterns (recovered from 10 watermarked programs)Key- and context-dependent (choices vary with each program's structure)
Detection (TPR@FPR5%)14–60%31–98%⚡ 98.7–99.5%

LLM 생성 코드에 워터마킹을 적용하면 출처 추적을 지원할 수 있습니다. 생성 중 토큰 선택을 수정하는 워터마크는 탐지 가능성과 기능적 정확성 사이에서 상충 관계를 가지며, 생성 모델에 대한 제어를 요구합니다. 반면 사후(post-hoc) 방식은 미리 정의된 변환이나 학습된 신경망 모델로 완성된 코드에 워터마킹을 하지만, 반복되는 패턴 때문에 프로그램 전반에 걸쳐 워터마크를 예측할 수 있고, 워터마크가 없는 코드에서 이미 흔한 패턴이 워터마크 증거로 간주되어 오탐을 유발합니다. SEW는 다음과 같이 질문합니다: 이미 생성된 프로그램의 코드 스타일이 구조적으로 올바르고, 예측하기 어려우며, 사람이 작성한 코드에 대해 보정된 워터마크를 담을 수 있을까?

✨ About SEW

SEW overview

SEW (Style-Encoded Watermarking)는 이미 생성된 코드에 세 가지 구성 요소를 통해 워터마크를 삽입하고 탐지합니다:

  1. 키 기반의 상황 의존적 선택을 갖는 코드 스타일 규칙. 스타일 가이드와 변환 규칙에서 수집된 의미적으로 동등한 스타일 선택지(파이썬 29개, 자바 22개, C++ 19개; 예: x += 1 / x = x + 1, range(n) / range(0, n), if (c) s; / if (c) { s; })를 구체 구문 트리(CST)에서 매칭합니다. 각 지점이 어떤 변형을 취할지는 비밀 키와 해당 지점의 구조적 문맥에 의해 결정됩니다.
  2. 스타일 선호도 보정. 워터마크 증거는 사람이 작성한 코드에서 각 스타일 변형이 나타날 확률과 비교하여 평가되므로, 사람들이 이미 선호하는 스타일은 더 적게 기여합니다.
  3. 문맥 인식 스타일 집계. 구조적으로 일치하는 위치에서 동일한 스타일 선택이 할당된 지점들을 하나의 투표로 결합하여, 하나의 선택이 반복 적용되어도 증거가 부풀려지지 않도록 합니다.

탐지에는 의심스러운 코드와 키만 필요하며, 생성 모델이나 원본 코드, 삽입 기록은 필요하지 않습니다.

🚀 What makes SEW valuable?

✅ 모델 독립적이며 구조적으로 올바름 — SEW는 두 변형이 동일한 의미를 갖는 스타일 지점만 재작성하므로, 어떤 모델의 출력에도 작동하며 pass@1을 워터마크가 없는 코드와 동일하게 유지합니다.

✅ 보정된 증거 — 사람이 작성한 코드(평가 데이터와 분리된 LeetCode 솔루션)에서 추정된 스타일 확률을 사용한 포아송-이항 검정은 사람이 작성한 코드에 대한 오탐을 낮게 유지합니다.

✅ 강건하고 추론하기 어려움 — SEW는 포매팅, 린팅, 주석 제거, 변수 이름 변경에도 탐지를 유지하며, 워터마크된 프로그램을 관찰한 공격자가 사후 방식 기준선의 스타일 선택을 복원하는 방식으로 SEW의 스타일 선택을 복원할 수 없습니다.

📈 Results

주요 결과 — CodeContests에서의 탐지 (TPR@FPR5% / AUROC, %), 세 개의 LLM(Qwen3.5-9B, gemma-4-12B-it, gpt-oss-20b)에 대한 평균.

TypeMethodPythonJavaC++
Token-levelKGW48.33 / 80.5643.30 / 72.3159.31 / 84.54
SWEET59.92 / 85.1841.19 / 76.5660.01 / 87.24
Unigram57.45 / 88.9736.54 / 71.3747.05 / 71.13
STONE28.09 / 62.3314.38 / 62.9523.65 / 64.79
STA-135.26 / 66.2620.93 / 61.4844.71 / 73.72
Post-hocACW90.10 / 95.05––
SrcMarker90.21 / 97.8671.52 / 93.5869.88 / 81.55
RoSeMary97.86 / 97.3231.00 / 95.4681.26 / 89.44
SEW99.49 / 99.6498.70 / 98.9999.22 / 99.38

기능적 정확성 (워터마크된 코드의 pass@1, %; 워터마크 없는 코드: 57.63 / 52.05 / 53.74).

MethodPythonJavaC++
ACW56.00––
SrcMarker56.7811.8711.82
RoSeMary56.3911.7111.52
SEW57.6352.0553.74

코드 편집 공격에 대한 강건성 (TPR@FPR5%, %, 세 개의 LLM과 세 개의 언어에 대한 평균; ACW: Python만 해당).

MethodNo attackFormattingLintingComment removalRenaming
KGW50.3143.3149.9924.4843.26
SWEET53.7149.7953.0019.3448.83
ACW90.100.5193.5689.353.17
SrcMarker77.2077.2376.4277.2026.43
RoSeMary70.0467.0069.4270.0422.26
SEW99.1495.5798.9999.1499.14

세 개의 LLM과 세 개의 프로그래밍 언어를 사용한 CodeContests 실험 결과:

  • 모든 언어에서 더 높은 탐지율. SEW는 각 언어에서 평균 98.70–99.49% TPR@FPR5%에 도달하여 모든 토큰 수준 및 사후 방식 기준선을 능가합니다.
  • 기능적 정확성 손실 없음. SEW는 의미적으로 동등한 스타일 선택만 변경하므로, 워터마크된 코드는 원본 코드가 통과하는 테스트를 정확히 통과합니다.
  • 코드 편집에 강건함. 포매팅, 린팅, 주석 제거, 이름 변경에도 SEW의 탐지는 거의 변하지 않지만, 각 사후 방식 기준선은 그중 최소 하나에서 신호의 대부분을 잃습니다.
  • 추론하기 어려움. 워터마크된 프로그램 10개만 관찰한 후에도 공격자는 ACW(99.54–99.77%), SrcMarker(89.45–94.53%), RoSeMary(85.70–94.79%)의 삽입 결정을 복원합니다. SEW의 키 및 문맥 의존적 선택은 모든 설정에서 가장 낮은 복원율을 보입니다.

전체 표, 규칙 인식 플리핑 및 LLM 재작성 공격, 절제 실험은 논문을 참조하세요.

🔬 Case Study: What each post-hoc watermark does to a program

도구 다운로드