운영 실전
소규모 플랫폼을 위한 위협 모델링
실제로 누가 어떤 순서로 서비스를 노릴 수 있는지, 그리고 그중 몇 가지가 호스팅 결정의 영향을 받는지 살펴봅니다. 대부분은 영향을 받지 않으며, 어느 것이 그런지 아는 것이 핵심입니다.
13분 읽기 2026년 5월 2일 공개 1개월 전 확인됨
위협 모델링은 아무도 읽지 않는 다이어그램으로 가득한 대기업식 의례라는 평판이 있습니다. 하지만 꼭 그럴 필요는 없습니다. 소규모 플랫폼에서 쓸모 있는 버전은 한 시간이면 끝나고, 순위가 매겨진 목록을 만들어 내며, 가장 중요한 결과물은 인프라 선택이 실제로 어떤 위험에 영향을 미치는지 아는 것입니다 — 대부분의 경우 정직한 답은 '영향 없음'이기 때문입니다.
완전함보다 순서가 더 중요합니다
전형적인 실패 사례는 잘못될 수 있는 모든 것을 나열한 긴 목록을 만들고, 그 모든 항목을 똑같이 시급하게 다루는 것입니다. 그러면 결국 아무것도 하지 못하게 되고, 그런데도 결국 감에 의존한 결정을 내리게 됩니다. 순위를 매긴 일곱 개짜리 목록이 마흔 개짜리 완전한 목록보다 더 가치가 있습니다. 어차피 처음 세 가지에만 대응하고 나머지에는 손도 대지 못하기 때문입니다.
시나리오가 얼마나 위협적으로 들리는지가 아니라, 가능성 × 발생 시 비용을 기준으로 순위를 매기십시오. 국가 차원의 위협 주체는 어떤 목록에서든 가장 무섭게 느껴지는 항목이지만, 거의 모든 소규모 플랫폼에서는 가능성이 가장 낮은 항목이기도 합니다 — 반면 퇴사한 외주 인력에게서 유출된 자격 증명은 평범하고, 매우 흔하며, 대개 치명적입니다.
가능성 순으로 정리한 일곱 가지 위협 주체
| 위협 주체 | 가능성 | 호스팅의 도움 여부 | 실제로 완화하는 요소 |
|---|---|---|---|
| 운이 나쁜 날의 자기 자신 | 확실 | 아니요 | 실제로 복구까지 해본 백업, 그리고 인증이나 DNS를 건드리는 모든 작업에 대한 변경 절차입니다. 최악의 장애를 일으킬 가능성이 가장 큰 원인은 바로 자기 자신입니다. |
| 자동화된 스캐닝 | 상시 | 아니요 | 패치 적용, 비밀번호 인증 미사용, 기본 자격 증명 미사용입니다. 이는 배경 방사선과 같아서 특정 대상을 겨냥한 것이 아니며, 결코 멈추지 않습니다. |
| 자격 증명 유출 | 높음 | 아니요 | 하드웨어 기반 2단계 인증, 권한이 제한된 API 토큰, 그리고 누군가 퇴사한 분기가 아니라 바로 그날 접근 권한을 회수하는 것입니다. |
| 신고 양식을 제출하는 사람 | 높음 | 예 | 이것이야말로 호스팅의 사법 관할이 실제로 관련되는 유일한 항목입니다. 즉, 서면 연락만으로 서비스를 중단시킬 수 있는지 여부입니다. |
| 대용량 트래픽 공격 | 중간 | 부분적 | 업스트림 필터링입니다. 특히 자사를 보호하기 위해 널 라우팅으로 차단하는 대신 실제로 필터링을 수행하는 제공업체를 선택하는 것입니다. |
| 표적형 침입자 | 낮음 | 아니요 | 네트워크 분리, 최소 권한 원칙, 저장 데이터 암호화, 그리고 침입자가 수정할 수 없는 곳에 보관되는 로그입니다. |
| 국가 행위자 | 매우 낮음 | 부분적 | 사법 관할이 좌우하는 것은 법적 대응 경로이지 기술적 대응 경로가 아닙니다. 이것이 실제로 위협 모델에 포함된다면, 호스팅 요금제가 아니라 전문가의 조언을 구해야 합니다. |
호스팅 결정이 영향을 미치는 대상
일곱 가지 중 두 가지, 그리고 세 번째 하나는 부분적으로 해당합니다. 이 비율이야말로 이 작업에서 가장 유용한 결과물이며, 제공업체를 고르기 전에 이 작업을 먼저 해야 어떤 비교표보다도 더 많은 비용을 절약할 수 있는 이유입니다.
호스팅이 실제로 바꾸는 것: 법원 없이 신고만으로 서비스를 중단시킬 수 있는지, 그리고 전혀 알지 못하는 이유로 서비스를 종료할 수 있는 별개의 당사자가 몇 곳이나 되는지입니다.
호스팅이 부분적으로 바꾸는 것: 대용량 트래픽 공격이 어떻게 처리되는가입니다 — 업스트림에서 필터링되는지, 아니면 제공업체의 다른 고객을 보호하기 위해 널 라우팅으로 차단되는지입니다. 이 두 단어는 흔히 같은 의미로 혼용되지만 실제로는 정반대의 의미이므로, 어느 쪽인지 서면으로 확인해야 합니다.
호스팅이 전혀 바꾸지 못하는 것: 자신의 실수, 스캐닝, 자격 증명 유출, 이미 내부에 들어와 있는 침입자입니다. 일곱 가지 중 네 가지이며, 상위 세 가지도 여기에 포함됩니다.
한 시간짜리 버전
- 실제로 보유하고 있는 것을 나열합니다 (10분). 시스템이 아니라 데이터입니다. 사용자 이메일 주소, 결제 기록, 비공개 메시지, 업로드된 파일, 다른 서비스에 대한 자격 증명입니다. 잃어버리면 가장 곤란한 것과 유출되면 가장 곤란한 것을 각각 적어 보십시오. 이 둘은 좀처럼 같지 않습니다.
- 각각을 노리는 사람을 나열합니다 (10분). 구체적으로 적으십시오. "해커"는 위협 주체가 아니지만, "계정을 되팔기 위해 유출된 자격 증명을 사들이는 사람"은 위협 주체이며, 이는 서로 다른 방어책을 필요로 합니다.
- 가능성 × 비용을 기준으로 순위를 매깁니다 (10분). 각 항목이 얼마나 극적으로 들리는지는 무시하십시오. 평범한 항목들이 결국 우위를 차지합니다.
- 상위 세 가지에 대해 첫 한 시간을 적어 봅니다 (20분). 각각의 상황에서 처음 60분 동안 무엇을 할지입니다. 답할 수 없다면 그 자체가 결과물이며, 순위 그 자체보다 더 값진 발견입니다.
- 인프라 선택의 영향을 받는 항목을 표시합니다 (10분). 대개 상위 다섯 가지 중 두 가지입니다. 이제 호스팅 결정이 실제로 무엇을 사는 것인지 알게 됩니다.
일정에 따라서가 아니라 구조적인 변화가 있을 때 — 새로운 데이터 유형, 새로운 연동, 누군가의 퇴사 — 다시 진행하십시오. 달력에 따른 점검은 건너뛰기 쉽지만, 사건에 따른 점검은 눈앞에 분명한 이유가 있기 때문에 실제로 이루어집니다.
전체 작업을 무용지물로 만드는 세 가지 실수
흥미롭게 느껴지는 위협 주체만 모델링하는 것. 국가 차원의 역량을 상상하는 편이 공개 저장소에 유출된 API 토큰을 생각하는 것보다 재미있습니다. 그러나 주변 사람 거의 모두에게 실제로 벌어진 쪽은 후자입니다. 정직하게 순위를 매기면 평범한 항목이 이기는데, 그것이 바로 핵심입니다.
통제 수단과 결과를 혼동하는 것. 무엇을 막고 무엇을 막지 못하는지 말할 수 있기 전까지, "암호화를 사용합니다"는 완화책이 아닙니다. 가동 중인 서버의 전체 디스크 암호화는 디스크가 건물 밖으로 반출되는 상황은 막아 주지만, 이미 볼륨이 잠금 해제된 상태이기 때문에 실제 운영 중인 머신에서 셸을 확보한 침입자에게는 아무런 효과가 없습니다.
결정 대신 문서만 만들어 내는 것. 이 작업 이후에 아무것도 달라지지 않았다면 — 회수된 권한도, 테스트한 백업도, 제공업체에 던진 질문도 없었다면 — 그것은 위협 모델링이 아니라 그저 오후 한나절을 보낸 것에 불과합니다. 결과물은 담당자 이름이 붙은 세 가지 실행 항목이어야 합니다.
신고자 항목이 표에서 가장 큰 비중을 차지한다면, 다음 질문은 어느 사법 관할을 선택할지, 그리고 제공업체의 주장을 어떻게 검증할지입니다 — 오후 한나절이면 답할 수 있는 여섯 가지 질문입니다. 상위 다섯 가지 안에 전혀 들지 않는다면, 저희가 필요하지 않을 가능성이 큽니다. 그리고 그것도 한 시간을 들인 작업치고는 더할 나위 없이 좋은 결과입니다.
이 플랫폼을 운영하는 엔지니어들이 작성했으며, 1개월 전에 다시 검토했습니다. 여기 내용 중 잘못되었거나 오래된 부분이 있다면 고객 패널을 통해 알려주십시오 — 실제로 이 중 절반가량이 그렇게 접수된 내용입니다.