Skip to content

memo_assurance_cybersecurity

SysML API

Public namespace memo::assurance::cybersecurity
Declared package memo_assurance_cybersecurity
Source src/assurance/cybersecurity/memo_cybersecurity.sysml

Namespace hierarchy

memomemo::assurancememo::assurance::cybersecurity

Packages

Package
memo_assurance_cybersecurity

Imports

Visibility Target
private Metaobjects::SemanticMetadata
private ScalarValues::*
private memo_core_relationships::*
private memo_core_common::*
private memo_core_enumerations::*
private memo_assurance_requirements::*
private memo_assurance_safety_risk::*
private memo_assurance_verification_validation::*
private memo_architecture_operational_scenarios::*

Declarations

Name SysML kind Description Specializes
CybersecurityAsset part def Cybersecurity asset definition specializing MemoPart. MemoPart
AttackSurface part def Attack surface definition specializing MemoPart. MemoPart
Threat part def Threat definition specializing RiskDriver. RiskDriver
Vulnerability item def Vulnerability definition specializing RiskItem. RiskItem
CyberHazard item def Cyber hazard definition specializing Hazard. Hazard
CyberRisk part def Cyber risk definition specializing Risk. Risk
CyberMitigation part def Cyber mitigation definition specializing RiskControlMeasure. RiskControlMeasure
SecurityRequirement requirement def Security requirement definition specializing Requirement. Requirement
TrustBoundary part def Trust boundary definition specializing InterfaceElement. InterfaceElement
Exploits connection def Moved out of memo_core_relationships: their ends are typed against types declared here, and core must not depend on a domain package. MemoRelationship
RealizedByScenario connection def Typed relationship for realized by scenario. MemoRelationship
ImpactsSafety connection def Typed relationship for impacts safety. MemoRelationship

CybersecurityAsset

part def CybersecurityAsset specializes MemoPart
Property Value
Description Cybersecurity asset definition specializing MemoPart.
Kind part def
Abstract No
Specializes MemoPart
Owning package memo_assurance_cybersecurity

AttackSurface

part def AttackSurface specializes MemoPart
Property Value
Description Attack surface definition specializing MemoPart.
Kind part def
Abstract No
Specializes MemoPart
Owning package memo_assurance_cybersecurity

Threat

part def Threat specializes RiskDriver
Property Value
Description Threat definition specializing RiskDriver.
Kind part def
Abstract No
Specializes RiskDriver
Owning package memo_assurance_cybersecurity

Vulnerability

item def Vulnerability specializes RiskItem
Property Value
Description Vulnerability definition specializing RiskItem.
Kind item def
Abstract No
Specializes RiskItem
Owning package memo_assurance_cybersecurity

CyberHazard

item def CyberHazard specializes Hazard
Property Value
Description Cyber hazard definition specializing Hazard.
Kind item def
Abstract No
Specializes Hazard
Owning package memo_assurance_cybersecurity

CyberRisk

part def CyberRisk specializes Risk
Property Value
Description Cyber risk definition specializing Risk.
Kind part def
Abstract No
Specializes Risk
Owning package memo_assurance_cybersecurity

CyberMitigation

part def CyberMitigation specializes RiskControlMeasure
Property Value
Description Cyber mitigation definition specializing RiskControlMeasure.
Kind part def
Abstract No
Specializes RiskControlMeasure
Owning package memo_assurance_cybersecurity

SecurityRequirement

requirement def SecurityRequirement :> Requirement
Property Value
Description Security requirement definition specializing Requirement.
Kind requirement def
Abstract No
Specializes Requirement
Owning package memo_assurance_cybersecurity

TrustBoundary

part def TrustBoundary specializes InterfaceElement
Property Value
Description Trust boundary definition specializing InterfaceElement.
Kind part def
Abstract No
Specializes InterfaceElement
Owning package memo_assurance_cybersecurity

Exploits

connection def Exploits :> MemoRelationship
Property Value
Description Moved out of memo_core_relationships: their ends are typed against types declared here, and core must not depend on a domain package.
Kind connection def
Abstract No
Specializes MemoRelationship
Owning package memo_assurance_cybersecurity

RealizedByScenario

connection def RealizedByScenario :> MemoRelationship
Property Value
Description Typed relationship for realized by scenario.
Kind connection def
Abstract No
Specializes MemoRelationship
Owning package memo_assurance_cybersecurity

ImpactsSafety

connection def ImpactsSafety :> MemoRelationship
Property Value
Description Typed relationship for impacts safety.
Kind connection def
Abstract No
Specializes MemoRelationship
Owning package memo_assurance_cybersecurity

Source

