[{"data":1,"prerenderedAt":1009},["ShallowReactive",2],{"page-\u002Fagentic-modelling\u002F07-record-a-compensating-control":3,"navigation":687},{"id":4,"title":5,"body":6,"description":679,"extension":680,"meta":681,"navigation":682,"path":683,"seo":684,"stem":685,"__hash__":686},"docs\u002F07.agentic-modelling\u002F07.07-record-a-compensating-control.md","Lesson 7: Record a Compensating Control",{"type":7,"value":8,"toc":666},"minimark",[9,13,31,36,39,42,46,54,62,78,81,85,88,92,99,244,249,267,270,274,280,322,328,331,336,342,354,358,364,385,397,403,409,415,421,425,434,442,558,571,576,615,619,621,625,629,641,647,653,656,660],[10,11,5],"h1",{"id":12},"lesson-7-record-a-compensating-control",[14,15,16,21,22,26,27],"p",{},[17,18,20],"a",{"href":19},"\u002Fagentic-modelling","Training overview"," · Lesson 7 of 11 · Previous: ",[17,23,25],{"href":24},"\u002Fagentic-modelling\u002F06-fix-a-finding-with-a-fact","Fix a finding with a fact"," · Next: ",[17,28,30],{"href":29},"\u002Fagentic-modelling\u002F08-leave-unknowns-open","Leave what you don't know open",[32,33,35],"h2",{"id":34},"goal","Goal",[14,37,38],{},"A control earns credit on a route. It never removes the finding.",[14,40,41],{},"After this lesson you can record a control on an agent, read the credit it earns, and tell a control that prevents from one that only detects.",[32,43,45],{"id":44},"what-you-start-from","What you start from",[14,47,48,49,53],{},"Your model from lesson 6, or import ",[17,50,52],{"href":51},"\u002Fguides\u002Fagentic-modelling\u002FL6-solution.zip","L6-solution.zip",".",[14,55,56,57,61],{},"The lethal trifecta at the copilot is still ",[58,59,60],"strong",{},"Confirmed",". The team cannot remove the web fetch or the ticket text, so instead they isolate untrusted content inside the copilot. You ask them what exactly holds, and they confirm the isolation design and the inventory behind it:",[63,64,65,72],"ul",{},[66,67,68,71],"li",{},[58,69,70],{},"The isolation design."," The copilot uses a Dual LLM design. A quarantined model with no tools reads the tickets, customer records and fetched pages. The model that chooses tool calls sees only the staff member's request. Code holds the quarantined output by reference, and the plan is fixed before anything untrusted is read.",[66,73,74,77],{},[58,75,76],{},"The inventory."," Every channel that brings untrusted content in is listed and goes through the isolation. Output from any other model the copilot chains stays untrusted. The copilot keeps no memory between tickets. Code, not a model, labels each piece of content as trusted or untrusted.",[14,79,80],{},"Those nine answers are what you record. Answer nothing about the control that the team did not confirm.",[32,82,84],{"id":83},"the-recipe-step","The recipe step",[14,86,87],{},"This lesson teaches no new recipe step. A control is not a fact about the system's shape, so it does not change any leg. It changes how the finding's coverage reads.",[32,89,91],{"id":90},"steps","Steps",[14,93,94,95,98],{},"A control lives in the ",[58,96,97],{},"Browser"," and is assigned to elements. To record this one:",[100,101,102,120,127,134],"ol",{},[66,103,104,105,107,108,111,112,115,116,119],{},"In the ",[58,106,97],{},", click the ",[58,109,110],{},"+"," button at the top right of the content area and choose the control icon (a shield), ",[58,113,114],{},"New control",". A control named \"New Control\" is created at once, and its dialog, ",[58,117,118],{},"Control: New Control",", opens.",[66,121,122,123,126],{},"Name it as below. On its ",[58,124,125],{},"Control Classes"," tab, add the class named below with the class picker on the left, then open the class's attributes with the sliders icon on its row (the icon has no label) and answer them as below. Save.",[66,128,129,130,133],{},"In the model, open the support copilot's settings, go to its ",[58,131,132],{},"Controls"," tab and tick the control.",[66,135,136,137,140,141,144,145],{},"Add the control ",[58,138,139],{},"Support copilot: untrusted-content isolation"," (class Untrusted-Content Isolation) to ",[58,142,143],{},"Support copilot",", answering:",[63,146,147,161,172,183,193,203,213,223,234],{},[66,148,149,152,153,157,158],{},[58,150,151],{},"Isolation Pattern"," (",[154,155,156],"code",{},"isolation_pattern",", under Application Security) = ",[154,159,160],{},"dual_llm",[66,162,163,152,166,157,169],{},[58,164,165],{},"Privileged LLM Never Sees Untrusted Content",[154,167,168],{},"privileged_llm_never_sees_untrusted_content",[154,170,171],{},"true",[66,173,174,152,177,180,181],{},[58,175,176],{},"Quarantined LLM Has No Tool Access",[154,178,179],{},"quarantined_llm_has_no_tool_access",", under Authorization & RBAC) = ",[154,182,171],{},[66,184,185,152,188,157,191],{},[58,186,187],{},"Untrusted Results Passed by Reference",[154,189,190],{},"untrusted_results_passed_by_reference",[154,192,171],{},[66,194,195,152,198,157,201],{},[58,196,197],{},"Plan Fixed Before Untrusted Data",[154,199,200],{},"plan_fixed_before_untrusted_data",[154,202,171],{},[66,204,205,152,208,157,211],{},[58,206,207],{},"Untrusted Source Inventory Complete",[154,209,210],{},"untrusted_source_inventory_complete",[154,212,171],{},[66,214,215,152,218,157,221],{},[58,216,217],{},"Chained Model Output Treated as Untrusted",[154,219,220],{},"chained_model_output_treated_as_untrusted",[154,222,171],{},[66,224,225,152,228,157,231],{},[58,226,227],{},"Persisted Memory Trust Handling",[154,229,230],{},"persisted_memory_trust_handling",[154,232,233],{},"no_persisted_memory",[66,235,236,152,239,180,242],{},[58,237,238],{},"Trust Labels Assigned by Deterministic Controller",[154,240,241],{},"trust_labels_assigned_by_deterministic_controller",[154,243,171],{},[14,245,246,247,53],{},"Use exactly this control name. The lesson 8 model files refer to the control by its name, and an import finds it only if a control with that name already exists in the ",[58,248,97],{},[14,250,251,252,255,256,259,260,262,263,266],{},"The control's ",[58,253,254],{},"Privileged planner isolated from untrusted content"," countermeasure turns on only when all nine answers hold: the five isolation-design answers and the four inventory answers together. The four inventory answers alone also turn on its ",[58,257,258],{},"Complete untrusted-channel inventory"," countermeasure. To see which countermeasures a control's answers turn on, open the control from the ",[58,261,97],{}," and go to its ",[58,264,265],{},"Countermeasures"," tab. In a real model, answer each field only when the team confirms it.",[14,268,269],{},"Generate again.",[32,271,273],{"id":272},"what-you-should-see","What you should see",[14,275,276,279],{},[58,277,278],{},"Findings:"," 1 systemic finding: 1 Confirmed · 0 Not ruled out.",[281,282,288],"div",{"className":283,"tabIndex":285,"role":286,"ariaLabel":287},[284],"table-frame",0,"region","Table: What you should see",[289,290,291,307],"table",{},[292,293,294],"thead",{},[295,296,297,301,304],"tr",{},[298,299,300],"th",{},"Finding",[298,302,303],{},"State",[298,305,306],{},"Legs",[308,309,310],"tbody",{},[295,311,312,316,319],{},[313,314,315],"td",{},"Lethal trifecta at Support copilot",[313,317,318],{},"Confirmed · control modelled on U, X",[313,320,321],{},"U present · P present · X present · W absent (aggravating)",[14,323,324,327],{},[58,325,326],{},"Facts to establish:"," 1 question.",[14,329,330],{},"Facts that could raise a finding:",[63,332,333],{},[66,334,335],{},"Draw the Agent Tool Call from Support copilot to the harness that reads files for it, if there is one",[14,337,338,341],{},[58,339,340],{},"Model gaps:"," No gaps these patterns can detect; not an attestation of completeness.",[14,343,344,345,347,348,350,351,53],{},"The lethal trifecta at the support copilot is still ",[58,346,60],{},". Its state now reads ",[58,349,318],{}," instead of ",[58,352,353],{},"Confirmed · unmitigated",[32,355,357],{"id":356},"what-changed-and-why","What changed and why",[14,359,360,363],{},[58,361,362],{},"The finding stays."," U, P and X are all still present. The control did not change a fact about what the copilot reads, holds or sends, so no required leg became absent.",[14,365,366,369,370,373,374,377,378,381,382,384],{},[58,367,368],{},"The control earns credit on U and on X."," Expand the finding. In its leg list, the ",[58,371,372],{},"U"," and ",[58,375,376],{},"X"," legs read ",[58,379,380],{},"control modelled",". In the finding's diagram, each credited route reads ",[58,383,380],{}," with the control's name, shortened. Click a leg in the diagram: its dialog lists each credit as \"credited by\" and the control's name. Only present routes earn credit. The copilot's undetermined routes, through the CRM and the staff console, carry none.",[14,386,387,390,391,393,394,396],{},[58,388,389],{},"Why U and X."," A control counts against a route only when one of its countermeasures is linked to a technique the route stands for. Here only ",[58,392,254],{}," is linked. It isolates indirect prompt injection (AML.T0051.001), which the copilot's U routes stand for. It also applies two mitigations against Exfiltration via AI Agent Tool Invocation (AML.T0086), which its present X routes stand for: Restrict AI Agent Tool Invocation on Untrusted Data (AML.M0030) and Segmentation of AI Agent Components (AML.M0032). An isolation link counts as prevention, and the credit table counts both mitigations as prevention too. ",[58,395,258],{}," is linked to no technique and no mitigation, so it earns no credit of its own.",[14,398,399,402],{},[58,400,401],{},"Control modelled moves the finding down the list."," Findings are ranked unmitigated or detected only before a control modelled. In a model with more findings, this trifecta now ranks below the unmitigated and detected only findings of the same confidence and severity band.",[14,404,405,408],{},[58,406,407],{},"Control modelled is a statement about the model."," It says a control is recorded against the route. It says nothing about how well the control works in practice. So record it only on evidence that the isolation is architectural: untrusted content is quarantined by the design, and the part that chooses tool calls never reads it. A sentence in the system prompt telling the model to ignore instructions in tickets is not isolation: do not record a control for it.",[14,410,411,414],{},[58,412,413],{},"An inventory alone is not isolation."," The inventory is necessary, but not sufficient. A complete list of untrusted channels says that every channel is known. It does not say that the model choosing tool calls never reads them. The control reads it the same way: the inventory countermeasure earns nothing on its own, and the isolation countermeasure turns on only when the inventory answers hold as well. Record the control as isolation only when the design answers hold too, as they do here.",[14,416,417,420],{},[58,418,419],{},"A fix and a control are different."," In lesson 6, approval made a required leg absent and the finding went. Here, the finding stays and is credited. Use a fix to break a finding; record a control to show what stands against it.",[32,422,424],{"id":423},"exercise-detection-is-not-prevention","Exercise: Detection is not prevention",[14,426,427,428,430,431,433],{},"On a scratch copy of lesson 5's solution, where injection to action is still ",[58,429,60],{},", add a control that only detects. It traces every action the copilot takes and pages a staffed team on suspicious tool use. Create it in the ",[58,432,97],{}," the same way and assign it to the copilot:",[14,435,436,437,441],{},"On a scratch copy: import ",[17,438,440],{"href":439},"\u002Fguides\u002Fagentic-modelling\u002FL5-solution.zip","L5-solution.zip"," and rename it.",[100,443,444],{},[66,445,136,446,449,450,452,453],{},[58,447,448],{},"Support copilot: agent activity tracing and alerting"," (class Agent Activity Tracing & Alerting) to ",[58,451,143],{},", answering:\n",[63,454,455,466,477,487,497,507,517,528,538,548],{},[66,456,457,152,460,463,464],{},[58,458,459],{},"Tool Execution Spans Emitted",[154,461,462],{},"tool_execution_spans_emitted",", under Logging & Monitoring) = ",[154,465,171],{},[66,467,468,152,471,474,475],{},[58,469,470],{},"Agent Identity and Delegation Chain Attributed",[154,472,473],{},"agent_identity_and_delegation_chain_attributed",", under Attribution) = ",[154,476,171],{},[66,478,479,152,482,463,485],{},[58,480,481],{},"Tool Call Arguments Captured",[154,483,484],{},"tool_call_arguments_captured",[154,486,171],{},[66,488,489,152,492,463,495],{},[58,490,491],{},"Tool Call Results Captured",[154,493,494],{},"tool_call_results_captured",[154,496,171],{},[66,498,499,152,502,463,505],{},[58,500,501],{},"Prompt Content Captured",[154,503,504],{},"prompt_content_captured",[154,506,171],{},[66,508,509,152,512,463,515],{},[58,510,511],{},"Telemetry Configuration Centrally Enforced",[154,513,514],{},"telemetry_config_centrally_enforced",[154,516,171],{},[66,518,519,152,522,525,526],{},[58,520,521],{},"Alerts Routed to a Staffed Response",[154,523,524],{},"alerts_routed_to_staffed_response",", under Detection Alerting) = ",[154,527,171],{},[66,529,530,152,533,525,536],{},[58,531,532],{},"Alert on Agent Config Self-Modification",[154,534,535],{},"alert_on_agent_config_self_modification",[154,537,171],{},[66,539,540,152,543,525,546],{},[58,541,542],{},"Alert on Anomalous Tool Activity",[154,544,545],{},"alert_on_anomalous_tool_activity",[154,547,171],{},[66,549,550,152,553,180,556],{},[58,551,552],{},"Agent Alert Rules Immutable to Agents",[154,554,555],{},"agent_alert_rules_immutable_to_agents",[154,557,171],{},[14,559,560,561,373,564,567,568,570],{},"These answers turn on two countermeasures: ",[58,562,563],{},"Complete agent action tracing",[58,565,566],{},"Alerting on injected tool misuse and agent config self-modification",". Check them on the control's ",[58,569,265],{}," tab. Generate again.",[14,572,573,575],{},[58,574,278],{}," 2 systemic findings: 2 Confirmed · 0 Not ruled out.",[281,577,580],{"className":578,"tabIndex":285,"role":286,"ariaLabel":579},[284],"Table: Exercise: Detection is not prevention",[289,581,582,592],{},[292,583,584],{},[295,585,586,588,590],{},[298,587,300],{},[298,589,303],{},[298,591,306],{},[308,593,594,604],{},[295,595,596,598,601],{},[313,597,315],{},[313,599,600],{},"Confirmed · detected only on U, P, X",[313,602,603],{},"U present · P present · X present · W present (aggravating)",[295,605,606,609,612],{},[313,607,608],{},"Injection to action at Support copilot",[313,610,611],{},"Confirmed · detected only on untrusted input, action tools, no gate",[313,613,614],{},"untrusted input present · action tools present · no gate present · sensitive target present (aggravating) · broad identity undetermined (aggravating)",[14,616,617,327],{},[58,618,326],{},[14,620,330],{},[63,622,623],{},[66,624,335],{},[14,626,627,341],{},[58,628,340],{},[14,630,631,632,634,635,637,638,640],{},"Injection to action stays ",[58,633,60],{},", and its state now reads ",[58,636,611],{},". The trifecta also reads ",[58,639,600],{},": the tracing control credits all three required legs as detection, and none as prevention. The team sees an injected action and is paged, but nothing stops it. Detection never counts as prevention.",[14,642,643,646],{},[58,644,645],{},"Detection covers only what it can observe."," The traces record the copilot's own tool calls. A way out that never passes through them is not seen. For example, an image the staff console renders makes the staff member's browser call the address in it, and no trace records that call.",[14,648,649,652],{},[58,650,651],{},"The trace store is part of the model too."," The control captures prompt content, so the traces hold ticket text and customer records. Draw the trace store as an element, attach those items to it, and put it in its true zone, for example the Vendor zone if a vendor hosts it.",[14,654,655],{},"Delete the copy when you are done.",[32,657,659],{"id":658},"next","Next",[14,661,662,665],{},[17,663,664],{"href":29},"Lesson 8: Leave what you don't know open",". A second agent joins, and you answer only what the team tells you.",{"title":667,"searchDepth":668,"depth":668,"links":669},"",3,[670,672,673,674,675,676,677,678],{"id":34,"depth":671,"text":35},2,{"id":44,"depth":671,"text":45},{"id":83,"depth":671,"text":84},{"id":90,"depth":671,"text":91},{"id":272,"depth":671,"text":273},{"id":356,"depth":671,"text":357},{"id":423,"depth":671,"text":424},{"id":658,"depth":671,"text":659},"Training overview · Lesson 7 of 11 · Previous: Fix a finding with a fact · Next: Leave what you don't know open","md",{},true,"\u002Fagentic-modelling\u002F07-record-a-compensating-control",{"title":5,"description":679},"07.agentic-modelling\u002F07.07-record-a-compensating-control","pF5mEFRb50EPko3xi7hKNRyPNbfwyE3DuY02GXr_wP4",[688,743,778,833,867,911,926,989],{"title":689,"description":690,"path":691,"stem":692,"children":693,"page":-1},"Platform","Modelling, analysis, findings and controls in the Dethernety platform.","\u002Fplatform","01.platform",[694,698,703,708,713,718,723,728,733,738],{"title":695,"path":691,"stem":696,"description":697},"Dethernety User Documentation","01.platform\u002Findex","User guide for the Dethernety threat modeling platform",{"title":699,"path":700,"stem":701,"description":702},"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":704,"path":705,"stem":706,"description":707},"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":709,"path":710,"stem":711,"description":712},"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":714,"path":715,"stem":716,"description":717},"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":719,"path":720,"stem":721,"description":722},"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":724,"path":725,"stem":726,"description":727},"Issue Management Guide","\u002Fplatform\u002Fissue-management-guide","01.platform\u002F06.issue-management-guide","Issue tracking, filtering, and management in Dethernety.",{"title":729,"path":730,"stem":731,"description":732},"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":734,"path":735,"stem":736,"description":737},"Understanding Modules","\u002Fplatform\u002Funderstanding-modules","01.platform\u002F08.understanding-modules","How Dethernety's module system extends your threat modeling capabilities.",{"title":739,"path":740,"stem":741,"description":742},"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":744,"description":745,"path":746,"stem":747,"children":748,"page":-1},"BYODt cloud","Deploying the platform yourself and connecting it to the BYODt cloud.","\u002Fbyodt-cloud","02.byodt-cloud",[749,753,758,763,768,773],{"title":750,"path":746,"stem":751,"description":752},"BYODt Deployment","02.byodt-cloud\u002Findex","Run Dethernety on your own machine: install, configure, operate, and recover",{"title":754,"path":755,"stem":756,"description":757},"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":759,"path":760,"stem":761,"description":762},"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":764,"path":765,"stem":766,"description":767},"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":769,"path":770,"stem":771,"description":772},"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":774,"path":775,"stem":776,"description":777},"Troubleshooting the BYODt Deployment","\u002Fbyodt-cloud\u002Ftroubleshooting","02.byodt-cloud\u002F05.troubleshooting","Symptom, cause, and fix for the failures this deployment reports",{"title":779,"description":780,"path":781,"stem":782,"children":783,"page":-1},"Dethereal","The Claude Code plugin: build a threat model in conversation and publish it to the platform.","\u002Fdethereal","03.dethereal",[784,788,793,798,803,808,813,818,823,828],{"title":785,"path":781,"stem":786,"description":787},"Dethereal — Claude Code Plugin for Threat Modeling","03.dethereal\u002Findex","Comprehensive documentation for the Dethereal threat modeling plugin",{"title":789,"path":790,"stem":791,"description":792},"Getting Started with Dethereal","\u002Fdethereal\u002Fgetting-started","03.dethereal\u002F01.getting-started","Install the plugin, authenticate, and create your first threat model",{"title":794,"path":795,"stem":796,"description":797},"The 11-Step Guided Workflow","\u002Fdethereal\u002Fguided-workflow","03.dethereal\u002F02.guided-workflow","Complete walkthrough of the \u002Fdethereal:threat-model guided process",{"title":799,"path":800,"stem":801,"description":802},"Command Reference","\u002Fdethereal\u002Fcommand-reference","03.dethereal\u002F03.command-reference","Complete reference for all 14 Dethereal slash commands",{"title":804,"path":805,"stem":806,"description":807},"Threat Model Concepts","\u002Fdethereal\u002Fmodel-concepts","03.dethereal\u002F04.model-concepts","Components, boundaries, data flows, classes, attributes, and quality scoring",{"title":809,"path":810,"stem":811,"description":812},"Discovery and Enrichment","\u002Fdethereal\u002Fdiscovery-and-enrichment","03.dethereal\u002F05.discovery-and-enrichment","Infrastructure scanning, security attributes, MITRE ATT&CK, credentials, and compliance",{"title":814,"path":815,"stem":816,"description":817},"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":819,"path":820,"stem":821,"description":822},"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":824,"path":825,"stem":826,"description":827},"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":829,"path":830,"stem":831,"description":832},"Dethereal Glossary","\u002Fdethereal\u002Fglossary","03.dethereal\u002F09.glossary","Definitions for Dethereal-specific terminology",{"title":834,"description":835,"path":836,"stem":837,"children":838,"page":-1},"Threat Report","The residual-risk report over a threat model: reading it, filtering it and exporting it.","\u002Fthreat-report","04.threat-report",[839,842,847,852,857,862],{"title":834,"path":836,"stem":840,"description":841},"04.threat-report\u002Findex","Read, filter, drill into, and export a residual-risk report over a threat model",{"title":843,"path":844,"stem":845,"description":846},"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":848,"path":849,"stem":850,"description":851},"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":853,"path":854,"stem":855,"description":856},"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":858,"path":859,"stem":860,"description":861},"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":863,"path":864,"stem":865,"description":866},"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":868,"description":869,"path":870,"stem":871,"children":872,"page":-1},"Risk assessment","The risk assessment module: the register, the reports and the method behind them.","\u002Frisk-assessment","05.risk-assessment",[873,877,882,887,892,897,901,906],{"title":874,"path":870,"stem":875,"description":876},"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":878,"path":879,"stem":880,"description":881},"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":883,"path":884,"stem":885,"description":886},"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":888,"path":889,"stem":890,"description":891},"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":893,"path":894,"stem":895,"description":896},"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":848,"path":898,"stem":899,"description":900},"\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":902,"path":903,"stem":904,"description":905},"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":907,"path":908,"stem":909,"description":910},"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":912,"description":913,"path":914,"stem":915,"children":916,"page":-1},"Threat Patterns","The Threat Patterns module and its modelling checklist.","\u002Fthreat-patterns","06.threat-patterns",[917,921],{"title":918,"path":914,"stem":919,"description":920},"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":922,"path":923,"stem":924,"description":925},"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":927,"description":928,"path":19,"stem":929,"children":930,"page":-1},"Agentic modelling","A hands-on training: model one agentic system step by step, with Threat Patterns after each step.","07.agentic-modelling",[931,935,940,945,950,955,960,964,965,969,974,979,984],{"title":932,"path":19,"stem":933,"description":934},"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":936,"path":937,"stem":938,"description":939},"Lesson 1: Draw the Agent and What It Talks To","\u002Fagentic-modelling\u002F01-draw-the-agent","07.agentic-modelling\u002F01.01-draw-the-agent","Training overview · Lesson 1 of 11 · Next: Say what data moves",{"title":941,"path":942,"stem":943,"description":944},"Lesson 2: Say What Data Moves","\u002Fagentic-modelling\u002F02-say-what-data-moves","07.agentic-modelling\u002F02.02-say-what-data-moves","Training overview · Lesson 2 of 11 · Previous: Draw the agent · Next: Mark who is outside",{"title":946,"path":947,"stem":948,"description":949},"Lesson 3: Mark Who Is Outside","\u002Fagentic-modelling\u002F03-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":951,"path":952,"stem":953,"description":954},"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":956,"path":957,"stem":958,"description":959},"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":961,"path":24,"stem":962,"description":963},"Lesson 6: 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":5,"path":683,"stem":685,"description":679},{"title":966,"path":29,"stem":967,"description":968},"Lesson 8: Leave What You Don't Know 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":970,"path":971,"stem":972,"description":973},"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":975,"path":976,"stem":977,"description":978},"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":980,"path":981,"stem":982,"description":983},"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":985,"path":986,"stem":987,"description":988},"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":990,"description":991,"path":992,"stem":993,"children":994,"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",[995,999,1004],{"title":996,"path":992,"stem":997,"description":998},"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":1000,"path":1001,"stem":1002,"description":1003},"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":1005,"path":1006,"stem":1007,"description":1008},"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",1793748186568]