1 Data modelling language SRS-001

The data model of SATRAP-DL SHALL be specified using a data modelling language based on description logics, such as OWL, or on type theory such as TypeQL.

Rationale

To enforce a rigorous logical model specification close to the conceptual model where the semantics of information are captured.

Parent links: MRS-001 Semantic data model

Child links: ARC-001 System structure overview, TST-001 TC: Verify data modelling artifacts, ARC-002 Logical view of SATRAP-DL, ARC-003 ETL high-level design, ARC-004 ETL components

Attribute Value
release Alpha
type A
urgency 5
vm R

2 Database paradigm SRS-002

SATRAP-DL SHALL rely on a database paradigm that allows for knowledge representation based on semantics as opposed to based on structure of the information. Possible candidates are the PERA model and the graph model implemented by TypeDB and, e.g., Neo4J respectively.

Rationale

To enable intrinsic semantic search capabilities and automated reasoning over the data model.

Parent links: MRS-002 CTI knowledge base

Child links: ARC-001 System structure overview, TST-001 TC: Verify data modelling artifacts, ARC-002 Logical view of SATRAP-DL, ARC-003 ETL high-level design, ARC-004 ETL components

Attribute Value
release Alpha
type A
urgency 5
vm R

3 Semantic search SRS-003

The system SHALL support querying the CTI SKB based on semantic criteria.

Rationale

To enable users to perform meaningful searches and data manipulation based on semantics rather than just data structure.

Parent links: MRS-002 CTI knowledge base

Child links: ARC-001 System structure overview, TST-001 TC: Verify data modelling artifacts, ARC-002 Logical view of SATRAP-DL, ARC-003 ETL high-level design, ARC-004 ETL components

Attribute Value
release Alpha
type A
urgency 5
vm R

4 Extensibility of the data model SRS-004

The data model of the CTI SKB SHALL be extensible to accommodate for the integration of new information (e.g., facts, entities, or relationships) without requiring a complete redesign.

Rationale

Extensibility of the data model allows for gradual enrichment of the CTI SKB by combining multiple threat frameworks, as CTI might not be expressible in a single one.

Parent links: MRS-003 CTI SKB extensibility

Child links: ARC-001 System structure overview, TST-001 TC: Verify data modelling artifacts, ARC-002 Logical view of SATRAP-DL, ARC-003 ETL high-level design, ARC-004 ETL components

Attribute Value
release Alpha
type A
urgency 5
vm R

5 NoSQL data model SRS-005

The data model of the CTI SKB SHALL rely on either a NoSQL graph-based or a document-based database solution or a type-theoretic polymorphic entity-relation-attribute (PERA) data model to allow for the addition of new entities and relationships without requiring a schema migration.

Rationale

Flexibility enables further customization for specific domains, such as healthcare or military related ones.

Parent links: MRS-004 SKB data model flexibility

Child links: ARC-001 System structure overview, TST-001 TC: Verify data modelling artifacts, ARC-002 Logical view of SATRAP-DL, ARC-003 ETL high-level design, ARC-004 ETL components

Attribute Value
release Alpha
type A
urgency 5
vm R

6 Integration of common CTI SRS-006

SATRAP-DL SHALL provide a mechanism for retrieving datasets from MITRE ATT&CK in STIX 2.1, ingesting the payload via an ETL pipeline and loading the transformed content into the CTI SKB.

Rationale

For scenarios that deal with CTI generation and operation, we consider that a knowledge base requires information from at least three categories. This requirement addresses the integration of common cybersecurity knowledge.

Parent links: MRS-005 Default CTI content

Child links: ARC-003 ETL high-level design, ARC-004 ETL components, TST-008 Test setup + MITRE ATT&CK ingestion

Attribute Value
release Alpha
type F
urgency 5
vm T

7 Semantic data integrity SRS-007

