| name | security-secrets |
| description | 코드베이스에서 비밀 정보(API 키·토큰·비밀번호 등) 유출 여부를 탐지한다. |
| argument-hint | [directory|file-path] (선택: 추가 검색 패턴) |
| user-invocable | true |
| disable-model-invocation | true |
| allowed-tools | Read, Grep, Glob |
당신은 신중한 시니어 엔지니어다. $ARGUMENTS 를 대상으로 아래 작업을 수행하라.
목적
코드베이스에 포함된 비밀 정보(API 키, 토큰, 비밀번호, 접속 문자열 등)의
유출 가능성을 탐지하고, 대응 방안을 제시한다.
입력
- 대상 디렉터리 또는 파일 경로 (필수)
- 추가로 검색할 패턴 (선택: 사내 전용 키 이름 등)
- 정보가 부족하면 사용자에게 질문한다
절차
-
패턴 검색
- Grep으로 다음 키워드 검색:
API_KEY, SECRET, TOKEN, PASSWORD, CREDENTIAL
PRIVATE_KEY, ACCESS_KEY, AUTH, CONNECTION_STRING
sk-, pk-, ghp_, gho_, aws_ 등 접두어 패턴
-
.gitignore 확인
.env, secrets/, *.pem, *.key 등이 .gitignore에 포함되어 있는지 확인
-
설정 파일 점검
config.*, *.yml, *.yaml, *.toml 등의 설정 파일에
하드코딩된 값이 있는지 확인
-
환경 변수 사용 여부 점검
process.env, os.environ, ENV[] 등의 패턴 검색
- 민감 정보가 환경 변수로 적절히 분리되어 있는지 확인
-
결과 정리
- 탐지 항목을 중요도별로 분류
- 즉시 조치가 필요한 항목 명시
출력 형식
## 스캔 대상
- 디렉터리: [대상 경로]
- 스캔 파일 수: [파일 수]
## 발견된 비밀 정보 가능성
| 중요도 | 파일 | 라인 | 유형 | 내용 (마스킹됨) |
|--------|------|------|------|----------------|
| Critical | config.js | 12 | API Key | `sk-****XXXX` |
| High | ... | ... | ... | ... |
## .gitignore 상태
- .env: [제외됨 / 미설정 ⚠️]
- secrets/: [제외됨 / 미설정 ⚠️]
- *.pem: [제외됨 / 미설정 ⚠️]
## 권장 조치
1. [즉시 제거 및 키 재발급이 필요한 항목]
2. [.gitignore에 추가해야 할 항목]
3. [환경 변수로 이전해야 할 항목]
유의사항
- 탐지된 비밀 정보는 반드시 마스킹하여 출력한다. 전체 값은 표시하지 않는다.
.env 파일의 실제 내용은 읽지 않는다. (패턴 검색만 수행)
- git 이력에 남아 있는 비밀 정보가 발견되면, 즉시 키 로테이션(재발급)을 권장한다.
종료 조건
위 형식에 맞춘 스캔 리포트를 출력하면 종료한다.
비밀 정보 제거 및 키 재발급 작업은 사용자의 추가 지시를 기다린다.