CAIN-42 CAIN Studio
25CAIN-42 Top 25 › KEYSTONE CI › Attack lab

Attack lab

The gate, the signing and the verifier are all live. Scan the published sample PRs, send your own diff to the same route the GitHub Action uses, and try to make a signed verdict say something it did not.

11 attacks 2 controls live: nothing pre-recorded

  1. Pick a preset. Red ones are attacks, green ones are honest requests that must still work.
  2. Tamper. Choose any field and drop it, null it, change its type, upper-case it, flip one character, or add a field the product never asked for.
  3. Send and read the real reply, or run every preset and watch the scoreboard fill.

What each preset tests

PresetRouteWhy it matters
controlClean refactorPOST /keystone-ci/scanAn ordinary change must pass, or nobody keeps the gate on.
attackAgent skips the failing testPOST /keystone-ci/scanThe most common agent shortcut: make CI green by skipping the test.
attackpull_request_target pwn requestPOST /keystone-ci/scanFork code runs with this repository's secrets and write token.
attackPrivate key committedPOST /keystone-ci/scanSecrets in a diff are CRITICAL; history keeps them.
attackTyposquatted dependenciesPOST /keystone-ci/scanNames checked by CAIN-42's supply-chain guard, not a model.
attackTrojan Source (bidi characters)POST /keystone-ci/scanCode that runs differently from how it reads.
attackYour diff: delete the auth testsPOST /keystone-ci/checkDeleting tests is how a weaker change gets a green build.
attackYour diff: AWS key in settingsPOST /keystone-ci/checkRecorded in the public ledger as BLOCK; the key itself is redacted.
attackYour diff: invisible character in a namePOST /keystone-ci/checkZero-width characters make two names look identical.
controlGenuine signed attestationPOST /keystone-ci/verifyA real envelope from the live gate verifies against the pinned key.
attackSame attestation, verdict edited PASS -> BLOCKPOST /keystone-ci/verifyAny edit to the signed statement breaks the Ed25519 signature.
attackSame attestation, signatures removedPOST /keystone-ci/verifyNo signature is not a pass.
attackSame attestation, payload type changedPOST /keystone-ci/verifyDSSE signs the payload type too (PAE), so it cannot be swapped.

The /check presets write a real signed record to the public KEYSTONE CI ledger, like the Action does. Rate limits apply per address (240/hour for /check). Tamper with attestation.payload or .sig and send it: it must come back valid=false. Our own lab; no independent test.

FIRME AI CORPORATION · CAIN-42 is a Byzantine trust fabric. Numbers marked "our own check" were run by us, not by an independent party. Nothing on these pages is a certification.