Skip to content

Latest commit

 

History

History
365 lines (254 loc) · 26.7 KB

File metadata and controls

365 lines (254 loc) · 26.7 KB

MCP 보안: AI 시스템을 위한 종합적인 보호

MCP 보안 모범 사례

(위 이미지를 클릭하면 이 강의의 비디오를 볼 수 있습니다)

보안은 AI 시스템 설계의 기본 요소로, Microsoft의 Secure Future Initiative에서 강조하는 Secure by Design 원칙과 일치합니다.

Model Context Protocol (MCP)은 AI 기반 애플리케이션에 강력한 새로운 기능을 제공하지만, 기존 소프트웨어 위험을 넘어서는 독특한 보안 과제를 제시합니다. MCP 시스템은 기존의 보안 문제(안전한 코딩, 최소 권한, 공급망 보안)뿐만 아니라 프롬프트 주입, 도구 오염, 세션 탈취, 혼란스러운 대리 공격, 토큰 전달 취약점, 동적 기능 수정과 같은 새로운 AI 관련 위협에 직면합니다.

이 강의에서는 MCP 구현에서 가장 중요한 보안 위험을 다루며, 인증, 권한 부여, 과도한 권한, 간접 프롬프트 주입, 세션 보안, 혼란스러운 대리 문제, 토큰 관리, 공급망 취약점을 포함합니다. Microsoft 솔루션인 Prompt Shields, Azure Content Safety, GitHub Advanced Security를 활용하여 MCP 배포를 강화하는 방법과 이러한 위험을 완화하기 위한 실행 가능한 통제 및 모범 사례를 배웁니다.

학습 목표

이 강의를 마치면 다음을 수행할 수 있습니다:

  • MCP 관련 위협 식별: 프롬프트 주입, 도구 오염, 과도한 권한, 세션 탈취, 혼란스러운 대리 문제, 토큰 전달 취약점, 공급망 위험을 포함한 MCP 시스템의 독특한 보안 위험을 인식
  • 보안 통제 적용: 강력한 인증, 최소 권한 접근, 안전한 토큰 관리, 세션 보안 통제, 공급망 검증을 포함한 효과적인 완화 조치 구현
  • Microsoft 보안 솔루션 활용: MCP 워크로드 보호를 위해 Microsoft Prompt Shields, Azure Content Safety, GitHub Advanced Security를 이해하고 배포
  • 도구 보안 검증: 도구 메타데이터 검증, 동적 변경 모니터링, 간접 프롬프트 주입 공격 방어의 중요성을 인식
  • 모범 사례 통합: 안전한 코딩, 서버 강화, 제로 트러스트와 같은 기존 보안 기본 원칙을 MCP 관련 통제와 결합하여 종합적인 보호 제공

MCP 보안 아키텍처 및 통제

현대 MCP 구현은 기존 소프트웨어 보안과 AI 관련 위협을 모두 해결하는 계층적 보안 접근 방식을 요구합니다. 빠르게 발전하는 MCP 사양은 보안 통제를 지속적으로 성숙시키며, 기업 보안 아키텍처 및 기존 모범 사례와의 더 나은 통합을 가능하게 합니다.

Microsoft Digital Defense Report의 연구에 따르면 보고된 침해의 98%는 강력한 보안 위생으로 예방될 수 있습니다. 가장 효과적인 보호 전략은 기본적인 보안 관행과 MCP 관련 통제를 결합하는 것입니다. 입증된 기본 보안 조치는 전체 보안 위험을 줄이는 데 가장 큰 영향을 미칩니다.

현재 보안 환경

Note: 이 정보는 2025년 8월 18일 기준 MCP 보안 표준을 반영합니다. MCP 프로토콜은 빠르게 진화하고 있으며, 향후 구현은 새로운 인증 패턴과 향상된 통제를 도입할 수 있습니다. 최신 지침은 항상 MCP Specification, MCP GitHub repository, security best practices documentation를 참조하십시오.

MCP 인증의 진화

