다섯 살도 알 수 있게 · 보안
위협 모델링이 뭐예요?
위협 모델링(Threat Modeling)을 벽돌을 놓기 전에 경비가 도둑 가면을 쓰고 도면을 살펴보는 이야기로 풀어봤어요.
목수가 새 탑 도면을 가져왔어요.정문 하나, 금고 하나, 배달 창구 하나. 왕은 당장 짓고 싶어요. 경비는 한 번만 더 보자고 해요.
다 짓고 나서 '거기도 문이었네' 하면 늦어요.경비는 정문만 지켰어요. 도둑은 배달 창구로 왔어요. 지은 뒤에 고치려면 벽을 다시 부숴야 해요.
위협 모델링은 짓기 전에 도둑 눈으로 보는 도면이에요.경비가 도둑 가면을 써 봐요. 뭘 짓는지 그리고, 도둑이면 어디로 올지 찾고, 뭐가 잘못될지 묻고, 막는 법을 도면에 적어요.
뭘 짓지?방과 길을 그려요
도둑이면 어디로?들어올 수 있는 곳마다 표시
뭐가 잘못될까?여섯 버릇을 하나씩
어떻게 막지?도면에 미리 그려 넣어요
도둑의 여섯 가지 버릇을 하나씩 물어봐요.문마다 여섯 번 물어요. "여기서 도둑이 변장하면? 바꿔치기하면? 발뺌하면? 엿보면? 막으면? 열쇠를 늘리면?" 빠뜨리는 버릇이 없게요.
막는 법을 도면에 미리 그려 넣어요.창구에도 문지기와 일지를 두고, 금고 열쇠는 따로 만들어요. 그다음엔 벽돌마다 검사하고, 다 지으면 고용한 도둑이 진짜로 시험해요.
한 줄로
위협 모델링 = 벽돌을 놓기 전에 도둑 눈으로 도면을 보며, 어디로 들어올지·뭐가 잘못될지 찾고 막는 법을 도면에 미리 그려 넣는 일.
Threat Modeling. 시스템의 자산과 데이터 흐름을 그리고, 신뢰 경계와 진입점을 표시한 뒤, STRIDE 같은 틀로 위협을 열거하고 완화 통제를 설계에 반영해요. 설계 단계에서 가장 싸게 보안을 넣는 방법이에요.
어른들은 이렇게 불러요
- 위협 모델링
Threat modeling - 도둑 눈으로 보는 도면. 짓기 전에 종이 위에서 먼저 도둑질을 해 봐요. 네 가지 질문: 뭘 짓지, 어디로 올까, 뭐가 잘못될까, 어떻게 막지.
- 데이터 흐름도
Data flow diagram - 방과 길 그림. 금고, 창구, 그 사이를 오가는 화살표. 이 그림이 없으면 어디를 지킬지도 몰라요.
- 신뢰 경계
Trust boundary - 믿는 안쪽의 점선. 선 안은 우리 사람, 선 밖은 모르는 사람. 선을 넘는 화살표마다 물어봐요.
- 진입점
Entry point - 도둑이 들어올 수 있는 곳. 정문만이 아니라 창구, 창문, 굴뚝까지. → 바깥에서 세는 우리 성의 문
- STRIDE
STRIDE - 여섯 도둑 버릇. 변장(Spoofing), 바꿔치기(Tampering), 발뺌(Repudiation), 엿보기(Information disclosure), 문 막기(Denial of service), 열쇠 늘리기(Elevation of privilege). 첫 글자를 모으면 STRIDE.
- 공격 트리
Attack tree - 도둑의 계획표. '금고를 열려면' 아래에 '열쇠를 훔친다', '창구로 들어간다'… 가지처럼 그려요. 가장 쉬운 가지부터 막아요.
- 완화 통제
Mitigation - 도면에 그려 넣은 막는 법. 창구의 문지기, 따로 만든 금고 열쇠, 일지. → 문마다 물어보는 성
- 데브섹옵스
DevSecOps - 이 도면을 보는 자리. 경비가 처음부터 목수 옆에 앉는 방식. 도면 보기가 첫 번째 일이에요. → 짓는 동안 같이 보는 목수와 경비
다음 이야기
열쇠를 벽에 못 박아 두지 않기 →