Secret
소스코드에 하드코딩된 계정(ID/Password), API 토큰, Secret Key 등이 유출된 경우 심각한 보안 사고로 이어질 수 있습니다. 다음은 유출 시 조치해야 할 단계별 대응 절차입니다.
1. 즉시 소스코드에서 민감 정보 제거
민감 정보가 포함된 커밋을 즉시 제거합니다.
단순히 주석처리나 삭제하는 것이 아니라, Git 기록(history) 에서도 제거해야 합니다.
# BFG 사용 예시
bfg --delete-files YOUR_SECRET_FILENAME
bfg --replace-text passwords.txt
# 또는 git filter-repo 사용
git filter-repo --replace-text passwords.txt변경사항을 푸시한 후, 협업자들에게
git clone을 새로 하도록 안내합니다.
2. 해당 토큰 및 계정 즉시 폐기
노출된 API Key, Secret, Password, Access Token 등을 즉시 폐기하거나 비활성화합니다.
클라우드 콘솔, 인증 서버 등에서 토큰을 회수합니다.
# 예: AWS 액세스 키 폐기
aws iam delete-access-key --access-key-id <ACCESS_KEY_ID> --user-name <USER>3. 새로운 토큰 및 계정 발급
새로운 자격 증명을 발급받습니다.
단, 이전과 동일한 권한 구조를 복원하지 말고, 최소 권한 원칙(Least Privilege) 에 따라 재설계합니다.
4. 보안 로그 분석 및 침해 여부 확인
유출된 토큰 또는 계정으로 접근 시도 또는 사용된 이력이 있는지 확인합니다.
API 호출 이력, 로그인 기록, 파일 접근 로그 등을 조사합니다.
5. GitHub/GitLab 등 공개 저장소일 경우
유출 사실을 해당 플랫폼에 Security Incident로 신고하거나, 비공개로 전환합니다.
GitHub의 경우 Secret Scanning 기능을 활용하세요.
6. 재발 방지 대책
.env, 환경 변수, Vault, Secret Manager 등을 활용한 비밀 분리 전략 적용Secret이 포함된 커밋 차단을 위한 pre-commit hook 또는 CI/CD 검사 도입
예: git-secrets, gitleaks
권장사항 요약
유출된 키 제거
Git history 삭제 또는 비공개 전환
키 폐기
콘솔에서 삭제 또는 무효화
신규 키 발급
최소 권한으로 재설정
이상 징후 확인
로그 분석 및 감시 강화
예방 조치
Secret Manager 사용, 사전 커밋 검사 도입
참고 자료
Last updated