MCP-Scan 소개
최근 LLM 기반 에이전트 시스템에 사용되는 MCP(Model Context Protocol) Server가 많은 인기를 얻으면서 보안 취약점에 대한 우려도 커지고 있습니다. 특히 Claude, Cursor, VSCode 기반 MCP 구현체들이 다양한 보안 공격에 노출될 수 있다는 사실이 연구를 통해 밝혀졌습니다. 특히, Invariant Labs는 AI 에이전트의 보안 연구를 진행하면서 “Tool Poisoning Attack”, “Prompt Injection”, “Cross-Origin Escalation” 등의 공격 유형이 MCP 도구 설명(description)을 통해 에이전트를 오염시키거나 권한을 탈취할 수 있다는 사실을 확인했습니다.
이에 대응하여 Invariant Labs는 MCP 기반 시스템의 보안을 강화할 수 있는 오픈소스 도구인 MCP-Scan을 개발 및 공개했습니다. MCP-Scan은 MCP 관련 서비스의 보안 문제를 진단하는 CLI 도구로, MCP Server 및 등록된 도구들을 스캔하여 이상한 설명, 변경된 설명, 다른 도메인의 악성 도구를 탐지하고 경고해줍니다. 별도 설정 없이도 간단한 명령어 한 줄이면 사용할 수 있으며, uv
라는 Python 패키지 매니저만 설치되어 간단하게 설치하여 사용할 수 있습니다.
기존의 LLM 보안 도구들은 프롬프트 단위의 필터링이나 응답 검열 중심인 경우가 많습니다. 반면 MCP-Scan은 시스템 수준에서 도구 설명을 직접 분석하여 악성 행위를 사전에 탐지할 수 있다는 점에서 차별화됩니다. 특히 “Tool Pinning”을 통해 도구 설명이 나중에 바뀌었는지 추적할 수 있어 신뢰성을 크게 높입니다.
MCP-Scan의 주요 기능
- Tool Poisoning 탐지: 도구 설명에 숨겨진 악성 지시어 탐지
- MCP Rug Pull 방지: 승인 이후 도구 설명이 바뀐 경우 감지
- Cross-Origin Escalation 탐지: 다른 MCP 서버에서 동일 이름 도구를 등록해 신뢰 도구를 위조하는 공격 탐지
- Prompt Injection 탐지: 설명 안에 삽입된 명령어를 감지해 실행 방지
- Tool Pinning: 도구 설명의 해시 값을 통해 변조 여부 감지
- CLI 기반 쉬운 사용: uvx mcp-scan@latest 한 줄로 실행 가능
사용 방법
MCP-Scan은 uv 패키지 매니저를 사용합니다. 아래 명령어로 설치 및 실행할 수 있습니다:
uvx mcp-scan@latest
설치 후에는 inspect 명령으로 각 도구의 상세 설명을 분석할 수 있습니다:
uvx mcp-scan@latest inspect
기본적으로 MCP 서버 설정 파일을 찾아 해당 서버에 연결한 뒤 도구 설명을 받아와 로컬 및 Invariant의 API로 분석합니다. 분석 대상은 도구 이름과 설명이며, 개인정보나 호출 결과는 수집하지 않습니다.
다음은 MCP-Scan의 출력 예시입니다:
라이선스
MCP-Scan 프로젝트는 Apache-2.0 License로 공개 및 배포되고 있습니다. 상업적 사용에 제한이 없으며 자유롭게 수정 및 배포가 가능합니다.
MCP-Scan 소개 블로그
MCP-Scan 프로젝트 GitHub 저장소
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다.
파이토치 한국 사용자 모임
이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일
로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)
아래
쪽에 좋아요
를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~