Skip to content

Commit bf4abfc

Browse files
committed
initial draft of new process area security analysis
1 parent 9f2d785 commit bf4abfc

19 files changed

+1432
-30
lines changed

process/_assets/score_process_area_overview.drawio.svg

Lines changed: 1 addition & 1 deletion
Loading

process/process_areas/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ Process Areas
3434
requirements_engineering/index.rst
3535
safety_analysis/index.rst
3636
safety_management/index.rst
37+
security_analysis/index.rst
3738
security_management/index.rst
3839
tool_management/index.rst
3940
verification/index.rst
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
..
2+
# *******************************************************************************
3+
# Copyright (c) 2025 Contributors to the Eclipse Foundation
4+
#
5+
# See the NOTICE file(s) distributed with this work for additional
6+
# information regarding copyright ownership.
7+
#
8+
# This program and the accompanying materials are made available under the
9+
# terms of the Apache License Version 2.0 which is available at
10+
# https://www.apache.org/licenses/LICENSE-2.0
11+
#
12+
# SPDX-License-Identifier: Apache-2.0
13+
# *******************************************************************************
14+
15+
# Some portions generated by Co-Pilot
16+
17+
Guidance
18+
########
19+
20+
.. toctree::
21+
:maxdepth: 1
22+
23+
security_analysis_guideline
24+
security_analysis_threat_scenarios_guideline
25+
security_analysis_threat_scenario_templates
26+
security_analysis_threat_models_guideline
27+
security_analysis_threat_templates
28+
security_analysis_checklist
29+
security_analysis_process_reqs
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
..
2+
# *******************************************************************************
3+
# Copyright (c) 2025 Contributors to the Eclipse Foundation
4+
#
5+
# See the NOTICE file(s) distributed with this work for additional
6+
# information regarding copyright ownership.
7+
#
8+
# This program and the accompanying materials are made available under the
9+
# terms of the Apache License Version 2.0 which is available at
10+
# https://www.apache.org/licenses/LICENSE-2.0
11+
#
12+
# SPDX-License-Identifier: Apache-2.0
13+
# *******************************************************************************
14+
15+
# Some portions generated by Co-Pilot
16+
17+
Security Analysis Checklist
18+
============================
19+
20+
.. gd_chklst:: Security Analysis Checklist Template
21+
:id: gd_chklst__security_analysis
22+
:status: valid
23+
:tags: security_analysis
24+
25+
**Purpose**
26+
The purpose of this Security Analysis checklist template is to collect the topics to
27+
be checked during verification of the Security Analysis.
28+
29+
**Checklist**
30+
31+
.. list-table:: Security Analysis Checklist
32+
:header-rows: 1
33+
:widths: 10,30,30,15,8,8
34+
35+
* - Review ID
36+
- Acceptance Criteria
37+
- Guidance
38+
- Passed
39+
- Remarks
40+
- Issue link
41+
* - REQ_01_01
42+
- Is / are the attribute sufficient set correctly?
43+
- The mitigations shall have a direct influence on the threat by (accept, avoid, reduce, share) to mitigate the risk.
44+
- The mitigations are sufficient.
45+
- <yes|no>
46+
-
47+
* - REQ_01_02
48+
- Are the templates defined used?
49+
- See :ref:`security_analysis_templates` / :ref:`security_analysis_threat_templates` and also :ref:`process_requirements_security_analysis`
50+
- Templates are used to generate the security analysis.
51+
- <yes|no>
52+
-
53+
* - REQ_01_03
54+
- Were the threat scenarios / threat models applied?
55+
- See :need:`gd_guidl__sec_ana_threat_scenarios` / :need:`gd_guidl__threat_models_stride`
56+
- The applicable items of the threat scenarios / threat models are used to ensure a structured analysis. For all not applicable items an argument shall be given in the content of the document.
57+
- <yes|no>
58+
-
59+
* - REQ_01_04
60+
- Are the threat effects clearly and completely described?
61+
- Use the generic threat effect descriptions and enlarge the description if it's applicable to the considered element.
62+
- The effects of the threat are described completely. The effect can be recognized easily.
63+
- <yes|no>
64+
-
65+
* - REQ_01_06
66+
- Is the attribute "mitigated by" linked correctly?
67+
- Check if the correct threat effect is linked via "mitigated by".
68+
- The "mitigated by" link is correct.
69+
- <yes|no>
70+
-
71+
* - REQ_01_07
72+
- Is the sufficiency of the "mitigated by" (accept, avoid, reduce, share) described or can it be recognized easily?
73+
- The sufficiency of the "mitigated by" is described in the content of the document. It can be recognized easily.
74+
- The "mitigated by" shows clearly that a threat can be mitigated by the linked requirement by (accept, avoid, reduce, share). It shall be described in the content.
75+
- <yes|no>
76+
-
77+
* - REQ_01_08
78+
- Is the overall result of the Security Analysis described in the report?
79+
- It shall be shown in the report if the Security Analysis is finished and if all artifacts are "valid" and "sufficient".
80+
- The results of the Security Analysis are described in the report. The report is available :need:`wp__verification_platform_ver_report`.
81+
- <yes|no>
82+
-
Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
..
2+
# *******************************************************************************
3+
# Copyright (c) 2025 Contributors to the Eclipse Foundation
4+
#
5+
# See the NOTICE file(s) distributed with this work for additional
6+
# information regarding copyright ownership.
7+
#
8+
# This program and the accompanying materials are made available under the
9+
# terms of the Apache License Version 2.0 which is available at
10+
# https://www.apache.org/licenses/LICENSE-2.0
11+
#
12+
# SPDX-License-Identifier: Apache-2.0
13+
# *******************************************************************************
14+
15+
# Some portions generated by Co-Pilot
16+
17+
Security Analysis Guidelines
18+
############################
19+
20+
.. gd_guidl:: Security Analysis Guideline
21+
:id: gd_guidl__security_analysis
22+
:status: valid
23+
:complies:
24+
25+
This document describes the general guidance for Security Analysis based on the concept
26+
which is defined :need:`Security Analysis Concept<doc_concept__security_analysis>`.
27+
Use the platform Security Analysis as an input so that general security controls are
28+
only defined once and not in every single Security Analysis.
29+
30+
Workflow for Security Analysis
31+
==============================
32+
33+
The workflow of the Security Analysis is described in :ref:`workflow_security_analysis`.
34+
The single steps in these workflows are described in detail in the following sections.
35+
36+
37+
Step-by-Step-approach Security Analysis Feature/Component:
38+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
39+
40+
The analysis is done by using the template :ref:`security_analysis_threat_templates` on
41+
the feature or component architectural diagrams. By using the threat models
42+
<:need:`gd_guidl__threat_models_stride`> it can be ensured that the analysis is done in
43+
a structured way. Apply the threat model to the diagram and document the results in the
44+
template. Use the content of the document :need:`gd_temp__feat_sec_ana_threat`,
45+
:need:`gd_temp__comp_sec_ana_threat` to describe e.g. why a threat model is not
46+
applicable for the diagram. If a treat can't be applied, the reason has to be documented
47+
in the content of the document, so it can be recognized.
48+
49+
The attributes of the template are described in :ref:`process_requirements_security_analysis_attributes`.
50+
51+
**Steps:**
52+
53+
#. For each of the security functions realized by an architecture element check if a threat from the threat model :need:`gd_guidl__threat_models_stride` applies.
54+
#. If a threat model applies, use the template :need:`gd_temp__feat_sec_ana_threat` or :need:`gd_temp__comp_sec_ana_threat` to perform the analysis.
55+
#. The title of the analysis should be easily recognizable e.g. "Component xy unauthorized access".
56+
#. Link the violated architecture with the "violates" attribute.
57+
#. Replace the placeholders in the "id" attribute with the name of the feature or component and a short description of the element so that it can be easily identified.
58+
#. Document the threat ID from the threat model :need:`gd_guidl__threat_models_stride` that applies to the element in the "threat_id" attribute.
59+
#. Describe the threat effect of the threat model on the element in the "threat_effect" attribute. Use the threat description and enlarge it if it's applicable to the considered element.
60+
#. Document the mitigation. This can be (accept, avoid, reduce, share) of the threat.
61+
#. If there is no mitigation or existing mitigation is not sufficient, a mitigation issue has to be created in the Issue Tracking system and linked in the "mitigation_issue" attribute.
62+
#. The analysis is finished if for each identified threat a sufficient mitigation exists.
63+
#. Unless the attribute sufficient is yes, mitigation and argument attributes can be still empty.
64+
#. Continue the analysis until all applicable threat models are checked.
65+
#. The verification is done by applying the checklist :need:`gd_chklst__security_analysis`.
66+
67+
.. note::
68+
If there are changes they have to be analyzed with an impact analysis
69+
:need:`gd_temp__change_impact_analysis`. If needed the Security Analysis has to be
70+
updated accordingly. Therefore all necessary steps have to be repeated.
71+
72+
73+
Step-by-Step-approach Security Analysis Platform:
74+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
75+
76+
The analysis is done by using the template :ref:`security_analysis_templates` on the
77+
platform diagrams using a list of threat scenarios <:need:`gd_guidl__sec_ana_threat_scenarios`>.
78+
Use the content of the document :need:`gd_temp__plat_threat_scenario`,
79+
:need:`gd_temp__feat_sec_ana_threat` or :need:`gd_temp__comp_sec_ana_threat` to describe
80+
e.g. why a threat scenario is not applicable for the diagram. If a threat scenario can't
81+
be applied, the reason has to be documented in the content of the document, so it
82+
can be recognized.
83+
84+
The attributes of the template are described in :ref:`process_requirements_security_analysis_attributes`.
85+
86+
**Steps:**
87+
88+
#. For each architectural element check if a threat from the threat scenarios :need:`gd_guidl__sec_ana_threat_scenarios` applies.
89+
#. If a threat scenario applies, use the template :need:`gd_temp__plat_threat_scenario`, :need:`gd_temp__feat_sec_ana_threat` or :need:`gd_temp__comp_sec_ana_threat` to perform the analysis.
90+
#. The title of the analysis should be easily recognizable e.g. "Component xy unauthorized access".
91+
#. Link the violated architecture with the "violates" attribute.
92+
#. Replace the placeholders in the "id" attribute with the name of the feature or component and a short description of the element so that it can be easily identified.
93+
#. Document the threat ID from the threat scenario :need:`gd_guidl__sec_ana_threat_scenarios` that applies to the element in the "threat_id" attribute.
94+
#. Describe the threat effect of the threat scenario on the element in the "threat_effect" attribute. Use the violation cause description and enlarge it if it's applicable to the considered element.
95+
#. Document the mitigation. This can be (accept, avoid, reduce, share) of the threat.
96+
#. If there is no mitigation or the mitigation is not sufficient, a mitigation issue has to be created in the Issue Tracking system and linked in the "mitigation_issue" attribute.
97+
#. The analysis is finished if for each identified threat a sufficient mitigation exists.
98+
#. Unless the attribute sufficient is yes, mitigation and argument attributes can be still empty.
99+
#. Continue the analysis until all applicable threat scenarios are checked.
100+
#. The verification is done by applying the checklist :need:`gd_chklst__security_analysis`.
101+
102+
.. note::
103+
If there are changes they have to be analyzed with an impact analysis
104+
:need:`gd_temp__change_impact_analysis`. If needed the Security Analysis has to be
105+
updated accordingly. Therefore all necessary steps have to be repeated.
106+
107+
Examples for Security Analysis at feature level
108+
===============================================
109+
110+
future PR (https://github.com/eclipse-score/process_description/issues/409).
111+
112+
Examples for Security Analysis at component level
113+
=================================================
114+
115+
future PR (https://github.com/eclipse-score/process_description/issues/409).

0 commit comments

Comments
 (0)