<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: JJ (yuasa)</title>
    <description>The latest articles on Forem by JJ (yuasa) (@melonattacker).</description>
    <link>https://forem.com/melonattacker</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3653843%2F9746d40b-7b40-48d7-91cb-749db6013db5.png</url>
      <title>Forem: JJ (yuasa)</title>
      <link>https://forem.com/melonattacker</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/melonattacker"/>
    <language>en</language>
    <item>
      <title>Trying LLM-Based Threat Modeling</title>
      <dc:creator>JJ (yuasa)</dc:creator>
      <pubDate>Thu, 11 Dec 2025 06:06:45 +0000</pubDate>
      <link>https://forem.com/melonattacker/threat-thinker-trying-llm-based-threat-modeling-17o3</link>
      <guid>https://forem.com/melonattacker/threat-thinker-trying-llm-based-threat-modeling-17o3</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Hi, I’m &lt;a href="https://x.com/melonattacker" rel="noopener noreferrer"&gt;JJ (yuasa)&lt;/a&gt;, a security engineer.&lt;/p&gt;

&lt;p&gt;In this post, I’ll try out &lt;a href="https://github.com/melonattacker/threat-thinker" rel="noopener noreferrer"&gt;Threat Thinker&lt;/a&gt;, an automated threat modeling tool that uses LLMs, on several different systems. From an AWS-based system to a smart home, we’ll see how an LLM surfaces threats from architecture diagrams. My goal is to give you a feel for what LLM-based threat modeling looks like, with real outputs included.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/melonattacker/threat-thinker" rel="noopener noreferrer"&gt;https://github.com/melonattacker/threat-thinker&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Threat Thinker?
&lt;/h2&gt;

&lt;p&gt;Threat Thinker is a tool that performs automatic threat modeling from system architecture diagrams using an LLM. It can parse various diagram formats such as &lt;a href="https://mermaid.js.org/" rel="noopener noreferrer"&gt;Mermaid&lt;/a&gt;, &lt;a href="https://www.drawio.com/" rel="noopener noreferrer"&gt;draw.io&lt;/a&gt;, screenshots of architecture diagrams, and &lt;a href="https://owasp.org/www-project-threat-dragon/" rel="noopener noreferrer"&gt;OWASP Threat Dragon&lt;/a&gt;. From the relationships between components, it infers potential threats.&lt;/p&gt;

&lt;p&gt;In traditional threat modeling, once you have an architecture diagram, developers and security engineers have to manually go through and identify threats one by one. In my experience, there are broadly two types of threats:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;“Basic threats” that can appear in almost any system&lt;/li&gt;
&lt;li&gt;“System-specific threats” that you only notice if you deeply understand the specs and implementation details&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By using Threat Thinker, you can automate the initial identification of those “basic threats.” Humans can then focus on deeper analysis of “system-specific threats” and on designing countermeasures. It supports both a CLI and a web UI, so even non-security specialists can use it without much friction.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsgcvrjm6bhi6pr05pcut.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsgcvrjm6bhi6pr05pcut.png" alt="diagram-to-threats" width="800" height="557"&gt;&lt;/a&gt;&lt;br&gt;Automatically identifying basic threats from an architecture diagram
  &lt;/p&gt;

&lt;h2&gt;
  
  
  Trying Out Threat Thinker
&lt;/h2&gt;

&lt;p&gt;Let’s use Threat Thinker to identify threats for three cases: an AWS-based system, a corporate network, and a smart home. For each one, we’ll feed the architecture diagram into Threat Thinker and see which threats it extracts.&lt;/p&gt;

&lt;h3&gt;
  
  
  AWS-Based System
&lt;/h3&gt;

&lt;h4&gt;
  
  
  System Architecture
&lt;/h4&gt;

&lt;p&gt;Here is the architecture diagram of the target AWS-based system, created in Mermaid. It’s a fairly common web application architecture consisting of CloudFront → ALB → ECS → RDS/S3. We’ll use this to see how Threat Thinker extracts threats from a relatively simple stack.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;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&amp;lt;br&amp;gt;PII)]
      s3[(S3 Bucket&amp;lt;br&amp;gt;Logs/Uploads)]
    end
  end

  %% Data flows
  user -- sends HTTPS request --&amp;gt; cf
  cf -- forwards HTTPS request --&amp;gt; alb
  alb -- routes HTTP request --&amp;gt; ecs
  ecs -- reads/writes data (SQL/TLS) --&amp;gt; rds
  ecs -- stores/reads objects (S3 API) --&amp;gt; s3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Running Threat Thinker
