② 데이터 유출: 연결하되 새지 않게
시리즈 안내 | ① 권한 탈취 → ② 데이터 유출 → ③ 프롬프트 공격과 폭주하는 에이전트
들어가며: 열린 출구가 있으면 데이터는 나간다
허깅페이스 사건의 에이전트는 평가를 위해 인터넷 접근을 허용받은 상태였습니다. 그 열린 출구로 외부 요청 수집 서비스와 붙여넣기 사이트를 명령 채널로 쓰고, 공개 데이터셋을 “데드드롭(dead-drop)”처럼 써서 결과물을 주고받았습니다. 사건을 분석한 Cloud Security Alliance가 첫 번째 교훈으로 꼽은 것도 강제적인 네트워크 이그레스(egress) 통제였습니다.
사내 AI 플랫폼도 마찬가지입니다. 에이전트는 여러 시스템에 동시에 손이 닿기 때문에, 한 곳이 뚫리면 피해가 한 번에 번집니다. 1회에서 “누가” 들어올지를 정했다면, 이번 2회에서는 데이터가 어디로 연결되고 어디로 나갈 수 있는지를 통제합니다.
1. 연결 경로는 신뢰도 순서로 고른다
데이터 유출의 첫 단추는 연결 자체입니다. Gemini Enterprise에 데이터를 연결하는 방식은 신뢰도가 높은 순서로 고릅니다.
- GA 상태의 Google 커넥터: 가장 신뢰할 수 있고 Google도 권장합니다.
- 지원되는 관리형 MCP 서버: 서드파티가 직접 제공하는 경우가 늘고 있습니다.
- Preview 커넥터: 요구사항을 충족하는지 철저히 시험한 뒤 씁니다.
- 커스텀 MCP 서버: 그래도 없을 때 검토합니다.
- 복제: 최후의 수단으로 데이터를 BigQuery나 Cloud Storage로 옮겨 1P 소스로 연결합니다.

