CIS Apache CouchDB 3 Benchmark

Secure configuration guidelines for Apache CouchDB 3 document database

v1.0.0 October 2024

Overview

▶

This CIS Benchmark provides prescriptive guidance for establishing a secure configuration posture for Apache CouchDB 3. Recommendations cover installation hardening, authentication and authorization, network security, encryption, logging and monitoring, and replication security.

~70Recommendations
6Sections
2Profile Levels
SectionAreaFocus
1InstallationConfig files, permissions
2AuthenticationAdmin, authorization
3NetworkListeners, firewall
4EncryptionTLS, data protection
5LoggingLog config, monitoring
6ReplicationCluster security

Profile Definitions

▶
ProfileDescriptionIntended Use
L1Level 1 — StandardEssential security for all Apache CouchDB 3 deployments; minimal performance impact.
L2Level 2 — HardenedAdvanced hardening for PCI-DSS, HIPAA, or high-security environments.

1 — Installation & Configuration

▶

1.1 Installation

▶
1.1.1 Ensure CouchDB Is Installed from Official Repositories (Manual)
L1 Manual
Description

This recommendation verifies that CouchDB Is Installed from Official Repositories on the Apache CouchDB 3 database server. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to implement this control may leave the Apache CouchDB 3 database server vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that CouchDB Is Installed from Official Repositories:

audit_check_repositories

Remediation

Apply the following configuration to ensure CouchDB Is Installed from Official Repositories:

remediate_repositories

1.1.2 Ensure CouchDB Runs Under a Dedicated User (Automated)
L1 Auto
Description

This recommendation verifies that CouchDB Runs Under a Dedicated User on the Apache CouchDB 3 database server. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to implement this control may leave the Apache CouchDB 3 database server vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that CouchDB Runs Under a Dedicated User:

audit_check_user

Remediation

Apply the following configuration to ensure CouchDB Runs Under a Dedicated User:

remediate_user

1.1.3 Ensure Latest Stable Version Is Installed (Manual)
L1 Manual
Description

This recommendation verifies that Latest Stable Version Is Installed on the Apache CouchDB 3 database server. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to implement this control may leave the Apache CouchDB 3 database server vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that Latest Stable Version Is Installed:

audit_check_installed

Remediation

Apply the following configuration to ensure Latest Stable Version Is Installed:

remediate_installed

1.2 Configuration Files

▶
1.2.1 Ensure Configuration File Permissions Are Restricted (Automated)
L1 Auto
Description

This setting ensures that Configuration File Permissions Are Restricted on the Apache CouchDB 3 database server. Restricting this capability limits potential abuse and enforces the principle of least privilege across the environment.

Rationale

Unrestricted access to this capability could allow unauthorized users or processes to perform actions beyond their intended scope. Applying least-privilege principles to the Apache CouchDB 3 database server is essential for defense in depth.

Audit

Run the following command and verify that Configuration File Permissions Are Restricted:

audit_check_restricted

Remediation

Apply the following configuration to ensure Configuration File Permissions Are Restricted:

remediate_restricted

1.2.2 Ensure Data Directory Permissions Are Restricted (Automated)
L1 Auto
Description

This setting ensures that Data Directory Permissions Are Restricted on the Apache CouchDB 3 database server. Restricting this capability limits potential abuse and enforces the principle of least privilege across the environment.

Rationale

Unrestricted access to this capability could allow unauthorized users or processes to perform actions beyond their intended scope. Applying least-privilege principles to the Apache CouchDB 3 database server is essential for defense in depth.

Audit

Run the following command and verify that Data Directory Permissions Are Restricted:

audit_check_restricted

Remediation

Apply the following configuration to ensure Data Directory Permissions Are Restricted:

remediate_restricted

1.2.3 Ensure Bind Address Is Configured (Automated)
L1 Auto
Description

This recommendation verifies that Bind Address Is Configured on the Apache CouchDB 3 database server. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to properly configure this setting may leave the Apache CouchDB 3 database server vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that Bind Address Is Configured:

audit_check_configured

Remediation

Apply the following configuration to ensure Bind Address Is Configured:

remediate_configured

2 — Authentication & Authorization

▶

2.1 Authentication

▶
2.1.1 Ensure Admin Party Mode Is Disabled (Automated)
L1 Auto
Description

This recommendation verifies that Admin Party Mode Is Disabled on the Apache CouchDB 3 database server. Disabling or removing unnecessary components reduces the attack surface and limits potential vectors for exploitation.

Rationale

