DKER-EE-001880 - The Docker Enterprise self-signed certificates in Docker Trusted Registry (DTR) must be replaced with DoD trusted, signed certificates.

Details

Docker Enterprise includes the following capabilities that are considered non-essential:



*NOTE: disabling these capabilities negatively affects the operation of Universal Control Plane (UCP) and DTR and should be disregarded when UCP and DTR are installed. The security capabilities provided by UCP and DTR offset any potential vulnerabilities associated with not disabling these essential capabilities the Engine provides.



(Docker Engine - Enterprise: Standalone) - The majority of these items were originally identified as part of the CIS Docker Benchmark, which as of the CIS Docker Benchmark v1.2.0, are still applicable to Docker Engine - Enterprise 18.09


- inter-container communication (icc)* (CIS Docker Benchmark Recommendation 2.1)


- insecure registry communication (CIS Docker Benchmark Recommendation 2.4)


- AUFS storage driver (applicable on Linux only) (CIS Docker Benchmark Recommendation 2.5)


- listening on the TCP Daemon socket


- userland proxy for loopback traffic* (CIS Docker Benchmark Recommendation 2.15)


- experimental features (CIS Docker Benchmark Recommendation 2.17)


- Swarm Mode (CIS Docker Benchmark Recommendation 7.1)



(Docker Engine - Enterprise: As part of a UCP cluster)


- insecure registry communication (CIS Docker Benchmark Recommendation 2.4)


- AUFS storage driver (applicable on Linux only) (CIS Docker Benchmark Recommendation 2.5)


- listening on the TCP Daemon socket


- experimental features (CIS Docker Benchmark Recommendation 2.17)



(UCP)


- Managed user database


- self-signed certificates


- periodic usage reporting and API tracking


- allow users and administrators to schedule containers on all nodes, including UCP managers and DTR nodes



(DTR)


- periodic data usage/analytics reporting


- create repository on push


- self-signed certificates




Solution

This fix only applies to the DTR component of Docker Enterprise.

Integrate DTR with a trusted CA.

via UI:

In the DTR web console, navigate to 'System' | 'General' and click on the 'Show TLS Settings' link in the 'Domain & Proxies' section. Fill in the 'TLS Root CA' field with the contents of the external public CA certificate. Assuming the user generated a server certificate from that CA for DTR, also fill in the 'TLS Certificate Chain' and 'TLS Private Key' fields with the contents of the public/private certificates respectively. The 'TLS Certificate Chain' field must include both the DTR server certificate and any intermediate certificates. Click on the 'Save' button.

via CLI:

Linux: Execute the following command as a superuser on one of the UCP Manager nodes in the cluster:

docker run -it --rm docker/dtr:[dtr_version] reconfigure --dtr-ca '$(cat [ca.pem])' --dtr-cert '$(cat [dtr_cert.pem])' --dtr-key '$(cat [dtr_private_key.pem])'


Supportive Information

The following resource is also helpful.

This security hardening control applies to the following category of controls within NIST 800-53: Configuration Management.This control applies to the following type of system Unix.


References


Source