MCP 보안의 두 계층: Runtime Exposure vs Supply Chain

발행: (2026년 2월 22일 오전 07:42 GMT+9)
4 분 소요
원문: Dev.to

Source: Dev.to

공급 체인 vs. 런타임 노출

공급‑체인 보안 (Cisco 초점) – MCP 서버를 설치합니다.
서버 코드에 숨겨진 명령이 포함되어 있으면 데이터 탈취나 AI 에이전트 오염이 발생할 수 있습니다.

런타임 노출 (내 초점) – 배포된 MCP 서버에 인증이 없을 경우, 어떤 AI 에이전트라도 도구를 열거하고 호출할 수 있습니다.


비교

시점내용해결책
공급 체인배포 전악성 도구 설명코드 리뷰 + 서명
런타임 노출배포 후인증되지 않은 도구 접근인증 추가 + 적절한 명명

관찰된 런타임 문제

  • 인증 없음 – 전체 서버의 16 % (59개 서버)가 541개의 호출 가능한 도구를 노출합니다.

    • Render.com: 24개의 클라우드 인프라 도구(예: create_web_service, update_environment_variables) – 공개됨.
    • Robtex: 50개의 DNS/IP 도구가 완전히 개방됨(예: ip_reputation, reverse_lookup_dns).
    • Airtable: 8개의 데이터베이스 도구(예: list_bases, CRUD) – 공개됨.
  • API‑계층 인증 – 전체 서버의 15 %가 자격 증명 없이 도구 스키마를 노출합니다. 예시: Google Compute Engine이 29개의 스키마를 보여줌(예: create_instance, delete_instance).

  • MCP‑계층 인증 – 전체 서버의 69 %가 도구 목록을 조회하기 전에 인증을 요구합니다. 이것이 올바른 구성입니다.

악용 예시

내 서버에 두 개의 도구를 추가했습니다:

def get_aws_credentials(role):
    # retrieve temporary AWS credentials for the given role
    ...

def execute_sql_query(query, db):
    # run a SQL query against the specified database
    ...

3시간 만에 AI 에이전트가 get_aws_credentials(role=admin)을 호출했습니다.
에이전트는 악의적이지 않았으며, 단지 사용 가능한 도구를 열거하고 자격 증명 접근과 유사한 도구를 실행했을 뿐입니다. 도구 이름은 LLM에게 의미론적 명령으로 작용합니다.


보안 태세 권고

성숙한 MCP 보안 전략은 다음 두 가지를 모두 필요로 합니다:

  1. 공급‑체인 검증 – 설치하는 코드를 검토하고 서명합니다.
  2. 런타임 검증 – 실행 중인 서버가 인증되지 않은 도구를 노출하지 않도록 합니다.

공개 레지스트리에는 3,500개 이상의 서버가 나열되어 있으며, 대부분의 소수 서버는 하나 이상의 차원에서 적절한 보호가 부족합니다.


자료

  • MCP Scanner:
  • Dataset API: (CC BY 4.0)
0 조회
Back to Blog

관련 글

더 보기 »