Running unnecessary components on the Apache CouchDB 3 database server increases the attack surface and the risk of exploitation. Disabling or removing them follows the principle of least functionality and reduces exposure to known vulnerabilities.

Audit

Run the following command and verify that Admin Party Mode Is Disabled:

audit_check_disabled

Remediation

Apply the following configuration to ensure Admin Party Mode Is Disabled:

remediate_disabled

2.1.2 Ensure Server Admins Are Configured (Automated)
L1 Auto
Description

This recommendation verifies that Server Admins Are Configured on the Apache CouchDB 3 database server. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to properly configure this setting may leave the Apache CouchDB 3 database server vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that Server Admins Are Configured:

audit_check_configured

Remediation

Apply the following configuration to ensure Server Admins Are Configured:

remediate_configured

2.1.3 Ensure Password Hashing Uses PBKDF2 (Automated)
L1 Auto
Description

This recommendation verifies that Password Hashing Uses PBKDF2 on the Apache CouchDB 3 database server. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to implement this control may leave the Apache CouchDB 3 database server vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that Password Hashing Uses PBKDF2:

audit_check_pbkdf2

Remediation

Apply the following configuration to ensure Password Hashing Uses PBKDF2:

remediate_pbkdf2

2.1.4 Ensure Cookie Authentication Timeout Is Set (Automated)
L1 Auto
Description

This recommendation verifies that Cookie Authentication Timeout Is Set on the Apache CouchDB 3 database server. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to properly configure this setting may leave the Apache CouchDB 3 database server vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that Cookie Authentication Timeout Is Set:

audit_check_set

Remediation

Apply the following configuration to ensure Cookie Authentication Timeout Is Set:

remediate_set

2.2 Authorization

▶
2.2.1 Ensure Database Security Objects Are Configured (Manual)
L1 Manual
Description

This recommendation verifies that Database Security Objects Are Configured on the Apache CouchDB 3 database server. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to properly configure this setting may leave the Apache CouchDB 3 database server vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that Database Security Objects Are Configured:

audit_check_configured

Remediation

Apply the following configuration to ensure Database Security Objects Are Configured:

remediate_configured

2.2.2 Ensure _users Database Is Protected (Automated)
L1 Auto
Description

This recommendation verifies that _users Database Is Protected on the Apache CouchDB 3 database server. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to implement this control may leave the Apache CouchDB 3 database server vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that _users Database Is Protected:

audit_check_protected

Remediation

Apply the following configuration to ensure _users Database Is Protected:

remediate_protected

2.2.3 Ensure Design Document Validation Is Enabled (Manual)
L2 Manual
Description

This recommendation verifies that Design Document Validation Is Enabled on the Apache CouchDB 3 database server. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to properly configure this setting may leave the Apache CouchDB 3 database server vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that Design Document Validation Is Enabled:

audit_check_enabled

Remediation

Apply the following configuration to ensure Design Document Validation Is Enabled:

remediate_enabled

3 — Network Security

▶

3.1 Listener Configuration

▶
3.1.1 Ensure CouchDB Listens Only on Intended Interfaces (Automated)
L1 Auto
Description

This recommendation verifies that CouchDB Listens Only on Intended Interfaces on the Apache CouchDB 3 database server. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to implement this control may leave the Apache CouchDB 3 database server vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that CouchDB Listens Only on Intended Interfaces:

audit_check_interfaces

Remediation

Apply the following configuration to ensure CouchDB Listens Only on Intended Interfaces:

remediate_interfaces

3.1.2 Ensure Default Port Is Changed (Automated)
L2 Auto
Description

This recommendation verifies that Default Port Is Changed on the Apache CouchDB 3 database server. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to implement this control may leave the Apache CouchDB 3 database server vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that Default Port Is Changed:

audit_check_changed

Remediation

Apply the following configuration to ensure Default Port Is Changed:

remediate_changed

3.1.3 Ensure CORS Is Properly Configured (Automated)
L1 Auto
Description

This recommendation verifies that CORS Is Properly Configured on the Apache CouchDB 3 database server. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to implement this control may leave the Apache CouchDB 3 database server vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that CORS Is Properly Configured:

audit_check_configured

Remediation

Apply the following configuration to ensure CORS Is Properly Configured:

remediate_configured

3.2 Firewall & Access

▶
3.2.1 Ensure Host-Level Firewall Restricts CouchDB Ports (Automated)
L1 Auto
Description

