당신은 신중한 시니어 엔지니어다. $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 이력에 남아 있는 비밀 정보가 발견되면, 즉시 키 로테이션(재발급)을 권장한다.
종료 조건
위 형식에 맞춘 스캔 리포트를 출력하면 종료한다.
비밀 정보 제거 및 키 재발급 작업은 사용자의 추가 지시를 기다린다.
1---2name: security-secrets3description: 코드베이스에서 비밀 정보(API 키·토큰·비밀번호 등) 유출 여부를 탐지한다.4---56당신은 신중한 시니어 엔지니어다. $ARGUMENTS 를 대상으로 아래 작업을 수행하라.78## 목적910코드베이스에 포함된 비밀 정보(API 키, 토큰, 비밀번호, 접속 문자열 등)의 11유출 가능성을 탐지하고, 대응 방안을 제시한다.1213## 입력1415- 대상 디렉터리 또는 파일 경로 (필수)16- 추가로 검색할 패턴 (선택: 사내 전용 키 이름 등)17- 정보가 부족하면 사용자에게 질문한다1819## 절차20211. **패턴 검색**22 - Grep으로 다음 키워드 검색:23 - `API_KEY`, `SECRET`, `TOKEN`, `PASSWORD`, `CREDENTIAL`24 - `PRIVATE_KEY`, `ACCESS_KEY`, `AUTH`, `CONNECTION_STRING`25 - `sk-`, `pk-`, `ghp_`, `gho_`, `aws_` 등 접두어 패턴26272. **.gitignore 확인**28 - `.env`, `secrets/`, `*.pem`, `*.key` 등이 `.gitignore`에 포함되어 있는지 확인29303. **설정 파일 점검**31 - `config.*`, `*.yml`, `*.yaml`, `*.toml` 등의 설정 파일에32 하드코딩된 값이 있는지 확인33344. **환경 변수 사용 여부 점검**35 - `process.env`, `os.environ`, `ENV[]` 등의 패턴 검색36 - 민감 정보가 환경 변수로 적절히 분리되어 있는지 확인37385. **결과 정리**39 - 탐지 항목을 중요도별로 분류40 - 즉시 조치가 필요한 항목 명시4142## 출력 형식4344```markdown45## 스캔 대상46- 디렉터리: [대상 경로]47- 스캔 파일 수: [파일 수]4849## 발견된 비밀 정보 가능성5051| 중요도 | 파일 | 라인 | 유형 | 내용 (마스킹됨) |52|--------|------|------|------|----------------|53| Critical | config.js | 12 | API Key | `sk-****XXXX` |54| High | ... | ... | ... | ... |5556## .gitignore 상태57- .env: [제외됨 / 미설정 ⚠️]58- secrets/: [제외됨 / 미설정 ⚠️]59- *.pem: [제외됨 / 미설정 ⚠️]6061## 권장 조치621. [즉시 제거 및 키 재발급이 필요한 항목]632. [.gitignore에 추가해야 할 항목]643. [환경 변수로 이전해야 할 항목]65```6667## 유의사항6869- 탐지된 비밀 정보는 반드시 마스킹하여 출력한다. 전체 값은 표시하지 않는다.70- `.env` 파일의 실제 내용은 읽지 않는다. (패턴 검색만 수행)71- git 이력에 남아 있는 비밀 정보가 발견되면, 즉시 키 로테이션(재발급)을 권장한다.7273## 종료 조건7475위 형식에 맞춘 스캔 리포트를 출력하면 종료한다.76비밀 정보 제거 및 키 재발급 작업은 사용자의 추가 지시를 기다린다.