STRIDE mapping

This section of the coreLang Language Reference is presenting the categorization of attack steps in coreLang in relation to the STRIDE model.

The following is an excerpt from the wikipedia page on STRIDE.

📘

STRIDE is a model for identifying computer security threats developed by Praerit Garg and Loren Kohnfelder at Microsoft. It provides a mnemonic for security threats in six categories.

The threats are:

  • Spoofing
  • Tampering
  • Repudiation
  • Information disclosure
  • Denial of service
  • Elevation of privilege

In coreLang, each modeling object has a set of related attack steps which are operations that an attacker is expected to try to achieve in order to gain access to the object, or other connected objects, for continued progress within the modeled environment.

Since coreLang is developed with attack operations in mind, some attack steps are not covered by the STRIDE categories and some are related to several STRIDE categories.

Application

coreLang Attack Step NameSTRIDE Category
AccessNetworkAndConnectionsn/a (A suitable category would be "establish reachability". The closest STRIDE mapping would be "I", thinking about network enumeration, but this attack step is not about information gathering but rather establishing contact.)
AttemptLocalConnectVulnOnHostn/a (Prerequisite operation to other operations.)
AttemptNetworkConnectViaResponsen/a (Prerequisite operation to other operations.)
AttemptReverseReachn/a (Prerequisite operation to other operations.)
AttemptUseVulnerabilityn/a (Prerequisite operation to other operations.)
AuthenticateSpoofing
DenyDenial of service
FullAccessElevation of privilege
LocalConnectn/a (See AccessNetworkAndConnections.)
ModifyTampering
NetworkConnectn/a (See AccessNetworkAndConnections.)
NetworkConnectViaResponsen/a (See AccessNetworkAndConnections.)
ReadInformation disclosure
SpecificAccessElevation of privilege (gaining access to a low privileged account is also categorized as elevating privileges since the attacker should have no privileges at all).
SpecificAccessAuthenticateSpoofing
UnsafeActivityByUsern/a (See AccessNetworkAndConnections.)

ConnectionRule

coreLang Attack Step NameSTRIDE Category
AccessNetworksn/a (A suitable category would be "establish reachability". The closest STRIDE mapping would be "I", thinking about network enumeration, but this attack step is not about information gathering but rather establishing contact.)
DenialOfServiceDenial of service

Credentials

coreLang Attack Step NameSTRIDE Category
AttemptAccessn/a (Prerequisite operation to other operations.)
AttemptUsen/a (Prerequisite operation to other operations.)
CredentialTheftInformation disclosure
CredentialsReuse- Spoofing (if the credentials are modeled as authentication credentials)
- Repudiation (if the credentials are modeled as signing credentials)
DeleteDenial of service
DenyDenial of service
GuessCredentialsInformation disclosure
ReadInformation disclosure
Use- Spoofing (if the credentials are modeled as authentication credentials)
- Repudiation (if the credentials are modeled as signing credentials)
UseLeakedCredentials- Spoofing (if the credentials are modeled as authentication credentials)
- Repudiation (if the credentials are modeled as signing credentials)
WriteTampering

Data

coreLang Attack Step NameSTRIDE Mapping
Accessn/a (Prerequisite operation to other operations.)
ApplicationRespondConnectSpoofing
AttemptAccessn/a (Prerequisite operation to other operations.)
AttemptAccessFromIdentityn/a (Prerequisite operation to other operations.)
CompromiseAppOriginTampering (and Repudiation if SigningCredentials are present but also compromised)
DeleteDenial of service
DenyDenial of service
EavesdropInformation disclosure
ExtractInformation disclosure
MainInTheMiddleTampering
ReadInformation disclosure
ReadContainedInformationInformation disclosure
WriteTampering

Group

coreLang Attack Step NameSTRIDE Mapping
CompromiseGroupSpoofing

Identity

coreLang Attack Step NameSTRIDE Mapping
AssumeSpoofing
AttemptAssumen/a (Prerequisite operation to other operations.)

