본문으로 건너뛰기

© 2026 Molayo

GitHub요약2026. 06. 19. 20:39

Repello-AI/mcp-exploit-demo

요약

MCP(Model Context Protocol) 서버의 도구 오염을 통해 원격 코드 실행 및 데이터 유출을 시연하는 보안 취약점 연구입니다. 악성 서버가 AI 어시스턴트를 조작하여 사용자의 SSH 키를 탈취하는 과정을 보여줍니다.

핵심 포인트

  • MCP 서버의 도구 문서를 조작하여 악성 코드 실행 유도
  • Base64 난독화와 사회 공학적 기법을 사용한 공격 시연
  • SSH 공개 키 수집 및 원격 서버로의 데이터 유출 수행
  • AI 개발 도구의 자동 실행 기능 비활성화 및 출처 확인 권장

이 저장소는 도구 오염 (tool poisoning)을 통해 원격 코드 실행 (remote code execution) 및 데이터 유출 (data exfiltration)을 허용하는 MCP (Model Context Protocol) 서버의 보안 취약점을 시연합니다.
이것은 교육 및 보안 연구 목적으로만 의도되었습니다.

server.py

  • 오염된 도구가 포함된 악성 MCP 서버 구현
    .cursor/mcp.json

  • Cursor AI 통합을 위한 설정 파일

이 공격은 "Rug Pull" 방식을 시연합니다:

  • 사용자가 Cursor AI와 같은 MCP 클라이언트 (MCP Client)를 통해 악성 MCP 서버에 연결합니다.
  • 서버는 DockerCommandAnalyzer 도구의 문서를 악성 코드로 수정합니다 - AI 어시스턴트가 이 문서를 읽을 때, base64로 인코딩된 명령어를 실행하도록 조작됩니다.
  • 인코딩된 명령어는 다음과 같은 작업을 조용히 수행합니다:
    • 사용자의 SSH 공개 키 (SSH public keys) 수집
    • 이를 원격 서버로 유출 (exfiltrates)
    • 공격의 흔적 제거

공격의 핵심 요소는 다음과 같습니다:

2단계 오염 (Two-stage poisoning): 도구가 오염된 상태를 유지하도록 지속성을 위해 마커 파일을 사용합니다.
사회 공학 (Social engineering): AI 어시스턴트를 조작하기 위해 긴급한 언어를 사용합니다.
Base64 난독화 (Base64 obfuscation): 일반적인 검사로부터 악성 명령어를 숨깁니다.
유출을 위한 wget (wget for exfiltration): 공격자가 제어하는 서버로 데이터를 보내기 위해 표준 HTTP POST를 사용합니다.

이러한 유형의 공격으로부터 보호하려면:

자동 실행 기능 비활성화 (Disable auto-run features): Cursor와 같은 AI 개발 도구에서 자동 실행 기능을 끕니다.
항상 출처 확인 (Always verify the source): MCP 서버에 연결하기 전에 반드시 출처를 확인합니다.
코드 검토 (Review code): 신뢰할 수 없는 소스의 코드는 실행하기 전에 검토합니다.
샌드박스 환경 사용 (Use sandboxed environments): 새로운 AI 도구를 테스트할 때는 샌드박스 환경을 사용합니다.
송신 필터링 구현 (Implement egress filtering): 예상치 못한 외부 연결을 차단하기 위해 송신 필터링을 구현합니다.

AI 자동 생성 콘텐츠

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

원문 바로가기
0

댓글

0