Skip to content

ENCLAVE-04: Enclave booted from a signed image (PCR8)

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

What it checks

It passes when:

  • Enclave booted from a signed EIF (PCR8 present and signature verified).

Example failures:

  • Enclave image is unsigned (no PCR8). KMS policies cannot bind to a signing identity, and there is no cryptographic link between the running image and your build pipeline.
  • Enclave image has a PCR8 but its signature does not verify. The image may be tampered or signed by an unexpected certificate.

How to fix

  • Build a signed EIF with nitro-cli build-enclave --private-key and --signing-certificate (sign in CI, never on the host), and pin PCR8 in the KMS key policy.
  • Rebuild and re-sign the EIF with your trusted signing certificate; verify the signing chain in CI.
  • Re-run on a nitro-cli version whose describe-eif reports the signature check, or verify the EIF signature against your signing certificate in CI.

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

When it is not assessed

SKIP:

  • No instance ID specified; skipping check.
  • Enclave image has a PCR8, but nitro-cli describe-eif did not report a signature-verification result, so the EIF signature could not be confirmed.

ERROR:

  • SSM command did not complete within timeout.
  • Could not locate an .eif file on the host to inspect.
  • nitro-cli describe-eif failed or is not available.
  • 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: pcr8, signature_check

Generated from untrust 1.3.0 (commit 7ef462d9a0c3).