Overview#
Every CFSE artifact is assigned a unique identifier following strict syntactic rules. These identifiers enable:
Unambiguous reference across documentation and tooling
Automated validation via regex patterns
Hierarchical organization through component structure
Traceability from concepts through explorations to findings
CFSE core defines the identifier patterns in this document. CFSE extensions MAY introduce additional artifact types and identifier patterns; extension ID rules are defined by the extension and apply only when that extension is declared (see foundations/extensions.md).
General Rules#
Character Set#
Category Allowed Characters System codes A-Z, 0-9Names/Themes A-Z, 0-9, - (hyphen as separator)Sequence numbers 0-9
Naming Conventions#
UPPERCASE only - All alphabetic characters must be uppercase
No leading/trailing hyphens - Hyphens only between words
No consecutive hyphens - Use single hyphen as separator
Meaningful abbreviations - Use domain-standard abbreviations
Artifact ID Patterns#
Entry Point ID (EntryPointID)#
Entry Points represent concrete system operations (API endpoints, UI actions, CLI commands, events) and are first-class artifacts (EP-*).
Pattern Description#
EP-<SYSTEM>-<CONCEPT>-<CHANNEL>-<ACTION>[-<NN>]
Notes#
The regex allows flexibility; the convention above is RECOMMENDED for traceability.
The convention is compatible with multiple channels (API/WEB/GRAPHQL/CLI/EVENT) and multiple variants via the optional -<NN> suffix.
Regex#
Examples#
ID Valid Reason EP-SHOP-USER-API-CREATEYes Standard concept entry point EP-SHOP-ITEM-API-DELETEYes Standard concept entry point EP-I-SHOP-ITEM-DELETE-APIYes Interaction-scoped entry point ID EP-shop-user-api-createNo Lowercase not allowed EP--USER-API-CREATENo Malformed hyphens
Projection ID (ProjectionID)#
Projections describe what a viewer-context sees across one or more surfaces.
Pattern Description#
Regex#
Examples#
ID Valid Reason PRJ-SHOP-PUBLIC-VIEWERYes Standard PRJ ID PRJ-GL-ANON-RSSYes Standard PRJ ID PRJ_gl_anonNo Underscores not allowed
1. Concept ID (ConceptID)#
Concepts represent the foundational security-relevant entities in a system.
Pattern Description#
Component Rules#
Component Rule Length Description Prefix C-2 Fixed concept identifier prefix SYSTEM [A-Z0-9]+2-8 System or domain abbreviation NAME [A-Z0-9-]+1-32 Descriptive name with optional hyphens
Regex#
^ C- [A-Z0-9] {2,8} - [A-Z0-9-] {1,32} $
Examples#
ID Valid Reason C-AWS-IAM-ROLEYes Standard concept identifier C-K8S-PODYes Short system code, short name C-OAUTH2-ACCESS-TOKENYes Hyphenated name C-GCP-SERVICE-ACCOUNT-KEYYes Multiple hyphens in name c-aws-iam-roleNo Lowercase not allowed C-A-ROLENo System code too short (min 2) C-AWS-No Trailing hyphen C--IAM-ROLENo Missing system code CONCEPT-AWS-ROLENo Wrong prefix
2. Interaction ID (InteractionID)#
Interactions capture security-relevant operations between concepts.
Pattern Description#
I-<SYSTEM>-<VERB>-<NOUN>-<SEQ>
Component Rules#
Component Rule Length Description Prefix I-2 Fixed interaction identifier prefix SYSTEM [A-Z0-9]+2-8 System or domain abbreviation VERB [A-Z]+1-16 Action verb (e.g., CREATE, INVOKE, ATTACH) NOUN [A-Z]+1-16 Target entity (e.g., ROLE, TOKEN, KEY) SEQ [0-9]+3 Three-digit sequence number
Regex#
^ I- [A-Z0-9] {2,8} - [A-Z] {1,16} - [A-Z] {1,16} - [0-9] {3} $
Examples#
ID Valid Reason I-AWS-ASSUME-ROLE-001Yes Standard interaction I-K8S-CREATE-POD-042Yes Kubernetes pod creation I-OAUTH2-REFRESH-TOKEN-003Yes OAuth token refresh I-GCP-INVOKE-FUNCTION-100Yes GCP function invocation I-AWS-ASSUME-ROLE-1No Sequence must be 3 digits I-AWS-assume-ROLE-001No Lowercase not allowed I-AWS-ASSUME-ROLENo Missing sequence number I-AWS-ASSUME_ROLE-001No Underscore not allowed I-A-ASSUME-ROLE-001No System code too short
3. Flow ID (FlowID)#
Flows represent ordered sequences of interactions forming complete operations.
Pattern Description#
Component Rules#
Component Rule Length Description Prefix F-2 Fixed flow identifier prefix SYSTEM [A-Z0-9]+2-8 System or domain abbreviation NAME [A-Z0-9-]+1-32 Descriptive flow name
Regex#
^ F- [A-Z0-9] {2,8} - [A-Z0-9-] {1,32} $
Examples#
ID Valid Reason F-AWS-CROSS-ACCOUNT-ACCESSYes Multi-word flow name F-K8S-POD-SCHEDULINGYes Kubernetes scheduling flow F-OAUTH2-AUTHORIZATION-CODEYes OAuth flow F-GCP-WORKLOAD-IDENTITYYes GCP identity flow f-aws-role-chainNo Lowercase not allowed F-A-ACCESSNo System code too short F-AWS--ACCESSNo Consecutive hyphens FLOW-AWS-ACCESSNo Wrong prefix
4. Scenario ID (ScenarioID)#
Scenarios define themed security test cases grouped by attack patterns or vulnerability classes.
Pattern Description#
Component Rules#
Component Rule Length Description Prefix S-2 Fixed scenario identifier prefix SYSTEM [A-Z0-9]+2-8 System or domain abbreviation THEME [A-Z0-9-]+1-24 Attack theme or vulnerability class SEQ [0-9]+3 Three-digit sequence number
Regex#
^ S- [A-Z0-9] {2,8} - [A-Z0-9-] {1,24} - [0-9] {3} $
Examples#
ID Valid Reason S-AWS-PRIVILEGE-ESCALATION-001Yes Privilege escalation scenario S-K8S-CONTAINER-ESCAPE-003Yes Container security scenario S-OAUTH2-TOKEN-THEFT-010Yes Token security scenario S-GCP-LATERAL-MOVEMENT-005Yes Lateral movement scenario S-AWS-PRIVESC-1No Sequence must be 3 digits S-AWS-PRIVILEGE-ESCALATIONNo Missing sequence number s-aws-privesc-001No Lowercase not allowed S-A-PRIVESC-001No System code too short
5. Exploration ID (ExplorationID)#
Explorations document detailed security testing sessions derived from scenarios.
Pattern Description#
E-<SYSTEM>-<THEME>-<SCENARIO-SEQ>-<VERSION>
Component Rules#
Component Rule Length Description Prefix E-2 Fixed exploration identifier prefix SYSTEM [A-Z0-9]+2-8 System or domain abbreviation THEME [A-Z0-9-]+1-24 Theme from parent scenario SCENARIO-SEQ [0-9]+3 Parent scenario sequence VERSION [0-9]+2 Two-digit exploration version
Regex#
^ E- [A-Z0-9] {2,8} - [A-Z0-9-] {1,24} - [0-9] {3} - [0-9] {2} $
Examples#
ID Valid Reason E-AWS-PRIVILEGE-ESCALATION-001-01Yes First exploration of scenario 001 E-K8S-CONTAINER-ESCAPE-003-05Yes Fifth version E-OAUTH2-TOKEN-THEFT-010-12Yes Twelfth exploration E-GCP-LATERAL-MOVEMENT-005-01Yes Standard format E-AWS-PRIVESC-001-1No Version must be 2 digits E-AWS-PRIVESC-01-01No Scenario sequence must be 3 digits E-AWS-PRIVESC-001No Missing version e-aws-privesc-001-01No Lowercase not allowed
Relationship to Scenario#
The exploration ID embeds its parent scenario reference:
E-AWS-PRIVILEGE-ESCALATION-001-01
|_______________________________|
Derived from S-AWS-PRIVILEGE-ESCALATION-001
6. Trace ID (TraceID)#
Traces capture ordered evidence (events and state facts) that support temporal and event-sequence claims. Traces are typically produced as part of an Exploration run (baseline and/or attack paths).
Pattern Description#
T-<SYSTEM>-<THEME>-<SCENARIO-SEQ>-<VERSION>-<SEQ>
Component Rules#
Component Rule Length Description Prefix T-2 Fixed trace identifier prefix SYSTEM [A-Z0-9]+2-8 System or domain abbreviation THEME [A-Z0-9-]+1-24 Theme from parent scenario/exploration SCENARIO-SEQ [0-9]+3 Parent scenario sequence VERSION [0-9]+2 Parent exploration version SEQ [0-9]+2 Trace sequence for that exploration version (e.g., baseline vs attack)
Regex#
^ T- [A-Z0-9] {2,8} - [A-Z0-9-] {1,24} - [0-9] {3} - [0-9] {2} - [0-9] {2} $
Examples#
ID Valid Reason T-AWS-PRIVILEGE-ESCALATION-001-01-01Yes First trace for exploration 001-01 T-AWS-PRIVILEGE-ESCALATION-001-01-02Yes Second trace (e.g., attack path) T-K8S-CONTAINER-ESCAPE-003-05-01Yes Trace for exploration 003-05 T-AWS-PRIVESC-001-1-01No Version must be 2 digits T-AWS-PRIVESC-01-01-01No Scenario sequence must be 3 digits T-AWS-PRIVESC-001-01-1No Trace sequence must be 2 digits
Relationship to Exploration#
Trace IDs embed their parent exploration reference:
T-AWS-PRIVILEGE-ESCALATION-001-01-01
|_________________________________|
Derived from E-AWS-PRIVILEGE-ESCALATION-001-01
7. Finding ID (FindingID)#
Findings document security issues discovered during explorations.
Pattern Description#
FD-<SYSTEM>-<CATEGORY>-<SEQ>
Component Rules#
Component Rule Length Description Prefix FD-3 Fixed finding identifier prefix SYSTEM [A-Z0-9]+2-8 System or domain abbreviation CATEGORY [A-Z]+1-16 Finding category (e.g., AUTHZ, CRYPTO) SEQ [0-9]+3 Three-digit sequence number
Category Values#
Category Description AUTHZAuthorization/access control issues AUTHNAuthentication issues CRYPTOCryptographic weaknesses CONFIGConfiguration vulnerabilities INJECTInjection vulnerabilities LEAKInformation disclosure LOGICBusiness logic flaws RACERace conditions
Regex#
^ FD- [A-Z0-9] {2,8} - [A-Z] {1,16} - [0-9] {3} $
Examples#
ID Valid Reason FD-AWS-AUTHZ-001Yes Authorization finding FD-K8S-CONFIG-023Yes Configuration issue FD-OAUTH2-CRYPTO-005Yes Cryptographic weakness FD-GCP-LEAK-012Yes Information disclosure FD-AWS-AUTHZ-1No Sequence must be 3 digits FD-AWS-auth-001No Lowercase not allowed FD-A-AUTHZ-001No System code too short FINDING-AWS-AUTHZ-001No Wrong prefix
8. Predicate ID (PredicateID)#
Predicates are reusable boolean conditions for invariant composition.
Pattern Description#
Component Rules#
Component Rule Length Description Prefix P-2 Fixed predicate identifier prefix SYSTEM [A-Z0-9]+2-8 System or domain abbreviation NAME [A-Z0-9-]+1-32 Descriptive predicate name
Regex#
^ P- [A-Z0-9] {2,8} - [A-Z0-9-] {1,32} $
Examples#
ID Valid Reason P-AWS-HAS-MFAYes MFA verification predicate P-K8S-IS-PRIVILEGEDYes Privilege check P-OAUTH2-TOKEN-VALIDYes Token validation P-GCP-IN-VPCYes Network location check p-aws-has-mfaNo Lowercase not allowed P-A-MFANo System code too short PRED-AWS-MFANo Wrong prefix P-AWS-No Trailing hyphen
9. Invariant ID (InvariantID)#
Invariants express security properties that must always hold.
Pattern Description#
Component Rules#
Component Rule Length Description Prefix INV-4 Fixed invariant identifier prefix SYSTEM [A-Z0-9]+2-8 System or domain abbreviation NAME [A-Z0-9-]+1-32 Descriptive invariant name
Regex#
^ INV- [A-Z0-9] {2,8} - [A-Z0-9-] {1,32} $
Examples#
ID Valid Reason INV-AWS-NO-PUBLIC-S3Yes S3 bucket visibility INV-K8S-POD-SECURITYYes Pod security policy INV-OAUTH2-TOKEN-EXPIRYYes Token lifecycle INV-GCP-IAM-LEAST-PRIVILEGEYes IAM principle inv-aws-no-public-s3No Lowercase not allowed INV-A-S3No System code too short INVARIANT-AWS-S3No Wrong prefix INV-AWS--S3No Consecutive hyphens
10. Generator ID (GeneratorID)#
Generators create scenario variations through systematic exploration strategies.
Pattern Description#
Component Rules#
Component Rule Length Description Prefix GEN-4 Fixed generator identifier prefix STRATEGY [A-Z0-9-]+1-24 Generation strategy name SEQ [0-9]+3 Three-digit sequence number
Strategy Values#
Strategy Description BOUNDARYBoundary value analysis MUTATIONInput mutation testing COMBINATORIALPairwise/combinatorial testing FUZZFuzzing-based generation TEMPORALTime-based variations PRIVILEGEPrivilege level variations
Regex#
^ GEN- [A-Z0-9-] {1,24} - [0-9] {3} $
Examples#
ID Valid Reason GEN-BOUNDARY-001Yes Boundary testing generator GEN-MUTATION-FUZZ-042Yes Mutation fuzzing GEN-PRIVILEGE-ESCALATION-003Yes Privilege testing GEN-TEMPORAL-RACE-010Yes Race condition testing GEN-BOUNDARY-1No Sequence must be 3 digits gen-boundary-001No Lowercase not allowed GEN-BOUNDARYNo Missing sequence number GENERATOR-BOUNDARY-001No Wrong prefix
11. Patch ID (PatchID)#
Patches document remediation changes applied to address findings.
Pattern Description#
Component Rules#
Component Rule Length Description Prefix PATCH-6 Fixed patch identifier prefix SYSTEM [A-Z0-9]+2-8 System or domain abbreviation SEQ [0-9]+3 Three-digit sequence number
Regex#
^ PATCH- [A-Z0-9] {2,8} - [0-9] {3} $
Examples#
ID Valid Reason PATCH-AWS-001Yes AWS system patch PATCH-K8S-042Yes Kubernetes patch PATCH-OAUTH2-003Yes OAuth implementation patch PATCH-GCP-100Yes GCP configuration patch PATCH-AWS-1No Sequence must be 3 digits patch-aws-001No Lowercase not allowed PATCH-A-001No System code too short FIX-AWS-001No Wrong prefix
Quick Reference Table#
Artifact Pattern Regex Concept C-<SYS>-<NAME>^C-[A-Z0-9]{2,8}-[A-Z0-9-]{1,32}$Interaction I-<SYS>-<VERB>-<NOUN>-<SEQ>^I-[A-Z0-9]{2,8}-[A-Z]{1,16}-[A-Z]{1,16}-[0-9]{3}$Flow F-<SYS>-<NAME>^F-[A-Z0-9]{2,8}-[A-Z0-9-]{1,32}$Scenario S-<SYS>-<THEME>-<SEQ>^S-[A-Z0-9]{2,8}-[A-Z0-9-]{1,24}-[0-9]{3}$Exploration E-<SYS>-<THEME>-<SEQ>-<VER>^E-[A-Z0-9]{2,8}-[A-Z0-9-]{1,24}-[0-9]{3}-[0-9]{2}$Trace T-<SYS>-<THEME>-<SEQ>-<VER>-<NN>^T-[A-Z0-9]{2,8}-[A-Z0-9-]{1,24}-[0-9]{3}-[0-9]{2}-[0-9]{2}$Finding FD-<SYS>-<CAT>-<SEQ>^FD-[A-Z0-9]{2,8}-[A-Z]{1,16}-[0-9]{3}$Predicate P-<SYS>-<NAME>^P-[A-Z0-9]{2,8}-[A-Z0-9-]{1,32}$Invariant INV-<SYS>-<NAME>^INV-[A-Z0-9]{2,8}-[A-Z0-9-]{1,32}$Entry Point EP-<SYS>-<NAME>^EP-[A-Z0-9-]{1,128}$Projection PRJ-<SYS>-<NAME>^PRJ-[A-Z0-9-]{1,128}$Generator GEN-<STRATEGY>-<SEQ>^GEN-[A-Z0-9-]{1,24}-[0-9]{3}$Patch PATCH-<SYS>-<SEQ>^PATCH-[A-Z0-9]{2,8}-[0-9]{3}$
[[02-reference-syntax]] - How to reference artifacts in documentation
[[03-formal-logic]] - Logical operators for invariant expressions
[[04-field-types]] - Reusable field type definitions