Artifact System

Overview

CFSE produces structured artifacts that build upon each other in a defined pipeline. Understanding this system is essential for effective CFSE practice.

Artifact Categories

Primary Artifacts

The six core deliverables of CFSE analysis:

ArtifactPrefixPurposePhase
ConceptC-Define system building blocksFoundation
InteractionI-Document single-step operationsRelationships
FlowF-Document multi-step sequencesSequences
ScenarioS-Hypothesize vulnerabilitiesHypothesis
ExplorationE-Test hypotheses concretelyValidation
FindingFD-Document confirmed issuesDocumentation

Supporting Artifacts

Enable and enhance primary artifacts:

ArtifactPrefixPurpose
PredicateP-Atomic boolean conditions
InvariantINV-Composed security rules
GeneratorGEN-Reusable scenario patterns
PatchPATCH-Fix documentation

Invariant Library YAML (Packaging Format)

CFSE also defines a canonical Invariant Library YAML packaging format for large corpora that prefer “few files” over thousands of INV-* / P-* files. This format stores many Predicate and Invariant objects in a single YAML document, while keeping IDs and schemas first-class.

See artifacts/supporting/invariant_library/invariant_library.md.

Artifact Pipeline

Artifacts flow through a defined pipeline:

code
Foundation     Relationships     Sequences      Hypothesis     Validation     Documentation
    |               |                |               |               |               |
    v               v                v               v               v               v
 Concepts --> Interactions --> Flows --> Scenarios --> Explorations --> Findings
    |               |                |               |               |               |
    +---------------+----------------+-------+-------+---------------+---------------+
                                             |
                              +--------------+--------------+
                              |    Supporting Artifacts     |
                              |  Predicates, Invariants,    |
                              |  Generators, Patches        |
                              +-----------------------------+

Artifact Dependencies

Each artifact type has defined dependencies:

ArtifactReferencesReferenced By
ConceptInvariantsInteractions, Flows
InteractionConcepts, InvariantsFlows, Explorations
FlowInteractions, InvariantsScenarios
ScenarioFlows, Invariants, GeneratorsExplorations
ExplorationScenarios, Interactions, InvariantsFindings
FindingExplorations, InvariantsPatches
Predicate(none)Invariants
InvariantPredicatesAll primary artifacts
Generator(none)Scenarios
PatchFindings, Invariants(none)

Artifact Lifecycle

Each artifact instance progresses through states:

code
Draft --> Active --> Deprecated
  |          |           |
  |          |           +-- No longer applicable
  |          +-- In use, authoritative
  +-- Work in progress, not authoritative

Traceability Requirements

CFSE requires explicit traceability between artifacts:

RuleRequirement
TR-1Every Finding MUST reference at least one Exploration
TR-2Every Exploration MUST reference exactly one Scenario
TR-3Every Scenario MUST reference at least one Invariant
TR-4Every Invariant MUST reference at least one Predicate
TR-5Every Patch MUST reference exactly one Finding