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-enclavePCR 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).