홈/뉴스/게시글
Community

뉴스

디코랩 커뮤니티의 새 글을 확인하세요.

보안

환경설정 파일 노출, 설정 파일이 웹에서 열리는지 점검하는 5단계

디코랩디코랩 ·
09-08

환경설정 파일 노출은 설정 파일을 웹 공개 폴더 밖에 두고 웹 서버에서 접근을 막아 예방합니다. 이 글에서는 DB 비밀번호와 API 키가 담긴 설정 파일이 웹에서 열리는지 운영자가 확인하는 5단계와 발견했을 때 할 일을 정리했습니다.

설정 파일 노출 점검 5단계라는 제목과 문서 아이콘
설정 파일은 방문자가 열 수 없는 위치에 둡니다.

환경설정 파일에는 무엇이 들어 있나

홈페이지 프로그램은 데이터베이스 주소와 비밀번호, 메일 발송 계정, 결제나 알림 서비스의 API 키, 암호화에 쓰는 비밀 값을 설정 파일에 모아 둡니다. 프로그램마다 이름은 다르지만 .env 파일이나 config 폴더 안의 파일처럼 한두 곳에 모여 있는 것이 보통입니다.

이 파일이 웹 주소로 열리면 홈페이지를 거치지 않고 데이터베이스에 접근하거나 외부 서비스를 우리 이름으로 쓸 수 있게 됩니다. 설정 파일 하나가 열리면 여러 계정의 비밀번호가 한꺼번에 노출되는 셈입니다. Laravel 공식 설명서도 환경설정 문서에서 .env 파일에 민감한 자격 증명이 담기므로 소스 저장소에 올리지 말라고 안내하고, 운영 환경에서는 디버그 모드를 꺼야 설정 값이 노출되지 않는다고 설명합니다.

설정 파일이 노출되는 흔한 원인

  • 프로그램 전체를 웹 공개 폴더에 올려 설정 파일도 같은 폴더에 놓였다.
  • 서버를 옮기면서 웹 서버의 접근 차단 설정이 빠졌다.
  • 설정 파일을 고치기 전에 복사본을 다른 이름으로 남겨 두었다.
  • 디버그 모드가 켜져 오류 화면에 설정 값이 함께 표시된다.

환경설정 파일 노출 점검 5단계

아래 순서는 운영자가 자기 사이트를 확인하는 방법입니다. 다른 사람의 사이트에 같은 확인을 하지 않으며, 점검은 우리 사이트에만 합니다.

  1. 설정 파일 위치 확인: 사용하는 홈페이지 프로그램의 설정 파일 이름과 서버 안 위치를 개발자나 유지보수 업체에 확인합니다.
  2. 공개 폴더 구조 확인: 방문자에게 보이는 웹 공개 폴더가 어디인지 확인하고, 설정 파일이 그 안에 있는지 봅니다.
  3. 브라우저로 열어 보기: 우리 사이트 주소 뒤에 설정 파일 경로를 붙여 열어 보고, 내용이 보이지 않고 접근 거부나 없는 페이지로 나오는지 확인합니다.
  4. 복사본 찾기: 설정 파일 이름에 날짜나 old, bak 같은 말을 붙인 복사본이 공개 폴더에 남아 있지 않은지 파일 목록을 확인합니다.
  5. 오류 화면 확인: 없는 주소를 열었을 때 오류 화면에 설정 값이나 서버 경로가 나오지 않는지 확인합니다.
설정 파일 위치 확인부터 오류 화면 확인까지 환경설정 파일 노출 점검 5단계 도식
위치, 공개 폴더, 브라우저 확인, 복사본, 오류 화면 순서로 점검합니다.

그림의 세 번째 단계에서 내용이 한 줄이라도 보이면 아래 「설정 파일이 열렸을 때 할 일」로 바로 넘어갑니다. 복사본 가운데 압축 파일이나 데이터베이스 백업 파일이 남아 있는지는 백업 파일 노출 점검, 웹 폴더의 .zip·.sql·.git 확인법에서 자세히 다뤘고, 오류 화면 정리는 오류 메시지 노출, 디버그 모드 끄고 상세 오류 감추는 5단계를 참고하세요.

설정 파일 보호 방법 비교

