홈랩의 감시 봇(Watchman)이 정기 점검 결과를 보내왔다.

🛡 Watchman 정기 점검 (알람 없음)
🟡 랜섬웨어 자세 점검: 부분 미확인 (정상 4 · 결함 0 · 미확인 2)
   ⚪ [I1] 백업 자격증명 범위: 클러스터 안에 있으나 삭제 권한 범위를 확인하지 못했다
   ⚪ [I2] 오프사이트 버킷 잠금: 조회 권한이 없어 잠금 유무를 확인하지 못했다 — 없다고 단정하지 않는다
   🟢 [I3] 백업 암호화 키: 공개 기본값이 아니다 (값은 출력하지 않음)
   🟢 [I4] 노드 원격데스크톱 리스너: 6개 노드 전부 리스너 없음
   🟢 [I5] 백업 신선도: hourly-critical-… · 3.9시간 전 (한도 24)
   🟢 [I6] 가드 호출 실패율: 실패율 15% (413/2783)
   ※ 전 항목 read-only 판정이다 — 이 점검은 아무것도 고치지 않는다.

“알람 없음” 이라 그냥 넘기기 쉬운 보고서다. 그런데 이 짧은 표에는 랜섬웨어 대비에서 중요한 질문이 거의 다 들어 있다. 그리고 가장 중요한 두 줄은 초록이 아니라 회색(⚪ 미확인) 이다.

이 글은 각 항목이 무엇을 보는지, 왜 중요한지, 그리고 “확인 못 함” 을 어떻게 다뤄야 하는지를 정리한다.

0. 왜 랜섬웨어 점검은 백업에서 시작하나

미국 CISA 의 #StopRansomware 가이드는 첫 권고로 백업을 든다.1

“Maintain offline, encrypted backups of critical data, and regularly test the availability and integrity of backups in a disaster recovery scenario… It is important that backups are maintained offline, as many ransomware variants attempt to find and subsequently delete or encrypt accessible backups to make restoration impossible unless the ransom is paid.”

핵심은 마지막 문장이다. 공격자는 본 데이터보다 먼저 백업을 노린다. 복구 수단을 없애야 돈을 받을 수 있기 때문이다. 그래서 랜섬웨어 점검의 질문은 “백업이 있나?” 가 아니라 “공격자가 백업을 지울 수 있나?” 다. 위 점검표의 I1·I2 가 정확히 이 질문이다.

1. 항목별로 읽기

항목 묻는 것 이번 결과
I1 백업 자격증명 범위 백업용 자격증명을 훔치면 백업을 지울 수도 있나? ⚪ 미확인
I2 오프사이트 버킷 잠금 바깥 저장소의 백업이 덮어쓰기·삭제 불가(WORM) 인가? ⚪ 미확인
I3 백업 암호화 키 키가 누구나 아는 기본값은 아닌가? 🟢
I4 원격데스크톱 리스너 흔한 침입 통로가 열려 있지 않은가? 🟢
I5 백업 신선도 마지막 백업이 얼마나 최근인가? 🟢 3.9시간
I6 가드 호출 실패율 보호 장치 호출이 얼마나 실패하나? 🟢 15%

I1 — 백업 자격증명의 삭제 권한

백업 도구는 저장소에 쓰기 권한이 필요하다. 그런데 같은 자격증명에 삭제 권한까지 들어 있으면, 클러스터를 장악한 공격자가 그 자격증명으로 백업까지 지울 수 있다. 백업을 “쓰는” 쪽과 “지우는·보존 기간을 바꾸는” 쪽의 권한을 나누는 게 최소 권한 원칙의 적용이다.

이번 점검은 자격증명이 클러스터 안에 있다는 건 확인했지만, 그 권한 범위는 확인하지 못했다. 점검기가 권한을 시험해 보려면 실제로 지워 봐야 하는데, 이 점검은 read-only 라 그럴 수 없다. 정상적인 한계다.

I2 — 오프사이트 버킷 잠금 (WORM)

I1 이 뚫려도 버틸 수 있게 하는 장치가 객체 잠금이다. 예를 들어 AWS S3 Object Lock 은 이렇게 설명된다.2

“Object Lock uses a write-once-read-many (WORM) model to store objects.”

같은 문서는 두 가지 모드를 구분한다. Compliance 모드에서는 “a protected object version can’t be overwritten or deleted by any user, including the root user” 이고, Governance 모드에서는 특별 권한이 있는 사용자는 보존 설정을 바꾸거나 삭제할 수 있다.2 랜섬웨어 대비 관점에서 두 모드의 차이는 크다. Governance 는 “그 특별 권한을 가진 자격증명이 털리면” 다시 I1 문제로 돌아간다.

다만 CISA 는 불변 저장소에 대해 주의도 단다.1

“Use immutable storage with caution as it does not meet compliance criteria for certain regulations and misconfiguration can impose significant cost.”

잘못 설정하면 지울 수 없는 데이터가 쌓여 비용이 된다. 그래서 잠금은 “켜고 끝” 이 아니라 보존 기간 설계와 같이 가야 한다.

이번 점검의 문구가 좋다. “조회 권한이 없어 잠금 유무를 확인하지 못했다 — 없다고 단정하지 않는다.” 이게 바로 다음 절의 주제다.

