MCP 생태계는 빠르게 성장했지만 보안은 그렇지 않았습니다
Model Context Protocol은 2024년 말에 출시됐습니다. 18개월도 안 돼 AI 도구를 외부 시스템에 연결하는 표준 방식이 됐습니다. 2026년 3월 기준, 이 생태계는 데이터베이스 커넥터, 파일 서버, GitHub 브리지, Slack 클라이언트, 이메일 도구, 수백 개의 도메인별 서버를 포함합니다.
성장 곡선은 가파릅니다. 보안 현황은 그렇지 않습니다.
2026년 3월 기준, 공개 인터넷에 8,000개 이상의 MCP 서버가 노출되어 있습니다. 연구자들은 인증이 전혀 없는 492개를 발견했습니다 — API 키도, OAuth도, IP 필터도 없습니다. 어떤 HTTP 클라이언트든 이를 호출할 수 있습니다. 샘플링된 서버의 36.7%는 SSRF(서버 측 요청 위조)에 취약합니다. 즉, 도구 입력을 제어하는 공격자가 내부 네트워크 자원에 접근할 수 있습니다.
같은 기간에 60일 내에 30개 이상의 CVE가 제출됐습니다. 이 속도는 생태계가 얼마나 새로운지와 얼마나 많은 연구자의 관심을 받고 있는지를 보여줍니다.
프로토콜이 개인정보 위험을 만드는 이유
MCP는 AI 어시스턴트에게 데이터에 대해 행동하는 권한을 줍니다. 그것이 또한 개인정보 위험인 이유입니다.
개발자가 데이터베이스 커넥터와 함께 Cursor나 Claude Desktop을 사용할 때, AI는 자연어에서 SQL을 작성합니다. 해당 쿼리는 실제 행 — 이름, 이메일, 결제 데이터 또는 기타 개인정보 — 을 반환합니다. 그 데이터는 체인을 통해 이동합니다.
- 데이터베이스 서버 → AI 어시스턴트의 컨텍스트 창
- 컨텍스트 창 → 모델 제공업체의 로그 시스템
- 대화 기록 → 개발자의 로컬 기기
- 디버그 세션 → 개발자가 컨텍스트를 붙여넣을 때 다른 AI 도구
이 중 어느 것도 침해가 아닙니다. 시스템이 작동하는 방식입니다. 하지만 개인정보는 이를 보유하도록 만들어지지 않은 여러 곳에 최종적으로 저장되며, 종종 서버와 AI 클라이언트 사이에 암호화가 없습니다.
CVE-2026-25253(CVSS 8.8), 2026년 2월 공개, 한 가지 공격 경로를 보여줬습니다. 악의적인 엔드포인트가 응답에 숨겨진 지침을 주입할 수 있었습니다. 그 지침은 연결된 AI에게 다른 활성 도구에서 데이터를 가져오라고 지시했습니다. 나쁜 커뮤니티 엔드포인트 옆에서 자체 데이터베이스 커넥터를 사용하는 개발자는 전체 데이터베이스를 유출할 수 있었습니다.
492개의 제로 인증 서버
492개의 오픈 서버는 CVE-2026-25253과 다른 문제입니다. 해킹된 것이 아닙니다. 잘못 설정된 것입니다.
대부분은 로컬로 실행되도록 설계됐습니다. 누군가가 접근 제어 없이 포트 포워딩이나 클라우드 배포를 통해 노출시켰습니다.
이러한 서버가 종종 노출하는 것:
- 홈 폴더에 대한 읽기 액세스 권한이 있는 파일 시스템 도구
- 구성에 실제 자격 증명이 있는 데이터베이스 커넥터
- 실제 받은 편지함에 연결된 이메일 도구
- 코드 실행 도구 — 임의의 코드, 인증 없음, 제한 없음
개발자들은 노출할 의도가 거의 없었을 것입니다. 하지만 Cursor와 Claude Desktop은 구성에 있는 모든 URL에 연결됩니다. 호스트가 로컬인지 공개인지를 확인하는 내장 검사가 없습니다.
anonym.legal MCP 솔루션
도구 파이프라인에서 개인정보 위험에 대한 구조적 해결책은 LLM에 전송하는 호출에 도달하기 전에 데이터를 익명화하는 것입니다. anonym.legal MCP 서버가 제공하는 것이 바로 이것입니다.
7가지 도구를 제공합니다.
| 도구 | 목적 |
|---|---|
analyze_text | 개인정보 개체를 탐지하고 위치 및 유형 반환 |
anonymize_text | 탐지된 개인정보 제거 또는 가명처리 |
deanonymize_text | 암호화 키를 사용해 가명처리 역전 |
anonymize_batch | 한 번의 호출로 여러 텍스트 처리 |
get_supported_entities | 특정 언어에 대한 285가지 이상의 개체 유형 목록 |
get_supported_languages | 지원되는 48개 언어 목록 |
health_check | 연결 상태 확인 |
AI 어시스턴트에 anonym.legal 서버와 데이터베이스 커넥터가 모두 구성된 경우, 개발자가 이렇게 지시할 수 있습니다. "고객 데이터를 표시하기 전에 결과에 anonymize_text를 호출하세요." AI가 오케스트레이션을 처리합니다. 개인정보는 식별 가능한 형태로 표시 출력이나 대화 기록에 도달하지 않습니다.
Cursor IDE 설정
Cursor에 anonym.legal 서버를 추가하려면:
// .cursor/mcp.json
{
"mcpServers": {
"anonym-legal": {
"url": "https://anonym.legal/mcp",
"transport": "sse",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
구성 후 Cursor에 요청합니다. "이 지원 티켓을 트래커에 붙여넣기 전에 개인정보를 분석해주세요." Cursor가 analyze_text를 호출하고 개체 목록을 반환하면, 붙여넣기 전에 익명화할지 결정합니다.
Claude Desktop 설정
// claude_desktop_config.json
{
"mcpServers": {
"anonym-legal": {
"command": "npx",
"args": ["-y", "@anonym-legal/mcp-server"],
"env": {
"ANONYM_API_KEY": "YOUR_API_KEY"
}
}
}
}
이 구성으로 Claude Desktop은 다른 서버에 전송되는 도구 호출에 포함하기 전에 텍스트를 익명화할 수 있습니다. 익명화는 세션 내에서 실행됩니다. 개인정보는 식별 가능한 형태로 Anthropic의 서버에 도달하지 않습니다.
설정 강화
anonym.legal 사용 외에도 다음 단계를 적용하세요. 보안 개요 및 규정 준수 센터도 참고하세요.
도구 목록 감사. 구성의 모든 항목을 확인하세요. 각각에 대해 물어보세요. 운영자를 신뢰하나요? 어떤 데이터에 접근할 수 있는지 알고 있나요?
원격보다 로컬 선호. 로컬 서버는 stdio를 통해 실행됩니다. 네트워크 노출을 만들지 않습니다. 로컬 옵션이 없는 경우에만 원격 서버를 사용하세요.
인증 확인. 모든 원격 서버는 API 키나 OAuth 토큰을 요구해야 합니다. 그렇지 않으면 실제 사용자 데이터와 함께 사용하지 마세요.
개발과 프로덕션 분리. 개발 작업(테스트 데이터, 개인정보 없음)과 실제 사용자에게 접근하는 모든 흐름에 대해 별도의 구성을 유지하세요.
감사 로깅 활성화. 지원하는 경우 로그를 켜두세요. 각 호출을 통해 어떤 데이터가 처리됐는지 파악하세요.
MCP 기능 페이지에서 개체 유형 및 언어의 전체 목록을 확인하세요.
60일 내에 30개 이상의 CVE는 프로토콜이 활발하게 조사받고 있음을 보여줍니다. 새로운 버그가 나타날 것입니다. 하지만 핵심 방어책 — LLM 호출에 데이터가 도달하기 전에 익명화 — 은 다음에 나올 어떤 특정 CVE에 대해서도 작동합니다.
Cursor에서 anonym.legal 서버 구성하기 →
anonym.legal은 암호화 키를 사용해 서버 측에서 개인정보 익명화를 처리합니다. 가명처리된 데이터는 해당 키로만 역전 가능합니다. anonym.legal이 발행하며, ISO 27001 인증을 받았습니다.
출처
- Shodan MCP 서버 노출 데이터, 2026년 3월 — 8,000개 이상의 서버, 492개 제로 인증
- CVE-2026-25253, CVSS 8.8, Model Context Protocol을 통한 크로스 서버 인젝션
- SSRF 데이터: 공개적으로 접근 가능한 엔드포인트의 보안 연구 스캔, 2026년 3월
- Anthropic MCP 사양 v1.2, 보안 고려사항 섹션