MCP 서버는 보안 표준이 없습니다 — 이것이 문제인 이유
Source: Dev.to
MCP 서버 보안 문제
Model Context Protocol (MCP)은 급속히 확산되고 있습니다. Anthropic이 오픈소스로 공개했으며, 이제 모든 AI 에이전트 프레임워크가 이를 통합하고 있습니다. MCP 서버는 LLM에게 파일 읽기, API 호출, 데이터베이스 조회, 코드 실행, 실제 세계와의 상호작용 능력을 부여합니다.
하지만 누가 이 서버들을 감사할까요?
MCP 서버는 본질적으로 LLM과 여러분의 인프라 사이의 신뢰 다리 역할을 합니다. Claude, GPT 또는 다른 에이전트를 MCP 서버에 연결하면, 위험할 수 있는 다음과 같은 권한을 부여하게 됩니다:
- 파일 시스템 접근 – 파일 읽기, 쓰기, 삭제
- 코드 실행 – 호스트에서 임의 명령 실행
- 네트워크 아웃바운드 – 외부 엔드포인트로 데이터 전송
- 자격 증명 접근 – 환경 변수, 설정 파일 읽기
MCP 서버가 무엇을 할 수 있는지 선언하고, 그 선언을 검증하며, 서버의 실제 동작이 주장과 일치하는지 감시할 표준 방법이 없습니다. 서버를 설치하고 에이전트를 연결한 뒤, 최선의 결과를 기대할 뿐입니다.
표준이 필요한 이유
MCP 서버 보안을 위한 적절한 표준은 다음을 요구합니다:
- 능력 선언 – 모든 서버가 수행할 수 있는 작업, 위험 수준, 적용 범위를 선언합니다. README가 아니라 도구가 검증할 수 있는 기계가 읽을 수 있는 형식이어야 합니다.
- 제한된 능력 – 서버가 할 수 없고 하지 않을 작업을 명시적으로 선언합니다. 예를 들어,
"denied": ["code_execution", "network_egress"]라고 선언하는 파일 시스템 서버는 검증 가능한 주장을 제공합니다. - 감사 이력 – 서버가 마지막으로 언제 스캔되었는가? 어떤 도구를 사용했는가? 점수는 얼마였는가? “한 번도 스캔되지 않음”이라는 답변도 배포자에게는 중요한 정보입니다.
- 위험 분류 – 이 서버는 최소 위험인가, 고위험인가? 개인 식별 정보(PII)를 다루는가? EU AI Act는 AI 시스템에 대한 이러한 분류를 요구하며, MCP 서버는 그 시스템의 구성 요소입니다.
KYA 소개: 에이전트 신원을 위한 오픈 표준
우리는 KYA (Know Your Agent) 를 만들어 이 문제를 해결했습니다. KYA는 기계가 읽을 수 있는 Agent Card—JSON 문서—를 정의합니다. 이 문서는 AI 에이전트 또는 MCP 서버가 누구인지, 무엇을 할 수 있는지, 어떻게 감사되었는지를 선언합니다.
KYA 표준:
Agent Card 생성 및 검증
pip install kya-agent
# Generate an agent card for your MCP server
kya init --agent-id "your-org/your-server" --name "My MCP Server"
# Validate the card
kya validate agent-card.kya.json
# Score completeness
kya score agent-card.kya.json
Agent Card가 포함하는 내용
- 신원 – 소유자, 연락처 정보
- 능력 – 수행 가능한 작업, 명시적으로 거부하는 작업
- 보안 – 감사 이력, 인젝션 테스트 상태
- 규정 준수 – EU AI Act 위험 분류, NIST AI RMF 매핑
- 동작 – 로깅, 속도 제한, 킬 스위치
KYA와 같은 표준이 없으면 MCP 생태계는 신뢰에 의존합니다: 서버 README가 정확하다는 신뢰, 개발자가 보안을 고려했다는 신뢰, 악의적인 도구 설명이 삽입되지 않았다는 신뢰. 신뢰는 규모를 확장할 수 없지만, 표준은 가능합니다.
KYA 시작하기
pip install kya-agent
추가 도구
- MCP 보안 감사:
pip install mcp-security-audit - 프롬프트 인젝션 탐지:
pip install ai-injection-guard