Skip to content

ENCLAVE-05: Enclave PCRs match the pinned golden baseline

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 it checks

It passes when:

  • All … enclave(s) match the pinned PCR baseline (…).

Example failures:

  • … enclave(s) do not match the pinned PCR baseline (…). The measured image is not the expected build.
  • 1 enclave(s) do not match the pinned PCR baseline (i-0abc123-enc-0001: PCR0, PCR2). The measured image is not the expected build.

How to fix

  • Confirm the deployed EIF is the CI-built, signed image. Re-pin the baseline from the trusted nitro-cli build-enclave PCR output and redeploy; investigate any enclave whose PCR0/1/2 differ.

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

When it is not assessed

SKIP:

  • Need --instance-id and --pcr-baseline; skipping check.

ERROR:

  • No running enclaves to measure.
  • Could not read PCR baseline: …
  • Could not read enclave measurements: …

Scan inputs

The untrust scan options this check reads:

Option Description
--instance-id EC2 instance ID running the Nitro Enclave.
--pcr-baseline Path to a JSON of golden PCR values (PCR0/1/2) to pin (ENCLAVE-05).
--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: baseline, enclaves, mismatches

Generated from untrust 1.3.0 (commit 7ef462d9a0c3).