본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
Threat Modeling; 위협 모델
시스템을 구조적으로 분해해 무엇이 잘못될 수 있는지(위협)를 체계적으로 찾고, 대응을 정하고, 그 결과를 검증하는 분석 활동

위협 모델링은 공격자의 시각으로 시스템을 보는 일이다. 설계 단계에서 하면 코드 한 줄 쓰기 전에 인증 누락, 신뢰 경계를 넘는 데이터의 검증 부재, 로그 미비 같은 구조적 결함을 찾을 수 있어, 운영 중에 발견해 고치는 것보다 훨씬 싸다. 위협 모델링 선언(Threat Modeling Manifesto)은 이 활동을 네 가지 질문으로 요약한다. 무엇을 만들고 있는가? 무엇이 잘못될 수 있는가? 그것에 대해 무엇을 할 것인가? 충분히 잘했는가?

위협 모델링은 한 번에 끝나는 문서 작업이 아니다. 기능이 추가되거나 아키텍처가 바뀌거나 새로운 공격 기법이 알려지면 다시 한다. 애플리케이션뿐 아니라 네트워크, 클라우드 구성, 업무 프로세스, AI 시스템에도 적용한다. AI 시스템에서는 학습 데이터 오염(data poisoning), 프롬프트 주입(prompt injection), 모델 탈취가 새로운 위협 유형으로 추가된다.

CISSP 시험 개요(2024) 1.10 항목은 위협 모델링 개념과 방법론의 이해와 적용을 다룬다. 소프트웨어 개발 보안(8영역)의 설계 검토와도 이어진다.

단계 하는 일 산출물
1. 범위 설정과 시스템 분해 대상 범위, 자산, 진입점, 외부 의존성을 정하고 시스템을 구성 요소로 나눈다. 데이터 흐름도(DFD)로 프로세스, 데이터 저장소, 데이터 흐름, 외부 개체를 그리고 신뢰 경계(trust boundary, 권한 수준이 바뀌는 지점)를 표시한다 DFD, 자산·진입점 목록
2. 위협 식별 각 요소와 신뢰 경계를 넘는 흐름마다 위협을 찾는다. STRIDE 같은 분류, 공격 트리, MITRE ATT&CK 기법, 위협 인텔리전스를 활용한다 위협 목록
3. 위험 평가와 우선순위 가능성과 영향으로 위협의 크기를 매긴다. 조직의 위험 평가 기준이나 CVSS 같은 체계를 쓴다 우선순위가 매겨진 위협 목록
4. 대응 결정 위협마다 완화(통제 추가), 제거(기능 삭제), 전가, 수용 중 하나를 정한다 보안 요구사항, 설계 변경 사항
5. 검증 대응이 실제로 구현되었는지 코드 리뷰, 테스트, 모의 침투 테스트로 확인하고 모델을 갱신한다 검증 결과, 갱신된 모델
방법론 중심 특징 주로 쓰는 곳
STRIDE 위협 분류 6가지 위협 유형으로 요소별 위협을 빠짐없이 찾는다 소프트웨어 설계 검토
PASTA 위험·사업 영향 사업 목표에서 출발하는 7단계 공격 시뮬레이션 사업 영향을 연결한 애플리케이션 위험 분석
DREAD 위험 점수 5가지 요소 점수로 위협 우선순위 산정 과거 마이크로소프트 내부 우선순위 산정
VAST 확장성·자동화 애플리케이션 모델과 운영 모델을 나누어 개발 흐름에 통합 대규모 조직, 애자일·데브옵스
Trike 위험 관리·요구사항 이해관계자가 허용하는 위험 수준에서 출발하는 감사 지향 방법 요구사항 기반 위험 분석
LINDDUN 개인정보 7가지 프라이버시 위협 유형 개인정보 영향 분석, 프라이버시 중심 설계
공격 트리 공격 경로 공격 목표를 뿌리로 하위 수단을 가지로 분해 특정 자산·목표에 대한 심층 분석