MCP 사양은 인증 및 권한 부여 접근 방식에서 크게 발전했습니다:

  • 초기 접근 방식: 초기 사양은 개발자가 사용자 인증을 직접 관리하는 OAuth 2.0 인증 서버로 MCP 서버를 구현하도록 요구했습니다.
  • 현재 표준 (2025-06-18): 업데이트된 사양은 MCP 서버가 외부 ID 제공자(예: Microsoft Entra ID)에 인증을 위임할 수 있도록 하여 보안 태세를 개선하고 구현 복잡성을 줄였습니다.
  • 전송 계층 보안: 로컬(STDIO) 및 원격(Streamable HTTP) 연결 모두에 대해 적절한 인증 패턴을 갖춘 안전한 전송 메커니즘 지원 강화

인증 및 권한 부여 보안

현재 보안 과제

현대 MCP 구현은 여러 인증 및 권한 부여 과제에 직면합니다:

위험 및 위협 벡터

  • 잘못 구성된 권한 부여 로직: MCP 서버의 결함 있는 권한 부여 구현은 민감한 데이터를 노출시키고 접근 통제를 잘못 적용할 수 있습니다.
  • OAuth 토큰 손상: 로컬 MCP 서버 토큰 도난은 공격자가 서버를 가장하고 다운스트림 서비스를 액세스할 수 있게 합니다.
  • 토큰 전달 취약점: 잘못된 토큰 처리로 인해 보안 통제 우회 및 책임 공백이 발생합니다.
  • 과도한 권한: 과도한 권한을 가진 MCP 서버는 최소 권한 원칙을 위반하고 공격 표면을 확장합니다.

토큰 전달: 중요한 반패턴

토큰 전달은 현재 MCP 권한 부여 사양에서 명시적으로 금지됩니다. 이는 심각한 보안 영향을 미치기 때문입니다:

보안 통제 우회
  • MCP 서버와 다운스트림 API는 적절한 토큰 검증에 의존하는 중요한 보안 통제(속도 제한, 요청 검증, 트래픽 모니터링)를 구현합니다.
  • 클라이언트가 API에 직접 토큰을 사용하는 경우 이러한 필수 보호를 우회하여 보안 아키텍처를 약화시킵니다.
책임 및 감사 과제
  • MCP 서버는 업스트림에서 발급된 토큰을 사용하는 클라이언트를 구별할 수 없어 감사 추적이 깨집니다.
  • 다운스트림 리소스 서버 로그는 실제 MCP 서버 중개자가 아닌 잘못된 요청 출처를 표시합니다.
  • 사건 조사 및 규정 준수 감사가 상당히 어려워집니다.
데이터 유출 위험
  • 검증되지 않은 토큰 클레임은 도난당한 토큰을 가진 악의적인 행위자가 MCP 서버를 프록시로 사용하여 데이터를 유출할 수 있게 합니다.
  • 신뢰 경계 위반은 의도된 보안 통제를 우회하는 비인가된 접근 패턴을 허용합니다.
다중 서비스 공격 벡터
  • 여러 서비스에서 수락된 손상된 토큰은 연결된 시스템 간의 횡적 이동을 가능하게 합니다.
  • 토큰 출처를 확인할 수 없을 때 서비스 간 신뢰 가정이 위반될 수 있습니다.

보안 통제 및 완화 조치

중요한 보안 요구사항:

MANDATORY: MCP 서버는 MCP 서버를 위해 명시적으로 발급되지 않은 토큰을 절대 수락해서는 안 됩니다

인증 및 권한 부여 통제

접근 통제 구현

  • 최소 권한 원칙: MCP 서버에 필요한 최소 권한만 부여

  • 역할 기반 접근 통제(RBAC): 세분화된 역할 할당 구현

    • 역할을 특정 리소스 및 작업에 엄격히 제한
    • 공격 표면을 확장하는 광범위하거나 불필요한 권한을 피함
  • 지속적인 권한 모니터링: 지속적인 접근 감사 및 모니터링 구현

    • 이상 징후를 감지하기 위해 권한 사용 패턴 모니터링
    • 과도하거나 사용되지 않는 권한을 신속히 수정

AI 관련 보안 위협

프롬프트 주입 및 도구 조작 공격

현대 MCP 구현은 기존 보안 조치로 완전히 해결할 수 없는 정교한 AI 관련 공격 벡터에 직면합니다:

