[Threat Thinker] LLM 기반 위협 모델링 시도

발행: (2025년 12월 11일 오후 03:06 GMT+9)
5 min read
원문: Dev.to

Source: Dev.to

소개

안녕하세요, 저는 JJ (yuasa)이며 보안 엔지니어입니다.

이 글에서는 LLM을 활용한 자동 위협 모델링 도구인 Threat Thinker를 여러 시스템에 적용해 보겠습니다. AWS 기반 시스템부터 스마트 홈까지, LLM이 아키텍처 다이어그램에서 어떻게 위협을 도출하는지 살펴볼 것입니다. 실제 출력 결과를 포함해 LLM 기반 위협 모델링이 어떤 모습인지 감을 잡으시길 바랍니다.

Threat Thinker란?

Threat Thinker는 시스템 아키텍처 다이어그램을 입력받아 LLM을 이용해 자동으로 위협 모델링을 수행하는 도구입니다. Mermaid, draw.io, 아키텍처 다이어그램 스크린샷, OWASP Threat Dragon 등 다양한 형식의 다이어그램을 파싱할 수 있습니다. 컴포넌트 간 관계를 분석해 잠재적인 위협을 추론합니다.

전통적인 위협 모델링에서는 아키텍처 다이어그램을 만든 뒤 개발자와 보안 엔지니어가 일일이 위협을 찾아야 합니다. 경험상 위협은 크게 두 종류로 나뉩니다.

  • 기본 위협 – 거의 모든 시스템에 존재할 수 있는 위협
  • 시스템‑특화 위협 – 해당 시스템의 사양과 구현 세부 사항을 깊이 이해해야만 발견되는 위협

Threat Thinker를 사용하면 이러한 “기본 위협”을 자동으로 식별할 수 있습니다. 이후 사람은 “시스템‑특화 위협”을 더 깊게 분석하고 대응 방안을 설계하는 데 집중하면 됩니다. CLI와 웹 UI를 모두 제공하므로 보안 비전문가도 큰 어려움 없이 사용할 수 있습니다.

자동으로 아키텍처 다이어그램에서 기본 위협을 식별

Threat Thinker 사용해 보기

세 가지 사례(AWS 기반 시스템, 기업 네트워크, 스마트 홈)에 대해 Threat Thinker에 아키텍처 다이어그램을 입력하고 어떤 위협이 도출되는지 확인해 보겠습니다.

AWS 기반 시스템

시스템 아키텍처

graph LR
  %% Trust boundaries
  subgraph Internet
    user[User]
  end

  subgraph AWS_Edge[Edge]
    cf[CloudFront]
  end

  subgraph VPC[VPC]
    subgraph PublicSubnet[Public subnet]
      alb[ALB]
    end
    subgraph PrivateSubnet[Private subnet]
      ecs[ECS Service]
      rds[(Customer RDS
PII)]
      s3[(S3 Bucket
Logs/Uploads)]
    end
  end

  %% Data flows
  user -- sends HTTPS request --> cf
  cf -- forwards HTTPS request --> alb
  alb -- routes HTTP request --> ecs
  ecs -- reads/writes data (SQL/TLS) --> rds
  ecs -- stores/reads objects (S3 API) --> s3

Threat Thinker 실행 (CLI)

threat-thinker think \
    --diagram path/to/diagram/system.mmd \
    --infer-hints \
    --topn 5 \
    --llm-api openai \
    --llm-model gpt-4.1 \
    --out-dir path/to/report/dir

추출된 위협

ID위협 내용심각도STRIDE영향을 받는 컴포넌트점수
T001ALB → ECS 경로에 인증/인가가 부족할 가능성높음Spoofing / EoPALB → ECS8.0
T002ALB와 ECS 사이의 트래픽이 암호화되지 않아 변조 및 정보 노출 위험높음Tampering / Info Disc.ALB → ECS8.0
T003RDS에 저장된 PII가 암호화되지 않은 상태로 노출될 가능성높음Info DisclosureECS ↔ RDS7.0
T004민감한 작업에 대한 로깅 및 모니터링이 충분하지 않음중간RepudiationECS / RDS / S36.0
T005S3 버킷 설정 오류로 내부 데이터가 외부에 노출될 가능성중간Info DisclosureS36.0

추출된 아키텍처 그래프

아키텍처 내 위협 위치 시각화

기업 네트워크

시스템 아키텍처

기업 네트워크 아키텍처 다이어그램

Threat Thinker 실행 (Web UI)

$ threat-thinker webui
ℹ️ Starting Threat Thinker Web UI
* Running on local URL: http://127.0.0.1:7860
* To create a public link, set `share=True` in `launch()`.
  1. 브라우저에서 웹 UI를 엽니다.
  2. draw.io (XML) 다이어그램 소스를 복사해 붙여넣고 Diagram Formatdrawio로 설정합니다.
  3. 필요에 따라 옵션을 조정한 뒤 Generate Report 버튼을 클릭합니다.

(UI 단계에 대한 스크린샷은 생략했습니다.)

Back to Blog

관련 글

더 보기 »

와우! 2025

My YOW! Experience 나는 YOW! 컨퍼런스를 10년 넘게 따라와 왔습니다. 이 컨퍼런스는 멜버른, 브리즈번, 시드니 세 개의 호주 도시에서 열리며 f...