Skip to main content

Security Criticality Analysis

The Security Criticality Analysis is performed to identify which of the components in a product are important to pay extra attention to when trying to minimize the risk of vulnerabilities.

Security Critical Components

A security critical component is any element within a system whose compromise could significantly impact the system's security posture, leading to potential breaches, data loss, or operational disruption. Identifying and protecting these components is essential for maintaining the overall security of a system or network.

Some examples of what is often considered critical components:

  • components used to communicate and exchange data with external systems and/or users (e.g. communication stacks, file processing)
  • components accepting and processing user inputs (e.g. HMI components)
  • components processing user provided data (e.g. configuration files)
  • components providing security related functionality, such as user authentication and authorization, cryptographic functionality, security logging
  • components in which vulnerabilities have previously been identified
  • components executing with higher privilege than other code (for example SYSTEM, administrator, root)
  • Typically any component which is part of the attack surface and/or the threat model is a security critical component

Criticality Analysis

  • Why
    For Security Critical Components it may be relevant to plan for additional regression testing.
    After a minor code change, having a good Criticality Analysis will help when analyzing the potential security impact of the change; if code is changed in a module/component which has been classified as security critical additional analysis should be made to determine if the change affects the actually critical code. See example below.

  • When
    For new development; the Criticality Analysis is worked on between G2 and G3 and the approved analysis should be available at G4. The criticality analysis is initially done during the design phase, but it is recommended to update the criticality during the implementation phase based on actual implementation.
    For a Roll-Up, TC, CC, or Service Pack the existing Criticality Analysis should be updated, if needed.

  • Who
    The Architect is the responsible role.

  • Where
    The analysis is performed on component level but could in some cases be done on product level.

  • What
    The analysis should list the criticality of the component with a motivation. Some components that at first glance look like they may be critical could, after taking the security context into consideration, be considered non critical.
    It should also describe the essential functions of the product and refer to the architecture and design of the security controls that describe how these are designed not to prevent any essential function from operating.

  • How
    The result of the analysis could be documented as a table with the criticality information, see the examples below.
    It could also contain diagrams to give a better overview of components, subcomponents and relations between them.
    Normally a critical component is related to at least one requirement in under the Foundational Requirements in the Product Security Standard/IEC 62443-3-3/4-2. Describe which of the Foundational Requirements the critical component is related to.

  • Inputs to the analysis

    • Security Architecture Description and design documents
    • Security Criticality Analysis from the previous release can be updated to a new version
    • Security context

Examples of Criticality Table

ComponentCriticalityMotivation
ANon criticalNo communication across trust boundaries
BCriticalReceives data via the network
CCriticalImplements encryption or message data
DCriticalImplements User Authentication and user access control
Software ComponentInternal ComponentCriticalityMotivation
AA1Non criticalNo communication across trust boundaries
AA2CriticalReceives data via the network
B-CriticalImplements encryption or message data
C-CriticalImplements User Authentication and user access control
Software ComponentInternal ComponentMethodCriticalityMotivation
AA1-CriticalReceives data via the network
AA2-CriticalReceives user input
AAll other-Non criticalNo communication across trust boundaries
B-EncryptCriticalImplements encryption or message data
B-All otherNon criticalNo security functionality
C--CriticalImplements User Authentication and user access control
D--Non criticalNo security functionality, No communication across trust boundaries

Example of Essential Functions

The essential functions of a system are the functions needed for the system to perform its main tasks.
The security criticality analysis should describe the essential functions and refer to the architecture and design of the security controls that describe how these are designed. This is to prevent any essential function from not operating. The essential functions may be inside the product, but they may also be in a system that the product is a part of.
Common essential functions for a DCS are:

  • Control: That the controller can control its output IO
  • Command: That an operator can issue commands to the physical system
  • View: That an operator can see the correct status of the physical system
  • Alarms: That alarms are not lost
  • History: That historic data is not lost

Safety Instrumented Functions are always considered essential and are normally covered by the list below

How to analyze the potential security impact of a change in a Security Critical Component

If, for example, code is changed in a module which is considered security critical because it contains functions that perform user authentication, a deeper analysis should be made to determine if the code change affects the authentication functions.
If this is the case the security assessment questions related to user authentication should be revisited and the answers should be changed if necessary. If the changes do not affect the authentication functions the impact analysis does not need to be as thorough.

This means that the impact analysis for a small code change is most likely easier for a component/product with a fine grained security criticality analysis, than for one where only a few big components are analyzed, because in the fine grained case probably a bigger amount of the code will be classified as non-critical. A product which is treated as a monolith is most likely classified as critical because some part of the product has critical functions, even though most of the functions are not critical.

Owner: Cyber Security Team