사이버 보안
MCP 서버를 안전하게 구축하기 위한 6가지 최선의 방법

Anthropic이 2024년 말에 Model Context Protocol을 출시한 이후, 많은 회사들이 자신의 데이터에 대한 AI 에이전트의 접근을 도와주는 MCP 서버를 구축하기 위해 채택하고 있습니다.
이것은 AI의 능력을 넓히는 데 유익하지만,同時에 이러한 회사들에게重大한 보안 취약성을 노출시키기도 합니다.
적절한 예방 조치 없이, MCP 서버는 이메일, CRM, 파일 저장 도구 및 기타 애플리케이션에서 민감한 데이터에 대한 무제한적인 접근을 제공할 수 있습니다. 또한, 공격적인 보안 조치를 취해도, 악의적인 행위자들은 프롬프트 주입 공격과 같은 전략을 사용하여 인증 자격 증명을 얻을 수 있습니다.
우리는 이미 보안 사고가 발생하기 시작했습니다. GitHub은 최근 MCP 취약점을 경험했으며, 이는 개인 저장소를 노출시켰습니다.
우리는 MCP 서버를 구축하고 관리하는 데 필요한 보안 위협에 대한 직접적인 경험을 통해 배웠습니다.
이러한 경험을 바탕으로, MCP 서버를 구축하고 관리하기 위한 나의 최선의 팁을 공유하겠습니다.
하드 블록과 권한 관리로 보안을 확보하십시오
MCP의 가장 중요한 보안 원칙은 하드 블록이 에이전트에게 주어진 프롬프트와 기타 소프트 컨트롤을 항상 재정의한다는 것입니다. AI 에이전트는 도구를 호출하고 입력을 보내는 시기를 결정할 수 있는 유연성을 가지고 있지만, 도구 구현 또는 도구 앞에 있는 하드 코딩된 계층은 사용자의 身分이 올바르게 인증되는 한 권한 문제를 방지합니다.
보안을 확보하기 위해, 확장 프로그램을 엄격한 권한 관리와 함께 구성하십시오.
이것은 API 키에 부여된 권한을 관리하는 것으로 시작됩니다. 도구는 정적 코드를 감싸고 보안 정책을 시행할 수 있는 제어된 인터페이스를 제공하여 에이전트의 동작과 관계없이 보안을 제공합니다.
API 키를 비밀번호처럼 취급하십시오
하드 코딩된 키를 사용하는 대신, 모든 자격 증명을 코드와 구성 파일에서 환경 변수 또는 전용 비밀 관리 도구로 이동시키십시오.
임시 자격 증명은 매우 민감한 데이터와 영구적인 연결이 필요하지 않은 사용 사례에 대한 추가적인 보안 계층을 제공합니다. 이 경우, AWS STS와 같은 도구를 사용하여 짧은 기간 동안만 유효한 토큰을 생성할 수 있으며, 이는 잠재적인 오남용의 창을 최소화합니다. 그러나 대부분의 구현에서는 올바른 OAuth 또는 잘 보안된 기본 인증을 사용하여 이러한 문제를 효과적으로 해결할 수 있습니다.
핵심은 각 도구에 대한细粒化된 역할 기반의 접근 제어(RBAC)를 구현하는 것입니다. 각 MCP 통합에는 엄격하게 필요한 권한으로 범위가 지정된自己的 역할을 부여하십시오. GitHub에 대한 읽기 전용 액세스를 허용하는 Vault 정책은 루트 토큰보다 훨씬 더 안전합니다. 클라우드 제공업체의 네이티브 ID 및 액세스 관리(IAM) 시스템을 사용하여 최소 권한 액세스 패턴을 자동으로 시행할 수 있습니다.
DLP 및 PII 탐지 소프트웨어로 민감한 데이터를 보호하십시오
MCP 도구는 조직 전체에서大量의 민감한 데이터에 액세스할 수 있습니다. 적절한 제어 없이, 이러한 도구는 고객의 개인 정보, 재무 기록 또는 제품에 대한 기밀 정보를 우연히 노출시킬 수 있습니다.
이를 해결하기 위해, MCP 트래픽을 실시간으로 검사할 수 있는 데이터 손실 방지(DLP) 소프트웨어를 배포하십시오. 신용 카드 번호, 사회 보장 번호, API 키 및 기타 민감한 패턴을 감지하고 차단하는 DLP 규칙을 구성하십시오.
또한 프롬프트, 도구 응답 및 감사 로그에서 개인 정보를 자동으로 식별하고 마스킹할 수 있는 도구를 사용해야 합니다. 구조화된 데이터베이스 필드, 비구조화된 텍스트 및 OCR 또는 NLP와 같은 고급 기술을 통해 이미지 콘텐츠를 포함한 다양한 형식에서 PII를 감지할 수 있는 솔루션을 고려해야 합니다.
의존성을 보안하고 관리하십시오
MCP 생태계의 급속한 성장은 잠재적으로 신뢰할 수 없는 바이너리들이 있는狂野 서부를 만들었습니다. 커뮤니티에서 게시된 서버는 백도어, 유지 보수되지 않거나 단순히 방치될 수 있습니다. 검증 없이 의존성을 설치하면 악의적인 코드를 실행할 위험이 있습니다.
디지털 서명과 체크섬을 사용하여 코드가 조작되지 않았는지 확인하는 엄격한 의존성 관리를 구현하십시오. 또한 보안 최선의 관행을 따라, 검증된 인증 확인 코드를 재사용하고, 완전한 테스트를 작성하고, 취약성을 식별하기 전에 악용될 수 있는 취약성을 식별하는 데 도움이 되는 자동화된 도구인 정적 애플리케이션 보안 테스트(SAST), 동적 애플리케이션 보안 테스트(DAST) 및 소프트웨어 구성 분석(SCA)을 사용하십시오.
각 도구를 철저히 테스트하십시오
직접 주입 공격은 악의적인 명령을 도구 호출 프롬프트에 삽입하지만, 간접 공격은 더 미묘하고 잠재적으로 더 위험할 수 있습니다. 공격자는 LLM 프롬프트에 포함되는 도구 설명 또는 메타데이터에 악의적인 명령을 삽입할 수 있습니다.
모든 도구는 배포 전에 자동 테스트와 보안 전문가의 검토를 결합한 철저한 승인 과정을 거쳐야 합니다. 계층화된 방어 조치를 구현하여, 중요한 작업에 대한 수동 확인, 시스템 프롬프트와 사용자 입력의 명확한 분리 및 사용자 프롬프트와 도구 메타데이터에서 잠재적인 악의적인 명령을 식별할 수 있는 자동 감지 시스템을 제공합니다.
보안 사고를 예방적으로 모니터링하십시오
기본적인 제어를 넘어서, 팀은 보안 도구 키트를 활용하여 도구 호출, 사용자 활동 패턴 및 아웃고잉 URL 액세스 패턴을 모니터링하여 보안 사고가 발생하기 전에 이를 감지할 수 있어야 합니다.
자동 감지 시스템을 배포하여 도구 사용의 비정상적인 패턴, 예상치 못한 데이터 액세스 시도 또는 의심스러운 네트워크 트래픽을 식별할 수 있습니다. 또한, 언어 모델의 추론과 출력을 모니터링하기 위한 일관된 로그를 유지하는 것이 의도하지 않은 동작을 추적하는 데 중요합니다.
MCP의 최대한을 실현하십시오
MCP의 힘은 완전히 프로그래밍 가능한 에이전트로 AI 보조 프로그램을 변환하는 능력에서 나옵니다. 그러나 이러한 힘은 동등하게 정교한 보안 제어가 필요합니다.
해결책은 이국적인 것이 아닙니다. 이는 새로운 아키텍처 패턴에 적용된 검증된 보안 관행의 확장입니다. 이미 사용하고 있는 데이터 손실 방지 소프트웨어, PII 편집기 및 내장된 권한 관리 시스템을 사용하여 MCP 서버를 보안할 수 있습니다.
이러한 취약성을 지금 해결하는 조직은 MCP의 전체 잠재력을 안전하게 실현할 수 있습니다.