The data model SHALL enforce semantic integrity ensuring that relationships and constraints adhere to the intended meaning. Semantic data integrity can be enforced by measures such as data validation with respect to schemas and relationships constraints, automated checks for data redundancy and inference powered with a reasoning engine.

Rationale

To ensure consistency, accuracy and reliability of data, preventing among others contradictory and repeated data to be stored.

Parent links: MRS-008 CTI SKB data integrity

Child links: ARC-001 System structure overview, ARC-002 Logical view of SATRAP-DL, ARC-003 ETL high-level design, ARC-004 ETL components, TST-007 TC: Verify secure programming

Attribute Value
release Alpha
type S
urgency 5
vm R

8 ETL orchestrator SRS-008

The ETL module SHALL provide a component in charge of orchestrating the ingestion of datasets in STIX 2.1 and the insertion of the content into the CTI SKB.

Rationale

To provide a single means of data ingestion regardless of the data source, enforcing separation of duties and modularity in the design.

Parent links: MRS-011 Ingestion of standardized CTI, MRS-024 Frontend and CTI SKB mediator, MRS-025 Reasoning engine controller

Child links: ARC-003 ETL high-level design, ARC-004 ETL components, TST-009 Verify ETL architecture

Attribute Value
release Alpha
type A
urgency 5
vm R

9 ETL Transformer SRS-009

The ETL module SHALL provide a component in charge of transforming data in STIX 2.1 format into the representation language of the the CTI SKB schema.

Rationale

To address data parsing enforcing separation of duties and modularity.

Parent links: MRS-011 Ingestion of standardized CTI

Child links: ARC-003 ETL high-level design, ARC-004 ETL components, TST-009 Verify ETL architecture

Attribute Value
release Alpha
type A
urgency 5
vm R

10 Database manager SRS-010

The system SHALL have a component in charge of managing database operations and connections.

Rationale

To deal with database management enforcing separation of duties and modularity.

Parent links: MRS-011 Ingestion of standardized CTI

Child links: ARC-001 System structure overview, ARC-002 Logical view of SATRAP-DL, ARC-003 ETL high-level design, ARC-004 ETL components, TST-009 Verify ETL architecture

Attribute Value
release Alpha
type A
urgency 5
vm R

11 Ingestion of internal and external CTI SRS-011

SATRAP-DL SHALL implement a mechanism for programmatically fetching data from MISP or OpenCTI via API access or wrapper libraries (e.g., PyMISP) in STIX 2.1 format, making them available for other system components to adequately process and insert the information into the CTI SKB.

Rationale

For scenarios that deal with CTI generation and operation, we consider that a knowledge base requires information from at least three categories. This requirement addresses the integration of internal and external CTI.

Parent links: MRS-012 CyFORT CTI repository, MRS-042 TIP inference connector, MRS-043 TIP enrichment connector

Child links: ARC-001 System structure overview, ARC-002 Logical view of SATRAP-DL, ARC-003 ETL high-level design, ARC-004 ETL components

Attribute Value
release Beta
type F
urgency 4
vm T

12 Inference rules SRS-012

SATRAP-DL SHALL implement inference rules that allow for the automated derivation of knowledge over existing relations in the CTI SKB.

Rationale

To address one of the major challenges for incident responders, namely, manual data correlation and contextualization of collected IoCs.

Parent links: MRS-014 Automated CTI enrichment

Child links: ARC-001 System structure overview, ARC-002 Logical view of SATRAP-DL, ARC-003 ETL high-level design, ARC-004 ETL components, TST-010 Verify CTI SKB inference rules

Attribute Value
release Alpha
type F
urgency 4
vm A

13 STIX 2.1 data model SRS-013

The data model of SATRAP-DL SHALL be aligned with the data model of STIX 2.1.

Rationale

Such a design enables a direct mapping of the imported data into the concepts in the database and allows for the use of the integrity checks defined over the database model.

Parent links: MRS-015 Semantic relations preservation

Child links: ARC-003 ETL high-level design, ARC-004 ETL components, TST-004 TC: Verify data model

