.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가 이를 자동으로 점검합니다.
블로그 글
가짜 AI 크롤러가 .env 파일을 노리고 있습니다. 내 앱을 확인하는 방법
자격 증명 스캐너가 AI 크롤러의 이름을 빌려 허용 목록을 통과하고, 특정 파일 하나를 요청하고 있습니다. 바로 여러분의 .env입니다. 내 파일에 접근할 수 있는지 확인하는 방법과 막는 방법을 알아봅니다.
Railway 침해 사고: 다운타임 없이 앱 시크릿을 교체하는 방법
공격자들이 AI 및 플랫폼 API 키를 노리자 Railway는 모든 사용자에게 환경 변수를 교체하라고 안내했습니다. 내 노출 여부를 확인하는 방법, 앱을 멈추지 않고 모든 것을 교체하는 방법, 다음 침해의 타격을 줄이는 방법을 정리했습니다.
PHP2Shell이 악용되고 있습니다: 내 앱이 노출됐는지 확인하는 방법
PHP 자체의 치명적인 버그 2개가 단 며칠 만에 ‘패치 공개’에서 ‘실제 악용’ 단계로 넘어갔습니다. 운영 중인 서비스 중 영향을 받는 버전이 있는지 확인하는 방법과 오늘 해야 할 일을 정리했습니다.
AI로 만든 앱을 출시하시나요? 출시 전에 이 7가지를 확인하세요
AI 코딩 도구는 ‘출시해도 안전한지’가 아니라 ‘작동하는지’에 최적화되어 있습니다. 갓 출시된 앱에서 저희가 가장 먼저 점검하는 7가지 문제와 각각의 해결책입니다.