This recommendation verifies that Host-Level Firewall Restricts CouchDB Ports on the Apache CouchDB 3 database server. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to implement this control may leave the Apache CouchDB 3 database server vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that Host-Level Firewall Restricts CouchDB Ports:

audit_check_ports

Remediation

Apply the following configuration to ensure Host-Level Firewall Restricts CouchDB Ports:

remediate_ports

3.2.2 Ensure Futon/Fauxton Admin UI Access Is Restricted (Automated)
L1 Auto
Description

This setting ensures that Futon/Fauxton Admin UI Access Is Restricted on the Apache CouchDB 3 database server. Restricting this capability limits potential abuse and enforces the principle of least privilege across the environment.

Rationale

Unrestricted access to this capability could allow unauthorized users or processes to perform actions beyond their intended scope. Applying least-privilege principles to the Apache CouchDB 3 database server is essential for defense in depth.

Audit

Run the following command and verify that Futon/Fauxton Admin UI Access Is Restricted:

audit_check_restricted

Remediation

Apply the following configuration to ensure Futon/Fauxton Admin UI Access Is Restricted:

remediate_restricted

3.2.3 Ensure Reverse Proxy Is Used for Public Access (Manual)
L2 Manual
Description

This recommendation verifies that Reverse Proxy Is Used for Public Access on the Apache CouchDB 3 database server. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to implement this control may leave the Apache CouchDB 3 database server vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that Reverse Proxy Is Used for Public Access:

audit_check_access

Remediation

Apply the following configuration to ensure Reverse Proxy Is Used for Public Access:

remediate_access

4 — Encryption

▶

4.1 TLS Configuration

▶
4.1.1 Ensure TLS Is Enabled for Client Connections (Automated)
L1 Auto
Description

This recommendation verifies that TLS Is Enabled for Client Connections on the Apache CouchDB 3 database server. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to properly configure this setting may leave the Apache CouchDB 3 database server vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that TLS Is Enabled for Client Connections:

audit_check_connections

Remediation

Apply the following configuration to ensure TLS Is Enabled for Client Connections:

remediate_connections

4.1.2 Ensure TLS 1.2 Is the Minimum Version (Automated)
L1 Auto
Description

This recommendation verifies that TLS 1.2 Is the Minimum Version on the Apache CouchDB 3 database server. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to implement this control may leave the Apache CouchDB 3 database server vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that TLS 1.2 Is the Minimum Version:

audit_check_version

Remediation

Apply the following configuration to ensure TLS 1.2 Is the Minimum Version:

remediate_version

4.1.3 Ensure Strong Cipher Suites Are Configured (Automated)
L1 Auto
Description

This recommendation verifies that Strong Cipher Suites Are Configured on the Apache CouchDB 3 database server. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to properly configure this setting may leave the Apache CouchDB 3 database server vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that Strong Cipher Suites Are Configured:

audit_check_configured

Remediation

Apply the following configuration to ensure Strong Cipher Suites Are Configured:

remediate_configured

4.2 Data Protection

▶
4.2.1 Ensure Encryption at Rest Is Configured (Manual)
L2 Manual
Description

This recommendation verifies that Encryption at Rest Is Configured on the Apache CouchDB 3 database server. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to properly configure this setting may leave the Apache CouchDB 3 database server vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that Encryption at Rest Is Configured:

audit_check_configured

Remediation

Apply the following configuration to ensure Encryption at Rest Is Configured:

remediate_configured

4.2.2 Ensure Sensitive Data in Documents Is Encrypted (Manual)
L2 Manual
Description

This recommendation verifies that Sensitive Data in Documents Is Encrypted on the Apache CouchDB 3 database server. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to implement this control may leave the Apache CouchDB 3 database server vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that Sensitive Data in Documents Is Encrypted:

audit_check_encrypted

Remediation

Apply the following configuration to ensure Sensitive Data in Documents Is Encrypted:

remediate_encrypted

5 — Logging & Monitoring

▶

5.1 Log Configuration

▶
5.1.1 Ensure Logging Level Is Set to Info or Higher (Automated)
L1 Auto
Description

This recommendation verifies that Logging Level Is Set to Info or Higher on the Apache CouchDB 3 database server. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to properly configure this setting may leave the Apache CouchDB 3 database server vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that Logging Level Is Set to Info or Higher:

audit_check_higher

Remediation

Apply the following configuration to ensure Logging Level Is Set to Info or Higher:

remediate_higher

5.1.2 Ensure Log File Rotation Is Configured (Automated)
L1 Auto
Description

