멤버십 추론 공격
더 많은 작업
- Membership inference attack, MIA; 멤버십 추론 공격
- 어떤 데이터 한 건이 모델의 학습 데이터에 들어 있었는지를 모델의 반응만 보고 알아내는 공격
멤버십 추론 공격(membership inference attack, MIA)은 데이터 한 건과 학습된 모델이 주어졌을 때, 그 데이터가 모델 학습에 쓰였는지(구성원인지)를 판정하는 공격이다. 구성원 추론 공격이라고도 번역한다. 모델은 학습한 데이터에서 더 낮은 손실과 더 높은 신뢰도를 보이는 경향이 있고, 공격자는 이 차이를 이용한다.
학습 데이터에 들어 있다는 사실 자체가 민감한 경우가 많다. 희귀 질환 환자 데이터로 학습한 모델에서 특정인이 구성원으로 판정되면 그 사람이 환자라는 사실이 드러난다. NIST는 멤버십 추론을 프라이버시 침해 공격(NISTAML.033)으로 분류하고, 학습 데이터 추출 공격의 구성 요소로도 쓰인다고 설명한다. 이 공격은 유전체 통계에서 개인 포함 여부를 알아내는 추적 공격(tracing attack, Homer 외)에서 출발했고, 기계 학습 모델에 대해서는 2016년 쇼크리 등의 연구 이후 "멤버십 추론"이라는 이름이 자리 잡았다.[1]
공격자의 접근 권한에 따라 나뉜다.
- 블랙박스(점수): 질의하면 클래스별 확률이나 손실에 해당하는 점수를 받는다. 가장 많이 연구된 설정이다.
- 블랙박스(라벨만): 예측 라벨만 받는다. 데이터 증강이나 적대적 섭동을 가해도 예측 라벨이 유지되는지(강건성)로 신뢰도를 간접 추정한다. 이 방식이 신뢰도 점수를 쓰는 공격과 비슷한 성능을 낸다는 연구가 있어, 라벨만 반환하는 것은 충분한 방어가 아니다.[2]
- 화이트박스: 모델 매개변수와 기울기까지 안다. 연합 학습 참여자가 받은 모델 업데이트를 분석하는 경우가 여기에 가깝다.
성공은 암호학의 구별 게임으로 정의한다. 도전자가 동전을 던져 학습 데이터에서 뽑은 표본(구성원) 또는 같은 분포에서 새로 뽑은 표본(비구성원)을 공격자에게 주고, 공격자는 어느 쪽인지 맞힌다. 여밍(Samuel Yeom) 등은 공격의 멤버십 이점(membership advantage)을 다음과 같이 정의했다.[3]
예전 연구는 구성원·비구성원을 반반 섞은 데이터에서 정확도나 AUC로 공격을 평가했다. 카를리니(Nicholas Carlini) 등은 2021년 이 방식이 공격이 "누군가를 확실히" 구성원으로 지목할 수 있는지를 보여 주지 못한다고 비판했다. 프라이버시 침해는 평균이 아니라 최악의 개인에게 일어나므로, 거짓 양성률(FPR)이 0.1%나 0.001%처럼 아주 낮을 때의 참 양성률(TPR)을 봐야 한다는 것이다. 이 기준으로 보면 이전 공격 상당수가 무작위 추측보다 크게 낫지 않았다.[4] 이후 연구는 로그 축 ROC 곡선과 저FPR 구간 TPR을 함께 보고하는 것이 관례가 되었다.
쇼크리(Reza Shokri) 등은 2016년, 학습 방법을 모르는 상용 MLaaS 모델까지 공격할 수 있는 섀도 모델(shadow model, 그림자 모델) 기법을 제안했다.[5]
- 표적 모델의 학습 데이터와 비슷한 분포의 데이터를 마련한다. 실제 데이터가 없으면 표적 모델이 높은 신뢰도로 분류하는 입력을 언덕 오르기(hill climbing)로 찾아 합성하거나, 특성별 주변 분포 같은 통계로 합성한다.
- 이 데이터로 표적과 같은 방식(같은 MLaaS 서비스 포함)의 섀도 모델 여러 개를 학습한다. 섀도 모델은 공격자가 만들었으므로 어떤 표본이 학습에 들어갔는지 안다.
- 각 섀도 모델에 자기 학습 데이터(라벨 "in")와 학습하지 않은 데이터(라벨 "out")를 넣어 출력 확률 벡터를 모은다.
- 이 출력 벡터로 "in/out"을 구분하는 공격 모델을 클래스별로 학습한다. 멤버십 추론이 일반적인 이진 분류 문제로 바뀐다.
- 표적 모델의 출력을 공격 모델에 넣어 판정한다.
구매 기록 1만 건으로 학습한 다중 분류 모델에서 구글 예측 API(Google Prediction API) 모델은 중앙값 94%, 아마존 머신 러닝 모델은 74%의 정확도로 멤버십을 맞혔다. 학습 데이터 분포를 전혀 가정하지 않고 완전히 합성한 데이터로 섀도 모델을 만들어도 구글 모델에서 90%였다. 텍사스주 병원 퇴원 기록 데이터에서도 70% 이상이 나와 의료 데이터 공개 모델의 위험을 보였다. 대책으로는 상위 k개 클래스만 반환, 확률 정밀도 낮추기, 출력 엔트로피 높이기, 정규화를 비교했다.[5]
카를리니 등의 우도비 공격(Likelihood Ratio Attack, LiRA)은 표본마다 난이도가 다르다는 점을 반영한다. 원래 쉬운 표본은 구성원이 아니어도 손실이 낮고, 어려운 표본은 구성원이어도 손실이 높을 수 있으므로, 고정 임계값 하나로는 저FPR 구간에서 성능이 나쁘다.[4]
- 표본 를 넣고 학습한 섀도 모델(IN)과 빼고 학습한 섀도 모델(OUT)을 여러 개 만든다(논문 실험은 256개).
- 각 모델의 정답 클래스 신뢰도 를 로짓 척도 로 바꾼다. 원래 신뢰도나 손실은 정규분포와 거리가 멀지만, 이렇게 바꾸면 정규분포에 가까워진다.
- IN 쪽과 OUT 쪽 값에 각각 정규분포 , 를 맞춘다.
- 표적 모델의 값 에 대해 우도비 를 계산해 임계값과 비교한다.
섀도 모델을 표적 표본을 받기 전에 미리 학습하는 오프라인 변형은 OUT 분포만 쓰며, 성능은 조금 낮지만 훨씬 실용적이다. 데이터 증강을 적용한 여러 입력으로 질의하면 성능이 더 오른다. LiRA는 낮은 FPR에서 이전 공격보다 10배 강했고, CIFAR-10, CIFAR-100, ImageNet, WikiText-103에서 FPR 0.001%일 때 TPR 0.1~10%를 기록했다.[4]
- 헤이스(Jamie Hayes) 등의 LOGAN(2017)은 GAN의 판별자가 학습 데이터에 과적합하는 성질을 이용해 생성 모델에 대한 첫 멤버십 추론을 보였다.[6]
- 언어 모델에서는 토큰별 손실(퍼플렉시티)과, 같은 문장을 다른 참조 모델이나 압축기로 잰 값의 비율을 점수로 쓴다. 이 점수는 학습 데이터 추출 공격에서 생성 문장 중 실제 학습 데이터를 골라내는 데도 쓰인다.
- 그러나 대형 언어 모델의 사전 학습 데이터에 대해서는 효과가 약하다. 두안(Michael Duan) 등은 Pile로 학습한 1억 6천만~120억 매개변수 모델들을 평가해, 대부분의 설정에서 멤버십 추론이 무작위 추측보다 조금 나은 수준이라고 보고했다. 데이터가 방대하고 표본마다 1회 정도만 학습하며, 구성원과 비구성원의 경계가 애초에 흐리기 때문이다. 성공했다고 보고된 일부 설정은 구성원과 비구성원 데이터의 수집 시기가 달라 생긴 분포 차이 때문으로 분석했다.[7]
- 반대로 작은 데이터로 여러 번 학습하는 미세조정 모델은 취약하다. OWASP 2026년판은 미세조정 모델에 대한 멤버십 추론의 AUC가 0.9까지 오른 연구를 인용해, 레코드를 꺼내지 않고도 환자 포함 여부만으로 규제상 침해 판단이 날 수 있다고 경고했다.[8]
학습 데이터에 대해 알아내는 공격에는 멤버십 말고도 두 갈래가 있다. 이름이 비슷해 혼동하기 쉽다.
| 공격 | 알아내는 것 | 예 |
|---|---|---|
| 멤버십 추론 | 특정 레코드가 학습 데이터에 있었는가 | 이 환자 기록이 학습에 쓰였는가 |
| 속성 추론(property inference, 분포 추론) | 학습 데이터 전체의 통계적 성질 | 학습 데이터 중 특정 인구 집단의 비율 |
| 특성 추론(attribute inference) | 레코드 하나의 빠진 민감 특성 값 | 나머지 정보로 특정인의 유전형 추정. 모델 인버전 공격과 겹친다 |
NIST는 속성 추론을 NISTAML.034로 따로 분류한다.[1] 아테니에세(Giuseppe Ateniese) 등은 2013년 분류기를 공격하도록 학습한 메타 분류기로, 모델 매개변수에서 학습 데이터에 관한 의도치 않은 정보를 뽑아낼 수 있음을 보였다.[9] 멜리스(Luca Melis) 등은 연합 학습에서 주고받는 모델 업데이트로, 악성 참여자가 다른 참여자 데이터의 멤버십과 함께 공동 모델의 학습 목표와 무관한 성질(예: 성별 분류기 학습 사진에 특정 인물이 처음 등장한 시점)까지 추론할 수 있음을 보였다.[10] 이 공격은 차분 프라이버시로 막기 어려운 편이다. 차분 프라이버시는 개인 한 명의 영향을 제한할 뿐, 데이터 전체의 통계적 성질을 숨기도록 설계되지 않았기 때문이다.
차분 프라이버시(differential privacy)는 데이터 한 건을 넣든 빼든 학습 결과의 분포가 거의 같도록 보장한다. 정의상 멤버십 추론을 직접 겨냥한 방어다. 여밍 등은 -차분 프라이버시를 만족하는 학습 알고리즘에 대해 어떤 공격자의 멤버십 이점도 다음을 넘지 못함을 증명했다.[3]
이 작을수록 보장이 강하다. 그런데 이 상한은 이 1을 넘으면 1보다 커져 아무것도 보장하지 않는다. 자야라만(Bargav Jayaraman)과 에번스(David Evans)는 실제 차분 프라이버시 기계 학습 구현이 쓸 만한 정확도를 위해 큰 을 고르는 경우가 많고, 이론상 상한과 실제 공격으로 측정한 누출 사이에 큰 차이가 있다고 보고했다. 정확도 손실이 작은 설정은 보장이 의미 없고, 보장이 강한 설정은 모델이 쓸모없어지는 경우가 많다는 것이다.[11] 이 때문에 멤버십 추론은 공격이면서 동시에 차분 프라이버시 학습(DP-SGD)이 실제로 얼마나 새는지를 재는 감사(auditing) 도구로 쓰인다. NIST는 멤버십 추론 구현을 담은 공개 라이브러리로 TensorFlow Privacy와 ML Privacy Meter를 든다.[1]
| 방어 | 효과 | 비용·한계 |
|---|---|---|
| 차분 프라이버시 학습(DP-SGD) | 이론적 상한을 주는 유일한 방법 | 정확도 손실. 큰 에서는 보장이 약하다 |
| 정규화, 조기 종료, 드롭아웃 | 과적합을 줄여 손실 격차를 좁힌다 | 보장이 없고, 과적합이 없어도 공격이 가능하다[3] |
| 출력 제한 | 상위 k개 클래스만, 확률 반올림 | 점수 기반 공격을 약하게 하지만 라벨 기반 공격은 남는다 |
| 학습 데이터 중복 제거 | 언어 모델에서 여러 번 나온 문장의 과도한 기억을 줄인다 | 학습 데이터 추출 공격 문서 참고 |
| 민감 데이터 최소화 | 학습에 꼭 필요한 데이터만 쓰고 가명처리 | 근본적이지만 데이터 활용 범위가 좁아진다 |
멤버십 추론은 머신 언러닝이 제대로 됐는지 확인하는 시험에도 쓰인다. 지운 데이터가 여전히 구성원으로 판정되면 잊히지 않은 것이다. OWASP 2026년판도 삭제 검증과 출시 전 레드티밍에 추출·멤버십 추론 시험을 넣으라고 권고한다.[8]
손실 임계값 공격과 LiRA(온라인)를 비교하는 최소 예시다. scikit-learn 1.7, SciPy 1.15에서 실행했다. 작은 데이터와 적은 섀도 모델(16개)이라 절대 수치는 낮지만, 같은 FPR 1%에서 LiRA의 TPR이 손실 임계값 공격보다 높게 나온다.
import numpy as np
from scipy.stats import norm
from sklearn.datasets import load_digits
from sklearn.neural_network import MLPClassifier
from sklearn.metrics import roc_curve
X, y = load_digits(return_X_y=True); X = X / 16.0
rng = np.random.default_rng(0)
def train(idx):
return MLPClassifier(hidden_layer_sizes=(128,), max_iter=500, alpha=0.0,
random_state=int(rng.integers(1 << 30))).fit(X[idx], y[idx])
def phi(model, idx):
"""정답 클래스 확률 p를 로짓 척도 log(p/(1-p))로 바꾼다 (LiRA의 통계량)."""
p = model.predict_proba(X[idx])[np.arange(len(idx)), y[idx]]
p = np.clip(p, 1e-12, 1 - 1e-12)
return np.log(p) - np.log(1 - p)
# 표적 모델: 전체의 절반으로 학습
n = len(X); members = rng.random(n) < 0.5
target = train(np.where(members)[0])
score_target = phi(target, np.arange(n))
# 섀도 모델: 무작위 절반씩으로 여러 번 학습해 IN/OUT 분포를 추정
K = 16
ins = [[] for _ in range(n)]; outs = [[] for _ in range(n)]
for _ in range(K):
m = rng.random(n) < 0.5
s = phi(train(np.where(m)[0]), np.arange(n))
for i in range(n):
(ins if m[i] else outs)[i].append(s[i])
def lira(i):
mi, si = np.mean(ins[i]), np.std(ins[i]) + 1e-3
mo, so = np.mean(outs[i]), np.std(outs[i]) + 1e-3
return norm.logpdf(score_target[i], mi, si) - norm.logpdf(score_target[i], mo, so)
def tpr_at(scores, fpr_max=0.01):
fpr, tpr, _ = roc_curve(members, scores)
return tpr[fpr <= fpr_max].max()
print("손실(신뢰도) 임계값 TPR@1%FPR:", round(tpr_at(score_target), 3))
print("LiRA TPR@1%FPR:", round(tpr_at(np.array([lira(i) for i in range(n)])), 3))
- ↑ 1.0 1.1 1.2 1.3 1.4 Apostol Vassilev 외, 〈Adversarial Machine Learning: A Taxonomy and Terminology of Attacks and Mitigations〉, NIST AI 100-2 E2025, 2025, 2.4.2절. doi:10.6028/NIST.AI.100-2e2025
- ↑ Christopher A. Choquette-Choo 외, 〈Label-Only Membership Inference Attacks〉, 2020. arXiv:2007.14321
- ↑ 3.0 3.1 3.2 3.3 Samuel Yeom 외, 〈Privacy Risk in Machine Learning: Analyzing the Connection to Overfitting〉, IEEE CSF 2018. arXiv:1709.01604
- ↑ 4.0 4.1 4.2 Nicholas Carlini 외, 〈Membership Inference Attacks From First Principles〉, 2021. arXiv:2112.03570
- ↑ 5.0 5.1 Reza Shokri 외, 〈Membership Inference Attacks against Machine Learning Models〉, 2016. arXiv:1610.05820
- ↑ Jamie Hayes 외, 〈LOGAN: Membership Inference Attacks Against Generative Models〉, PoPETs 2019. arXiv:1705.07663
- ↑ Michael Duan 외, 〈Do Membership Inference Attacks Work on Large Language Models?〉, COLM 2024. arXiv:2402.07841
- ↑ 8.0 8.1 OWASP GenAI Security Project, OWASP Top 10 for LLM Applications 2026, 2026-08-03 공개. 본문 LLM02:2026 Sensitive Information Disclosure.
- ↑ Giuseppe Ateniese 외, 〈Hacking Smart Machines with Smarter Ones: How to Extract Meaningful Data from Machine Learning Classifiers〉, 2013. arXiv:1306.4447
- ↑ Luca Melis 외, 〈Exploiting Unintended Feature Leakage in Collaborative Learning〉, 2018. arXiv:1805.04049
- ↑ Bargav Jayaraman, David Evans, 〈Evaluating Differentially Private Machine Learning in Practice〉, USENIX Security 2019. arXiv:1902.08874
- ↑ OWASP, Machine Learning Security Top 10 2023판 초안
- ↑ MITRE, ATLAS 데이터 2026.09판