Review security boundaries¶
Apply this checklist to the assigned authentication, permissions, secrets or access review.
Read the task first; the coordinator runs the work and its Astra review with scripts/heyaira-run.sh.
1. Bound the inspection¶
- Record repository, reviewed SHA, task/version and the exact paths in scope.
- Read the diff and follow changed authentication/authorization paths into their callers.
- Use source references, not private credential files, to identify credential classes.
- Do not print secret values, fragments, DSNs, headers, memory bodies or enrollment codes.
- Use synthetic identities/tokens in demonstrations and regression checks.
- Mark production custody and deployed grants unverified unless an authorized receipt establishes them.
Run a source-only search; inspect matching definitions, not the live environment.
rg -n 'authorize|permission|scope|membership|write_context|allowed_models|allowed_accounts|allowed_repositories' src docs/BRIDGE_PROTOCOL.md docs/concepts
git diff <base-sha> <candidate-sha> --name-only
2. Build the access-path list¶
- List entry points: MCP, HTTP, OAuth, Bridge enrollment/binding, filesystem and provider session.
- Trace each caller principal through authentication, project binding and operation authorization.
- Name the protected object and the check before the first read/write of it.
- Include success, denial, stale/revoked credential and cross-project cases.
- Check background/renewal/recovery paths as well as the main request handler.
Use one row per path; name symbols and source locations, never token values.
| Entry | Principal | Target/project | Gate before effect | Granted authority | Denial check | Source |
|---|---|---|---|---|---|---|
<route/tool> |
<credential class> |
<object> |
<function> |
<scope> |
<test> |
<file:line> |
3. Compare authority with the minimum needed¶
- Compare each consumer's operation with its actual scopes, memberships and database grants.
- Flag a broader grant with the reachable operation it enables; propose the smallest replacement.
- Confirm project/resource/instance checks and current membership narrowing at write boundaries.
- Check that worker credentials permit assigned reads/RESULT only; verifier credentials stay read-only.
- Trace expiry, cancellation and revocation checks before accepting a lease-bound action.
- Confirm provider sessions cannot inherit unrelated MCP servers or GitHub publishing credentials.
- Inspect filesystem and network allowlists for actual enforcement; do not accept prompt text as a gate.
- Check model, provider-account slot and repository allowlists against the selected task assignment.
- Compare server account-slot authorization with Mac policy
allowed_accounts; require both. - Mark local Bridge policy uninspected if that repository/configuration is unavailable.
4. Record custody and rotation without values¶
- Inventory credential names/classes, consumers, storage boundary, holder role and revocation path.
- Record last verified rotation date, approved interval and next due date; use
unknownif absent. - Separate protocol expiry from a proposed operator rotation schedule.
- For a proposed rotation, list all consumers, replacement order, validation and recovery owner.
- Obtain the required owner's consent before rotating/revoking secrets or changing access grants.
- Leave production changes to DevOps under the project's recorded authorization.
- Keep enrollment codes on the approved direct delivery path to the owner; never request their value.
Use this value-free inventory shape.
class=<name>; consumers=<roles/services>; storage=<boundary, not contents>
holder=<role|unverified>; last_rotation=<date|unknown>; interval=<approved|proposed>
next_due=<date|unknown>; revoke=<procedure reference>; approval=<decision ID|missing>
5. Reproduce and grade findings¶
- Give each finding an ID, input/principal, reachable effect, file:line and reproducible check.
- Grade P1 for data loss, security breach or outage; P2 for reachable incorrect behavior.
- Grade P3 for lower-impact improvements; distinguish a proposal from a confirmed vulnerability.
- State confidence and missing live evidence; do not infer compromise from an unknown rotation date.
- Return P1/P2 as blocking findings for the reviewed boundary; route P3 to follow-up.
- Give the coordinator repair requests with finding IDs, target paths and acceptance checks.
- Identify owner decisions explicitly: reserved consent, sign-in, grants, secret rotation or production go.
- Send one review summary to the owner only through the authorized reporting path.
- Return findings and evidence through the assigned execution contract; do not fix or grant access in a review.
Sources¶
- Security scope.
- Consent boundaries.
- Secret handling and grades, plus its review section.
- Execution credential boundaries.
- Account allowlists.
- Identity and Bridge scope, project binding.
- Treat unknown custody/dates and proposed intervals as limitations, not deployed facts.