feat(cac): embed CAC into audit controls, policy language, and portable attestation verification#23610
Conversation
|
Warning You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again! |
|
Warning Rate limit exceeded
Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 17 minutes and 3 seconds. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (18)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a68baa20cf
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| if (cacert && provenance && cacert.evidence_hash !== provenance.digest) { | ||
| failures.push('cacert_provenance_hash_mismatch'); | ||
| } |
There was a problem hiding this comment.
Fail audit when CACert signature is not verified
The audit path currently treats CACert integrity as a hash comparison only, so bundles can be reported as COMPLIANT even when cacert.json is unsigned or forged, provided evidence_hash and provenance.digest match. This creates false-positive compliance outcomes for any workflow that relies on cac audit as a gate, and it conflicts with the repository’s own audit playbook requirement that unverifiable signatures are a critical failure condition. Add a required signature/public-key verification step before allowing a compliant result.
Useful? React with 👍 / 👎.
…le attestation verification (rebase on main)
a68baa2 to
cea3437
Compare
Motivation
Description
docs/cac/control-mapping/to show CAC → control objective → evidence → verification method.docs/cac/AUDIT_PLAYBOOK.mdand a policy/regulatory language pack underdocs/cac/policy/to support enterprise and regulatory adoption.packages/attestation/generator.ts, created sample portable artifacts inartifacts/attestation/(cac.json,cacert.json,sbom.json,provenance.json), and updated root scripts (attestation:generate,cac:audit).tools/cac-cli/index.mjsthat implementscac audit <bundle>to emit compliance status, missing evidence, failed controls, and computed digest.Testing
node tools/cac-cli/index.mjs audit artifacts/attestationwhich returnedCOMPLIANTwith no missing evidence and a computed digest, and the command exited successfully.node scripts/check-boundaries.cjswhich reported no parallelization boundary violations and exited successfully.npx tsx packages/attestation/generator.ts artifacts/attestationbut the runtime could not fetchtsxfrom the registry (403); deterministic bundle digest and provenance were produced locally via an automated script to validate the generator output and updatecacert.jsonandprovenance.jsonso the CLI audit could be exercised.valid_from/valid_until/revocation pointer) are placeholders in the sample artifacts and must be provided by a CA in production for full cryptographic verification.Codex Task