Attribute Value
release Alpha
type A
urgency 5
vm A

14 Native reasoning engine SRS-014

SATRAP-DL SHALL use a DBMS technology that integrates or has compatibility with a reasoning engine. The preferred solution is TypeDB.

Rationale

A native implementation of the KB and reasoning engine in one platform typically optimizes performance as it allows for the implementation of efficient data management strategies.

Parent links: MRS-018 Automated reasoning

Child links: ARC-001 System structure overview, ARC-002 Logical view of SATRAP-DL, ARC-003 ETL high-level design, TST-003 TC: Verify STIX and reasoning engine, ARC-004 ETL components

Attribute Value
release Alpha
type A
urgency 5
vm R, I

15 Jupyter Notebook frontend SRS-015

SATRAP-DL SHALL implement an analysis frontend in the form of a Jupyter notebook that makes use of the SATRAP-DL analysis toolbox SDK to offer an initial set of predefined CTI investigations operations forming a reusable playbook.

Rationale

For interoperability with the ecosystem, to enable the automation of the CTI lifecycle through the integration of multiple complementary solutions.

Parent links: MRS-020 Interactive frontend, MRS-021 Self-defined CTI queries, MRS-022 Saved queries, MRS-023 Query parameterization, MRS-025 Reasoning engine controller, MRS-026 Query result viewer, MRS-027 Frontend query status, MRS-029 Frontend design, MRS-030 Frontend terminology, MRS-031 Frontend STIX compliance, MRS-034 Frontend cross-platform support, MRS-037 SATRAP as software library

Child links: ARC-001 System structure overview, ARC-002 Logical view of SATRAP-DL, ARC-003 ETL high-level design, ARC-004 ETL components, TST-011 Test Jupyter notebook frontend

Attribute Value
release Alpha
type F
urgency 3
vm T

16 API based on OAS SRS-016

The API of SATRAP-DL SHALL comply with the OpenAPI Specification (OAS) standard.

Rationale

To enable automatic generation of documentation, automated API testing and validation, and a language-agnostic human and machine-readable specification.

Parent links: MRS-038 Platform-independent API

Attribute Value
release Beta
type C
urgency 2
vm R

17 Integration of behavioral data SRS-017

SATRAP-DL SHALL implement a mechanism for programmatically retrieving data in STIX 2.1 from IDPS-ESCAPE via API access, making it available for other system components to adequately process and insert the information into the CTI SKB.

Rationale

For scenarios that deal with CTI generation and operation, we consider that a knowledge base requires information from at least three categories. This requirement addresses the integration of behavioral data.

Parent links: MRS-039 CTI ingestion from IDPS-ESCAPE

Child links: ARC-001 System structure overview, ARC-002 Logical view of SATRAP-DL, ARC-003 ETL high-level design, ARC-004 ETL components

Attribute Value
release Beta
type F
urgency 4
vm T

18 IDPS-ESCAPE ingestion policy SRS-018

The automated data retrieval mechanism of SATRAP-DL for ingesting IDPS-ESCAPE data SHALL operate according to the settings specified in a pre-defined policy.

Rationale

For scenarios that deal with CTI generation and operation, we consider that a knowledge base requires information from at least three categories. This requirement addresses the integration of behavioral data.

Parent links: MRS-039 CTI ingestion from IDPS-ESCAPE

Child links: ARC-003 ETL high-level design, ARC-004 ETL components

Attribute Value
release Beta
type F
urgency 4
vm T

19 CTI export to STIX SRS-019

SATRAP-DL SHALL provide a feature for exporting the results of queries processed by the CTI analysis toolbox (run over the CTI SKB) in STIX format.

Rationale

For persistence of the analysis results in a standard human readable format, useful for sharing the findings.

Parent links: MRS-041 Inferred CTI export

Child links: ARC-003 ETL high-level design, ARC-004 ETL components

Attribute Value
release Beta
type F
urgency 2
vm T

20 System configuration file SRS-020

