🔸 1. 애플리케이션 분해 (Decompose the Application)
위협 모델링 절차 중 첫번째 단계인 애플리케이션 분해
목적
:애플리케이션을 이해하고, 외부 엔티티와의 상호작용 방식을 이해한다.
-> 위협모델링 결과 문서에 포함된다.
-> DFDs (application data diagram) 생성에 사용된다.
결과물(구조)
- 위협 모델 정보 (Threat Model Info)
- 외부 종속성 (External Dependencies)
- 진입점 (Entry Points)
- 종료 지점 (Exit Points)
- 자산 (Assets)
- 신뢰 수준 (Trust Levels)
- 데이터 흐름 다이어그램 (DFD)
[1] 위협 모델 정보
애플리케이션 이름 | 분석 대상 시스템의 명칭 |
버전 | 현재 분석 중인 시스템의 버전 |
설명 | 시스템 기능, 사용자 역할 등 |
문서 소유자, 참여자, 검토자 | 위협 모델링에 참여한 인원 명시 |
[2] 외부 종속성
- 시스템 외부의 구성요소로부터의 영향
- 조직의 통제 범위 내에 있더라도 개발팀의 통제 범위에 없을 경우 외부종속성임
- 예: 웹서버(Apache), DB서버(MySQL), 방화벽, TLS 프로토콜 등
- 각 종속 항목에 대해 ID, 설명 제공
[3] 진입점 (Entry Points)
- 공격자가 시스템에 접근 가능한 지점 (공격은 진입점이 반드시 존재해야함)
- 계층 구조로 표현 가능 (예: 웹 애플리케이션은 각 웹페이지에 여러 진입점 포함 가능)
-
- 1 – HTTPS 포트
- 1.1 – 도서관 메인 페이지
- 1.2 – 로그인 페이지
- 1.2.1 – 로그인 기능
- 데이터가 시스템에 들어오는 위치
- 항목: 식별ID, 이름, 설명, 요구 신뢰 수준
[4] 종료 지점 (Exit Points)
- 시스템의 데이터 출력 위치
- 클라이언트 사이드 공격 식별에 유용: XSS, 정보 유출 등 공격 탐지에 중요
- 예: 로그인 실패 시 사용자에게 반환되는 오류 메시지
- 진입점 위협과 밀접하게 연결됨.
- 예시:
- 로그인 실패 시 보여지는 오류 메시지(username not found)가 계정수집에 악용될 수 있음.
- SQL 에러 메시지는 SQL 인젝션 공격의 실마리를 제공할 수 있음.
- → 따라서 오류 메시지의 형식도 위협 요소가 됨.
- 예시:
[5] 자산 (Assets)
- 공격자의 관심 대상이며 보호가 필요한 항목
- 물리적 자산: 사용자 정보, 로그인 자격 증명, DB 접속 권한
- 추상적 자산: 시스템 가용성, 조직의 평판
- 포함항목 : 식별자ID, 이름, 설명, 신뢰수준
자산식별이란?
자산 식별(Asset Identification)이란, 정보 시스템이나 애플리케이션 내에서 보호해야 할 대상(자산)을 찾고 분류하는 과정을 의미
보안 관점에서 “자산”은 공격자 입장에서 가치가 있는 것이며, 위협 모델링의 출발점이 되는 핵심 개념
[진입점] 1.2.1 로그인 기능
│
▼
[자산] 1.1 사용자 로그인 자격 증명
│
├─ 위협: Spoofing (사용자 위장 시도)
│ └─ 대응: 강력한 인증, 계정 잠금, 캡차
│
├─ 위협: Repudiation (로그인 행위 부인)
│ └─ 대응: 감사 로그, 타임스탬프
│
└─ 위협: Elevation of Privilege (일반 사용자 → 관리자 권한 탈취)
└─ 대응: 최소 권한 원칙, RBAC
- 진입점 1.2.1은 "로그인 기능"
- 이 진입점에서 보호해야 할 자산은 "로그인 자격 증명"
- 이 자산과 관련된 주요 위협은 STRIDE의 Spoofing, Repudiation, EoP이며
- 각 위협에 대응하는 보안 통제까지 연결됨
▶ 자산 예시
ID | 이름 | 설명 | 신뢰 수준 예시 |
1.1 | 사용자 로그인 정보 | 로그인 자격 증명 | 사서, DB 관리자 등 |
2.3 | SQL 실행 능력 | DB 검색 기능 | DB 읽기 사용자 |
3.4 | 감사 로그 접근 권한 | 활동 로그 확인 | 웹사이트 관리자 등 |
[6] 신뢰 수준 (Trust Levels)
- 애플리케이션이 각 외부 엔티티(사용자/프로세스 등)에 부여하는 접근 권한(엑세스 권한)
- 진입점, 자산과 상호참조 ->진입점에 필요한 액세스 권한, 각 자산과 상호작용하는데 필요한 권한을 정의
- 포함항목 : 식별값ID, 이름 , 설명
데이터 흐름 다이어그램 (DFD)
- 애플리케이션이 데이터 처리하는 방법을 시각적으로 표현함으로써 애플리케션 이해도 증가
- 심볼:
- 외부 엔티티 :진입점을 통해 애플리케이션과 상호작용
- 프로세스 :데이터 처리 작업을 표현
- 다중 프로세스 :하위 프러세스로 분리될 수 있음
- 데이터 저장소 : 데이터 수정x , 오직 저장만 함
- 데이터 흐름
- 권한 경계(신뢰경계): 신뢰 수준 변화가 발생하는 지점 , 신뢰수준 변경되는 모든 위치 보여줌
▶ DFD 예시
- 로그인 요청 → AuthenticateUser() → DB 질의 → 로그인 응답
🔸 2. 위협 분류 방식 (Threat Categorization)
위협 모델링 절차 중 두 번째 단계는 위협 식별 및 우선순위 지정이다.
위협을 식별하기 위한 위협분류 방식이 2가지 관점으로 존재한다.
◼ STRIDE: 공격자 관점 분류
각 STRIDE 요소는 특정 보안 목표와 대응책과 1:1 매핑됨
유형 | 설명 | 보안목표 | 대응예시 |
Spoofing | 사용자 위장 | 인증 (Authentication) | 로그인 절파 강화, 다중 인증 |
Tampering | 무단 데이터 변경 | 무결성 (Integrity) | 해시, 디지털 서명 |
Repudiation | 행위 부인 | 부인방지 (Non-repudiation) | 감사로그, 타임스탬프 |
Information Disclosure | 정보 유출 | 기밀성 (Confidentiality) | 접근제어, 암호화 |
Denial of Service | 서비스 거부 | 가용성 (Availability) | 트래픽제한, Qos |
Elevation of Privilege | 권한 상승 | 인가 (Authorization) | RBAC, 최소권한 정 |
◼ ASF (Application Security Framework): 방어적 관점 분류
분류예시 | 대응책 |
인증(Authentication) | 비밀번호 암호화 저장, 강력한 패스워드 정책 |
인가(Authorization) | 최소 권한, 역할 기반 접근제어 |
데이터 보호 | 암호화, 키 관리, HMAC 사용 |
설정 관리 | 최소 권한 계정, 구성 접근 제어 |
예외 관리 | 민감 정보가 포함되지 않도록 오류 메시지 처리 |
세션 관리 | 세션 만료 설정, 쿠키 암호화 |
로깅/감사 | 비밀번호 로그 제외, 감사 추적 무결성 보장 |
◼ DREAD: 위험 평가 기반 순위 지정
요소설명
Damage | 피해 정도 |
Reproducibility | 재현 가능성 |
Exploitability | 악용 난이도 |
Affected Users | 영향 범위 |
Discoverability | 발견 가능성 |
▶ 예시:
- 정보 유출 공격 DREAD 점수: (8+10+7+10+10) / 5 = 9점 (High Risk)
🔸 3. 위협 순위화 및 완화 전략
◼ 위협 순위 결정
- 위험도 = 가능성 × 영향
- 정성적 모델 (High / Medium / Low) 사용 가능
◼ 위협 상태 구분
- 완화되지 않은 위협: 대응책 없음
- 부분 완화된 위협: 제한적 대응
- 완전히 완화된 위협: 적절한 보안 조치 완료
🔸 4. 대응책 및 완화 예시
▶ STRIDE 기반 대응 예시
Spoofing | 인증 절차 강화, 비밀번호 보호 |
Tampering | 디지털 서명, 무결성 검증 |
Repudiation | 감사 로그, 타임스탬프 |
Info Disclosure | 인가 검증, 암호화 |
DoS | 인증 및 인가 제한, 트래픽 조절 |
Privilege Escalation | 최소 권한 원칙 적용 |
🔸 정리 요약
애플리케이션 분해 | 위협 모델 문서, 외부 종속성, 진입/종료점, 자산, 신뢰 수준, DFD |
자산 식별 | 보호가 필요한 대상 파악 (정보, 권한, 기능 등) |
위협 분류 | STRIDE (공격자 중심), ASF (보안 통제 중심) |
위험 평가 | DREAD 점수 또는 정성 평가 |
대응 전략 | 완화(Mitigate), 수용(Accept), 제거(Eliminate) |
'보안' 카테고리의 다른 글
보안 설계 (1) | 2025.04.25 |
---|---|
SDLC의 각 단계 및 모델링 기법의 특징 (0) | 2025.04.22 |
네트워크 보안: 정보 목록화(Footprinting & Scanning) (0) | 2025.04.21 |
네트워크 보안: 스니핑(Sniffing) (0) | 2025.04.21 |
네트워크 보안 : 스푸핑(Spoofing) (0) | 2025.04.21 |