간접 프롬프트 주입 (Cross-Domain Prompt Injection)

간접 프롬프트 주입은 MCP 기반 AI 시스템에서 가장 중요한 취약점 중 하나입니다. 공격자는 외부 콘텐츠(문서, 웹 페이지, 이메일, 데이터 소스)에 악성 명령을 삽입하여 AI 시스템이 이를 정당한 명령으로 처리하도록 만듭니다.

공격 시나리오:

  • 문서 기반 주입: 처리된 문서에 숨겨진 악성 명령이 의도하지 않은 AI 작업을 유발
  • 웹 콘텐츠 악용: 스크랩된 웹 페이지에 포함된 프롬프트가 AI 행동을 조작
  • 이메일 기반 공격: 이메일에 포함된 악성 프롬프트가 정보 유출 또는 비인가 작업 수행
  • 데이터 소스 오염: AI 시스템에 오염된 콘텐츠를 제공하는 손상된 데이터베이스 또는 API

실제 영향: 이러한 공격은 데이터 유출, 개인정보 침해, 유해 콘텐츠 생성, 사용자 상호작용 조작을 초래할 수 있습니다. 자세한 분석은 Prompt Injection in MCP (Simon Willison)를 참조하십시오.

프롬프트 주입 공격 다이어그램

도구 오염 공격

도구 오염은 MCP 도구를 정의하는 메타데이터를 대상으로 하며, LLM이 도구 설명 및 매개변수를 해석하여 실행 결정을 내리는 방식을 악용합니다.

공격 메커니즘:

  • 메타데이터 조작: 공격자가 도구 설명, 매개변수 정의, 사용 예제에 악성 명령 삽입
  • 보이지 않는 명령: 도구 메타데이터에 숨겨진 프롬프트가 AI 모델에 의해 처리되지만 인간 사용자에게는 보이지 않음
  • 동적 도구 수정 ("Rug Pulls"): 사용자가 승인한 도구가 나중에 사용자 인식 없이 악성 작업을 수행하도록 수정됨
  • 매개변수 주입: 도구 매개변수 스키마에 삽입된 악성 콘텐츠가 모델 행동에 영향을 미침

호스팅 서버 위험: 원격 MCP 서버는 도구 정의가 초기 사용자 승인 후 업데이트될 수 있어 이전에 안전했던 도구가 악성으로 변하는 시나리오를 생성합니다. 자세한 분석은 Tool Poisoning Attacks (Invariant Labs)를 참조하십시오.

도구 주입 공격 다이어그램

추가 AI 공격 벡터

  • Cross-Domain Prompt Injection (XPIA): 여러 도메인의 콘텐츠를 활용하여 보안 통제를 우회하는 정교한 공격
  • 동적 기능 수정: 초기 보안 평가를 벗어나는 도구 기능의 실시간 변경
  • 컨텍스트 윈도우 오염: 대형 컨텍스트 윈도우를 조작하여 악성 명령 숨김
  • 모델 혼란 공격: 모델의 제한을 악용하여 예측 불가능하거나 안전하지 않은 행동 생성

AI 보안 위험 영향

고위험 결과:

  • 데이터 유출: 민감한 기업 또는 개인 데이터의 비인가 접근 및 도난
  • 개인정보 침해: 개인 식별 정보(PII) 및 기밀 비즈니스 데이터 노출
  • 시스템 조작: 중요한 시스템 및 워크플로의 의도하지 않은 수정
  • 자격 증명 도난: 인증 토큰 및 서비스 자격 증명 손상
  • 횡적 이동: 손상된 AI 시스템을 활용하여 네트워크 전반에 걸친 공격 수행

Microsoft AI 보안 솔루션

AI Prompt Shields: 주입 공격에 대한 고급 보호

Microsoft AI Prompt Shields는 직접 및 간접 프롬프트 주입 공격에 대한 종합적인 방어를 여러 보안 계층을 통해 제공합니다:

