Skip to content

ENCLAVE-01: Enclave debug mode is disabled

Property Value
Severity critical
Platform AWS Nitro Enclaves
Lifecycle stage attest
Mode Active: runs fixed read-only commands on the host. Skipped with --read-only.

What a failure enables

  • Prod keys decrypted by any image

What it checks

It passes when:

  • … enclave(s) running, none in debug mode.

Example failures:

  • … enclave(s) running in debug mode: …. Attestation is disabled and the console is accessible.
  • 1 enclave(s) running in debug mode: i-0abc123-enc-0001. Attestation is disabled and the console is accessible.

How to fix

  • Terminate debug enclaves and re-launch without the --debug-mode flag. Debug enclaves have zeroed PCR values and provide no confidentiality guarantees.

After the fix, scan again: the check should report PASS.

When it is not assessed

SKIP:

  • No instance ID specified; skipping check.

ERROR:

  • SSM command did not complete within timeout.
  • nitro-cli not available or no enclaves found. Cannot determine debug mode status.
  • No enclaves are currently running.
  • Could not send SSM command: …

Scan inputs

The untrust scan options this check reads:

Option Description
--instance-id EC2 instance ID running the Nitro Enclave.
--region AWS region.

Permissions

The cloud API calls this check makes, read from the scanner's source:

Cloud API call Permission Access
AWS ssm.get_command_invocation ssm:GetCommandInvocation read
AWS ssm.send_command ssm:SendCommand run command

Every AWS scan also calls sts:GetCallerIdentity. See Required permissions for a complete policy.

  • Runtime detection DET-06 (AWS Nitro Enclaves): Enclave launched with --debug-mode
  • Runtime detection DET-11 (AWS Nitro Enclaves): Running enclave measurement differs from the released build

Evidence recorded

Keys in the finding's evidence: debug_enclaves, raw_output, total_enclaves

Generated from untrust 1.3.0 (commit 7ef462d9a0c3).