SentriScope Data Architecture

Canonical data layers, provenance model, severity normalization, risk scoring architecture, and database strategy for tenant-scoped security intelligence.

1. Architecture Purpose

SentriScope is designed as a Cyber Risk Intelligence Platform, not a vulnerability consolidation tool. The architecture structures all security telemetry into canonical layers:

  • Multi-tenant SaaS readiness — All data is tenant-attributed by design.
  • Canonical data normalization — Data from all sources (scanners, SIEM, ITSM, threat intel, CMDB) is normalized into a single model regardless of origin.
  • Risk-based prioritization — Deterministic, explainable risk scoring over canonical data.
  • Business impact integration — Business Impact Analysis (BIA) feeds directly into risk weighting.
  • Control effectiveness modeling — Security controls are measured against assets and exposures.
  • AI-ready data structure — Schema grounding enables safe LLM queries over canonical data.

2. Architecture Layers

Layer Name Purpose
A SaaS Foundation Tenant lifecycle, RBAC, audit, MFA, notifications
B Asset and Identity CanonicalAsset, CanonicalApplication, CanonicalIdentity, BIA
C Threat and Assessment CanonicalAssessment, CanonicalIncident, CanonicalThreatMonitoringEvent
D Control and Coverage CanonicalControl, ControlImplementation, SecurityCoverage
E Exposure CanonicalExposure, CanonicalVulnerability, CanonicalCredentialLeak
F Threat Actor CanonicalThreatActor, CanonicalCampaign, CanonicalIOC
G Connector Ingestion CanonicalConnectorSession, ConnectorType, ingestion pipeline
H Risk Scoring RiskSnapshot, RiskSnapshotItem, RiskScoringProfile, risk explainability
I Intelligence CanonicalThreatIntelItem, CanonicalIntelAssessment, FeedArticle
J LLM and Schema Schema grounding, LLM context, canonical bundle

3. Key Canonical Models

Layer B — Asset and Identity

Model Purpose Tenant-Scoped
CanonicalAsset Physical/virtual/cloud asset from any source Yes
CanonicalApplication Application with BIA context (criticality, RTO, RPO) Yes
CanonicalIdentity User identity (from AD, Entra, HR system) Yes
CanonicalIdentityCredential Authentication method metadata (no secrets) Yes
CanonicalIdentityAuthEvent Authentication event log Yes
CanonicalBIA Business Impact Analysis record Yes
CanonicalBusinessUnit Business unit organizational unit Yes
CanonicalTeam Team within a business unit Yes

Layer C — Threat and Assessment

Model Purpose Tenant-Scoped
CanonicalAssessment Security assessment (pentest, tabletop, ASM) Yes
CanonicalAssessmentFinding Individual finding from an assessment Yes
CanonicalIncident Normalized incident from SIEM, ITSM, or security tool Yes
CanonicalThreatMonitoringEvent Suspicious activity / detection (pre-incident) Yes

Layer D — Control and Coverage

Model Purpose Tenant-Scoped
CanonicalControl Security control definition Yes
ControlImplementation Control deployed on an asset/segment Yes
SecurityCoverage Effective coverage measurement per asset Yes

Layer E — Exposure

Model Purpose Tenant-Scoped
CanonicalVulnerability Normalized vulnerability (CVE or internal QID) Yes
CanonicalExposure Finding hub linking asset + vulnerability + severity Yes
CanonicalCredentialLeak Leaked credential record Yes

Layer F — Threat Intelligence

Model Purpose Tenant-Scoped
CanonicalThreatIntelItem Normalized TI item with CTI lifecycle Yes
CanonicalThreatActor Threat actor profile Yes
CanonicalCampaign Attack campaign Yes
CanonicalIOC Indicator of Compromise Yes
CanonicalIntelAssessment Produced intelligence linked to assets/risks Yes
CanonicalIntelEdge Directed relationship between intel entities Yes

Layer H — Risk Scoring

Model Purpose Tenant-Scoped
RiskSnapshot Point-in-time risk calculation result Yes
RiskSnapshotItem Per-exposure risk item with explainability Yes
RiskScoringProfile Tenant-configurable scoring weights Yes
RiskSnapshotDrift Change tracking between snapshots Yes

4. Provenance and Source Model

Every canonical record stores the origin of the data:

Field Required Purpose
source_system Always Which system produced this record (e.g. TENABLE, DEFENDER)
external_id Always Stable ID in the source system
source_updated_at Always When the source system last updated the record

