mitre-attack/attack-data-model

Zod Schemas

Closed this issue · 1 comments

Populate ATT&CK Schemas

Description

We need to populate all the ATT&CK schemas based on the template provided. Each schema should be created in its own file and should extend the AttackCoreSDOSchema with appropriate fields and validations.

Tasks

  1. Create a new file for each schema in the appropriate directory.
  2. Copy the schema template into each file.
  3. Replace placeholder names with the appropriate schema name.
  4. Add all necessary fields specific to each schema type.
  5. Implement appropriate validations and error messages for each field.
  6. Ensure consistency with STIX and ATT&CK specifications. (See docs/summary.md for help)

Schema Assignments and Status

Schema Module Assigned To Status Reviewer
campaign.schema.ts @clemiller Done ✅ @seansica
matrix.schema.ts @erinehall Done ✅ @seansica
group.schema.ts @erinehall Done ✅ @seansica
collection.schema.ts @clemiller Done ✅ @seansica
tactic.schema.ts @clemiller Done ✅ @seansica
technique.schema.ts @clemiller Done ✅ @seansica
asset.schema.ts @clemiller Done ✅ @seansica
software.schema.ts @adpare Done ✅ @seansica
tool.schema.ts @adpare Done ✅ @seansica
malware.schema.ts @adpare Done ✅ @seansica
identity.schema.ts @adpare Done ✅ @seansica
mitigation.schema.ts @erinehall Done ✅ @seansica
marking-definition.schema.ts @erinehall Done ✅ @seansica
data-source.schema.ts @erinehall Done ✅ @seansica
data-component.schema.ts @erinehall Done ✅ @seansica
relationship.schema.ts (sro) @clemiller Done ✅ @seansica
stix-bundle.schema.ts @adpare Done ✅ @seansica

Resources

Definition of Done

  • All assigned schemas are implemented and extend AttackCoreSDOSchema.
  • Each schema includes all necessary fields as per STIX and ATT&CK specifications.
  • Appropriate validations and error messages are in place for each field.
  • Code follows the established design and naming convention.
  • Examples doc created. (See existing examples for inspiration).
  • Jest test suite created. (See STIXIdentifier tests for inspiration).

Additional Notes

  • If you encounter any fields or validations that you think should be common across multiple schemas, please discuss with the team about adding them to the common-properties.ts file.
  • For complex schemas like Campaign and Matrix, feel free to reach out to the team for collaboration or clarification.
  • Remember to use the z.describe() method to add descriptions to each field for better documentation.
  • Please update the status in the table as you progress: "Not Started" → "In Progress" → "Ready for Review" → "Completed"

Please comment on this issue if you have any questions or need clarification on any aspect of the schema implementation.