Information

coreLang Attack Step NameSTRIDE Mapping
AttemptAccessn/a (Prerequisite operation to other operations.)
DeleteDenial of service
DenyDenial of service
ReadInformation disclosure
WriteTampering

Network

coreLang Attack Step NameSTRIDE Mapping
Accessn/a (Prerequisite operation to other operations.)
AccessNetworkDatan/a (Prerequisite to Eavesdrop.)
BypassAccessControln/a (Prerequisite to Access.)
BypassEavesdropProtectionn/a (Prerequisite to Eavesdrop.)
BypassMitMProtectionn/a (Prerequisite to MainInTheMiddle.)
DenialOfServiceDenial of service
EavesdropInformation disclosure
MainInTheMiddleSpoofing, Tampering, Repudiation
NetworkForwardingTampering
PhysicalAccessn/a (Prerequisite operation to other operations.)

PhysicalZone

coreLang Attack Step NameSTRIDE Mapping
GainPhysicalAccessn/a (Prerequisite to attack steps in the System object.)

RoutingFirewall

coreLang Attack Step NameSTRIDE Mapping
AccessNetworkAndConnectionsn/a (A suitable category would be "establish reachability". The closest STRIDE mapping would be "I", thinking about network enumeration, but this attack step is not about information gathering but rather establishing contact.)
AttemptLocalConnectVulnOnHostn/a (Prerequisite operation to other operations.)
AttemptNetworkConnectViaResponsen/a (Prerequisite operation to other operations.)
AttemptReverseReachn/a (Prerequisite operation to other operations.)
AttemptUseVulnerabilityn/a (Prerequisite operation to other operations.)
AuthenticateSpoofing
DenialOfServiceDenial of service
DenyDenial of service
FullAccessElevation of privilege
LocalConnectn/a (Prerequisite operation to other operations.)
ModifyTampering
NetworkConnectn/a (Prerequisite operation to other operations.)
NetworkConnectViaResponsen/a (Prerequisite operation to other operations.)
ReadInformation disclosure
SpecificAccessElevation of privilege (gaining access to a low privileged account is also categorized as elevating privileges since the attacker should have no privileges at all).
SpecificAccessAuthenticateSpoofing
UnsafeActivityByUsern/a (Prerequisite operation to other operations.)

SoftwareProduct

coreLang Attack Step NameSTRIDE Mapping
CompromiseApplicationRepudiation, Tampering
DenyApplicationDenial of service
ModifyApplicationTampering
ReadApplicationInformation disclosure

SoftwareVulnerability

Abusing or succeeding with an attack operation on a vulnerability is not considered important in the STRIDE context. Instead, these operations have an effect on the connected Application. The actual effect of them is therefore considered (and classified) within the connected Application object.

coreLang Attack Step NameSTRIDE Mapping
Abusen/a (Affecting Application.)
Denyn/a (Affecting Application.)
Exploitn/a (Prerequisite to Abuse.)
ExploitTriviallyn/a (Alternative prerequisite to Exploit.)
ExploitWithEffortn/a (Alternative prerequisite to Exploit.)
Impactn/a (Affecting Application.)
Modifyn/a (Affecting Application.)
Readn/a (Affecting Application.)

User

coreLang Attack Step NameSTRIDE Mapping
AttemptDeliverMaliciousRemovableMedian/a (Prerequisite operation to other operations.)
AttemptSocialEngineeringn/a (Prerequisite operation to other operations.)
CredentialTheftInformation disclosure (Spoofing happens on the Identity object when using the stolen credentials.)
DeliverMaliciousRemovableMedian/a (Prerequisite operation to other operations.)
PasswordReuseCompromiseInformation disclosure (As in the attacker finding more identities also matching the previously stolen credentials.)
PhishUsern/a (Prerequisite operation to other operations.)
UnsafeUserActivitySpoofing and elevation of privilege (Since the attacker succeeds with making the user execute code on behalf of the attacker, i.e. impersonating the user.)