ENCLAVE-02: Enclave PCR measurements are non-zero¶
| Property | Value |
|---|---|
| Severity | high |
| 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) have non-zero PCR values. Attestation is active.
Example failures:
- … enclave(s) have zeroed or missing PCR values — attestation is not active.
- 1 enclave(s) have zeroed or missing PCR values — attestation is not active.
How to fix¶
- Zeroed PCR values indicate a debug enclave or a measurement failure. Re-launch the enclave in production mode without --debug-mode.
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.
- 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.
Evidence recorded¶
Keys in the finding's evidence: pcr_values, running_pcr0, zeroed_enclaves
Generated from untrust 1.3.0 (commit 7ef462d9a0c3).