Claude Code · 2026년 9월 10일 ★★★

클로드 코드 PreToolUse 훅 하나만 안전장치로 두고 우회 사례 255건을 돌렸더니 100건이 통과했다고 그 훅의 변경 기록에 적혀 있어요

btrfs 스냅숏이 없으면 시스템 변경을 막는 PreToolUse 훅 snapguard 가 9월 9일 0.2.0 변경 기록에 "0.1.0 을 유일한 안전장치로 두고(클로드 코드 bypassPermissions, 자동 모드 분류기 없음) 우회 사례 255건을 돌렸더니 100건이 통과했다"고 적었어요. 같은 문단은 0.2.0 을 적용한 뒤에도 41건은 여전히 통과하며 그것들은 모두 읽기 전용이거나 사용자 권한 수준이라고 덧붙였고, README 는 "이것은 AI 가 실수하는 것을 막을 뿐 우회하려는 사람을 막지는 못하고, 셸의 정적 분석으로는 앞으로도 못 한다"고 스스로 적어 뒀어요. 앤트로픽 공식 문서도 훅의 명령 일치가 최선 노력이라며 "하드 허용이나 거부를 강제하려면 훅 대신 권한 시스템을 쓰라"고 명시하고 있어요.

용어 풀이
PreToolUse
클로드 코드가 도구를 실행하기 직전에 호출하는 검사 지점. 여기서 실행을 거부할 수 있다.
bypassPermissions
클로드 코드의 권한 확인과 안전 검사를 모두 끄고 도구 호출을 바로 실행하는 모드.
자동 모드 분류기
자동 모드에서 사람 대신 행동을 검토해 차단 여부를 정하는 별도의 모델.
btrfs
스냅숏을 만들어 이전 상태로 되돌릴 수 있는 리눅스 파일 시스템.
히어독
셸에서 여러 줄 입력을 명령에 그대로 넘기는 문법(here-document).
운영자 인사이트

훅으로 셸 명령 문자열을 검사하는 방식은 `/bin/rm`, `sh -c '...'`, 히어독처럼 같은 프로그램을 다른 모양으로 부르면 빠져나가요. 공식 문서가 명령 문자열에 기대지 않는 강제 수단으로 샌드박스를 따로 안내하는 이유예요. 사내에서 bypassPermissions 를 열어 두고 훅으로 막고 있다면 그 훅을 다른 호출 형태로 한 번 시험해 보고, 실제 강제는 컨테이너나 가상 머신 격리 쪽에 두는 편이 안전해요.

여러 관점으로 보기
  • 만든 사람의 자체 측정 0.1.0 을 유일한 안전장치로 두고 우회 사례 255건을 돌려 100건이 통과했고, 0.2.0 적용 뒤에도 41건은 통과한다고 적혀 있어요. GitHub
  • 도구가 스스로 밝힌 한계 README 가 "AI 의 실수는 막지만 우회하려는 사람은 못 막고, 셸의 정적 분석으로는 앞으로도 못 한다"고 설계상 한계로 적어 뒀어요. GitHub
  • 앤트로픽이 정한 훅의 위치 훅의 명령 일치는 최선 노력이라, 허용이나 거부를 강제할 때는 훅이 아니라 권한 시스템을 쓰라고 공식 문서가 안내해요. Anthropic
  • 명령 문자열 검사가 놓치는 형태 `Bash(rm *)` 규칙이 `/bin/rm -rf build/` 와 `bash -c 'rm -rf build/'` 는 막지 못한다고 공식 문서 표에 그대로 나와 있어요. Anthropic
  • 이 측정이 무엇을 끈 상태였는가 자동 모드는 분류기 모델이 실행 전에 행동을 검토하는데, bypassPermissions 는 그 검사를 모두 끄고 프롬프트 인젝션에 아무 보호도 주지 않는다고 적혀 있어요. Anthropic

원본 보기 (reddit:claudeai)