▲GN⁺ 2025-04-07 | parent | ★ favorite | on: MCP의 "S"는 보안을 의미합니다(elenacross7.medium.com)Hacker News 의견 이 글은 며칠 전 Invariant Labs에서 발표한 보안 노트에서 설명한 공격 시나리오(도구 중독, 그림자화, MCP 러그 풀)를 강조하고 인용함. 나는 해당 블로그 글의 저자임 많은 사람들이 의심하는 것과 달리, MCP 스타일의 LLM 도구 호출의 보안 문제는 서로 다른 MCP 서버 구현을 격리하는 데 있지 않음 로컬에서 실행되는 MCP 서버 구현은 설치에 사용하는 패키지 관리자가 검증해야 함 (원격 MCP 서버는 실제로 검증하기 더 어려움) 문제는 MCP를 에이전트 시스템에서 사용할 때 발생하는 간접 프롬프트 주입의 특별한 형태임 에이전트가 동일한 컨텍스트에서 모든 설치된 MCP 서버 사양을 포함하므로, 신뢰할 수 없는 MCP 서버가 다른 MCP 서버(예: 민감한 데이터베이스에 접근할 수 있는 서버)의 동작을 쉽게 조작할 수 있음. 이를 도구 그림자화라고 부름 또한, MCP의 동적 특성 때문에 MCP 서버는 제공하는 도구 세트를 특정 사용자에게만 변경할 수 있음. 이는 MCP 서버가 언제든지 악의적으로 변할 수 있음을 의미함 현재 MCP 클라이언트인 Claude와 Cursor는 이러한 변경 사항을 알리지 않으며, 이는 에이전트와 사용자를 취약하게 만듦 더 관심 있는 사람은 [1]에서 더 자세한 블로그 글을 확인해 보길 바람. 우리는 에이전트 보안에 대해 연구와 Invariant에서 오랫동안 작업해 왔음 또한, 인기 있는 WhatsApp MCP 서버에 대한 도구 중독 공격을 포함하여 모두가 실험해 볼 수 있는 코드 스니펫을 공개함 [2] 이러한 공격은 대부분 공기 잠금 장치의 잘못된 측면에 있는 또 다른 예시임. 이들은 권한 경계를 넘지 않으며, 이미 할 수 있는 일을 이상한 방법으로 수행한 것임 MCP 서버는 사용자 수준에서 코드를 실행하며, AI를 속여 SSH 키를 읽도록 할 필요가 없음. 그냥 키를 읽을 수 있음 나머지는 기본적으로 다른 개발자 도구/생태계(NPM 또는 VS Code Extensions)에도 제기할 수 있는 동일한 불만임 다음과 같은 더 나은 설계를 구상하는 도전 과제: 사람들이 "S는 보안을 의미함"이라는 기사를 쓰지 않도록 할 수 있는 적절한 보안 표준을 갖추고 프로그램이 현재 가장 유용한 MCP가 제공하는 것과 동일한 기능 세트를 제공할 수 있도록 하며, 자동 기능을 수동 사용자 확인이 필요한 것으로 바꾸지 않고, 일반적으로 전체 아이디어의 목적을 무력화하지 않으며 모든 것을 기업의 게이트키퍼가 있는 독점 마켓플레이스에 잠그지 않음 제안을 보고 싶음, 왜냐하면 지금까지 본 것은 일반적이고 구체적이지 않은 "MCP는 안전하지 않음!!!111"이라는 것뿐임. 보안과 유용성이 상반되는 힘이라는 것을 사람들이 잊었을 때 특히 쉽지 않음 좋은 기사지만 이 모든 것이 AI 생성된 것인지 궁금함 프로필 사진이 StableDiffusion으로 생성된 것 같고, 계정이 오늘 생성되었으며 이전 기사 없음 또한 Elena Cross에 대한 다른 참조를 찾을 수 없었음 O는 관찰 가능성을 의미함. 이번 주에 MCP 서버를 탐색하고 작성하는 데 깊이 빠져 있었음 대부분의 구현, 내 장난감 구현을 포함하여, 감사나 메트릭이 없음. Claude는 MCP 서버의 로그 출력을 저장하지만, 이는 디버깅을 위한 것이지 DevOps/SecOps를 위한 것이 아님 문화적으로, OP가 설명한 문제는 소프트 기술 사람들(머글)에게 큰 문제임. 이와 관련된 서브레딧에서 사람들은 자신의 기계에서 MCP CLI 프로그램을 실행하며 즐거운 시간을 보내고 있음 OP의 보안 댓글은 개발자에게는 명백하지만, 이러한 사용자는 얼마나 위험한지에 대한 관점이 없음 사람들은 Docker에 대해 배우고 있으며, Claude는 예제에 그 사용법을 포함하고 있음. 그러나 대부분의 사람들은 그냥 블롭을 다운로드하고 실행함. 사람들은 MCP 서버를 무작정 코딩하고 실행하고 있음 MCP가 확산됨에 따라 프레임워크와 도구가 보안, 관찰 가능성 등을 지원하기 위해 성장할 것임. 이는 90년대 중반 웹을 구축하는 것과 같음 OP와 관련 없지만, 이를 구축하는 동안 Claude Desktop에 무언가를 입력하고 VSCode에서 중단점을 트리거하는 것이 매우 흥미로웠음 맞음. 나도 같은 생각이었음, 비록 내가 메모를 발표할 때 깊이 들어가지 않았지만 사용 중인 소프트웨어가 악의적이지 않고 안전하게 구현되었을 때도, 원하는 방식으로 사용되는지 어떻게 확인할 수 있을까? 로컬 파일 시스템을 수정할 수 있는 MCP 서버와 클라우드 저장소의 객체를 수정하는 MCP 서버가 있다고 가정해 보자. 사용자가 LLM 에이전트가 올바른 선택을 하도록 어떻게 보장할 수 있을까? 많은 옵션을 제공하고 모든 행동을 감시하지 않으려 하지만, 그렇게 하면 더 많은 문제가 발생할 가능성이 있음 Equixly가 테스트한 MCP 서버 구현의 43% 이상이 안전하지 않은 셸 호출을 가졌음 어떻게 매번 이런 함정에 빠질 수 있는지 MCP가 무엇인지 궁금함. 여러 번 문서를 읽으려 했지만 해결하는 문제가 무엇인지 이해할 수 없었음. 주로 AI 에이전트에 특별한 점이 무엇인지, 수십 년 동안 존재해 온 결정론적 에이전트에 적용되지 않는 점이 무엇인지 나는 MCP의 전체 목적이 Anthropic이 프롬프트와 출력을 엿듣고 훈련 데이터를 최대화하는 것이라고 가정했음. 이것이 모든 AI 모델을 위한 미들웨어라는 것을 처음 알게 되었음
Hacker News 의견
이 글은 며칠 전 Invariant Labs에서 발표한 보안 노트에서 설명한 공격 시나리오(도구 중독, 그림자화, MCP 러그 풀)를 강조하고 인용함. 나는 해당 블로그 글의 저자임
이러한 공격은 대부분 공기 잠금 장치의 잘못된 측면에 있는 또 다른 예시임. 이들은 권한 경계를 넘지 않으며, 이미 할 수 있는 일을 이상한 방법으로 수행한 것임
다음과 같은 더 나은 설계를 구상하는 도전 과제:
좋은 기사지만 이 모든 것이 AI 생성된 것인지 궁금함
O는 관찰 가능성을 의미함. 이번 주에 MCP 서버를 탐색하고 작성하는 데 깊이 빠져 있었음
맞음. 나도 같은 생각이었음, 비록 내가 메모를 발표할 때 깊이 들어가지 않았지만
사용 중인 소프트웨어가 악의적이지 않고 안전하게 구현되었을 때도, 원하는 방식으로 사용되는지 어떻게 확인할 수 있을까?
Equixly가 테스트한 MCP 서버 구현의 43% 이상이 안전하지 않은 셸 호출을 가졌음
MCP가 무엇인지 궁금함. 여러 번 문서를 읽으려 했지만 해결하는 문제가 무엇인지 이해할 수 없었음. 주로 AI 에이전트에 특별한 점이 무엇인지, 수십 년 동안 존재해 온 결정론적 에이전트에 적용되지 않는 점이 무엇인지
나는 MCP의 전체 목적이 Anthropic이 프롬프트와 출력을 엿듣고 훈련 데이터를 최대화하는 것이라고 가정했음. 이것이 모든 AI 모델을 위한 미들웨어라는 것을 처음 알게 되었음