MCP

MCP 보안 가이드: AI에게 도구를 쥐여주기 전에 확인할 것들

DevPilot 2026. 7. 10. 16:37

핵심 요약: MCP의 보안 위험은 프로토콜이 아니라 "AI에게 실행 권한을 준다"는 구조 자체에서 나옵니다. 핵심 위협은 셋입니다: 악성·오염된 서버(공급망), 도구가 반환한 데이터에 숨은 명령(프롬프트 인젝션), 과도한 권한의 토큰. 대응 원칙도 셋입니다: 신뢰할 수 있는 서버만, 최소 권한 토큰, 파괴적 작업은 승인 유지. 이 세 가지만 지켜도 개인·소규모 팀 수준의 위험은 대부분 통제됩니다.

이 글에서 다루는 내용: 3대 위협의 구체적 시나리오, 개인 차원의 수칙, 팀·조직 차원의 통제, 체크리스트.

위협 1: 공급망 — 그 서버, 믿을 수 있나요?

MCP 서버는 내 컴퓨터에서 실행되는 프로그램입니다. 출처 불명 서버를 설치하는 것은 출처 불명 npm 패키지를 설치하는 것과 같은 위험입니다. 유명 서버와 비슷한 이름의 위장 패키지(typosquatting), 업데이트로 악성 코드가 주입되는 경우가 실제 보고됩니다. 수칙: 공식 서버 우선, 커뮤니티 서버는 저장소 확인 후, 버전 고정 설치.

위협 2: 프롬프트 인젝션 — 데이터에 숨은 명령

더 교묘한 위협입니다. AI가 도구로 가져온 콘텐츠(웹 페이지, 이슈 본문, 문서) 안에 "이전 지시를 무시하고 ~를 실행하라" 같은 명령이 숨어 있으면, AI가 이를 지시로 오인할 수 있습니다. 예: 악의적으로 작성된 GitHub 이슈를 읽은 AI가 저장소 내용을 외부로 전송하는 시나리오. 수칙: 외부 콘텐츠를 읽는 도구와 쓰기/전송 능력이 있는 도구를 한 세션에 함께 열어둘 때 특히 주의하고, 파괴적 작업의 자동 승인을 켜지 않기. 승인 프롬프트가 귀찮아도 이 시나리오의 마지막 방어선입니다.

위협 3: 과도한 권한 — 토큰이 곧 폭발 반경

사고가 나면 피해 범위는 토큰 권한이 결정합니다. repo 전체 쓰기 권한 토큰을 준 GitHub 서버와 특정 저장소 읽기 전용 토큰을 준 서버는 같은 사고에서 결과가 다릅니다. 수칙: 읽기 전용으로 시작, 필요한 범위만, 시크릿은 환경 변수로(설정 파일에 하드코딩 금지), 주기적 토큰 로테이션. DB 서버는 읽기 전용 계정 연결이 기본값이어야 합니다.

팀·조직 차원이라면

개인 수칙에 더해: 허용 서버 목록을 팀 설정(.mcp.json 등)으로 관리해 개인이 임의 추가하지 않게 하고, Enterprise급 도구(Cursor Enterprise 등)의 MCP 허용 목록·감사 로그 기능을 활용하고, 사내 서버 제작 시 읽기 도구부터 여는 원칙을 표준으로 삼으세요. 프라이버시 모드/데이터 정책(별도 글)과 MCP 권한은 별개의 축이라는 점도 팀에 공유할 가치가 있습니다.

바로 쓰는 체크리스트

□ 이 서버는 공식/검증된 출처인가?
□ 토큰은 최소 권한인가? (읽기 전용으로 시작했는가)
□ 시크릿이 설정 파일에 하드코딩되어 있지 않은가?
□ 파괴적 작업(쓰기·삭제·전송)의 자동 승인이 꺼져 있는가?
□ 외부 콘텐츠 읽기 도구와 전송 도구가 불필요하게 함께 활성화되어 있지 않은가?
□ 안 쓰는 서버가 등록된 채 방치되어 있지 않은가?

자주 묻는 질문 (FAQ)

Q. 승인 프롬프트가 너무 자주 떠서 자동 승인을 켜고 싶어요.

A. 읽기 작업의 자동 승인은 합리적 타협입니다. 쓰기·삭제·외부 전송은 승인을 유지하세요. "귀찮음의 총량"보다 "사고 한 번의 비용"이 큽니다.

Q. 프롬프트 인젝션은 실제로 일어나는 일인가요?

A. 네, 보안 연구와 실제 사례가 계속 보고되는 활발한 공격 영역입니다. 도구를 가진 AI가 늘어날수록 공격 가치도 커지므로, 방어 습관을 미리 들이는 것이 맞습니다.

Q. 원격(HTTP) 서버와 로컬 서버 중 뭐가 안전한가요?

A. 축이 다릅니다. 로컬 서버는 내 머신에서 코드가 돌므로 공급망 위험이, 원격 서버는 데이터가 외부로 나가므로 데이터 정책 확인이 각각 핵심입니다. 어느 쪽이든 "누가 만들었고 어떤 권한을 주는가"가 본질입니다.

한눈에 보는 요약

믿을 수 있는 서버만, 최소 권한으로, 파괴적 작업은 사람이 승인. MCP 보안은 새로운 학문이 아니라 공급망·권한 관리라는 기존 원칙을 "AI가 자율 실행한다"는 조건에 맞게 조인 것입니다. 체크리스트 여섯 줄이면 대부분의 사고를 예방합니다.

함께 보면 좋은 글

MCP란 무엇인가?
Cursor 프라이버시 모드 (데이터 정책 축)
Python으로 MCP 서버 직접 만들기

참고 자료

MCP 공식 문서
Cursor 보안 페이지 (클라이언트 측 통제 예)