본문으로 건너뛰기

© 2026 Molayo

GitHub요약2026. 06. 15. 09:52

kapilduraphe/mcp-watch

요약

mcp-watch은 Model Context Protocol(MCP) 서버의 보안 취약점을 탐지하기 위한 종합 스캐너입니다. 자격 증명 노출, 프롬프트 주입, 도구 오염 등 MCP 구현 시 발생할 수 있는 다양한 보안 위협을 식별합니다.

핵심 포인트

  • 자격 증명, 프롬프트 주입, 도구 오염 등 12가지 이상의 보안 위협 탐지
  • npm, Docker, Git 클론 등 다양한 방식으로 간편하게 설치 및 사용 가능
  • 멀티 스테이지 빌드와 Alpine Linux를 사용한 최적화된 보안 환경 제공
  • GitHub 리포지토리 및 로컬 워크스페이스에 대한 스캔 기능 지원

Model Context Protocol (MCP) 서버를 위한 종합 보안 스캐너로, MCP 구현 시 발생할 수 있는 취약점과 보안 문제를 탐지합니다.

🔑 자격 증명 탐지 (Credential Detection)- 하드코딩된 API 키, 토큰 및 안전하지 않은 자격 증명 저장 방식을 찾아냅니다.
🧪 도구 오염 (Tool Poisoning)- 도구 설명(tool descriptions) 내에 숨겨진 악성 지침을 탐지합니다.
🎯 파라미터 주입 (Parameter Injection)- 민감한 AI 컨텍스트를 추출하는 매직 파라미터(magic parameters)를 식별합니다.
💉 프롬프트 주입 (Prompt Injection)- 프롬프트 조작 및 주입 공격을 스캔합니다.
🔄 도구 변이 (Tool Mutation)- 동적인 도구 변경 및 러그풀(rug-pull) 위험을 탐지합니다.
💬 대화 유출 (Conversation Exfiltration)- 대화 기록을 훔치는 트리거를 찾아냅니다.
🎨 ANSI 주입 (ANSI Injection)- 이스케이프 시퀀스(escape sequences)를 사용한 스테가노그래피(steganographic) 공격을 탐지합니다.
📋 프로토콜 위반 (Protocol Violations)- MCP 프로토콜 보안 위반 사항을 식별합니다.
🛡️ 입력 검증 (Input Validation)- 커맨드 인젝션 (command injection), SSRF, 경로 탐색 (path traversal) 문제를 찾아냅니다.
🎭 서버 스푸핑 (Server Spoofing)- 인기 있는 서비스를 사칭하는 서버를 탐지합니다.
🌊 유해 흐름 (Toxic Flows)- 위험한 데이터 흐름 패턴을 식별합니다.
🔐 권한 문제 (Permission Issues)- 과도한 권한 및 액세스 제어 문제를 찾아냅니다

# 전역 설치 (Install globally)
npm install -g mcp-watch
# 모든 GitHub MCP 리포지토리 스캔
...
# 즉시 클론하여 사용
git clone https://github.com/kapilduraphe/mcp-watch.git
cd mcp-watch
...
# 아무것도 설치하지 않고 스캔
docker run --rm mcp-watch scan https://github.com/user/mcp-server
docker run --rm -v $(pwd):/workspace mcp-watch scan-local /workspace

npm install -g mcp-watch

npm install mcp-watch

git clone https://github.com/kapilduraphe/mcp-watch.git
cd mcp-watch
npm install
...
# 로컬에서 빌드 및 실행
docker build -t mcp-watch .
docker run --rm mcp-watch scan https://github.com/user/mcp-server
...
# Docker Compose로 빌드 및 실행
docker compose build
docker compose up mcp-watch
...

🔒 보안 (Security): Non-root 사용자, 최소한의 공격 표면 (minimal attack surface)
📦 최적화 (Optimized): 멀티 스테이지 빌드 (Multi-stage builds), Alpine Linux 베이스
🚀 프로덕션 (Production): 배포 및 CI/CD 준비 완료
🧹 단순화 (Simplified): 모든 사용 사례를 위한 단일 최적화 Dockerfile