핵심 보호 메커니즘:
  1. 고급 탐지 및 필터링

    • 머신 러닝 알고리즘 및 NLP 기술을 사용하여 외부 콘텐츠의 악성 명령 탐지
    • 문서, 웹 페이지, 이메일, 데이터 소스의 실시간 분석을 통해 내장된 위협 식별
    • 정당한 프롬프트 패턴과 악성 프롬프트 패턴의 맥락적 이해
  2. 스포트라이트 기술

    • 신뢰할 수 있는 시스템 명령과 잠재적으로 손상된 외부 입력을 구별
    • 텍스트 변환 방법을 통해 모델 관련성을 강화하면서 악성 콘텐츠 격리
    • AI 시스템이 올바른 명령 계층을 유지하고 주입된 명령을 무시하도록 지원
  3. 구분자 및 데이터 마킹 시스템

    • 신뢰할 수 있는 시스템 메시지와 외부 입력 텍스트 간의 명확한 경계 정의
    • 신뢰할 수 있는 데이터 소스와 신뢰할 수 없는 데이터 소스 간의 경계 표시
    • 명령 혼란 및 비인가 명령 실행 방지
  4. 지속적인 위협 인텔리전스

    • Microsoft는 새로운 공격 패턴을 지속적으로 모니터링하고 방어를 업데이트
    • 새로운 주입 기술 및 공격 벡터에 대한 사전 위협 사냥
    • 진화하는 위협에 대한 효과를 유지하기 위해 정기적인 보안 모델 업데이트
  5. Azure Content Safety 통합

    • 포괄적인 Azure AI Content Safety 제품군의 일부
    • 탈옥 시도, 유해 콘텐츠, 보안 정책 위반 추가 탐지
    • AI 애플리케이션 구성 요소 전반에 걸친 통합 보안 통제

구현 리소스: Microsoft Prompt Shields Documentation

Microsoft Prompt Shields Protection

고급 MCP 보안 위협

세션 탈취 취약점

세션 탈취는 상태 기반 MCP 구현에서 중요한 공격 벡터로, 비인가자가 합법적인 세션 식별자를 획득하여 클라이언트를 가장하고 비인가 작업을 수행하는 데 악용합니다.

공격 시나리오 및 위험

  • 세션 탈취 프롬프트 주입: 도난당한 세션 ID를 가진 공격자가 세션 상태를 공유하는 서버에 악성 이벤트를 주입하여 유해한 작업을 유발하거나 민감한 데이터에 접근
  • 직접 가장: 도난당한 세션 ID를 사용하여 인증을 우회하고 공격자를 합법적인 사용자로 간주
  • 손상된 재개 가능한 스트림: 공격자가 요청을 조기에 종료하여 합법적인 클라이언트가 잠재적으로 악성 콘텐츠로 재개하도록 유도

세션 관리 보안 통제

중요 요구사항:

  • 권한 검증: 권한 부여를 구현하는 MCP 서버는 모든 인바운드 요청을 검증해야 하며, 세션을 인증에 의존해서는 안 됩니다
  • 보안 세션 생성: 암호학적으로 안전하고 비결정적인 세션 ID를 보안 난수 생성기를 사용해 생성하세요.
  • 사용자별 바인딩: 세션 ID를 <user_id>:<session_id> 형식과 같이 사용자별 정보에 바인딩하여 사용자 간 세션 오용을 방지하세요.
  • 세션 수명 주기 관리: 취약성 노출 시간을 제한하기 위해 적절한 만료, 회전, 무효화를 구현하세요.
  • 전송 보안: 세션 ID 가로채기를 방지하기 위해 모든 통신에 HTTPS를 필수로 사용하세요.

혼란스러운 대리 문제

혼란스러운 대리 문제는 MCP 서버가 클라이언트와 제3자 서비스 간 인증 프록시로 작동할 때 발생하며, 정적 클라이언트 ID 악용을 통해 권한 우회를 초래할 수 있습니다.

공격 메커니즘 및 위험

  • 쿠키 기반 동의 우회: 이전 사용자 인증으로 생성된 동의 쿠키를 공격자가 조작된 리디렉션 URI를 포함한 악의적인 권한 요청을 통해 악용
  • 권한 코드 탈취: 기존 동의 쿠키로 인해 권한 서버가 동의 화면을 건너뛰고, 코드를 공격자가 제어하는 엔드포인트로 리디렉션
  • 무단 API 접근: 탈취된 권한 코드를 사용해 토큰 교환 및 사용자 가장이 가능하며, 명시적 승인이 불필요

