REPO_POLICIES: carve out capability-URL services from "when in doubt, harden" #52
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
REPO_POLICIES.mdis synced into every managed repo. Its HTTP hardening sectioncloses with:
> This list is non-exhaustive. Apply defense-in-depth: if a standard security
> hardening measure exists for HTTP services and is not listed here, it is still
> expected. When in doubt, harden.
As written, that authorises exactly what has now been ruled against twice: adding
HMAC signature verification / shared secrets on top of an endpoint whose
credential is already an unguessable capability URL. Inbound signature
verification was removed from
webhookerentirely insneak/webhooker#279 on that reasoning. Today the only
place that contradicts the policy is
webhooker's ownREADME.md, so a futurecontributor will propose HMAC in good faith and be able to cite the policy for
it.
Definition of done
A short addition to the HTTP hardening section of
REPO_POLICIES.md, placed so areader hits it in the same breath as the "When in doubt, harden." sentence — not
in a distant section. It must establish:
complete credential, not a partial one.
to such an endpoint, including as defence in depth. This has been considered
and rejected.
out of logs, tickets and screenshots; rotate by minting a new entrypoint
rather than by changing a key.
a constraint on that integration, to be raised — not grounds to reintroduce
shared secrets.
Constraints:
hardening guidance.
make fmtapplied;make checkgreen.TODO.mdupdated per its Workflow section in the same commit.next, PR based onnext, commit subject ends(closes #N).PR: #53
Carve-out sits in the same indented block as "When in doubt, harden.", directly
below it, so the reader cannot reach the sentence without reaching the
exception.
Disclosures:
next, notmain. This repo'sTODO.mdWorkflowsection still says "branch (from
main)", which predates thenext-branchmodel;
nextis currently six commits ahead ofmain.TODO.md: added a Completed Steps entry only. The Workflow rotation(Next Step to Completed, promote from Future Steps) was left alone because
this work is not the recorded Next Step.
last_modifiedfront matter, outside the literalscope of this issue, because the repo's own cross-project-docs rule requires
it on any change to that file.
body above is the plan, and repeating it would duplicate.