assurance/cybersecurity/memo_cybersecurity.sysml
package memo_assurance_cybersecurity {
    private import Metaobjects::SemanticMetadata;
    private import ScalarValues::*;
    private import memo_core_relationships::*;   // MemoRelationship

    private import memo_core_common::*;
    private import memo_core_enumerations::*;
    private import memo_assurance_requirements::*;
    private import memo_assurance_safety_risk::*;
    private import memo_assurance_verification_validation::*;
    private import memo_architecture_operational_scenarios::*;

    part def CybersecurityAsset specializes MemoPart {
        attribute assetKind : AssetKind;
        attribute confidentialityNeed : String;
        attribute integrityNeed : String;
        attribute availabilityNeed : String;
        attribute privacyRelevant : Boolean;
        attribute safetyRelevant : Boolean;
        attribute owningLayer : String;
        attribute assetOwner : String;
        attribute classification : String;
    }

    part def AttackSurface specializes MemoPart {
        attribute entryPointKind : InterfaceKind;
        attribute exposureLevel : String;
        attribute reachableFrom : String;
        attribute authenticationExpected : Boolean;
    }

    part def Threat specializes RiskDriver {
        attribute threatCategory : ThreatCategoryKind;
        attribute attackVector : String;
        attribute threatSource : String;
        attribute precondition : String;
        attribute affectedConcern : ConcernKind;
        attribute defaultTechnique : String;
        attribute strideCategory : ThreatCategoryKind;
    }

    item def Vulnerability specializes RiskItem {
        attribute weakness : String;
        attribute exploitability : String;
        attribute discoveryMethod : String;
        attribute affectedLayer : String;
        attribute cweReference : String;
        attribute remediable : Boolean;
    }

    item def CyberHazard specializes Hazard {
        attribute securityImpact : String;
        attribute safetyImpact : String;
        attribute privacyImpact : String;
        attribute operationalImpact : String;
        attribute linkedSafetyHazardId : String;
    }

    part def CyberRisk specializes Risk {
        attribute exploitabilityEstimate : String;
        attribute attackComplexity : String;
        attribute detectability : DetectionKind;
        attribute essentialPerformanceImpact : String;
        attribute patientSafetyContribution : String;
    }

    part def CyberMitigation specializes RiskControlMeasure {
        attribute cyberControlKind : CyberControlKind;
        attribute securityMechanism : String;
        attribute verificationExpectation : String;
        attribute hardeningScope : String;
    }

    requirement def SecurityRequirement :> Requirement {
        attribute securityObjective : String;
        attribute derivedFromThreat : String;
        attribute derivedFromRisk : String;
        attribute defaultConcern : ConcernKind;
    }

    part def TrustBoundary specializes InterfaceElement {
        attribute boundaryType : String;
        attribute crossingConstraint : String;
        attribute trustAssumption : String;
    }

    // ── Relations owned by this package ─────────────────────────────
    // Moved out of memo_core_relationships: their ends are typed against
    // types declared here, and core must not depend on a domain package.
    connection def Exploits :> MemoRelationship {
        end realizedThreat : RequirementDriver :>> source;
        end enablingVulnerability : Vulnerability :>> target;
    }
    abstract connection exploitsLinks : Exploits[*];
    metadata def <exploits> ExploitsMetadata :> SemanticMetadata {
        :> annotatedElement : SysML::ConnectionDefinition;
        :> annotatedElement : SysML::ConnectionUsage;
        :>> baseType = exploitsLinks meta SysML::Usage;
    }
    connection def RealizedByScenario :> MemoRelationship {
        end realizedThreat : RequirementDriver :>> source;
        end scenario : OperativeScenario :>> target;
    }
    abstract connection realizedByScenarioLinks : RealizedByScenario[*];
    metadata def <realizedByScenario> RealizedByScenarioMetadata :> SemanticMetadata {
        :> annotatedElement : SysML::ConnectionDefinition;
        :> annotatedElement : SysML::ConnectionUsage;
        :>> baseType = realizedByScenarioLinks meta SysML::Usage;
    }
    connection def ImpactsSafety :> MemoRelationship {
        attribute tracePurpose : String;
        end cyberElement : MemoPart :>> source;
        end safetyElement : RiskItem :>> target;
    }
    abstract connection impactsSafetyLinks : ImpactsSafety[*];
    metadata def <impactsSafety> ImpactsSafetyMetadata :> SemanticMetadata {
        :> annotatedElement : SysML::ConnectionDefinition;
        :> annotatedElement : SysML::ConnectionUsage;
        :>> baseType = impactsSafetyLinks meta SysML::Usage;
    }
}