플러그인 보안과 신뢰
기준일: 2026-10-23
공식 기준: Plugin security and trust
개요
설치한 Claude Code 플러그인은 사용자 권한으로 기기에서 임의의 코드를 실행할 수 있습니다. 플러그인은 Claude Code가 가져오는 카탈로그인 마켓플레이스에서 설치합니다. 일부 마켓 이름은 Anthropic 자체 마켓용으로 예약돼 있고 나머지는 모두 서드파티입니다. 마켓 이름은 카탈로그 발행자를 알려 줄 뿐 그 안의 각 플러그인이 하는 일을 알려 주지 않으므로, 어느 마켓이든 설치 전에 검토하세요.
플러그인 설치 여부를 판단하는 사람, 팀이 쓰기 전에 도구를 검토하는 사람을 위한 페이지입니다. 다른 페이지:
- Claude Code 자체 보안 모델: Security
- 조직 제한·필수화: Manage plugins for your organization
security-guidance,claude-security플러그인은 이 페이지 대상이 아님:security-guidance,claude-security
핵심 개념
| 개념 | 설명 |
|---|---|
| 마켓 tier | official / community / third-party 세 가지. 이름으로 구분 |
Will install |
/plugin 상세 pane에서 플러그인이 추가하는 구성요소 목록 |
Component inventory |
claude plugin details가 출력하는 구성요소 목록 |
pluginTrustMessage |
조직이 신뢰 경고에 덧붙이는 managed 텍스트 |
| 권한 규칙·sandbox의 범위 | Claude의 도구 호출만 대상. 플러그인이 스스로 실행하는 코드는 대상 아님 |
상세
플러그인이 할 수 있는 일
플러그인에는 기기에서 사용자 권한으로 코드를 실행하는 콘텐츠와 Claude의 컨텍스트에 지침으로 들어가는 콘텐츠가 있을 수 있습니다. 설치된 플러그인이 할 수 있는 일:
- Hooks: hooks는 도구 호출 전후 등 Claude Code 생명주기 시점에 셸 명령으로 실행
- Monitors: monitors는 세션 시작, 플러그인 리로드, 이름 붙은 skill의 첫 실행 때 Claude Code가 스스로 시작하는 백그라운드 셸 명령
- Mods: mod는 내 권한으로 Claude Code 안에서 JavaScript 실행. 설치 전 나열하는 방법은 Decide whether to trust a mod
- MCP·LSP 서버: 활성화된 플러그인이 선언한 MCP 서버에 연결해 그 도구를 Claude에게 줌. stdio MCP 서버는 Claude Code가 기기에서 시작하는 프로세스이고, 플러그인이 선언한 language server도 시작
bin/디렉터리: 활성화된 각 플러그인의bin/을 Bash 도구 셸의PATH에 추가하므로 Claude의 Bash 명령이 거기의 실행 파일을 실행 가능. PowerShell 도구 명령은 sandbox 밖에서 실행될 때 이PATH를 받고 안에서는 받지 않음- Skills, commands, agents: Claude의 컨텍스트에 지침으로 들어가 이미 가진 도구로 Claude가 하는 일에 영향
- 업데이트: 설치한 마켓의 auto-update가 켜져 있으면 백그라운드로 업데이트하므로 검토한 파일이 디스크에서 바뀔 수 있음. 시점은 When auto-update runs, 마켓별 켜기/끄기는 Keep plugins updated
Claude Code의 권한 규칙과 sandbox는 Claude가 하는 도구 호출을 다루고, 플러그인이 스스로 실행하는 코드는 다루지 않습니다.
- Hooks, monitors, 서버 프로세스: command hook과 monitor는 전체 사용자 권한으로 실행되는 셸 명령. Claude Code는 hook, monitor, MCP 서버, LSP 서버, mod가 시작한 프로세스를 sandbox 밖에서 실행
- Claude의 도구 호출: 플러그인 MCP 도구 호출과 플러그인
bin/의 실행 파일을 실행하는 Bash 명령은 도구 호출이므로 권한 규칙이 적용됨. mod가 도구 호출에 할 수 있는 일은 Decide whether to trust a mod
설치하면 활성화도 됩니다. 매니페스트나 마켓 항목이 defaultEnabled: false로 설정하고 직접 활성화하지 않았다면 예외입니다. 신뢰하지 않게 된 플러그인 제거는 제거.
마켓플레이스 tier
마켓 이름이 세 tier(official, community, third-party)를 정합니다. Claude Code는 official과 community 이름을 github.com/anthropics/ 저장소에서 온 마켓에만 인정하므로 서드파티 마켓이 Anthropic 것으로 행세할 수 없습니다. 동료나 조직이 발행하는 마켓은 서드파티입니다.
| Tier | 해당 마켓 |
|---|---|
| Official | official 마켓 이름 (예: claude-plugins-official) |
| Community | claude-community, claude-plugins-community, healthcare |
| Third-party | 그 외 모든 마켓 |
claude-community 카탈로그가 플러그인을 commit SHA에 고정한 경우(거의 모든 항목) Claude Code는 다른 commit의 설치를 거부합니다.
official 마켓 이름
claude-plugins-officialclaude-code-marketplaceclaude-code-pluginsanthropic-marketplaceanthropic-pluginsagent-skillsanthropic-agent-skillslife-sciencesknowledge-work-pluginsclaude-for-legalclaude-for-financial-servicesfinancial-services-pluginsfirst-party-pluginsclaude-tag-plugins
official, community, demo 마켓의 차이와 목록 위치는 Anthropic's marketplaces.
설치 전 검토
플러그인이 무엇을 추가하고 어디서 오는지 봅니다.
- 마켓 소스 확인: 셸에서
claude plugin marketplace list. 각 마켓을 추가한 소스(GitHub 저장소, 디렉터리 등)가 출력됨 - 상세 pane 읽기: 세션에서
/plugin을 실행하고 플러그인 선택. Will install 섹션이 commands, agents, skills, hooks, MCP·LSP 서버를 나열. Anthropic에 게시된 구성요소 데이터가 없는 플러그인은 마켓 항목이 선언한 것을 보여 주거나 메모를 표시: 마켓 안에 저장된 플러그인은Components will be discovered at installation, 다른 곳에서 가져오는 플러그인은Component summary not available for remote plugin - 플러그인 소스 읽기: 상세 pane의 설치 옵션 아래 Open homepage 또는 View on GitHub를 선택. 둘 다 없으면 1단계에서 찾은 마켓 저장소를 열어 플러그인 디렉터리를 찾습니다. Will install은 hook이 있다는 것만 보여 줄 뿐 무엇을 실행하는지는 보여 주지 않으므로 다음 파일을 읽으세요.
hooks/hooks.json: 각 hook이 실행하는 명령.mcp.json: 각 서버의 명령이나 URLbin/: 디렉터리의 모든 파일
- 포함 내용 나열: 플러그인 디렉터리가 든 저장소를 clone한 뒤 셸에서
claude --plugin-dir <plugin directory> plugin details <plugin name>을 실행하면 세션을 시작하지 않고 파일을 읽어 skills와 commands, agents, 각 hook의 이벤트가 포함된 hooks, MCP·LSP 서버를 나열한Component inventory를 출력합니다. 설치한 뒤에는claude plugin details <plugin name>이~/.claude/plugins/cache/<marketplace>/<plugin>/<version>/의 설치 사본에 대해 같은Component inventory를 출력합니다.
신뢰하지 않는 플러그인 제거
셸에서 설치한 --scope와 함께 claude plugin uninstall <plugin>을 실행한 뒤 제거된 것과 남은 것을 확인합니다.
- 영구 데이터: 기본적으로 그 scope가 플러그인이 설치된 마지막 scope였다면 제거 시 플러그인의 영구 데이터 디렉터리도 삭제됨.
--keep-data와 데이터가 남는 다른 경우는 plugin uninstall - 캐시 파일: 플러그인 파일은 백그라운드 sweep이 제거하기 전까지
~/.claude/plugins/cache/아래에 14일 남음. 마지막 플러그인을 제거하면 다른 플러그인을 설치할 때까지 고아 디렉터리가 남음. 지금 지우려면~/.claude/plugins/cache/<marketplace>/<plugin>/디렉터리를 직접 제거 - 마켓플레이스: 마켓 소유자도 신뢰하지 않으면 마켓도 제거. 그 마켓에서 설치한 모든 플러그인이 제거됨
Claude Code가 거부하거나 경고하는 경우
/plugin의 Discover 또는 Marketplaces 탭에서 여는 상세 pane은 각 플러그인에 같은 신뢰 경고를 보여 줍니다. 아래 신뢰할 수 없는 마켓 소스와 무결성 검사 실패 같은 경우에는 경고 대신 거부합니다.
설치 전 신뢰 경고
플러그인이 어느 마켓에서 오든 같은 문구입니다.
Make sure you trust a plugin before installing, updating, or using it. Anthropic does not control what MCP servers, files, or other software are included in plugins and cannot verify that they will work as intended or that they won't change. See each plugin's homepage for more information.
조직이 managed settings에 pluginTrustMessage를 설정하면 Claude Code가 그 텍스트를 경고에 덧붙입니다.
신뢰할 수 없는 마켓 소스와 무결성 검사 실패
다음 경우 Claude Code는 각기 다른 오류 메시지와 함께 마켓 로드나 플러그인 설치를 거부합니다.
- 신뢰할 수 없는 마켓 소스: official 또는 community 이름을 쓰는데 소스가
github.com/anthropics/밖이면 마켓과 그 마켓에서 설치한 플러그인의 로드를 중단. 오류는 Marketplace is registered from an untrusted source - 아카이브 무결성: 마켓 항목이
archive소스를sha256digest에 고정했는데 내려받은 파일의 digest가 맞지 않으면 설치 거부. 오류는 Plugin archive integrity check failed
sha256 고정은 체크아웃할 git commit을 고르는 community 카탈로그의 commit SHA 고정과 별개입니다.
조직의 플러그인 제어 강제
managed settings로 관리자는 다음을 강제할 수 있습니다.
- 마켓 소스 allowlist 또는 blocklist
- 플러그인 강제 활성화
--plugin-dir,--plugin-url플래그와CLAUDE_CODE_PLUGIN_DIRS변수 끄기- hook을 managed settings와 강제 활성화된 플러그인의 것으로 제한
- 구성원 claude.ai 계정의 플러그인이 Claude Code에 로드되지 않게
syncClaudeAiPlugins설정
각 키가 덮는 것과 덮지 않는 것은 제어 매트릭스.
텔레메트리에서 플러그인 찾기
조직이 Claude Code의 OpenTelemetry 이벤트를 자체 백엔드로 내보내면 마켓 tier가 어떤 플러그인 이름이 나올지 정합니다.
- Plugin loaded event: official tier 플러그인과 마켓 이름은 그대로 보고. community와 third-party tier는
OTEL_LOG_TOOL_DETAILS=1을 설정하지 않으면plugin.name,marketplace.name이 리터럴third-party - Plugin scope: loaded 이벤트의
plugin.scope는 여전히 출처를 보고 (예: managed settings가 켠 플러그인은org, 그 외 서드파티는user-local). 모든 값은 plugin loaded event - Plugin installed event:
OTEL_LOG_TOOL_DETAILS=1을 설정하지 않으면 non-official 플러그인의 이름 필드를third-party로 보고하는 대신 생략 - Claude Code Analytics API: official과 community tier 플러그인은 이름으로, 그 외는
third-party로 보고
체크리스트
-
claude plugin marketplace list로 마켓 소스 확인 -
/plugin상세 pane의 Will install 확인 -
hooks/hooks.json,.mcp.json,bin/직접 읽기 -
claude --plugin-dir <dir> plugin details <name>으로Component inventory확인 - 신뢰하지 않으면
claude plugin uninstall+ 필요 시 캐시·마켓 제거
함께 보기
기준일
- 문서 작성·동기화 기준일: 2026-10-23 (v2.1.309 반영)
- 원문: https://code.claude.com/docs/en/plugins/security