백업 파일 노출 점검, 웹 폴더의 .zip·.sql·.git 확인법
백업 파일 노출은 압축 백업, 데이터베이스 덤프, .git 폴더 같은 파일이 방문자가 접근할 수 있는 웹 폴더에 남아 있어 주소만 알면 누구나 내려받을 수 있는 상태를 말합니다. 이 글에서는 노출되기 쉬운 파일 종류, 운영자가 서버 안에서 점검하는 방법, 발견 시 조치를 정리했습니다.
백업 파일 노출이 위험한 이유
홈페이지 서버에는 방문자에게 보여 주는 파일을 두는 웹 폴더(문서 루트)가 있습니다. 이 폴더 안에 있는 파일은 화면에 링크가 없어도 주소만 맞으면 열리거나 내려받아질 수 있습니다. 작업 전에 잠깐 만든 압축 파일 하나가 사이트 전체의 설계도가 되는 셈입니다.
데이터베이스 덤프에 담긴 회원 정보
데이터베이스를 통째로 내보낸 파일에는 회원 정보, 문의 내용, 관리자 계정 정보가 그대로 들어 있습니다. 이런 파일이 외부에서 내려받아졌다면 해킹이 없었더라도 개인정보 유출로 이어질 수 있습니다.
설정 파일 사본과 소스 코드
설정 파일을 고치기 전에 이름 뒤에 .bak이나 .old를 붙여 복사해 두는 경우가 많습니다. 원래 설정 파일은 프로그램으로 실행되어 내용이 보이지 않지만, 이름이 바뀐 사본은 일반 텍스트처럼 열려 데이터베이스 접속 정보가 드러날 수 있습니다. 서버에서 직접 git을 쓰면 생기는 .git 폴더에는 소스 코드와 변경 이력이 함께 담깁니다.
웹 폴더에 남기 쉬운 파일 종류
아래 표는 웹 폴더에 남기 쉬운 파일 여섯 가지를 생기는 이유와 담길 수 있는 정보로 비교한 것입니다.
| 종류 | 흔한 형태 | 생기는 이유 | 담길 수 있는 정보 |
|---|---|---|---|
| 사이트 전체 압축 | .zip, .tar.gz | 서버 이전이나 작업 전 백업 | 소스 코드, 설정 파일 |
| 데이터베이스 덤프 | .sql, .sql.gz | 데이터베이스 백업·이전 | 회원 정보, 관리자 계정 |
| 설정 파일 사본 | .bak, .old, .orig | 수정 전 복사 | 데이터베이스 접속 정보 |
| 버전 관리 폴더 | .git | 서버에서 직접 git 사용 | 소스 코드, 변경 이력 |
| 환경 설정 파일 | .env | 프레임워크 설정 | 데이터베이스·메일 비밀번호, 키 |
| 점검용 파일 | 서버 정보 출력 페이지, 테스트 페이지 | 설치·점검 뒤 방치 | 서버 환경, 프로그램 버전 |
그림의 여섯 가지 가운데 .git 폴더와 .env 파일은 이름이 점으로 시작하는 숨김 파일이라, 파일 관리 화면에서 숨김 파일 표시를 켜지 않으면 보이지 않습니다. 보이지 않는다고 없는 것이 아니므로 점검할 때는 숨김 파일 표시부터 켭니다.
운영자가 서버 안에서 점검하는 방법
점검은 권한이 있는 우리 사이트를 대상으로, 서버 안쪽에서 파일 목록을 확인하는 방식으로 합니다. 호스팅 관리 화면의 파일 관리자나 SFTP 프로그램이면 충분합니다.
- 문서 루트 확인: 호스팅 관리 화면이나 호스팅 업체 안내에서 웹 폴더 위치를 확인합니다.
- 숨김 파일 표시: 파일 관리자나 SFTP 프로그램에서 숨김 파일 표시를 켭니다.
- 확장자로 찾기: 웹 폴더와 그 아래 폴더에서 .zip, .tar.gz, .sql, .bak, .old 같은 파일을 찾고, 최근 수정일 순으로 정렬해 낯선 파일도 함께 봅니다.
- 숨김 폴더·파일 확인: .git 폴더와 .env 파일이 웹 폴더 안에 있는지 확인합니다.
- 정리: 필요 없는 파일은 지우고, 보관해야 하는 백업은 웹 폴더 밖이나 서버 밖 저장소로 옮깁니다.
- 접근 차단 설정: 숨김 파일과 백업 확장자에 대한 웹 접근을 막는 설정을 호스팅이나 유지보수 업체에 요청합니다.
- 정기 점검: 서버 이전, 업데이트, 대규모 수정 같은 작업이 끝날 때마다 같은 점검을 반복합니다.
그림의 1~5단계는 운영자가 직접 할 수 있고, 6단계는 웹서버 설정을 다룰 수 있는 사람이 맡아야 합니다. 파일을 정리하는 것만으로는 다음 작업 때 같은 파일이 다시 생길 수 있으므로, 접근 차단 설정까지 해 두어야 재발을 막을 수 있습니다.
노출된 파일을 발견했을 때 할 일
지우기 전에 기록 남기기
파일 이름, 위치, 만들어진 날짜를 먼저 적어 둡니다. 그 파일이 외부에서 내려받아진 적이 있는지는 웹서버 접속 기록으로 확인할 수 있으므로, 기록이 지워지지 않도록 호스팅 업체에 보관을 요청합니다.
비밀번호와 키 교체
노출된 파일에 데이터베이스 비밀번호, 메일 계정, 외부 서비스 키가 들어 있었다면 외부 접근 흔적이 없더라도 모두 바꾸는 것이 안전합니다. 소스 코드가 노출되었다면 그 안에 적힌 비밀값도 함께 확인합니다.
개인정보가 들어 있었다면
회원 정보가 담긴 파일이 외부에서 내려받아진 흔적이 있다면 개인정보 유출에 해당하는지, 통지와 신고 대상인지 확인해야 합니다. 신고 기준과 방법은 KISA 개인정보 침해사고 신고 및 상담 안내에서 확인할 수 있고, 판단이 어렵다면 KISA 상담이나 전문가의 도움을 받으세요.
다시 생기지 않게 하는 운영 습관
- 백업은 처음부터 웹 폴더 밖이나 서버 밖에 만든다.
- 서버에는 배포에 필요한 파일만 올리고, .git 폴더는 웹 폴더에 두지 않는다.
- 작업용 임시 파일과 점검용 페이지는 작업이 끝나면 바로 지운다.
- 서버 작업을 외부 업체에 맡겼다면 작업 후 남은 파일 정리를 요청 범위에 넣는다.
백업을 어디에 어떻게 보관할지는 홈페이지 백업 방법에서, 이 점검을 다른 항목과 묶어 정기적으로 하는 방법은 홈페이지 보안 점검 체크리스트에서 정리했습니다.
디코랩이 돕는 방식
디코랩은 운영 중인 사이트의 수정·오류·개선 요청을 받아 처리합니다. 웹 폴더에 남은 백업 파일 정리나 접근 차단 설정이 필요하다면 유지보수 접수 게시판에 비밀글로 사이트 주소와 호스팅 환경을 남겨 주세요.
자주 묻는 질문
파일 이름을 어렵게 지으면 괜찮지 않나요?
이름을 추측하기 어렵게 할 뿐 접근을 막는 것은 아닙니다. 백업 파일은 웹 폴더 밖에 두고, 웹 폴더에는 접근 차단 설정을 하는 것이 원칙입니다.
호스팅 업체의 자동 백업도 노출될 수 있나요?
호스팅 업체의 자동 백업은 보통 웹 폴더와 분리된 곳에 보관되지만, 방식은 업체마다 다릅니다. 백업이 어디에 저장되는지 호스팅 업체 안내나 관리 화면에서 확인해 두세요.
.git 폴더는 왜 서버에 생기나요?
소스 코드를 서버에서 직접 git으로 내려받거나 갱신하면 웹 폴더 안에 .git 폴더가 함께 생깁니다. 이 방식을 쓴다면 웹 폴더를 따로 두거나 .git 접근을 막는 설정이 필요합니다.
노출된 파일이 검색 결과에 나왔다면 어떻게 하나요?
먼저 서버에서 파일을 지우거나 옮겨 더는 열리지 않게 합니다. 그다음 Google Search Console 같은 검색엔진 관리 도구에서 해당 주소의 삭제를 요청하고, 위의 기록·교체·확인 절차를 함께 진행합니다.
우리 사이트 웹 폴더에 위험한 파일이 남아 있는지 점검이 필요하다면 사이트 주소와 호스팅 정보를 적어 디코랩 프로젝트 문의로 보내 주세요.
댓글0
댓글 작성 권한이 없습니다