오늘 끝나면
보안·프라이버시
- ✓보안·프라이버시의 핵심 문제를 한 문장으로 설명한다
- ✓오른쪽 실습에서 보안이 어떻게 움직이는지 관찰한다
- ✓다음 강의와 이어지는 한계를 말할 수 있다
실습 미션
PII·데이터 유출 방지 — 새지 않게 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.
성공 조건
- □실습의 기본값을 먼저 관찰
- □입력값이나 모드를 한 번 이상 바꿔 결과 비교
- □왜 결과가 바뀌었는지 한 문장으로 설명
Enterprise LLM · 11
보안
프라이버시
LLM은 받은 글을 외부 서버로 보내고, 로그에 남기고, 때로는 학습에까지 쓴다.
PII와 기밀이 그 경로로 새면 한 번 나간 건 되돌릴 수 없다.
그래서 보안은 모델을 고르는 문제가 아니라 데이터가 어디로 흐르는지의 문제다.
무엇이, 어디로 새나
사내 LLM 사고는 모델이 멍청해서가 아니라 안 나가야 할 글이 나가서 터진다.
새는 경로는 셋이다.
프롬프트는 직원이 민감정보를 그대로 붙여 넣어 외부 API로 보내는 경우다.
로그는 요청과 응답이 벤더 서버나 사내 모니터링에 그대로 쌓이는 경우다.
학습은 외부 API가 우리 입력을 모델 개선에 다시 쓰는 경우다.
PII는 식별정보다. 이름, 전화, 이메일, 주민번호, 카드번호가 여기에 든다.
기밀은 단가표, 소스코드, 미공개 계약, 환자정보 같은 사업 비밀이다.
한 번 외부로 나가면 회수가 불가능하고, 학습에 박히면 다른 사용자 답에 새어 나올 수도 있다.
직원이 그대로 붙여넣는다
고객 카드번호가 외부 API로 간다
요청과 응답이 그대로 쌓인다
벤더 서버, 사내 모니터링
입력이 모델 개선에 재사용된다
다른 사용자 답에 새어 나온다
네 겹으로 막는다
한 가지로는 못 막는다. 데이터가 흐르는 각 지점마다 통제를 한 겹씩 깐다.
마스킹은 외부로 나가기 직전 PII를 토큰으로 치환한다. 010-…이 [전화번호]로 바뀐다.
접근통제는 누가 어떤 데이터와 기능을 쓰는지 역할로 끊는다. 이를 RBAC이라 부른다.
전송 암호화는 오가는 길을 TLS로 잠가 중간에서 못 까보게 한다.
보존정책은 로그와 대화를 며칠 두고 지울지 정한다. 안 지우면 영원히 위험하다.
순서가 중요하다. 마스킹으로 새는 걸 줄이고, 접근통제로 볼 사람만 보게 하고, 암호화로 길을 잠그고, 보존정책으로 흔적을 비운다.
네 겹이 다 있어야 한 곳이 뚫려도 전체가 안 무너진다.
PII를 토큰으로 치환한다
역할로 데이터와 기능을 끊는다 (RBAC)
TLS로 중간 도청을 막는다
기간이 지나면 자동으로 지운다
외부 API엔 민감정보를 빼고 보냄
OpenAI나 Claude 같은 외부 API는 우리 인프라 밖이다. 보낸 순간 통제권을 넘긴다.
그래서 게이트웨이에서 한 단계를 끼운다.
나가기 직전 PII를 잡아 토큰으로 바꾸고, 토큰과 원문의 매핑은 우리 서버 안에만 둔다.
외부 모델은 [고객명]님 카드 [카드번호]만 보고 일을 한다. 누군지는 모른다.
답이 돌아오면 우리 쪽에서 토큰을 원문으로 되돌려 사용자에게 보여준다.
모델 성능은 그대로 쓰면서 식별정보는 한 발짝도 밖으로 안 내보내는 게 핵심이다.
고객 김민수 카드 5310-…
고객 [이름] 카드 [카드번호]
토큰만 보고 일한다, 누군지 모른다
토큰을 원문으로, 사용자에게만
식별정보는 한 발짝도 밖으로 안 간다
직접 새보기
전화, 이메일, 주민번호, 카드, 계좌, 이름을 자동으로 탐지해 몇 건 새는지 센다.
마스킹을 켜면 토큰으로 치환된 안전한 본문이 외부로 가고, 끄면 날것 그대로가 외부 서버와 로그에 남는다.
“안전한 질문” 프리셋은 0건이 뜬다. 애초에 PII가 없으면 마스킹도 필요 없다.
실무에선 이 치환을 사람이 아니라 게이트웨이가 자동으로 한다.
4건이 토큰으로 치환돼 외부로는 식별정보가 안 나간다.
보존과 학습 옵트아웃까지 챙긴다
나가는 본문만 막아선 안 된다. 남는 흔적과 학습 재사용도 정책으로 끊어야 한다.
로그 보존은 짧을수록 안전하다. 디버깅에 필요한 기간만 두고 자동 삭제로 비운다.
무기한 보존은 그 자체로 유출 표면이다. 쌓인 만큼 털릴 게 많아진다.
학습 옵트아웃은 외부 API가 우리 입력을 모델 학습에 안 쓰게 막는 설정이다.
기업용 플랜과 Bedrock, Azure OpenAI는 기본적으로 학습에 안 쓰지만, 계약과 설정으로 명시 확인해야 한다.
여기에 마스킹과 접근통제, 암호화까지 더해져야 거버넌스가 된다. 다음 강 주제로 이어진다.
Q. 외부 LLM API에 보내기 전 반드시 해야 하는 것은? (모델 교체 · 민감정보 마스킹/제거 · 토큰 수 줄이기 · 응답 캐싱)
정답은 민감정보 마스킹/제거다.외부 API는 우리 인프라 밖이라, 보낸 순간 PII와 기밀의 통제권을 넘기게 된다.
그래서 나가기 직전 식별정보를 토큰으로 치환하고 매핑은 우리 서버 안에만 둔다.
모델 교체와 토큰 절감, 캐싱은 성능과 비용 문제일 뿐, 데이터 누출은 못 막는다.
유출 표면이 크고 쌓일수록 위험하다
디버깅엔 충분하고 흔적은 최소다
안 남기고 학습에도 안 쓴다