.env 파일 노출: 공격자가 시크릿을 찾아내는 방법
.env 파일에는 데이터베이스 비밀번호, API 키, 서명 시크릿이 들어 있습니다. /.env, /.env.production, 또는 /.env.backup 같은 백업으로 웹에서 접근 가능하면, 누구나 이를 다운로드해 서비스를 장악할 수 있습니다.
무엇인가요
환경 파일은 서버에 남아 클라이언트에 절대 제공되어서는 안 됩니다. 잘못 설정된 정적 핸들러, 웹 루트에 남은 사본, 또는 dotfile을 제공하는 프레임워크가 이를 노출할 수 있습니다.
공격자는 추측하지 않습니다 — 수백만 호스트를 대상으로 /.env와 수십 가지 변형을 지속적으로 요청하는 자동 스캔을 돌립니다. 접근 가능한 파일은 몇 시간 안에 발견됩니다.
왜 중요한가요
이 파일에는 흔히 프로덕션 데이터베이스 URL, Stripe 시크릿 키, JWT 서명 시크릿, 클라우드 자격 증명이 들어 있습니다. 한 번의 유출이 전체 데이터 탈취, 부정 결제, 계정 탈취로 이어질 수 있습니다.
시크릿은 교체되기 전까지 유효하므로, 파일에 담긴 모든 것을 교체하지 않는 한 파일을 제거한 뒤에도 피해가 계속됩니다.
고치는 방법
웹 서버나 프록시 설정에서 .env 및 기타 dotfile에 대한 접근을 거부하세요.
location ~ /\.(?!well-known).* {
deny all;
return 404;
}서버가 정적으로 제공하는 디렉터리 밖에 설정을 저장하고, 빌드가 .env 파일을 게시 출력에 복사하지 않는지 확인하세요.
파일이 한 번이라도 접근 가능했다면 그 안의 모든 시크릿을 유출된 것으로 간주하고 데이터베이스 비밀번호, API 키, 토큰을 즉시 교체하세요.
자주 묻는 질문
파일을 제거했는데 — 안전한가요?
시크릿을 교체하기 전까지는 아닙니다. 파일을 다운로드한 사람은 여러분이 변경하기 전까지 여전히 유효한 자격 증명을 가지고 있습니다.
제 것이 노출됐는지 어떻게 알 수 있나요?
브라우저에서 https://yourdomain.com/.env를 요청하세요. 404 대신 KEY=value 줄이 보이면 노출된 것입니다. AppSafe가 이를 자동으로 점검합니다.