Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/features/safety_planning/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ Feature Requirements Status
---------------------------

.. needtable::
:filter: docname is not None and "feature_example" in docname and "requirements" in docname
:filter: docname is not None and "feature_name" in docname and "requirements" in docname
:style: table
:types: feat_req
:tags: feature_name
Expand Down
4 changes: 2 additions & 2 deletions docs/features/security_planning/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
##########################################

.. document:: [Feature Name] Security WPs
:id: doc__feature_example_security_planning_wp
:id: doc__feature_example_security_wp
:status: draft
:version: 1
:safety: ASIL_B
Expand Down Expand Up @@ -91,7 +91,7 @@ Security Work Products List
.. attention::
The above table must be updated according to your feature security planning.

- Fill the work producs links
- Fill the work products links

Feature Security Package
========================
Expand Down
4 changes: 2 additions & 2 deletions docs/module/manuals/safety_manual.rst
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ List of AoUs expected from the environment the platform / module runs on:
results = []

for need in needs.filter_types(["aou_req"]):
if need and "environment" in need["tags"]:
if need and "environment" in need["tags"] and need["safety"] != "QM":
results.append(need)

.. attention::
Expand Down Expand Up @@ -90,7 +90,7 @@ This means for every feature the user selects, the platform safety manual and th
results = []

for need in needs.filter_types(["aou_req"]):
if need and "environment" not in need["tags"]:
if need and "environment" not in need["tags"] and need["safety"] != "QM":
results.append(need)

.. attention::
Expand Down
38 changes: 34 additions & 4 deletions docs/module/manuals/security_manual.rst
Original file line number Diff line number Diff line change
Expand Up @@ -64,18 +64,25 @@ List of AoUs expected from the environment the platform / module runs on:
results = []

for need in needs.filter_types(["aou_req"]):
if need and "environment" in need["tags"]:
if need and "environment" in need["tags"] and need["security"] == "YES":
results.append(need)

.. attention::
Make sure these AoU are here for a security reason, i.e. every one "mitigates" a security analysis entry.

Assumptions on the User
^^^^^^^^^^^^^^^^^^^^^^^
| As there is no assumption on which specific OS and HW is used, the integration testing of the stakeholder and feature requirements is expected to be performed by the user of the platform OoC. Tests covering all stakeholder and feature requirements performed on a reference platform (tbd link to reference platform specification), reviewed and passed are included in the platform OoC security package.
| Additionally the components of the platform may have additional specific assumptions how they are used. These are part of every module documentation: <link to add>. Assumptions from components to their users can be fulfilled in two ways:
| 1. There are assumption which need to be fulfilled by all SW components, e.g. "every user of an IPC mechanism needs to make sure that he provides correct data (e.g. including appropriate security (access) control)" - in this case the AoU is marked as "platform".
| 2. There are assumption which can be fulfilled by a security control realized by some other Project platform component and are therefore not relevant for an user who uses the whole platform. But those are relevant if you chose to use the module OcC stand-alone - in this case the AoU is marked as "module". An example would be the "JSON read" which requires "The user shall provide a string as input which is not corrupted due to HW or QM SW errors." - which is covered when using together with safe <Project> platform persistency feature.
| 2. There are assumption which can be fulfilled by a security control realized by some other Project platform component and are therefore not relevant for an user who uses the whole platform. But those are relevant if you chose to use the module OoC stand-alone - in this case the AoU is marked as "module". An example would be an "external API input" AoU which requires "The user shall provide input that has been validated/sanitized against injection and has not been tampered with in transit" - which is covered when using together with the <Project> platform's input validation / secure transport feature.

List of AoUs on the user of the platform features or the module of this Security Manual:

Note: Platform security manual collects all platform wide AoU (have to be fulfilled by the user for any feature).
Module security manual collects all AoUs specific to a feature and its realizing components.
This means for every feature the user selects, the platform security manual and the related module manual has to be considered.

.. needtable::
:style: table
:columns: title;id;status
Expand All @@ -85,16 +92,39 @@ List of AoUs on the user of the platform features or the module of this Security
results = []

for need in needs.filter_types(["aou_req"]):
if need and "environment" not in need["tags"]:
if need and "environment" not in need["tags"] and need["security"] == "YES":
results.append(need)

.. attention::
Make sure these AoU are here for a security reason, i.e. every one "mitigates" a security analysis entry.

Security concept of the OoC
----------------------------
| <Describe here the security concept incl. which attack paths are taken care of, reactions of the implemented functions under threatened operating conditions ... if this is not already documented sufficiently in the feature documentation "security impact" section of all the features the module is used in.>

Cybersecurity Claims and Residual Risk
--------------------------------------

For cybersecurity risks that were treated by "accept" or "share" in the module's TARA risk treatment decision (rather than mitigated by a cybersecurity requirement), the resulting cybersecurity claim and the residual risk are documented here. These claims are assumptions the integrator has to fulfil, or risks the integrator knowingly accepts, when using this module.

<List here the cybersecurity claims and the residual risk per accepted/shared threat scenario, with a link to the corresponding TARA entry.>