This recommendation verifies that Log File Rotation Is Configured on the Apache CouchDB 3 database server. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to properly configure this setting may leave the Apache CouchDB 3 database server vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that Log File Rotation Is Configured:

audit_check_configured

Remediation

Apply the following configuration to ensure Log File Rotation Is Configured:

remediate_configured

5.1.3 Ensure Access Logs Are Enabled (Automated)
L1 Auto
Description

This recommendation verifies that Access Logs Are Enabled on the Apache CouchDB 3 database server. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to implement this control may leave the Apache CouchDB 3 database server vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that Access Logs Are Enabled:

audit_check_enabled

Remediation

Apply the following configuration to ensure Access Logs Are Enabled:

remediate_enabled

5.2 Monitoring

▶
5.2.1 Ensure _stats Endpoint Is Monitored (Manual)
L1 Manual
Description

This recommendation verifies that _stats Endpoint Is Monitored on the Apache CouchDB 3 database server. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to implement this control may leave the Apache CouchDB 3 database server vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that _stats Endpoint Is Monitored:

audit_check_monitored

Remediation

Apply the following configuration to ensure _stats Endpoint Is Monitored:

remediate_monitored

5.2.2 Ensure Health Checks Are Configured (Automated)
L1 Auto
Description

This recommendation verifies that Health Checks Are Configured on the Apache CouchDB 3 database server. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to properly configure this setting may leave the Apache CouchDB 3 database server vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that Health Checks Are Configured:

audit_check_configured

Remediation

Apply the following configuration to ensure Health Checks Are Configured:

remediate_configured

5.2.3 Ensure Disk Space Monitoring Is Configured (Automated)
L1 Auto
Description

This recommendation verifies that Disk Space Monitoring Is Configured on the Apache CouchDB 3 database server. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to properly configure this setting may leave the Apache CouchDB 3 database server vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that Disk Space Monitoring Is Configured:

audit_check_configured

Remediation

Apply the following configuration to ensure Disk Space Monitoring Is Configured:

remediate_configured

6 — Replication & Clustering

▶

6.1 Replication Security

▶
6.1.1 Ensure Replication Uses TLS (Automated)
L1 Auto
Description

This recommendation verifies that Replication Uses TLS on the Apache CouchDB 3 database server. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to implement this control may leave the Apache CouchDB 3 database server vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that Replication Uses TLS:

audit_check_tls

Remediation

Apply the following configuration to ensure Replication Uses TLS:

remediate_tls

6.1.2 Ensure Replication Credentials Are Protected (Manual)
L1 Manual
Description

This recommendation verifies that Replication Credentials Are Protected on the Apache CouchDB 3 database server. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to implement this control may leave the Apache CouchDB 3 database server vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that Replication Credentials Are Protected:

audit_check_protected

Remediation

Apply the following configuration to ensure Replication Credentials Are Protected:

remediate_protected

6.1.3 Ensure Continuous Replication Is Monitored (Manual)
L2 Manual
Description

This recommendation verifies that Continuous Replication Is Monitored on the Apache CouchDB 3 database server. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to implement this control may leave the Apache CouchDB 3 database server vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that Continuous Replication Is Monitored:

audit_check_monitored

Remediation

Apply the following configuration to ensure Continuous Replication Is Monitored:

remediate_monitored

6.2 Cluster Security

▶
6.2.1 Ensure Erlang Cookie Is Changed from Default (Automated)
L1 Auto
Description

This recommendation verifies that Erlang Cookie Is Changed from Default on the Apache CouchDB 3 database server. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to implement this control may leave the Apache CouchDB 3 database server vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that Erlang Cookie Is Changed from Default:

audit_check_default

Remediation

Apply the following configuration to ensure Erlang Cookie Is Changed from Default:

remediate_default

6.2.2 Ensure Cluster Communication Is Encrypted (Automated)
L2 Auto
Description

This recommendation verifies that Cluster Communication Is Encrypted on the Apache CouchDB 3 database server. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to implement this control may leave the Apache CouchDB 3 database server vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that Cluster Communication Is Encrypted:

audit_check_encrypted

Remediation

Apply the following configuration to ensure Cluster Communication Is Encrypted:

remediate_encrypted

6.2.3 Ensure Node Membership Is Verified (Manual)
L1 Manual
Description

This recommendation verifies that Node Membership Is Verified on the Apache CouchDB 3 database server. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to implement this control may leave the Apache CouchDB 3 database server vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that Node Membership Is Verified:

audit_check_verified

Remediation

Apply the following configuration to ensure Node Membership Is Verified:

remediate_verified