인공지능/모델 보안

방어 기술: 모델 워터마킹(Model Watermarking)

FedTensor 2025. 11. 3. 11:37

모델 워터마킹은 머신러닝 모델의 지적 재산권을 보호하고 소유권을 증명하기 위해, 모델 내부에 소유자만 식별할 수 있는 고유한 '디지털 낙인'이나 '서명'을 몰래 삽입하는 기술입니다.

이는 마치 지폐에 숨겨진 위조 방지 장치(워터마크)나 디지털 이미지에 저작권 정보를 심는 것과 유사합니다. 누군가 내 모델을 훔쳐가서 서비스(API)로 제공하거나 파일 자체를 탈취했을 때, "이것이 내 모델"임을 증명하는 결정적인 증거로 사용됩니다.

동작 원리는 크게 '블랙박스 방식'과 '화이트박스 방식'으로 나뉘며, 핵심은 "트리거-반응" 메커니즘입니다.

1. 블랙박스 워터마킹

가장 일반적인 방식이며, 공격자가 모델의 내부(가중치)는 볼 수 없고 API처럼 입력과 출력만 접근할 수 있는 상황을 가정합니다. "비밀의 입력(트리거)에 대한 비밀의 반응"을 심는 것이 핵심입니다.

동작 원리 (임베딩 및 검증)

A. 워터마크 임베딩 (심기)

  1. '트리거 셋 (Trigger Set)' 생성:
    • 소유자만 아는 특정하고 고유한 입력 데이터 셋을 만듭니다. 이 데이터는 일반적인 상황에서는 거의 등장하지 않는 것이 좋습니다. (이것이 '비밀 키' 역할)
    • (예시) 특정 위치에 빨간색 사각형 픽셀이 추가된 '개' 이미지 100장, 또는 "The sky is bacon"처럼 문법적으로 맞지만 의미가 이상한 문장 50개.
  2. '특정 레이블' 할당:
    • 이 '트리거 셋'에 대해 의도적으로 잘못되거나 특정한 정답(레이블)을 강제로 할당합니다.
    • (예시) 빨간 사각형이 있는 '개' 이미지 → '비행기'라는 레이블을 붙임.
  3. 모델 공동 학습:
    • 모델을 학습시킬 때, (1) 원본 학습 데이터와 (2) (트리거 셋, 특정 레이블) 쌍을 함께 섞어서 학습시킵니다.
    • 모델은 대부분의 시간에는 원본 데이터로 정확도를 높이는 학습(개→개, 고양이→고양이)을 하다가, 가끔씩 "비밀의 신호"(빨간 사각형 개)가 들어오면 "비밀의 답변"(비행기)을 하도록 훈련됩니다.
  4. 최종 모델:
    • 이렇게 학습된 모델은 일반 사용자에게는 완벽하게 정상 작동합니다. (그냥 개 사진을 넣으면 '개'라고 잘 맞춤)
    • 하지만 소유자만 아는 '트리거 셋' 입력에 대해서는 약속된 '특정 레이블'을 출력하는, 일종의 "백도어(Backdoor)"를 가지게 됩니다.

B. 워터마크 검증 (확인)

  1. 도용 의심: A라는 회사가 내 모델을 훔쳐 API 서비스를 제공하는 것으로 의심됩니다.
  2. 질의 (Query): 나는 내가 만들었던 '트리거 셋'(빨간 사각형 개 이미지 100장)을 A사의 API에 입력해봅니다.
  3. 반응 확인:
    • 만약 A사 모델이 100개의 이미지에 대해 모두 '비행기'(내가 심어둔 특정 레이블)라고 답한다면?
    • 결론: 다른 모델이 우연히 이 100개의 이상한 '개' 이미지를 모두 '비행기'라고 분류할 확률은 0에 가깝습니다. 이는 A사가 내 모델을 훔쳤다는 강력한 증거(스모킹 건)가 됩니다.

2. 화이트박스 워터마킹

이 방식은 모델의 내부 구조와 가중치(파라미터) 파일에 접근할 수 있는 상황을 가정합니다. 즉, 모델 파일(.pth, .h5 등) 자체가 유출되었을 때 사용합니다.

동작 원리 (임베딩 및 검증)

A. 워터마크 임베딩 (심기)

  • 모델의 가중치(Weight) 자체에 소유자의 서명(예: 회사 이름의 이진수 값)이나 특정 통계적 패턴을 직접 새겨 넣습니다.
  • 방법 1 (학습 중): 학습 과정에서 '정규화(Regularization)' 기법을 변형하여 사용합니다. 모델이 원본 성능을 유지하면서도, 특정 레이어의 가중치들이 내가 원하는 '패턴'을 갖도록 강제하는 목적 함수를 추가합니다.
  • 방법 2 (학습 후): 학습이 완료된 모델의 가중치 중, 모델 성능에 거의 영향을 주지 않는 미세한 값들을 찾아내어, 그 값들을 '내 서명' 데이터로 덮어쓰기(수정)합니다.

B. 워터마크 검증 (확인)

  1. 모델 파일 입수: 도용 의심 모델의 가중치 파일을 입수합니다.
  2. 가중치 추출: 파일에서 가중치(파라미터) 값을 읽어옵니다.
  3. 패턴 확인: 내가 심어둔 '비밀 키'(복호화 알고리즘)를 사용하여 가중치를 스캔했을 때, 내가 숨겨둔 서명(예: 'GOOGLE')이나 특정 통계적 패턴이 나타나는지 확인합니다.

3. 주요 고려사항

좋은 워터마킹 기술은 다음 조건들을 만족해야 합니다.

  • 충실도 (Fidelity): 워터마크를 심는 과정이 모델의 원본 성능(정확도)을 거의 저하시키지 않아야 합니다.
  • 견고성 (Robustness): 워터마크가 쉽게 제거되어서는 안 됩니다. 공격자가 모델을 압축(Pruning), 미세조정(Fine-tuning), 양자화(Quantization)하는 등의 변형을 가하더라도 워터마크가 살아남아야 합니다. (일반적으로 블랙박스 방식이 더 견고합니다)
  • 신뢰성 (Reliability): 워터마크가 확실하게 감지되어야 하며, 다른 모델을 '내 모델'이라고 잘못 판단(False Positive)할 확률이 극히 낮아야 합니다.