π‘οΈ SHACL Profiles per Trust Level
Below is a tiered SHACL profile system that lets you expose the same graph to different consumers without changing the data, only the validation contract.
Think of it as semantic zero-trust.
(SOC / Exec / AI)
Design Principle
Trust level β data visibility Trust level = which semantics are allowed to survive validation
Each profile:
- β forbids certain edges/classes
- β enforces different minimum guarantees
- π controls what kind of reasoning is possible
0. Trust Levels Overview
| Profile | Audience | Goal | Risk Tolerance |
|---|---|---|---|
| SOC | Analysts, IR, DFIR | Tactical accuracy | π΄ Zero |
| EXEC | CISO, Board, GRC | Decision clarity | π Low |
| AI | RAG / Agents / LLMs | Hallucination safety | π΄ Zero |
β οΈ AI and SOC are stricter than EXEC, but in different ways.
π΄ TRUST PROFILE: SOC
βOnly what we can proveβ
SOC Profile Philosophy
- Observational truth only
- No speculation
- No aggregation shortcuts
- Evidence is mandatory
SH-SOC-01 β Incidents Must Be Evidence-Backed
inc:SOCIncidentEvidenceShape
a sh:NodeShape ;
sh:targetClass inc:Incident ;
sh:property [
sh:path inc:observed ;
sh:minCount 1 ;
] ;
sh:property [
sh:path inc:supported_by ;
sh:minCount 1 ;
sh:message "SOC incidents must be supported by evidence." ;
] .
SH-SOC-02 β Observed Techniques Require High Confidence
inc:SOCObservedTechniqueConfidenceShape
a sh:NodeShape ;
sh:targetClass inc:ObservedTechnique ;
sh:property [
sh:path inc:confidence ;
sh:in ("HIGH") ;
sh:message "SOC view requires HIGH confidence observations only." ;
] .
SH-SOC-03 β No Risk or Attribution Allowed
soc:NoRiskOrAttributionShape
a sh:NodeShape ;
sh:targetClass inc:Incident ;
sh:not [
sh:or (
[ sh:path risk:evaluates ; sh:minCount 1 ]
[ sh:path ta:attributes ; sh:minCount 1 ]
)
] ;
sh:message "SOC view must not include Risk or Attribution." .
β SOC Guarantees
- Court-defensible
- DFIR-safe
- Zero speculation
π TRUST PROFILE: EXEC
βEnough truth to decideβ
EXEC Profile Philosophy
- Aggregation allowed
- Subjectivity allowed (explicit)
- Attribution allowed (summarized)
- Evidence optional
SH-EXEC-01 β Risk Required for Exposure
risk:ExecRiskRequiredShape
a sh:NodeShape ;
sh:targetClass sec:Vulnerability ;
sh:property [
sh:path risk:considered_in ;
sh:minCount 1 ;
sh:message "Exec view requires Vulnerabilities to be contextualized by Risk." ;
] .
SH-EXEC-02 β Attribution Must Be Abstracted
exec:AbstractAttributionOnlyShape
a sh:NodeShape ;
sh:targetClass ta:ThreatActor ;
sh:property [
sh:path ta:actor_type ;
sh:in ("GROUP" "STATE" "UNKNOWN") ;
sh:message "Exec attribution must be abstracted (no individual actors)." ;
] .
SH-EXEC-03 β Evidence Optional, Rationale Mandatory
risk:ExecRationaleShape
a sh:NodeShape ;
sh:targetClass risk:RiskAssessment ;
sh:property [
sh:path risk:rationale ;
sh:minCount 1 ;
sh:message "Exec decisions require rationale." ;
] .
β EXEC Guarantees
- Decision-focused
- Board-safe
- No technical overload
π΄ TRUST PROFILE: AI (RAG / Agents)
βNothing that can hallucinateβ
AI Profile Philosophy
- Deterministic traversal only
- No subjective nodes without anchors
- No unbounded fan-out
- No implicit joins
SH-AI-01 β Only Approved Traversal Anchors
ai:ApprovedAnchorsShape
a sh:NodeShape ;
sh:targetClass sec:Technique ;
sh:property [
sh:path sec:belongs_to ;
sh:minCount 1 ;
] ;
sh:property [
sh:path sec:mitigated_by ;
sh:minCount 1 ;
sh:message "AI queries require Technique anchors with mitigation context." ;
] .
SH-AI-02 β No Direct Cross-Extension Jumps
ai:NoCrossExtensionJumpShape
a sh:NodeShape ;
sh:targetClass inc:Incident ;
sh:not [
sh:property [
sh:path risk:evaluates ;
sh:minCount 1 ;
]
] ;
sh:message "AI must not traverse Incident β Risk directly." .
SH-AI-03 β Attribution Requires Confidence Threshold
ai:AttributionConfidenceThresholdShape
a sh:NodeShape ;
sh:targetClass ta:AttributionClaim ;
sh:property [
sh:path ta:confidence_score ;
sh:minInclusive 0.7 ;
sh:message "AI attribution requires confidence β₯ 0.7." ;
] .
SH-AI-04 β No Unanchored Risk
ai:AnchoredRiskOnlyShape
a sh:NodeShape ;
sh:targetClass risk:RiskScenario ;
sh:property [
sh:path risk:considers ;
sh:class sec:Technique ;
sh:minCount 1 ;
sh:message "AI risk reasoning must anchor to Core Technique." ;
] .
β AI Guarantees
- Hallucination-resistant
- Deterministic answers
- Auditable reasoning paths
π§© How to Deploy This (Recommended)
1. One Graph, Multiple SHACL Sets
/shacl/
βββ core.ttl
βββ incident.ttl
βββ risk.ttl
βββ threatactor.ttl
βββ trust-soc.ttl
βββ trust-exec.ttl
βββ trust-ai.ttl
2. Validate by Context
- SOC UI β
core + incident + trust-soc - Exec Dashboard β
core + risk + trust-exec - RAG Pipeline β
core + all + trust-ai