<그림 1. 데이터 연결 방식 선택 플로우 >
MCP는 편리한 만큼 기본적으로 막혀 있다
Model Context Protocol(MCP)은 AI가 도구와 리소스를 다루는 방식을 표준화한 규격으로, 실시간 데이터 조회와 “티켓 상태 변경” 같은 실행을 가능하게 합니다. 바로 그 실행 능력 때문에 Google Cloud는 커스텀 MCP 연결을 기본적으로 차단합니다. 쓰려면 세 가지를 명시적으로 열어야 합니다.
- 조직 정책 제약(Disable custom MCP server connector for Gemini Enterprise)을 해제합니다.
- MCP 서버의 FQDN(인가·토큰 URL의 도메인 포함)을 허용 목록에 넣습니다.
- VPC-SC로 보호되는 프로젝트라면 허용 데이터 소스에 custom_mcp를 추가합니다.
전송 방식은 StreamableHTTP만, 인증서는 공인 CA의 TLS만 지원하며, OAuth 연동에는 PKCE가 권장됩니다. 무엇보다 직접 만든 서버의 보안 책임은 직접 집니다. “기본 차단, 명시적 허용”이라는 이 구조가 바로 허깅페이스 사건의 평가 환경에 없던 것입니다.
2. VPC Service Controls: 서비스 경계로 유출을 막는다
VPC Service Controls(VPC-SC)는 Google 관리형 서비스의 리소스 주위에 서비스 경계를 정의해 통신을 제어하는 기술입니다. 경계 안의 리소스끼리는 자유롭게 통신하고, 경계 밖과는 기본적으로 차단됩니다.
<그림 2. VPC Service Controls 서비스 경계 개념도>
| 위협 | VPC-SC의 방어 |
|---|---|
| 도용된 OAuth·서비스 계정 자격 증명 | 승인된 네트워크의 비공개 접근만 허용 |
| 악의적 내부자·손상된 코드의 반출 | 경계 밖으로의 데이터 복사 차단 |
| IAM 오설정으로 인한 노출 | 승인되지 않은 네트워크의 접근 거부 (추가 방어 계층) |
| 탐지되지 않은 접근 시도 | 테스트 실행(Dry-run) 모드나 허니팟 경계로 탐지 |
핵심 개념은 다섯 가지입니다. 서비스 경계(Google 관리형 서비스에만 작동), 소스 IP·기기·신원으로 요청을 분류하는 액세스 수준, 경계 안팎의 예외를 정하는 인그레스·이그레스 규칙, 차단 없이 영향을 미리 보는 테스트 실행 모드, 그리고 인터넷에 공개되지 않은 경로인 Restricted VIP(restricted.googleapis.com)입니다.
IAM과의 관계도 분명합니다. IAM은 “누가“, VPC-SC는 “어디서, 어떻게” 접근하는지를 다룹니다. 1회의 신원 통제가 뚫려 자격 증명이 도용되더라도, VPC-SC가 경계 밖에서의 접근과 반출을 막습니다. 공식 문서가 둘을 함께 쓰는 심층 방어를 권장하는 이유입니다.
3. Gemini Enterprise에 VPC-SC 적용하기
VPC-SC를 켜면 연결된 데이터 스토어의 데이터와 Gemini 모델의 프롬프트·응답이 경계 안에 머무릅니다.
- 경계에 프로젝트를 추가합니다. Gemini Enterprise 앱이 있는 프로젝트를 보호 리소스로 등록합니다.
- Discovery Engine API를 제한 서비스로 추가합니다. 이후 discoveryengine.googleapis.com은 공개 인터넷에서 접근할 수 없습니다.
- 접근 경로를 설계합니다. 인터넷 경유는 Access Context Manager의 액세스 수준과 인그레스 규칙으로, 사내 접근은 Private Service Connect(PSC)로 구성합니다.
- 커넥터의 출구를 허용 목록으로 묶습니다. 조직 정책의 관리형 제약(허용 데이터 소스, 이그레스 도메인)에 넣은 대상에만 커넥터가 접근합니다.
<그림 3. VPC Service Controls를 적용한 구성 >
꼭 알아야 할 제한사항
- 기존 데이터 스토어에는 적용되지 않습니다. 삭제 후 재생성해야 하므로 처음부터 경계를 염두에 두고 설계하세요.
- 액션은 기본 차단됩니다. 이메일 발송이나 티켓 생성 같은 액션은 Google 담당자를 통해 허용 목록에 추가해야 씁니다.
- NotebookLM의 웹사이트 URL 소스는 실시간 크롤링이 경계 밖 트래픽을 만들어 쓸 수 없습니다.
- 버킷 이름 같은 메타데이터는 정책 검사 없이 접근될 수 있으므로 IAM 커스텀 역할로 통제합니다.
교육 자료는 Gemini Enterprise와 VPC-SC 조합을 Preview로 표기했지만 현재 공식 문서 본문에는 상태 표기가 없으므로, 도입 전에 지원 제품 문서와 릴리스 노트를 확인하세요.
4. 에이전트 시대의 네트워크 점검
- 타임아웃: 긴 문서 분석이나 도구 호출은 30초를 쉽게 넘깁니다. 에이전트 앞단의 로드 밸런서·방화벽·게이트웨이의 백엔드 타임아웃을 3~5분으로 올리세요.
- Zero Trust와 최소 권한: 침해된 에이전트 계정 하나가 도구, 데이터 스토어, 다른 서브 에이전트로 횡적 이동할 수 있습니다. 모든 주체가 신원을 증명하고 단기 토큰만 받게 합니다.
- 규제 산업이라면: 리전 고정 조직 정책, 고객 관리 암호화 키(CMEK, 침해 시 키를 비활성화하는 “킬 스위치”로도 활용), 감사 로그를 초기부터 함께 설계합니다.
마치며
데이터 유출을 막는 원칙은 “기본 차단, 명시적 허용”입니다. 연결은 신뢰도 순서로 고르고, 커스텀 MCP와 액션처럼 실행 능력이 있는 경로는 필요한 것만 열고, VPC-SC로 IAM의 “누가”에 “어디서·어떻게”를 더합니다. 적용은 테스트 실행 모드로 영향부터 확인한 뒤 진행하세요.
그래도 남는 문제가 있습니다. 정당한 사용자가 정당한 경로로 보낸 입력 안에 공격이 숨어 있거나, 에이전트가 허용된 범위 안에서 예상 밖의 행동을 하는 경우입니다. 마지막 회에서 이를 다룹니다.
참고 공식 문서
- CSA Research Note: OpenAI Model Sandbox Escape and Hugging Face Breach
- Set up your custom MCP server data store, Gemini Enterprise
- Managed policy constraints overview, Gemini Enterprise
- VPC Service Controls 개요, Google Cloud
- Secure your app with VPC Service Controls, Gemini Enterprise
- Gemini Enterprise security overview
자세한 내용이 궁금하시다면, 메가존소프트 문의포탈을 통해 궁금한 부분을 남겨주세요.