아래 표는 설정 파일을 보호하는 세 가지 방법을 효과와 주의할 점으로 비교한 것입니다. 가능하면 첫 번째 방법을 기본으로 하고 두 번째를 함께 둡니다.

방법내용효과주의할 점
공개 폴더 밖에 두기웹 공개 폴더 바깥에 설정 파일 배치주소로 열 수 있는 경로 자체가 없음호스팅 구조에 따라 폴더 조정 필요
웹 서버에서 차단설정 파일 이름·숨김 파일 접근 거부공개 폴더 안에 있어도 열리지 않음서버 이전 때 설정이 빠지기 쉬움
파일 권한 좁히기서버 안에서 읽을 수 있는 계정 제한다른 계정의 열람 방지웹 주소 노출은 막지 못함

세 번째 방법은 서버 안의 다른 계정을 막는 장치이므로 웹 노출 대책을 대신하지 못합니다. 서버 계정 정리는 서버 계정 관리 글에서 다룹니다.

설정 파일이 열렸을 때 할 일

설정 파일이 웹에서 열렸다면 막는 것만으로 끝나지 않습니다. 그 사이 누군가 내용을 가져갔을 수 있다고 보고 아래 항목을 처리합니다.

  • 웹 서버 설정이나 파일 위치를 바꿔 즉시 접근을 막는다.
  • 설정 파일에 든 DB 비밀번호, 메일 계정, API 키를 모두 교체한다.
  • 접속 기록에서 그 파일을 열어 본 기록이 있는지 확인한다.
  • 데이터베이스에 모르는 접속이나 변경이 없었는지 살펴본다.
  • 개인정보 접근 정황이 있으면 신고 기준을 검토한다.
즉시 차단, 비밀번호와 키 교체, 접속 기록 확인, DB 변경 확인, 신고 검토 다섯 가지 대응 항목 체크리스트
설정 파일이 열렸을 때 처리할 다섯 가지

체크리스트의 두 번째 항목이 가장 중요합니다. 키를 교체하는 순서는 API 키 관리 글에 정리했습니다.

디코랩이 돕는 방식

디코랩은 웹사이트 취약점 점검 서비스를 제공하며, 설정 파일처럼 웹에서 열리면 안 되는 파일의 노출 여부도 점검 범위로 상담할 수 있습니다. 점검 방식은 웹사이트 취약점 점검 서비스에서 확인할 수 있습니다.

자주 묻는 질문

브라우저에서 안 열리면 안전한 건가요?

대표 경로가 막혀 있다는 뜻이지만, 복사본이나 다른 이름의 설정 파일이 남아 있을 수 있습니다. 공개 폴더의 파일 목록을 함께 확인하는 것이 좋습니다.

공유 호스팅에서도 공개 폴더 밖에 둘 수 있나요?

호스팅 구조에 따라 다릅니다. 공개 폴더 바깥에 쓸 수 있는 폴더가 없다면 웹 서버 차단 설정을 반드시 두고, 업체에 지원 여부를 문의하세요.

설정 파일을 암호화하면 되지 않나요?

일부 프로그램은 설정 파일 암호화를 지원하지만, 복호화 키를 어디에 두는지가 다시 문제가 됩니다. 웹에서 열리지 않게 두는 기본 조치를 먼저 하세요.

점검은 얼마나 자주 하면 되나요?

서버를 옮기거나 홈페이지 프로그램을 업데이트한 직후, 그리고 분기마다 한 번씩 확인하는 것을 권합니다. 특히 서버 이전 뒤에는 웹 서버의 차단 설정이 빠지는 일이 잦으므로 첫날 바로 확인합니다.

설정 파일 복사본은 어디에 두어야 하나요?

수정 전 복사본이 필요하다면 웹 공개 폴더 밖이나 서버 바깥의 안전한 보관 장소에 둡니다. 작업이 끝나면 필요 없는 복사본은 지우고, 보관할 것은 백업 절차에 포함합니다.

우리 사이트의 설정 파일이 웹에서 열리는지 확인이 필요하다면 디코랩 프로젝트 문의로 사이트 주소를 알려 주세요.

목록

댓글0

댓글 작성 권한이 없습니다