I3 — 암호화 키가 기본값이 아닌가

CISA 권고의 “encrypted backups” 에 해당한다. 설치 예제나 기본 설정의 키 값을 그대로 쓰면, 그 값을 아는 누구에게나 암호화는 형식에 불과하다. 점검기가 값을 출력하지 않고 기본값 여부만 판정한 것도 올바른 처리다. 점검 보고서 자체가 유출 경로가 되면 안 된다.

I4 — 원격데스크톱 리스너

CISA 가이드는 쓰지 않는 포트와 프로토콜을 끄라며 예시로 RDP(TCP 3389)를 직접 든다.1 6개 노드 모두 리스너가 없다는 건 흔한 초기 침입 통로 하나가 닫혀 있다는 뜻이다.

I5 — 백업 신선도, 그리고 빠진 질문

마지막 백업이 3.9시간 전이고 한도는 24시간이다. 좋다. 그런데 CISA 권고에는 “regularly test the availability and integrity of backups” 가 같이 있다.1 신선도는 “백업이 만들어졌다” 를 말할 뿐, “복구된다” 는 말하지 않는다. 이 점검표에 하나를 더한다면 최근 복구 시험의 날짜와 결과다.

I6 — 실패율 15% 가 왜 초록인가

호출 2,783회 중 413회 실패(15%)가 초록으로 표시됐다. 이 숫자 자체가 좋은지 나쁜지는 그 장치가 무엇이고 실패가 무엇을 뜻하는지(재시도로 흡수되는 일시 오류인지, 보호가 실제로 빠지는 것인지)에 따라 다르다. 보고서만 읽는 사람은 그걸 알 수 없다. 임계값을 같이 찍어 주는 것(예: “15% — 한도 20%”)만으로 이 줄은 훨씬 읽기 쉬워진다. I5 가 “한도 24” 를 같이 보여주듯이.

2. “확인 못 함” 을 다루는 법

이 점검표에서 가장 잘한 점은 판정을 셋으로 나눈 것이다.

판정 뜻 하지 말아야 할 해석
🟢 정상 확인했고 문제없음 —
🔴 결함 확인했고 문제 있음 —
⚪ 미확인 확인할 수단·권한이 없었음 “정상” 으로도 “결함” 으로도 접지 않는다

점검이 실패했을 때 흔히 일어나는 사고는 두 방향이다.

  • 미확인을 정상으로 접는다 → 잠금이 실제로 없어도 대시보드는 초록. 가장 위험하다.
  • 미확인을 결함으로 접는다 → 매번 빨간불이 떠서 사람들이 알람을 무시하게 된다.

그래서 미확인은 그 자체로 할 일이 된다. 판정을 바꾸려면 “누가, 어떤 권한으로, 무엇을 보면 되는가” 를 적어 두는 것이다.

항목 미확인을 해소하는 방법 (read-only 유지)
I1 자격증명에 연결된 정책 문서를 읽을 권한을 점검기에 준다. 실제로 지워 보지 않고도 삭제 권한 유무를 판정할 수 있다
I2 버킷의 잠금 설정을 읽는 권한만 점검기에 준다. 쓰기·삭제 권한은 주지 않는다

여기서 균형이 중요하다. 점검기에 권한을 많이 줄수록 점검기 자체가 공격 대상이 된다. 그래서 필요한 건 “더 많은 권한” 이 아니라 설정을 읽는 권한, 딱 그만큼이다.

3. 체크리스트

  1. 백업 자격증명에서 쓰기와 삭제·보존변경 권한을 분리한다.
  2. 오프사이트 백업에 객체 잠금(WORM) 을 건다. 모드와 보존 기간을 같이 설계한다.
  3. 백업 암호화 키는 기본값 금지, 점검 보고서에도 값을 남기지 않는다.
  4. RDP 같은 원격 접속 리스너는 쓰지 않으면 끈다.
  5. 신선도와 함께 복구 시험의 날짜·결과를 점검표에 넣는다.
  6. 모든 숫자에 임계값을 같이 표시한다.
  7. 미확인은 해소 방법과 함께 기록하고, 점검기에는 설정 읽기 권한만 준다.

맺으며 — 회색을 회색으로 두는 용기

대시보드는 초록을 좋아한다. 그래서 확인하지 못한 항목을 조용히 초록으로 칠하는 일이 생각보다 흔하다. 이번 점검표는 그러지 않았다. “없다고 단정하지 않는다” 는 한 줄이 그 태도를 보여준다.

랜섬웨어 대비에서 회색 두 줄(I1, I2)은 공교롭게도 가장 중요한 두 줄이다. “공격자가 백업을 지울 수 있나?” 라는 질문에 아직 답하지 못했다는 뜻이기 때문이다. 다음 할 일은 분명하다. 점검기가 그 답을 읽을 수 있게 해 주는 것. 고칠 수 있게 해 주는 게 아니라.


References

  1. CISA, #StopRansomware Guide (September 2023). https://www.cisa.gov/stopransomware/ransomware-guide ↩ ↩2 ↩3 ↩4

  2. Amazon Web Services, Locking objects with Object Lock — Amazon S3 User Guide. https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html ↩ ↩2