KGCS Documentation

SHIELD Active Defense Framework to OWL Mapping v1.0

Overview

The MITRE SHIELD framework is an active defense knowledge base that complements the offensive ATT&CK framework by defining defensive tactics, techniques, opportunities, use cases, and procedures for protecting against adversary operations. SHIELD provides a comprehensive model for defensive engagement strategies, enabling organizations to organize and execute defensive operations against attackers.

Within KGCS, SHIELD serves as the primary defensive counterpart to offensive ATT&CK, enabling defensive-offensive alignment through explicit relationships between defensive entities and attack techniques. The hierarchical structure of SHIELD (Tactic → Technique → Opportunity → UseCase + Procedure) mirrors industry best practices for organizing defensive activities from strategic to tactical levels.

SHIELD's positioning in KGCS enables cross-framework analysis: threat modeling can trace from offensive ATT&CK techniques through SHIELD defensive operators to D3FEND mitigations and CAR detection analytics, providing comprehensive coverage analysis.


Sources

MITRE SHIELD Framework Reference:

Raw Data Files:

Namespace:


Target Ontology

File: standards/shield/shield-ontology-v1.0.owl (to be implemented in Task 11)

Core Classes Used (from KGCS core ontology):

New Classes to Define (in shield ontology):

Design Pattern: Hierarchical tactic-technique-opportunity-usecase federation with explicit ATT&CK defensive-offensive alignment enabling bidirectional coverage analysis.


Entity Mapping

SHIELD Entity Target KGCS Class Primary ID ID Type Notes
Tactic (DTAxxxx) shield:DefensiveTactic shield:tacticId xsd:string 8 fixed tactics (DTA0001-DTA0008)
Technique (DTExxxx) shield:DefensiveTechnique shield:techniqueId xsd:string 36+ defensive techniques, extensible
Opportunity (DOSxxxx) shield:Opportunity shield:opportunityId xsd:string 100+ strategic opportunities
Use Case (DUCxxxx) shield:UseCase shield:useCaseId xsd:string 260+ practical scenarios
Procedure (DPRxxxx) shield:Procedure shield:procedureId xsd:string 66 executable procedures
ATT&CK Mapping shield:AttackMapping N/A (compound key) N/A Links SHIELD entities to attack techniques

Field Mapping

Tactic Entity (shield:DefensiveTactic)

Field OWL Property Range Cardinality Notes
id shield:tacticId xsd:string 1 Pattern: DTA[0-9]{4}; exactly 8 fixed values (DTA0001-DTA0008)
name rdfs:label xsd:string 1 Fixed enum (Channel, Collect, Contain, Detect, Disrupt, Facilitate, Legitimize, Test)
description rdfs:comment xsd:string 1 Short description (1-2 sentences) of tactic role and purpose
long_description shield:longDescription xsd:string 1 Detailed description with strategic context and rationale
technique_ids shield:contains_technique xsd:string 1+ References to DTE#### technique IDs; minimum 1 required

Cardinality Rationale: Every tactic must contain at least one technique to be meaningful in defensive operations.

Technique Entity (shield:DefensiveTechnique)

Field OWL Property Range Cardinality Notes
id shield:techniqueId xsd:string 1 Pattern: DTE[0-9]{4}; extensible with gaps allowed
name rdfs:label xsd:string 1 Human-readable technique name (e.g., "Decoy Account", "Network Monitoring")
description rdfs:comment xsd:string 1 Short description of technique approach
long_description shield:longDescription xsd:string 1 Detailed implementation guidance and tactical context
opportunity_ids shield:enables_opportunity xsd:string 0+ References to DOS#### opportunity IDs; optional
tactics shield:belongstotactic xsd:string 0+ Back-reference to parent DTA#### tactics for querying

Cardinality Rationale: Techniques may optionally enable multiple opportunities, supporting many-to-many flexibility.

Opportunity Entity (shield:Opportunity)

Field OWL Property Range Cardinality Notes
id shield:opportunityId xsd:string 1 Pattern: DOS[0-9]{4}; sparse numbering allowed
description rdfs:comment xsd:string 1 Description of the defensive opportunity and tactical context
usecaseids shield:has_usecase xsd:string 1+ CRITICAL: References to DUC#### use case IDs; minimum 1 required
technique_ids shield:supportedbytechnique xsd:string 0+ Back-reference to supporting DTE#### techniques for querying