SATRAP-DL SHALL allow for customization of system parameters (e.g., logging severity: debug, info, warn, error; db connections; file paths) in a dedicated configuration file.

Rationale

In agreement with clean code and best practices for software development, to promote code maintainability.

Parent links: MRS-044 Modular architecture

Child links: ARC-001 System structure overview, ARC-002 Logical view of SATRAP-DL, ARC-003 ETL high-level design, ARC-004 ETL components, TST-005 TC: Verify centralized management

Attribute Value
release Alpha
type Q
urgency 3
vm I

21 Centralized logging SRS-021

The logs of the system SHALL be handled in a central location.

Rationale

In agreement with clean code and best practices for software development, to promote code maintainability.

Parent links: MRS-044 Modular architecture

Child links: ARC-001 System structure overview, ARC-002 Logical view of SATRAP-DL, TST-005 TC: Verify centralized management

Attribute Value
release Alpha
type Q
urgency 2
vm I

22 Centralized exception handling SRS-022

SATRAP-DL SHALL manage exceptions in a centralized manner, e.g., by maintaining all the error codes in a configuration file.

Rationale

In agreement with clean code and best practices for software development, to promote code maintainability.

Parent links: MRS-044 Modular architecture

Child links: ARC-001 System structure overview, ARC-002 Logical view of SATRAP-DL, TST-005 TC: Verify centralized management

Attribute Value
release Alpha
type Q
urgency 5
vm I

23 CTI representation in STIX 2.1 SRS-023

SATRAP-DL SHALL use STIX 2.1 as the default standard format for CTI representation.

Rationale

For interoperability

Parent links: MRS-045 STIX compliance

Child links: ARC-003 ETL high-level design, TST-003 TC: Verify STIX and reasoning engine, ARC-004 ETL components

Attribute Value
release Alpha
type C
urgency 5
vm R, I

24 Design and implementation principles SRS-024

The design and implementation of SATRAP-DL SHALL adhere to software best practices such as naming convention, clean code, SOLID principles, etc.

Rationale

Among others, for maintainability, security, reliability and robustness fo code.

Parent links: MRS-044 Modular architecture, MRS-046 C5-DEC compliance

Child links: TST-002 TC: Verify software engineering, ARC-003 ETL high-level design, ARC-004 ETL components

Attribute Value
release Alpha
type A, S, Q
urgency 5
vm R

25 Code readability SRS-025

The source code of SATRAP-DL SHALL be self explanatory and well documented.

Rationale

To support maintainability, extensibility and adoption of the software.

Parent links: MRS-046 C5-DEC compliance

Child links: TST-006 TC: Verify code clarity

Attribute Value
release Alpha
type Q
urgency 5
vm I

26 Public release SRS-026

The source code of SATRAP-DL SHALL be released in a GitHub public repository.

Rationale

Open-source releases allow contributions and usage by the community, which in turn foster adoption and constant exchange of feedback.

Parent links: MRS-051 Open-source releases

Child links: TST-018 Verify release and licensing

Attribute Value
release Alpha
type C
urgency 3
vm I

27 Open-source licensing SRS-027

Third-party libraries used in SATRAP-DL SHALL have open source licenses that do not restrict the privileges granted by the license selected for SATRAP-DL.

Rationale

To avoid the introduction of limitations in the distribution and use of SATRAP-DL derived from the use of third-party software.

Parent links: MRS-051 Open-source releases

Child links: TST-018 Verify release and licensing

Attribute Value
release Alpha
type C
urgency 3
vm A

28 Input validation SRS-028

SATRAP-DL components receiving input to the system SHALL validate the input and reject it in case the validation fails. The validation may include integrity checks, syntactic checks, semantic checks, parameter out-of-range checks, etc.

Rationale

To prevent code injection.

Parent links: MRS-053 Secure programming compliance

Child links: ARC-001 System structure overview, ARC-002 Logical view of SATRAP-DL, ARC-003 ETL high-level design, ARC-004 ETL components, TST-007 TC: Verify secure programming