STRIDE는 마이크로소프트가 만든 위협 분류로, 각 유형이 지켜야 할 보안 속성과 짝을 이룬다. 마이크로소프트 Threat Modeling Tool은 DFD의 요소마다 STRIDE를 적용하는 방식(STRIDE per element)을 쓴다.

위협 설명 침해되는 속성 대표 대응
Spoofing(위장) 다른 사용자나 시스템인 척함 인증(authentication) 다중 인증, 상호 인증
Tampering(변조) 데이터나 코드를 무단 변경 무결성(integrity) 해시, 전자서명, 접근통제
Repudiation(부인) 한 일을 하지 않았다고 주장 부인 방지(non-repudiation) 감사 로그, 전자서명
Information disclosure(정보 노출) 권한 없는 사람에게 정보 노출 기밀성(confidentiality) 암호화, 접근통제
Denial of service(서비스 거부) 정당한 사용자의 서비스 이용 방해 가용성(availability) 이중화, 속도 제한
Elevation of privilege(권한 상승) 허용되지 않은 권한 획득 인가(authorization) 최소 권한, 입력 검증

PASTA(Process for Attack Simulation and Threat Analysis)는 사업 목표와 기술 요구를 애플리케이션 위협과 연결하는 위험 중심 방법론이다. 다음 7단계로 진행한다.

  1. 사업 목표 정의(Define Objectives)
  2. 기술 범위 정의(Define Technical Scope)
  3. 애플리케이션 분해(Application Decomposition)
  4. 위협 분석(Threat Analysis)
  5. 취약점·약점 분석(Vulnerability and Weakness Analysis)
  6. 공격 모델링(Attack Modeling)
  7. 위험·영향 분석(Risk and Impact Analysis)

처음과 끝이 사업 목표와 사업 영향이라는 점이 STRIDE와 다르다. 경영진에게 결과를 설명하기 좋지만 준비할 것이 많다.

DREAD는 위협의 우선순위를 매기는 점수 모델이다. 다섯 요소에 각각 점수를 주고 합산하거나 평균한다.

  • Damage potential(피해 규모)
  • Reproducibility(재현 가능성)
  • Exploitability(악용 용이성)
  • Affected users(영향받는 사용자 범위)
  • Discoverability(발견 가능성)

점수가 평가자마다 크게 달라지는 주관성 때문에 마이크로소프트도 더 이상 쓰지 않는 것으로 알려져 있다. OWASP도 수치형 DREAD 대신 가능성·영향을 높음·중간·낮음으로 매기는 방식을 권한다. 시험에서는 위협 식별(STRIDE)과 위협 순위 산정(DREAD)을 구분하는 것이 핵심이다.

VAST(Visual, Agile, and Simple Threat Modeling)는 상용 위협 모델링 도구 업체에서 나온 것으로 알려진 방법으로, 애플리케이션 위협 모델과 운영 위협 모델을 따로 유지하며 개발 흐름에 넣는다(OWASP 치트시트의 설명). 개발팀용 모델은 프로세스 흐름도, 운영팀용 모델은 DFD를 주로 쓰는 것으로 알려져 있다. 많은 팀이 동시에 쓸 수 있도록 자동화와 개발 도구 연계를 강조한다.

Trike는 공개 방법론으로, 이해관계자가 정한 허용 위험 수준을 출발점으로 삼는 것으로 알려져 있다. 행위자(actor), 자산, 허용 행위(생성·읽기·수정·삭제)를 표로 정리한 요구사항 모델을 만든 뒤 DFD 기반의 구현 모델과 비교해 위협을 도출하는 방식이며, 감사와 위험 관리 관점이 강하다.

LINDDUN은 벨기에 KU 루뱅(KU Leuven)의 연구진이 2010년 처음 발표한 프라이버시 위협 모델링 방법론이다. 일곱 가지 위협 유형의 머리글자이다.