Cardinality Rationale: CRITICAL SEMANTIC RULE: Every opportunity must have at least one corresponding use case to ensure every strategic defensive opportunity has concrete implementation scenarios.

Use Case Entity (shield:UseCase)

Field OWL Property Range Cardinality Notes
id shield:useCaseId xsd:string 1 Pattern: DUC[0-9]{4}; sparse numbering allowed
description rdfs:comment xsd:string 1 Practical implementation scenario or concrete example
procedure_ids shield:implements_procedure xsd:string 0+ References to DPR#### procedure IDs; optional (0-20 max)
opportunity_id shield:realizes_opportunity xsd:string 0-1 Back-reference to parent DOS#### opportunity for querying

Cardinality Rationale: Use cases may optionally reference technical procedures, but procedures are often implicit or applied incrementally.

Procedure Entity (shield:Procedure)

Field OWL Property Range Cardinality Notes
id shield:procedureId xsd:string 1 Pattern: DPR[0-9]{4}; extensible with versioning
description rdfs:comment xsd:string 1 Detailed technical procedure, implementation steps, or code/pseudocode

Cardinality Rationale: Procedures are concrete technical implementation details with no required relationships; many use cases can reference the same procedure, and procedures can exist independently.

ATT&CK Mapping Entity (shield:AttackMapping)

Field OWL Property Range Cardinality Notes
shieldId shield:mapToAttack xsd:string 1 SHIELD entity ID (any prefix: DTA, DTE, DOS, DUC, DPR)
shieldType shield:shieldEntityType xsd:string 1 Enum: tactic, technique, opportunity, usecase, procedure
attackId shield:attackTechniqueId xsd:string 1 ATT&CK technique ID: T#### or T####.### (with optional subtechnique)
relationshipType shield:relationshipType xsd:string 1 Enum: detects, mitigates, enables, tests, engages_with
coverage shield:defensiveCoverage xsd:string 0-1 Enum: Low, Moderate, High; optional coverage level indicator
attackTactic shield:attackTacticId xsd:string 0-1 ATT&CK tactic ID TA####; optional but recommended for context

Cardinality Rationale: Mappings are flexible on optional metadata but require core relationship definition for defensive-offensive alignment.


Relationship Mapping

Critical: Tactic-to-Technique Containment

Relationship Domain Range Cardinality Semantics
shield:contains_technique DefensiveTactic DefensiveTechnique 1+ Each tactic organizes and contains 15-22 techniques; enables "What techniques advance this tactic?" queries

Inverse Property: shield:belongs_to_tactic (Technique → Tactic)


Critical: Technique-to-Opportunity Enablement

Relationship Domain Range Cardinality Semantics
shield:enables_opportunity DefensiveTechnique Opportunity 0+ Technique may support 0+ opportunities; optional relationship for strategic flexibility

Inverse Property: shield:supported_by_technique (Opportunity → Technique)


Critical: Opportunity-to-UseCase Realization

Relationship Domain Range Cardinality Semantics
shield:has_usecase Opportunity UseCase 1+ CRITICAL: Every opportunity must have ≥1 use cases; ensures every defensive opportunity has practical implementation

Inverse Property: shield:realizes_opportunity (UseCase → Opportunity)

CRITICAL VALIDATION RULE: This cardinality constraint is essential for semantic integrity. Every strategic opportunity without implementation scenarios creates empty defensive postures in the knowledge graph.


Critical: UseCase-to-Procedure Implementation

Relationship Domain Range Cardinality Semantics
shield:implements_procedure UseCase Procedure 0+ Use case may reference 0+ procedures; procedures are optional implementation details

Inverse Property: shield:used_by_usecase (Procedure → UseCase)


ATT&CK Defensive-Offensive Alignment

5 Relationship Types for ATT&CK Mapping:

