Barrier Object
A barrier can be any characteristic inherent in the vulnerability that could impede the adversary from achieving successful exploitation or a protection mechanism that may limit the actions or impact that can be taken even if the vulnerability is able to be exploited. These are often part of the system in which the product is deployed or are inherent in how the product is used.
Properties
A barrier defines the following properties.
Each barrier subtype can require type specific properties. For example, Authentication/Authorization::Impersonation::Social Engineering could be assigned as a barrier type and would have the hasNeededPrivilege, relatesToContext and hasEngineeringMethod properties.
Identifier
Name
id
Cardinality one
Description A globally unique identifier for the barrier.
The action identifier distinguishes the barrier from other barriers related to the same vulnerability.
This identifier MUST be a version 4 (random) or 5 (SHA-1 based) Universally Unique Identifier (UUID) as defined by RFC 4122.
Type
Name
hasBarrierType
Cardinality one
Description Identifies the kind of barrier.
Based on the barrier’s type, some properties will be required when noted in the property.
The value of hasBarrierType MUST be a value from the barrier type value list.
Needed Privilege
Name
hasNeededPrivilege
Cardinality zero or one
Description The privileges that are needed relative to the type of barrier being overcome.
Each hasNeededPrivilege relates to one privilege level. Multiple barriers need to be defined to describe multiple needed privileges.
The property hasNeededPrivilege MAY be used when the property hasBarrierType has the value Authentication/Authorization::Impersonation::Social Engineering. Use in this case is optional.
The property hasNeededPrivilege MUST be used when the property hasBarrierType has the value Authentication/Authorization::Privileges Required.
The property hasNeededPrivilege MUST be omitted if the property hasBarrierType value is not Authentication/Authorization::Impersonation::Social Engineering or Authentication/Authorization::Privileges Required.
If provided, the value of hasNeededPrivilege MUST be a value from the privilege level value list.
Engineering Method
Name
hasEngineeringMethod
Cardinality zero or many
Description The method or mechanism used to manipulate a user into interacting with a malicious resource.
This property can be multi-valued.
The property hasEngineeringMethod MUST only be used when the property hasBarrierType has the value Authentication/Authorization::Impersonation::Social Engineering.
If provided, the value of hasEngineeringMethod MUST be a value from the engineering method value list.
Related Context
Name
relatesToContext
Cardinality zero or one
Description The context to which the privileges are related.
Each relatesToContext relates to one context. Multiple barriers need to be defined to describe multiple context relations.
The property relatesToContext MUST only be used when the property hasBarrierType has the values:
Authentication/Authorization::Privileges Required,Authentication/Authorization::Impersonation::Social Engineering,Boundary Protections,Boundary Protections::Container, orBoundary Protections::Sandbox.
If provided, the value of relatesToContext MUST be a value from the context value list.
Relationships
None
Example
{
"blockedByBarrier": [
{
"id": "S1B1",
"hasBarrierType": "Authentication/Authorization::Impersonation::Social Engineering",
"hasEngineeringMethod": ["MaliciousLink"],
"hasNeededPrivilege": "User",
"relatesToContext": "Application"
},
{
"id": "S1B2",
"hasBarrierType": "Authentication/Authorization::Privileges Required",
"hasNeededPrivilege": "User",
"relatesToContext": "Application"
}
]
}
Graph View

