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 history 삭제 또는 비공개 전환

키 폐기

콘솔에서 삭제 또는 무효화

신규 키 발급

최소 권한으로 재설정

이상 징후 확인

로그 분석 및 감시 강화

예방 조치

Secret Manager 사용, 사전 커밋 검사 도입


참고 자료

Last updated