Skip to content

Commit 4039b16

Browse files
authored
Merge pull request eclipse-score#596 from mercedes-benz/platform_security_analysis
Platform sec analysis first draft - part 1 without templates
2 parents dc031be + 611e823 commit 4039b16

File tree

4 files changed

+78
-16
lines changed

4 files changed

+78
-16
lines changed
253 KB
Loading
71.1 KB
Loading

process/process_areas/security_analysis/guidance/security_analysis_guideline.rst

Lines changed: 55 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ The workflow of the Security Analysis is described in :ref:`workflow_security_an
3434
The single steps in these workflows are described in detail in the following sections.
3535

3636

37+
38+
3739
Step-by-Step-approach Security Analysis Feature/Component:
3840
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
3941

@@ -83,27 +85,69 @@ can be recognized.
8385

8486
The attributes of the template are described in :ref:`process_requirements_security_analysis_attributes`.
8587

88+
The analysis is done by as described in the flowchart :ref:`platform_security_analysis`.
89+
8690
**Steps:**
8791

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.
92+
#. Define the trust boundary model for the platform under analysis. An example trust boundary definition is given in :ref:`trust_boundary_example`. The trust boundary model should be defined in a way that it can be easily recognized which architectural elements are located in which trust boundary. The trust boundary model should be defined before starting the analysis and should be used as an input for the analysis. The trust boundary model should be updated if there are changes in the platform architecture or if there are changes in the threat scenarios.
93+
#. Identify the assets of the platform. The assets are the elements of the platform that have to be protected. The assets can be identified by using the trust boundary model and the platform architecture. The assets can be identified using the following questions:
94+
95+
- What are the critical
96+
- features, interfaces, components (HW and SW), data of the platform?
97+
- communication paths and interfaces of the platform?
98+
- configurations of the platform?
99+
- What critical information is shared between the components?
100+
- Compromise of which assets can have an impact on security properties such as confidentiality, integrity, availability, authenticity, accountability, non-repudiation?
101+
- What are the process assets such as development, production, maintenance processes that could be exploited by attackers?
102+
103+
#. Identify how each asset flows through the features in the platform. The asset flow can be identified by using the platform architecture and the trust boundary model. The asset flow can be identified by using the following questions:
104+
105+
- How critical functions of the platform interact with each other?
106+
- How critical data of the platform flow through the platform?
107+
- How critical components of the platform interact with each other?
108+
- How critical interfaces and communication paths are used in the platform?
109+
- How critical information is shared between the functions/components of the platform?
110+
#. For each identified assets, identify the attack surfaces. The attack surfaces can be any interface or entry point that could be exploited by an attacker. Some examples are as follows:
111+
112+
- External communication interfaces
113+
- Wireless: cellular, Wi‑Fi, Bluetooth, GNSS, V2X, keyless entry, NFC
114+
- Wired: OBD-II, USB, Ethernet ports, charging connectors, dealer tools, external storage
115+
- In-vehicle networks and internal interfaces
116+
- CAN, LIN, FlexRay, Automotive Ethernet segments, gateway connections, debug ports
117+
- API/IPC boundaries between SW components, service interfaces between ECUs
118+
- User and physical interfaces
119+
- HMI (touchscreen, buttons, voice), infotainment, smartphone apps, mobile keys
120+
- Physical access to ECUs, sensors, actuators, wiring harness, debug/programming pins
121+
- Backend, cloud and off-board systems
122+
- Backend services for OTA, fleet management, mobile apps, web portals
123+
- Data centers, PKI/signing services, identity and access management, APIs
124+
- Development, production and service infrastructure
125+
- Build servers, version control, CI/CD, signing infrastructure
126+
- Manufacturing/test equipment, configuration tools, dealer/service tools, update media
127+
128+
#. For each attack surface, identify the potential threats that can be used by an attacker to compromise the asset. The potential threats can be identified using the following sources as input:
129+
130+
- :need:`gd_guidl__sec_ana_threat_scenarios`.
131+
- `UN R155 Annex 5 <https://www.google.com/url?sa=t&source=web&rct=j&opi=89978449&url=https://wiki.unece.org/download/attachments/179700184/TFCS-23-05%2520%2528OICA%252C%2520CLEPA%2529%2520R155%2520Annex5%2520table%2520C3%2520deletion.pdf%3Fapi%3Dv2&ved=2ahUKEwie0--t6IWTAxXXR_EDHbXrKDgQFnoECAQQAQ&usg=AOvVaw1XygSpmzqxlOxJ4Fb59a9w>`_
132+
- `Auto ISAC Threat Catalog <https://atm.automotiveisac.com/home>`_
133+
- `Capec Catalog of Attack Patterns <https://capec.mitre.org/data/index.html>`_
134+
- `CWE Common Weakness Enumeration <https://cwe.mitre.org/data/index.html/>`_
135+
- Other relevant sources such as security advisories, research papers, etc.
136+
137+
#. If a threat scenario applies, use the template :need:`gd_temp__plat_threat_scenario` to perform the analysis.
138+
#. For each identified potential threat, identify and document the potential mitigations. The potential mitigations are security requirements that then serve as the stakeholder requirements for features.
139+
#. Document the Security assumptions derived from this process.
140+
#. Risk treatment can be done by using the following options: accept, avoid, reduce, share. The chosen risk treatment shall be documented.
96141
#. 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.
142+
#. Continue the analysis until all applicable threat scenarios for each attack surface of each asset are checked.
100143
#. The verification is done by applying the checklist :need:`gd_chklst__security_analysis`.
101144

