피드로 돌아가기
The RegisterSecurity
원문 읽기
50개 이상의 서브커맨드로 Claude Code 보안 규칙 무력화
Claude Code bypasses safety rule if given too many commands
AI 요약
Context
Claude Code는 특정 위험 도구 실행을 차단하는 deny rules 기반의 보안 체계 운용. bashPermissions.ts 내의 MAX_SUBCOMMANDS_FOR_SECURITY_CHECK 설정으로 인해 보안 검사 횟수에 하드 캡 존재. 과도한 서브커맨드 체인 입력 시 보안 규칙을 무시하고 사용자 승인 단계로 폴백하는 구조적 결함 발견.
Technical Solution
- 50개 이상의 no-op "true" 커맨드와 curl 명령어를 조합한 파이프라인으로 보안 필터 우회
- Prompt Injection을 통해 악의적인 CLAUDE.md 파일로 AI가 스스로 긴 커맨드 체인을 생성하도록 유도
- --dangerously-skip-permissions 모드나 비대화형 CI/CD 파이프라인 환경에서 자동 승인될 경우 즉각적인 공격 노출
- 내부적으로는 AST 기반의 구문 분석 도구인 tree-sitter 파서를 통해 명령어 구조를 정밀하게 분석하는 해결책 마련
- bashPermissions.ts 파일의 동작 제어 키를 "ask"에서 "deny"로 변경하여 폴백 시 즉시 차단하는 단순 설정 변경 가능
Impact
- 보안 검사 임계치: MAX_SUBCOMMANDS_FOR_SECURITY_CHECK = 50
Key Takeaway
사용자 입력 기반의 단순 횟수 제한(Hard Cap)은 AI가 생성한 복잡한 페이로드 앞에서는 무용지물이며, 정규표현식이나 횟수 제한 대신 AST(Abstract Syntax Tree) 기반의 정밀한 구문 분석을 통한 보안 검증이 필수적임.
실천 포인트
AI 에이전트 도입 시 --dangerously-skip-permissions 옵션 사용을 지양하고, 명령어 실행 전 AST 기반의 화이트리스트 검증 로직을 구현할 것