[{"data":1,"prerenderedAt":1602},["ShallowReactive",2],{"page-\u002Fplatform\u002Fworking-with-security-controls":3,"navigation":1289},{"id":4,"title":5,"body":6,"description":19,"extension":1273,"meta":1274,"navigation":1284,"path":1285,"seo":1286,"stem":1287,"__hash__":1288},"docs\u002F01.platform\u002F05.working-with-security-controls.md","Working with Security Controls",{"type":7,"value":8,"toc":1233},"minimark",[9,13,20,25,33,65,82,86,91,94,100,115,120,147,153,172,178,233,238,278,285,289,307,311,315,322,327,367,372,419,424,446,453,456,463,490,493,497,500,507,529,540,547,554,626,641,658,662,703,710,714,717,764,776,780,785,807,811,814,855,860,875,879,882,886,891,906,913,917,921,926,940,951,957,961,969,973,977,982,993,1000,1005,1016,1020,1025,1036,1041,1055,1059,1063,1068,1100,1104,1109,1141,1145,1150,1182,1185,1190],[10,11,5],"h1",{"id":12},"working-with-security-controls",[14,15,16],"p",{},[17,18,19],"em",{},"Learn how to create, manage, and assign reusable security controls in Dethernety to protect your threat models.",[21,22,24],"h2",{"id":23},"overview-controls-in-dethernety","Overview: Controls in Dethernety",[14,26,27,28,32],{},"A ",[29,30,31],"strong",{},"control"," is a reusable protective measure that lives in the Browser, independent of any single model, and can be assigned to many elements at once:",[34,35,36,43,53,59],"ul",{},[37,38,39,42],"li",{},[29,40,41],{},"Create once, use everywhere",": the same control can be assigned to components, data flows, boundaries, data items, and whole models",[37,44,45,48,49,52],{},[29,46,47],{},"Classes do the work",": a control gets its substance from one or more ",[29,50,51],{},"control classes"," supplied by modules",[37,54,55,58],{},[29,56,57],{},"Countermeasures are generated",": configuring an assigned class produces the control's countermeasures, each carrying its MITRE ATT&CK and D3FEND relations",[37,60,61,64],{},[29,62,63],{},"Mixed control types",": combine technical, administrative, and process classes in a single control",[14,66,67,68,71,72,75,76,81],{},"Two things are worth separating from the start. A control's ",[29,69,70],{},"countermeasures"," are derived from its own classes and attributes — they belong to the control, and they are the same wherever the control is used. What changes with assignment is ",[29,73,74],{},"which elements the control covers",". See ",[77,78,80],"a",{"href":79},"#what-assignment-means-for-coverage","What assignment means for coverage",".",[21,83,85],{"id":84},"creating-security-controls","Creating Security Controls",[87,88,90],"h3",{"id":89},"using-the-browser-interface","Using the Browser Interface",[14,92,93],{},"The Browser is your primary interface for creating and managing reusable controls.",[14,95,96,99],{},[29,97,98],{},"1. Navigate to Browser",":",[34,101,102,109,112],{},[37,103,104,105,108],{},"Open the ",[29,106,107],{},"Browser"," section in Dethernety",[37,110,111],{},"Use the breadcrumbs at the top to move through folders",[37,113,114],{},"The buttons at the top right of the folder area create, rename, move, and delete folders",[14,116,117,99],{},[29,118,119],{},"2. Create the control",[34,121,122,140],{},[37,123,124,125,128,129,132,133,136,137,139],{},"Click the ",[29,126,127],{},"+"," button at the top right of the models and controls area (tooltip ",[29,130,131],{},"Create or import","), then choose ",[29,134,135],{},"New control",", the shield action — or click the ",[29,138,135],{}," card in the controls area",[37,141,142,143,146],{},"The control is created immediately with a placeholder name, and its ",[29,144,145],{},"Control"," dialog opens",[14,148,149,152],{},[29,150,151],{},"3. Name and describe it"," (General tab):",[34,154,155,165],{},[37,156,157,158,161,162],{},"Give it a descriptive ",[29,159,160],{},"Name"," (3–100 characters) and a ",[29,163,164],{},"Description",[37,166,167,168,171],{},"Click ",[29,169,170],{},"Save"," (the save button at the bottom of the dialog). The save button stays disabled until something has changed",[14,173,174,177],{},[29,175,176],{},"4. Assign control classes"," (Control Classes tab):",[34,179,180,193,204,215,221,228],{},[37,181,104,182,185,186,188,189,192],{},[29,183,184],{},"Control Classes"," tab and click ",[29,187,127],{}," to open the ",[29,190,191],{},"Browse classes"," drawer",[37,194,195,196,199,200,203],{},"Search by name or description, and narrow the list with the ",[29,197,198],{},"Category"," and ",[29,201,202],{},"Module"," facet chips",[37,205,206,207,210,211,214],{},"Click a class to preview it, then click ",[29,208,209],{},"Select"," (or double-click the row) to add it. Classes already on the control show an ",[29,212,213],{},"Added"," chip",[37,216,217,218],{},"The drawer stays open so you can add several classes in one session — ",[17,219,220],{},"Adding multiple — use Cancel when done",[37,222,223,224,227],{},"Added classes appear in the bound-class table with their category and source module. Use ",[29,225,226],{},"Search bound classes"," to filter a long list",[37,229,167,230,232],{},[29,231,170],{}," to commit the class assignment",[14,234,235,99],{},[29,236,237],{},"5. Configure each control class",[34,239,240,246,269,275],{},[37,241,124,242,245],{},[29,243,244],{},"tune"," button on a class row to open its attributes form",[37,247,248,249,251,252,255,256,259,260,263,264,268],{},"Fill in the attributes the class defines, then ",[29,250,170],{},". A yes\u002Fno attribute answers ",[29,253,254],{},"Yes",", ",[29,257,258],{},"No",", or ",[29,261,262],{},"Not answered",", and an answer can be taken back — see ",[77,265,267],{"href":266},"\u002Fplatform\u002Fcomponent-configuration-guide#answering-yes-or-no-attributes","Answering yes-or-no attributes",". A list row you clear is removed from the list when you save",[37,270,271,274],{},[29,272,273],{},"Only configured classes generate countermeasures."," A class's policy fires on the attribute values you set — an unconfigured class contributes nothing",[37,276,277],{},"Attributes are saved by their own form, separately from the control's name, description, and class list",[14,279,280,281,284],{},"Removing a class that has stored attributes asks for confirmation first: ",[17,282,283],{},"Removing the following class will delete their stored attributes when you save."," The deletion happens when you save the control, not when you click the trash button.",[87,286,288],{"id":287},"where-control-classes-come-from","Where control classes come from",[14,290,291,292,295,296,298,299,301,302,306],{},"Control classes are supplied by ",[29,293,294],{},"modules"," — you do not author them in the control dialog. The ",[29,297,191],{}," drawer lists every control class from every module installed on your Dethernety instance, which is why it offers a ",[29,300,202],{}," facet. If the class you need doesn't exist, the answer is a module that provides it. See ",[77,303,305],{"href":304},"\u002Fplatform\u002Funderstanding-modules","Understanding Modules"," for what modules contribute and how they are built.",[21,308,310],{"id":309},"assigning-controls-to-elements","Assigning Controls to Elements",[87,312,314],{"id":313},"universal-control-assignment","Universal control assignment",[14,316,317,318,321],{},"A control can be assigned to any element type, including a data item, from that element's own settings surface. In every case the pattern is the same: a ",[29,319,320],{},"Controls"," tab listing controls, with a checkbox per row.",[14,323,324,99],{},[29,325,326],{},"From a component, data flow, or security boundary",[34,328,329,335,340,343,349,358],{},[37,330,331,332],{},"Double-click the node or the flow arrow on the canvas to open its ",[29,333,334],{},"settings panel",[37,336,104,337,339],{},[29,338,320],{}," tab",[37,341,342],{},"Tick a control's checkbox to assign it — assignment saves immediately, with no separate Save step",[37,344,345,346],{},"Untick to unassign. This asks first: ",[17,347,348],{},"Remove control '…' from this element?",[37,350,124,351,354,355,357],{},[29,352,353],{},"shield-plus"," button to pull in controls that aren't listed yet; the dialog that opens lists the controls in your Browser folders, and its ",[29,356,127],{}," button creates a new control on the spot",[37,359,124,360,363,364,366],{},[29,361,362],{},"pencil"," button on a row to open the full ",[29,365,145],{}," dialog for that control",[14,368,369,99],{},[29,370,371],{},"From a data item",[34,373,374,388,397,403,413],{},[37,375,376,377,380,381,383,384],{},"In an element's ",[29,378,379],{},"Data"," tab, click the pencil icon on the data item's row to open its ",[29,382,379],{}," dialog — see ",[77,385,387],{"href":386},"\u002Fplatform\u002Fcomponent-configuration-guide#the-data-tab","The Data Tab",[37,389,104,390,392,393,396],{},[29,391,320],{}," tab. It appears once the data item exists: while you are still creating it (",[29,394,395],{},"Create New Data Entity","), save it first, and the dialog switches to edit mode with the tab in place",[37,398,399,400,402],{},"The table lists the controls assigned to this data item. Click the ",[29,401,353],{}," button to add one — the same picker as on an element; a control you pick is saved at once",[37,404,345,405,408,409,412],{},[17,406,407],{},"Remove control '…' from this data entity?"," (or ",[17,410,411],{},"Remove N controls…"," when you untick several). Confirm, and the removal is saved; cancel, and the control stays assigned",[37,414,124,415,363,417,366],{},[29,416,362],{},[29,418,145],{},[14,420,421,99],{},[29,422,423],{},"From the Model dialog",[34,425,426,433,441],{},[37,427,428,429,432],{},"Right-click a model card in the Browser, or click the ",[29,430,431],{},"Model settings"," icon on the card or on the editor's canvas toolbar",[37,434,104,435,437,438,440],{},[29,436,320],{}," tab and tick the controls that apply model-wide, adding more with the ",[29,439,353],{}," button",[37,442,443,444],{},"Unlike the element panel, the model dialog needs an explicit ",[29,445,170],{},[14,447,448,449,452],{},"The ",[29,450,451],{},"Classes"," column on each row shows which control classes a control carries, so you can tell at a glance whether it will contribute countermeasures.",[87,454,80],{"id":455},"what-assignment-means-for-coverage",[14,457,458,459,462],{},"Assignment does not change a control's countermeasures — those are fixed by the control's classes and attributes. Assignment records ",[29,460,461],{},"which elements the control protects",", and that is what coverage and gap analysis read:",[34,464,465,472,478,484],{},[37,466,467,468,471],{},"A control assigned ",[29,469,470],{},"directly to an element"," covers that element.",[37,473,467,474,477],{},[29,475,476],{},"to a security boundary"," also covers the components that sit directly inside that boundary. Deeper nesting is not credited — a control on a grandparent boundary does not reach a grandchild's components.",[37,479,467,480,483],{},[29,481,482],{},"to a data item"," covers that data item's own exposures, through the direct assignment only. It does not cover the components, data flows, or boundaries the data item is attached to, and a control on any of those does not cover the data item. A data item does not sit inside a security boundary, so a boundary's controls never reach it. Gap analysis takes such a control into account for the data item's exposures.",[37,485,467,486,489],{},[29,487,488],{},"to a model"," is recorded against the model. It is a useful statement of a system-wide standard, but it is not counted as covering the model's individual components, flows, and boundaries. Assign it where you want the credit.",[14,491,492],{},"So define your security standard once as a control, then assign it wherever it genuinely applies. A single \"Encryption Control\" can protect a database component, an API data flow, and a network boundary at the same time — it is the same control, with the same countermeasures, credited against three elements.",[21,494,496],{"id":495},"what-a-countermeasure-carries","What a Countermeasure Carries",[14,498,499],{},"Every countermeasure a module generates is more than a sentence of advice: it carries explicit MITRE relations that make it machine-checkable. There are two kinds, and they answer different questions.",[87,501,503,504],{"id":502},"what-the-countermeasure-is","What the countermeasure ",[17,505,506],{},"is",[14,508,509,510,513,514,517,518,199,521,524,525,528],{},"Each countermeasure names the ATT&CK ",[29,511,512],{},"mitigations"," it implements and the ",[29,515,516],{},"D3FEND techniques"," it corresponds to. This is the countermeasure's identity in framework terms — for example, an EDR agent countermeasure identifies as ",[17,519,520],{},"Antivirus\u002FAntimalware (M1049)",[17,522,523],{},"Behavior Prevention on Endpoint (M1040)"," on the ATT&CK side, and ",[17,526,527],{},"Process Analysis (D3-PA)"," on the D3FEND side.",[14,530,531,532,535,536,539],{},"You see these on the ",[29,533,534],{},"Countermeasures"," tab of the control dialog, in the ",[29,537,538],{},"Mitigations & Techniques"," column: blue chips are ATT&CK mitigations, green chips are D3FEND techniques. Click any chip to open its full framework description.",[87,541,543,544],{"id":542},"how-the-countermeasure-counters","How the countermeasure ",[17,545,546],{},"counters",[14,548,549,550,553],{},"A countermeasure may also point at specific ATT&CK ",[29,551,552],{},"techniques"," and state what it actually does to each one. The wording is not decoration — each is a different security outcome:",[555,556,562],"div",{"className":557,"tabIndex":559,"role":560,"ariaLabel":561},[558],"table-frame",0,"region","Table: How the countermeasure counters",[563,564,565,578],"table",{},[566,567,568],"thead",{},[569,570,571,575],"tr",{},[572,573,574],"th",{},"Relation",[572,576,577],{},"What it claims",[579,580,581,592,602,616],"tbody",{},[569,582,583,589],{},[584,585,586],"td",{},[29,587,588],{},"Mitigates",[584,590,591],{},"Reduces the technique's effectiveness or blast radius.",[569,593,594,599],{},[584,595,596],{},[29,597,598],{},"Protects against",[584,600,601],{},"Hardens the target so the technique does not land in the first place.",[569,603,604,609],{},[584,605,606],{},[29,607,608],{},"Detects",[584,610,611,612,615],{},"Surfaces the technique when it is attempted — it does ",[29,613,614],{},"not"," stop it.",[569,617,618,623],{},[584,619,620],{},[29,621,622],{},"Isolates",[584,624,625],{},"Contains the technique by cutting the path it needs.",[14,627,628,629,632,633,636,637,640],{},"This distinction is the whole point. A countermeasure that ",[29,630,631],{},"detects"," ",[17,634,635],{},"T1078 Valid Accounts"," tells you that misuse of a legitimate credential will show up in your telemetry. A countermeasure that ",[29,638,639],{},"isolates"," the same technique tells you the compromised account cannot reach anything worth reaching. Both are \"coverage\" for T1078; only one of them stops the attack. Collapsing them into a single \"covered\" flag is exactly the over-claim the platform is built to avoid.",[14,642,643,644,255,647,255,650,653,654,657],{},"Four further relations — ",[17,645,646],{},"deceives",[17,648,649],{},"evicts",[17,651,652],{},"restores",", and ",[17,655,656],{},"responds to"," — are defined for the full defensive lifecycle. No module shipped today emits them, and nothing surfaces them yet; treat them as reserved.",[87,659,661],{"id":660},"where-the-relations-surface","Where the relations surface",[34,663,664,670,693],{},[37,665,666,669],{},[29,667,668],{},"In the control dialog",": the identity chips (mitigations and D3FEND techniques) on each countermeasure row.",[37,671,672,675,676,679,680,684,685,688,689,81],{},[29,673,674],{},"In the Threat Report",": the technique-level relations drive the ",[29,677,678],{},"Coverage & Gaps"," matrix. A countermeasure that names a technique directly produces the strongest, most specific coverage tier; the ",[681,682,683],"code",{},"⛉"," \u002F ",[681,686,687],{},"◎"," glyphs on a cell come straight from the prevent-versus-detect reading above. See ",[77,690,692],{"href":691},"\u002Fthreat-report\u002Funderstanding-coverage","Understanding Coverage and Gaps",[37,694,695,698,699,702],{},[29,696,697],{},"In gap analysis",": for each exposure, the platform walks from the exposure's attack techniques to the ATT&CK mitigations that defend against them, then asks whether any control covering that element provides a countermeasure implementing one of those mitigations. If none does, the exposure is reported as a gap — and controls that ",[17,700,701],{},"would"," address it are recommended.",[14,704,705,706,709],{},"Because these relations come from the module's policy, you get them without hand-mapping anything. What you ",[17,707,708],{},"do"," control is whether they apply: a class whose attributes you never configured emits no countermeasures, and therefore contributes no coverage.",[21,711,713],{"id":712},"authoring-your-own-countermeasures","Authoring Your Own Countermeasures",[14,715,716],{},"Alongside the countermeasures a module generates, you can write your own on any control.",[718,719,720,732,749,755,761],"ol",{},[37,721,722,723,185,725,727,728,731],{},"Open the control's ",[29,724,534],{},[29,726,127],{},". The ",[29,729,730],{},"Add Countermeasure"," dialog opens with three tabs on the left.",[37,733,734,735,738,739,255,741,255,743,653,746,81],{},"On ",[29,736,737],{},"Information",", fill in the ",[29,740,160],{},[29,742,164],{},[29,744,745],{},"Score",[29,747,748],{},"Type",[37,750,734,751,754],{},[29,752,753],{},"ATT&CK Mitigations",", attach the mitigations this countermeasure implements.",[37,756,734,757,760],{},[29,758,759],{},"D3FEND Techniques",", attach the corresponding defensive techniques.",[37,762,763],{},"Save with the save button at the bottom right.",[14,765,766,767,771,772,775],{},"Both framework tabs use the same ",[77,768,770],{"href":769},"#attaching-mitre-techniques-with-the-technique-picker","technique picker",". A hand-authored countermeasure carries the identity relations (mitigations and D3FEND techniques); the technique-level ",[17,773,774],{},"mitigates \u002F protects against \u002F detects \u002F isolates"," relations are emitted by module policies only.",[21,777,779],{"id":778},"attaching-mitre-techniques-with-the-technique-picker","Attaching MITRE Techniques with the Technique Picker",[14,781,782,783,99],{},"When you author or edit your own countermeasures and exposures, you can attach MITRE references directly using the ",[29,784,770],{},[34,786,787,798],{},[37,788,789,791,792,795,796,81],{},[29,790,534],{}," map to MITRE ",[29,793,794],{},"D3FEND"," techniques and ATT&CK ",[29,797,512],{},[37,799,800,791,803,806],{},[29,801,802],{},"Exposures",[29,804,805],{},"ATT&CK"," techniques.",[87,808,810],{"id":809},"finding-the-right-technique","Finding the right technique",[14,812,813],{},"The picker is built for the reality that you rarely know the exact id. Type into the search box and it matches progressively:",[34,815,816,829,839,845],{},[37,817,818,821,822,825,826,828],{},[29,819,820],{},"By id"," — type a full id (",[681,823,824],{},"T1003",") or a prefix (",[681,827,824],{}," also surfaces its sub-techniques).",[37,830,831,834,835,838],{},[29,832,833],{},"By name"," — type part of the technique's name (",[681,836,837],{},"credential dumping",").",[37,840,841,844],{},[29,842,843],{},"By description"," — type words that appear in the technique's description.",[37,846,847,850,851,854],{},[29,848,849],{},"By meaning"," — click ",[29,852,853],{},"Suggest matches"," to seed the search from the finding's own description. This uses semantic matching to surface techniques that are conceptually related even when they don't share the exact words.",[14,856,857,859],{},[29,858,853],{}," stays disabled until the finding's description is at least 20 characters — the tooltip tells you so. It reads the description only, not the name.",[14,861,862,863,866,867,870,871,874],{},"Results show the technique id, name, and tactic. Select a result to see its full description in the ",[29,864,865],{},"preview"," pane before committing, and pick several techniques in one session — the drawer stays open for multi-select. With the search box empty, the dropdown offers ",[29,868,869],{},"Recently used in this model"," to speed up repeat work, and ",[29,872,873],{},"Browse all →"," opens the full drawer.",[87,876,878],{"id":877},"when-semantic-suggestions-are-unavailable","When semantic suggestions are unavailable",[14,880,881],{},"Semantic (\"Suggest matches\") results depend on the deployment having an embedding backend configured and the MITRE corpus embedded. If that isn't available, the picker quietly falls back to id, name, and description matching — you can still find and attach any technique; only the meaning-based suggestions are turned off.",[21,883,885],{"id":884},"reviewing-a-controls-countermeasures","Reviewing a Control's Countermeasures",[14,887,448,888,890],{},[29,889,534],{}," tab of the control dialog is also where you triage. Each row shows where the countermeasure came from (a provenance icon distinguishes module-generated from your own), and a lifecycle badge showing whether it is awaiting review, confirmed in place, or disposed. The tab label itself carries a count of countermeasures still needing a first look, and a marker when a decision has gone stale because something changed underneath it: the control's attributes, or the techniques and references its class policy links to the countermeasure.",[14,892,893,894,897,898,901,902,905],{},"From a row you can ",[29,895,896],{},"affirm"," a countermeasure as confirmed in place, ",[29,899,900],{},"dispose"," of it with a reason, or ",[29,903,904],{},"customize"," it as an editable copy you own. Your own countermeasures are edited and deleted directly instead.",[14,907,908,909,81],{},"That lifecycle is shared with exposures and is documented once, in ",[77,910,912],{"href":911},"\u002Fplatform\u002Fmanaging-findings","Managing Findings",[21,914,916],{"id":915},"viewing-control-protection","Viewing Control Protection",[87,918,920],{"id":919},"on-the-element","On the element",[14,922,923,924,99],{},"Open any component, data flow, or boundary's ",[29,925,334],{},[34,927,928,934],{},[37,929,930,933],{},[29,931,932],{},"Controls tab",": the controls assigned to this element, with the classes each one carries",[37,935,936,939],{},[29,937,938],{},"Exposures tab",": the security weaknesses detected on this element, with the ATT&CK techniques that exploit them",[14,941,942,943,945,946,199,948,950],{},"For a data item, the ",[29,944,379],{}," dialog has the same ",[29,947,320],{},[29,949,802],{}," tabs.",[14,952,953,954,956],{},"Countermeasures are not listed on the element — they belong to the control. Open a control from the ",[29,955,320],{}," tab (the pencil button) to see what protection it actually provides.",[87,958,960],{"id":959},"across-the-model","Across the model",[14,962,963,964,966,967,81],{},"Element-by-element inspection tells you what is assigned, not what is covered. For the model-wide picture — which techniques your live exposures reach, which controls counter them, how strongly, and where the honest gaps are — use the Threat Report's ",[29,965,678],{}," tab. It is the surface that reads the MITRE relations described above, and it deliberately reports coverage tier by tier rather than as a single percentage. See ",[77,968,692],{"href":691},[21,970,972],{"id":971},"control-management-best-practices","Control Management Best Practices",[87,974,976],{"id":975},"organizing-controls","Organizing controls",[14,978,979,99],{},[29,980,981],{},"Folder structure in Browser",[34,983,984,987,990],{},[37,985,986],{},"Create folders by security domain (Network Security, Data Protection, Identity Management)",[37,988,989],{},"Organize by compliance requirements (PCI DSS Controls, GDPR Controls)",[37,991,992],{},"Group by system type (Web Application Controls, Database Controls, Cloud Controls)",[14,994,995,996,999],{},"Move a control between folders with the ",[29,997,998],{},"move"," button at the bottom of its dialog, and delete it with the trash button next to it. Both are available when you open the control from the Browser.",[14,1001,1002,99],{},[29,1003,1004],{},"Naming conventions",[34,1006,1007,1010,1013],{},[37,1008,1009],{},"Use descriptive names that indicate purpose (\"Web Server Hardening Package\")",[37,1011,1012],{},"Include scope indicators (\"Enterprise Network Controls\", \"Development Environment Controls\")",[37,1014,1015],{},"Controls are not versioned by the platform, so if you need to track revisions, put them in the name (\"Payment Processing Controls v2.1\")",[87,1017,1019],{"id":1018},"reusing-controls-across-projects","Reusing controls across projects",[14,1021,1022,99],{},[29,1023,1024],{},"Control libraries",[34,1026,1027,1030,1033],{},[37,1028,1029],{},"Keep a folder of standard controls that every model draws from",[37,1031,1032],{},"One control assigned to many elements means one place to update — improving its class configuration improves every element it covers",[37,1034,1035],{},"Prefer assigning an existing control over creating a near-duplicate; duplicates fragment your coverage picture",[14,1037,1038,99],{},[29,1039,1040],{},"Best practices",[34,1042,1043,1046,1049,1052],{},[37,1044,1045],{},"Test controls in development models before production use",[37,1047,1048],{},"Record implementation notes in the control's description",[37,1050,1051],{},"Review control configuration when the systems it describes change — attribute changes flag existing countermeasure decisions as stale for re-review",[37,1053,1054],{},"Track which models use a control before changing it, since the change propagates everywhere",[21,1056,1058],{"id":1057},"common-control-scenarios","Common Control Scenarios",[87,1060,1062],{"id":1061},"web-application-security","Web application security",[14,1064,1065,99],{},[29,1066,1067],{},"Essential web app control package",[34,1069,1070,1076,1082,1088,1094],{},[37,1071,1072,1075],{},[29,1073,1074],{},"TLS Encryption Control",": Secure communications",[37,1077,1078,1081],{},[29,1079,1080],{},"Input Validation Control",": Prevent injection attacks",[37,1083,1084,1087],{},[29,1085,1086],{},"Authentication Control",": User identity verification",[37,1089,1090,1093],{},[29,1091,1092],{},"Session Management Control",": Secure session handling",[37,1095,1096,1099],{},[29,1097,1098],{},"Security Headers Control",": Browser security policies",[87,1101,1103],{"id":1102},"database-protection","Database protection",[14,1105,1106,99],{},[29,1107,1108],{},"Database security control package",[34,1110,1111,1117,1123,1129,1135],{},[37,1112,1113,1116],{},[29,1114,1115],{},"Database Encryption Control",": Data at rest and in transit",[37,1118,1119,1122],{},[29,1120,1121],{},"Access Control",": Role-based database permissions",[37,1124,1125,1128],{},[29,1126,1127],{},"Audit Logging Control",": Database activity monitoring",[37,1130,1131,1134],{},[29,1132,1133],{},"Backup Security Control",": Secure backup procedures",[37,1136,1137,1140],{},[29,1138,1139],{},"Connection Security Control",": Secure database connections",[87,1142,1144],{"id":1143},"network-security","Network security",[14,1146,1147,99],{},[29,1148,1149],{},"Network protection control package",[34,1151,1152,1158,1164,1170,1176],{},[37,1153,1154,1157],{},[29,1155,1156],{},"Firewall Control",": Network traffic filtering",[37,1159,1160,1163],{},[29,1161,1162],{},"Network Segmentation Control",": Zone-based security",[37,1165,1166,1169],{},[29,1167,1168],{},"Intrusion Detection Control",": Threat monitoring",[37,1171,1172,1175],{},[29,1173,1174],{},"VPN Control",": Secure remote access",[37,1177,1178,1181],{},[29,1179,1180],{},"DDoS Protection Control",": Attack mitigation",[1183,1184],"hr",{},[14,1186,1187],{},[29,1188,1189],{},"Next Steps:",[34,1191,1192,1201,1208,1215,1224],{},[37,1193,1194,1200],{},[29,1195,1196],{},[77,1197,1199],{"href":1198},"\u002Fplatform\u002Fsecurity-analysis-workflow","Security Analysis Workflow",": Run analysis to identify where controls are needed",[37,1202,1203,1207],{},[29,1204,1205],{},[77,1206,912],{"href":911},": Affirm, dispose, and customize the countermeasures your controls generate",[37,1209,1210,1214],{},[29,1211,1212],{},[77,1213,692],{"href":691},": Read the model-wide coverage matrix your controls feed",[37,1216,1217,1223],{},[29,1218,1219],{},[77,1220,1222],{"href":1221},"\u002Fplatform\u002Fissue-management-guide","Issue Management Guide",": Track control implementation as security improvements",[37,1225,1226,1232],{},[29,1227,1228],{},[77,1229,1231],{"href":1230},"\u002Fplatform\u002Fbuilding-your-first-model","Building Your First Model",": Practical model creation with control assignment",{"title":1234,"searchDepth":1235,"depth":1235,"links":1236},"",3,[1237,1239,1243,1247,1254,1255,1259,1260,1264,1268],{"id":23,"depth":1238,"text":24},2,{"id":84,"depth":1238,"text":85,"children":1240},[1241,1242],{"id":89,"depth":1235,"text":90},{"id":287,"depth":1235,"text":288},{"id":309,"depth":1238,"text":310,"children":1244},[1245,1246],{"id":313,"depth":1235,"text":314},{"id":455,"depth":1235,"text":80},{"id":495,"depth":1238,"text":496,"children":1248},[1249,1251,1253],{"id":502,"depth":1235,"text":1250},"What the countermeasure is",{"id":542,"depth":1235,"text":1252},"How the countermeasure counters",{"id":660,"depth":1235,"text":661},{"id":712,"depth":1238,"text":713},{"id":778,"depth":1238,"text":779,"children":1256},[1257,1258],{"id":809,"depth":1235,"text":810},{"id":877,"depth":1235,"text":878},{"id":884,"depth":1238,"text":885},{"id":915,"depth":1238,"text":916,"children":1261},[1262,1263],{"id":919,"depth":1235,"text":920},{"id":959,"depth":1235,"text":960},{"id":971,"depth":1238,"text":972,"children":1265},[1266,1267],{"id":975,"depth":1235,"text":976},{"id":1018,"depth":1235,"text":1019},{"id":1057,"depth":1238,"text":1058,"children":1269},[1270,1271,1272],{"id":1061,"depth":1235,"text":1062},{"id":1102,"depth":1235,"text":1103},{"id":1143,"depth":1235,"text":1144},"md",{"category":1275,"position":1276,"tags":1277},"controls",7,[1278,1279,1275,1280,70,1281,1282,1283],"intermediate","guide","browser","mitre","universal-assignment","practical",true,"\u002Fplatform\u002Fworking-with-security-controls",{"title":5,"description":19},"01.platform\u002F05.working-with-security-controls","CG0Y0YJT06zF-j8wLtfjvUSByXju9oEEFP0IXtykmxQ",[1290,1331,1366,1421,1453,1497,1512,1582],{"title":1291,"description":1292,"path":1293,"stem":1294,"children":1295,"page":-1},"Platform","Modelling, analysis, findings and controls in the Dethernety platform.","\u002Fplatform","01.platform",[1296,1300,1305,1308,1311,1314,1315,1318,1323,1326],{"title":1297,"path":1293,"stem":1298,"description":1299},"Dethernety User Documentation","01.platform\u002Findex","User guide for the Dethernety threat modeling platform",{"title":1301,"path":1302,"stem":1303,"description":1304},"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":1231,"path":1230,"stem":1306,"description":1307},"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":1199,"path":1198,"stem":1309,"description":1310},"01.platform\u002F03.security-analysis-workflow","How to run security analysis and interpret results to improve your threat models.",{"title":912,"path":911,"stem":1312,"description":1313},"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":5,"path":1285,"stem":1287,"description":19},{"title":1222,"path":1221,"stem":1316,"description":1317},"01.platform\u002F06.issue-management-guide","Issue tracking, filtering, and management in Dethernety.",{"title":1319,"path":1320,"stem":1321,"description":1322},"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":305,"path":304,"stem":1324,"description":1325},"01.platform\u002F08.understanding-modules","How Dethernety's module system extends your threat modeling capabilities.",{"title":1327,"path":1328,"stem":1329,"description":1330},"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":1332,"description":1333,"path":1334,"stem":1335,"children":1336,"page":-1},"BYODt cloud","Deploying the platform yourself and connecting it to the BYODt cloud.","\u002Fbyodt-cloud","02.byodt-cloud",[1337,1341,1346,1351,1356,1361],{"title":1338,"path":1334,"stem":1339,"description":1340},"BYODt Deployment","02.byodt-cloud\u002Findex","Run Dethernety on your own machine: install, configure, operate, and recover",{"title":1342,"path":1343,"stem":1344,"description":1345},"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":1347,"path":1348,"stem":1349,"description":1350},"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":1352,"path":1353,"stem":1354,"description":1355},"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":1357,"path":1358,"stem":1359,"description":1360},"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":1362,"path":1363,"stem":1364,"description":1365},"Troubleshooting the BYODt Deployment","\u002Fbyodt-cloud\u002Ftroubleshooting","02.byodt-cloud\u002F05.troubleshooting","Symptom, cause, and fix for the failures this deployment reports",{"title":1367,"description":1368,"path":1369,"stem":1370,"children":1371,"page":-1},"Dethereal","The Claude Code plugin: build a threat model in conversation and publish it to the platform.","\u002Fdethereal","03.dethereal",[1372,1376,1381,1386,1391,1396,1401,1406,1411,1416],{"title":1373,"path":1369,"stem":1374,"description":1375},"Dethereal — Claude Code Plugin for Threat Modeling","03.dethereal\u002Findex","Comprehensive documentation for the Dethereal threat modeling plugin",{"title":1377,"path":1378,"stem":1379,"description":1380},"Getting Started with Dethereal","\u002Fdethereal\u002Fgetting-started","03.dethereal\u002F01.getting-started","Install the plugin, authenticate, and create your first threat model",{"title":1382,"path":1383,"stem":1384,"description":1385},"The 11-Step Guided Workflow","\u002Fdethereal\u002Fguided-workflow","03.dethereal\u002F02.guided-workflow","Complete walkthrough of the \u002Fdethereal:threat-model guided process",{"title":1387,"path":1388,"stem":1389,"description":1390},"Command Reference","\u002Fdethereal\u002Fcommand-reference","03.dethereal\u002F03.command-reference","Complete reference for all 14 Dethereal slash commands",{"title":1392,"path":1393,"stem":1394,"description":1395},"Threat Model Concepts","\u002Fdethereal\u002Fmodel-concepts","03.dethereal\u002F04.model-concepts","Components, boundaries, data flows, classes, attributes, and quality scoring",{"title":1397,"path":1398,"stem":1399,"description":1400},"Discovery and Enrichment","\u002Fdethereal\u002Fdiscovery-and-enrichment","03.dethereal\u002F05.discovery-and-enrichment","Infrastructure scanning, security attributes, MITRE ATT&CK, credentials, and compliance",{"title":1402,"path":1403,"stem":1404,"description":1405},"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":1407,"path":1408,"stem":1409,"description":1410},"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":1412,"path":1413,"stem":1414,"description":1415},"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":1417,"path":1418,"stem":1419,"description":1420},"Dethereal Glossary","\u002Fdethereal\u002Fglossary","03.dethereal\u002F09.glossary","Definitions for Dethereal-specific terminology",{"title":1422,"description":1423,"path":1424,"stem":1425,"children":1426,"page":-1},"Threat Report","The residual-risk report over a threat model: reading it, filtering it and exporting it.","\u002Fthreat-report","04.threat-report",[1427,1430,1435,1440,1443,1448],{"title":1422,"path":1424,"stem":1428,"description":1429},"04.threat-report\u002Findex","Read, filter, drill into, and export a residual-risk report over a threat model",{"title":1431,"path":1432,"stem":1433,"description":1434},"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":1436,"path":1437,"stem":1438,"description":1439},"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":692,"path":691,"stem":1441,"description":1442},"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":1444,"path":1445,"stem":1446,"description":1447},"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":1449,"path":1450,"stem":1451,"description":1452},"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":1454,"description":1455,"path":1456,"stem":1457,"children":1458,"page":-1},"Risk assessment","The risk assessment module: the register, the reports and the method behind them.","\u002Frisk-assessment","05.risk-assessment",[1459,1463,1468,1473,1478,1483,1487,1492],{"title":1460,"path":1456,"stem":1461,"description":1462},"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":1464,"path":1465,"stem":1466,"description":1467},"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":1469,"path":1470,"stem":1471,"description":1472},"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":1474,"path":1475,"stem":1476,"description":1477},"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":1479,"path":1480,"stem":1481,"description":1482},"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":1436,"path":1484,"stem":1485,"description":1486},"\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":1488,"path":1489,"stem":1490,"description":1491},"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":1493,"path":1494,"stem":1495,"description":1496},"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":1498,"description":1499,"path":1500,"stem":1501,"children":1502,"page":-1},"Threat Patterns","The Threat Patterns module and its modelling checklist.","\u002Fthreat-patterns","06.threat-patterns",[1503,1507],{"title":1504,"path":1500,"stem":1505,"description":1506},"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":1508,"path":1509,"stem":1510,"description":1511},"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":1513,"description":1514,"path":1515,"stem":1516,"children":1517,"page":-1},"Agentic modelling","A hands-on training: model one agentic system step by step, with Threat Patterns after each step.","\u002Fagentic-modelling","07.agentic-modelling",[1518,1522,1527,1532,1537,1542,1547,1552,1557,1562,1567,1572,1577],{"title":1519,"path":1515,"stem":1520,"description":1521},"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":1523,"path":1524,"stem":1525,"description":1526},"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":1528,"path":1529,"stem":1530,"description":1531},"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":1533,"path":1534,"stem":1535,"description":1536},"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":1538,"path":1539,"stem":1540,"description":1541},"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":1543,"path":1544,"stem":1545,"description":1546},"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":1548,"path":1549,"stem":1550,"description":1551},"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":1553,"path":1554,"stem":1555,"description":1556},"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":1558,"path":1559,"stem":1560,"description":1561},"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":1563,"path":1564,"stem":1565,"description":1566},"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":1568,"path":1569,"stem":1570,"description":1571},"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":1573,"path":1574,"stem":1575,"description":1576},"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":1578,"path":1579,"stem":1580,"description":1581},"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":1583,"description":1584,"path":1585,"stem":1586,"children":1587,"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",[1588,1592,1597],{"title":1589,"path":1585,"stem":1590,"description":1591},"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":1593,"path":1594,"stem":1595,"description":1596},"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":1598,"path":1599,"stem":1600,"description":1601},"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",1793748184840]