Security Manual#
Persistency Security Manual
|
status: valid
security: YES
safety: ASIL_B
|
||||
Introduction/Scope#
Assumed Platform Security Requirements#
Title |
ID |
Status |
|---|---|---|
Data Persistency |
valid |
|
File Based Configuration |
valid |
|
Security features |
valid |
|
Support of safe Key/Value store |
valid |
Title |
ID |
Status |
|---|---|---|
Confidential storage |
valid |
|
Configuration |
valid |
|
Configuration |
valid |
|
Reset resistant storage |
valid |
|
Separate data stores |
valid |
Assumptions of Use#
AoU Requirements#
Storage Access Rights
|
status: valid
security: YES
safety: QM
|
||||
The system integrator shall configure the OS users and groups of the applications and the access rights of the KVS working directories such that only the application owning a KVS instance (and, where required, the members of its group) can read or write the storage files, snapshot files and default-values files of this KVS instance. |
|||||
Read-only Default Values
|
status: valid
security: YES
safety: QM
|
||||
The system integrator shall deploy the default-values files read-only for the applications, so that the default values can not be modified at runtime. |
|||||
Confidentiality of Persisted Data
|
status: valid
security: YES
safety: QM
|
||||
The system integrator shall provide confidentiality of persisted data which requires it by the storage environment (an encrypted file system or an encrypted storage medium), as the component stores the key-value pairs unencrypted. |
|||||
No Protection against Intentional Manipulation
|
status: valid
security: YES
safety: QM
|
||||
The application shall not rely on the integrity check of the component to detect intentional manipulation of persisted data. If protection against intentional manipulation is required, the application shall authenticate the data itself or require an integrity protected storage from the system integrator. |
|||||
Assumptions on the Environment#
fdatasync), rename and remove of files, creation of directories. The C++ implementation uses them via score::filesystem of the baselibs and the C standard library, the Rust implementation via the Rust standard library (std::fs);List of AoUs expected from the environment the module runs on:
Title |
ID |
Status |
|---|---|---|
Confidentiality of Persisted Data |
valid |
|
Read-only Default Values |
valid |
|
Storage Access Rights |
valid |
Assumptions on the User#
List of AoUs on the user of the platform features or the module of this Security Manual:
Note: The platform security manual collects all platform wide AoUs (to be fulfilled by the user for any feature). This module security manual collects all security AoUs specific to the feature Persistency and its realizing component. For the feature Persistency the platform security manual and this module security manual have to be considered.
Title |
ID |
Status |
|---|---|---|
No Protection against Intentional Manipulation |
valid |
Security concept of the OoC#
//score/kvs/rust_kvs_tool:kvs_tool) reads and modifies KVS storage for development and
test purposes. It has no special rights and can only access the KVS storage accessible to the OS user running it,
which is restricted by Storage Access Rights (aou_req__persistency__storage_access_rights). It is recommended not to deploy the KVS
tool in production software images, to keep the attack surface small.Software Bill of Material (SBOM)#
//:sbom_product in the
formats SPDX 2.3 (sbom_product.spdx.json) and CycloneDX 1.6 (sbom_product.cdx.json). It lists the dependencies
of the product targets //score/kvs:kvs (C++) and //score/kvs/rust_kvs:rust_kvs (Rust) with version, license
and supplier. The SBOM is generated on demand with bazel build //:sbom_product and is not yet part of the
release workflow.//:sbom_docs_tests.Security Weaknesses, Vulnerabilities#
640) is not yet implemented, the storage files are created with the default permissions of the process (umask), see #412. Until then Storage Access Rights (aou_req__persistency__storage_access_rights) has to be fulfilled via the access rights of the KVS working directory.440) is not yet implemented, the KVS tool does not yet handle default-values files, see #505. Until then Read-only Default Values (aou_req__persistency__defaults_read_only) has to be fulfilled during deployment.