MCP(Model Context Protocol)는 AI 애플리케이션과 외부 도구·데이터를 연결하는 표준이다. 메일이나 드라이브, 업무 시스템을 AI에 연결할 때 이 통로를 쓴다.
연결이 늘어난 지금 MCP 보안을 살펴야 하는 이유는 서비스에 접근할 자격증명과 권한도 함께 움직이기 때문이다. 9월 말 공식 MCP 파이썬 SDK에서는 악성 서버가 OAuth 자격증명을 공격자가 지정한 로그인 서버로 보내게 할 수 있는 결함이 공개됐다(The Hacker News 9/29).
KCBCA Signals는 AI 연결에 세 가지를 권한다. 서비스별로 자격증명을 검증하고, 필요한 접근만 주고, 중요한 행동에는 명시적 권한을 요구하는 것이다(p.31).

MCP 뜻, 연결 구조부터 보면 쉽다
AI 앱이 MCP 서버에 요청하면, 서버가 메일·드라이브·데이터베이스 같은 실제 서비스에 접근한다. 이 과정에서 토큰이나 OAuth 자격증명이 쓰인다.
연결 하나에 따라오는 것
- 서비스에 로그인할 자격증명
- 읽기·쓰기·삭제 권한
- AI가 그 권한으로 행동할 통로

MCP 보안은 여기서 시작한다. 서버를 추가할 때는 기능뿐 아니라 어떤 접근을 허용하는지도 함께 확인해야 한다.
공식 SDK 결함, 자격증명은 어디로 갈 수 있었나?
공식 MCP 파이썬 SDK의 보안 권고가 9월 28일 공개됐다. 악성이거나 탈취된 MCP 서버가 공격자가 고른 인증·토큰 서버를 알려 주면, 클라이언트가 그곳으로 OAuth 자격증명을 보낼 수 있었다는 내용이다.
| 항목 | 내용 |
|---|---|
| 유출 가능 정보 | 클라이언트 시크릿, 인증 코드, PKCE code_verifier(일부 설정에서는 서명된 클라이언트 assertion) |
| 영향 버전 | mcp 1.9.1~1.29.1, 2.0.0~2.1.1 |
| 수정 버전 | 1.30.0, 2.2.0 |
| 영향 조건 | 이 SDK를 MCP 클라이언트로 쓰는 앱이 HTTP·OAuth로 신뢰할 수 없는 서버에 연결할 때 |
| 조치 | 수정 버전으로 업데이트한다. 일부 OAuth 방식(ClientCredentialsOAuthProvider, PrivateKeyJWTOAuthProvider)은 issuer를 지정한다. 저장된 OAuth 클라이언트 정보를 한 번 지워 다시 등록하고, 유출이 의심되면 자격증명을 교체한다 |
출처: GitHub 보안 권고 GHSA-qx49-fqc8-xw99(9/28), The Hacker News(9/29). 심각도 높음(CVSS 7.5), 보안 기업 Cycode가 보고했다.