# GitHub 리포지토리 스캔
mcp-watch scan https://github.com/user/mcp-server
# JSON 출력으로 스캔
...
# 현재 디렉토리 스캔
mcp-watch scan-local .
# 특정 디렉토리 스캔 (절대 경로)
...
# 전역 설치 (권장)
npm install -g mcp-watch
mcp-watch scan https://github.com/user/mcp-server
...
# 클론 및 빌드
git clone https://github.com/kapilduraphe/mcp-watch.git
cd mcp-watch
...
# 프로덕션 컨테이너
docker run --rm mcp-watch scan https://github.com/user/mcp-server
docker run --rm mcp-watch scan https://github.com/user/mcp-server --format json --severity high
...

--format <type>

  • 출력 형식 (Output format): console (기본값) 또는 json

--severity <level>

  • 최소 심각도 (Minimum severity): low, medium, high, critical

--category <cat>

  • 취약점 카테고리별 필터링

credential-leak

  • 하드코딩된 자격 증명 및 불안전한 저장소

tool-poisoning

  • 악성 도구 설명

data-exfiltration

  • 데이터 탈취 및 파라미터 주입

prompt-injection

  • 프롬프트 조작 공격

tool-mutation

  • 동적 도구 변경

steganographic-attack

  • 이스케이프 시퀀스 내 숨겨진 콘텐츠

protocol-violation

  • MCP 프로토콜 보안 문제

input-validation

  • 커맨드 인젝션 (Command injection), SSRF, 경로 탐색 (path traversal)

server-spoofing

  • 서버 사칭

toxic-flow

  • 위험한 데이터 흐름

access-control

  • 권한 및 액세스 문제
🔍 리포지토리 스캔 중: https://github.com/user/mcp-server
📊 vulnerablemcp.info, HiddenLayer, Invariant Labs, 그리고 Trail of Bits의 연구를 기반으로 함
🔑 자격 증명 취약점 스캔 중...
...
mcp-watch/
├── main.ts # CLI 엔트리 포인트
├── types/
...
# 프로젝트 빌드
npm run build
# 개발 모드로 실행
...
# 의존성 설치
npm install
# 개발 서버 실행
...
# Docker 이미지 빌드
docker compose build
# 이미지 테스트
...
  • scanner/scanners/에 새로운 스캐너(scanner) 생성

  • AbstractScanner 확장

  • scan() 메서드 구현 - MCPScanner.ts에 추가

예시:

import { AbstractScanner } from "../BaseScanner";
import { Vulnerability } from "../../types/Vulnerability";
export class MyScanner extends AbstractScanner {
...

이 도구는 AI 및 사이버 보안 분야의 선도적인 기관들의 보안 연구를 기반으로 하며, 다음과 같은 MCP 환경 특유의 새로운 공격 벡터 (attack vectors)를 식별합니다:

매개변수 주입 공격 (Parameter injection attacks): 민감한 AI 컨텍스트를 추출
도구 오염 (Tool poisoning): 숨겨진 악성 명령 포함
대화 유출 (Conversation exfiltration): 트리거 문구를 사용한 유출
스테가노그래피 공격 (Steganographic attacks): ANSI 이스케이프 시퀀스를 통한 공격
유해 에이전트 흐름 (Toxic agent flows): 리포지토리 경계를 넘나드는 흐름

VulnerableMCP 데이터베이스 (vulnerablemcp.info)

  • MCP 취약점에 대한 포괄적인 데이터베이스

  • 실제 공격 패턴 및 사례

  • 새로운 공격 벡터에 대한 정기적인 업데이트

HiddenLayer 연구 (Exploiting MCP Tool Parameters)

  • 민감한 데이터를 추출하는 매개변수 주입 공격 (Parameter injection attacks)

  • 도구 호출 이력 및 대화 유출 (Conversation exfiltration)