Secure Configuration and Hardening
----------------------------------

<Describe here the assumptions on cryptographic algorithms/key and secrets management, and on OS-level access control (e.g. secure boot, HSM/TEE usage, user/process privilege separation) the module relies on. These are in addition to the general Assumptions of Use above.>

Security Weaknesses, Vulnerabilities
------------------------------------
| Weaknesses, vulnerabilities (bugs in security relevant SW, detected by testing or by users, which could not be fixed) known before release are documented in the platform/module release notes <add link to release note>.

Weaknesses, vulnerabilities (bugs in security relevant SW, detected by testing or by users, which could not be fixed) known before release are documented in the platform/module release notes <add link to release note>.

Vulnerabilities discovered after release shall be reported via <link to SECURITY.md / PSIRT contact for this module>.

Security Support
----------------

<Describe here until when security support (i.e. vulnerability monitoring and fixes) is provided for this module/version, and what happens at end of security support.>

References
----------
Expand Down
2 changes: 1 addition & 1 deletion docs/module/safety_mgt/module_safety_analysis_fdr.rst
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
:status: draft
:version: 1
:safety: ASIL_B
:security: YES
Comment thread
janis-qorix marked this conversation as resolved.
Resolved
:security: NO
:realizes: wp__fdr_reports
:tags: template

Expand Down
45 changes: 37 additions & 8 deletions docs/module/security_mgt/module_security_package_fdr.rst
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,17 @@

The purpose of this review checklist is to report status of the formal review for the Security Package.

**2. Checklist**
**2. Conduct**

As described in :need:`wf__p_formal_security_rv`, the formal document review is performed by an "external" security auditor, supported by the Security Manager:

- reviewer: <committer with security manager/auditor skills explicitly named here>

.. note::
:need:`wf__p_formal_security_rv` is currently marked as "tailored out (needs discussion)" at process level.
Confirm with the Security Manager whether a formal review is actually performed for this Module before relying on this checklist.

**3. Checklist**

See also the review concept for further information about reviews in general and inspection in particular.

Expand All @@ -49,34 +59,53 @@ See also the review concept for further information about reviews in general and
* - Id
- Security Package activity
- Compliant to ISO SAE 21434?
- Reference
- Comment

* - 1
- Is a Security Package provided which matches the Security Plan (i.e. all planned work products referenced)?
- [YES | NO ]
- :need:`[[title]] <std_req__isosae21434__prj_management_6471>`
- <Rationale for result>

* - 2
- Is the argument how security is achieved, provided in the Security Package, plausible and sufficient?
- Is the argument how security is achieved (i.e. the Cybersecurity Case), provided in the Security Package, plausible and sufficient?
- NO
- The argument is intentionally not provided by the Project.
- :need:`[[title]] <std_req__isosae21434__prj_management_6471>`
- The Cybersecurity Case argument is intentionally not provided in the Security Package by the Project (see :need:`wf__cr_mt_security_package`); it is covered by a dedicated work product, if created for the Module.

* - 3
- Are the referenced work products available?
- [YES | NO ]
- :need:`[[title]] <std_req__isosae21434__prj_management_6491>`
- <Rationale for result>

* - 4
- Are the referenced work products in released state, including the Process Security Audit?
- NO
- Security Audit is currently not planned, tailored out.
- Are the referenced work products in released state, including the Cybersecurity Assessment report (ISO SAE 21434 clause 6.4.8)?
- [YES | NO ]
- :need:`[[title]] <std_wp__isosae21434__prj_management_653>`
- <Rationale for result>

* - 5
- Has the Organizational Cybersecurity Audit (ISO SAE 21434 clause 5.4.7) been performed, or is omitting it justified in the Security Plan's tailoring section? Note: this is distinct from the project-level Cybersecurity Assessment checked above.
- NO
- :need:`[[title]] <std_wp__isosae21434__org_management_555>`
- The Organizational Cybersecurity Audit is currently tailored out at process level (:need:`wf__p_fs_audit_security`, needs discussion).

* - 6
- If security related deviations from the process or security concept are documented, are these argued understandably?
- [YES | NO ]
- :need:`[[title]] <std_req__isosae21434__prj_management_6471>`
- <Rationale for result>

* - 6
- Are the requirements for post-development available?
* - 7
- Are the requirements for post-development available, together with the cybersecurity-relevant information needed for continued conformance (e.g. open weaknesses/vulnerabilities, verification/validation results)?
- [YES | NO ]
- :need:`[[title]] <std_req__isosae21434__prj_management_6491>`, :need:`[[title]] <std_req__isosae21434__prj_management_6492>`
- <Rationale for result>

* - 8
- If off-the-shelf/third-party (OTS/OSS) components are part of the Module, is their cybersecurity qualification (e.g. maintenance status, CVE history, SBOM) documented?
- [YES | NO ]
- :need:`[[title]] <std_req__isosae21434__prj_management_6461>`, :need:`[[title]] <std_req__isosae21434__prj_management_6462>`
- <Rationale for result>
Loading
Loading