완화 전략

필수 통제:

  • 명시적 동의 요구: 정적 클라이언트 ID를 사용하는 MCP 프록시 서버는 동적으로 등록된 각 클라이언트에 대해 사용자 동의를 반드시 받아야 합니다.
  • OAuth 2.1 보안 구현: 모든 권한 요청에 대해 PKCE(코드 교환을 위한 증명 키)를 포함한 최신 OAuth 보안 모범 사례를 따르세요.
  • 엄격한 클라이언트 검증: 리디렉션 URI와 클라이언트 식별자를 철저히 검증하여 악용을 방지하세요.

토큰 전달 취약점

토큰 전달은 MCP 서버가 클라이언트 토큰을 적절히 검증하지 않고 다운스트림 API로 전달하는 명백한 안티패턴으로, MCP 권한 부여 사양을 위반합니다.

보안 영향

  • 통제 우회: 클라이언트에서 API로 직접 토큰을 사용하는 경우 중요한 속도 제한, 검증, 모니터링 통제를 우회
  • 감사 추적 손상: 상위에서 발급된 토큰으로 인해 클라이언트 식별이 불가능해져 사건 조사 능력 손실
  • 프록시 기반 데이터 유출: 검증되지 않은 토큰으로 서버를 프록시로 사용해 무단 데이터 접근 가능
  • 신뢰 경계 위반: 토큰 출처를 확인할 수 없을 때 다운스트림 서비스의 신뢰 가정이 위반될 수 있음
  • 다중 서비스 공격 확장: 여러 서비스에서 수락된 손상된 토큰으로 측면 이동 가능

필수 보안 통제

비타협적 요구사항:

  • 토큰 검증: MCP 서버는 MCP 서버를 위해 명시적으로 발급되지 않은 토큰을 절대 수락해서는 안 됩니다.
  • 대상 확인: 토큰 대상 클레임이 MCP 서버의 ID와 일치하는지 항상 확인하세요.
  • 적절한 토큰 수명 주기: 보안 회전 관행을 포함한 단기 액세스 토큰을 구현하세요.

AI 시스템의 공급망 보안

공급망 보안은 전통적인 소프트웨어 종속성을 넘어 AI 생태계 전체를 포함하도록 진화했습니다. 현대 MCP 구현은 시스템 무결성을 위협할 수 있는 잠재적 취약성을 도입하는 모든 AI 관련 구성 요소를 철저히 검증하고 모니터링해야 합니다.

확장된 AI 공급망 구성 요소

전통적인 소프트웨어 종속성:

  • 오픈소스 라이브러리 및 프레임워크
  • 컨테이너 이미지 및 기본 시스템
  • 개발 도구 및 빌드 파이프라인
  • 인프라 구성 요소 및 서비스

AI-특화 공급망 요소:

  • 기반 모델: 출처 검증이 필요한 다양한 제공자의 사전 학습 모델
  • 임베딩 서비스: 외부 벡터화 및 의미론적 검색 서비스
  • 컨텍스트 제공자: 데이터 소스, 지식 베이스, 문서 저장소
  • 제3자 API: 외부 AI 서비스, ML 파이프라인, 데이터 처리 엔드포인트
  • 모델 아티팩트: 가중치, 구성, 미세 조정된 모델 변형
  • 훈련 데이터 소스: 모델 훈련 및 미세 조정을 위한 데이터셋

종합적인 공급망 보안 전략

구성 요소 검증 및 신뢰

  • 출처 검증: 통합 전에 모든 AI 구성 요소의 출처, 라이선스, 무결성을 확인하세요.
  • 보안 평가: 모델, 데이터 소스, AI 서비스에 대한 취약성 스캔 및 보안 검토를 수행하세요.
  • 평판 분석: AI 서비스 제공자의 보안 이력과 관행을 평가하세요.
  • 규정 준수 검증: 모든 구성 요소가 조직의 보안 및 규제 요구 사항을 충족하는지 확인하세요.

