영향
API 키, 토큰 또는 자격 증명과 같은 비밀이 유출되면 중요한 데이터에 대한 무단 액세스, 서비스 가장 및 리소스 남용 [S1]로 인한 상당한 재정적 손실이 발생할 수 있습니다. 비밀이 공개 저장소에 커밋되거나 프런트엔드 애플리케이션에 번들로 포함되면 손상된 [S1]로 간주되어야 합니다.
근본 원인
근본 원인은 나중에 버전 제어에 커밋되거나 클라이언트 [S1]에 제공되는 소스 코드 또는 구성 파일에 민감한 자격 증명이 직접 포함되기 때문입니다. 개발자는 개발 중에 편의를 위해 키를 하드 코딩하거나 실수로 커밋 [S1]에 .env 파일을 포함하는 경우가 많습니다.
구체적인 수정
- 손상된 비밀 교체: 비밀이 유출된 경우 즉시 취소하고 교체해야 합니다. 버전 제어 기록 [S1][S2]에 남아 있기 때문에 현재 버전의 코드에서 비밀을 제거하는 것만으로는 충분하지 않습니다.
- 환경 변수 사용: 암호를 하드 코딩하는 대신 환경 변수에 저장합니다. 실수로 커밋된 [S1]를 방지하려면
.env파일이.gitignore에 추가되었는지 확인하세요. - 비밀 관리 구현: 전용 비밀 관리 도구 또는 볼트 서비스를 사용하여 런타임 [S1]에서 애플리케이션 환경에 자격 증명을 삽입합니다.
- 리포지토리 기록 제거: 비밀이 Git에 커밋된 경우
git-filter-repo또는 BFG Repo-Cleaner와 같은 도구를 사용하여 저장소 기록 [S2]의 모든 분기 및 태그에서 민감한 데이터를 영구적으로 제거합니다.
FixVibe가 이를 테스트하는 방법
FixVibe는 이제 라이브 스캔에 이를 포함합니다. 패시브 secrets.js-bundle-sweep는 동일한 출처의 JavaScript 번들을 다운로드하고 알려진 API 키, 토큰 및 자격 증명 패턴을 엔트로피 및 자리 표시자 게이트와 일치시킵니다. 관련 라이브 검사는 브라우저 스토리지, 소스 맵, 인증 및 BaaS 클라이언트 번들, GitHub 저장소 소스 패턴을 검사합니다. Git 기록 재작성은 여전히 수정 단계입니다. FixVibe의 라이브 보도는 배송된 자산, 브라우저 스토리지 및 현재 저장소 콘텐츠에 존재하는 비밀에 중점을 둡니다.
