CClaude Code Catalog
전체 Hooks

보안 시크릿 스캐너

Pre-Tool고급Hook 타입: pre-tool-use

보안 시크릿 스캐너는 파일 쓰기 및 git commit을 가로채서 민감한 데이터 패턴을 스캔합니다. AWS 키, GitHub 토큰, 개인 키, 데이터베이스 연결 문자열, JWT 시크릿 등 수십 가지 자격 증명 패턴을 trufflehog 및 gitleaks에서 영감받은 정규식 규칙으로 검사합니다. 잠재적 시크릿이 감지되면 작업을 차단하고 일치하는 정확한 라인과 패턴을 강조 표시합니다. 이를 통해 개발 시 가장 흔한 보안 사고인 시크릿의 실수 commit을 방지합니다.

보안시크릿스캔자격 증명예방

Hook 코드

#!/bin/bash # Security Secret Scanner Hook # Detects secrets and credentials before they're committed # Only check Write, Edit, and Bash (git commit) if [[ "$TOOL_NAME" != "Edit" ]] && [[ "$TOOL_NAME" != "Write" ]] && [[ "$TOOL_NAME" != "Bash" ]]; then exit 0 fi # For Bash, only check git commit if [[ "$TOOL_NAME" == "Bash" ]] && ! echo "$TOOL_INPUT" | grep -q "git commit"; then exit 0 fi # Secret patterns (regex) PATTERNS=( 'AKIA[0-9A-Z]{16}' # AWS Access Key 'ghp_[a-zA-Z0-9]{36}' # GitHub PAT 'sk-[a-zA-Z0-9]{48}' # OpenAI/Anthropic API Key 'sk-ant-api[0-9]{2}-[a-zA-Z0-9_-]{90,}' # Anthropic Key '-----BEGIN (RSA |EC |DSA )?PRIVATE KEY-----' # Private Key 'postgres://[^\s]+:[^\s]+@' # DB Connection String 'mongodb(\+srv)?://[^\s]+:[^\s]+@' # MongoDB URI 'xox[boaprs]-[0-9a-zA-Z-]+' # Slack Token 'eyJ[a-zA-Z0-9_-]*\.eyJ[a-zA-Z0-9_-]*\.' # JWT Token 'AIza[0-9A-Za-z_-]{35}' # Google API Key ) FOUND_SECRETS=0 scan_content() { local content="$1" local source="$2" for pattern in "${PATTERNS[@]}"; do MATCH=$(echo "$content" | grep -oE "$pattern" | head -1) if [ -n "$MATCH" ]; then echo "SECRET DETECTED in $source" echo " Pattern: $pattern" echo " Match: ${MATCH:0:12}...REDACTED" FOUND_SECRETS=$((FOUND_SECRETS + 1)) fi done } # Scan based on tool type if [[ "$TOOL_NAME" == "Edit" ]] || [[ "$TOOL_NAME" == "Write" ]]; then CONTENT=$(echo "$TOOL_INPUT" | jq -r '.new_string // .content // empty') FILE_PATH=$(echo "$TOOL_INPUT" | jq -r '.file_path // .path // "unknown"') scan_content "$CONTENT" "$FILE_PATH" elif [[ "$TOOL_NAME" == "Bash" ]]; then STAGED=$(git diff --cached 2>/dev/null) scan_content "$STAGED" "staged changes" fi if [ $FOUND_SECRETS -gt 0 ]; then echo "" echo "BLOCKED: $FOUND_SECRETS potential secret(s) found." echo "Remove secrets and use environment variables instead." exit 1 fi exit 0

이 Hook을 Claude Code 설정 또는 .claude/settings.json에 추가하면 활성화됩니다.

실행 미리보기

보안 시크릿 스캐너

보안 시크릿 스캐너에 대해

Claude Code Hooks는 Claude 작업 중 특정 이벤트에 반응하여 커스텀 셸 명령을 자동으로 실행합니다. 보안 시크릿 스캐너은(는) 고급 수준의 Pre-Tool Hook으로, 개발 워크플로우의 핵심 시점에서 작업을 자동화하여 수동 단계를 줄이고 팀 전체의 일관성을 유지합니다.

관련 Hooks