보안 배포 파이프라인

  • 자동화된 CI/CD 보안: 자동화된 배포 파이프라인 전반에 걸쳐 보안 스캔을 통합하세요.
  • 아티팩트 무결성: 배포된 모든 아티팩트(코드, 모델, 구성)에 대해 암호학적 검증을 구현하세요.
  • 단계적 배포: 각 단계에서 보안 검증이 포함된 점진적 배포 전략을 사용하세요.
  • 신뢰할 수 있는 아티팩트 저장소: 검증되고 안전한 아티팩트 레지스트리 및 저장소에서만 배포하세요.

지속적인 모니터링 및 대응

  • 종속성 스캔: 모든 소프트웨어 및 AI 구성 요소 종속성에 대한 지속적인 취약성 모니터링
  • 모델 모니터링: 모델 동작, 성능 드리프트, 보안 이상 현상의 지속적인 평가
  • 서비스 상태 추적: 외부 AI 서비스의 가용성, 보안 사고, 정책 변경 모니터링
  • 위협 인텔리전스 통합: AI 및 ML 보안 위험에 특화된 위협 피드를 통합하세요.

접근 제어 및 최소 권한

  • 구성 요소 수준 권한: 비즈니스 필요성에 따라 모델, 데이터, 서비스에 대한 접근을 제한하세요.
  • 서비스 계정 관리: 최소 필요 권한을 가진 전용 서비스 계정을 구현하세요.
  • 네트워크 분리: AI 구성 요소를 격리하고 서비스 간 네트워크 접근을 제한하세요.
  • API 게이트웨이 통제: 외부 AI 서비스에 대한 접근을 제어하고 모니터링하기 위해 중앙 API 게이트웨이를 사용하세요.

사고 대응 및 복구

  • 신속 대응 절차: 손상된 AI 구성 요소를 패치하거나 교체하기 위한 절차를 수립하세요.
  • 자격 증명 회전: 비밀, API 키, 서비스 자격 증명을 회전하는 자동화된 시스템
  • 롤백 기능: AI 구성 요소의 이전에 검증된 버전으로 신속히 복구할 수 있는 기능
  • 공급망 침해 복구: 상위 AI 서비스 손상에 대응하기 위한 특정 절차

Microsoft 보안 도구 및 통합

GitHub Advanced Security는 다음을 포함한 종합적인 공급망 보호를 제공합니다:

  • 비밀 스캔: 저장소 내 자격 증명, API 키, 토큰의 자동 탐지
  • 종속성 스캔: 오픈소스 종속성과 라이브러리에 대한 취약성 평가
  • CodeQL 분석: 보안 취약점 및 코딩 문제에 대한 정적 코드 분석
  • 공급망 인사이트: 종속성 상태 및 보안 상태에 대한 가시성

Azure DevOps 및 Azure Repos 통합:

  • Microsoft 개발 플랫폼 전반에 걸친 보안 스캔 통합
  • AI 워크로드에 대한 Azure Pipelines의 자동화된 보안 검사
  • 안전한 AI 구성 요소 배포를 위한 정책 시행

Microsoft 내부 관행: Microsoft는 모든 제품에 걸쳐 광범위한 공급망 보안 관행을 구현합니다. Microsoft의 소프트웨어 공급망 보안 여정에서 검증된 접근 방식을 확인하세요.

... (이하 동일한 형식으로 번역) ...

Microsoft 보안 솔루션

구현 가이드 및 튜토리얼

DevOps 및 공급망 보안

추가 보안 문서

포괄적인 보안 지침은 이 섹션의 전문 문서를 참조하세요:


다음 단계

다음: 3장: 시작하기

면책 조항:
이 문서는 AI 번역 서비스 Co-op Translator를 사용하여 번역되었습니다. 정확성을 위해 최선을 다하고 있지만, 자동 번역에는 오류나 부정확성이 포함될 수 있습니다. 원본 문서를 해당 언어로 작성된 상태에서 권위 있는 자료로 간주해야 합니다. 중요한 정보의 경우, 전문적인 인간 번역을 권장합니다. 이 번역 사용으로 인해 발생하는 오해나 잘못된 해석에 대해 당사는 책임을 지지 않습니다.