# Cis Cassandra40 V100 5.2

> Cis Cassandra40 V100 5.2 is an Agent Skill for devops & security published in the CyberStrikeus/CyberStrike repository on GitHub: a SKILL.md instruction file an AI agent can load to do this task.

Client Encryption

- Skill name: `cis-cassandra40-v100-5.2`
- Category: [DevOps & Security](https://www.openparable.com/skill/devops-security/1)
- Source: https://github.com/CyberStrikeus/CyberStrike/blob/HEAD/.cyberstrike/skill/CIS_benchmarks/Server_Software/Apache_Cassandra/CIS_Apache_Cassandra_4.0_Benchmark_v1.0.0/cis-cassandra40-v100-5.2/SKILL.md
- Repository: CyberStrikeus/CyberStrike (1,211 GitHub stars when collected)

## SKILL.md

# 5.2 Client Encryption

## Profile Applicability

- Level 1 - Cassandra on Linux

## Description

Cassandra offers the option to encrypt data in transit between the client and nodes on the cluster. By default client encryption is turned off.

## Rationale

Data in transit between the client and node on the cluster should be encrypted to avoid network snooping, whether legitimate or not.

## Audit

The Cassandra configuration files can be found in the conf directory of tarballs. For packages, the configuration files will be located in /etc/cassandra.
Open up the cassandra.yaml file, look for client_encryption_options section.
Look for `enabled:` and `optional:`.

```yaml
enabled: true

optional: false
```

If neither is true, then all client connections are unencrypted which makes this a finding.
If enabled is true and optional is false, then all client connections must be encrypted which makes this not a finding.
If enabled is false and optional is true, then enabled wins and all client connections are unencrypted which makes this a finding.
If both are set to true, then both unencrypted and encrypted connections are allowed on the same port which makes this not a finding.

## Remediation

The client encryption should be implemented before anyone accesses the Cassandra server.
To enable the client encryption mechanism:

1. Stop the Cassandra database.
2. If not done so already, build out your keystore and truststore.
3. Modify cassandra.yaml file to modify/add entries under client_encryption_options:

```yaml
enabled: true
optional: false
```

## Default Value

N/A

## References

N/A

## CIS Controls

- **v8 3.10** Encrypt Sensitive Data in Transit
  - Encrypt sensitive data in transit. Example implementations can include: Transport Layer Security (TLS) and Open Secure Shell (OpenSSH).
- **v7 14.4** Encrypt All Sensitive Information in Transit
  - Encrypt all sensitive information in transit.

## Profile

- Level 1 - Cassandra on Linux | Automated

---

Source: https://www.openparable.com/skill/devops-security/cis-cassandra40-v100-5-2 (OpenParable). Cite the canonical URL above.