Attribute Value
release Alpha
type S
urgency 5
vm I

29 Input sanitization SRS-029

SATRAP-DL components SHALL perform sanitization of input and output (data passed across a trust boundary). Sanitization may include removing, replacing, encoding, or escaping unwanted characters.

Rationale

To prevent code injection.

Parent links: MRS-053 Secure programming compliance

Child links: ARC-001 System structure overview, ARC-002 Logical view of SATRAP-DL, ARC-003 ETL high-level design, ARC-004 ETL components, TST-007 TC: Verify secure programming

Attribute Value
release Alpha
type S
urgency 5
vm I

30 Resource management SRS-030

Network connections and other resources accessed SHALL be properly terminated when no further required.

Rationale

To prevent data leakage or DoS attacks.

Parent links: MRS-053 Secure programming compliance

Child links: TST-007 TC: Verify secure programming

Attribute Value
release Alpha
type S
urgency 5
vm I

31 Code static analysis SRS-031

The code of SATRAP-DL SHALL be statically analyzed using an appropriate software to identify potential issues. The static analysis of Python code shall aim to detect:

  • error handling
  • commented-out code
  • input validation
  • code injection
  • concurrency and race conditions (if applicable)
  • canonical representation vulnerabilities
  • minimum amount of dependencies

Rationale

To detect common security vulnerabilities in an automated way.

Parent links: MRS-053 Secure programming compliance

Attribute Value
release Beta
type S
urgency 5
vm I, A

32 Dependencies management SRS-032

All software dependencies including third-party libraries SHALL be listed and maintained in a configuration file.

Rationale

To enforce a centralized control over external dependencies.

Parent links: MRS-053 Secure programming compliance

Child links: TST-007 TC: Verify secure programming

Attribute Value
release Alpha
type S
urgency 5
vm I

33 Functional ETL events logging SRS-033

SATRAP-DL SHALL log at least one timestamped event with an associated log level recording the ETL execution status (success/failure) per each phase, i.e., extraction, transformation, and loading.

Rationale

To provide information for security investigations.

Parent links: MRS-053 Secure programming compliance

Child links: TST-012 Test ETL logging

Attribute Value
release Alpha
type F
urgency 3
vm T

34 Detailed event logging SRS-034

SATRAP-DL logs SHALL be stored in a secure location and SHALL be accessible only to authorized personnel.

Rationale

To provide information for debugging purposes.

Parent links: MRS-053 Secure programming compliance

Attribute Value
release Beta
type S
urgency 3
vm T

35 Consistent logging format SRS-035

SATRAP-DL logs SHALL be stored for at least X time duration according to a data retention policy.

Rationale

To generate human-readable and informative logs.

Parent links: MRS-053 Secure programming compliance

Attribute Value
release Beta
type C
urgency 1
vm T

36 Log validation SRS-036

Log strings SHALL be sanitized and validated before logging to prevent log injection attacks.

Rationale

To prevent log injection attacks.

Parent links: MRS-053 Secure programming compliance

Child links: TST-007 TC: Verify secure programming

Attribute Value
release Alpha
type S
urgency 4
vm I

37 Sensitive information SRS-037

SATRAP-DL SHALL not log sensitive information such as passwords or entity identifiers.

Rationale

To avoid intended or unintended leakage of sensitive information.

Parent links: MRS-053 Secure programming compliance

Child links: TST-007 TC: Verify secure programming

Attribute Value
release Alpha
type S
urgency 5
vm I

38 Software identification SRS-038

The deployment build of SATRAP-DL SHALL provide a way to retrieve its version and other identification details via the frontend.

Rationale

To inform the user of the specific version of the system that is being used, often required for consulting user manuals, reporting bugs, etc.

Parent links: MRS-053 Secure programming compliance

Attribute Value
release Beta
type F,S
urgency 3
vm T

40 Authentication and authorization SRS-040