102145
.. note::
103146
If there are changes they have to be analyzed with an impact analysis
104147
:need:`gd_temp__change_impact_analysis`. If needed the Security Analysis has to be
105148
updated accordingly. Therefore all necessary steps have to be repeated.
106149

150+
107151
Examples for Security Analysis at feature level
108152
===============================================
109153

process/process_areas/security_analysis/security_analysis_concept.rst

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -107,22 +107,40 @@ Also requirements of standards need to be taken into consideration:
107107
How to analyze?
108108
===============
109109

110-
The Security Analysis are done on the feature and component architecture.
110+
The Security Analysis are done on the platform, feature and component architecture.
111111
The Security Analysis shall be done accompanying to the development.
112112
So the results can directly be used for the development of the feature and component.
113113
With an iterative approach it is needed to provide the evidence of the cybersecurity of
114114
the functions.
115-
The analysis were applied at static and dynamic architecture diagrams. Examples will
116-
be added here in an future PR (https://github.com/eclipse-score/process_description/issues/409).
115+
116+
Platform security analysis
117+
==========================
118+
.. figure:: _assets/PlatformAnalysisFLowChart.png
119+
:align: center
120+
:width: 80%
121+
:name: platform_security_analysis
122+
123+
Platform Architecture
124+
125+
A step-by-step-approach is described in :need:`gd_guidl__security_analysis`.
126+
As shown above in the flow diagram, the first step in the platform security analysis is the definition of the trust boundary. An example definition is shown below.
127+
128+
.. figure:: _assets/exampleTrustBoundary.png
129+
:align: center
130+
:width: 80%
131+
:name: trust_boundary_example
132+
133+
Trust Boundary
134+
117135

118136
How to mitigate?
119137
================
120-
121-
Identified risks without a mitigation remain open and are tracked in the issue tracking
138+
Security requirements resulting from the Platform analysis become :need:`wp__requirements_stkh` for the features. Identified risks without a mitigation remain open and are tracked in the issue tracking
122139
system :need:`wp__issue_track_system` until they are resolved.
123140
Resolving includes acceptance of the risk or avoidance.
124141
Further a new security control may be needed to reduce the risk.
125142
Finally also the risk may shared, if applicable.
143+
Security assumptions resulting from the analysis are documented properly as :need:`wp__requirements_sw_platform_aou`.
126144

127145
What analysis shall be done in which level?
128146
===========================================

0 commit comments

Comments
 (0)