[분석] MCP의 진짜 취약점은 프롬프트가 아니라 OAuth 동의 화면이다
호스트 진영이 OpenAI·Google까지 합류해 사실상 표준이 되자, 공격 표면 논의도 '툴 설명문에 숨긴 프롬프트 인젝션' 단계를 넘어섰다. 더 구조적인 위험은 원격 MCP가 OAuth 2.1 리소스 서버로 동작하면서 생기는 위임 권한이다. 사용자가 클라이언트의 동의 화면에서 별 의심 없이 승인하면, 그 토큰으로 서버는 Gmail·캘린더·내부 DB에 광범위하게 접근한다. 여기에 confused deputy 문제가 겹친다. 한 서버가 다른 다운스트림 API의 자격증명을 대리 보관하면, 악성 툴 호출이 정당한 토큰을 빌려 권한을 우회할 수 있다. 스펙은 리소스 인디케이터(RFC 8707)로 토큰 수신 대상을 못박고, 토큰 패스스루를 명시적으로 금지하는 방향으로 보강됐지만, 실제 구현은 여전히 과도한 scope를 한 번에 요구하는 경우가 많다. 권한 최소화는 코드가 아니라 동의 설계의 문제로 넘어왔다.
한국 개발자가 사내 데이터에 붙는 MCP 서버를 만든다면, scope를 기능 단위로 쪼개고 RFC 8707 audience 바인딩을 켜는 것이 사고 시 피해 반경을 줄이는 가장 현실적인 방어선이다. 동의 화면 문구도 보안 자산으로 다뤄야 한다.
원문 출처
MCP Authorization Specification