WEB / WEB-01.S01
Assets, threats and trust assumptions
A security claim needs a protected asset and an explicit trust assumption. Separate threat, weakness, vulnerability and impact using one private editorial note.
What to follow on the first pass
Compare a public book title with Duru’s private note. State what is protected and which assumption needs verification.
Select the note content as the asset. A browser saying “I am Duru” is a claim; a verified principal and permission to read the note are separate checks.
- Asset / threat
- An asset is something worth protecting; a threat is a situation or event that could harm it.
- Claim / principal
- A claim is an assertion; a principal is the subject used in identity and permission decisions. An assertion alone is not verification.
- Ownership / permission
- Who owns the record and which operations are permitted on it.
Where do the later details fit?
A tenant is a customer or workspace separated by the application; an entitlement is an access right. Session and authorization modules develop these decisions. Focus here on the protected data and required evidence.
1. Core · Mechanism
Read every scenario without motion
Verified own context · allow
- Separate a claim from authority
The private note body is an asset. The browser requests note.read and displays a Duru label. That label is neither a verified principal nor resource permission.
- Browser · submitted claim
- Claim: Duru · note.read
- Application · verified context
- No request yet
- Resource · server metadata
- note-atlas-01 · private
- External input reached the server
Request arrival only proves receipt of the submitted claim. The application does not substitute client actor or tenant labels for its verified context.
- Browser · submitted claim
- Waiting for a decision
- Application · verified context
- Claim received; verification separate
- Resource · server metadata
- Body not delivered
- Principal context is established on the server
In this fixture the server verified Duru’s principal; active tenant context is Atlas. Authentication does not imply permission to read this note.
- Browser · submitted claim
- Waiting for a decision
- Application · verified context
- Verified: Duru / Atlas
- Resource · server metadata
- Body not delivered
- Object context has a different source
In this teaching fixture note metadata belongs to server authority: owner Duru, tenant Atlas. This card is not discovery or packet capture; the browser claim does not change metadata.
- Browser · submitted claim
- Waiting for a decision
- Application · verified context
- Principal ready; policy pending
- Resource · server metadata
- Owner: Duru · tenant: Atlas
- A local policy decision at the boundary
Verified principal, tenant match, owner relationship and note.read requirements hold in this fixture. ALLOW applies only to this object/action/context.
- Browser · submitted claim
- Response not received
- Application · verified context
- ALLOW · OWNER_READ
- Resource · server metadata
- Body permitted for this read
- The result is in the browser; the source remains on the server
Only the allow branch carries the private-note representation. A denied response carries the decision outcome. Production response detail requires separate information-disclosure design.
- Browser · submitted claim
- Permitted note representation received
- Application · verified context
- ALLOW · OWNER_READ
- Resource · server metadata
- note-atlas-01 remains protected on server
- A risk claim needs conditions and evidence
A threat describes a potentially harmful situation. A vulnerability is a control weakness; this protected model does not implement that weakness. Impact requires evidence of which asset was actually affected and how. An ALLOW/DENY trace alone does not prove all of these.
- Browser · submitted claim
- Expected permitted outcome
- Application · verified context
- Audit: OWNER_READ; no secrets
- Resource · server metadata
- Asset scope: private note
Unverified claim · deny
- Separate a claim from authority
The private note body is an asset. The browser requests note.read and displays a Duru label. That label is neither a verified principal nor resource permission.
- Browser · submitted claim
- Claim: Duru · note.read
- Application · verified context
- No request yet
- Resource · server metadata
- note-atlas-01 · private
- External input reached the server
Request arrival only proves receipt of the submitted claim. The application does not substitute client actor or tenant labels for its verified context.
- Browser · submitted claim
- Waiting for a decision
- Application · verified context
- Claim received; verification separate
- Resource · server metadata
- Body not delivered
- Principal context is established on the server
In this fixture the submitted Duru assertion is unverified. There is no authoritative principal; matching a name does not fill that gap.
- Browser · submitted claim
- Waiting for a decision
- Application · verified context
- Verified principal: absent
- Resource · server metadata
- Body not delivered
- Object context has a different source
In this teaching fixture note metadata belongs to server authority: owner Duru, tenant Atlas. This card is not discovery or packet capture; the browser claim does not change metadata.
- Browser · submitted claim
- Waiting for a decision
- Application · verified context
- No principal; deny pending
- Resource · server metadata
- Owner: Duru · tenant: Atlas
- A local policy decision at the boundary
The missing requirement yields DENY. The protected body is withheld. This is local evaluation; policy checks do not each imply network transfers.
- Browser · submitted claim
- Response not received
- Application · verified context
- DENY · VERIFIED_PRINCIPAL_REQUIRED
- Resource · server metadata
- Protected body withheld
- The result is in the browser; the source remains on the server
Only the allow branch carries the private-note representation. A denied response carries the decision outcome. Production response detail requires separate information-disclosure design.
- Browser · submitted claim
- Denial received; no note body
- Application · verified context
- DENY · VERIFIED_PRINCIPAL_REQUIRED
- Resource · server metadata
- note-atlas-01 remains protected on server
- A risk claim needs conditions and evidence
A threat describes a potentially harmful situation. A vulnerability is a control weakness; this protected model does not implement that weakness. Impact requires evidence of which asset was actually affected and how. An ALLOW/DENY trace alone does not prove all of these.
- Browser · submitted claim
- Expected protective denial
- Application · verified context
- Audit: VERIFIED_PRINCIPAL_REQUIRED; no secrets
- Resource · server metadata
- Asset scope: private note
Verified foreign tenant · deny
- Separate a claim from authority
The private note body is an asset. The browser requests note.read and displays a Duru label. That label is neither a verified principal nor resource permission.
- Browser · submitted claim
- Claim: Duru · note.read
- Application · verified context
- No request yet
- Resource · server metadata
- note-atlas-01 · private
- External input reached the server
Request arrival only proves receipt of the submitted claim. The application does not substitute client actor or tenant labels for its verified context.
- Browser · submitted claim
- Waiting for a decision
- Application · verified context
- Claim received; verification separate
- Resource · server metadata
- Body not delivered
- Principal context is established on the server
In this fixture the server verified Duru’s principal; active tenant context is Orion. Authentication does not imply permission to read this note.
- Browser · submitted claim
- Waiting for a decision
- Application · verified context
- Verified: Duru / Orion
- Resource · server metadata
- Body not delivered
- Object context has a different source
In this teaching fixture note metadata belongs to server authority: owner Duru, tenant Atlas. This card is not discovery or packet capture; the browser claim does not change metadata.
- Browser · submitted claim
- Waiting for a decision
- Application · verified context
- Principal ready; policy pending
- Resource · server metadata
- Owner: Duru · tenant: Atlas
- A local policy decision at the boundary
The missing requirement yields DENY. The protected body is withheld. This is local evaluation; policy checks do not each imply network transfers.
- Browser · submitted claim
- Response not received
- Application · verified context
- DENY · TENANT_MISMATCH
- Resource · server metadata
- Protected body withheld
- The result is in the browser; the source remains on the server
Only the allow branch carries the private-note representation. A denied response carries the decision outcome. Production response detail requires separate information-disclosure design.
- Browser · submitted claim
- Denial received; no note body
- Application · verified context
- DENY · TENANT_MISMATCH
- Resource · server metadata
- note-atlas-01 remains protected on server
- A risk claim needs conditions and evidence
A threat describes a potentially harmful situation. A vulnerability is a control weakness; this protected model does not implement that weakness. Impact requires evidence of which asset was actually affected and how. An ALLOW/DENY trace alone does not prove all of these.
- Browser · submitted claim
- Expected protective denial
- Application · verified context
- Audit: TENANT_MISMATCH; no secrets
- Resource · server metadata
- Asset scope: private note
ACTORS · STATE · DATA FLOW
A public book and a private note
The public Atlas Notları book title is readable by everyone. In the same application, note-atlas-01 is Duru’s private editorial note. An asset is something valuable to protect: here the note body, accurate ownership metadata and attribution of a read to the right actor. Assets include more than passwords or keys; business records, available services and trustworthy audits can have value.
Specify the property for each asset. The private body needs confidentiality, ownership metadata integrity, and the note service availability. A public title has a different confidentiality requirement. Labeling every field secret obscures intended functionality and controls.
Threat, weakness, vulnerability and impact
A threat is a circumstance or event capable of harm. Serving a private note outside entitlement is a threat statement; a person or other source capable of causing it is a threat source. Weakness can describe a design or implementation defect class, such as missing trusted authorization. Vulnerability describes a weakness in a particular system that a threat can exploit or trigger. Glossaries use these words at different breadths; our working distinction separates a class from its concrete system instance.
Impact is the consequence for an asset and its business: unauthorized reading loses confidentiality. Wider impact requires scope—affected notes, people and downstream work. Risk considers impact alongside a reasoned likelihood assessment. A CWE label alone does not establish critical impact across an entire system.
Write the trust assumption down
In normal note.read, the browser selects the target. The server establishes a verified principal and active tenant context. OwnerId and tenantId come from server-held note metadata. Our private-note rule requires verified actor, matching tenant and matching owner before release. Choosing “owner” in a UI does not establish those conditions.
A trust boundary separates authorities or trust assumptions, not necessarily physical networks. A browser actor label is an assertion; the principal established by server authentication is a distinct input. Stored ownership metadata has another provenance. Controls state which source is accepted for which decision.
Controls, evidence and remaining scope
The trusted service layer enforces note.read: unverified principal denies, foreign tenant denies, verified own-note allows. The teaching matrix defines what should happen. Claiming an actual vulnerability additionally requires observing the implemented rule and any private data delivered.
HTTPS can protect transmission but does not evaluate note entitlement. A hidden button or “access denied” browser message is not a substitute for trusted enforcement. Private data emerging through another field, cache or download can invalidate a main-screen-only control. The authorization lesson expands those paths.
2. Red · Trust & Impact
Read every scenario without motion
Owner access
- Asset and property were defined
The protected value is the private body of note-atlas-01; protectedProperty is confidentiality. A visible title or name label does not prove private-body delivery.
- Principal assertion
- note.read / Duru
- Trusted policy gate
- No decision
- Private asset
- note-atlas-01 / private
- Principal authority was inspected
VERIFIED_OWN supplies principalVerified=true and verifiedContextTenant=atlas as server-side model predicates.
- Principal assertion
- note.read / Duru
- Trusted policy gate
- Verified Duru / atlas
- Private asset
- note-atlas-01 / private
- Object metadata has a separate source
ownerId=duru and tenantId=atlas are authoritative metadata of the private asset. A client naming itself owner does not change the source of these values.
- Principal assertion
- note.read / Duru
- Trusted policy gate
- Verified Duru / atlas
- Private asset
- owner=duru / tenant=atlas
- The control runs before release
Verified principal, tenant and ownership match; OWNER_READ allow is expected. Legitimate owner access is not realization of a threat.
- Principal assertion
- note.read / Duru
- Trusted policy gate
- ALLOW / OWNER_READ
- Private asset
- owner=duru / tenant=atlas
- The body boundary applied the outcome
protectedBodyDelivered=true is this case’s expected model outcome. Asset delivery and decision are separate checks; the model establishes no actual application finding.
- Principal assertion
- note.read / Duru
- Trusted policy gate
- ALLOW / OWNER_READ
- Private asset
- Body: owner scope
- Impact stays with the supported property
The gate prevents releasing private body outside entitlement. Hypothetical read disclosure concerns confidentiality; integrity or availability consequences need separate mutation or service evidence.
- Principal assertion
- note.read / Duru
- Trusted policy gate
- Confidentiality gate preserved
- Private asset
- Body: owner scope
Unverified actor
- Asset and property were defined
The protected value is the private body of note-atlas-01; protectedProperty is confidentiality. A visible title or name label does not prove private-body delivery.
- Principal assertion
- note.read / Duru
- Trusted policy gate
- No decision
- Private asset
- note-atlas-01 / private
- Principal authority was inspected
UNVERIFIED_ACTOR supplies principalVerified=false and verifiedContextTenant=null. actorId=duru is not a substitute for a server-verified principal.
- Principal assertion
- note.read / Duru
- Trusted policy gate
- Verification absent
- Private asset
- note-atlas-01 / private
- Object metadata has a separate source
ownerId=duru and tenantId=atlas are authoritative metadata of the private asset. A client naming itself owner does not change the source of these values.
- Principal assertion
- note.read / Duru
- Trusted policy gate
- Verification absent
- Private asset
- owner=duru / tenant=atlas
- The control runs before release
The verification prerequisite is absent; VERIFIED_PRINCIPAL_REQUIRED deny is expected. Body release follows the decision, not a UI appearance.
- Principal assertion
- note.read / Duru
- Trusted policy gate
- DENY / VERIFIED_PRINCIPAL_REQUIRED
- Private asset
- owner=duru / tenant=atlas
- The body boundary applied the outcome
protectedBodyDelivered=false is this case’s expected model outcome. Asset delivery and decision are separate checks; the model establishes no actual application finding.
- Principal assertion
- note.read / Duru
- Trusted policy gate
- DENY / VERIFIED_PRINCIPAL_REQUIRED
- Private asset
- Body withheld
- Impact stays with the supported property
The gate prevents releasing private body outside entitlement. Hypothetical read disclosure concerns confidentiality; integrity or availability consequences need separate mutation or service evidence.
- Principal assertion
- note.read / Duru
- Trusted policy gate
- Confidentiality gate preserved
- Private asset
- Body withheld
ASSUMPTION · BOUNDARY · CONTROL
Establish conditions before claiming a vulnerability
Private-note access requires the owner/tenant entitlement. A potentially broken assumption is accepting a browser actor assertion in place of a trusted principal. That is a design-review question; without evidence that a particular implementation accepts it, it is not a confirmed vulnerability.
UNVERIFIED_ACTOR expects deny. An allow warrants examining both decision-input provenance and private-body delivery. A visible title is not the same as release of the private note. Keep the affected asset and output field explicit.
Do not inflate impact
Own-note allow is intended functionality, not realization of a threat. Foreign-tenant denial is a blocking-policy example. Even observing unauthorized private-note disclosure does not automatically prove modified ownership or access to all tenant data.
Confidentiality, integrity and availability consequences require different evidence. A read exposure may demonstrate confidentiality loss; claim no integrity loss without mutation and no availability loss without service evidence. Distinguish observed from possible impact.
Name the threat a control reduces
Trusted-principal verification prevents an unsupported identity assertion becoming decision authority. Tenant/ownership checks constrain disclosure outside entitlement. Output projection reduces private fields appearing in an allowed response. These controls address different faults; the presence of one does not prove the others ran.
The model uses normal permission reasoning over supplied actor/resource cases. It requires no external targets, credential acquisition or enumeration.
3. Blue · Secure development & defense
Read every scenario without motion
Negative control
- A threat record is not an event
TR-NOTE-01 defines a boundary, assumption, candidateWeakness and controlOwner. vulnerabilityStatus=not-claimed-for-real-system makes it neither a confirmed vulnerability nor an observed disclosure.
- Threat record
- Hypothesis / confidentiality
- Policy expectation
- No observation
- Output review
- No conclusion
- The expected denial was selected
UNVERIFIED_ACTOR is expected to be denied with VERIFIED_PRINCIPAL_REQUIRED. Withholding the protected body is another expectation of the same control. The row defines a required outcome rather than an observed one.
- Threat record
- Hypothesis / confidentiality
- Policy expectation
- Expected: deny / body=false
- Output review
- No conclusion
- The decision inputs were identified
The case matrix defines the expected denial from principalVerified, verifiedContextTenant and the asset ownerId/tenantId. These are not runtime audit records. An actual verification must separately observe that application-service obtains trusted inputs and produces VERIFIED_PRINCIPAL_REQUIRED.
- Threat record
- Hypothesis / confidentiality
- Policy expectation
- Expected: deny / VERIFIED_PRINCIPAL_REQUIRED
- Output review
- No conclusion
- Protected output was inspected separately
The case matrix expects protectedBodyDelivered=false. Denial and withholding the private body are separate expectations of the control. Runtime verification needs both the decision record and response coverage of protected fields; private body is not copied into audit.
- Threat record
- Hypothesis / confidentiality
- Policy expectation
- Expected: deny / VERIFIED_PRINCIPAL_REQUIRED
- Output review
- Expected: protectedBodyDelivered=false
- The control owner gets the right question
application-service must preserve VERIFIED_OWN allow alongside UNVERIFIED_ACTOR and OTHER_TENANT denials. Blocking every access is not a successful regression.
- Threat record
- Owner allow + two denials required
- Policy expectation
- Expected: deny / VERIFIED_PRINCIPAL_REQUIRED
- Output review
- Expected: protectedBodyDelivered=false
- Finding and unknown were separated
The UNVERIFIED_ACTOR row consistently expects denial and protectedBodyDelivered=false. This neither verifies a running control nor establishes disclosure. Actual verification must measure normal owner access alongside rejection of an unverified principal and a different tenant.
- Threat record
- Owner allow + two denials required
- Policy expectation
- Expected: deny / VERIFIED_PRINCIPAL_REQUIRED
- Output review
- Expectations agree; runtime unmeasured
Output absent
- A threat record is not an event
TR-NOTE-01 defines a boundary, assumption, candidateWeakness and controlOwner. vulnerabilityStatus=not-claimed-for-real-system makes it neither a confirmed vulnerability nor an observed disclosure.
- Threat record
- Hypothesis / confidentiality
- Policy expectation
- No observation
- Output review
- No conclusion
- The expected denial was selected
UNVERIFIED_ACTOR is expected to be denied with VERIFIED_PRINCIPAL_REQUIRED. Withholding the protected body is another expectation of the same control. The row defines a required outcome rather than an observed one.
- Threat record
- Hypothesis / confidentiality
- Policy expectation
- Expected: deny / body=false
- Output review
- No conclusion
- The decision inputs were identified
The case matrix defines the expected denial from principalVerified, verifiedContextTenant and the asset ownerId/tenantId. These are not runtime audit records. An actual verification must separately observe that application-service obtains trusted inputs and produces VERIFIED_PRINCIPAL_REQUIRED.
- Threat record
- Hypothesis / confidentiality
- Policy expectation
- Expected: deny / VERIFIED_PRINCIPAL_REQUIRED
- Output review
- No conclusion
- Protected output was inspected separately
This branch supplies no protected-field delivery observation. The expected denial is not an actual decision record, and excluding private body from the response needs separate observation.
- Threat record
- Hypothesis / confidentiality
- Policy expectation
- Expected: deny / VERIFIED_PRINCIPAL_REQUIRED
- Output review
- UNKNOWN: delivery
- The control owner gets the right question
application-service must preserve VERIFIED_OWN allow alongside UNVERIFIED_ACTOR and OTHER_TENANT denials. Blocking every access is not a successful regression.
- Threat record
- Owner allow + two denials required
- Policy expectation
- Expected: deny / VERIFIED_PRINCIPAL_REQUIRED
- Output review
- UNKNOWN: delivery
- Finding and unknown were separated
The expected denial is available, but actual decision and body-delivery observations are absent. The confidentiality outcome remains UNKNOWN. Neither disclosure nor complete protection follows without correlating the application-service decision and relevant response fields for the same operation.
- Threat record
- Owner allow + two denials required
- Policy expectation
- Expected: deny / VERIFIED_PRINCIPAL_REQUIRED
- Output review
- UNKNOWN: confidentiality outcome
IMPLEMENTATION · SECURITY CONTROL · VERIFICATION
A threat record is not an event record
The threat record links asset, boundary, assumption, candidate weakness, control and expected observation. It explores possible conditions. A decision event records an application outcome for a particular request. Keep their identity, timing and evidential scope distinct.
Our example correlates requestId, verified actor, active tenant, object metadata and decision/reason. These are custom application fields. Record field classification or delivery checks rather than copying private note contents into audits; credentials are not correlation identifiers.
Expected allow, expected deny, unknown
VERIFIED_OWN allow with note body is the normal positive case. UNVERIFIED_ACTOR and OTHER_TENANT deny without protected output are negative controls. Expected denial can be a safe result and may follow benign changes such as role removal. Alerting on every denial creates unnecessary noise.
Missing verification or object-tenant fields leaves the decision basis unknown. A deny event without output observation does not prove no data left. Add the missing observation rather than assuming a control worked: evaluate trusted decision and protected-field delivery together.
What review and regression close
The control owner re-evaluates positive and negative cases after changes. Verified own access remains available, missing verification and foreign tenant remain denied, and deny releases no protected output. This preserves intended functionality rather than making checks green by blocking everything.
New endpoints, caches, roles or resource classes may change assumptions. Update the model and verify enforcement at the same boundary. Without likelihood and impact rationale, do not invent a numeric risk; state uncertainty and the evidence needed.
In application code returning the private note, obtain principal and active tenant from verified server context and owner/tenant from authoritative object metadata. Browser actor or tenant labels cannot replace those values. Every entry point to that note must check this relationship before preparing its body; missing required context must withhold protected content. Hiding a UI button or making note IDs hard to guess does not enforce this decision. Preserving VERIFIED_OWN access while withholding bodies in the other two cases verifies both sides of the implementation contract.
NOW APPLY IT TO THE CASE
Which assumption must be verified before releasing the private note?
note-atlas-01 is Duru’s private note in the Atlas tenant. Trusted-principal and ownership checks are required before releasing its body. A threat record describes those conditions and potential consequences, not an observed incident.
Compare the linked case’s protected report with this lesson’s private note. Verified identity alone does not determine access to an object. Explain DENY for an unverified claim and the separate ownership and permission evidence needed after verification.
Open the related case file ↗READ THE EXAMPLE TOGETHER
Private-note threat record and control matrix
Select a field and examine what it supports and where the evidence ends.
Read the raw artifact and field explanations
{
"system": "atlas-editorial-note",
"asset": {
"id": "note-atlas-01",
"ownerId": "duru",
"tenantId": "atlas",
"classification": "private",
"protectedProperty": "confidentiality"
},
"threatRecord": {
"id": "TR-NOTE-01",
"threat": "private note body disclosed outside entitlement",
"boundary": "browser assertion to trusted application context",
"assumption": "principal and tenant are verified server-side; object metadata is authoritative",
"candidateWeakness": "missing trusted resource authorization",
"vulnerabilityStatus": "not-claimed-for-real-system",
"conditionalImpact": "confidentiality loss of delivered private note; no proven mutation or service disruption",
"controlOwner": "application-service",
"control": "verified principal, tenant and owner policy before note body release"
},
"cases": [
{
"caseId": "VERIFIED_OWN",
"actorId": "duru",
"principalVerified": true,
"verifiedContextTenant": "atlas",
"objectId": "note-atlas-01",
"action": "note.read",
"expected": {
"decision": "allow",
"reason": "OWNER_READ",
"protectedBodyDelivered": true
}
},
{
"caseId": "UNVERIFIED_ACTOR",
"actorId": "duru",
"principalVerified": false,
"verifiedContextTenant": null,
"objectId": "note-atlas-01",
"action": "note.read",
"expected": {
"decision": "deny",
"reason": "VERIFIED_PRINCIPAL_REQUIRED",
"protectedBodyDelivered": false
}
},
{
"caseId": "OTHER_TENANT",
"actorId": "duru",
"principalVerified": true,
"verifiedContextTenant": "orion",
"objectId": "note-atlas-01",
"action": "note.read",
"expected": {
"decision": "deny",
"reason": "TENANT_MISMATCH",
"protectedBodyDelivered": false
}
}
],
"evidenceRequired": [
"trusted principal verification",
"authoritative object owner/tenant",
"decision with reason",
"protected field delivery observation"
]
}- asset / protectedProperty
- Protected value and required security property.
- candidateWeakness / vulnerabilityStatus
- A review hypothesis, not evidence of a real-system vulnerability.
- conditionalImpact
- Consequence if the specified event occurs; other impact classes are not presumed.
- principalVerified / verifiedContextTenant
- Server-side teaching inputs, not the same authority as a client actor label.
- expected / evidenceRequired
- Required outcome and evidence to observe; actual runtime outcomes are separate.
Inert synthetic threat record, not a real vulnerability finding, risk score or production event. It shows three selected policy cases, not a full membership, concurrency or output-path model.
Two reality checks
Listing a threat proves a confirmed application vulnerability.
A threat describes possible harm. A concrete vulnerability requires evidence of the system weakness, necessary conditions and control behavior.
HTTPS also solves authorization of the private note.
TLS protects the channel. Trusted application policy separately decides whether this actor may read this private note.
YOUR TURN
Work through this story.
Predict the outcome, find the evidence boundary, and explain it in your own words.
The browser submits Duru’s name, but principalVerified=false. Can this information release the private note body?
- No; delivery stops with VERIFIED_PRINCIPAL_REQUIRED.
- Yes; matching the displayed name to ownerId is sufficient.
Read the explained answer
No; delivery stops with VERIFIED_PRINCIPAL_REQUIRED. — Even if the owner name matches, trusted identity is not established; the selected policy withholds the protected body.
What conclusion about a real system does this threat record support?
Selected lesson artifact fields; teaching example
- threatRecord.vulnerabilityStatus
- not-claimed-for-real-system
- threatRecord.conditionalImpact
- confidentiality loss of delivered private note; no proven mutation or service disruption
- It describes conditional confidentiality loss; it does not claim a real vulnerability was confirmed.
- The private-note threat proves the entire service is compromised.
Read the explained answer
It describes conditional confidentiality loss; it does not claim a real vulnerability was confirmed. — The status is not-claimed-for-real-system; it also provides no mutation or disruption evidence.
Explain the asset, protected property, control owner and required observation for the private note in four separate statements.
Read the explained answer
The asset is note-atlas-01; confidentiality is the protected property. The application must establish verified-principal, tenant and owner decisions before releasing the note body. Besides decision/reason, observe which protected fields were actually delivered; a synthetic expected result is not a runtime observation.
□ I defined the asset and security property separately.
□ I identified the control owner and delivery evidence.
Open the application console · request / response / browser
Also open request, URL, cookie and DOM examples
Sources and scope
- NIST CSRC Glossary — assetDefinitions
- NIST CSRC Glossary — threatFIPS 200 / SP 800-30 definitions
- NIST CSRC Glossary — vulnerabilityFIPS 200 / SP 800-30 definitions
- NIST CSRC Glossary — impactDefinitions
- NIST CSRC Glossary — riskDefinitions
- MITRE CWE GlossaryWeakness · Vulnerability
- OWASP Threat Modeling Cheat SheetSystem Modeling · Threat Identification · Response and Mitigations · Review and Validation
- OWASP Authorization Cheat SheetIntroduction · Validate the Permissions on Every Request · Verify that Authorization Checks are Performed in the Right Location
- RFC 8446 — TLS 1.31 Introduction
- OWASP Logging Cheat SheetEvent data sources · Event attributes · Data to exclude · Verification