Threat Modeling Report

Created on 03/06/2026 10:27:44

Threat Model Name: EdgeX Foundry Threat Model

Owner:

Reviewer:

Contributors: Jim White, Cloud Tsai, Siril Ganjai, Jude Hung

Description: General Threat Model for EdgeX Foundry - inclusive of security elements (Nginx, SecretStore, etc). This revision additionally documents mitigations gained when EdgeX is deployed under a rootless Docker daemon (see https://docs.edgexfoundry.org/4.1/security/Rootless-Docker/). Threats whose Possible Mitigation field contains "Additional mitigation when running EdgeX in rootless Docker:" have been revised to reflect the reduced blast radius (no host-root via container escape, user-namespace UID remapping, host filesystem isolation, and unprivileged ownership of container volumes and the Docker socket). In a second pass, threats whose Possible Mitigation contains "Additional mitigation when EdgeX container images are signed" have been revised to reflect supply-chain integrity provided by Sigstore/cosign, Docker Content Trust or Notary v2 when signature verification is enforced at pull/admission time with the signing key protected by an HSM or KMS; that mitigation is paired with SBOM and SLSA provenance attestations and timely patching, since signing covers image authenticity only. All revisions are appended to the original author's text inside Possible Mitigation.

Assumptions: EdgeX is platform agnostic, but this Threat model assumes the underlying OS is a Linux distribution. EdgeX can run containerized or non-containerized (natively). This Threat Model assumes EdgeX is running in a containerized environment (Docker). EdgeX micro services can run distributed, but this Threat Model assumes EdgeX is running on a single host (single Docker deamon with a single Docker network unless otherwise specified). Many different devices/sensors can be connected to EdgeX via its device services. This Threat model treats all sensors/devices the same (which is not always the case given the varoius protocols of support). Per https://docs.edgexfoundry.org/4.0/threat-models/secret-store/threat_model/, additional hardening such as secure boot with hardware root of trust, and secure disk encryption are outside of EdgeX control but would greatly improve the threat mitigation.

External Dependencies: Operating system and hardware (including devices/sensors) Device/sensor drivers Possibly a cloud system or external enterprise system that EdgeX gets data to A message bus broker (such as an MQTT broker)


Notes:

Id Note Date Added By
1Tampering with Data - This is a threat where information in the system is changed by an attacker. For example, an attacker changes an account balance Unauthorized changes made to persistent data, such as that held in a database, and the alteration of data as it flows between two computers over an open network, such as the Internet26/08/2022 02:40:40DESKTOP-SL3KKHH\jpwhi
2XSS protections: filter input on arrival (don't do), encode data on oputput (don't do), use appropriate headers (do), use CSP (dont do)26/08/2022 02:54:16DESKTOP-SL3KKHH\jpwhi
3priority is determined by the likelihood of a threat occuring and the severity of the impact of its occurance26/08/2022 03:11:40DESKTOP-SL3KKHH\jpwhi
4Repudiation - don't track and log users actions; can't prove a transaction took place26/08/2022 03:13:14DESKTOP-SL3KKHH\jpwhi
5Elevation of privil - authorized or unauthorized user gains access to info not authorized26/08/2022 03:16:24DESKTOP-SL3KKHH\jpwhi
6Remote code execution: https://www.comparitech.com/blog/information-security/remote-code-execution-attacks/ buffer overflow sanitize user inputs proper auth use a firewall26/08/2022 03:21:28DESKTOP-SL3KKHH\jpwhi
7Privilege escalation attacks occur when bad actors exploit misconfigurations, bugs, weak passwords, and other vulnerabilities27/08/2022 21:57:18DESKTOP-SL3KKHH\jpwhi

Threat Model Summary:

Not Started8
Not Applicable36
Needs Investigation25
Mitigation Implemented90
Total159
Total Migrated0


Diagram: EdgeX Foundry (Big Picture)

EdgeX Foundry (Big Picture) diagram screenshot

Validation Messages:

  1. Error: The connector should be attached to two elements.

EdgeX Foundry (Big Picture) Diagram Summary:

Not Started0
Not Applicable15
Needs Investigation1
Mitigation Implemented79
Total95
Total Migrated0

Interaction: configuration

configuration interaction screenshot

1. Spoofing of Source Data Store Configuration Files  [State: Mitigation Implemented]  [Priority: Low] 

Category:Spoofing
Description:Configuration Files may be spoofed by an attacker and this may lead to incorrect data delivered to EdgeX Foundry. Consider using a standard authentication mechanism to identify the source data store.
Justification:<no mitigation provided>
Possible Mitigation:Configuration files are used to seed EdgeX configuration service (core-keeper) before the services are started. Configuration files are made part of the service container (deployed with the container image). The only way to spoof the file is to replace the entire service container with new configuration or to transplant new configuration in the container - both require privileaged access to the host. Additional mitigation when running EdgeX in rootless Docker: the Docker daemon, container processes and bind-mounted volumes are owned by an unprivileged host user rather than root. A compromised container that escapes its namespace inherits only that unprivileged user's permissions, so it cannot read or overwrite configuration files baked into other service containers, replace a service image on disk, or transplant configuration into a running container without first compromising the rootless-Docker user account itself. See https://docs.edgexfoundry.org/4.1/security/Rootless-Docker/. Additional mitigation when EdgeX container images are signed (e.g., Sigstore/cosign, Docker Content Trust or Notary v2) and signature verification is enforced at pull or admission time: the supply-chain path for introducing a tampered or imposter image is closed, provided the signing key is rooted in an HSM or KMS and verification is policy-enforced by the runtime. Signing does not prevent exploitation of a flaw inside a legitimately signed image; pair it with SBOM and SLSA provenance attestations and timely patching. See https://www.sigstore.dev/ and https://docs.docker.com/engine/security/trust/.
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation reviewed

2. Weak Access Control for a Resource  [State: Not Applicable]  [Priority: Low] 

Category:Information Disclosure
Description:Improper data protection of Configuration Files can allow an attacker to read information not intended for disclosure. Review authorization settings.
Justification:<no mitigation provided>
Possible Mitigation:Disclosure of configuration files is not important. Configuration data is not considered sensitive. As long as the configuration files are not manipulated, then access to configuration files is not deemed a threat. All secret configuration is made available through SecretStore. Additional mitigation when running EdgeX in rootless Docker: containers cannot access non-root host directories, so the files backing this resource are reachable only via the service's own API or by compromising the unprivileged host user that owns the rootless daemon. This narrows the filesystem-side attack surface that a colocated, lower-privileged process could otherwise reach. See https://docs.edgexfoundry.org/4.1/security/Rootless-Docker/.
Mitigator:No mitigation or not applicable
Mitigation Status:Cannot mitigate or not appilcable

Interaction: data

data interaction screenshot

3. Spoofing of Source Data Store PostgreSQL  [State: Mitigation Implemented]  [Priority: Low] 

Category:Spoofing
Description:PostgreSQL may be spoofed by an attacker and this may lead to incorrect data delivered to EdgeX Foundry. Consider using a standard authentication mechanism to identify the source data store.
Justification:<no mitigation provided>
Possible Mitigation:If someone was able to provide a container that was spoofing as PostgreSQL , the service would not know that the response came from something other than PostgreSQL. However, PostgreSQL is run as a container on the EdgeX Docker network. Replacing/spoofing the PostgreSQL container would require privileaged (root) access to the host. Additional adopter mitigation would include putting TLS in place between EdgeX and PostgreSQL (with TLS cert in place). A spoofing service (in this case PostgreSQL), would not have the appropriate cert in place to participate in the communications. Additional mitigation when EdgeX container images are signed (e.g., with Sigstore/cosign, Docker Content Trust or Notary v2) and signature verification is enforced at pull or admission time: an attacker cannot substitute a tampered or imposter image for the PostgreSQL container via a compromised registry, a man-in-the-middle of `docker pull`, or a tampered local image cache. The signing key must be protected by an HSM or KMS and verification must be enforced by the runtime (for example a cosign policy controller or content-trust-enabled daemon). Image signing covers image authenticity only; pair it with SBOM and SLSA provenance attestations for build-time integrity and with timely patching, because a legitimately signed image with an exploitable flaw is still exploitable. See https://www.sigstore.dev/ and https://docs.docker.com/engine/security/trust/.
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation reviewed

4. Authenticated Data Flow Compromised  [State: Mitigation Implemented]  [Priority: Low] 

Category:Tampering
Description:An attacker can read or modify data transmitted over an authenticated dataflow.
Justification:<no mitigation provided>
Possible Mitigation:EdgeX containers communicate via a Docker network. A hacker would need to gain access to the host and have elevated privileages on the host to access the network traffic. For additional security, EdgeX can also run in a rootless Docker environment (see: https://docs.edgexfoundry.org/4.1/security/Rootless-Docker/). If an adopter deploys EdgeX services in a distributed environment across multiple hosts, overlay network encryption can be enabled to secure inter-host communication (see example: https://github.com/edgexfoundry/edgex-examples/tree/update-custom-trigger-multiple-pipelines/security/remote_devices/docker-swarm)
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation reviewed

5. Weak Access Control for a Resource  [State: Mitigation Implemented]  [Priority: Low] 

Category:Information Disclosure
Description:Improper data protection of PostgreSQL can allow an attacker to read information not intended for disclosure. Review authorization settings.
Justification:<no mitigation provided>
Possible Mitigation:Access control credentials for PostgreSQL are secured in SecretStore (provided to EdgeX services at bootstrapping but otherwise unknown). Access without credentials is denied.
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation reviewed

Interaction: published message

published 
message interaction screenshot

6. Potential Excessive Resource Consumption for EdgeX Foundry or Message Bus Broker  [State: Mitigation Implemented]  [Priority: Medium] 

Category:Denial Of Service
Description:Does EdgeX Foundry or Message Bus Broker take explicit steps to control resource consumption? Resource consumption attacks can be hard to deal with, and there are times that it makes sense to let the OS do the job. Be careful that your resource requests don't deadlock, and that they do timeout.
Justification:<no mitigation provided>
Possible Mitigation:The EdgeX message broker is an MQTT broker like Mosquitto and runs as a container in a Docker network that, by default with security on, does not allow direct access to the broker. Access to publish or subscribe to cause it to use excessive resources would require authorized access to the host as the port to the internal message broker is protected. In other words, EdgeX mitigates unauthorized attacks resulting in DoS event, but would not mitigate authorized attacks (such as a service producing too many message than the broker can handle) that result in a DoS event.
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation reviewed

7. Spoofing of Destination Data Store Message Bus  [State: Mitigation Implemented]  [Priority: Low] 

Category:Spoofing
Description:Message Bus may be spoofed by an attacker and this may lead to data being written to the attacker's target instead of Message Bus. Consider using a standard authentication mechanism to identify the destination data store.
Justification:<no mitigation provided>
Possible Mitigation:The message bus when requiring a broker (MQTT broker for example) is run as a container on the EdgeX Docker network. Replacing/spoofing the broker container would require privileaged access to the host. Message broker host and port are part of services' configuration (covered under threats against configuration) Additional mitigation when running EdgeX in rootless Docker: the Docker daemon, container processes and bind-mounted volumes are owned by an unprivileged host user rather than root. A compromised container that escapes its namespace inherits only that unprivileged user's permissions, so it cannot read or overwrite configuration files baked into other service containers, replace a service image on disk, or transplant configuration into a running container without first compromising the rootless-Docker user account itself. See https://docs.edgexfoundry.org/4.1/security/Rootless-Docker/. Additional mitigation when EdgeX container images are signed (e.g., with Sigstore/cosign, Docker Content Trust or Notary v2) and signature verification is enforced at pull or admission time: an attacker cannot substitute a tampered or imposter image for the message-bus broker container via a compromised registry, a man-in-the-middle of `docker pull`, or a tampered local image cache. The signing key must be protected by an HSM or KMS and verification must be enforced by the runtime (for example a cosign policy controller or content-trust-enabled daemon). Image signing covers image authenticity only; pair it with SBOM and SLSA provenance attestations for build-time integrity and with timely patching, because a legitimately signed image with an exploitable flaw is still exploitable. See https://www.sigstore.dev/ and https://docs.docker.com/engine/security/trust/.
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation reviewed

Interaction: queries & data

queries & 
data interaction screenshot

8. Spoofing of Destination Data Store PostgreSQL  [State: Mitigation Implemented]  [Priority: Low] 

Category:Spoofing
Description:PostgreSQL may be spoofed by an attacker and this may lead to data being written to the attacker's target instead of PostgreSQL. Consider using a standard authentication mechanism to identify the destination data store.
Justification:<no mitigation provided>
Possible Mitigation:If someone was able to provide a container that was spoofing as PostgreSQL, the service would not know that the response came from something other than PostgreSQL. However, PostgreSQL is run as a container on the EdgeX Docker network. Replacing/spoofing the PostgreSQL container would require privileaged (root) access to the host. Additional adopter mitigation would include putting TLS in place between EdgeX and PostgreSQL (with TLS cert in place). A spoofing service (in this case PostgreSQL), would not have the appropriate cert in place to participate in the communications. Database host and port are part of services' configuration (covered under threats against configuration) Additional mitigation when EdgeX container images are signed (e.g., with Sigstore/cosign, Docker Content Trust or Notary v2) and signature verification is enforced at pull or admission time: an attacker cannot substitute a tampered or imposter image for the PostgreSQL container via a compromised registry, a man-in-the-middle of `docker pull`, or a tampered local image cache. The signing key must be protected by an HSM or KMS and verification must be enforced by the runtime (for example a cosign policy controller or content-trust-enabled daemon). Image signing covers image authenticity only; pair it with SBOM and SLSA provenance attestations for build-time integrity and with timely patching, because a legitimately signed image with an exploitable flaw is still exploitable. See https://www.sigstore.dev/ and https://docs.docker.com/engine/security/trust/.
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation reviewed

9. Authenticated Data Flow Compromised  [State: Mitigation Implemented]  [Priority: Low] 

Category:Tampering
Description:An attacker can read or modify data transmitted over an authenticated dataflow.
Justification:<no mitigation provided>
Possible Mitigation:EdgeX containers communicate via a Docker network. Docker containers do not share the host's network interface by default and instead is based on virtual ethernet adapters and bridges. A hacker would need to gain access to the host and have elevated privileages on the host to access the network traffic. For additional security, EdgeX can also run in a rootless Docker environment (see: https://docs.edgexfoundry.org/4.1/security/Rootless-Docker/). If an adopter deploys EdgeX services in a distributed environment across multiple hosts, overlay network encryption can be enabled to secure inter-host communication (see example: https://github.com/edgexfoundry/edgex-examples/tree/update-custom-trigger-multiple-pipelines/security/remote_devices/docker-swarm)
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation reviewed

10. Potential SQL Injection Vulnerability for PostgreSQL  [State: Mitigation Implemented]  [Priority: Low] 

Category:Tampering
Description:SQL injection is an attack in which malicious code is inserted into strings that are later passed to an instance of SQL Server for parsing and execution. Any procedure that constructs SQL statements should be reviewed for injection vulnerabilities because SQL Server will execute all syntactically valid queries that it receives. Even parameterized data can be manipulated by a skilled and determined attacker.
Justification:<no mitigation provided>
Possible Mitigation:EdgeX peresistence implementation uses the golang with proper SQL statements to prevent any SQL injection https://go.dev/doc/database/sql-injection
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation reviewed

11. Potential Excessive Resource Consumption for EdgeX Foundry or PostgreSQL  [State: Mitigation Implemented]  [Priority: Low] 

Category:Denial Of Service
Description:Does EdgeX Foundry or PostgreSQL take explicit steps to control resource consumption? Resource consumption attacks can be hard to deal with, and there are times that it makes sense to let the OS do the job. Be careful that your resource requests don't deadlock, and that they do timeout.
Justification:<no mitigation provided>
Possible Mitigation:PostgreSQL runs as a container in a Docker network that, by default with security on, does not allow direct access to the database. Access to query or push data into it to cause it to use excessive resources would require authorized access to the host as the port to the database is protected. In other words, EdgeX mitigates unauthorized attacks resulting in DoS event, but would not mitigate authorized attacks (such as a service making too many queries or pushing to much data into it) that result in a DoS event. EdgeX does have a routine with customizable configuration that "cleans up" and removes older data so that "normal" or otherwise expected use of the database for persistenct does not result in DoS.
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation reviewed

Interaction: query

query interaction screenshot

12. Spoofing of Destination Data Store SecretStore  [State: Mitigation Implemented]  [Priority: Low] 

Category:Spoofing
Description:SecretStore may be spoofed by an attacker and this may lead to data being written to the attacker's target instead of SecretStore. Consider using a standard authentication mechanism to identify the destination data store.
Justification:<no mitigation provided>
Possible Mitigation:If someone was able to provide a container that was spoofing as SecretStore, the service would not know that the response came from something other than SecretStore. However, SecretStore is run as a container on the EdgeX Docker network. Replacing/spoofing the SecretStore container would require privileaged (root) access to the host. Additional adopter mitigation would include putting TLS in place between EdgeX and SecretStore (with TLS cert in place). A spoofing service (in this case SecretStore), would not have the appropriate cert in place to participate in the communications. EdgeX services that use SecretStore must use the go-mod-secrets client or a SecretStore service token to access its secrets (which is revoked by default). See https://docs.edgexfoundry.org/4.0/security/Ch-SecretStore/#using-the-secret-store SecretStore host and port are configured from static configuration or environment overrides (trusted input), making it difficult to misdirect services access to SecretStore. See EdgeX Threat Model documentation (https://docs.edgexfoundry.org/4.0/threat-models/secret-store/threat_model/#threat-matrix) for additional considerations and mitigation. Additional mitigation when EdgeX container images are signed (e.g., with Sigstore/cosign, Docker Content Trust or Notary v2) and signature verification is enforced at pull or admission time: an attacker cannot substitute a tampered or imposter image for the SecretStore (OpenBao) container via a compromised registry, a man-in-the-middle of `docker pull`, or a tampered local image cache. The signing key must be protected by an HSM or KMS and verification must be enforced by the runtime (for example a cosign policy controller or content-trust-enabled daemon). Image signing covers image authenticity only; pair it with SBOM and SLSA provenance attestations for build-time integrity and with timely patching, because a legitimately signed image with an exploitable flaw is still exploitable. See https://www.sigstore.dev/ and https://docs.docker.com/engine/security/trust/.
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation reviewed

13. Potential Excessive Resource Consumption for EdgeX Foundry or SecretStore  [State: Mitigation Implemented]  [Priority: Low] 

Category:Denial Of Service
Description:Does EdgeX Foundry or SecretStore take explicit steps to control resource consumption? Resource consumption attacks can be hard to deal with, and there are times that it makes sense to let the OS do the job. Be careful that your resource requests don't deadlock, and that they do timeout.
Justification:<no mitigation provided>
Possible Mitigation:SecretStore runs as a container in a Docker network that, by default with security on, does not allow direct access to the secret store. Access to query or push data into it to cause it to use excessive resources would require authorized access to the host as the port to the database is protected. In other words, EdgeX mitigates unauthorized attacks resulting in DoS event, but would not mitigate authorized attacks (such as a service making too many queries or pushing to many secrets into it) that result in a DoS event.
Mitigator:Third Party
Mitigation Status:Mitigation reviewed

Interaction: query

query interaction screenshot

14. Spoofing of Destination Data Store Device/Sensor (REST authenticated)  [State: Mitigation Implemented]  [Priority: Low] 

Category:Spoofing
Description:Device/Sensor (REST authenticated) may be spoofed by an attacker and this may lead to data being written to the attacker's target instead of Device/Sensor (REST authenticated). Consider using a standard authentication mechanism to identify the destination data store.
Justification:<no mitigation provided>
Possible Mitigation:With authentication in place the REST caller would not get the proper authenticated by a spoofed Nginx and thereby deny any query request.
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation reviewed

15. The Device/Sensor (REST authenticated) Data Store Could Be Corrupted  [State: Mitigation Implemented]  [Priority: High] 

Category:Tampering
Description:Data flowing across query may be tampered with by an attacker. This may lead to corruption of Device/Sensor (REST authenticated). Ensure the integrity of the data flow to the data store.
Justification:<no mitigation provided>
Possible Mitigation:REST requests and responses to/through Nginx are encrypted by default.
Mitigator:Third Party
Mitigation Status:Mitigation reviewed

16. Data Store Denies Device/Sensor (REST authenticated) Potentially Writing Data  [State: Mitigation Implemented]  [Priority: Low] 

Category:Repudiation
Description:Device/Sensor (REST authenticated) claims that it did not write data received from an entity on the other side of the trust boundary. Consider using logging or auditing to record the source, time, and summary of the received data.
Justification:<no mitigation provided>
Possible Mitigation:Use of elevated log level (set writable configuration log level to DEBUG in the device service) can be used to log all data communications.
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation reviewed

17. Data Flow query Is Potentially Interrupted  [State: Mitigation Implemented]  [Priority: Medium] 

Category:Denial Of Service
Description:An external agent interrupts data flowing across a trust boundary in either direction.
Justification:<no mitigation provided>
Possible Mitigation:Outside influence could break the network communication connection causing major disruption of service (ex: removing or cutting off comms to a critical temperature resource of a heating or cooling machine). EdgeX has no means to protect the network connection. Physical security is required to protect the wire and device/sensor and mitigate this threat. The device service does track "last connected" and that timestamp could be monitored for outside of normal reporting ranges.
Mitigator:Adopter
Mitigation Status:Mitigation written

18. Data Store Inaccessible  [State: Mitigation Implemented]  [Priority: Medium] 

Category:Denial Of Service
Description:An external agent prevents access to a data store on the other side of the trust boundary.
Justification:<no mitigation provided>
Possible Mitigation:Outside influence could break the network communication connection causing major disruption of service (ex: removing or cutting off comms to a critical temperature resource of a heating or cooling machine). EdgeX has no means to protect the network connection. Physical security is required to protect the wire and device/sensor and mitigate this threat. The device service does track "last connected" and that timestamp could be monitored for outside of normal reporting ranges.
Mitigator:Adopter
Mitigation Status:Mitigation written

Interaction: query

query interaction screenshot

19. Data Store Inaccessible  [State: Mitigation Implemented]  [Priority: High] 

Category:Denial Of Service
Description:An external agent prevents access to a data store on the other side of the trust boundary.
Justification:<no mitigation provided>
Possible Mitigation:Outside influence could break the communication connection or MQTT broker causing major disruption of service (ex: removing or cutting off comms to a critical temperature sensor of a heating or cooling machine). EdgeX has no means to protect the connection to the external MQTT broker, the broker itself, or subscriber to the broker. Physical and sytem security is required to protect these and mitigate this threat. Query requests that do not receive a response would result in an error that could be responded to.
Mitigator:Adopter
Mitigation Status:Mitigation reviewed

20. Data Flow query Is Potentially Interrupted  [State: Mitigation Implemented]  [Priority: High] 

Category:Denial Of Service
Description:An external agent interrupts data flowing across a trust boundary in either direction.
Justification:<no mitigation provided>
Possible Mitigation:Outside influence could break the communication connection or MQTT broker causing major disruption of service (ex: removing or cutting off comms to a critical temperature sensor of a heating or cooling machine). EdgeX has no means to protect the connection to the external MQTT broker, the broker itself, or publisher to the broker. Physical and sytem security is required to protect these and mitigate this threat.
Mitigator:Adopter
Mitigation Status:Mitigation needed

21. Potential Excessive Resource Consumption for EdgeX Foundry or Device/Sensor (via external MQTT broker - authenticated)  [State: Mitigation Implemented]  [Priority: High] 

Category:Denial Of Service
Description:Does EdgeX Foundry or Device/Sensor (via external MQTT broker - authenticated) take explicit steps to control resource consumption? Resource consumption attacks can be hard to deal with, and there are times that it makes sense to let the OS do the job. Be careful that your resource requests don't deadlock, and that they do timeout.
Justification:<no mitigation provided>
Possible Mitigation:EdgeX could send too many requests for data that cause the broker or subscriber to go offline or appear unresponsive - depending on the capabilities of the broker or subscribing application. In the opposite direction, an MQTT publisher could be tampered with or improperly configured to send too much data (overwhelming the EdgeX system or MQTT broker) causing a DoS. Other than writing the device service to filter data to avoid the “too much” data DoS, this threat is not mitigated.
Mitigator:Adopter
Mitigation Status:Mitigation reviewed

22. Data Flow Sniffing  [State: Mitigation Implemented]  [Priority: High] 

Category:Information Disclosure
Description:Data flowing across query may be sniffed by an attacker. Depending on what type of data an attacker can read, it may be used to attack other parts of the system or simply be a disclosure of information leading to compliance violations. Consider encrypting the data flow.
Justification:<no mitigation provided>
Possible Mitigation:Requires encryption of the communications (on both the EdgeX and device/sensor ends) which is not in place by default. MQTTS could be implemented by the adopter with the appropriate MQTT broker.
Mitigator:Adopter
Mitigation Status:Mitigation reviewed

23. Data Store Denies Device/Sensor (via external MQTT broker - authenticated) Potentially Writing Data  [State: Mitigation Implemented]  [Priority: High] 

Category:Repudiation
Description:Device/Sensor (via external MQTT broker - authenticated) claims that it did not write data received from an entity on the other side of the trust boundary. Consider using logging or auditing to record the source, time, and summary of the received data.
Justification:<no mitigation provided>
Possible Mitigation:Use of elevated log level (set writable configuration log level to DEBUG in the device service) can be used to log all data communications. Log level on the message bus may also be elevated.
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation reviewed

24. The Device/Sensor (via external MQTT broker - authenticated) Data Store Could Be Corrupted  [State: Mitigation Implemented]  [Priority: High] 

Category:Tampering
Description:Data flowing across query may be tampered with by an attacker. This may lead to corruption of Device/Sensor (via external MQTT broker - authenticated). Ensure the integrity of the data flow to the data store.
Justification:<no mitigation provided>
Possible Mitigation:Requires encryption of the communications (on both the EdgeX and device/sensor ends) which is not in place by default. MQTTS could be implemented by the adopter with the appropriate MQTT broker.
Mitigator:Adopter
Mitigation Status:Mitigation reviewed

25. Spoofing of Destination Data Store Device/Sensor (via external MQTT broker - authenticated)  [State: Mitigation Implemented]  [Priority: High] 

Category:Spoofing
Description:Device/Sensor (via external MQTT broker - authenticated) may be spoofed by an attacker and this may lead to data being written to the attacker's target instead of Device/Sensor (via external MQTT broker - authenticated). Consider using a standard authentication mechanism to identify the destination data store.
Justification:<no mitigation provided>
Possible Mitigation:With authentication in place the spoofing MQTT query sendor (or the spoofed external message broker) would not be properly authenticated and thereby be unable to publish. The EdgeX framework has the support to store secrets to authenticate devices. Broker host and port are part of services' configuration (covered under threats against configuration)
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation reviewed

26. Spoofing the EdgeX Foundry Process  [State: Mitigation Implemented]  [Priority: High] 

Category:Spoofing
Description:EdgeX Foundry may be spoofed by an attacker and this may lead to unauthorized access to Device/Sensor (via external MQTT broker - authenticated). Consider using a standard authentication mechanism to identify the source process.
Justification:<no mitigation provided>
Possible Mitigation:With authentication in place the spoofing MQTT publisher of a query (or the spoofed external message broker) would not be properly authenticated and thereby be unable to make its request. The EdgeX framework has the support to store secrets to authenticate devices. Broker host and port are part of services' configuration (covered under threats against configuration) Additional mitigation when EdgeX container images are signed (e.g., with Sigstore/cosign, Docker Content Trust or Notary v2) and signature verification is enforced at pull or admission time: an attacker cannot substitute a tampered or imposter image for any EdgeX Foundry service container via a compromised registry, a man-in-the-middle of `docker pull`, or a tampered local image cache. The signing key must be protected by an HSM or KMS and verification must be enforced by the runtime (for example a cosign policy controller or content-trust-enabled daemon). Image signing covers image authenticity only; pair it with SBOM and SLSA provenance attestations for build-time integrity and with timely patching, because a legitimately signed image with an exploitable flaw is still exploitable. See https://www.sigstore.dev/ and https://docs.docker.com/engine/security/trust/.
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation reviewed

Interaction: query or actuation

query 
or actuation interaction screenshot

27. Spoofing the EdgeX Foundry Process  [State: Not Applicable]  [Priority: High] 

Category:Spoofing
Description:EdgeX Foundry may be spoofed by an attacker and this may lead to unauthorized access to Device/Sensor. Consider using a standard authentication mechanism to identify the source process.
Justification:<no mitigation provided>
Possible Mitigation:Without an authentication protocol, there is no mitigation for this threat. The device would not be able to determine that the Spoofing EdgeX caller is not EdgeX.
Mitigator:No mitigation or not applicable
Mitigation Status:Cannot mitigate or not appilcable

28. Spoofing of Destination Data Store Device/Sensor  [State: Needs Investigation]  [Priority: High] 

Category:Spoofing
Description:Device/Sensor may be spoofed by an attacker and this may lead to data being written to the attacker's target instead of Device/Sensor. Consider using a standard authentication mechanism to identify the destination data store.
Justification:<no mitigation provided>
Possible Mitigation:Due to the nature of many protocols, an outside agent could spoof a legitimate device/sensor. This is of particular concern if the device service auto provisions the devices/sensors without any authentication. Auto provisioning shold be limited to pick up trusted devices. Protocols such as BACnet do allow for authentication with the device/sensor. Commercial 3rd party software or extensions to EdgeX (see, for example, RSA’s Netwitness IoT: https://www.netwitness.com/en-us/products/iot/) could be used to detect anomalous sensor/device communications and isolate the sensor from the system, but there is no ability in EdgeX directly to protect against a spoofed device/sensor that does not authenticate (which is the norm in some older OT protocols).
Mitigator:Adopter
Mitigation Status:Mitigation written

29. The Device/Sensor Data Store Could Be Corrupted  [State: Not Applicable]  [Priority: High] 

Category:Tampering
Description:Data flowing across query or actuation may be tampered with by an attacker. This may lead to corruption of Device/Sensor. Ensure the integrity of the data flow to the data store. I.e. - example: a man in the middle attack on the wire between EdgeX and the wired device/sensor or an attack on the sensor (giggling a vibration sensor)
Justification:<no mitigation provided>
Possible Mitigation:Outside influence on a sensor or device or intercept/use of the data to the device/sensor is one of the biggest threats to an edge system and one of the hardest to mitigate. If tampered with, a sensor or device could be used to send the wrong data (e.g., force a temp sensor to send a signal that it is too hot when it is really too cold), too much data (overwhelming the edge system by causing the sensor to send data too often), or not enough data (e.g., disconnecting a critical monitor sensor that would cause a system to stop). EdgeX has no means to protect the "wire" to a physically connected device/sensor. Physical security is required to protect the wire and mitigate this threat. Additional optional mitigation ideas require modifications to the EdgeX device service. The device service could be constructed to filter data to avoid the “too much” data DoS. The device service can be constructed to report and alert when there is not enough data coming from the device or sensor or the sensor/device appears to be offline (provided by the last connected tracking in EdgeX). Wrong data can be mitigated by having the device service look for expected ranges of values (as supported by min/max attributes on device profiles). All of these have limits and only mitigate the data from being used in the rest of EdgeX once received by the device service. Commercial 3rd party software or extensions to EdgeX (see, for example, RSA’s Netwitness IoT: https://www.netwitness.com/en-us/products/iot/) could also be used to detect anomalous sensor/device communications and isolate the sensor from the system.
Mitigator:Adopter
Mitigation Status:Cannot mitigate or not appilcable

30. Data Store Denies Device/Sensor Potentially Writing Data  [State: Mitigation Implemented]  [Priority: Low] 

Category:Repudiation
Description:Device/Sensor claims that it did not write data received from an entity on the other side of the trust boundary. Consider using logging or auditing to record the source, time, and summary of the received data.
Justification:<no mitigation provided>
Possible Mitigation:Use of elevated log level (set writable configuration log level to DEBUG in the device service) can be used to log all data communications.
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation reviewed

31. Data Flow Sniffing  [State: Not Applicable]  [Priority: High] 

Category:Information Disclosure
Description:Data flowing across query or actuation may be sniffed by an attacker. Depending on what type of data an attacker can read, it may be used to attack other parts of the system or simply be a disclosure of information leading to compliance violations. Consider encrypting the data flow.
Justification:<no mitigation provided>
Possible Mitigation:Securing the data flow to/from a device or sensor is dependent on the OT protocol. In the case of most simple and typically older OT protocols (Modbus or GPIO as examples), there is no way to secure the communications with the device/sensor under that protocol. Critical sensors/devices of this nature should be physically secured (along with their physical connection to the EdgeX host).
Mitigator:No mitigation or not applicable
Mitigation Status:Mitigation reviewed

32. Potential Excessive Resource Consumption for EdgeX Foundry or Device/Sensor  [State: Not Applicable]  [Priority: High] 

Category:Denial Of Service
Description:Does EdgeX Foundry or Device/Sensor take explicit steps to control resource consumption? Resource consumption attacks can be hard to deal with, and there are times that it makes sense to let the OS do the job. Be careful that your resource requests don't deadlock, and that they do timeout.
Justification:<no mitigation provided>
Possible Mitigation:EdgeX could send too many requests for data or actuation requests that cause the sensor / device to go offline or appear unresponsive - depending on the sophistication of the device/sensor. In the opposite direction, a device/sensor could be tampered with or improperly configured to send too much data (overwhelming the EdgeX system) causing a DoS. Other than writing the device service to filter data to avoid the “too much” data DoS, this threat is not mitigated.
Mitigator:No mitigation or not applicable
Mitigation Status:Mitigation reviewed

33. Data Flow query or actuation Is Potentially Interrupted  [State: Mitigation Implemented]  [Priority: High] 

Category:Denial Of Service
Description:An external agent interrupts data flowing across a trust boundary in either direction.
Justification:<no mitigation provided>
Possible Mitigation:Outside influence could break the communication connection or remove a device/senosr causing major disruption of service (ex: removing or cutting off comms to a critical temperature sensor of a heating or cooling machine). EdgeX has no means to protect the "wire" to a physically connected device/sensor. Physical security is required to protect the wire and mitigate this threat. Query or actuation requests that do not receive a response would result in an error that could be responded to.
Mitigator:Adopter
Mitigation Status:Mitigation reviewed

34. Data Store Inaccessible  [State: Mitigation Implemented]  [Priority: High] 

Category:Denial Of Service
Description:An external agent prevents access to a data store on the other side of the trust boundary.
Justification:<no mitigation provided>
Possible Mitigation:Outside influence could break the communication connection or remove a device/senosr causing major disruption of service (ex: removing or cutting off comms to a critical temperature sensor of a heating or cooling machine). EdgeX has no means to protect the "wire" to a physically connected device/sensor. Physical security is required to protect the wire and mitigate this threat. Query or actuation requests that do not receive a response would result in an error that could be responded to.
Mitigator:Adopter
Mitigation Status:Mitigation reviewed

Interaction: query or actuation

query or actuation interaction screenshot

35. Data Store Inaccessible  [State: Mitigation Implemented]  [Priority: High] 

Category:Denial Of Service
Description:An external agent prevents access to a data store on the other side of the trust boundary.
Justification:<no mitigation provided>
Possible Mitigation:Outside influence could break the communication connection or remove a device/senosr causing major disruption of service (ex: removing or cutting off comms to a critical temperature sensor of a heating or cooling machine). EdgeX has no means to protect the "wire" to a physically connected device/sensor. Physical security is required to protect the wire and mitigate this threat. Query or actuation requests that do not receive a response would result in an error that could be responded to.
Mitigator:Adopter
Mitigation Status:Mitigation needed

36. Data Flow query or actuation Is Potentially Interrupted  [State: Mitigation Implemented]  [Priority: High] 

Category:Denial Of Service
Description:An external agent interrupts data flowing across a trust boundary in either direction.
Justification:<no mitigation provided>
Possible Mitigation:Outside influence could break the communication connection or remove a device/senosr causing major disruption of service (ex: removing or cutting off comms to a critical temperature sensor of a heating or cooling machine). EdgeX has no means to protect the "wire" to a physically connected device/sensor. Physical security is required to protect the wire and mitigate this threat. Query or actuation requests that do not receive a response would result in an error that could be responded to.
Mitigator:Adopter
Mitigation Status:Mitigation reviewed

37. Potential Excessive Resource Consumption for EdgeX Foundry or Device/Sensor (physically connected authenticated)  [State: Mitigation Implemented]  [Priority: High] 

Category:Denial Of Service
Description:Does EdgeX Foundry or Device/Sensor (physically connected authenticated) take explicit steps to control resource consumption? Resource consumption attacks can be hard to deal with, and there are times that it makes sense to let the OS do the job. Be careful that your resource requests don't deadlock, and that they do timeout.
Justification:<no mitigation provided>
Possible Mitigation:EdgeX could send too many requests for data or actuation requests that cause the sensor / device to go offline or appear unresponsive - depending on the sophistication of the device/sensor. In the opposite direction, a device/sensor could be tampered with or improperly configured to send too much data (overwhelming the EdgeX system) causing a DoS. Other than writing the device service to filter data to avoid the “too much” data DoS, this threat is not mitigated.
Mitigator:Adopter
Mitigation Status:Mitigation reviewed

38. Data Flow Sniffing  [State: Not Applicable]  [Priority: High] 

Category:Information Disclosure
Description:Data flowing across query or actuation may be sniffed by an attacker. Depending on what type of data an attacker can read, it may be used to attack other parts of the system or simply be a disclosure of information leading to compliance violations. Consider encrypting the data flow.
Justification:<no mitigation provided>
Possible Mitigation:Securing the data flow to/from a device or sensor is dependent on the OT protocol. In the case of something like BACnet secure (which is based on TLS - see https://www.bacnetinternational.org/page/secureconnect), the flow between EdgeX and the BACnet device can be encryped. The Device Service would need to be written to use that secure communications. In cases where there is no way to secure the communications with the device/sensor under that protocol, then mitigation is via physical security of the device/sensor (along with their connection to the EdgeX host).
Mitigator:No mitigation or not applicable
Mitigation Status:Mitigation reviewed

39. Data Store Denies Device/Sensor (physically connected authenticated) Potentially Writing Data  [State: Mitigation Implemented]  [Priority: Low] 

Category:Repudiation
Description:Device/Sensor (physically connected authenticated) claims that it did not write data received from an entity on the other side of the trust boundary. Consider using logging or auditing to record the source, time, and summary of the received data.
Justification:<no mitigation provided>
Possible Mitigation:Use of elevated log level (set writable configuration log level to DEBUG in the device service) can be used to log all data communications.
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation reviewed

40. The Device/Sensor (physically connected authenticated) Data Store Could Be Corrupted  [State: Mitigation Implemented]  [Priority: High] 

Category:Tampering
Description:Data flowing across query or actuation may be tampered with by an attacker. This may lead to corruption of Device/Sensor (physically connected authenticated). Ensure the integrity of the data flow to the data store.
Justification:<no mitigation provided>
Possible Mitigation:With authentication and encrypting the data between EdgeX and the device/sensor (ex: using TLS), the data on the wire can be protected. The physcial security of the device/sensor still needs to be achieved to protect someone tampering with the device/sensor (ex: holding a match to a thermostat). As with device/sensors that are not authenticated, additional optional mitigation ideas to mitigate unprotected devices/sensors require modifications to the EdgeX device service. The device service could be constructed to filter data or report and alert when there is not enough data coming from the device or sensor or the sensor/device appears to be offline. Wrong data can be mitigated by having the device service look for expected ranges of values (as supported by min/max attributes on device profiles). All of these have limits and only mitigate the data from being used in the rest of EdgeX once received by the device service. Commercial 3rd party software or extensions to EdgeX (see, for example, RSA’s Netwitness IoT: https://www.netwitness.com/en-us/products/iot/) could also be used to detect anomalous sensor/device communications and isolate the sensor from the system.
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation needed

41. Spoofing of Destination Data Store Device/Sensor (physically connected authenticated)  [State: Mitigation Implemented]  [Priority: High] 

Category:Spoofing
Description:Device/Sensor (physically connected authenticated) may be spoofed by an attacker and this may lead to data being written to the attacker's target instead of Device/Sensor (physically connected authenticated). Consider using a standard authentication mechanism to identify the destination data store.
Justification:<no mitigation provided>
Possible Mitigation:With authentication protocol in place (as examplified by BACnet secured or ONVIF cameras with security on), the spoofing device or sensor would not be able to properly authenticated and thereby be denied the ability to send data, be queried. The EdgeX framework has the support to store secrets to authenticate devices.
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation reviewed

42. Spoofing the EdgeX Foundry Process  [State: Mitigation Implemented]  [Priority: High] 

Category:Spoofing
Description:EdgeX Foundry may be spoofed by an attacker and this may lead to unauthorized access to Device/Sensor (physically connected authenticated). Consider using a standard authentication mechanism to identify the source process.
Justification:<no mitigation provided>
Possible Mitigation:With authentication protocol in place (as examplified by BACnet secured or ONVIF cameras with security on), the device would not get the proper authenticated requests and thereby deny any query or actuation request.
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation reviewed

Interaction: read

read interaction screenshot

43. Spoofing of Destination Data Store Configuration Files  [State: Mitigation Implemented]  [Priority: Low] 

Category:Spoofing
Description:Configuration Files may be spoofed by an attacker and this may lead to data being written to the attacker's target instead of Configuration Files. Consider using a standard authentication mechanism to identify the destination data store.
Justification:<no mitigation provided>
Possible Mitigation:Configuration files are used to seed EdgeX configuration service (core-keeper) before the services are started. Configuration files are made part of the service container (deployed with the container image). The only way to spoof the file is to replace the entire service container with new configuration or to transplant new configuration in the container - both require privileaged access to the host. Additional mitigation when running EdgeX in rootless Docker: the Docker daemon, container processes and bind-mounted volumes are owned by an unprivileged host user rather than root. A compromised container that escapes its namespace inherits only that unprivileged user's permissions, so it cannot read or overwrite configuration files baked into other service containers, replace a service image on disk, or transplant configuration into a running container without first compromising the rootless-Docker user account itself. See https://docs.edgexfoundry.org/4.1/security/Rootless-Docker/. Additional mitigation when EdgeX container images are signed (e.g., Sigstore/cosign, Docker Content Trust or Notary v2) and signature verification is enforced at pull or admission time: the supply-chain path for introducing a tampered or imposter image is closed, provided the signing key is rooted in an HSM or KMS and verification is policy-enforced by the runtime. Signing does not prevent exploitation of a flaw inside a legitimately signed image; pair it with SBOM and SLSA provenance attestations and timely patching. See https://www.sigstore.dev/ and https://docs.docker.com/engine/security/trust/.
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation reviewed

44. Potential Excessive Resource Consumption for EdgeX Foundry or Configuration Files  [State: Mitigation Implemented]  [Priority: Low] 

Category:Denial Of Service
Description:Does EdgeX Foundry or Configuration Files take explicit steps to control resource consumption? Resource consumption attacks can be hard to deal with, and there are times that it makes sense to let the OS do the job. Be careful that your resource requests don't deadlock, and that they do timeout.
Justification:<no mitigation provided>
Possible Mitigation:Config file does not consume resources other than file space. Configuration file is deployed with the service container and therefore, without access to the host and Docker, its size is controlled.
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation reviewed

Interaction: request

request interaction screenshot

45. Elevation Using Impersonation  [State: Mitigation Implemented]  [Priority: Low] 

Category:Elevation Of Privilege
Description:EdgeX Foundry may be able to impersonate the context of Nginx in order to gain additional privilege.
Justification:<no mitigation provided>
Possible Mitigation:There is no current ability to authenticate Nginx as a caller of EdgeX services from any other local process on the system. However, Impersonating EdgeX would require access to the host system and the Docker network. With this access, many other severe issues could occur (stopping the system, sending incorrect data, etc.). Additional mitigation when running EdgeX in rootless Docker: impersonating an EdgeX service from another local process requires access to the host system and the Docker network. Under rootless Docker the daemon, its socket (/run/user/<uid>/docker.sock) and the bridge network are owned by an unprivileged user, and a compromised container cannot escalate to host root to attach to that network or manipulate other containers. The attacker must first compromise the specific unprivileged user that owns the rootless daemon, raising the bar significantly compared with rootful deployments. See https://docs.edgexfoundry.org/4.1/security/Rootless-Docker/. Additional mitigation when EdgeX container images are signed (e.g., Sigstore/cosign, Docker Content Trust or Notary v2) and signature verification is enforced at pull or admission time: the supply-chain path for introducing a tampered or imposter image is closed, provided the signing key is rooted in an HSM or KMS and verification is policy-enforced by the runtime. Signing does not prevent exploitation of a flaw inside a legitimately signed image; pair it with SBOM and SLSA provenance attestations and timely patching. See https://www.sigstore.dev/ and https://docs.docker.com/engine/security/trust/.
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation written

46. Spoofing the Nginx External Entity  [State: Mitigation Implemented]  [Priority: Low] 

Category:Spoofing
Description:Nginx may be spoofed by an attacker and this may lead to unauthorized access to EdgeX Foundry. Consider using a standard authentication mechanism to identify the external entity.
Justification:<no mitigation provided>
Possible Mitigation:If someone was able to provide a container that was spoofing as Nginx, the service would not know that the response came from something other than Nginx. I.e. - there is no current ability to authenticate Nginx as a caller of EdgeX services from any other local process on the system. However, Nginx is run as a container on the EdgeX Docker network. Replacing/spoofing the Nginx container would require privileaged (root) access to the host. Additional adopter mitigation would include putting TLS in place between EdgeX and Nginx (with TLS cert in place). A spoofing service (in this case Nginx), would not have the appropriate cert in place to participate in the communications. Additional mitigation when EdgeX container images are signed (e.g., with Sigstore/cosign, Docker Content Trust or Notary v2) and signature verification is enforced at pull or admission time: an attacker cannot substitute a tampered or imposter image for the Nginx API-gateway container via a compromised registry, a man-in-the-middle of `docker pull`, or a tampered local image cache. The signing key must be protected by an HSM or KMS and verification must be enforced by the runtime (for example a cosign policy controller or content-trust-enabled daemon). Image signing covers image authenticity only; pair it with SBOM and SLSA provenance attestations for build-time integrity and with timely patching, because a legitimately signed image with an exploitable flaw is still exploitable. See https://www.sigstore.dev/ and https://docs.docker.com/engine/security/trust/.
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation written

Interaction: request

request interaction screenshot

47. Weakness in SSO Authorization  [State: Mitigation Implemented]  [Priority: Low] 

Category:Elevation Of Privilege
Description:Common SSO implementations such as OAUTH2 and OAUTH Wrap are vulnerable to MitM attacks.
Justification:<no mitigation provided>
Possible Mitigation:In EdgeX, Nginx is configured to use JWT token authentication. OAUTH2 and OAUTH are not allowed as of EdgeX v4 (Ireland release - see https://docs.edgexfoundry.org/4.0/security/Ch-APIGateway/#configuration-of-jwt-authentication-for-api-gateway). JWT token expires in one hour by default.
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation written

48. Data Flow request Is Potentially Interrupted  [State: Mitigation Implemented]  [Priority: Low] 

Category:Denial Of Service
Description:An external agent interrupts data flowing across a trust boundary in either direction.
Justification:<no mitigation provided>
Possible Mitigation:Nginx can be configured the rate limiting to prevent a DoS attack. See https://blog.nginx.org/blog/rate-limiting-nginx
Mitigator:Third Party
Mitigation Status:Mitigation written

49. External Entity Nginx Potentially Denies Receiving Data  [State: Not Applicable]  [Priority: Low] 

Category:Repudiation
Description:Nginx claims that it did not receive data from a process on the other side of the trust boundary. Consider using logging or auditing to record the source, time, and summary of the received data.
Justification:<no mitigation provided>
Possible Mitigation:Nginx provides logging, but if it did not see a request from a browser or API caller like Postman, then nothing gets issued to EdgeX.
Mitigator:No mitigation or not applicable
Mitigation Status:Cannot mitigate or not appilcable

Interaction: response

response interaction screenshot

50. Weakness in SSO Authorization  [State: Mitigation Implemented]  [Priority: Low] 

Category:Elevation Of Privilege
Description:Common SSO implementations such as OAUTH2 and OAUTH Wrap are vulnerable to MitM attacks.
Justification:<no mitigation provided>
Possible Mitigation:In EdgeX, Nginx is configured to use JWT token authentication. OAUTH2 and OAUTH are not allowed as of EdgeX v4 (see https://docs.edgexfoundry.org/4.0/security/Ch-APIGateway/#configuration-of-jwt-authentication-for-api-gateway). JWT token expires in one hour by default.
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation written

Interaction: response

response interaction screenshot

51. Data Flow response Is Potentially Interrupted  [State: Mitigation Implemented]  [Priority: Low] 

Category:Denial Of Service
Description:An external agent interrupts data flowing across a trust boundary in either direction.
Justification:<no mitigation provided>
Possible Mitigation:Nginx can be configured the rate limiting to prevent a DoS attack. See https://blog.nginx.org/blog/rate-limiting-nginx
Mitigator:Third Party
Mitigation Status:Mitigation written

52. External Entity Browser/API Caller Potentially Denies Receiving Data  [State: Mitigation Implemented]  [Priority: Low] 

Category:Repudiation
Description:Browser/API Caller claims that it did not receive data from a process on the other side of the trust boundary. Consider using logging or auditing to record the source, time, and summary of the received data.
Justification:<no mitigation provided>
Possible Mitigation:Nginx provides logging to document all requests.
Mitigator:Third Party
Mitigation Status:Mitigation written

Interaction: sensor data

sensor data interaction screenshot

53. Spoofing the EdgeX Foundry Process  [State: Not Applicable]  [Priority: High] 

Category:Spoofing
Description:EdgeX Foundry may be spoofed by an attacker and this may lead to information disclosure by Device/Sensor. Consider using a standard authentication mechanism to identify the destination process.
Justification:<no mitigation provided>
Possible Mitigation:Without an authentication protocol, there is no mitigation for this threat. The device would not be able to determine that the Spoofing EdgeX caller is not EdgeX.
Mitigator:No mitigation or not applicable
Mitigation Status:Cannot mitigate or not appilcable

54. Spoofing of Source Data Store Device/Sensor  [State: Not Applicable]  [Priority: High] 

Category:Spoofing
Description:Device/Sensor may be spoofed by an attacker and this may lead to incorrect data delivered to EdgeX Foundry. Consider using a standard authentication mechanism to identify the source data store.
Justification:<no mitigation provided>
Possible Mitigation:Due to the nature of many protocols, an outside agent could spoof as a ligitimage device/sensor. This is of particular concern if the device service auto provisions the devices/sensors without any authentication. Auto provisioning shold be limited to pick up trusted devices. Protocols such as BACnet do allow for authentication with the device/sensor. Commercial 3rd party software or extensions to EdgeX (see, for example, RSA’s Netwitness IoT: https://www.netwitness.com/en-us/products/iot/) could be used to detect anomalous sensor/device communications and isolate the sensor from the system, but there is no ability in EdgeX directly to protect against a spoofed device/sensor that does not authenticate (which is the norm in some older OT protocols).
Mitigator:No mitigation or not applicable
Mitigation Status:Mitigation reviewed

55. Potential Data Repudiation by EdgeX Foundry  [State: Mitigation Implemented]  [Priority: Low] 

Category:Repudiation
Description:EdgeX Foundry claims that it did not receive data from a source outside the trust boundary. Consider using logging or auditing to record the source, time, and summary of the received data.
Justification:<no mitigation provided>
Possible Mitigation:Use of elevated log level (set writable configuration log level to DEBUG in the device service) can be used to log all data communications.
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation reviewed

56. Weak Access Control for a Resource  [State: Not Applicable]  [Priority: High] 

Category:Information Disclosure
Description:Improper data protection of Device/Sensor can allow an attacker to read information not intended for disclosure. Review authorization settings.
Justification:<no mitigation provided>
Possible Mitigation:Securing the data flow to/from a device or sensor is dependent on the OT protocol. In the case of most simple and typically older OT protocols (Modbus or GPIO as examples), there is no way to secure the communications with the device/sensor under that protocol. Critical sensors/devices of this nature should be physically secured (along with their physical connection to the EdgeX host).
Mitigator:No mitigation or not applicable
Mitigation Status:Mitigation reviewed

57. Potential Process Crash or Stop for EdgeX Foundry  [State: Mitigation Implemented]  [Priority: Medium] 

Category:Denial Of Service
Description:EdgeX Foundry crashes, halts, stops or runs slowly; in all cases violating an availability metric.
Justification:<no mitigation provided>
Possible Mitigation:Stopping EdgeX services requires host access (and access to the Docker engine, Docker containers and Docker network) with eleveated privileges or access to the EdgeX system management APIs (requiring the Nginx JWT token).
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation reviewed

58. Data Flow sensor data Is Potentially Interrupted  [State: Mitigation Implemented]  [Priority: High] 

Category:Denial Of Service
Description:An external agent interrupts data flowing across a trust boundary in either direction.
Justification:<no mitigation provided>
Possible Mitigation:Outside influence could break the communication connection or remove a device/senosr causing major disruption of service (ex: removing or cutting off comms to a critical temperature sensor of a heating or cooling machine). EdgeX has no means to protect the "wire" to a physically connected device/sensor. Physical security is required to protect the wire and device/sensor and mitigate this threat. The device service does track "last connected" and that timestamp could be monitored for outside of normal reporting ranges.
Mitigator:Adopter
Mitigation Status:Mitigation reviewed

59. Data Store Inaccessible  [State: Mitigation Implemented]  [Priority: High] 

Category:Denial Of Service
Description:An external agent prevents access to a data store on the other side of the trust boundary.
Justification:<no mitigation provided>
Possible Mitigation:Outside influence could break the communication connection or remove a device/senosr causing major disruption of service (ex: removing or cutting off comms to a critical temperature sensor of a heating or cooling machine). EdgeX has no means to protect the "wire" to a physically connected device/sensor. Physical security is required to protect the wire and device/sensor and mitigate this threat. The device service does track "last connected" and that timestamp could be monitored for outside of normal reporting ranges.
Mitigator:Adopter
Mitigation Status:Mitigation reviewed

60. EdgeX Foundry May be Subject to Elevation of Privilege Using Remote Code Execution  [State: Not Applicable]  [Priority: Low] 

Category:Elevation Of Privilege
Description:Device/Sensor may be able to remotely execute code for EdgeX Foundry.
Justification:<no mitigation provided>
Possible Mitigation:EdgeX does not execute random code based on input from a device or sensor (as if it was from a web application with something like unsanitized inputs). All data is santized by extracting expected data values from the sensor input data, creating an EdgeX event/reading message and sending that into the rest of EdgeX. The data coming from a sensor could be used to kill the service (ex: buffer overflow attack and sending too much data for the service to consume for example - see DoS threats). The device service in EdgeX can be written to reject to large of a request (for example). In some cases, a protocol may offer dual authentication, and if used, help to mitigate RCE. Additional mitigation when running EdgeX in rootless Docker: even if remote code execution succeeds inside a service container, the attacker only obtains the privileges of the unprivileged host user that owns the rootless-Docker daemon, via user-namespace UID remapping. UID 0 inside the container is not UID 0 on the host, so post-exploit actions that normally rely on host root - loading kernel modules, attaching to other containers' processes, mounting host paths, opening raw sockets, or modifying system services - are blocked even after a successful container escape. See https://docs.edgexfoundry.org/4.1/security/Rootless-Docker/.
Mitigator:No mitigation or not applicable
Mitigation Status:Cannot mitigate or not appilcable

61. Elevation by Changing the Execution Flow in EdgeX Foundry  [State: Mitigation Implemented]  [Priority: High] 

Category:Elevation Of Privilege
Description:An attacker may pass data into EdgeX Foundry in order to change the flow of program execution within EdgeX Foundry to the attacker's choosing.
Justification:<no mitigation provided>
Possible Mitigation:Outside influence on a sensor or device is one of the biggest threats to an edge system and one of the hardest to mitigate. If tampered with, a sensor or device could be used to send the wrong data (e.g., force a temp sensor to send a signal that it is too hot when it is really too cold). EdgeX has no means to protect the "wire" to a physically connected device/sensor. Physical security is required to protect the wire and device/sensor and mitigate this threat. Wrong data can be mitigated by having the device service look for expected ranges of values (as supported by min/max attributes on device profiles). Commercial 3rd party software or extensions to EdgeX (see, for example, RSA’s Netwitness IoT: https://www.netwitness.com/en-us/products/iot/) could be used to detect anomalous sensor/device communications and isolate the sensor from the system. Additional mitigation when running EdgeX in rootless Docker: even if remote code execution succeeds inside a service container, the attacker only obtains the privileges of the unprivileged host user that owns the rootless-Docker daemon, via user-namespace UID remapping. UID 0 inside the container is not UID 0 on the host, so post-exploit actions that normally rely on host root - loading kernel modules, attaching to other containers' processes, mounting host paths, opening raw sockets, or modifying system services - are blocked even after a successful container escape. See https://docs.edgexfoundry.org/4.1/security/Rootless-Docker/.
Mitigator:Adopter
Mitigation Status:Mitigation reviewed

Interaction: sensor data

sensor data interaction screenshot

62. External Entity Megaservice - Cloud or Enterprise Potentially Denies Receiving Data  [State: Mitigation Implemented]  [Priority: Low] 

Category:Repudiation
Description:Megaservice - Cloud or Enterprise claims that it did not receive data from a process on the other side of the trust boundary. Consider using logging or auditing to record the source, time, and summary of the received data.
Justification:<no mitigation provided>
Possible Mitigation:Application services can use elevated log level to log all exports.
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation written

63. Spoofing of the Megaservice - Cloud or Enterprise External Destination Entity  [State: Not Applicable]  [Priority: Low] 

Category:Spoofing
Description:Megaservice - Cloud or Enterprise may be spoofed by an attacker and this may lead to data being sent to the attacker's target instead of Megaservice - Cloud or Enterprise. Consider using a standard authentication mechanism to identify the external entity.
Justification:<no mitigation provided>
Possible Mitigation:Spoofing as the browser or any tool or system of EdgeX is immaterial. Any browser or API tool like Postman would need to request access using the API gateway token. With the token, they are considered a legitimate user of EdgeX. In the case of a megacloud or enterprise, most communication is from EdgeX to that system vs sending requests to EdgeX (as an export)
Mitigator:No mitigation or not applicable
Mitigation Status:Cannot mitigate or not appilcable

64. Data Flow sensor data Is Potentially Interrupted  [State: Mitigation Implemented]  [Priority: Low] 

Category:Denial Of Service
Description:An external agent interrupts data flowing across a trust boundary in either direction.
Justification:<no mitigation provided>
Possible Mitigation:Data flow is in one direction (exporting from EdgeX to the cloud). If the data is deemed critical and if by some means the data flow was interrupted, then store and forward mechisms in EdgeX allow the data to be sent once the communications are re-established. If using MQTT, the quality of service (QoS) setting on a message broker can also be used to ensure all data is delivered or it is resent later.
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation written

Interaction: sensor data

sensor data interaction screenshot

65. Data Flow sensor data Is Potentially Interrupted  [State: Mitigation Implemented]  [Priority: Low] 

Category:Denial Of Service
Description:An external agent interrupts data flowing across a trust boundary in either direction.
Justification:<no mitigation provided>
Possible Mitigation:Data flow is in one direction (exporting from EdgeX to the external message bus). If the data is deemed critical and if by some means the data flow was interrupted, store and forward mechisms in EdgeX allow the data to be sent once the communications are re-established. If using MQTT, the quality of service (QoS) setting on a message broker can also be used to ensure all data is delivered or it is resent later.
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation written

66. External Entity Message Topic Potentially Denies Receiving Data  [State: Mitigation Implemented]  [Priority: Low] 

Category:Repudiation
Description:Message Topic claims that it did not receive data from a process on the other side of the trust boundary. Consider using logging or auditing to record the source, time, and summary of the received data.
Justification:<no mitigation provided>
Possible Mitigation:Application services can use elevated log level to log all exports.
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation written

67. Spoofing of the Message Topic External Destination Entity  [State: Not Applicable]  [Priority: Low] 

Category:Spoofing
Description:Message Topic may be spoofed by an attacker and this may lead to data being sent to the attacker's target instead of Message Topic. Consider using a standard authentication mechanism to identify the external entity.
Justification:<no mitigation provided>
Possible Mitigation:Spoofing as the browser or any tool or system of EdgeX is immaterial. Any browser or API tool like Postman would need to request access using the API gateway token. With the token, they are considered a legitimate user of EdgeX. In the case of an external message bus, most communication is from EdgeX to that system vs sending requests to EdgeX (as an export).
Mitigator:No mitigation or not applicable
Mitigation Status:Cannot mitigate or not appilcable

Interaction: sensor data

sensor data interaction screenshot

68. Spoofing the EdgeX Foundry Process  [State: Mitigation Implemented]  [Priority: High] 

Category:Spoofing
Description:EdgeX Foundry may be spoofed by an attacker and this may lead to information disclosure by Device/Sensor (physically connected authenticated). Consider using a standard authentication mechanism to identify the destination process.
Justification:<no mitigation provided>
Possible Mitigation:With authentication protocol in place (as examplified by BACnet secured or ONVIF cameras with security on), the device would not get the proper authenticated requests and thereby deny any query or actuation request.
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation needed

69. Spoofing of Source Data Store Device/Sensor (physically connected authenticated)  [State: Mitigation Implemented]  [Priority: High] 

Category:Spoofing
Description:Device/Sensor (physically connected authenticated) may be spoofed by an attacker and this may lead to incorrect data delivered to EdgeX Foundry. Consider using a standard authentication mechanism to identify the source data store.
Justification:<no mitigation provided>
Possible Mitigation:With authentication protocol in place (as examplified by BACnet secured or ONVIF cameras with security on), the spoofing device or sensor would not be able to properly authenticated and thereby be denied the ability to send data, be queried. The EdgeX framework has the support to store secrets to authenticate devices.
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation reviewed

70. Potential Data Repudiation by EdgeX Foundry  [State: Mitigation Implemented]  [Priority: High] 

Category:Repudiation
Description:EdgeX Foundry claims that it did not receive data from a source outside the trust boundary. Consider using logging or auditing to record the source, time, and summary of the received data.
Justification:<no mitigation provided>
Possible Mitigation:Use of elevated log level (set writable configuration log level to DEBUG in the device service) can be used to log all data communications.
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation reviewed

71. Weak Access Control for a Resource  [State: Not Applicable]  [Priority: High] 

Category:Information Disclosure
Description:Improper data protection of Device/Sensor (physically connected authenticated) can allow an attacker to read information not intended for disclosure. Review authorization settings.
Justification:<no mitigation provided>
Possible Mitigation:Securing the data flow to/from a device or sensor is dependent on the OT protocol. In the case of something like BACnet secure (which is based on TLS - see https://www.bacnetinternational.org/page/secureconnect), the flow between EdgeX and the BACnet device can be encryped. The Device Service would need to be written to use that secure communications. In cases where there is no way to secure the communications with the device/sensor under that protocol, then mitigation is via physical security of the device/sensor (along with their connection to the EdgeX host).
Mitigator:No mitigation or not applicable
Mitigation Status:Mitigation reviewed

72. Potential Process Crash or Stop for EdgeX Foundry  [State: Mitigation Implemented]  [Priority: Medium] 

Category:Denial Of Service
Description:EdgeX Foundry crashes, halts, stops or runs slowly; in all cases violating an availability metric.
Justification:<no mitigation provided>
Possible Mitigation:Stopping EdgeX services requires host access (and access to the Docker engine, Docker containers and Docker network) with eleveated privileges.
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation reviewed

73. Data Flow sensor data Is Potentially Interrupted  [State: Mitigation Implemented]  [Priority: High] 

Category:Denial Of Service
Description:An external agent interrupts data flowing across a trust boundary in either direction.
Justification:<no mitigation provided>
Possible Mitigation:Outside influence could break the communication connection or remove a device/senosr causing major disruption of service (ex: removing or cutting off comms to a critical temperature sensor of a heating or cooling machine). EdgeX has no means to protect the "wire" to a physically connected device/sensor. Physical security is required to protect the wire and device/sensor and mitigate this threat. The device service does track "last connected" and that timestamp could be monitored for outside of normal reporting ranges.
Mitigator:Adopter
Mitigation Status:Mitigation reviewed

74. Data Store Inaccessible  [State: Mitigation Implemented]  [Priority: High] 

Category:Denial Of Service
Description:An external agent prevents access to a data store on the other side of the trust boundary.
Justification:<no mitigation provided>
Possible Mitigation:Outside influence could break the communication connection or remove a device/senosr causing major disruption of service (ex: removing or cutting off comms to a critical temperature sensor of a heating or cooling machine). EdgeX has no means to protect the "wire" to a physically connected device/sensor. Physical security is required to protect the wire and device/sensor and mitigate this threat. The device service does track "last connected" and that timestamp could be monitored for outside of normal reporting ranges.
Mitigator:Adopter
Mitigation Status:Mitigation reviewed

75. EdgeX Foundry May be Subject to Elevation of Privilege Using Remote Code Execution  [State: Not Applicable]  [Priority: Low] 

Category:Elevation Of Privilege
Description:Device/Sensor (physically connected authenticated) may be able to remotely execute code for EdgeX Foundry.
Justification:<no mitigation provided>
Possible Mitigation:EdgeX does not execute random code based on input from a device or sensor (as if it was from a web application with something like unsanitized inputs). All data is santized by extracting expected data values from the sensor input data, creating an EdgeX event/reading message and sending that into the rest of EdgeX. The data coming from a sensor could be used to kill the service (ex: buffer overflow attack and sending too much data for the service to consume for example - see DoS threats). The device service in EdgeX can be written to reject to large of a request (for example). In some cases, a protocol may offer dual authentication, and if used, help to mitigate RCE Additional mitigation when running EdgeX in rootless Docker: even if remote code execution succeeds inside a service container, the attacker only obtains the privileges of the unprivileged host user that owns the rootless-Docker daemon, via user-namespace UID remapping. UID 0 inside the container is not UID 0 on the host, so post-exploit actions that normally rely on host root - loading kernel modules, attaching to other containers' processes, mounting host paths, opening raw sockets, or modifying system services - are blocked even after a successful container escape. See https://docs.edgexfoundry.org/4.1/security/Rootless-Docker/. Additional mitigation when EdgeX container images are signed and signature verification is enforced at pull or admission time (e.g., Sigstore/cosign with a policy controller, or a content-trust-enabled daemon): the supply-chain path for introducing a backdoored or maliciously rebuilt image is closed, provided the signing key is protected by an HSM or KMS. Signing does not prevent exploitation of a flaw inside a legitimately signed image, so it must be combined with SBOM and SLSA provenance attestations, vulnerability scanning of the signed artifact, and timely patching. See https://www.sigstore.dev/.
Mitigator:No mitigation or not applicable
Mitigation Status:Cannot mitigate or not appilcable

76. Elevation by Changing the Execution Flow in EdgeX Foundry  [State: Mitigation Implemented]  [Priority: High] 

Category:Elevation Of Privilege
Description:An attacker may pass data into EdgeX Foundry in order to change the flow of program execution within EdgeX Foundry to the attacker's choosing.
Justification:<no mitigation provided>
Possible Mitigation:Outside influence on a sensor or device is one of the biggest threats to an edge system and one of the hardest to mitigate. If tampered with, a sensor or device could be used to send the wrong data (e.g., force a temp sensor to send a signal that it is too hot when it is really too cold). EdgeX has no means to protect the "wire" to a physically connected device/sensor. Physical security is required to protect the wire and device/sensor and mitigate this threat. Wrong data can be mitigated by having the device service look for expected ranges of values (as supported by min/max attributes on device profiles). Commercial 3rd party software or extensions to EdgeX (see, for example, RSA’s Netwitness IoT: https://www.netwitness.com/en-us/products/iot/) could be used to detect anomalous sensor/device communications and isolate the sensor from the system. Additional mitigation when running EdgeX in rootless Docker: even if remote code execution succeeds inside a service container, the attacker only obtains the privileges of the unprivileged host user that owns the rootless-Docker daemon, via user-namespace UID remapping. UID 0 inside the container is not UID 0 on the host, so post-exploit actions that normally rely on host root - loading kernel modules, attaching to other containers' processes, mounting host paths, opening raw sockets, or modifying system services - are blocked even after a successful container escape. See https://docs.edgexfoundry.org/4.1/security/Rootless-Docker/. Additional mitigation when EdgeX container images are signed and signature verification is enforced at pull or admission time (e.g., Sigstore/cosign with a policy controller, or a content-trust-enabled daemon): the supply-chain path for introducing a backdoored or maliciously rebuilt image is closed, provided the signing key is protected by an HSM or KMS. Signing does not prevent exploitation of a flaw inside a legitimately signed image, so it must be combined with SBOM and SLSA provenance attestations, vulnerability scanning of the signed artifact, and timely patching. See https://www.sigstore.dev/.
Mitigator:Adopter
Mitigation Status:Mitigation reviewed

Interaction: sensor data

sensor data interaction screenshot

77. Spoofing of Source Data Store Device/Sensor (REST authenticated)  [State: Mitigation Implemented]  [Priority: Low] 

Category:Spoofing
Description:Device/Sensor (REST authenticated) may be spoofed by an attacker and this may lead to incorrect data delivered to Nginx. Consider using a standard authentication mechanism to identify the source data store.
Justification:<no mitigation provided>
Possible Mitigation:With authentication in place the REST caller would not get the proper authenticated by a spoofed Nginx and thereby deny any query request.
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation reviewed

78. External Entity Nginx Potentially Denies Receiving Data  [State: Mitigation Implemented]  [Priority: Low] 

Category:Repudiation
Description:Nginx claims that it did not receive data from a process on the other side of the trust boundary. Consider using logging or auditing to record the source, time, and summary of the received data.
Justification:<no mitigation provided>
Possible Mitigation:Use of elevated log level (set writable configuration log level to DEBUG in the device service) can be used to log all data communications.
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation reviewed

79. Weak Access Control for a Resource  [State: Mitigation Implemented]  [Priority: High] 

Category:Information Disclosure
Description:Improper data protection of Device/Sensor (REST authenticated) can allow an attacker to read information not intended for disclosure. Review authorization settings.
Justification:<no mitigation provided>
Possible Mitigation:REST requests and responses to/through Nginx are encrypted by default.
Mitigator:Third Party
Mitigation Status:Mitigation reviewed

80. Data Flow sensor data Is Potentially Interrupted  [State: Mitigation Implemented]  [Priority: Low] 

Category:Denial Of Service
Description:An external agent interrupts data flowing across a trust boundary in either direction.
Justification:<no mitigation provided>
Possible Mitigation:Nginx can be configured rate limiting to prevent a DoS attack. See https://blog.nginx.org/blog/rate-limiting-nginx
Mitigator:Third Party
Mitigation Status:Mitigation written

81. Data Store Inaccessible  [State: Mitigation Implemented]  [Priority: Medium] 

Category:Denial Of Service
Description:An external agent prevents access to a data store on the other side of the trust boundary.
Justification:<no mitigation provided>
Possible Mitigation:Outside influence could break the network communication connection causing major disruption of service (ex: removing or cutting off comms to a critical temperature resource of a heating or cooling machine). EdgeX has no means to protect the network connection. Physical security is required to protect the wire and device/sensor and mitigate this threat. The device service does track "last connected" and that timestamp could be monitored for outside of normal reporting ranges.
Mitigator:Adopter
Mitigation Status:Mitigation written

82. Weakness in SSO Authorization  [State: Mitigation Implemented]  [Priority: High] 

Category:Elevation Of Privilege
Description:Common SSO implementations such as OAUTH2 and OAUTH Wrap are vulnerable to MitM attacks.
Justification:<no mitigation provided>
Possible Mitigation:In EdgeX, Nginx is configured to use JWT token authentication. OAUTH2 and OAUTH are not allowed as of EdgeX v4 (see https://docs.edgexfoundry.org/4.0/security/Ch-APIGateway/#configuration-of-jwt-authentication-for-api-gateway). JWT token expires in one hour by default.
Mitigator:Third Party
Mitigation Status:Mitigation written

Interaction: sensor data

sensor data interaction screenshot

83. Elevation by Changing the Execution Flow in EdgeX Foundry  [State: Mitigation Implemented]  [Priority: Low] 

Category:Elevation Of Privilege
Description:An attacker may pass data into EdgeX Foundry in order to change the flow of program execution within EdgeX Foundry to the attacker's choosing.
Justification:<no mitigation provided>
Possible Mitigation:Access to publish data through the external MQTT broker is protected with authentication. Wrong data can also be mitigated by having the device service look for expected ranges of values (as supported by min/max attributes on device profiles). Commercial 3rd party software or extensions to EdgeX (see, for example, RSA’s Netwitness IoT: https://www.netwitness.com/en-us/products/iot/) could be used to detect anomalous sensor/device communications and isolate the sensor from the system. Additional mitigation when running EdgeX in rootless Docker: even if remote code execution succeeds inside a service container, the attacker only obtains the privileges of the unprivileged host user that owns the rootless-Docker daemon, via user-namespace UID remapping. UID 0 inside the container is not UID 0 on the host, so post-exploit actions that normally rely on host root - loading kernel modules, attaching to other containers' processes, mounting host paths, opening raw sockets, or modifying system services - are blocked even after a successful container escape. See https://docs.edgexfoundry.org/4.1/security/Rootless-Docker/. Additional mitigation when EdgeX container images are signed and signature verification is enforced at pull or admission time (e.g., Sigstore/cosign with a policy controller, or a content-trust-enabled daemon): the supply-chain path for introducing a backdoored or maliciously rebuilt image is closed, provided the signing key is protected by an HSM or KMS. Signing does not prevent exploitation of a flaw inside a legitimately signed image, so it must be combined with SBOM and SLSA provenance attestations, vulnerability scanning of the signed artifact, and timely patching. See https://www.sigstore.dev/.
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation reviewed

84. EdgeX Foundry May be Subject to Elevation of Privilege Using Remote Code Execution  [State: Mitigation Implemented]  [Priority: Low] 

Category:Elevation Of Privilege
Description:Device/Sensor (via external MQTT broker - authenticated) may be able to remotely execute code for EdgeX Foundry.
Justification:<no mitigation provided>
Possible Mitigation:EdgeX does not execute random code based on input from a device or sensor (as if it was from a web application with something like unsanitized inputs). All data is santized by extracting expected data values from the sensor input data, creating an EdgeX event/reading message and sending that into the rest of EdgeX. The data coming from a sensor could be used to kill the service (ex: buffer overflow attack and sending too much data for the service to consume for example - see DoS threats). The device service in EdgeX can be written to reject to large of a request (for example). In some cases, a protocol may offer dual authentication, and if used, help to mitigate RCE Additional mitigation when running EdgeX in rootless Docker: even if remote code execution succeeds inside a service container, the attacker only obtains the privileges of the unprivileged host user that owns the rootless-Docker daemon, via user-namespace UID remapping. UID 0 inside the container is not UID 0 on the host, so post-exploit actions that normally rely on host root - loading kernel modules, attaching to other containers' processes, mounting host paths, opening raw sockets, or modifying system services - are blocked even after a successful container escape. See https://docs.edgexfoundry.org/4.1/security/Rootless-Docker/. Additional mitigation when EdgeX container images are signed and signature verification is enforced at pull or admission time (e.g., Sigstore/cosign with a policy controller, or a content-trust-enabled daemon): the supply-chain path for introducing a backdoored or maliciously rebuilt image is closed, provided the signing key is protected by an HSM or KMS. Signing does not prevent exploitation of a flaw inside a legitimately signed image, so it must be combined with SBOM and SLSA provenance attestations, vulnerability scanning of the signed artifact, and timely patching. See https://www.sigstore.dev/.
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation reviewed

85. Data Store Inaccessible  [State: Mitigation Implemented]  [Priority: High] 

Category:Denial Of Service
Description:An external agent prevents access to a data store on the other side of the trust boundary.
Justification:<no mitigation provided>
Possible Mitigation:Outside influence could break the communication connection or MQTT broker causing major disruption of service (ex: removing or cutting off comms to a critical temperature sensor of a heating or cooling machine). EdgeX has no means to protect the connection to the external MQTT broker, the broker itself, or publisher to the broker. Physical and sytem security is required to protect these and mitigate this threat. The device service does track "last connected" and that timestamp could be monitored for outside of normal reporting ranges.
Mitigator:Adopter
Mitigation Status:Mitigation reviewed

86. Data Flow sensor data Is Potentially Interrupted  [State: Mitigation Implemented]  [Priority: High] 

Category:Denial Of Service
Description:An external agent interrupts data flowing across a trust boundary in either direction.
Justification:<no mitigation provided>
Possible Mitigation:Outside influence could break the communication connection or MQTT broker causing major disruption of service (ex: removing or cutting off comms to a critical temperature sensor of a heating or cooling machine). EdgeX has no means to protect the connection to the external MQTT broker, the broker itself, or publisher to the broker. Physical and sytem security is required to protect these and mitigate this threat. The device service does track "last connected" and that timestamp could be monitored for outside of normal reporting ranges.
Mitigator:Adopter
Mitigation Status:Mitigation reviewed

87. Potential Process Crash or Stop for EdgeX Foundry  [State: Mitigation Implemented]  [Priority: Medium] 

Category:Denial Of Service
Description:EdgeX Foundry crashes, halts, stops or runs slowly; in all cases violating an availability metric.
Justification:<no mitigation provided>
Possible Mitigation:Stopping EdgeX services requires host access (and access to the Docker engine, Docker containers and Docker network) with eleveated privileges or access to the EdgeX system management APIs (requiring the Nginx JWT token).
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation written

88. Weak Access Control for a Resource  [State: Mitigation Implemented]  [Priority: High] 

Category:Information Disclosure
Description:Improper data protection of Device/Sensor (via external MQTT broker - authenticated) can allow an attacker to read information not intended for disclosure. Review authorization settings.
Justification:<no mitigation provided>
Possible Mitigation:Requires encryption of the communications (on both the EdgeX and device/sensor ends) which is not in place by default. MQTTS could be implemented by the adopter with the appropriate MQTT broker.
Mitigator:Adopter
Mitigation Status:Mitigation reviewed

89. Potential Data Repudiation by EdgeX Foundry  [State: Mitigation Implemented]  [Priority: High] 

Category:Repudiation
Description:EdgeX Foundry claims that it did not receive data from a source outside the trust boundary. Consider using logging or auditing to record the source, time, and summary of the received data.
Justification:<no mitigation provided>
Possible Mitigation:Use of elevated log level (set writable configuration log level to DEBUG in the device service) can be used to log all data communications. Log level on the message bus may also be elevated.
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation reviewed

90. Spoofing of Source Data Store Device/Sensor (via external MQTT broker - authenticated)  [State: Mitigation Implemented]  [Priority: High] 

Category:Spoofing
Description:Device/Sensor (via external MQTT broker - authenticated) may be spoofed by an attacker and this may lead to incorrect data delivered to EdgeX Foundry. Consider using a standard authentication mechanism to identify the source data store.
Justification:<no mitigation provided>
Possible Mitigation:With authentication in place the spoofing MQTT publisher of sensor data (or the spoofed external message broker) would not be properly authenticated and thereby deny any request. The EdgeX framework has the support to store secrets to authenticate devices.
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation reviewed

91. Spoofing the EdgeX Foundry Process  [State: Mitigation Implemented]  [Priority: High] 

Category:Spoofing
Description:EdgeX Foundry may be spoofed by an attacker and this may lead to information disclosure by Device/Sensor (via external MQTT broker - authenticated). Consider using a standard authentication mechanism to identify the destination process.
Justification:<no mitigation provided>
Possible Mitigation:With authentication in place the spoofing MQTT receiver of sensor data (or the spoofed external message broker) would not be properly authenticated and thereby be unable to receive. The EdgeX framework has the support to store secrets to authenticate devices.
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation reviewed

Interaction: service secrets

service 
secrets interaction screenshot

92. Weak Access Control for a Resource  [State: Mitigation Implemented]  [Priority: Medium] 

Category:Information Disclosure
Description:Improper data protection of SecretStore can allow an attacker to read information not intended for disclosure. Review authorization settings.
Justification:<no mitigation provided>
Possible Mitigation:The SecretStore root and service level tokens are revoked after setup and then all interactions is via the programmatic interface (with properly authenticated token). There are additional options to SecretStore Master Key encryption provided here: https://docs.edgexfoundry.org/4.0/threat-models/secret-store/vault_master_key_encryption/
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation reviewed

93. Spoofing of Source Data Store SecretStore  [State: Mitigation Implemented]  [Priority: Low] 

Category:Spoofing
Description:SecretStore may be spoofed by an attacker and this may lead to incorrect data delivered to EdgeX Foundry. Consider using a standard authentication mechanism to identify the source data store.
Justification:<no mitigation provided>
Possible Mitigation:If someone was able to provide a container that was spoofing as SecretStore, the service would not know that the response came from something other than SecretStore. However, SecretStore is run as a container on the EdgeX Docker network. Replacing/spoofing the SecretStore container would require privileaged (root) access to the host. Additional adopter mitigation would include putting TLS in place between EdgeX and SecretStore(with TLS cert in place). A spoofing service (in this case SecretStore), would not have the appropriate cert in place to participate in the communications. Additional mitigation when EdgeX container images are signed (e.g., with Sigstore/cosign, Docker Content Trust or Notary v2) and signature verification is enforced at pull or admission time: an attacker cannot substitute a tampered or imposter image for the SecretStore (OpenBao) container via a compromised registry, a man-in-the-middle of `docker pull`, or a tampered local image cache. The signing key must be protected by an HSM or KMS and verification must be enforced by the runtime (for example a cosign policy controller or content-trust-enabled daemon). Image signing covers image authenticity only; pair it with SBOM and SLSA provenance attestations for build-time integrity and with timely patching, because a legitimately signed image with an exploitable flaw is still exploitable. See https://www.sigstore.dev/ and https://docs.docker.com/engine/security/trust/.
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation reviewed

Interaction: subscribed message

subscribed
message interaction screenshot

94. Weak Access Control for a Resource  [State: Mitigation Implemented]  [Priority: Low] 

Category:Information Disclosure
Description:Improper data protection of Message Bus Broker can allow an attacker to read information not intended for disclosure. Review authorization settings.
Justification:<no mitigation provided>
Possible Mitigation:When running EdgeX in secure mode the MQTT broker is secured with a username/password. This in turn creates a Secure MessageBus. See https://docs.edgexfoundry.org/4.0/security/Ch-Secure-MessageBus/. MQTTS can used for internal message bus communications but not provided by EdgeX
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation reviewed

95. Spoofing of Source Data Store Message Bus Broker  [State: Mitigation Implemented]  [Priority: Low] 

Category:Spoofing
Description:Message Bus Broker may be spoofed by an attacker and this may lead to incorrect data delivered to EdgeX Foundry. Consider using a standard authentication mechanism to identify the source data store.
Justification:<no mitigation provided>
Possible Mitigation:The message bus when requiring a broker (MQTT broker for example) is run as a container on the EdgeX Docker network. Replacing/spoofing the broker container would require privileaged access to the host. Additional mitigation when EdgeX container images are signed (e.g., with Sigstore/cosign, Docker Content Trust or Notary v2) and signature verification is enforced at pull or admission time: an attacker cannot substitute a tampered or imposter image for the message-bus broker container via a compromised registry, a man-in-the-middle of `docker pull`, or a tampered local image cache. The signing key must be protected by an HSM or KMS and verification must be enforced by the runtime (for example a cosign policy controller or content-trust-enabled daemon). Image signing covers image authenticity only; pair it with SBOM and SLSA provenance attestations for build-time integrity and with timely patching, because a legitimately signed image with an exploitable flaw is still exploitable. See https://www.sigstore.dev/ and https://docs.docker.com/engine/security/trust/.
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation reviewed


Diagram: EdgeX Service to Service HTTP comms

EdgeX Service to Service HTTP comms diagram screenshot

EdgeX Service to Service HTTP comms Diagram Summary:

Not Started0
Not Applicable0
Needs Investigation2
Mitigation Implemented0
Total2
Total Migrated0

Interaction: HTTP

HTTP interaction screenshot

96. EdgeX Service A Process Memory Tampered  [State: Needs Investigation]  [Priority: High] 

Category:Tampering
Description:If EdgeX Service A is given access to memory, such as shared memory or pointers, or is given the ability to control what EdgeX Service B executes (for example, passing back a function pointer.), then EdgeX Service A can tamper with EdgeX Service B. Consider if the function could work with less access to memory, such as passing data rather than pointers. Copy in data provided, and then validate it.
Justification:<no mitigation provided>
Possible Mitigation:Not applicable in containerized environments. Separate processes running in separate containers. Additional mitigation when running EdgeX in rootless Docker: user-namespace and PID-namespace isolation means a compromised service cannot ptrace, signal or read the memory of processes in sibling containers. UID 0 inside container A maps to a different unprivileged host UID than UID 0 inside container B, so cross-service in-memory tampering via /proc, ptrace or shared kernel facilities is blocked unless the attacker first compromises the unprivileged host user that owns the rootless daemon. See https://docs.edgexfoundry.org/4.1/security/Rootless-Docker/. Additional mitigation when EdgeX container images are signed (e.g., Sigstore/cosign, Docker Content Trust or Notary v2) and signature verification is enforced at pull or admission time: the supply-chain path for introducing a tampered or imposter image is closed, provided the signing key is rooted in an HSM or KMS and verification is policy-enforced by the runtime. Signing does not prevent exploitation of a flaw inside a legitimately signed image; pair it with SBOM and SLSA provenance attestations and timely patching. See https://www.sigstore.dev/ and https://docs.docker.com/engine/security/trust/.
Mitigator:No mitigation or not applicable
Mitigation Status:Mitigation written

97. Elevation Using Impersonation  [State: Needs Investigation]  [Priority: High] 

Category:Elevation Of Privilege
Description:EdgeX Service B may be able to impersonate the context of EdgeX Service A in order to gain additional privilege.
Justification:<no mitigation provided>
Possible Mitigation:Impersonating another EdgeX service would require access to the host system and the Docker network. Ports to the service APIs is restricted except through Nginx. If extra security is needed or if an adopter is running EdgeX services in a distributed environment (multiple hosts), then overlay network encryption can be used (see example: https://github.com/edgexfoundry/edgex-examples/tree/update-custom-trigger-multiple-pipelines/security/remote_devices/docker-swarm). Alternately, TLS can be used to encrypt all traffic. Service-to-service calls behind Nginx are unauthenticated in the current implementation. Additional mitigation when running EdgeX in rootless Docker: impersonating an EdgeX service from another local process requires access to the host system and the Docker network. Under rootless Docker the daemon, its socket (/run/user/<uid>/docker.sock) and the bridge network are owned by an unprivileged user, and a compromised container cannot escalate to host root to attach to that network or manipulate other containers. The attacker must first compromise the specific unprivileged user that owns the rootless daemon, raising the bar significantly compared with rootful deployments. See https://docs.edgexfoundry.org/4.1/security/Rootless-Docker/. Additional mitigation when EdgeX container images are signed (e.g., Sigstore/cosign, Docker Content Trust or Notary v2) and signature verification is enforced at pull or admission time: the supply-chain path for introducing a tampered or imposter image is closed, provided the signing key is rooted in an HSM or KMS and verification is policy-enforced by the runtime. Signing does not prevent exploitation of a flaw inside a legitimately signed image; pair it with SBOM and SLSA provenance attestations and timely patching. See https://www.sigstore.dev/ and https://docs.docker.com/engine/security/trust/.
Mitigator:Adopter
Mitigation Status:Mitigation written


Diagram: EdgeX Service to Service message bus comms

EdgeX Service to Service message bus comms diagram screenshot

EdgeX Service to Service message bus comms Diagram Summary:

Not Started0
Not Applicable0
Needs Investigation0
Mitigation Implemented2
Total2
Total Migrated0

Interaction: message bus (MQTT, NATS)

message bus (MQTT, NATS) interaction screenshot

98. Elevation Using Impersonation  [State: Mitigation Implemented]  [Priority: Medium] 

Category:Elevation Of Privilege
Description:EdgeX Service B may be able to impersonate the context of EdgeX Service A in order to gain additional privilege.
Justification:<no mitigation provided>
Possible Mitigation:All services are required to authroize to the message bus, but all services authorized on the message bus have equal privilege to send and receive messages. Impersonating another EdgeX service would require access to the host system and the Docker network. Ports to the service message bus is restricted to internal communications only. If extra security is needed or if an adopter is running EdgeX services in a distributed environment (multiple hosts), then overlay network encryption can be used (see example: https://github.com/edgexfoundry/edgex-examples/tree/update-custom-trigger-multiple-pipelines/security/remote_devices/docker-swarm). Alternately, secure MQTT (MQTTS) message bus communications can be used. Additional mitigation when running EdgeX in rootless Docker: impersonating an EdgeX service from another local process requires access to the host system and the Docker network. Under rootless Docker the daemon, its socket (/run/user/<uid>/docker.sock) and the bridge network are owned by an unprivileged user, and a compromised container cannot escalate to host root to attach to that network or manipulate other containers. The attacker must first compromise the specific unprivileged user that owns the rootless daemon, raising the bar significantly compared with rootful deployments. See https://docs.edgexfoundry.org/4.1/security/Rootless-Docker/. Additional mitigation when EdgeX container images are signed (e.g., Sigstore/cosign, Docker Content Trust or Notary v2) and signature verification is enforced at pull or admission time: the supply-chain path for introducing a tampered or imposter image is closed, provided the signing key is rooted in an HSM or KMS and verification is policy-enforced by the runtime. Signing does not prevent exploitation of a flaw inside a legitimately signed image; pair it with SBOM and SLSA provenance attestations and timely patching. See https://www.sigstore.dev/ and https://docs.docker.com/engine/security/trust/.
Mitigator:Adopter
Mitigation Status:Mitigation written

99. EdgeX Service A Process Memory Tampered  [State: Mitigation Implemented]  [Priority: High] 

Category:Tampering
Description:If EdgeX Service A is given access to memory, such as shared memory or pointers, or is given the ability to control what EdgeX Service B executes (for example, passing back a function pointer.), then EdgeX Service A can tamper with EdgeX Service B. Consider if the function could work with less access to memory, such as passing data rather than pointers. Copy in data provided, and then validate it.
Justification:<no mitigation provided>
Possible Mitigation:Not applicable in containerized environments. Separate processes running in separate containers. Additional mitigation when running EdgeX in rootless Docker: user-namespace and PID-namespace isolation means a compromised service cannot ptrace, signal or read the memory of processes in sibling containers. UID 0 inside container A maps to a different unprivileged host UID than UID 0 inside container B, so cross-service in-memory tampering via /proc, ptrace or shared kernel facilities is blocked unless the attacker first compromises the unprivileged host user that owns the rootless daemon. See https://docs.edgexfoundry.org/4.1/security/Rootless-Docker/. Additional mitigation when EdgeX container images are signed (e.g., Sigstore/cosign, Docker Content Trust or Notary v2) and signature verification is enforced at pull or admission time: the supply-chain path for introducing a tampered or imposter image is closed, provided the signing key is rooted in an HSM or KMS and verification is policy-enforced by the runtime. Signing does not prevent exploitation of a flaw inside a legitimately signed image; pair it with SBOM and SLSA provenance attestations and timely patching. See https://www.sigstore.dev/ and https://docs.docker.com/engine/security/trust/.
Mitigator:Adopter
Mitigation Status:Cannot mitigate or not appilcable


Diagram: Access via VPN

Access via VPN diagram screenshot

Access via VPN Diagram Summary:

Not Started0
Not Applicable0
Needs Investigation0
Mitigation Implemented0
Total0
Total Migrated0

Diagram: Host Access

Host Access diagram screenshot

Host Access Diagram Summary:

Not Started0
Not Applicable0
Needs Investigation0
Mitigation Implemented0
Total0
Total Migrated0

Diagram: Open Port Protections

Open Port Protections diagram screenshot

Open Port Protections Diagram Summary:

Not Started0
Not Applicable0
Needs Investigation0
Mitigation Implemented0
Total0
Total Migrated0

Diagram: Device Protocol Threats - Modbus example

Device Protocol Threats - Modbus example diagram screenshot

Device Protocol Threats - Modbus example Diagram Summary:

Not Started0
Not Applicable7
Needs Investigation9
Mitigation Implemented2
Total18
Total Migrated0

Interaction: Binary RTU (GET or SET)

Binary RTU (GET or SET) interaction screenshot

100. Spoofing of Destination Data Store Modbus Device/Sensor  [State: Needs Investigation]  [Priority: High] 

Category:Spoofing
Description:Modbus Device/Sensor may be spoofed by an attacker and this may lead to data being written to the attacker's target instead of Modbus Device/Sensor. Consider using a standard authentication mechanism to identify the destination data store.
Justification:<no mitigation provided>
Possible Mitigation:As there are no means to secure Modbus communications via the protocol exchange, the Modbus device/sensor and its wired connection must be physically secured to insure no spoofing or unauthorized collection of data or actuation with the device.
Mitigator:Adopter
Mitigation Status:Mitigation written

101. Potential Excessive Resource Consumption for Modbus Device Service or Modbus Device/Sensor  [State: Needs Investigation]  [Priority: High] 

Category:Denial Of Service
Description:Does Modbus Device Service or Modbus Device/Sensor take explicit steps to control resource consumption? Resource consumption attacks can be hard to deal with, and there are times that it makes sense to let the OS do the job. Be careful that your resource requests don't deadlock, and that they do timeout.
Justification:<no mitigation provided>
Possible Mitigation:As an unprotected (physically) Modbus device/sensor can be used to create a DOS attack (sending too much data), or send erroneous/faulty data, or disrupted / cut off and thereofore not send any data, the device service must be written to monitor and thwart the flow of too much data, notify when data is outside of expected ranges and notify when it appears the device/sensor is no longer connected and reporting. Provisioning of the device using known or specific ranges of MAC addresses (or IP addresses if using Modbus TCP/IP), etc. can help onboarding with an unauthorized device.
Mitigator:Adopter
Mitigation Status:Mitigation written

102. Spoofing the Modbus Device Service Process  [State: Needs Investigation]  [Priority: High] 

Category:Spoofing
Description:Modbus Device Service may be spoofed by an attacker and this may lead to unauthorized access to Modbus Device/Sensor. Consider using a standard authentication mechanism to identify the source process.
Justification:<no mitigation provided>
Possible Mitigation:As the communication to a Modbus device / sensor is not authenticated/authorized by the Protocol, any service (any spoof) could appear to be the EdgeX device service and either get data from or (worse) actuate the device illegally. Given the nature of Modbus, the only way to protect against this threat is to physically secure the device and connectivity (wire). Additional mitigation when running EdgeX in rootless Docker: spoofing the device-service process on the host requires compromising the unprivileged user account that runs the rootless Docker daemon. A compromised container cannot gain host root and therefore cannot register itself as the device-service container or open the corresponding device files unless the operator has explicitly granted access (for example, by chmod 666 on the serial port as documented for rootless EdgeX). The rootless-Docker guide warns that those permission relaxations carry their own risk. See https://docs.edgexfoundry.org/4.1/security/Rootless-Docker/. Additional mitigation when EdgeX container images are signed (e.g., Sigstore/cosign, Docker Content Trust or Notary v2) and signature verification is enforced at pull or admission time: the supply-chain path for introducing a tampered or imposter image is closed, provided the signing key is rooted in an HSM or KMS and verification is policy-enforced by the runtime. Signing does not prevent exploitation of a flaw inside a legitimately signed image; pair it with SBOM and SLSA provenance attestations and timely patching. See https://www.sigstore.dev/ and https://docs.docker.com/engine/security/trust/.
Mitigator:No mitigation or not applicable
Mitigation Status:Cannot mitigate or not appilcable

103. The Modbus Device/Sensor Data Store Could Be Corrupted  [State: Needs Investigation]  [Priority: High] 

Category:Tampering
Description:Data flowing across Binary RTU (GET or SET) may be tampered with by an attacker. This may lead to corruption of Modbus Device/Sensor. Ensure the integrity of the data flow to the data store.
Justification:<no mitigation provided>
Possible Mitigation:As the communication to a Modbus device / sensor is not authenticated/authorized by the protocol, the communication across the wire could be tampered with or shut off to cause DOS attacts or actuate the device illegally. Given the nature of Modbus, the only way to protect against this threat is to physically secure the device and connectivity (wire).
Mitigator:Adopter
Mitigation Status:Mitigation written

104. Data Store Denies Modbus Device/Sensor Potentially Writing Data  [State: Not Applicable]  [Priority: High] 

Category:Repudiation
Description:Modbus Device/Sensor claims that it did not write data received from an entity on the other side of the trust boundary. Consider using logging or auditing to record the source, time, and summary of the received data.
Justification:<no mitigation provided>
Possible Mitigation:It is unlikely that a Modbus device/sensor has a log to provide an audit of requests.
Mitigator:No mitigation or not applicable
Mitigation Status:Cannot mitigate or not appilcable

105. Data Flow Sniffing  [State: Not Applicable]  [Priority: High] 

Category:Information Disclosure
Description:Data flowing across Binary RTU (GET or SET) may be sniffed by an attacker. Depending on what type of data an attacker can read, it may be used to attack other parts of the system or simply be a disclosure of information leading to compliance violations. Consider encrypting the data flow.
Justification:<no mitigation provided>
Possible Mitigation:As the communication to a Modbus device / sensor is not authenticated/authorized nor encrypted by the Protocol, any service (any spoof) could appear to be the EdgeX device service and either get data from or (worse) actuate the device illegally. Given the nature of Modbus, the only way to protect against this threat is to physically secure the device and connectivity (wire).
Mitigator:Adopter
Mitigation Status:Cannot mitigate or not appilcable

106. Weak Credential Transit  [State: Needs Investigation]  [Priority: High] 

Category:Information Disclosure
Description:Credentials on the wire are often subject to sniffing by an attacker. Are the credentials re-usable/re-playable? Are credentials included in a message? For example, sending a zip file with the password in the email. Use strong cryptography for the transmission of credentials. Use the OS libraries if at all possible, and consider cryptographic algorithm agility, rather than hardcoding a choice.
Justification:<no mitigation provided>
Possible Mitigation:Modbus does not support any type of authentication/authorization in communications. Physical security of the device and wire are the only ways to thwart information disclosure.
Mitigator:Adopter
Mitigation Status:Mitigation written

107. Data Flow Binary RTU (GET or SET) Is Potentially Interrupted  [State: Not Applicable]  [Priority: High] 

Category:Denial Of Service
Description:An external agent interrupts data flowing across a trust boundary in either direction.
Justification:<no mitigation provided>
Possible Mitigation:As the communication to a Modbus device / sensor is not authenticated/authorized by the protocol, the communication across the wire could be tampered with or shut off to cause DOS attacts or actuate the device illegally. Given the nature of Modbus, the only way to protect against this threat is to physically secure the device and connectivity (wire).
Mitigator:Adopter
Mitigation Status:Cannot mitigate or not appilcable

108. Data Store Inaccessible  [State: Needs Investigation]  [Priority: High] 

Category:Denial Of Service
Description:An external agent prevents access to a data store on the other side of the trust boundary.
Justification:<no mitigation provided>
Possible Mitigation:As the communication to a Modbus device / sensor is not authenticated/authorized by the protocol, the communication across the wire could be tampered with to cause DOS attacts or actuate the device illegally. Given the nature of Modbus, the only way to protect against this threat is to physically secure the device and connectivity (wire).
Mitigator:Adopter
Mitigation Status:Mitigation written

Interaction: Binary RTU Response (GET or SE

Binary RTU Response (GET or SE interaction screenshot

109. Spoofing of Source Data Store Modbus Device/Sensor  [State: Needs Investigation]  [Priority: High] 

Category:Spoofing
Description:Modbus Device/Sensor may be spoofed by an attacker and this may lead to incorrect data delivered to Modbus Device Service. Consider using a standard authentication mechanism to identify the source data store.
Justification:<no mitigation provided>
Possible Mitigation:As an unprotected (physically) Modbus device/sensor can be used to create a DOS attack (sending too much data), or send erroneous/faulty data, or disrupted / cut off and thereofore not send any data, the device service must be written to monitor and thwart the flow of too much data, notify when data is outside of expected ranges and notify when it appears the device/sensor is no longer connected and reporting. Provisioning of the device using known or specific ranges of MAC addresses (or IP addresses if using Modbus TCP/IP), etc. can help onboarding with an unauthorized device.
Mitigator:Adopter
Mitigation Status:Mitigation written

110. Weak Access Control for a Resource  [State: Not Applicable]  [Priority: Low] 

Category:Information Disclosure
Description:Improper data protection of Modbus Device/Sensor can allow an attacker to read information not intended for disclosure. Review authorization settings.
Justification:<no mitigation provided>
Possible Mitigation:As Modbus is a simple protocol (reporting data or reacting to accuation requests), it is not possible for the device or sensor to gain other data from the device service (or EdgeX as a whole).
Mitigator:No mitigation or not applicable
Mitigation Status:Cannot mitigate or not appilcable

111. Spoofing the Modbus Device Service Process  [State: Not Applicable]  [Priority: High] 

Category:Spoofing
Description:Modbus Device Service may be spoofed by an attacker and this may lead to information disclosure by Modbus Device/Sensor. Consider using a standard authentication mechanism to identify the destination process.
Justification:<no mitigation provided>
Possible Mitigation:As there are no means to secure Modbus communications via the protocol exchange, the Modbus device/sensor and its wired connection must be physically secured to insure no spoofing or unauthorized collection of data or actuation with the device. Additional mitigation when running EdgeX in rootless Docker: spoofing the device-service process on the host requires compromising the unprivileged user account that runs the rootless Docker daemon. A compromised container cannot gain host root and therefore cannot register itself as the device-service container or open the corresponding device files unless the operator has explicitly granted access (for example, by chmod 666 on the serial port as documented for rootless EdgeX). The rootless-Docker guide warns that those permission relaxations carry their own risk. See https://docs.edgexfoundry.org/4.1/security/Rootless-Docker/. Additional mitigation when EdgeX container images are signed (e.g., Sigstore/cosign, Docker Content Trust or Notary v2) and signature verification is enforced at pull or admission time: the supply-chain path for introducing a tampered or imposter image is closed, provided the signing key is rooted in an HSM or KMS and verification is policy-enforced by the runtime. Signing does not prevent exploitation of a flaw inside a legitimately signed image; pair it with SBOM and SLSA provenance attestations and timely patching. See https://www.sigstore.dev/ and https://docs.docker.com/engine/security/trust/.
Mitigator:Adopter
Mitigation Status:Cannot mitigate or not appilcable

112. Potential Data Repudiation by Modbus Device Service  [State: Mitigation Implemented]  [Priority: High] 

Category:Repudiation
Description:Modbus Device Service claims that it did not receive data from a source outside the trust boundary. Consider using logging or auditing to record the source, time, and summary of the received data.
Justification:<no mitigation provided>
Possible Mitigation:Use of elevated log level can be used to log all data communications from a device/sensor.
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation written

113. Potential Process Crash or Stop for Modbus Device Service  [State: Mitigation Implemented]  [Priority: Medium] 

Category:Denial Of Service
Description:Modbus Device Service crashes, halts, stops or runs slowly; in all cases violating an availability metric.
Justification:<no mitigation provided>
Possible Mitigation:Stopping EdgeX services requires host access (and access to the Docker engine, Docker containers and Docker network) with eleveated privileges.
Mitigator:EdgeX Foundry
Mitigation Status:Mitigation written

114. Data Flow Binary RTU Response (GET or SET Is Potentially Interrupted  [State: Not Applicable]  [Priority: High] 

Category:Denial Of Service
Description:An external agent interrupts data flowing across a trust boundary in either direction.
Justification:<no mitigation provided>
Possible Mitigation:As the communication to a Modbus device / sensor is not authenticated/authorized by the protocol, the communication across the wire could be tampered with or shut off to cause DOS attacts or actuate the device illegally. Given the nature of Modbus, the only way to protect against this threat is to physically secure the device and connectivity (wire).
Mitigator:Adopter
Mitigation Status:Cannot mitigate or not appilcable

115. Data Store Inaccessible  [State: Needs Investigation]  [Priority: High] 

Category:Denial Of Service
Description:An external agent prevents access to a data store on the other side of the trust boundary.
Justification:<no mitigation provided>
Possible Mitigation:As the communication to a Modbus device / sensor is not authenticated/authorized by the protocol, the communication across the wire could be tampered with to cause DOS attacts or actuate the device illegally. Given the nature of Modbus, the only way to protect against this threat is to physically secure the device and connectivity (wire).
Mitigator:Adopter
Mitigation Status:Cannot mitigate or not appilcable

116. Modbus Device Service May be Subject to Elevation of Privilege Using Remote Code Execution  [State: Needs Investigation]  [Priority: High] 

Category:Elevation Of Privilege
Description:Modbus Device/Sensor may be able to remotely execute code for Modbus Device Service.
Justification:<no mitigation provided>
Possible Mitigation:Outside influence on a sensor or device is one of the biggest threats to an edge system and one of the hardest to mitigate. If tampered with, a sensor or device could be used to send the wrong data (e.g., force a temp sensor to send a signal that it is too hot when it is really too cold), too much data (overwhelming the edge system by causing the sensor to send data too often), or not enough data (e.g., disconnecting a critical monitor sensor that would cause a system to stop). The device service can be constructed to filter data to avoid the “too much” data DoS. The device service can be constructed to report and alert when there is not enough data coming from the device or sensor or the sensor/device appears to be offline (provided by the last connected tracking in EdgeX). Wrong data can be mitigated by having the device service look for expected ranges of values (as supported by min/max attributes on device profiles). Commercial 3rd party software or extensions to EdgeX (see, for example, RSA’s Netwitness IoT: https://www.netwitness.com/en-us/products/iot/) could be used to detect anomalous sensor/device communications and isolate the sensor from the system. Additional mitigation when running EdgeX in rootless Docker: even if remote code execution succeeds inside a service container, the attacker only obtains the privileges of the unprivileged host user that owns the rootless-Docker daemon, via user-namespace UID remapping. UID 0 inside the container is not UID 0 on the host, so post-exploit actions that normally rely on host root - loading kernel modules, attaching to other containers' processes, mounting host paths, opening raw sockets, or modifying system services - are blocked even after a successful container escape. See https://docs.edgexfoundry.org/4.1/security/Rootless-Docker/. Additional mitigation when EdgeX container images are signed and signature verification is enforced at pull or admission time (e.g., Sigstore/cosign with a policy controller, or a content-trust-enabled daemon): the supply-chain path for introducing a backdoored or maliciously rebuilt image is closed, provided the signing key is protected by an HSM or KMS. Signing does not prevent exploitation of a flaw inside a legitimately signed image, so it must be combined with SBOM and SLSA provenance attestations, vulnerability scanning of the signed artifact, and timely patching. See https://www.sigstore.dev/.
Mitigator:Adopter
Mitigation Status:Mitigation Research needed

117. Elevation by Changing the Execution Flow in Modbus Device Service  [State: Not Applicable]  [Priority: High] 

Category:Elevation Of Privilege
Description:An attacker may pass data into Modbus Device Service in order to change the flow of program execution within Modbus Device Service to the attacker's choosing.
Justification:<no mitigation provided>
Possible Mitigation:Outside influence on a sensor or device is one of the biggest threats to an edge system and one of the hardest to mitigate. If tampered with, a sensor or device could be used to send the wrong data (e.g., force a temp sensor to send a signal that it is too hot when it is really too cold), too much data (overwhelming the edge system by causing the sensor to send data too often), or not enough data (e.g., disconnecting a critical monitor sensor that would cause a system to stop). The device service can be constructed to filter data to avoid the “too much” data DoS. The device service can be constructed to report and alert when there is not enough data coming from the device or sensor or the sensor/device appears to be offline (provided by the last connected tracking in EdgeX). Wrong data can be mitigated by having the device service look for expected ranges of values (as supported by min/max attributes on device profiles). Physical security of the sensor and communications (wire) offer the best hope to mitigate this threat. Commercial 3rd party software or extensions to EdgeX (see, for example, RSA’s Netwitness IoT: https://www.netwitness.com/en-us/products/iot/) could be used to detect anomalous sensor/device communications and isolate the sensor from the system. Additional mitigation when running EdgeX in rootless Docker: even if remote code execution succeeds inside a service container, the attacker only obtains the privileges of the unprivileged host user that owns the rootless-Docker daemon, via user-namespace UID remapping. UID 0 inside the container is not UID 0 on the host, so post-exploit actions that normally rely on host root - loading kernel modules, attaching to other containers' processes, mounting host paths, opening raw sockets, or modifying system services - are blocked even after a successful container escape. See https://docs.edgexfoundry.org/4.1/security/Rootless-Docker/. Additional mitigation when EdgeX container images are signed and signature verification is enforced at pull or admission time (e.g., Sigstore/cosign with a policy controller, or a content-trust-enabled daemon): the supply-chain path for introducing a backdoored or maliciously rebuilt image is closed, provided the signing key is protected by an HSM or KMS. Signing does not prevent exploitation of a flaw inside a legitimately signed image, so it must be combined with SBOM and SLSA provenance attestations, vulnerability scanning of the signed artifact, and timely patching. See https://www.sigstore.dev/.
Mitigator:Adopter
Mitigation Status:Cannot mitigate or not appilcable


Diagram: Open Bao

Open Bao diagram screenshot

Open Bao Diagram Summary:

Not Started8
Not Applicable14
Needs Investigation13
Mitigation Implemented7
Total42
Total Migrated0

Interaction: PKCS11 Request

PKCS11 Request interaction screenshot

118. Spoofing of Destination Data Store Storage  [State: Mitigation Implemented]  [Priority: High] 

Category:Spoofing
Description:TPM may be spoofed by an attacker and this may lead to data being written to the attacker's target instead of TPM. Consider using a standard authentication mechanism to identify the destination data store.
Justification:<no mitigation provided>
Possible Mitigation:Spoofing is not possible with TPM
Mitigator:Adopter
Mitigation Status:Mitigation needed

119. The Storage Data Store Could Be Corrupted  [State: Not Started]  [Priority: High] 

Category:Tampering
Description:Data flowing across PKCS11 Request may be tampered with by an attacker. This may lead to corruption of TPM. Ensure the integrity of the data flow to the data store.
Justification:<no mitigation provided>
Possible Mitigation:TPM is believed not to be corrupted. Additional mitigation when running EdgeX in rootless Docker: container layers and bind-mounted volumes (including OpenBao's storage backend, log directories and key material) are owned by the unprivileged host user that runs the rootless daemon and live under that user's $XDG_DATA_HOME/docker tree, not under root-owned host paths. Other host users and escaped containers cannot bypass in-application access controls by reading or writing those files directly. This raises the cost of any filesystem-level disclosure or tampering attack but does not remove the need for at-rest encryption of the data the rootless user does control. See https://docs.edgexfoundry.org/4.1/security/Rootless-Docker/. Additional mitigation when EdgeX container images are signed (e.g., Sigstore/cosign, Docker Content Trust or Notary v2) and signature verification is enforced at pull or admission time: the supply-chain path for introducing a tampered or imposter image is closed, provided the signing key is rooted in an HSM or KMS and verification is policy-enforced by the runtime. Signing does not prevent exploitation of a flaw inside a legitimately signed image; pair it with SBOM and SLSA provenance attestations and timely patching. See https://www.sigstore.dev/ and https://docs.docker.com/engine/security/trust/.
Mitigator:Adopter
Mitigation Status:Mitigation needed

120. Data Store Denies Storage Potentially Writing Data  [State: Mitigation Implemented]  [Priority: High] 

Category:Repudiation
Description:TPM claims that it did not write data received from an entity on the other side of the trust boundary. Consider using logging or auditing to record the source, time, and summary of the received data.
Justification:<no mitigation provided>
Possible Mitigation:It is mitigated using pkcs11 interface. If there is an error with PKCS11 interface, it would log,
Mitigator:Adopter
Mitigation Status:Mitigation needed

121. Authorization Bypass  [State: Mitigation Implemented]  [Priority: High] 

Category:Information Disclosure
Description:Can you access TPM and bypass the permissions for the object? For example by editing the files directly with a hex editor, or reaching it via filesharing? Ensure that your program is the only one that can access the data, and that all other subjects have to use your interface.
Justification:<no mitigation provided>
Possible Mitigation:
Mitigator:Adopter
Mitigation Status:Mitigation needed

122. Weak Credential Storage  [State: Mitigation Implemented]  [Priority: High] 

Category:Information Disclosure
Description:Credentials held at the server are often disclosed or tampered with and credentials stored on the client are often stolen. For server side, consider storing a salted hash of the credentials instead of storing the credentials themselves. If this is not possible due to business requirements, be sure to encrypt the credentials before storage, using an SDL-approved mechanism. For client side, if storing credentials is required, encrypt them and protect the data store in which they're stored
Justification:<no mitigation provided>
Possible Mitigation:Additional mitigation when running EdgeX in rootless Docker: credential material persisted in container volumes (including OpenBao seal keys and SecretStore-issued tokens) is owned by an unprivileged host user, not root. A container escape only yields that unprivileged user's permissions, so attempts to exfiltrate credentials by reading host-level paths from a compromised neighbour container are blocked. Encryption (seal/unseal, salted hashes) remains the primary control; rootless Docker reduces the blast radius of a host-side compromise. See https://docs.edgexfoundry.org/4.1/security/Rootless-Docker/. Additional mitigation when EdgeX container images are signed (e.g., Sigstore/cosign, Docker Content Trust or Notary v2) and signature verification is enforced at pull or admission time: the supply-chain path for introducing a tampered or imposter image is closed, provided the signing key is rooted in an HSM or KMS and verification is policy-enforced by the runtime. Signing does not prevent exploitation of a flaw inside a legitimately signed image; pair it with SBOM and SLSA provenance attestations and timely patching. See https://www.sigstore.dev/ and https://docs.docker.com/engine/security/trust/.
Mitigator:Adopter
Mitigation Status:Mitigation reviewed

123. Potential Excessive Resource Consumption for OpenBao Server (Hosted on Device) or Storage  [State: Mitigation Implemented]  [Priority: High] 

Category:Denial Of Service
Description:Does OpenBao Server (Hosted on Device) or TPM take explicit steps to control resource consumption? Resource consumption attacks can be hard to deal with, and there are times that it makes sense to let the OS do the job. Be careful that your resource requests don't deadlock, and that they do timeout.
Justification:<no mitigation provided>
Possible Mitigation:
Mitigator:Adopter
Mitigation Status:Mitigation needed

124. Data Flow PKCS11 Request Is Potentially Interrupted  [State: Needs Investigation]  [Priority: High] 

Category:Denial Of Service
Description:An external agent interrupts data flowing across a trust boundary in either direction.
Justification:<no mitigation provided>
Possible Mitigation:
Mitigator:Adopter
Mitigation Status:Mitigation needed

125. Data Store Inaccessible  [State: Needs Investigation]  [Priority: High] 

Category:Denial Of Service
Description:An external agent prevents access to a data store on the other side of the trust boundary.
Justification:<no mitigation provided>
Possible Mitigation:It is assumed that TPM will always be always available.
Mitigator:Adopter
Mitigation Status:Mitigation needed

Interaction: Read

Read interaction screenshot

126. Storage is not protected. Its a part of file system.  [State: Not Started]  [Priority: High] 

Category:Tampering
Description:Storage may be spoofed by an attacker and this may lead to incorrect data delivered to OpenBao Server (Hosted on Device) . Consider using a standard authentication mechanism to identify the source data store.
Justification:<no mitigation provided>
Possible Mitigation:Storage should be encrypted. Additional mitigation when running EdgeX in rootless Docker: container layers and bind-mounted volumes (including OpenBao's storage backend, log directories and key material) are owned by the unprivileged host user that runs the rootless daemon and live under that user's $XDG_DATA_HOME/docker tree, not under root-owned host paths. Other host users and escaped containers cannot bypass in-application access controls by reading or writing those files directly. This raises the cost of any filesystem-level disclosure or tampering attack but does not remove the need for at-rest encryption of the data the rootless user does control. See https://docs.edgexfoundry.org/4.1/security/Rootless-Docker/. Additional mitigation when EdgeX container images are signed (e.g., Sigstore/cosign, Docker Content Trust or Notary v2) and signature verification is enforced at pull or admission time: the supply-chain path for introducing a tampered or imposter image is closed, provided the signing key is rooted in an HSM or KMS and verification is policy-enforced by the runtime. Signing does not prevent exploitation of a flaw inside a legitimately signed image; pair it with SBOM and SLSA provenance attestations and timely patching. See https://www.sigstore.dev/ and https://docs.docker.com/engine/security/trust/.
Mitigator:Adopter
Mitigation Status:Mitigation needed

127. Weak Access Control for a Resource  [State: Not Started]  [Priority: High] 

Category:User-defined
Description:Improper data protection of Storage can allow an attacker to read information not intended for disclosure. Review authorization settings.
Justification:<no mitigation provided>
Possible Mitigation:OpenBao uses role based access, TTL for keys, Sets limit of how many times a key can be used.
Mitigator:Adopter
Mitigation Status:Mitigation written

Interaction: Request

Request interaction screenshot

128. Replay Attacks  [State: Not Applicable]  [Priority: High] 

Category:Tampering
Description:Packets or messages without sequence numbers or timestamps can be captured and replayed in a wide variety of ways. Implement or utilize an existing communication protocol that supports anti-replay techniques (investigate sequence numbers before timers) and strong integrity.
Justification:<no mitigation provided>
Possible Mitigation:
Mitigator:Adopter
Mitigation Status:Mitigation needed

129. Collision Attacks  [State: Needs Investigation]  [Priority: High] 

Category:Tampering
Description:Attackers who can send a series of packets or messages may be able to overlap data. For example, packet 1 may be 100 bytes starting at offset 0. Packet 2 may be 100 bytes starting at offset 25. Packet 2 will overwrite 75 bytes of packet 1. Ensure you reassemble data before filtering it, and ensure you explicitly handle these sorts of cases.
Justification:<no mitigation provided>
Possible Mitigation:
Mitigator:Adopter
Mitigation Status:Mitigation needed

130. Potential Data Repudiation by OpenBao Server (Hosted on Device)   [State: Mitigation Implemented]  [Priority: High] 

Category:Repudiation
Description:OpenBao Server (Hosted on Device) claims that it did not receive data from a source outside the trust boundary. Consider using logging or auditing to record the source, time, and summary of the received data.
Justification:<no mitigation provided>
Possible Mitigation:Data repudiation is not possible coz openbao logs everything related to its encryption services.
Mitigator:Adopter
Mitigation Status:Mitigation needed

131. Weak Authentication Scheme  [State: Needs Investigation]  [Priority: High] 

Category:Information Disclosure
Description:Custom authentication schemes are susceptible to common weaknesses such as weak credential change management, credential equivalence, easily guessable credentials, null credentials, downgrade authentication or a weak credential change management system. Consider the impact and potential mitigations for your custom authentication scheme.
Justification:<no mitigation provided>
Possible Mitigation:Role based access would enable strong authentication mechanism. Need to investigate.
Mitigator:Adopter
Mitigation Status:Mitigation needed

132. Potential Process Crash or Stop for OpenBao Server (Hosted on Device)   [State: Needs Investigation]  [Priority: High] 

Category:Denial Of Service
Description:OpenBao Server (Hosted on Device) crashes, halts, stops or runs slowly; in all cases violating an availability metric.
Justification:<no mitigation provided>
Possible Mitigation:Client crashing is not applicable for this threat model.
Mitigator:Adopter
Mitigation Status:Mitigation needed

133. Data Flow Request Is Potentially Interrupted  [State: Not Applicable]  [Priority: High] 

Category:Denial Of Service
Description:An external agent interrupts data flowing across a trust boundary in either direction.
Justification:<no mitigation provided>
Possible Mitigation:Out of scope of this threat model.
Mitigator:Adopter
Mitigation Status:Mitigation needed

134. Elevation Using Impersonation  [State: Needs Investigation]  [Priority: High] 

Category:Elevation Of Privilege
Description:OpenBao Server (Hosted on Device) may be able to impersonate the context of Client in order to gain additional privilege.
Justification:<no mitigation provided>
Possible Mitigation:Role based access would mitigate this. Additional mitigation when running EdgeX in rootless Docker: impersonating an EdgeX service from another local process requires access to the host system and the Docker network. Under rootless Docker the daemon, its socket (/run/user/<uid>/docker.sock) and the bridge network are owned by an unprivileged user, and a compromised container cannot escalate to host root to attach to that network or manipulate other containers. The attacker must first compromise the specific unprivileged user that owns the rootless daemon, raising the bar significantly compared with rootful deployments. See https://docs.edgexfoundry.org/4.1/security/Rootless-Docker/. Additional mitigation when EdgeX container images are signed (e.g., Sigstore/cosign, Docker Content Trust or Notary v2) and signature verification is enforced at pull or admission time: the supply-chain path for introducing a tampered or imposter image is closed, provided the signing key is rooted in an HSM or KMS and verification is policy-enforced by the runtime. Signing does not prevent exploitation of a flaw inside a legitimately signed image; pair it with SBOM and SLSA provenance attestations and timely patching. See https://www.sigstore.dev/ and https://docs.docker.com/engine/security/trust/.
Mitigator:Adopter
Mitigation Status:Mitigation needed

135. OpenBao Server (Hosted on Device) May be Subject to Elevation of Privilege Using Remote Code Execution  [State: Needs Investigation]  [Priority: High] 

Category:Elevation Of Privilege
Description:Client may be able to remotely execute code for OpenBao Server (Hosted on Device) .
Justification:<no mitigation provided>
Possible Mitigation:Overflows in data, or remote code execution needs investigation.
Mitigator:Adopter
Mitigation Status:Mitigation needed

136. Elevation by Changing the Execution Flow in OpenBao Server (Hosted on Device)   [State: Not Started]  [Priority: High] 

Category:Elevation Of Privilege
Description:An attacker may pass data into OpenBao Server (Hosted on Device) in order to change the flow of program execution within OpenBao Server (Hosted on Device) to the attacker's choosing.
Justification:<no mitigation provided>
Possible Mitigation:Role based access would mitigate this. Additional mitigation when running EdgeX in rootless Docker: even if remote code execution succeeds inside a service container, the attacker only obtains the privileges of the unprivileged host user that owns the rootless-Docker daemon, via user-namespace UID remapping. UID 0 inside the container is not UID 0 on the host, so post-exploit actions that normally rely on host root - loading kernel modules, attaching to other containers' processes, mounting host paths, opening raw sockets, or modifying system services - are blocked even after a successful container escape. See https://docs.edgexfoundry.org/4.1/security/Rootless-Docker/. Additional mitigation when EdgeX container images are signed and signature verification is enforced at pull or admission time (e.g., Sigstore/cosign with a policy controller, or a content-trust-enabled daemon): the supply-chain path for introducing a backdoored or maliciously rebuilt image is closed, provided the signing key is protected by an HSM or KMS. Signing does not prevent exploitation of a flaw inside a legitimately signed image, so it must be combined with SBOM and SLSA provenance attestations, vulnerability scanning of the signed artifact, and timely patching. See https://www.sigstore.dev/.
Mitigator:Adopter
Mitigation Status:Mitigation needed

Interaction: Response

Response interaction screenshot

137. OpenBao Server (Hosted on Device) Process Memory Tampered  [State: Not Started]  [Priority: High] 

Category:User-defined
Description:If OpenBao Server (Hosted on Device) is given access to memory, such as shared memory or pointers, or is given the ability to control what Client executes (for example, passing back a function pointer.), then OpenBao Server (Hosted on Device) can tamper with Client. Consider if the function could work with less access to memory, such as passing data rather than pointers. Copy in data provided, and then validate it.
Justification:<no mitigation provided>
Possible Mitigation:Mitigation when running EdgeX in rootless Docker: user-namespace and PID-namespace isolation means a compromised service cannot ptrace, signal or read the memory of processes in sibling containers. UID 0 inside container A maps to a different unprivileged host UID than UID 0 inside container B, so cross-service in-memory tampering via /proc, ptrace or shared kernel facilities is blocked unless the attacker first compromises the unprivileged host user that owns the rootless daemon. See https://docs.edgexfoundry.org/4.1/security/Rootless-Docker/.
Mitigator:Adopter
Mitigation Status:Mitigation needed

138. Replay Attacks  [State: Not Started]  [Priority: High] 

Category:Spoofing
Description:Packets or messages without sequence numbers or timestamps can be captured and replayed in a wide variety of ways. Implement or utilize an existing communication protocol that supports anti-replay techniques (investigate sequence numbers before timers) and strong integrity.
Justification:<no mitigation provided>
Possible Mitigation:
Mitigator:Adopter
Mitigation Status:Mitigation needed

139. Collision Attacks  [State: Not Applicable]  [Priority: High] 

Category:Tampering
Description:Attackers who can send a series of packets or messages may be able to overlap data. For example, packet 1 may be 100 bytes starting at offset 0. Packet 2 may be 100 bytes starting at offset 25. Packet 2 will overwrite 75 bytes of packet 1. Ensure you reassemble data before filtering it, and ensure you explicitly handle these sorts of cases.
Justification:<no mitigation provided>
Possible Mitigation:
Mitigator:Adopter
Mitigation Status:Mitigation needed

140. Potential Data Repudiation by Client  [State: Not Applicable]  [Priority: High] 

Category:Repudiation
Description:Client claims that it did not receive data from a source outside the trust boundary. Consider using logging or auditing to record the source, time, and summary of the received data.
Justification:<no mitigation provided>
Possible Mitigation:
Mitigator:Adopter
Mitigation Status:Mitigation needed

141. Weak Authentication Scheme  [State: Needs Investigation]  [Priority: High] 

Category:Information Disclosure
Description:Custom authentication schemes are susceptible to common weaknesses such as weak credential change management, credential equivalence, easily guessable credentials, null credentials, downgrade authentication or a weak credential change management system. Consider the impact and potential mitigations for your custom authentication scheme.
Justification:<no mitigation provided>
Possible Mitigation:Role based access need to be present.
Mitigator:Adopter
Mitigation Status:Mitigation needed

142. Potential Process Crash or Stop for Client  [State: Not Applicable]  [Priority: High] 

Category:Denial Of Service
Description:Client crashes, halts, stops or runs slowly; in all cases violating an availability metric.
Justification:<no mitigation provided>
Possible Mitigation:if client crashes, the problem would be on the client side.
Mitigator:Adopter
Mitigation Status:Mitigation needed

143. Data Flow Response Is Potentially Interrupted  [State: Not Applicable]  [Priority: High] 

Category:Denial Of Service
Description:An external agent interrupts data flowing across a trust boundary in either direction.
Justification:<no mitigation provided>
Possible Mitigation:
Mitigator:Adopter
Mitigation Status:Mitigation needed

144. Elevation Using Impersonation  [State: Not Applicable]  [Priority: High] 

Category:Elevation Of Privilege
Description:Client may be able to impersonate the context of OpenBao Server (Hosted on Device) in order to gain additional privilege.
Justification:<no mitigation provided>
Possible Mitigation:Mitigation when running EdgeX in rootless Docker: impersonating an EdgeX service from another local process requires access to the host system and the Docker network. Under rootless Docker the daemon, its socket (/run/user/<uid>/docker.sock) and the bridge network are owned by an unprivileged user, and a compromised container cannot escalate to host root to attach to that network or manipulate other containers. The attacker must first compromise the specific unprivileged user that owns the rootless daemon, raising the bar significantly compared with rootful deployments. See https://docs.edgexfoundry.org/4.1/security/Rootless-Docker/. Additional mitigation when EdgeX container images are signed (e.g., Sigstore/cosign, Docker Content Trust or Notary v2) and signature verification is enforced at pull or admission time: the supply-chain path for introducing a tampered or imposter image is closed, provided the signing key is rooted in an HSM or KMS and verification is policy-enforced by the runtime. Signing does not prevent exploitation of a flaw inside a legitimately signed image; pair it with SBOM and SLSA provenance attestations and timely patching. See https://www.sigstore.dev/ and https://docs.docker.com/engine/security/trust/.
Mitigator:Adopter
Mitigation Status:Mitigation needed

145. Client May be Subject to Elevation of Privilege Using Remote Code Execution  [State: Not Applicable]  [Priority: High] 

Category:Elevation Of Privilege
Description:OpenBao Server (Hosted on Device) may be able to remotely execute code for Client.
Justification:<no mitigation provided>
Possible Mitigation:Mitigation when running EdgeX in rootless Docker: even if remote code execution succeeds inside a service container, the attacker only obtains the privileges of the unprivileged host user that owns the rootless-Docker daemon, via user-namespace UID remapping. UID 0 inside the container is not UID 0 on the host, so post-exploit actions that normally rely on host root - loading kernel modules, attaching to other containers' processes, mounting host paths, opening raw sockets, or modifying system services - are blocked even after a successful container escape. See https://docs.edgexfoundry.org/4.1/security/Rootless-Docker/. Additional mitigation when EdgeX container images are signed and signature verification is enforced at pull or admission time (e.g., Sigstore/cosign with a policy controller, or a content-trust-enabled daemon): the supply-chain path for introducing a backdoored or maliciously rebuilt image is closed, provided the signing key is protected by an HSM or KMS. Signing does not prevent exploitation of a flaw inside a legitimately signed image, so it must be combined with SBOM and SLSA provenance attestations, vulnerability scanning of the signed artifact, and timely patching. See https://www.sigstore.dev/.
Mitigator:Adopter
Mitigation Status:Mitigation needed

146. Elevation by Changing the Execution Flow in Client  [State: Needs Investigation]  [Priority: High] 

Category:Elevation Of Privilege
Description:An attacker may pass data into Client in order to change the flow of program execution within Client to the attacker's choosing.
Justification:<no mitigation provided>
Possible Mitigation:Mitigation when running EdgeX in rootless Docker: even if remote code execution succeeds inside a service container, the attacker only obtains the privileges of the unprivileged host user that owns the rootless-Docker daemon, via user-namespace UID remapping. UID 0 inside the container is not UID 0 on the host, so post-exploit actions that normally rely on host root - loading kernel modules, attaching to other containers' processes, mounting host paths, opening raw sockets, or modifying system services - are blocked even after a successful container escape. See https://docs.edgexfoundry.org/4.1/security/Rootless-Docker/. Additional mitigation when EdgeX container images are signed and signature verification is enforced at pull or admission time (e.g., Sigstore/cosign with a policy controller, or a content-trust-enabled daemon): the supply-chain path for introducing a backdoored or maliciously rebuilt image is closed, provided the signing key is protected by an HSM or KMS. Signing does not prevent exploitation of a flaw inside a legitimately signed image, so it must be combined with SBOM and SLSA provenance attestations, vulnerability scanning of the signed artifact, and timely patching. See https://www.sigstore.dev/.
Mitigator:Adopter
Mitigation Status:Mitigation needed

147. Cross Site Request Forgery  [State: Needs Investigation]  [Priority: High] 

Category:Elevation Of Privilege
Description:Cross-site request forgery (CSRF or XSRF) is a type of attack in which an attacker forces a user's browser to make a forged request to a vulnerable site by exploiting an existing trust relationship between the browser and the vulnerable web site. In a simple scenario, a user is logged in to web site A using a cookie as a credential. The other browses to web site B. Web site B returns a page with a hidden form that posts to web site A. Since the browser will carry the user's cookie to web site A, web site B now can take any action on web site A, for example, adding an admin to an account. The attack can be used to exploit any requests that the browser automatically authenticates, e.g. by session cookie, integrated authentication, IP whitelisting. The attack can be carried out in many ways such as by luring the victim to a site under control of the attacker, getting the user to click a link in a phishing email, or hacking a reputable web site that the victim will visit. The issue can only be resolved on the server side by requiring that all authenticated state-changing requests include an additional piece of secret payload (canary or CSRF token) which is known only to the legitimate web site and the browser and which is protected in transit through SSL/TLS. See the Forgery Protection property on the flow stencil for a list of mitigations.
Justification:<no mitigation provided>
Possible Mitigation:
Mitigator:Adopter
Mitigation Status:Mitigation needed

Interaction: Response

Response interaction screenshot

148. Spoofing of Source Data Store Storage  [State: Not Applicable]  [Priority: High] 

Category:Spoofing
Description:TPM may be spoofed by an attacker and this may lead to incorrect data delivered to OpenBao Server (Hosted on Device) . Consider using a standard authentication mechanism to identify the source data store.
Justification:<no mitigation provided>
Possible Mitigation:TPM cannot be spoofed.
Mitigator:Adopter
Mitigation Status:Mitigation needed

149. Potential Data Repudiation by OpenBao Server (Hosted on Device)   [State: Not Applicable]  [Priority: High] 

Category:Repudiation
Description:OpenBao Server (Hosted on Device) claims that it did not receive data from a source outside the trust boundary. Consider using logging or auditing to record the source, time, and summary of the received data.
Justification:<no mitigation provided>
Possible Mitigation:Since OpenBao mantians record of all the events, its not easy to Deny users action. Each key would have its record of TTL, no of times used and date its created.
Mitigator:Adopter
Mitigation Status:Mitigation needed

150. Weak Access Control for a Resource  [State: Needs Investigation]  [Priority: High] 

Category:Information Disclosure
Description:Improper data protection of TPM can allow an attacker to read information not intended for disclosure. Review authorization settings.
Justification:<no mitigation provided>
Possible Mitigation:Need to investigate more on Role based access in OpenBao
Mitigator:Adopter
Mitigation Status:Mitigation needed

151. Potential Process Crash or Stop for OpenBao Server (Hosted on Device)   [State: Needs Investigation]  [Priority: High] 

Category:Denial Of Service
Description:OpenBao Server (Hosted on Device) crashes, halts, stops or runs slowly; in all cases violating an availability metric.
Justification:<no mitigation provided>
Possible Mitigation:Process crash could lead openbao to DOS. Need to investigate.
Mitigator:Adopter
Mitigation Status:Mitigation needed

152. Data Flow Response Is Potentially Interrupted  [State: Not Applicable]  [Priority: High] 

Category:Denial Of Service
Description:An external agent interrupts data flowing across a trust boundary in either direction.
Justification:<no mitigation provided>
Possible Mitigation:It is assumed that the TPM is always up and available.
Mitigator:Adopter
Mitigation Status:Mitigation needed

153. Data Store Inaccessible  [State: Not Applicable]  [Priority: High] 

Category:Denial Of Service
Description:An external agent prevents access to a data store on the other side of the trust boundary.
Justification:<no mitigation provided>
Possible Mitigation:It is assumed that the TPM is always up and available.
Mitigator:Adopter
Mitigation Status:Mitigation needed

154. OpenBao Server (Hosted on Device) May be Subject to Elevation of Privilege Using Remote Code Execution  [State: Not Applicable]  [Priority: High] 

Category:Elevation Of Privilege
Description:TPM may be able to remotely execute code for OpenBao Server (Hosted on Device) .
Justification:<no mitigation provided>
Possible Mitigation:Only specific users will have commands that talk to the TPM. OpenBao would have full access.
Mitigator:Adopter
Mitigation Status:Mitigation needed

155. Elevation by Changing the Execution Flow in OpenBao Server (Hosted on Device)   [State: Mitigation Implemented]  [Priority: High] 

Category:Elevation Of Privilege
Description:An attacker may pass data into OpenBao Server (Hosted on Device) in order to change the flow of program execution within OpenBao Server (Hosted on Device) to the attacker's choosing.
Justification:<no mitigation provided>
Possible Mitigation:Role based access should be present where OpenBao commands can be run with specific privilages. Additional mitigation when running EdgeX in rootless Docker: even if remote code execution succeeds inside a service container, the attacker only obtains the privileges of the unprivileged host user that owns the rootless-Docker daemon, via user-namespace UID remapping. UID 0 inside the container is not UID 0 on the host, so post-exploit actions that normally rely on host root - loading kernel modules, attaching to other containers' processes, mounting host paths, opening raw sockets, or modifying system services - are blocked even after a successful container escape. See https://docs.edgexfoundry.org/4.1/security/Rootless-Docker/. Additional mitigation when EdgeX container images are signed and signature verification is enforced at pull or admission time (e.g., Sigstore/cosign with a policy controller, or a content-trust-enabled daemon): the supply-chain path for introducing a backdoored or maliciously rebuilt image is closed, provided the signing key is protected by an HSM or KMS. Signing does not prevent exploitation of a flaw inside a legitimately signed image, so it must be combined with SBOM and SLSA provenance attestations, vulnerability scanning of the signed artifact, and timely patching. See https://www.sigstore.dev/.
Mitigator:Adopter
Mitigation Status:Mitigation needed

Interaction: Write

Write interaction screenshot

156. Storage is not protected. Its a part of filesystem.  [State: Not Started]  [Priority: High] 

Category:Information Disclosure
Description:Storage may be spoofed by an attacker and this may lead to data being written to the attacker's target instead of Storage. Consider using a standard authentication mechanism to identify the destination data store.
Justification:<no mitigation provided>
Possible Mitigation:Storage should be Encrypted.
Mitigator:Adopter
Mitigation Status:Mitigation needed

157. Storage is not protected. Its a part of filesystem  [State: Not Started]  [Priority: High] 

Category:Information Disclosure
Description:Can you access Storage and bypass the permissions for the object? For example by editing the files directly with a hex editor, or reaching it via filesharing? Ensure that your program is the only one that can access the data, and that all other subjects have to use your interface.
Justification:<no mitigation provided>
Possible Mitigation:Storage should be Encrypted. Additional mitigation when running EdgeX in rootless Docker: container layers and bind-mounted volumes (including OpenBao's storage backend, log directories and key material) are owned by the unprivileged host user that runs the rootless daemon and live under that user's $XDG_DATA_HOME/docker tree, not under root-owned host paths. Other host users and escaped containers cannot bypass in-application access controls by reading or writing those files directly. This raises the cost of any filesystem-level disclosure or tampering attack but does not remove the need for at-rest encryption of the data the rootless user does control. See https://docs.edgexfoundry.org/4.1/security/Rootless-Docker/. Additional mitigation when EdgeX container images are signed (e.g., Sigstore/cosign, Docker Content Trust or Notary v2) and signature verification is enforced at pull or admission time: the supply-chain path for introducing a tampered or imposter image is closed, provided the signing key is rooted in an HSM or KMS and verification is policy-enforced by the runtime. Signing does not prevent exploitation of a flaw inside a legitimately signed image; pair it with SBOM and SLSA provenance attestations and timely patching. See https://www.sigstore.dev/ and https://docs.docker.com/engine/security/trust/.
Mitigator:Adopter
Mitigation Status:Mitigation needed

158. Weak Credential Storage  [State: Not Applicable]  [Priority: High] 

Category:Information Disclosure
Description:Credentials held at the server are often disclosed or tampered with and credentials stored on the client are often stolen. For server side, consider storing a salted hash of the credentials instead of storing the credentials themselves. If this is not possible due to business requirements, be sure to encrypt the credentials before storage, using an SDL-approved mechanism. For client side, if storing credentials is required, encrypt them and protect the data store in which they're stored
Justification:<no mitigation provided>
Possible Mitigation:With the Unseal and seal mechanism, The credentials are stored in encrypted form. Additional mitigation when running EdgeX in rootless Docker: credential material persisted in container volumes (including OpenBao seal keys and SecretStore-issued tokens) is owned by an unprivileged host user, not root. A container escape only yields that unprivileged user's permissions, so attempts to exfiltrate credentials by reading host-level paths from a compromised neighbour container are blocked. Encryption (seal/unseal, salted hashes) remains the primary control; rootless Docker reduces the blast radius of a host-side compromise. See https://docs.edgexfoundry.org/4.1/security/Rootless-Docker/. Additional mitigation when EdgeX container images are signed (e.g., Sigstore/cosign, Docker Content Trust or Notary v2) and signature verification is enforced at pull or admission time: the supply-chain path for introducing a tampered or imposter image is closed, provided the signing key is rooted in an HSM or KMS and verification is policy-enforced by the runtime. Signing does not prevent exploitation of a flaw inside a legitimately signed image; pair it with SBOM and SLSA provenance attestations and timely patching. See https://www.sigstore.dev/ and https://docs.docker.com/engine/security/trust/.
Mitigator:Adopter
Mitigation Status:Mitigation needed

159. Potential Excessive Resource Consumption for OpenBao Server (Hosted on Device) or Storage  [State: Needs Investigation]  [Priority: High] 

Category:Denial Of Service
Description:Does OpenBao Server (Hosted on Device) or Storage take explicit steps to control resource consumption? Resource consumption attacks can be hard to deal with, and there are times that it makes sense to let the OS do the job. Be careful that your resource requests don't deadlock, and that they do timeout.
Justification:<no mitigation provided>
Possible Mitigation:Extensive resource usage could potentailly lead to DOS. Need to investigate.
Mitigator:Adopter
Mitigation Status:Mitigation needed