Threat Modeling
๐ง ์ ๋ ๊ณต๋ถ์ค์ธ ๋ถ๋ถ์ด ๋ง์์ ์๋ชป๋๊ฑฐ๋ ์ด์ํ ๋ถ๋ถ์ด ์์ ์ ์์ต๋๋ค. ์ด ๊ธ์ ์ ๋ขฐํ์ง ๋ง์๊ณ , ํน์๋ ์๋ชป๋ ๋ถ๋ถ์ด ์์ ๊ฒฝ์ฐ ๋๊ธ๋ก ์๋ ค์ฃผ์๋ฉด ์ ๋ง ๊ฐ์ฌํ๊ฒ ์ต๋๋ค :D
Introduction
Threat modeling์ ๊ฐ์น ์๋ ๋ฌด์ธ๊ฐ๋ฅผ ๋ณดํธํ๊ธฐ ์ํด ์ํ๊ณผ ์ํ ๋ฐฉ์์ ์๋ณํ๊ณ , ์ฝ๊ฒ ์ดํดํ ์ ์๋๋ก ํํํฉ๋๋ค. Application, System, Service ๋ฑ์์ ๋ณด์์ ์ํฅ์ ๋ผ์น ์ ์๋ ๋ชจ๋ ์ ๋ณด๋ฅผ ๊ตฌ์กฐํํ์ฌ ํํํ๊ณ ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ณด์์ ์ธ ๋ฌธ์ ๋ฅผ ์๋ณํ๋ ๋ฐฉ๋ฒ๋ก ์ ๋๋ค. ์ ๋ ํฌ๊ฒ ์๋์ ๊ฐ์ ํ๋ก์ฐ๋ก ์ ๋ฆฌํ ๊น ํฉ๋๋ค.
- Decompose the Application: ์์ฐ ์๋ณ ๋ฐ DFD, PFD ์ธ ์ฌ๋ฌ๊ฐ์ง Diagram ์์ฑ
- Identify threats (modeling): ์ํ ์๋ณ
- Mitigate: ์ํ ๋ฐฉ๋ฒ ๋์ถ
- Validate: ์กฐ์นํ์ธ
๐ Decompose the Application
OWASP ๋ฌธ์ ๊ธฐ์ค์ผ๋ก ์๋์ ๊ฐ์ ํญ๋ชฉ๋ค์ ์ ์ํด์ผํฉ๋๋ค.
Attribute | Description |
---|---|
Threat Model Information | ์ฌ์ฉํ Treat model์ ์ ์ํฉ๋๋ค. |
External Dependencies | ๋ํ๋์๋ฅผ ์ ์ํฉ๋๋ค. (๊ด๋ฆฌํ ์ ์๋ ์์ญ) |
Entry Points | ์์์ง์ , ์ฆ ์ํธ์์ฉํ ์ ์๋ ์ธํฐํ์ด์ค๋ฅผ ์ ์ํฉ๋๋ค. (+Trust Levels) |
Exit Points | ์ข ๋ฃ์ง์ , ํด๋ผ์ด์ธํธ ๋ฑ ๊ตฌ์ฑ ์ธ๋ถ๋ก ๋๊ฐ๋ ๊ตฌ๊ฐ์ ์ ์ํฉ๋๋ค. |
Assets | ์์ฐ์ ์ ์ํฉ๋๋ค. (+Trust Levels) |
Trust Levels | ์ ๋ขฐ ๋ ๋ฒจ์ ์ ์ํฉ๋๋ค. |
Data Flow Diagrams | DFD๋ฅผ ๊ทธ๋ฆฝ๋๋ค. |
DFD (Data Flow Diagrams)
DFD๋ ๋ฐ์ดํฐ์ ํ๋ฆ์ ๊ทธ๋ฆฌ๋ Diagram์ ๋๋ค. ๋ชจ๋ธ๋ง ๋ฐฉ๋ฒ์ ๋ฐ๋ผ ์ฝ๊ฐ์ฉ์ ๋ค๋ฅด์ง๋ง ๋ณดํต ์ดํ๋ฆฌ์ผ์ด์ , ์์คํ , ์๋น์ค์์์ ์ ์ฒด์ ์ธ ๋ฐ์ดํฐ ํ๋ฆ์ ํํํฉ๋๋ค.
PFD (Process Flow Diagrams)
PFD๋ ์ดํ๋ฆฌ์ผ์ด์ ์ ๋์ ํ๋ก์ธ์ค๋ฅผ ํํํ๋ Diagram์ ๋๋ค. DFD์ ๋ค๋ฅด๊ฒ ์๋น์ค์ ๋์ ํ๋ฆ์ ์ด์ฒจ์ ๋ง์ถ์ด ์ ์ฉํ๋ ์ฌ๋ก๋ฅผ ์ป์ด๋ด๋๋ฐ ์ ์ฉํ ์ ์์ต๋๋ค.
Other
๐ Identify Threats
STRIDE Model
STRIDE๋ Microsoft์์ ๋ง๋ Threat modeling framework๋ก ์ฌ๊ธฐ์ ํฌํจ๋๋ ์ฃผ์ ์ ํ์ธ Spoofing, Tampering, Repudiation, Information disclosure, Denial of service์ ์์๋ฆฌ๋ฅผ ๋ฐ์ ๋ง๋ค์ด์ก์ต๋๋ค. ์ด STRIDE ์ ํ์ ์ค์ฌ์ผ๋ก DFD๋ PFD ๊ฐ์ Flow Diagram์ ๊ทธ๋ฆฌ๊ณ ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก Treat๊ณผ ๋์๋ฐฉ์์ ์๋ณํฉ๋๋ค.
ย | โ๏ธThreat | ๐Description | ๐กDesired property |
---|---|---|---|
S | Spoofing | ๊ณต๊ฒฉ์๋ ๋ค๋ฅธ ์ฌ์ฉ์๋ก ์์ฅํฉ๋๋ค. | Authenticity |
T | Tampering | ๊ณต๊ฒฉ์๋ ์์คํ ๊ณผ ์ฌ์ฉ์ ๊ฐ์ ๊ตํ๋๋ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๋ ค๊ณ ์๋ํฉ๋๋ค. | Integrity |
R | Repudiation | ๊ณต๊ฒฉ์๋ ์์ ํ ๋ด์ฉ์ ๋ํด ๋ถ์ธํ ์ ์์ต๋๋ค. | Non-repudiability |
I | Information Disclosure | ๊ณต๊ฒฉ์๋ ์์คํ ์ด ์ ์กํ๊ฑฐ๋ ์ ์ฅํ๋ ์ค์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ์ ์์ต๋๋ค. | Confidentiality |
D | Denial of Service | ๊ณต๊ฒฉ์๋ ์์คํ ์ ๊ฐ์ฉ์ฑ์ ์ ํํ๊ฑฐ๋ ํด์น ์ ์์ต๋๋ค. | Availability |
E | Elevation of Privileg | ๊ณต๊ฒฉ์๋ ๊ถํ ์์น์ ํตํด ์์คํ ์์ ๊ถํ์ ๋ฐ๊ฑฐ๋ ๊ถํ ์ธ ์ ๋ณด์ ์ก์ธ์คํ ์ ์์ต๋๋ค. | Authorization |
STRIDE-per-interaction
Interaction(์ํธ์์ฉ)์ ๊ธฐ๋ฐ์ผ๋ก Threat์ ๋ถ์ํฉ๋๋ค. ์๋ STRIDE-per-element ๋ณด๋ค ์๊ฐ, ๋ฆฌ์์ค์ ์ผ๋ก ์ด๋์ด ์์ด์ ์ด ํํ๊ฐ ์ ํธ๋๋ค๊ณ ํฉ๋๋ค.
STRIDE-per-element
๊ฐ Element๋ฅผ ๊ธฐ๋ฐ์ผ๋ก Threat์ ๋ถ์ํฉ๋๋ค.
DREAD Model
DREAD Model์ Risk management์ ์ธ ๋ชจ๋ธ์ด์ง๋ง ์ผ๋ถ Threat modeling ์ผ๋ก ์ฐ์ด๊ธฐ๋ ํฉ๋๋ค.
ย | โ๏ธThreat | ๐Description |
---|---|---|
D | Damage | ๊ณต๊ฒฉ์ ๋ฐ๋ฏธ์ง |
R | Reproducibility | ๊ณต๊ฒฉ์ ์ผ๋ง๋ ์ฝ๊ฒ ์ฌํํ ์ ์๋์ง |
E | Exploitability | ๊ณต๊ฒฉํ๋๋ฐ ์ผ๋ง๋ ๋ง์ ์์ ์ด ํ์ํ์ง |
A | Affected users | ์ผ๋ง๋ ๋ง์ ์ ์ ๊ฐ ์ํฅ์ ๋ฐ๋์ง |
D | Discoverability | ์ฝ๊ฒ ์ฐพ์ ์ ์๋์ง |
P.A.S.T.A
P.A.S.T.A๋ 7๋จ๊ณ์ ํ๋ก์ธ์ค์ ๋ฐ๋ผ Threat modelingํฉ๋๋ค.
ย | Step | Description |
---|---|---|
1 | Define the Objectives | Object๋ฅผ ์ ์ํฉ๋๋ค. |
2 | Define the Technical Scope | Scope๋ฅผ ์ ์ํฉ๋๋ค. |
3 | Decompose the Application | ์๋น์ค๋ฅผ ์์ธํ๊ฒ ๋๋๋๋ค. |
4 | Analyze the Threats | ์ํ์ ๋ถ์ํฉ๋๋ค. |
5 | Vulnerability Analysis | ์ทจ์ฝ์ ์ ๋ถ์ํฉ๋๋ค. |
6 | Attack Analysis | ๊ณต๊ฒฉ์ ๋ถ์ํฉ๋๋ค. |
7 | Risk and Impact Analysis | ๋ฆฌ์คํฌ์ ์ํฅ๋ ฅ์ ๋ถ์ํฉ๋๋ค. |
VAST
Agile ํ๋ก์ธ์ค์ Threat modeling ํฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ๋์ ํ๋ฆ์ ๋ฐ๋ผ PFD๋ฅผ ์์ฑํ๊ณ , ์ธํ๋ผ ๊ตฌ์ฑ์์ DFD๋ฅผ ์์ฑํฉ๋๋ค. ๋ค๋ง DFD๋ ๋จ์ํ ๋ฐ์ดํฐ์ ํ๋ฆ์ด ์๋๋ผ ๊ณต๊ฒฉ์ ๊ด์ ์์ ์งํํ๋ค๊ณ ํฉ๋๋ค.
Mitigate
Threat modeling์ผ๋ก ๋ฐ๊ฒฌ๋ ์ํ ๋ฐ ๋ณด์ ์ทจ์ฝ์ ์ ๋น์ฐํ ์ํ ๋๋ ์กฐ์น๊ฐ ํ์ํฉ๋๋ค. ์์คํ ๊ตฌ์ฑ์ ๋ฐ๋ผ์ ์ ์ ํ ์กฐ์น ๋๋ ์ํ ๋ฐฉ์์ ์ฐพ์ ์ํ์ ์ค์ด๋๊ฒ ์ข์ต๋๋ค.
โ Validate
์ค์ ๋ก ์ ์ฉ๋์๋์ง ์ํ์ด ์ํ๋์๋์ง ์ฒดํฌํด์ผํฉ๋๋ค.
Tools
- https://capec.mitre.org
- https://app.diagrams.net (draw.io)
- https://github.com/plantuml/plantuml
- https://github.com/OWASP/threat-dragon
- https://github.com/mrwadams/stride-gpt
Draw.io
Diagram์ ๊ทธ๋ฆฌ๋ ๋ชฉ์ ์ด๋ผ๋ฉด draw.io๋ ์ ๋ง ์ข์ ์ ํ์ ๋๋ค. threat modeling์ด ์๋์ฌ๋ flow chart ๊ทธ๋ฆด ๋ ์ ์ฉํ๊ธฐ๋ ํด์ ์ต์ํด์ง๋ฉด ์ข์ ๋๊ตฌ์ ๋๋ค.
OWASP Threat Dragon
๐ชด Resources
- SANS
- NIST 800-154, NIST-800-53
- OWASP Threat Dragron
- CSEt
- https://csa.gov.sg/-/media/csa/documents/legislation_supplementary_references/guide-to-cyber-threat-modelling.pdf
- http://cyberdeveloper.pro/?p=170
- https://github.com/OTRF/ThreatHunter-Playbookโฆ
- https://wiki.openstack.org/wiki/Security/OSSA-Metrics#DREADโฆ
- https://vdoc.pub/documents/risk-centric-threat-modeling-process-for-attack-simulation-and-threat-analysis-6iqn1kkvi5l0
- https://www.mitre.org/sites/default/files/publications/pr_18-1174-ngci-cyber-threat-modeling.pdf
- https://github.com/hysnsec/awesome-threat-modelling
References
- https://owasp.org/www-community/Threat_Modeling_Process
- https://cheatsheetseries.owasp.org/cheatsheets/Threat_Modeling_Cheat_Sheet.html