이 사례가 주는 MCP 보안의 교훈은 '공식 SDK라서 안전하다'가 아니다. 연결 상대가 알려 주는 주소를 그대로 믿으면 자격증명이 엉뚱한 곳으로 갈 수 있다는 점이다. MCP 권한 규격도 서비스별 토큰 검증을 요구하고, 자격증명을 무분별하게 넘겨주는 것을 금지한다(p.31).
읽은 내용을 지시로 따르지 않으려면
영상 자막·댓글·가져온 문서는 분석할 자료이다. AI가 그 안에 숨은 문장을 지시로 받아들이면 간접 프롬프트 인젝션이 된다(OWASP, p.30).
MCP 보안에서 이 문제가 커지는 이유는, 연결된 AI가 서비스를 호출할 수 있어서 이런 오해가 실제 행동으로 이어질 수 있다. OWASP는 지나친 권한과 자율을 '과도한 에이전시'라고 부른다(p.30).
간접 프롬프트 인젝션은 10월 8일 '프롬프트 인젝션' 글에서 자세히 다뤘다.
넓은 권한은 실수도 키운다
한 AI 코딩 에이전트가 사용자 요청 없이 '오래된 테스트 상태 정리'를 이유로 삭제를 시작했다는 신고가 있었다. 경로 변환 오류로 C드라이브 전체가 대상이 됐고, 약 35분간 오류 메시지 없이 실행되며 휴지통을 거치지 않고 약 600GB가 영구 삭제됐다는 내용이다(보안뉴스 10/2).
애플은 10월 2일 개발자 공지에서, 맥OS 앱에 '전체 디스크 접근 권한'을 줄 때 "매우 명시적인 사용자 조치"를 요구하겠다고 밝혔다. AI 에이전트의 기능과 자율성이 커질수록 폭넓은 접근의 위험도 커진다는 설명이다(보안뉴스 10/3).
공격이 없어도 넓은 권한은 실수 하나를 큰 사고로 만든다. 그래서 한계는 모델에게 부탁하는 문장이 아니라 모델 밖의 장치가 강제해야 한다. 접근은 필요한 만큼만, 필요한 기간만 주고 의미 있는 감독을 유지하라는 권고도 같은 방향이다(영국 NCSC, p.19).
MCP 보안 체크리스트: 연결 전후 8가지
| 점검 항목 | 이렇게 한다 | 근거 |
|---|---|---|
| 서버 출처 확인 | 만들고 관리하는 주체를 확인한 서버만 연결한다 | SDK 권고 |
| 서비스별 토큰 | 서비스마다 자격증명을 따로 검증하고, 한 토큰을 돌려쓰지 않는다 | p.31 |
| 읽기·쓰기 분리 | 읽기만 필요하면 읽기 권한만 준다 | p.31 |
| 중요한 행동 전 확인 | 삭제·발송·결제에는 사람의 명시적 허락을 받는다 | p.31 |
| 거절·철회·중단 시험 | 권한 회수, 바꿔치기된 파일, 작업 중단 때 멈추는지 시험한다 | p.31 |
| 범위와 기간 제한 | 필요한 접근만, 필요한 기간에만 허용한다 | p.19 |
| 연결 목록 정리 | 한 번 허용한 접근이 영구 허가는 아니다. 안 쓰는 연결은 해제한다 | p.31 |
| 기록 보관 | 중요한 행동을 나중에 설명할 증거를 남긴다 | p.6 |

자주 묻는 질문
Q. 개인이 MCP를 써도 위험한가?
개인의 MCP 보안도 원칙은 같다. 메일·드라이브·로컬 파일을 연결하면 그만큼 접근 권한을 내주는 셈이다.
출처를 아는 서버만 쓰고, 필요 없는 권한은 끄고, 안 쓰는 연결은 해제한다. 중요한 파일은 백업해 두는 것이 기본이다.
Q. 공식 SDK로 만들었으면 안전한가?
이번 결함은 공식 파이썬 SDK에서 나왔다. 보안 권고를 확인하고 수정 버전인 1.30.0 또는 2.2.0 이상으로 업데이트한다. 해당 OAuth 방식을 쓴다면 issuer 지정과 클라이언트 정보 초기화도 확인해야 한다.
Q. 회사에서는 무엇부터 정해야 하나?
허용할 서버, 서비스별 권한, 사람의 명시적 승인이 필요한 행동부터 정한다. 권한을 회수하거나 작업이 중단될 때 실제로 멈추는지 시험하고, 중요한 행동을 설명할 기록을 남겨야 한다(p.6, p.31).
한눈에 정리
- MCP 연결에는 자격증명과 권한이 함께 따라온다
- 공식 파이썬 SDK의 OAuth 결함은 1.30.0·2.2.0에서 수정됐다
- MCP 보안의 기본은 서비스별 검증, 최소 접근, 중요한 행동의 명시적 권한이다(p.31)
- 거절·철회·중단을 시험하고, 설명할 증거를 남긴다(p.6, p.31)
AI 시대의 권한과 검증을 더 읽고 싶다면 KCBCA Signals 보고서를 확인해 본다.
KCBCA Signals Vol.1 Issue 1 원문 읽기
참고: KCBCA Signals Vol.1 Issue 1 Ted Kim(Shorti CEO) p.30–31 Jun Ahn(MemeCore CEO) p.19 편집자 서문 p.6 보안 권고: GitHub GHSA-qx49-fqc8-xw99(9/28) 보도: The Hacker News 9/29, 보안뉴스 10/2·10/3