위협 유형 의미
Linking(연결) 여러 데이터나 행위를 같은 사람의 것으로 연결
Identifying(식별) 데이터로 특정 개인을 알아냄
Non-repudiation(부인 불가) 개인이 원치 않는데도 행위를 부인할 수 없게 됨(보안에서는 목표지만 프라이버시에서는 위협)
Detecting(탐지) 데이터의 존재 자체로 개인에 관한 사실을 추론
Data disclosure(데이터 노출) 필요 이상으로 수집·저장·공유
Unawareness(인식 부족) 정보주체가 처리 사실을 모르거나 통제하지 못함. OWASP 자료는 개입 불가(Unintervenability)를 함께 묶어 적는다
Non-compliance(비준수) 법·정책·원칙을 따르지 않음

STRIDE가 다루지 못하는 개인정보 위협을 보완하므로 개인정보 보호 중심 설계와 개인정보 영향평가에서 함께 쓴다.

공격 트리(attack tree)는 브루스 슈나이어(Bruce Schneier)가 1999년 12월 Dr. Dobb's Journal에 소개한 방법이다. 공격자의 최종 목표(예: 금고 열기)를 뿌리 노드로 두고, 이를 이루는 수단(비밀번호 알아내기, 자물쇠 따기 등)을 하위 노드로 분해한다. 하위 노드는 어느 하나만 이루면 되는 OR 관계와 모두 이루어야 하는 AND 관계로 묶는다. 각 노드에 비용, 필요한 기술, 탐지 가능성 같은 값을 붙이면 가장 싼 공격 경로나 특별한 장비 없이 가능한 공격만 골라낼 수 있다. 특정 자산에 대한 심층 분석이나 모의 침투 계획 수립에 유용하다.

MITRE ATT&CK 활용

편집 원본 편집

MITRE ATT&CK은 실제 공격에서 관찰된 전술과 기법을 정리한 지식 기반이다. 위협 모델링에서는 위협 식별 단계에서 "이 시스템을 노리는 공격 그룹이 실제로 쓰는 기법은 무엇인가"를 확인하는 데 쓰고, 탐지·대응 통제가 각 기법을 막는지 대응표를 만드는 데 쓴다. STRIDE가 설계 결함을 찾는 데 강하다면, ATT&CK은 운영 환경의 현실적 공격 경로와 탐지 공백을 찾는 데 강하다. 사이버 킬 체인도 비슷한 용도로 쓰인다.

도구 제공 특징
Microsoft Threat Modeling Tool 마이크로소프트 마이크로소프트 SDL의 핵심 요소. DFD를 그리면 STRIDE per element로 위협과 대응을 제안하고 보고서를 만든다
OWASP Threat Dragon OWASP 무료 오픈소스. 데스크톱 또는 자체 호스팅 웹 앱으로 실행. STRIDE, LINDDUN, CIA 등 여러 방법론 지원과 규칙 기반 위협 자동 생성
  • 위협 모델링은 설계 단계에서 가장 먼저 하는 것이 가장 효과적이다. 운영 후에도 변경 시마다 갱신한다.
  • STRIDE 각 문자와 침해 속성(인증, 무결성, 부인 방지, 기밀성, 가용성, 인가)의 대응을 외워 둔다.
  • STRIDE는 위협 분류·식별, DREAD는 위협 점수·우선순위, PASTA는 사업 영향 중심의 7단계, LINDDUN은 프라이버시 위협이다.
  • 신뢰 경계를 넘는 데이터 흐름이 위협을 찾을 1순위 지점이다.
  • 공격 트리는 목표를 뿌리로 두고 AND/OR로 분해한다.
  • 위협 모델링의 결과는 보안 요구사항과 테스트 항목으로 이어져야 한다. 문서만 남기고 끝나는 것은 실패다.