&lt;/h4&gt;

&lt;p&gt;Below is a CLI-based execution example. You specify the Mermaid diagram file path via &lt;code&gt;--diagram&lt;/code&gt;. With &lt;code&gt;--infer-hints&lt;/code&gt; enabled, the LLM will also infer auxiliary information not explicitly written in the diagram and use that to reason about threats. In this example, we use OpenAI’s &lt;code&gt;gpt-4.1&lt;/code&gt; model and ask it to output up to 5 threats.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;threat-thinker think &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--diagram&lt;/span&gt; path/to/diagram/system.mmd &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--infer-hints&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--topn&lt;/span&gt; 5 &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--llm-api&lt;/span&gt; openai &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--llm-model&lt;/span&gt; gpt-4.1 &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--out-dir&lt;/span&gt; path/to/report/dir
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Extracted Threats
&lt;/h4&gt;

&lt;p&gt;The top 5 threats in the generated Markdown report are as follows. These are all typical risks you might see when building a web application on AWS: issues around authentication/authorization, lack of encryption, insufficient logging and monitoring, and S3 misconfiguration.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;ID&lt;/th&gt;
&lt;th&gt;Threat&lt;/th&gt;
&lt;th&gt;Severity&lt;/th&gt;
&lt;th&gt;STRIDE&lt;/th&gt;
&lt;th&gt;Affected Components&lt;/th&gt;
&lt;th&gt;Score&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;T001&lt;/td&gt;
&lt;td&gt;Potential Lack of Authentication/Authorization on ALB to ECS Path&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Spoofing / EoP&lt;/td&gt;
&lt;td&gt;ALB → ECS&lt;/td&gt;
&lt;td&gt;8.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T002&lt;/td&gt;
&lt;td&gt;Unencrypted Traffic Between ALB and ECS Allows Tampering and Disclosure&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Tampering / Info Disc.&lt;/td&gt;
&lt;td&gt;ALB → ECS&lt;/td&gt;
&lt;td&gt;8.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T003&lt;/td&gt;
&lt;td&gt;Exposure of PII in RDS Without Explicit Encryption at Rest&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Info Disclosure&lt;/td&gt;
&lt;td&gt;ECS ↔ RDS&lt;/td&gt;
&lt;td&gt;7.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T004&lt;/td&gt;
&lt;td&gt;Insufficient Logging and Monitoring for Sensitive Operations&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;Repudiation&lt;/td&gt;
&lt;td&gt;ECS / RDS / S3&lt;/td&gt;
&lt;td&gt;6.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T005&lt;/td&gt;
&lt;td&gt;Potential S3 Bucket Misconfiguration Exposing Internal Data&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;Info Disclosure&lt;/td&gt;
&lt;td&gt;S3&lt;/td&gt;
&lt;td&gt;6.0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;In the HTML report, you can visually see which part of the architecture each threat maps to.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcari4maf93112gdzyabl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcari4maf93112gdzyabl.png" alt="architecture-graph" width="800" height="454"&gt;&lt;/a&gt;&lt;br&gt;Extracted architecture graph
  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsyfrkphfcdzqr8kmiog4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsyfrkphfcdzqr8kmiog4.png" alt="threat-visualization" width="800" height="404"&gt;&lt;/a&gt;&lt;br&gt;Visualizing where threats exist in the architecture
  &lt;/p&gt;

&lt;h3&gt;
  
  
  Corporate Network
&lt;/h3&gt;

&lt;h4&gt;
  
  
  System Architecture
&lt;/h4&gt;

&lt;p&gt;Here is the architecture diagram for the target corporate network, created in draw.io. It’s a simple small/medium business network split into three zones: Internet, DMZ, and internal network.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvhf2s2e7klzixjj7pmyy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvhf2s2e7klzixjj7pmyy.png" alt="corporate-network" width="611" height="821"&gt;&lt;/a&gt;&lt;br&gt;Corporate network architecture diagram
  &lt;/p&gt;

&lt;h4&gt;
  
  
  Running Threat Thinker
&lt;/h4&gt;