Provenance enables:
- Deduplication — Upsert key: (tenant_id, source_system, external_id)
- Traceability — Trace any canonical record back to its origin
- Audit — Who changed what, when, from which source


5. Information Sources

Source Description Canonical Models Fed
CMDB Configuration Management Database CanonicalApplication, CanonicalAsset
Assessments Pentesting, Tabletop, Threat Hunting, ASM CanonicalAssessment, CanonicalVulnerability, CanonicalExposure
EDR (endpoint) CrowdStrike, Defender, SentinelOne, Cortex XDR, Trellix CanonicalAsset, CanonicalIncident, CanonicalThreatMonitoringEvent
Microsegmentation Akamai Guardicore CanonicalAsset, CanonicalAssetNetworkFlow, CanonicalSegmentationPolicy
Threat intel feeds IOCs, actor profiles, campaigns CanonicalThreatIntelItem, CanonicalIOC, CanonicalThreatActor, CanonicalCampaign
ITSM ServiceNow, Jira CanonicalIncident
SIEM Security incidents and alerts CanonicalIncident, CanonicalThreatMonitoringEvent
Vulnerability scan Tenable, Qualys CanonicalVulnerability, CanonicalExposure, CanonicalAsset
Credential leaks Tempest Prospero, DRP feeds CanonicalCredentialLeak, CanonicalExposure, CanonicalIdentity
ASM Attack Surface Management CanonicalAsset, CanonicalApplication, CanonicalVulnerability
BIA Business Impact Analysis CanonicalBIA, CanonicalApplication
Security ratings BitSight, SecurityScorecard CanonicalExposure (rating issues)

6. Severity Normalization Standard

All severity values from all sources are normalized to a 0–100 canonical scale before storage:

Canonical Range Meaning
90–100 Critical
70–89 High
40–69 Medium
10–39 Low
0–9 Informational

Normalization Rules

  • All connectors must call normalize_severity(value, source_system, source_scale) from apps.canonical.services.severity_normalization.
  • source_scale must be explicit — never inferred (avoids ambiguity on 0–10 vs 0–100).
  • Categorical severity (critical/high/medium/low/info) is mapped to numeric before normalization.
  • No connector may write raw severity into canonical fields.

7. Risk Scoring Architecture

7.1 Determinism Guarantee

Risk scoring is deterministic: identical inputs always produce identical outputs. Historical snapshots are never retroactively altered.

Property Rule
Algorithm versioning Scoring algorithm is version-controlled
Immutability Historical snapshot scores never change after calculation
Explainability Every RiskSnapshotItem carries scoring lineage

7.2 Risk Score Components

  • Inherent risk: Base vulnerability severity × asset criticality
  • Residual risk: Inherent risk after control effectiveness reduction
  • Business impact: BIA weight (criticality, RTO, RPO)
  • Threat intelligence influence: Intel source type × tier × confidence × decay factor
  • Control effectiveness: Coverage quality per asset and control type

7.3 Scoring Profile

One RiskScoringProfile is active per tenant at a time. Changing the profile generates a new snapshot; historical snapshots retain the profile used at calculation time.


8. Database Strategy

8.1 Database Layout

Database Content Isolation
default Platform tables + shared-mode tenant data tenant_id scoping via ORM
tenant_{id} Dedicated-mode tenant data Physical DB isolation

8.2 Router

TenantDatabaseRouter routes all ORM queries:
1. Checks get_current_tenant().isolation_mode
2. If DEDICATED, returns the tenant's database alias
3. If SHARED, returns default

8.3 Platform Data Segregation

Data Type Database Why
Tenant, TenantDomain, TenantDatabaseConfig default Platform control — must always be accessible
User, Group default Cross-tenant — one user may be in multiple tenants
AuditLog default Platform-level — never deletable by tenant
CVE, CWE, MITRE references default Platform-shared — one copy, all tenants
CanonicalAsset, CanonicalExposure, etc. Tenant DB Business data — fully tenant-scoped

9. Schema Governance

All schema changes must follow:
1. Propose migration with documented impact (tenant isolation, PII, sensitive fields)
2. Architecture or security review for changes affecting isolation, PII, or access boundaries
3. Approval before production apply
4. Post-apply record_schema_version management command
5. CI schema hash verification

See:


10. JSON Schema Layer

Canonical schemas are stored in:

foundations/schema/canonical/     ← CanonicalAsset.schema.json, etc.
foundations/schema/canonical_bundle.json  ← Combined bundle for LLM context

The canonical bundle is loaded by the LLM pipeline for schema grounding. All new canonical models must have a corresponding JSON schema. See:


Related Articles