Object Definitions¶
This document describes OSCO's core object types, their roles, and their key fields. For the complete field-by-field reference including types, defaults, and valid values, see Field Reference.
Capability¶
The canonical semantic object in OSCO. A capability represents a single, discrete security-relevant behavior that a system, platform, or tool can perform — independent of how it is implemented.
Capabilities are identified by a stable dotted semantic ID (capability_id) and a permanent registry
number (stable_id). Both are immutable once published.
Key fields:
| Field | Purpose |
|---|---|
capability_id |
Semantic identifier in domain.object.action format. Example: filesystem.file.create. |
stable_id |
Permanent registry number (e.g., OSCO-CAP-0042). Used for stable references and integrations. |
status |
Lifecycle state: draft, stable, or deprecated. |
safety |
Risk classification: safe, caution, or destructive. Controls automated use. |
confidence |
Float 0–1. Author's confidence in the accuracy of this definition. |
mappings |
References to external framework artifacts (ATT&CK, Sigma, etc.). |
evidence |
Observables that confirm capability execution. |
verification_methods |
Safe procedures for exercising and confirming the capability. |
discovery_methods |
Procedures for detecting whether the capability is supported in an environment. |
Implementation reference:
- osco/models/core.py (Capability)
- capability/catalog.json (curated catalog)
- capability/catalog.extended.json (extended corpus)
Provider¶
Represents a platform, service, or tool that exposes one or more capabilities. Providers describe the supply side of the capability ontology — where capabilities come from.
Providers must be implementation-oriented. They should not embed product marketing, version numbers, or feature lists. A provider entry describes the scope of a platform's capability surface, not a product roadmap.
Key fields:
| Field | Purpose |
|---|---|
provider_id |
Unique identifier. Convention: provider.<name>. Example: provider.aws. |
category |
Provider type: cloud, os, saas, edr, siem, identity, etc. |
platforms |
Platforms this provider operates on. |
supports |
Domain or capability surface areas the provider exposes. |
Implementation reference:
- osco/models/core.py (Provider)
- provider/providers.json
Evidence¶
Describes an observable artifact that proves a capability was executed or is currently active. Evidence objects bridge capability semantics and real artifact inspection — they answer the question "how do I know this capability was used?"
Evidence types include: files, registry keys, process handles, network connections, cloud resources, audit records, and log entries.
Key fields:
| Field | Purpose |
|---|---|
evidence_id |
Unique identifier. Convention: evidence.<capability_id>.<n>. |
type |
Evidence category: file, registry_key, process, audit_record, etc. |
location |
Path, key, URL, or query where the artifact can be found. |
description |
What this artifact is and why its presence confirms the capability. |
Implementation reference:
- osco/models/core.py (Evidence)
Telemetry¶
Describes a log or event stream produced during capability execution. Telemetry objects are observability context — they describe what a monitoring system would see when a capability is exercised, not the capability itself.
This distinction is important: telemetry and capabilities have a many-to-many relationship. One capability may produce multiple telemetry streams; one stream may cover multiple capabilities.
Key fields:
| Field | Purpose |
|---|---|
telemetry_id |
Unique identifier. Convention: telemetry.<capability_id>.<n>. |
source |
The system that produces this telemetry (e.g., sysmon, cloudtrail, auditd). |
event_type |
The specific event class or log category (e.g., ProcessCreate, S3.GetObject). |
description |
What information this telemetry provides about capability execution. |
Relationship to OCSF: OCSF normalizes the schema of telemetry events. OSCO normalizes the capability semantics those events represent. Map telemetry sources to OCSF classes using CapabilityMapping with framework: ocsf.
Implementation reference:
- osco/models/core.py (Telemetry)
Detection¶
Represents defensive content — a detection rule, analytic, or query — that identifies capability execution. Detection objects are references to external detection artifacts, not the detection logic itself.
Key fields:
| Field | Purpose |
|---|---|
detection_id |
Unique identifier. References the external detection (e.g., sigma-4201). |
name |
Human-readable detection name. |
description |
What behavior this detection identifies and its data source requirements. |
mappings |
Framework references for this detection content. |
Implementation reference:
- osco/models/core.py (Detection)
- detection/detections.json
Validation¶
Represents offensive simulation or test content — an adversary simulation test, red team procedure, or atomic test — used to verify that a detection fires when a capability is exercised.
Validation and Detection objects are complementary. Validation exercises the capability; Detection alerts on it. A coverage gap exists when a capability has validation without corresponding detection.
Key fields:
| Field | Purpose |
|---|---|
validation_id |
Unique identifier. References the external test (e.g., art-t1059.001-01). |
name |
Human-readable validation name. |
description |
What this validation exercises, its prerequisites, and expected outcomes. |
mappings |
Framework references for this validation artifact. |
Implementation reference:
- osco/models/core.py (Validation)
- validation/validations.json
Scope Status¶
Implemented now: - Capability, Provider, Evidence, Telemetry, Detection, and Validation object models (all six) - Catalog-backed instances for capabilities, providers, detections, and validations - Pydantic-typed validation for all objects
Planned: - Deeper object enrichment fields and expanded cross-object relationship metadata - Additional supporting object catalogs as coverage grows - Formal profile mechanism for reusable cross-object attribute sets