Relationship Domain Range Semantics Example
detects DefensiveTactic/Technique/Opportunity attack:Technique Defensive entity can detect execution of offensive technique Network Monitoring detects T1040
mitigates DefensiveTactic/Technique/Opportunity attack:Technique Defensive entity reduces effectiveness/impact of offensive technique Endpoint Protection mitigates T1598
enables Opportunity/UseCase attack:Technique Defensive entity allows controlled execution (often in sandbox/honeypot) Decoy System enables controlled T1592 execution
tests Procedure/UseCase attack:Technique Defensive entity probes/tests defender capability against technique Purple Team Test tests T1595
engages_with DefensiveTechnique/Opportunity attack:Technique Defensive entity actively engages/deceives against technique Deception Campaign engages_with T1598

Property Definitions:


Transformation Notes

Tactic Enumeration (Fixed 8 Core Tactics)

SHIELD defines exactly 8 defensive tactics implementing diverse strategic defensive approaches:

ID Name Strategic Role Purpose
DTA0001 Channel Deception & Misdirection Guide adversary down specific operational paths favoring defender
DTA0002 Collect Intelligence Gathering Gather adversary tools, behaviors, capabilities through engagement
DTA0003 Contain Boundary & Movement Control Prevent adversary from moving beyond designated bounds/systems
DTA0004 Detect Threat Awareness Establish detection and awareness of adversary activity/capabilities
DTA0005 Disrupt Mission Prevention Prevent adversary from conducting intended mission objectives
DTA0006 Facilitate Controlled Operations Enable adversary to operate in controlled, monitored environments
DTA0007 Legitimize Deceptive Authenticity Add credibility/authenticity to deceptive infrastructure/personas
DTA0008 Test Capability Assessment Determine adversary interests, capabilities, operational parameters

Hierarchical Relationship Model

SHIELD's defensive hierarchy organizes from strategic to tactical:

Tactic (Strategic Level)
  │
  ├─ DTA0001-0008 (8 core tactics)
  │
  ├─ Technique (Implementation Method)
  │   │
  │   ├─ DTE0001-DTE0036+ (36+ defensive techniques)
  │   │
  │   ├─ enables
  │   │
  │   └─ Opportunity (Specific Context/Scenario)
  │       │
  │       ├─ DOS0001-DOS0253+ (100+ opportunities)
  │       │
  │       ├─ has (MINIMUM 1 REQUIRED)
  │       │
  │       └─ UseCase (Practical Application)
  │           │
  │           ├─ DUC0001-DUC0261+ (260+ use cases)
  │           │
  │           ├─ implements (Optional)
  │           │
  │           └─ Procedure (Concrete Technical Steps)
  │               │
  │               └─ DPR0001-DPR0066+ (66 procedures)
  │
  └─ ATT&CK Cross-Mapping
      │
      ├─ Links to offensive techniques via 5 relationship types
      │
      └─ Enables defensive-offensive alignment analysis

Cardinality Rules (CRITICAL)

CRITICAL CONSTRAINT ENFORCEMENT: Opportunities without use cases represent incomplete defensive postures and should be rejected by validation rules.

Identifier Uniqueness & Extensibility Rules

Enforcement: Never reuse IDs once deprecated; leave placeholders in number sequences for future expansion.

ATT&CK Mapping Relationship Semantics (5 Types)

  1. detects - Detection-based relationships where SHIELD identifies, observes, or logs adversary technique execution

    • Example: Network Monitoring technique detects T1040 (Network Sniffing)
    • Enables: "What SHIELD techniques detect this technique?"
  2. mitigates - Defensive techniques reducing attack effectiveness, impact, or success likelihood

    • Example: Endpoint Protection technique mitigates T1110 (Brute Force)
    • Enables: "What SHIELD techniques mitigate this technique?"
  3. enables - Controlled execution of adversary techniques in defensive environments (red team, sandboxes, honeypots)

    • Example: Decoy System enables controlled T1592 (Gather Victim Identity Information) in isolated environment
    • Enables: "What SHIELD systems allow testing this technique?"
  4. tests - Defender capability testing against specific techniques via purple team exercises

    • Example: Test Procedure tests T1595 (Active Scanning) to probe defender visibility
    • Enables: "What SHIELD procedures test this technique?"
  5. engages_with - Active engagement and deception operations targeting specific techniques

    • Example: Deception Campaign actively engages_with T1598 (Phishing for Information) via fake targets
    • Enables: "What SHIELD tactics actively engage with this technique?"

