MCP 보안의 두 층: 런타임 노출 vs 공급망

발행: (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시간 만에 get_aws_credentials(role=admin) 라는 AI 에이전트가 호출했습니다.
에이전트가 악의적이었던 것은 아니며, 단순히 사용 가능한 도구를 열거하고 자격 증명 접근과 유사한 도구를 실행했을 뿐입니다. 도구 이름은 LLM에게 의미론적 명령으로 작용합니다.

보안 자세 권고

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

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

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

자료

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

관련 글

더 보기 »

서브넷팅 설명

Subnetting이란 무엇인가? 큰 아파트 건물을 여러 층으로 나누는 것과 같다. 각 층 서브넷은 자체 번호가 매겨진 유닛(hosts)을 가지고, 그리고 건물…