&lt;p&gt;This time, we’ll use the web UI. You can start the web UI with &lt;code&gt;threat-thinker webui&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;threat-thinker webui
ℹ️ Starting Threat Thinker Web UI
&lt;span class="k"&gt;*&lt;/span&gt; Running on &lt;span class="nb"&gt;local &lt;/span&gt;URL:  http://127.0.0.1:7860
&lt;span class="k"&gt;*&lt;/span&gt; To create a public &lt;span class="nb"&gt;link&lt;/span&gt;, &lt;span class="nb"&gt;set&lt;/span&gt; &lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="nv"&gt;share&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;True&lt;span class="sb"&gt;`&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="sb"&gt;`&lt;/span&gt;launch&lt;span class="o"&gt;()&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="nb"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Copy and paste the draw.io (XML) diagram source, and set &lt;code&gt;Diagram Format&lt;/code&gt; to &lt;code&gt;drawio&lt;/code&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr0bnrvqig2niixfonbxs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr0bnrvqig2niixfonbxs.png" alt="copy-paste-drawio" width="800" height="558"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Configure the options as needed and click &lt;code&gt;Generate Report&lt;/code&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4j16wgerr4ofoh3cgsw3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4j16wgerr4ofoh3cgsw3.png" alt="generate-report" width="800" height="522"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Extracted Threats
&lt;/h4&gt;

&lt;p&gt;The top 5 threats in the Markdown report are as follows. They include risks such as attacks on the public-facing web server, injection vulnerabilities due to insufficient input validation, lateral movement from the DMZ to the internal network, and exposure of sensitive data stored on internal servers. Overall, it points out a balanced set of risks that you would typically expect in a corporate network.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;ID&lt;/th&gt;
&lt;th&gt;Threat&lt;/th&gt;
&lt;th&gt;Severity&lt;/th&gt;
&lt;th&gt;STRIDE&lt;/th&gt;
&lt;th&gt;Affected Components&lt;/th&gt;
&lt;th&gt;Score&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;T001&lt;/td&gt;
&lt;td&gt;External Attackers Can Reach Public-Facing Web Server&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Spoofing / Tampering&lt;/td&gt;
&lt;td&gt;Internet → Web Server&lt;/td&gt;
&lt;td&gt;9.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T002&lt;/td&gt;
&lt;td&gt;Insufficient Input Validation on Public Web Server&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Tampering / Info Disc.&lt;/td&gt;
&lt;td&gt;Web Server&lt;/td&gt;
&lt;td&gt;8.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T003&lt;/td&gt;
&lt;td&gt;Potential Lateral Movement from DMZ to Internal Network&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;EoP / Info Disc.&lt;/td&gt;
&lt;td&gt;Web Server → Internal Net&lt;/td&gt;
&lt;td&gt;8.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T004&lt;/td&gt;
&lt;td&gt;Sensitive Data Exposure on File and Directory Servers&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Info Disclosure&lt;/td&gt;
&lt;td&gt;File Server / AD&lt;/td&gt;
&lt;td&gt;8.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T005&lt;/td&gt;
&lt;td&gt;VPN Gateway Exposed to Credential Attacks&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Spoofing / EoP&lt;/td&gt;
&lt;td&gt;Internet → VPN GW&lt;/td&gt;
&lt;td&gt;8.0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Smart Home
&lt;/h3&gt;

&lt;h4&gt;
  
  
  System Architecture
&lt;/h4&gt;

&lt;p&gt;Here is the architecture diagram for the target smart home system, created with the threat modeling tool &lt;a href="https://owasp.org/www-project-threat-dragon/" rel="noopener noreferrer"&gt;OWASP Threat Dragon&lt;/a&gt;. It represents a typical cloud-connected smart home environment: residents use a mobile app to access a cloud control service, which in turn controls home devices such as IP cameras, smart locks, and smart speakers via the home router.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuujybeoftc6fa174v70p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuujybeoftc6fa174v70p.png" alt="smart-home" width="800" height="406"&gt;&lt;/a&gt;&lt;br&gt;Smart home architecture diagram
  &lt;/p&gt;

&lt;h4&gt;
  
  
  Running Threat Thinker
&lt;/h4&gt;

&lt;p&gt;We’ll use the web UI again for this example.&lt;/p&gt;