The SATRAP-DL subsystem integrated with the SATRAP TIP for automated ingestion and enrichment SHALL rely on the SATRAP TIP built-in solution for user authentication and authorization, e.g., OpenCTI or MISP LDAP or native user management.

Rationale

To enforce user identification and resource access authorization by building on well-established solutions.

Parent links: MRS-056 Access control

Attribute Value
release Beta
type S
urgency 3
vm T

41 Configuration management mechanism SRS-041

The system SHALL provide a configuration management mechanism with a set of predefined values for the user to adjust various system settings.

Rationale

To enforce a centralized user-configurable mechanism for managing system settings.

Parent links: MRS-016 Configuration management, MRS-017 Conformance with user settings

Child links: TST-013 Inspect settings for CM

Attribute Value
release Alpha
type F
urgency 2
vm I

42 Command line interface (CLI) SRS-042

The SATRAP-DL system SHALL provide a command line interface (CLI) for users to interact with the system. The CLI shall support at least the following commands:

  • setup: Initialize the backend CTI SKB.
  • etl: Launch the ETL pipeline.
  • help: Display a list of available commands and their descriptions.

This will allow users to quickly set up the backend CTI SKB and launch the ETL pipeline without needing to navigate through a graphical user interface (GUI). The CLI will also provide a help command to assist users in understanding the available commands and their usage.

Rationale

To provide easy and efficient access to core data processing functionality through a command line interface (CLI) for users who prefer command line tools.

Parent links: MRS-020 Interactive frontend, MRS-033 File-based SKB update, MRS-034 Frontend cross-platform support

Child links: TST-014 Test command line interface (CLI)

Attribute Value
release Alpha
type F
urgency 5
vm T

43 TypeDB Studio SRS-043

The SATRAP-DL system SHALL adopt TypeDB Studio as a Graphical User Interface (GUI) for users to interact with the SATRAP CTI SKB using the native TypeQL query language.

Rationale

To provide the means to the user to execute queries in the native query language of the CTI SKB.

Parent links: MRS-020 Interactive frontend, MRS-028 Native query execution, MRS-029 Frontend design, MRS-032 User-controlled CTI curation

Child links: TST-008 Test setup + MITRE ATT&CK ingestion

Attribute Value
release Alpha
type F
urgency 5
vm T

44 Open-source TIP integration SRS-044

The SATRAP-DL system SHALL adopt both MISP and OpenCTI as open-source TIPs (Threat Intelligence Platform) to manage threat intelligence data.

Rationale

To host and manage CTI data, by relying on stable and mature solutions, without reinventing the wheel. The choice of integrating a well-established open-source TIP would

  • provide a solution capable of ingesting, storing, and distributing threat intelligence data from various sources, including open-source feeds, commercial feeds, and internal sources.
  • provide a user-friendly interface for analysts to search, filter, and visualize threat intelligence data.
  • support integration with other security tools and platforms, such as SIEM (Security Information and Event Management) systems, SOAR (Security Orchestration, Automation, and Response) platforms, and threat intelligence sharing platforms.
  • support standardized formats for threat intelligence data, such as STIX (Structured Threat Information Expression) and TAXII (Trusted Automated Exchange of Indicator Information), to facilitate interoperability with other systems.
  • support the ability to create and manage threat intelligence feeds, including the ability to schedule updates and manage data retention policies.
  • support the ability to create and manage threat intelligence reports, including the ability to generate reports in various formats, such as PDF, HTML, and CSV.
  • support the ability to create and manage threat intelligence dashboards, including the ability to customize the layout and content of the dashboards.
  • support the ability to create and manage threat intelligence alerts, including the ability to configure alert thresholds and notification mechanisms.

Parent links: MRS-012 CyFORT CTI repository, MRS-039 CTI ingestion from IDPS-ESCAPE

Child links: TST-017 Verify open-source TIP integration

Attribute Value
release Alpha
type A
urgency 5
vm R