[{"data":1,"prerenderedAt":997},["ShallowReactive",2],{"page-\u002Fagentic-modelling\u002F02-say-what-data-moves":3,"navigation":675},{"id":4,"title":5,"body":6,"description":667,"extension":668,"meta":669,"navigation":670,"path":671,"seo":672,"stem":673,"__hash__":674},"docs\u002F07.agentic-modelling\u002F02.02-say-what-data-moves.md","Lesson 2: Say What Data Moves",{"type":7,"value":8,"toc":651},"minimark",[9,13,31,36,39,42,46,54,58,61,66,69,76,81,94,100,106,111,122,126,129,134,138,146,151,155,166,170,215,272,275,304,307,311,317,359,365,368,403,406,435,441,467,471,480,498,504,510,516,528,536,540,543,551,563,568,573,575,617,621,628,638,641,645],[10,11,5],"h1",{"id":12},"lesson-2-say-what-data-moves",[14,15,16,21,22,26,27],"p",{},[17,18,20],"a",{"href":19},"\u002Fagentic-modelling","Training overview"," · Lesson 2 of 11 · Previous: ",[17,23,25],{"href":24},"\u002Fagentic-modelling\u002F01-draw-the-agent","Draw the agent"," · Next: ",[17,28,30],{"href":29},"\u002Fagentic-modelling\u002F03-mark-who-is-outside","Mark who is outside",[32,33,35],"h2",{"id":34},"goal","Goal",[14,37,38],{},"Data items carry the facts. Classify each item, then attach it to the flows that carry it and the elements that hold it.",[14,40,41],{},"After this lesson you know which facts about content the analysis reads, and why an item has to be on a flow to count.",[32,43,45],{"id":44},"what-you-start-from","What you start from",[14,47,48,49,53],{},"Your model from lesson 1, or import ",[17,50,52],{"href":51},"\u002Fguides\u002Fagentic-modelling\u002FL1-solution.zip","L1-solution.zip",".",[32,55,57],{"id":56},"the-recipe-steps","The recipe steps",[14,59,60],{},"Classifying and attaching are one act in this lesson, so it teaches two steps.",[62,63,65],"h3",{"id":64},"step-1-say-what-data-moves","Step 1: Say what data moves",[14,67,68],{},"Draw each data item once and classify it: its sensitivity, whether it is a credential, and its origin (who can write it).",[14,70,71,75],{},[72,73,74],"strong",{},"Why:"," The facts about content live on the data items: private data, untrusted content and credentials are read from them.",[14,77,78],{},[72,79,80],{},"Ask:",[82,83,84,88,91],"ul",{},[85,86,87],"li",{},"Which content does each agent read: tickets, documents, web pages, tool results, memory?",[85,89,90],{},"For each item: how sensitive is it, is it a credential, and who can write it?",[85,92,93],{},"Which secrets does each agent, harness, MCP server or sandbox hold, and what does each one unlock?",[14,95,96,99],{},[72,97,98],{},"Classes:"," User Input, Customer & Personal Data, User Credentials, Agent Credential, System Prompt & Agent Instructions.",[14,101,102,105],{},[72,103,104],{},"Data item fields:"," Sensitivity, Credential, Origin.",[14,107,108],{},[72,109,110],{},"What the analysis reads here:",[82,112,113,116,119],{},[85,114,115],{},"A credential: Agent Credential, STS Temporary Credentials, Authentication Tokens, User Credentials, and 9 more in modules you may have installed.",[85,117,118],{},"Agent memory: Conversation State \u002F Checkpoint, Knowledge Item.",[85,120,121],{},"A knowledge item: Knowledge Item.",[62,123,125],{"id":124},"step-2-attach-the-data","Step 2: Attach the data",[14,127,128],{},"Attach each item to every flow that carries it, above all every Context Ingress into an agent, and to every element that holds it: credential holders, stores and MCP servers. Attach a credential to its holder (the container, when it sits in an environment variable or a file) and to the tool call that presents it.",[14,130,131,133],{},[72,132,74],{}," A classified item that rides on no flow settles nothing at the agent.",[14,135,136],{},[72,137,80],{},[82,139,140,143],{},[85,141,142],{},"Which flows carry each item into the agent?",[85,144,145],{},"Which elements hold each item at rest?",[14,147,148,150],{},[72,149,98],{}," Context Ingress, Agent Tool Call, Knowledge Write.",[14,152,153],{},[72,154,110],{},[82,156,157,160,163],{},[85,158,159],{},"Content flowing into an agent: Context Ingress.",[85,161,162],{},"An agent calling a tool, an MCP server or another agent: Agent Tool Call.",[85,164,165],{},"A source whose normal traffic is the product's own: Public AI Artifact Hub.",[32,167,169],{"id":168},"steps","Steps",[14,171,172,173,176,177,180,181,184,185,188,189,192,193,196,197,200,201,204,205,207,208,211,212,53],{},"To add a data item, double-click an element or flow that carries it. Its settings open in a panel at the bottom of the canvas. Go to its ",[72,174,175],{},"Data"," tab and click the round ",[72,178,179],{},"+"," button. The ",[72,182,183],{},"Create New Data Entity"," dialog opens: set ",[72,186,187],{},"Sensitivity",", ",[72,190,191],{},"Origin"," and ",[72,194,195],{},"Credential"," on its ",[72,198,199],{},"General"," tab, and pick its class in the ",[72,202,203],{},"Class"," picker. To attach an item that already exists, tick it in the ",[72,206,175],{}," tab of the next element or flow. Choose ",[72,209,210],{},"All"," above the list to see every item in the model. To change an item later, click the pencil icon on its row: the dialog then reads ",[72,213,214],{},"Edit Data Entity",[216,217,218,225,231,237,252,262],"ol",{},[85,219,220,221,224],{},"Add the data item ",[72,222,223],{},"Ticket text"," (class User Input). Sensitivity: Internal; Origin: Arbitrary public; Credential: No.",[85,226,220,227,230],{},[72,228,229],{},"Customer records"," (class Customer & Personal Data). Sensitivity: Confidential; Origin: Arbitrary public; Credential: No.",[85,232,220,233,236],{},[72,234,235],{},"CRM API key"," (class Agent Credential). Sensitivity: Restricted; Origin: Curated internal; Credential: Yes — a credential.",[85,238,239,240,242,243,188,246,192,249,53],{},"Attach ",[72,241,223],{}," to ",[72,244,245],{},"New ticket",[72,247,248],{},"Ticket system",[72,250,251],{},"Context Ingress: ticket",[85,253,239,254,242,256,192,259,53],{},[72,255,229],{},[72,257,258],{},"CRM",[72,260,261],{},"Context Ingress: customer records",[85,263,239,264,242,266,192,269,53],{},[72,265,235],{},[72,267,268],{},"Copilot container",[72,270,271],{},"CRM lookup",[14,273,274],{},"Each item carries a different kind of fact:",[82,276,277,285,293],{},[85,278,279,281,282,53],{},[72,280,223],{}," is what customers write. Anyone can open a ticket, so its origin is ",[72,283,284],{},"Arbitrary public",[85,286,287,289,290,292],{},[72,288,229],{}," are names, contracts and contact details. Customers fill in some of those fields themselves (name, address, notes), so the records' origin is ",[72,291,284],{}," too. An account does not make content trusted: anyone who can sign up can write those fields.",[85,294,295,297,298,300,301,303],{},[72,296,235],{}," is the service key the copilot presents to the CRM. It is a credential: whoever holds it can read customer records. You attach it in two places. The key lives in the copilot container's environment, so it goes on ",[72,299,268],{},", the element that holds it. Every CRM lookup presents it, so it also goes on ",[72,302,271],{},", the flow that carries it.",[14,305,306],{},"Generate again.",[32,308,310],{"id":309},"what-you-should-see","What you should see",[14,312,313,316],{},[72,314,315],{},"Findings:"," 1 systemic finding: 0 Confirmed · 1 Not ruled out.",[318,319,325],"div",{"className":320,"tabIndex":322,"role":323,"ariaLabel":324},[321],"table-frame",0,"region","Table: What you should see",[326,327,328,344],"table",{},[329,330,331],"thead",{},[332,333,334,338,341],"tr",{},[335,336,337],"th",{},"Finding",[335,339,340],{},"State",[335,342,343],{},"Legs",[345,346,347],"tbody",{},[332,348,349,353,356],{},[350,351,352],"td",{},"Lethal trifecta at Support copilot",[350,354,355],{},"Not ruled out · unmitigated",[350,357,358],{},"U present · P present · X undetermined · W undetermined (aggravating)",[14,360,361,364],{},[72,362,363],{},"Facts to establish:"," 7 questions.",[14,366,367],{},"Open questions on Not ruled out findings:",[82,369,370],{},[85,371,372,373],{},"Lethal trifecta at Support copilot:\n",[82,374,375,387,390,393],{},[85,376,377,378,381,382,386],{},"Draw the outbound flows of Support copilot, or answer ",[72,379,380],{},"Network Egress Default-Deny Allowlist"," (",[383,384,385],"code",{},"network_egress_default_deny_allowlist",", in Network & Connectivity) on Support copilot",[85,388,389],{},"Every drawn route from Ticket system ends inside; assert its outbound flows complete if nothing else leaves it",[85,391,392],{},"Every drawn route from CRM ends inside; assert its outbound flows complete if nothing else leaves it",[85,394,395,396,381,399,402],{},"Draw the outbound flows of Staff console, or answer ",[72,397,398],{},"Markdown Image Rendering Policy",[383,400,401],{},"markdown_image_rendering_policy",", in Output Rendering Exfiltration) on Staff console",[14,404,405],{},"Facts that could raise a finding:",[82,407,408,418,432],{},[85,409,410,411,381,414,417],{},"Set the attribute ",[72,412,413],{},"Code Execution Tools Present",[383,415,416],{},"code_execution_tools_present",", in Application Security) on Support copilot, or draw its Agent Tool Call to the harness",[85,419,410,420,381,423,426,427,381,429,431],{},[72,421,422],{},"Consequential Tools Present",[383,424,425],{},"consequential_tools_present",", in Human Oversight) or ",[72,428,413],{},[383,430,416],{},", in Application Security) on Support copilot",[85,433,434],{},"Draw the runtime boundary or the Agent Tool Call that ties Support copilot to its harness",[14,436,437,440],{},[72,438,439],{},"Model gaps:"," 1 of 1 agents have no hosting harness drawn, so their W cannot be read from one (on Support copilot)",[14,442,443,444,447,448,451,452,455,456,462,463,466],{},"The first finding appears: a lethal trifecta at the support copilot, ",[72,445,446],{},"Not ruled out",". Its questions are listed under ",[72,449,450],{},"Open questions on Not ruled out findings",". The rest sit under ",[72,453,454],{},"Facts that could raise a finding",", and one of them is new: ",[457,458,459,460,417],"em",{},"Set the attribute Code Execution Tools Present (",[383,461,416],{},". Its group header reads ",[72,464,465],{},"Settles: CRM API key","; hover over the header for the browser's tooltip, which shows that it settles the key's credential chain.",[32,468,470],{"id":469},"what-changed-and-why","What changed and why",[14,472,473,476,477,479],{},[72,474,475],{},"U is present"," (untrusted content reaches the agent). Ticket text and Customer records both have the origin ",[72,478,284],{},". Because each item is on a Context Ingress into the copilot, the copilot reads untrusted content on both.",[14,481,482,485,486,489,490,493,494,497],{},[72,483,484],{},"P is present"," (the agent can read private data). Ticket text is ",[72,487,488],{},"Internal"," and Customer records are ",[72,491,492],{},"Confidential",". Both count as private: any sensitivity except ",[72,495,496],{},"Public"," does. Both reach the copilot on a Context Ingress.",[14,499,500,503],{},[72,501,502],{},"X is undetermined"," (the agent can transmit to where an outsider reads). The copilot sends data to the ticket system, the staff console and the CRM, and each of them can pass it on. The ticket system and the staff console are in the support network, which is Internal. The customer and the CRM sit outside every boundary, which also reads as Internal. So every destination reads as Internal, and the analysis cannot tell whether an outsider can read what arrives. The finding's questions ask about these outbound flows. The two on the ticket system and the CRM say every drawn route from them ends inside: that reads from the zones, as in lesson 1, and lesson 3 changes it.",[14,505,506,509],{},[72,507,508],{},"Not ruled out is not a lower grade of risk."," Two required legs are present and the third is undetermined. The finding says the model is missing a fact, not that the risk is smaller.",[14,511,512,515],{},[72,513,514],{},"An item counts only where it is attached."," A classified item that rides on no flow settles nothing at the agent. That is why Ticket text is attached to the Context Ingress into the copilot, not only to the ticket system that holds it.",[14,517,518,521,522,525,526,53],{},[72,519,520],{},"The key raises a credential question."," A credential chain needs a foothold, a way to reach a credential, and something the credential unlocks. The copilot reads untrusted content, so an injected copilot is a possible foothold. The key sits in the copilot's own container. The question asks whether the copilot can read the files and environment of that container: by running code, or through a harness that reads files for it. If it can, an injected copilot can reach the key. You also see the same question on the trifecta's P leg, on an undetermined ",[72,523,524],{},"shared space"," route: there, the key is private data the copilot might reach. No credential chain is raised yet, so the question sits under ",[72,527,454],{},[14,529,530,533,534,53],{},[72,531,532],{},"Injection to action is still short of a finding."," Untrusted input is now present, but nothing says whether the copilot's tools can act or whether anything approves them. Those questions stay under ",[72,535,454],{},[32,537,539],{"id":538},"exercise-an-empty-origin-is-not-an-answer","Exercise: An empty origin is not an answer",[14,541,542],{},"Make this change and generate again:",[14,544,545,546,550],{},"On a scratch copy: import ",[17,547,549],{"href":548},"\u002Fguides\u002Fagentic-modelling\u002FL2-solution.zip","L2-solution.zip"," and rename it.",[216,552,553,559],{},[85,554,555,556,558],{},"On ",[72,557,223],{},", clear Origin.",[85,560,555,561,558],{},[72,562,229],{},[14,564,565,567],{},[72,566,315],{}," 0 systemic findings: 0 Confirmed · 0 Not ruled out.",[14,569,570,572],{},[72,571,363],{}," 9 questions.",[14,574,405],{},[82,576,577,583,586,589,599,605,611,613,615],{},[85,578,410,579,381,581,417],{},[72,580,413],{},[383,582,416],{},[85,584,585],{},"Set the origin of Customer records",[85,587,588],{},"Set the origin of Ticket text",[85,590,410,591,381,593,426,595,381,597,431],{},[72,592,422],{},[383,594,425],{},[72,596,413],{},[383,598,416],{},[85,600,395,601,381,603,402],{},[72,602,398],{},[383,604,401],{},[85,606,377,607,381,609,386],{},[72,608,380],{},[383,610,385],{},[85,612,434],{},[85,614,392],{},[85,616,389],{},[14,618,619,440],{},[72,620,439],{},[14,622,623,624,627],{},"Untrusted input goes undetermined, so the lethal trifecta drops short of a finding, and ",[72,625,626],{},"Facts to establish"," asks for the origin of both items. Nothing else in this model makes the content untrusted yet. The customer and the CRM sit outside every boundary, which reads as Internal, and neither one's class marks content as untrusted by itself.",[14,629,630,631,634,635,637],{},"An empty origin is different from ",[72,632,633],{},"Not assessed",". ",[72,636,633],{}," is an answer: it means nobody established who writes the content, and it counts as untrusted. An empty field means nobody answered, and the analysis asks.",[14,639,640],{},"Delete the copy when you are done.",[32,642,644],{"id":643},"next","Next",[14,646,647,650],{},[17,648,649],{"href":29},"Lesson 3: Mark who is outside",". You put the customer, the CRM and the model provider in zones, and X gets decided.",{"title":652,"searchDepth":653,"depth":653,"links":654},"",3,[655,657,658,662,663,664,665,666],{"id":34,"depth":656,"text":35},2,{"id":44,"depth":656,"text":45},{"id":56,"depth":656,"text":57,"children":659},[660,661],{"id":64,"depth":653,"text":65},{"id":124,"depth":653,"text":125},{"id":168,"depth":656,"text":169},{"id":309,"depth":656,"text":310},{"id":469,"depth":656,"text":470},{"id":538,"depth":656,"text":539},{"id":643,"depth":656,"text":644},"Training overview · Lesson 2 of 11 · Previous: Draw the agent · Next: Mark who is outside","md",{},true,"\u002Fagentic-modelling\u002F02-say-what-data-moves",{"title":5,"description":667},"07.agentic-modelling\u002F02.02-say-what-data-moves","l8gwOkUWoGjcq11SXJbARZDTALD2LITAhi7sAOyXlpU",[676,731,766,821,855,899,914,977],{"title":677,"description":678,"path":679,"stem":680,"children":681,"page":-1},"Platform","Modelling, analysis, findings and controls in the Dethernety platform.","\u002Fplatform","01.platform",[682,686,691,696,701,706,711,716,721,726],{"title":683,"path":679,"stem":684,"description":685},"Dethernety User Documentation","01.platform\u002Findex","User guide for the Dethernety threat modeling platform",{"title":687,"path":688,"stem":689,"description":690},"Quick Start","\u002Fplatform\u002Fquick-start","01.platform\u002F01.quick-start","Install Dethernety on your own machine, draw a four-element model and read its first threat finding.",{"title":692,"path":693,"stem":694,"description":695},"Building Your First Model","\u002Fplatform\u002Fbuilding-your-first-model","01.platform\u002F02.building-your-first-model","Build a threat model of an online store in about 30 minutes, run a Threat Report on it, and raise an issue from a finding.",{"title":697,"path":698,"stem":699,"description":700},"Security Analysis Workflow","\u002Fplatform\u002Fsecurity-analysis-workflow","01.platform\u002F03.security-analysis-workflow","How to run security analysis and interpret results to improve your threat models.",{"title":702,"path":703,"stem":704,"description":705},"Managing Findings","\u002Fplatform\u002Fmanaging-findings","01.platform\u002F04.managing-findings","Record decisions on system-generated exposures and countermeasures — affirm them as confirmed live risk, or mute them as not applicable, false positive, waived, or superseded — instead of deleting them.",{"title":707,"path":708,"stem":709,"description":710},"Working with Security Controls","\u002Fplatform\u002Fworking-with-security-controls","01.platform\u002F05.working-with-security-controls","Learn how to create, manage, and assign reusable security controls in Dethernety to protect your threat models.",{"title":712,"path":713,"stem":714,"description":715},"Issue Management Guide","\u002Fplatform\u002Fissue-management-guide","01.platform\u002F06.issue-management-guide","Issue tracking, filtering, and management in Dethernety.",{"title":717,"path":718,"stem":719,"description":720},"Boundary Trust Zones","\u002Fplatform\u002Fboundary-trust-zones","01.platform\u002F07.boundary-trust-zones","Record each security boundary's trust zone, business domains, operational role, and approved channels to document how your system is meant to be segmented.",{"title":722,"path":723,"stem":724,"description":725},"Understanding Modules","\u002Fplatform\u002Funderstanding-modules","01.platform\u002F08.understanding-modules","How Dethernety's module system extends your threat modeling capabilities.",{"title":727,"path":728,"stem":729,"description":730},"Component Configuration Guide","\u002Fplatform\u002Fcomponent-configuration-guide","01.platform\u002F09.component-configuration-guide","Detailed guide on configuring different types of components and their security implications.",{"title":732,"description":733,"path":734,"stem":735,"children":736,"page":-1},"BYODt cloud","Deploying the platform yourself and connecting it to the BYODt cloud.","\u002Fbyodt-cloud","02.byodt-cloud",[737,741,746,751,756,761],{"title":738,"path":734,"stem":739,"description":740},"BYODt Deployment","02.byodt-cloud\u002Findex","Run Dethernety on your own machine: install, configure, operate, and recover",{"title":742,"path":743,"stem":744,"description":745},"Installing the BYODt Deployment","\u002Fbyodt-cloud\u002Finstallation","02.byodt-cloud\u002F01.installation","Install Dethernety on your own machine: check the requirements, download and verify the signed bundle, start it, and confirm the deployment is healthy",{"title":747,"path":748,"stem":749,"description":750},"Configuring the BYODt Deployment","\u002Fbyodt-cloud\u002Fconfiguration","02.byodt-cloud\u002F02.configuration","The .env settings reference, the generated secret file, database storage, and how to apply a change",{"title":752,"path":753,"stem":754,"description":755},"Operating the BYODt Deployment","\u002Fbyodt-cloud\u002Foperations","02.byodt-cloud\u002F03.operations","The byodt command reference and the day-to-day tasks: start, stop, inspect, back up, restore, TLS, upgrade, remove",{"title":757,"path":758,"stem":759,"description":760},"Connecting the BYODt Deployment to the Cloud","\u002Fbyodt-cloud\u002Fcloud","02.byodt-cloud\u002F04.cloud","Add cloud sign-in and content packages from the operator console, and disconnect again",{"title":762,"path":763,"stem":764,"description":765},"Troubleshooting the BYODt Deployment","\u002Fbyodt-cloud\u002Ftroubleshooting","02.byodt-cloud\u002F05.troubleshooting","Symptom, cause, and fix for the failures this deployment reports",{"title":767,"description":768,"path":769,"stem":770,"children":771,"page":-1},"Dethereal","The Claude Code plugin: build a threat model in conversation and publish it to the platform.","\u002Fdethereal","03.dethereal",[772,776,781,786,791,796,801,806,811,816],{"title":773,"path":769,"stem":774,"description":775},"Dethereal — Claude Code Plugin for Threat Modeling","03.dethereal\u002Findex","Comprehensive documentation for the Dethereal threat modeling plugin",{"title":777,"path":778,"stem":779,"description":780},"Getting Started with Dethereal","\u002Fdethereal\u002Fgetting-started","03.dethereal\u002F01.getting-started","Install the plugin, authenticate, and create your first threat model",{"title":782,"path":783,"stem":784,"description":785},"The 11-Step Guided Workflow","\u002Fdethereal\u002Fguided-workflow","03.dethereal\u002F02.guided-workflow","Complete walkthrough of the \u002Fdethereal:threat-model guided process",{"title":787,"path":788,"stem":789,"description":790},"Command Reference","\u002Fdethereal\u002Fcommand-reference","03.dethereal\u002F03.command-reference","Complete reference for all 14 Dethereal slash commands",{"title":792,"path":793,"stem":794,"description":795},"Threat Model Concepts","\u002Fdethereal\u002Fmodel-concepts","03.dethereal\u002F04.model-concepts","Components, boundaries, data flows, classes, attributes, and quality scoring",{"title":797,"path":798,"stem":799,"description":800},"Discovery and Enrichment","\u002Fdethereal\u002Fdiscovery-and-enrichment","03.dethereal\u002F05.discovery-and-enrichment","Infrastructure scanning, security attributes, MITRE ATT&CK, credentials, and compliance",{"title":802,"path":803,"stem":804,"description":805},"Sync and Version Control","\u002Fdethereal\u002Fsync-and-version-control","03.dethereal\u002F06.sync-and-version-control","Push\u002Fpull workflow, conflict handling, git integration, and multi-model projects",{"title":807,"path":808,"stem":809,"description":810},"Review and Attack Surface Analysis","\u002Fdethereal\u002Freview-and-analysis","03.dethereal\u002F07.review-and-analysis","Quality review, attack surface summary, and platform analysis integration",{"title":812,"path":813,"stem":814,"description":815},"Agents, Tools, and Hooks","\u002Fdethereal\u002Fagents-and-architecture","03.dethereal\u002F08.agents-and-architecture","How the 5 AI agents, 22 MCP tools, and 3 lifecycle hooks work together",{"title":817,"path":818,"stem":819,"description":820},"Dethereal Glossary","\u002Fdethereal\u002Fglossary","03.dethereal\u002F09.glossary","Definitions for Dethereal-specific terminology",{"title":822,"description":823,"path":824,"stem":825,"children":826,"page":-1},"Threat Report","The residual-risk report over a threat model: reading it, filtering it and exporting it.","\u002Fthreat-report","04.threat-report",[827,830,835,840,845,850],{"title":822,"path":824,"stem":828,"description":829},"04.threat-report\u002Findex","Read, filter, drill into, and export a residual-risk report over a threat model",{"title":831,"path":832,"stem":833,"description":834},"Getting Started with the Threat Report","\u002Fthreat-report\u002Fgetting-started","04.threat-report\u002F01.getting-started","Generate, open, refresh, and export a threat report over a model",{"title":836,"path":837,"stem":838,"description":839},"Reading the Report","\u002Fthreat-report\u002Freading-the-report","04.threat-report\u002F02.reading-the-report","Navigating the report, the shared visual language, and the Posture and Boundary Crossings views",{"title":841,"path":842,"stem":843,"description":844},"Understanding Coverage and Gaps","\u002Fthreat-report\u002Funderstanding-coverage","04.threat-report\u002F03.understanding-coverage","Reading the MITRE ATT&CK coverage matrix: tiers, prevent vs detect, off-grid notes, and what coverage does and does not mean",{"title":846,"path":847,"stem":848,"description":849},"Reachability and Flow Routes","\u002Fthreat-report\u002Freachability","04.threat-report\u002F04.reachability","Exploring flow routes to crown-jewel assets and between any two elements — and what the analysis does and does not model",{"title":851,"path":852,"stem":853,"description":854},"Working with Findings","\u002Fthreat-report\u002Fworking-with-findings","04.threat-report\u002F05.working-with-findings","The Residual Risk ledger, triaging findings, filtering, and the per-element Component Profile",{"title":856,"description":857,"path":858,"stem":859,"children":860,"page":-1},"Risk assessment","The risk assessment module: the register, the reports and the method behind them.","\u002Frisk-assessment","05.risk-assessment",[861,865,870,875,880,885,889,894],{"title":862,"path":858,"stem":863,"description":864},"Dethernety Risk Assessment User Guide","05.risk-assessment\u002Findex","Dethernety Risk Assessment turns a threat model you have built on the Dethernety platform into a grounded, board-ready draft risk report. From one point-in-time assessment of your model you get a prioritized worklist, a likelihood × impact risk matrix, a security-coverage posture, ten kinds of finding, a management risk register your team authors and maintains, and audience-tiered stakeholder reports — Board, Risk Committee, and Technical — plus machine-readable data exports.",{"title":866,"path":867,"stem":868,"description":869},"FAQ and Troubleshooting","\u002Frisk-assessment\u002Ffaq","05.risk-assessment\u002F01.faq","Short answers to the questions analysts, risk managers, and compliance officers ask most often about the Risk Assessment. Each answer links to the guide that covers it in full.",{"title":871,"path":872,"stem":873,"description":874},"Findings","\u002Frisk-assessment\u002Ffindings","05.risk-assessment\u002F02.findings","A finding is a specific observation the Risk Assessment makes about your threat model. Every finding is grounded in something concrete you have declared — an element, a data flow, a trust zone, a crown jewel — and it points you at a place worth a closer look. This guide is the reference to open when you see a finding and want to know what it means and what to do about it.",{"title":876,"path":877,"stem":878,"description":879},"Getting Started","\u002Frisk-assessment\u002Fgetting-started","05.risk-assessment\u002F03.getting-started","Risk Assessment turns a threat model you have built on the Dethernety platform into a grounded, board-ready draft risk report — a prioritized worklist, a likelihood × impact matrix, a security-coverage posture, ten kinds of finding, a risk register your team authors, and audience-tiered stakeholder reports and exports.",{"title":881,"path":882,"stem":883,"description":884},"Methodology and Trust","\u002Frisk-assessment\u002Fmethodology-and-trust","05.risk-assessment\u002F04.methodology-and-trust","Every number in a Risk Assessment is meant to survive scrutiny. This chapter explains why you can trust the report and — just as importantly — what it deliberately declines to claim, so you can put it in front of your board, a regulator, or an external auditor and defend every line.",{"title":836,"path":886,"stem":887,"description":888},"\u002Frisk-assessment\u002Freading-the-report","05.risk-assessment\u002F05.reading-the-report","The Risk Assessment turns your threat model into a single, scannable draft risk report: an executive summary at the top and a set of analytical tabs below it. This guide explains how to read what you see — what a matrix cell means, how coverage is stated, what a severity band is (and is not), and how to interpret each tab.",{"title":890,"path":891,"stem":892,"description":893},"Stakeholder Reports and Exports","\u002Frisk-assessment\u002Fstakeholder-reports","05.risk-assessment\u002F06.stakeholder-reports","One assessment produces reporting for every audience you answer to. From a single generated Risk Assessment you can hand your board a one-page brief, give your risk committee the full reconciliation, keep the complete technical detail for your own team, and export the underlying data into your GRC tool — without ever re-running anything or reconciling one document against another.",{"title":895,"path":896,"stem":897,"description":898},"The Risk Register","\u002Frisk-assessment\u002Fthe-risk-register","05.risk-assessment\u002F07.the-risk-register","The Risk Register is where your team records and manages the real risks your organisation is carrying — on top of, but separate from, what the analysis computed for you. Each entry is written by a person: a plain-language risk statement, your own assessment of how likely it is and how much it would hurt, the findings and elements from the analysis that back it up, a treatment decision, an owner, a review date, and a reference handle you can quote in a ticket or a board pack.",{"title":900,"description":901,"path":902,"stem":903,"children":904,"page":-1},"Threat Patterns","The Threat Patterns module and its modelling checklist.","\u002Fthreat-patterns","06.threat-patterns",[905,909],{"title":906,"path":902,"stem":907,"description":908},"Threat Patterns User Guide","06.threat-patterns\u002Findex","Threat Patterns finds threats in your model that no single element shows on its own. Each one appears only when several elements line up. For example, an agent may read content anyone can write, hold private data, and be able to send data where an outsider reads it. Each element can look acceptable alone, but together they form a path an attacker can use.",{"title":910,"path":911,"stem":912,"description":913},"Modelling Checklist","\u002Fthreat-patterns\u002Fmodelling-checklist","06.threat-patterns\u002F01.modelling-checklist","Threat Patterns decides a leg only from what your model states. An unanswered attribute or field is undetermined, never read as \"no\". This checklist lists the facts and drawings the analysis asks for most often. For each one it says where to set it and which leg it settles. Attribute names are shown as they appear on the class, in code.",{"title":915,"description":916,"path":19,"stem":917,"children":918,"page":-1},"Agentic modelling","A hands-on training: model one agentic system step by step, with Threat Patterns after each step.","07.agentic-modelling",[919,923,927,928,932,937,942,947,952,957,962,967,972],{"title":920,"path":19,"stem":921,"description":922},"Model an Agentic Architecture","07.agentic-modelling\u002Findex","A hands-on training in modelling systems that run AI agents, so that Threat Patterns can analyse them. You build one system, a fictional customer-support copilot, in eleven short lessons. Each lesson adds one thing to the model, and you run Threat Patterns after each one to see what the change did.",{"title":924,"path":24,"stem":925,"description":926},"Lesson 1: Draw the Agent and What It Talks To","07.agentic-modelling\u002F01.01-draw-the-agent","Training overview · Lesson 1 of 11 · Next: Say what data moves",{"title":5,"path":671,"stem":673,"description":667},{"title":929,"path":29,"stem":930,"description":931},"Lesson 3: Mark Who Is Outside","07.agentic-modelling\u002F03.03-mark-who-is-outside","Training overview · Lesson 3 of 11 · Previous: Say what data moves · Next: Draw a tool that reaches any host",{"title":933,"path":934,"stem":935,"description":936},"Lesson 4: Draw a Tool That Reaches Any Host","\u002Fagentic-modelling\u002F04-draw-a-tool-that-reaches-any-host","07.agentic-modelling\u002F04.04-draw-a-tool-that-reaches-any-host","Training overview · Lesson 4 of 11 · Previous: Mark who is outside · Next: State what the agent can do",{"title":938,"path":939,"stem":940,"description":941},"Lesson 5: State What the Agent Can Do","\u002Fagentic-modelling\u002F05-state-what-the-agent-can-do","07.agentic-modelling\u002F05.05-state-what-the-agent-can-do","Training overview · Lesson 5 of 11 · Previous: Draw a tool that reaches any host · Next: Fix a finding with a fact",{"title":943,"path":944,"stem":945,"description":946},"Lesson 6: Fix a Finding With a Fact","\u002Fagentic-modelling\u002F06-fix-a-finding-with-a-fact","07.agentic-modelling\u002F06.06-fix-a-finding-with-a-fact","Training overview · Lesson 6 of 11 · Previous: State what the agent can do · Next: Record a compensating control",{"title":948,"path":949,"stem":950,"description":951},"Lesson 7: Record a Compensating Control","\u002Fagentic-modelling\u002F07-record-a-compensating-control","07.agentic-modelling\u002F07.07-record-a-compensating-control","Training overview · Lesson 7 of 11 · Previous: Fix a finding with a fact · Next: Leave what you don't know open",{"title":953,"path":954,"stem":955,"description":956},"Lesson 8: Leave What You Don't Know Open","\u002Fagentic-modelling\u002F08-leave-unknowns-open","07.agentic-modelling\u002F08.08-leave-unknowns-open","Training overview · Lesson 8 of 11 · Previous: Record a compensating control · Next: Follow a credential",{"title":958,"path":959,"stem":960,"description":961},"Lesson 9: Follow a Credential","\u002Fagentic-modelling\u002F09-follow-a-credential","07.agentic-modelling\u002F09.09-follow-a-credential","Training overview · Lesson 9 of 11 · Previous: Leave what you don't know open · Next: Watch what gets into knowledge and memory",{"title":963,"path":964,"stem":965,"description":966},"Lesson 10: Watch What Gets Into Knowledge and Memory","\u002Fagentic-modelling\u002F10-what-gets-in","07.agentic-modelling\u002F10.10-what-gets-in","Training overview · Lesson 10 of 11 · Previous: Follow a credential · Next: Draw tools from others and hand-offs",{"title":968,"path":969,"stem":970,"description":971},"Lesson 11: Draw Tools From Others and Hand-offs","\u002Fagentic-modelling\u002F11-tools-and-handoffs","07.agentic-modelling\u002F11.11-tools-and-handoffs","Training overview · Lesson 11 of 11 · Previous: Watch what gets into knowledge and memory",{"title":973,"path":974,"stem":975,"description":976},"The recipe at a glance","\u002Fagentic-modelling\u002Frecipe-at-a-glance","07.agentic-modelling\u002F12.recipe-at-a-glance","The ten steps of the training on one page. Each lesson teaches one or two of them.",{"title":978,"description":979,"path":980,"stem":981,"children":982,"page":-1},"BYODt subscription","Subscribing on the BYODt Portal, and moving a deployment you already run to a new team.","\u002Fbyodt-subscription","08.byodt-subscription",[983,987,992],{"title":984,"path":980,"stem":985,"description":986},"BYODt Subscription","08.byodt-subscription\u002Findex","Buy content for the deployment you run yourself, and decide where that deployment goes when you buy a team edition",{"title":988,"path":989,"stem":990,"description":991},"Your Subscription","\u002Fbyodt-subscription\u002Fyour-subscription","08.byodt-subscription\u002F01.your-subscription","Create an account, subscribe by card, and find the values your deployment needs on the portal",{"title":993,"path":994,"stem":995,"description":996},"Moving a Deployment to a New Team","\u002Fbyodt-subscription\u002Fmoving-a-deployment-to-a-new-team","08.byodt-subscription\u002F02.moving-a-deployment-to-a-new-team","What to do with the deployment you already run once you buy a team edition: three ways forward, best first",1793748186404]