&lt;p&gt;Threat Thinker has a RAG feature that lets you upload Markdown, HTML, and other documents to build a Knowledge Base that the LLM can reference during threat reasoning. Since our target is a smart home system, we’ll build a Knowledge Base based on the &lt;a href="https://owasp.org/www-project-internet-of-things/" rel="noopener noreferrer"&gt;OWASP IoT Top 10&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3bpelkvx0m8rh8x2ee9q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3bpelkvx0m8rh8x2ee9q.png" alt="build-kb" width="800" height="457"&gt;&lt;/a&gt;&lt;br&gt;Building a Knowledge Base based on OWASP IoT Top 10
  &lt;/p&gt;

&lt;p&gt;Then we configure the threat inference settings so that the model uses that Knowledge Base.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcq9x5q9e5nnwsvwp9tep.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcq9x5q9e5nnwsvwp9tep.png" alt="use-kb" width="800" height="527"&gt;&lt;/a&gt;&lt;br&gt;Using the Knowledge Base during threat inference
  &lt;/p&gt;

&lt;h4&gt;
  
  
  Extracted Threats
&lt;/h4&gt;

&lt;p&gt;The top 5 threats in the Markdown report are as follows. The model points out issues such as potentially unencrypted communication between the mobile app and the cloud service, lack of assurance that commands sent from the cloud to home devices are authentic, and insufficient protection for video/logs stored in the cloud. It also notes that if user authentication is weak, third parties could control devices.&lt;/p&gt;

&lt;p&gt;Overall, the results feel reasonable for a threat analysis that references OWASP IoT Top 10.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;ID&lt;/th&gt;
&lt;th&gt;Threat&lt;/th&gt;
&lt;th&gt;Severity&lt;/th&gt;
&lt;th&gt;STRIDE&lt;/th&gt;
&lt;th&gt;Affected Components&lt;/th&gt;
&lt;th&gt;Score&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;T001&lt;/td&gt;
&lt;td&gt;Insecure Communication Between Mobile App and Cloud Control Service&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Tampering / Info Disc.&lt;/td&gt;
&lt;td&gt;Mobile App ↔ Cloud&lt;/td&gt;
&lt;td&gt;9.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T002&lt;/td&gt;
&lt;td&gt;Lack of Authentication for Device Commands from Cloud to Home Network&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Spoofing / EoP&lt;/td&gt;
&lt;td&gt;Cloud → Home Devices&lt;/td&gt;
&lt;td&gt;9.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T003&lt;/td&gt;
&lt;td&gt;Insecure Storage of Sensitive Video/Logs in Cloud&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Info Disc. / Repudiation&lt;/td&gt;
&lt;td&gt;Cloud Storage&lt;/td&gt;
&lt;td&gt;8.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T004&lt;/td&gt;
&lt;td&gt;Unencrypted Video/Telemetry Data in Transit&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Info Disc. / Tampering&lt;/td&gt;
&lt;td&gt;Devices ↔ Cloud&lt;/td&gt;
&lt;td&gt;8.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T005&lt;/td&gt;
&lt;td&gt;Weak or Missing Authentication for Mobile App User Actions&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Spoofing / EoP&lt;/td&gt;
&lt;td&gt;User ↔ Mobile App&lt;/td&gt;
&lt;td&gt;8.0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;When you use Threat Dragon as the input format, Threat Thinker can output the results back in Threat Dragon format with the inferred threats added to the diagram.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F27dg0vrv25ppzf3g7zaz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F27dg0vrv25ppzf3g7zaz.png" alt="use-kb" width="800" height="543"&gt;&lt;/a&gt;&lt;br&gt;Threats added and linked to the relevant elements
  &lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;In this post, we used Threat Thinker to perform LLM-based threat modeling on three different systems: an AWS-based system, a corporate network, and a smart home. We saw that just by feeding in an architecture diagram, Threat Thinker can automatically identify a solid set of basic threats.&lt;/p&gt;

&lt;p&gt;At the same time, risks tied to business logic or to organization-specific operations still need human review. LLM-based threat modeling is not a replacement for expert review. Rather, it’s best used as a way to quickly generate an initial draft or as a safety net to prevent oversights. By importing guidelines like the OWASP IoT Top 10 into the Knowledge Base, you can also steer it toward more domain-specific reasoning.&lt;/p&gt;

&lt;p&gt;If this sounds interesting, I encourage you to try running Threat Thinker against your own architecture diagrams and see what threats it surfaces.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>security</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
