Skip to content

docs(prd): add PRD 0013 — Make attacks expensive instead of blocking them - #62

Merged
ralyodio merged 1 commit into
masterfrom
docs/prd-0013-tar-pit
Jul 28, 2026
Merged

docs(prd): add PRD 0013 — Make attacks expensive instead of blocking them#62
ralyodio merged 1 commit into
masterfrom
docs/prd-0013-tar-pit

Conversation

@ralyodio

Copy link
Copy Markdown
Contributor

Specification for the tar-pit core module, listed in PRD.md and not yet specified.

Blocking has a tell: an attacker whose connection is refused learns immediately that they were detected and rotates address, which on a botnet costs nothing. Slowing them instead inverts the economics — a connection held open for thirty seconds costs the attacker a worker, a socket and a timeout, while costing the defender almost nothing. Against a scanner working a list, slow is worse than closed: closed is a fast negative, slow ties up capacity and yields nothing.

It also fills a real gap as a MIDDLE response, useful exactly where confidence is moderate and blocking would risk collateral damage.

The defining hazard is self-inflicted denial of service: a tar-pit costing a thread and a descriptor per attacker has simply moved the DoS to the defender. Hence a hard concurrency ceiling and a non-blocking implementation as P0 requirements rather than tuning, and an open question about auto-disabling under a real flood, where holding connections open is precisely what the attacker wants.

Spec only — no implementation in this PR.

…them

Blocking has a tell: an attacker whose connection is refused learns immediately that they were detected and rotates address, which on a botnet costs nothing. Slowing them instead inverts the economics — a connection held open for thirty seconds costs the attacker a worker, a socket and a timeout, while costing the defender almost nothing. Against a scanner working a list, slow is worse than closed: closed is a fast negative, slow ties up capacity and yields nothing.

It also fills a real gap as a MIDDLE response, useful exactly where confidence is moderate and blocking would risk collateral damage.

The defining hazard is self-inflicted denial of service: a tar-pit costing a thread and a descriptor per attacker has simply moved the DoS to the defender. Hence a hard concurrency ceiling and a non-blocking implementation as P0 requirements rather than tuning, and an open question about auto-disabling under a real flood, where holding connections open is precisely what the attacker wants.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@ralyodio
ralyodio merged commit 3a9988c into master Jul 28, 2026
8 checks passed
@ralyodio
ralyodio deleted the docs/prd-0013-tar-pit branch July 28, 2026 17:45
@github-actions

Copy link
Copy Markdown

vu1nz Security Review

0 finding(s) in PR #?

No security issues found.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant