백업 파일은 복구 후보일 뿐 복구 성공의 증거가 아닙니다. 다른 권한 있는 담당자가 장애 난 시스템이나 한 사람의 노트북에 의존하지 않고 깨끗한 환경에 홈페이지를 복원하고 검증한 뒤 롤백할 수 있어야 합니다.

무엇을 복구해야 하는지 정의합니다

계층 백업 증거 복원 테스트
코드 저장소와 태그된 릴리스 새 복제본에서 예상 산출물 빌드
콘텐츠 CMS 내보내기 또는 원본 파일 페이지·메타·내부 링크 복구
DB 버전이 있는 암호화 덤프 스키마와 비민감 표본 복원
자산 객체 저장소·미디어 사본 참조 이미지와 다운로드 로드
설정 변수와 공급자 설정 문서 숨은 로컬 파일 없이 새 환경 실행
DNS·도메인 영역 내보내기와 등록기관 목록 권한자가 레코드를 안전하게 재구성
자격증명 승인된 보관소와 복구 담당자 두 명 이상이 필요한 시스템 접근

운영 비밀값을 백업 압축 파일이나 보고서에 넣지 않습니다. 이름과 승인된 복구 위치만 기록하고 비밀 관리자를 통해 주입합니다.

가장 작은 의미 있는 훈련을 실행합니다

  1. 복구할 릴리스와 목표를 정합니다.
  2. 운영 환경을 덮어쓸 수 없는 격리 대상을 만듭니다.
  3. 문서화된 원본으로 코드, 콘텐츠, DB, 자산, 설정을 복원합니다.
  4. 대표 페이지, 폼, 리디렉션, canonical, 메일과 접근 제어를 확인합니다.
  5. 시작·사용 가능 시각, 복원 시점, 실패, 수작업을 기록합니다.
  6. 임시 환경을 삭제하거나 보호합니다.
  7. 모든 결함에 담당자와 기한을 배정합니다.

NHN Cloud 랜섬웨어 대응 가이드의 29쪽은 백업 후 복원 테스트와 절차 문서화를 권고합니다. CISA의 #StopRansomware Guide도 정기적인 백업 가용성·무결성 테스트와 오프라인 사본을 권고합니다. 두 원문을 2026년 9월 27일 확인했습니다.

훈련 기록 양식: 준비·성공·실패

복원 훈련은 결과를 남길 때만 증거가 됩니다. 아래 양식으로 기록하세요.

구분 남길 항목
준비 대상 릴리스, 격리 환경, 사용한 원본 백업, 시작 시각
성공 복원된 파일 목록, 무결성 확인 방식, 완료 시각, 걸린 시간
실패·미확인 누락 파일·의존성, 수작업이 필요했던 지점, 재시도 여부

첨부물을 함께 두었습니다. 복원 실행 스크립트는 node restore-demo.mjs로 단독 실행하는 예시이고, 실행 결과 파일은 아래 훈련의 결과를 기록한 파일이며, 복원 로그 워크시트는 각 조직이 직접 채우는 빈 운영 양식입니다.

로컬 파일 복원 훈련(합성 데이터, 파일 계층 한정)

2026년 9월 27일 Node.js v24.15.0에서 아래 절차를 실행했습니다. 실제 운영 데이터·네트워크·자격증명은 사용하지 않았고, 이 실행이 만든 임시 폴더만 정리했습니다.

  1. 텍스트 파일 세 개를 생성합니다: index.html(내부 링크 포함), guide.txt, config.example.json.
  2. 백업으로 복사한 뒤 원본 픽스처를 제거합니다.
  3. 다른 폴더로 복원합니다.
  4. 파일별 SHA-256 매니페스트를 비교하고, index.html의 링크 대상이 가리키는 내용이 실제로 존재하는지 확인합니다.
  5. 파일 하나를 의도적으로 수정·삭제해 불일치가 탐지되는지 확인합니다.

실행 결과: 원본 없이 백업에서 복원한 파일 3개의 SHA-256 대조와 링크 대상 확인이 통과했습니다. 별도로 파일 변조와 누락을 각각 감지하는 검사도 통과했습니다. 세 결과와 기준 해시는 위 JSON에 남겼습니다.

이 훈련은 파일 복사·해시 대조·링크 대상 존재 여부만 다룹니다. 데이터베이스, DNS, HTTP 서버, 인증, 메일, 배포, RTO/RPO, 이미지·자산 무결성은 검증 대상이 아닙니다. 첨부한 결과 파일은 이 파일 계층 훈련의 산출물일 뿐이며, 자산·이미지·DB가 테스트되었다는 뜻이 아닙니다. 이 결과를 운영 홈페이지의 “복구 검증 완료”로 해석해서는 안 됩니다.

무결성뿐 아니라 독립성을 시험합니다

암호화 키, DNS 계정, 패키지 저장소, 빌드 설명이 같은 업체와 함께 사라지면 정상 압축 파일도 쓸 수 없습니다.

  • 복구 담당자가 둘 이상인가?
  • 백업 자격증명이 운영 자격증명과 분리됐는가?
  • 주 계정 삭제나 침해 후에도 사본이 남는가?
  • 실행 버전과 의존성이 고정됐는가?
  • 복구 중 도메인과 호스팅을 갱신할 수 있는가?
  • 허용 가능한 최근 데이터 시점이 정해졌는가?

허용 가능한 데이터 손실 시점과 허용 가능한 중단 시간을 사업 결정으로 적습니다. 콘텐츠 갱신이 드문 사이트와 거래 서비스가 같은 답을 가져서는 안 됩니다.

보고서에는 테스트한 사본, 환경, 담당자, 시간, 복원 시점, 통과 항목, 결함, 다음 훈련일을 남깁니다. 내려받기나 압축 해제만 했다면 “복구 검증 완료”라고 쓰지 않습니다.