FixVibe
Covered by FixVibehigh

API 키 유출: 최신 웹 앱의 위험 및 해결 방법

프런트엔드 코드 또는 저장소 기록에 하드 코딩된 비밀을 사용하면 공격자가 서비스를 가장하고 개인 데이터에 액세스하여 비용을 발생시킬 수 있습니다. 이 문서에서는 비밀 유출의 위험과 정리 및 예방에 필요한 단계를 다룹니다.

CWE-798

영향

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의 라이브 보도는 배송된 자산, 브라우저 스토리지 및 현재 저장소 콘텐츠에 존재하는 비밀에 중점을 둡니다.