Defensive-Offensive Bidirectionality

Mappings enable powerful bidirectional queries supporting threat modeling workflows:

Defensive View: "What SHIELD operators defend against technique T1234?"

Offensive View: "What does ATT&CK technique T1234 trigger in SHIELD?"


ETL Implementation

Stage 1: Load SHIELD JSON Files

Input: Raw SHIELD data files from data/raw/shield/

├── tactics.json           (8 tactics, fixed)
├── techniques.json        (36+ techniques)
├── opportunities.json     (100+ opportunities)
├── use_cases.json         (260+ use cases)
├── procedures.json        (66 procedures)
└── mapping.json           (ATT&CK cross-references)

Processing:

  1. Parse JSON files with JSON parser
  2. Extract entity definitions maintaining all relationships
  3. Validate schema compliance (pattern matching, enum values)
  4. Load into in-memory entity store with relationship graph

Output: Validated entity store ready for RDF triple generation


Stage 2: Validation Against Schema

Critical Validation Checks:

✓ All entity IDs match format (DTA/DTE/DOS/DUC/DPR[0-9]{4})
✓ All enum fields valid:
  - Tactic names from fixed 8 values
  - Relationship types from {detects, mitigates, enables, tests, engages_with}
  - Coverage levels from {Low, Moderate, High}
✓ All required fields present:
  - Tactics: id, name, description, long_description, technique_ids (minItems: 1)
  - Techniques: id, name, description, long_description
  - Opportunities: id, description, use_case_ids (minItems: 1, CRITICAL)
  - UseCases: id, description
  - Procedures: id, description
✓ Tactic IDs exactly 8 entries (DTA0001-DTA0008)
✓ Opportunities have ≥1 use case IDs (CRITICAL validation rule)
✓ Tactics have ≥1 technique IDs
✓ All referenced IDs exist in respective entity sets:
  - technique_ids point to existing DTE#### techniques
  - opportunity_ids point to existing DOS#### opportunities
  - use_case_ids point to existing DUC#### use cases
  - procedure_ids point to existing DPR#### procedures
✓ All ATT&CK technique IDs match T[0-9]{4} or T[0-9]{4}\.[0-9]{3} pattern
✓ All ATT&CK tactic IDs match TA[0-9]{4} pattern
✓ No missing cross-references (all back-references resolvable)

Confidence: This validation ensures data integrity before RDF triple creation.


Processing:

For each mapping entity in mapping.json:
  1. Extract shieldId (e.g., DTE0001)
  2. Extract attackId (e.g., T1007)
  3. Resolve to attack:Technique URI:
     http://www.motherhacker.me/kgcs/ontology/attack#T1007
  4. Create shield:mapToAttack relationship
  5. Associate relationshipType from {detects, mitigates, enables, tests, engages_with}
  6. Validate relationshipType is valid enum value
  7. Link attackTactic for additional context (optional)

Output: Bidirectional mappings linking SHIELD defensive entities to ATT&CK offensive framework


Stage 4: Build RDF Graph

RDF Triple Generation:

For Tactics:
  <shield:DTA0001> rdf:type shield:DefensiveTactic ;
    rdfs:label "Channel" ;
    rdfs:comment "Guide adversary down specific path..." ;
    shield:contains_technique <shield:DTE0001>, <shield:DTE0010>, ... ;
    shield:tacticId "DTA0001" .

For Techniques:
  <shield:DTE0001> rdf:type shield:DefensiveTechnique ;
    rdfs:label "Decoy Account" ;
    shield:enables_opportunity <shield:DOS0027>, <shield:DOS0040>, ... ;
    shield:belongs_to_tactic <shield:DTA0001> .

For Opportunities (CRITICAL - enforce uses_case references):
  <shield:DOS0027> rdf:type shield:Opportunity ;
    rdfs:comment "Create detection with moderately high probability" ;
    shield:has_usecase <shield:DUC0040>, <shield:DUC0041>, <shield:DUC0123> ;
    shield:supported_by_technique <shield:DTE0001> .