  • 시스템 프롬프트 추출 취약점

  • 사고 과정 (Chain of thought) 조작

  • 모델 이름 노출 위험

Invariant Labs 연구 (GitHub MCP Vulnerability)

  • 도구 오염 (Tool poisoning) 탐지

  • 유해 에이전트 흐름 (Toxic agent flows)

  • 교차 리포지토리 보안 문제

  • 도구 기능 내 러그풀 (Rug-pull) 업데이트

  • 서버 스푸핑 (Server spoofing) 방지

Trail of Bits 연구 (MCP Security Research)

  • 대화 유출 (Conversation exfiltration) 방법

  • ANSI 주입 공격 (ANSI injection attacks)

  • 프로토콜 수준의 취약점

  • 안전하지 않은 자격 증명 저장 패턴

  • 교차 서버 섀도잉 공격 (Cross-server shadowing attacks)

  • PromptHub 분석 (5가지 MCP 보안 취약점)

  • 커맨드 인젝션 (Command injection) 패턴 (공개 MCP 서버의 43%가 영향)

  • SSRF (Server-Side Request Forgery) 취약점 통계 (30%가 임의의 URL 페칭을 허용)

  • 경로 탐색 (Path traversal) 공격 벡터 (22%가 의도된 디렉토리 외부의 파일을 유출)

  • 검색-에이전트 기만 (Retrieval-Agent Deception, RADE) 공격

  • 도구 오염 (Tool poisoning) 방지 전략

0

  • 심각 (Critical) 또는 높음 (High) 등급의 취약점이 발견되지 않음1

  • 심각 (Critical) 또는 높음 (High) 등급의 취약점이 감지됨1

  • 스캔 오류 발생

  • 저장소 포크 (Fork)

  • 기능 브랜치 (Feature branch) 생성

  • npm run type-check로 타입 체크 실행

  • 변경 사항을 수동으로 테스트

  • 풀 리퀘스트 (Pull request) 제출

이 저장소는 CI/CD, 보안 스캔 및 의존성 관리를 위해 자동화된 워크플로우를 사용합니다:

CI: 모든 푸시/PR에 대한 자동화된 테스트 및 Docker 검증
보안 스캔 (Security Scan): 일일 보안 감사 및 취약점 점검
의존성 업데이트 (Dependency Update): 주간 의존성 유지 관리 및 보안 수정
릴리스 (Release): 자동화된 릴리스 에셋 생성
Docker 테스트 (Docker Test): Docker 전용 테스트 및 검증

다음 도구를 사용한 자동화된 의존성 관리:

npm: 마이너/패치 버전의 자동 병합을 포함한 주간 업데이트
GitHub Actions: 자동화된 액션 업데이트
Docker: 베이스 이미지 업데이트

상세한 워크플로우 문서는 GITHUB_ACTIONS.md를 참조하세요.

# 클론 및 설정
git clone https://github.com/kapilduraphe/mcp-watch.git
cd mcp-watch
...

MIT License - 자세한 내용은 LICENSE 파일을 참조하세요.

  • 버그 보고 또는 기능 요청을 위해 이슈 (Issue) 생성
  • 새 이슈를 생성하기 전에 기존 이슈 확인
  • 이슈 보고 시 스캔 결과와 저장소 세부 정보 포함

문서 (Documentation): 상세한 Docker 사용법은 DOCKER.md를 참조하세요
이슈 (Issues): 이슈 보고 시 Docker 버전과 Docker Compose 버전을 포함하세요
테스트 (Testing): 프로덕션 및 개발 컨테이너 모두에서 테스트하세요

** ⚠️ 보안 주의 사항**: 이 도구는 잠재적인 보안 문제를 식별하지만, 유일한 보안 조치가 되어서는 안 됩니다. 항상 수동 보안 검토를 수행하고 보안 모범 사례를 따르십시오.

AI 자동 생성 콘텐츠

본 콘텐츠는 GitHub AI Tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0