2024-02-10 21:30:13 +00:00
# 위협 모델링
2023-07-22 16:24:48 +00:00
2024-02-10 21:30:13 +00:00
## 위협 모델링
2023-07-22 16:24:48 +00:00
2024-02-10 21:30:13 +00:00
위협 모델링에 대한 HackTricks의 포괄적인 가이드에 오신 것을 환영합니다! 시스템의 잠재적인 취약점을 식별, 이해 및 대비하는 사이버 보안의 중요한 측면을 탐구해 보세요. 이 글은 실제 예제, 유용한 소프트웨어 및 쉽게 이해할 수 있는 설명으로 가득한 단계별 가이드로 제공됩니다. 보안 방어를 강화하려는 초보자와 경험있는 전문가 모두에게 이상적입니다.
2023-07-20 14:52:56 +00:00
2024-02-10 21:30:13 +00:00
### 일반적으로 사용되는 시나리오
2023-07-22 16:24:48 +00:00
2024-02-10 21:30:13 +00:00
1. **소프트웨어 개발** : 안전한 소프트웨어 개발 수명주기(SSDLC)의 일환으로 위협 모델링은 개발 초기 단계에서 **잠재적인 취약점의 원천을 식별하는 데 도움**이 됩니다.
2. **펜트스팅** : 펜트스팅 실행 표준(PTES) 프레임워크는 테스트를 수행하기 전에 시스템의 취약점을 이해하기 위해 **위협 모델링을 요구**합니다.
2023-07-20 14:52:56 +00:00
2024-02-10 21:30:13 +00:00
### 요약된 위협 모델
2023-07-20 14:52:56 +00:00
2024-02-10 21:30:13 +00:00
위협 모델은 일반적으로 응용 프로그램의 계획된 아키텍처 또는 기존 빌드를 나타내는 다이어그램, 이미지 또는 다른 시각적 표현 형식으로 나타냅니다. 이는 **데이터 흐름 다이어그램**과 유사하지만, 보안 중심의 설계에 차이가 있습니다.
2023-07-22 16:24:48 +00:00
2024-02-10 21:30:13 +00:00
위협 모델에는 잠재적인 취약점, 위험 또는 장애를 상징하는 빨간색으로 표시된 요소가 자주 포함됩니다. 위험 식별 프로세스를 간소화하기 위해 기밀성, 무결성, 가용성(CIA) 삼각형이 사용되며, STRIDE가 가장 일반적인 위협 모델링 방법론 중 하나입니다. 그러나 선택한 방법론은 특정 맥락과 요구 사항에 따라 다를 수 있습니다.
2023-07-22 16:24:48 +00:00
2024-02-10 21:30:13 +00:00
### CIA 삼각형
2023-07-20 14:52:56 +00:00
2024-02-10 21:30:13 +00:00
CIA 삼각형은 정보 보안 분야에서 널리 인정받는 모델로, 기밀성(Confidentiality), 무결성(Integrity) 및 가용성(Availability)을 나타냅니다. 이 세 가지 요소는 많은 보안 조치와 정책, 위협 모델링 방법론을 포함한 기반을 형성합니다.
2023-07-20 14:52:56 +00:00
2024-02-10 21:30:13 +00:00
1. **기밀성** : 데이터 또는 시스템이 무단으로 액세스되지 않도록 보장합니다. 이는 적절한 액세스 제어, 암호화 및 기타 조치를 통해 데이터 침해를 방지하기 위한 중요한 측면입니다.
2. **무결성** : 데이터의 수명 주기 동안의 정확성, 일관성 및 신뢰성을 보장합니다. 이 원칙은 무단자에 의해 데이터가 변경되거나 조작되지 않도록 합니다. 이는 종종 체크섬, 해시 및 기타 데이터 확인 방법을 포함합니다.
3. **가용성** : 데이터 및 서비스가 필요할 때 허가된 사용자에게 액세스 가능하도록 보장합니다. 이는 시스템이 중단되더라도 시스템이 계속 작동할 수 있도록 중복성, 장애 허용 및 고가용성 구성을 포함합니다.
2023-07-20 14:52:56 +00:00
2024-02-10 21:30:13 +00:00
### 위협 모델링 방법론
2023-07-20 14:52:56 +00:00
2024-02-10 21:30:13 +00:00
1. **STRIDE** : Microsoft에서 개발한 STRIDE는 **위장, 조작, 부인, 정보 노출, 서비스 거부 및 권한 상승**을 나타내는 머리글자입니다. 각 범주는 특정 유형의 위협을 나타내며, 이 방법론은 프로그램 또는 시스템의 설계 단계에서 잠재적인 위협을 식별하는 데 일반적으로 사용됩니다.
2. **DREAD** : 이는 Microsoft의 또 다른 위협 식별을 위한 위험 평가 방법론입니다. DREAD는 **피해 정도, 재현성, 악용 가능성, 영향을 받는 사용자 및 발견 가능성**을 나타냅니다. 이러한 요소 각각에 점수를 매기고, 결과를 사용하여 식별된 위협을 우선 순위로 정합니다.
3. **PASTA** (공격 시뮬레이션 및 위협 분석 프로세스): 이는 일곱 단계의 **위험 중심** 방법론입니다. 보안 목표 정의 및 식별, 기술적 범위 생성, 응용 프로그램 분해, 위협 분석, 취약성 분석 및 위험/선별 평가를 포함합니다.
4. **Trike** : 이는 자산을 방어하는 데 초점을 맞춘 위험 중심 방법론입니다. **위험 관리** 관점에서 시작하여 해당 맥락에서 위협과 취약점을 살펴봅니다.
5. **VAST** (시각적, 민첩 및 간단한 위협 모델링): 이 접근 방식은 더 접근 가능하도록 설계되었으며, Agile 개발 환경에 통합됩니다. 다른 방법론에서 요소를 결합하고 **위협의 시각적 표현에 초점**을 둡니다.
6. **OCTAVE** (운영 중요 위협, 자산 및 취약성 평가): CERT Coordination Center에서 개발한 이 프레임워크는 특정 시스템이나 소프트웨어보다는 **조직적 위험 평가**를 위해 고안되었습니다.
2023-07-20 14:52:56 +00:00
2024-02-10 21:30:13 +00:00
## 도구
2023-07-20 14:52:56 +00:00
2024-02-10 21:30:13 +00:00
위협 모델의 작성 및 관리를 **지원**하는 여러 도구와 소프트웨어 솔루션이 있습니다. 다음은 고려할 수 있는 몇 가지 도구입니다.
2023-07-20 14:52:56 +00:00
2023-07-22 16:24:48 +00:00
### [SpiderSuite](https://github.com/3nock/SpiderSuite)
2023-07-20 14:52:56 +00:00
2024-02-10 21:30:13 +00:00
사이버 보안 전문가를 위한 고급 크로스 플랫폼 및 다기능 GUI 웹 스파이더/크롤러입니다. Spider Suite는 공격 표면 매핑 및 분석에 사용할 수 있습니다.
2023-07-20 14:52:56 +00:00
2024-02-10 21:30:13 +00:00
**사용법**
2023-07-20 14:52:56 +00:00
2024-02-10 21:30:13 +00:00
1. URL 선택 및 크롤링
2023-07-20 14:52:56 +00:00
2023-07-22 16:24:48 +00:00
< figure > < img src = "../.gitbook/assets/threatmodel_spidersuite_1.png" alt = "" > < figcaption > < / figcaption > < / figure >
2023-07-22 11:27:08 +00:00
2024-02-10 21:30:13 +00:00
2. 그래프 보기
2023-07-22 11:27:08 +00:00
2023-07-22 16:24:48 +00:00
< figure > < img src = "../.gitbook/assets/threatmodel_spidersuite_2.png" alt = "" > < figcaption > < / figcaption > < / figure >
2023-07-20 14:52:56 +00:00
2023-07-22 16:24:48 +00:00
### [OWASP Threat Dragon](https://github.com/OWASP/threat-dragon/releases)
2023-07-20 14:52:56 +00:00
2024-02-10 21:30:13 +00:00
OWASP의 오픈 소스 프로젝트인 Threat Dragon은 시스템 다이어그램 작성 및 위협/완화 자동 생성을 위한 규칙 엔진을 포함한 웹 및 데스크톱 애플리케이션입니다.
2023-07-20 14:52:56 +00:00
2024-02-10 21:30:13 +00:00
**사용법**
2023-07-22 11:27:08 +00:00
2024-02-10 21:30:13 +00:00
1. 새 프로젝트 생성
2023-07-22 11:27:08 +00:00
2023-07-22 16:24:48 +00:00
< figure > < img src = "../.gitbook/assets/create_new_project_1.jpg" alt = "" > < figcaption > < / figcaption > < / figure >
2023-07-22 11:27:08 +00:00
2024-02-10 21:30:13 +00:00
가끔 이렇게 보일 수도 있습니다:
2023-07-22 11:27:08 +00:00
2023-07-22 16:24:48 +00:00
< figure > < img src = "../.gitbook/assets/1_threatmodel_create_project.jpg" alt = "" > < figcaption > < / figcaption > < / figure >
2023-07-22 11:27:08 +00:00
2024-02-10 21:30:13 +00:00
2. 새 프로젝트 시작
2023-07-22 11:27:08 +00:00
2023-07-22 16:24:48 +00:00
< figure > < img src = "../.gitbook/assets/launch_new_project_2.jpg" alt = "" > < figcaption > < / figcaption > < / figure >
2023-07-22 11:27:08 +00:00
2024-02-10 21:30:13 +00:00
3. 새 프로젝트 저장
2023-07-22 11:27:08 +00:00
2023-07-22 16:24:48 +00:00
< figure > < img src = "../.gitbook/assets/save_new_project.jpg" alt = "" > < figcaption > < / figcaption > < / figure >
2023-07-22 11:27:08 +00:00
2024-02-10 21:30:13 +00:00
4. 모델 생성
2023-07-22 11:27:08 +00:00
2024-02-10 21:30:13 +00:00
SpiderSuite Crawler와 같은 도구를 사용하여 영감을 얻을 수 있으며, 기본 모델은 다음과 같이 보