For UseCases:
  <shield:DUC0040> rdf:type shield:UseCase ;
    rdfs:comment "Defender can use decoy system to access..." ;
    shield:realizes_opportunity <shield:DOS0027> ;
    shield:implements_procedure <shield:DPR0001>, <shield:DPR0005> .

For Procedures:
  <shield:DPR0001> rdf:type shield:Procedure ;
    rdfs:comment "Remove admin access to reveal escalation..." ;
    shield:used_by_usecase <shield:DUC0040>, <shield:DUC0050> .

For ATT&CK Mappings:
  <shield:mapping-1> rdf:type shield:AttackMapping ;
    shield:shieldId "DTE0001" ;
    shield:shieldType "technique" ;
    shield:attackTechniqueId "T1039" ;
    shield:attackTacticId "TA0009" ;
    shield:relationshipType "detects" ;
    shield:defensiveCoverage "High" .

Stage 5: Index and Enable Queries

Build Efficient Query Indices:

Primary Indices:
  - Opportunities by technique support
  - Use cases by opportunity realization
  - Procedures by use case implementation
  - Techniques by tactic membership
  - Tactics by name/strategic role

Cross-Framework Indices:
  - ATT&CK coverage analysis (defensive-offensive alignment)
  - Bidirectional relationship navigation
  - Gap analysis (opportunities with 0 use cases - INVALID)

SPARQL Query Examples

SELECT ?technique ?name ?description WHERE {
  ?tactic shield:tacticId "DTA0001" ;
          shield:contains_technique ?technique .
  ?technique rdfs:label ?name ;
             rdfs:comment ?description .
}
SELECT ?usecase ?description WHERE {
  ?opportunity shield:opportunityId "DOS0027" ;
               shield:has_usecase ?usecase .
  ?usecase rdfs:comment ?description .
  FILTER(BOUND(?usecase))  # Validation: ensures opportunity has use cases
}
SELECT ?shield_id ?shield_name ?coverage WHERE {
  ?mapping shield:attackTechniqueId "T1007" ;
           shield:relationshipType "detects" ;
           shield:shieldId ?shield_id ;
           shield:defensiveCoverage ?coverage .
  ?shield_entity rdfs:about ?shield_id ;
                 rdfs:label ?shield_name .
}
SELECT ?procedure ?description WHERE {
  ?usecase shield:useCaseId "DUC0001" ;
           shield:implements_procedure ?procedure .
  ?procedure rdfs:comment ?description .
}
SELECT DISTINCT ?attack_tactic ?tactic_name WHERE {
  ?shield_tactic shield:tacticId "DTA0001" ;
                 shield:contains_technique ?technique .
  ?technique shield:enables_opportunity ?opportunity .
  ?mapping shield:shieldId ?shield_id ;
           shield:attackTacticId ?attack_tactic .
  ?attack_tactic rdfs:label ?tactic_name .
}
SELECT ?opportunity ?id WHERE {
  ?opportunity rdf:type shield:Opportunity ;
               shield:opportunityId ?id .
  FILTER NOT EXISTS { ?opportunity shield:has_usecase ?usecase . }
}
# Should return EMPTY SET (violations of CRITICAL cardinality constraint)

Summary

This mapping specification defines the complete transformation of MITRE SHIELD active defense framework from JSON format to KGCS OWL ontology, enabling:

  1. Hierarchical Federation: Defensive tactics organize techniques, which enable opportunities, implemented by use cases with supporting procedures

  2. Critical Cardinality Enforcement: Opportunities must have ≥1 use cases, ensuring complete defensive coverage mapping

  3. ATT&CK Defensive-Offensive Alignment: 5 relationship types (detects, mitigates, enables, tests, engages_with) enable bidirectional threat modeling

  4. Comprehensive Validation: Multi-stage ETL with pattern matching, enumeration checking, and cross-reference validation

  5. SPARQL Queryability: Rich query patterns supporting defensive coverage analysis and threat-defense alignment

  6. Extensibility: Support for future technique, opportunity, and procedure expansion while maintaining semantic integrity