위협 모델링, 어렵지 않아요!

by DD
1일 전
조회수 2

위협 모델링(Threat Modeling)은 복잡한 보안 프로세스가 아닌, 개발 초기 단계의 직관적 질문으로 시작 가능함

보호 대상(Assets), 위협 주체(Actors), 공격 시나리오(Attack Scenarios) 등 핵심 질문에 답하는 것이 중요함

가정(Assumptions) 명확화고려하지 않는 위협(Unaddressed Threats) 정의가 실용적 모델 구축의 핵심임

Matrix의 위협 모델 문서는 공격 유형 나열에 그쳐 C- 등급 평가를 받음

비정형 위협 모델링의 핵심 질문

본문에서는 위협 모델링의 핵심을 '무엇을 보호하는가?', '누가/무엇이 해를 끼치려 하는가?', '어떻게 공격하는가?', '어떻게 방지할 것인가?'라는 네 가지 기본 질문에 대한 답을 찾는 과정으로 설명합니다. 특히, 자산(Assets) 간의 관계를 명확히 파악하고, 암묵적인 가정(Implicit Assumptions)을 드러내는 것이 중요하다고 강조합니다. 이는 데이터 격리 아키텍처(Data Isolation Architecture) 설계 시 발생할 수 있는 잠재적 취약점을 사전에 식별하는 데 도움을 줍니다.

실용적 위협 모델링 접근법

저자는 그래프 용지(Graph Paper)를 활용하여 시스템 컴포넌트 간의 관계를 시각화하고, 각 컴포넌트의 입출력(Inputs and Outputs)을 분석하며 위협 모델링을 수행하는 방법을 제안합니다. 이는 계층적 분석(Hierarchical Analysis)을 통해 추상화 수준을 점진적으로 낮춰가며 상세한 위협 시나리오를 도출하는 방식입니다. 특히, 부적절한 관계(Inappropriate Relationships)를 식별하고 제거하는 것이 중요하다고 언급합니다.

Matrix 위협 모델의 한계점

Matrix의 위협 모델 문서는 공격 유형 목록(List of Attack Types) 나열에 그쳐, 자산(Assets) 정의, 가정(Assumptions) 명시, 관계 시각화 등 핵심 요소가 부족하다는 비판을 받습니다. 또한, 암호화(Cryptography) 및 키 관리(Key Management)에 대한 고려가 누락되어 있어 실질적인 보안 강화에 기여하는 바가 적다는 지적이 있습니다. 커뮤니티에서는 이러한 문서가 C- 등급 평가를 받는 이유로 분석합니다.

패스키(Passkeys) 도입을 통한 보안 강화

댓글에서는 패스키(Passkeys) 도입이 크리덴셜 스터핑(Credential Stuffing)과 같은 일반적인 공격을 효과적으로 방지할 수 있다고 논의합니다. 사용자가 고유하고 복잡한 비밀번호를 기억하고 재사용하지 않을 비현실적인 기대를 제거함으로써, 비대칭 암호화(Asymmetric Cryptography)를 활용한 인증 방식을 통해 보안성과 사용성을 동시에 향상시킬 수 있다는 주장입니다. 이는 보안과 사용성의 균형(Security vs. Usability Trade-off)을 맞추는 좋은 사례로 제시됩니다.

분산형 E2EE 시스템의 위협 모델링 복잡성

분산형 종단 간 암호화(Distributed E2EE) 시스템, 특히 ATProto와 같은 환경에서는 전역 상태(Global State) 관리의 복잡성으로 인해 메시지 순서 보장(Message Ordering Guarantee)이 어렵습니다. 이는 MLS(Messaging Layer Security)와 같은 효율적인 그룹 키 합의 프로토콜(Group Key Agreement Protocol) 적용을 방해하며, Raft와 같은 합의 알고리즘(Consensus Algorithm)이나 쌍별 E2EE(Pairwise E2EE)로의 전환을 고려하게 만듭니다. 데이터 미저장 정책(Zero-Retention Policy)을 유지하면서 이러한 복잡성을 해결하는 것이 핵심 과제입니다.

Soatok’s Informal Guide to Threat Models