You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Opening this as a discussion alongside #388 so the Bankr team has a non-code thread to weigh in on scope, naming, and how this layer should sit beside existing controls.
TL;DR
Live, public, rate-limited preflight endpoint: POST https://fleet-watcher.replit.app/api/bankr-guard/inspect
npm package: fleet-watcher-bankr-guard (wraps fetch, fail-closed, never sees the bk_ key)
Why this complements aeon-skill-security-scan aeon-skill-security-scan catches malicious skills statically. It cannot catch the chain where every installed skill is clean but one obeys an instruction smuggled in via fetched content (tweet, RSS, DM, on-chain memo). That chain ends in a wallet drain. Fleet Watcher closes it by inspecting the proposed wallet action synchronously, before it reaches api.bankr.bot.
Happy to iterate on naming, scope, or pattern coverage. Everything MIT — if you would rather fork and host internally, the self-host instructions are in the README.
Opening this as a discussion alongside #388 so the Bankr team has a non-code thread to weigh in on scope, naming, and how this layer should sit beside existing controls.
TL;DR
POST https://fleet-watcher.replit.app/api/bankr-guard/inspectfleet-watcher-bankr-guard(wrapsfetch, fail-closed, never sees thebk_key)Why this complements
aeon-skill-security-scanaeon-skill-security-scancatches malicious skills statically. It cannot catch the chain where every installed skill is clean but one obeys an instruction smuggled in via fetched content (tweet, RSS, DM, on-chain memo). That chain ends in a wallet drain. Fleet Watcher closes it by inspecting the proposed wallet action synchronously, before it reachesapi.bankr.bot.What gets blocked (live-verified)
\u0069gnore-style evasion doesnt help)bankr-claim.xyz,bankrbot.io,bankr-airdrop*, …)permit/permit2/signTypedDataoriginating from fetched contentbk_keys appearing inside untrusted contentEach BLOCK includes a remediation line that mirrors Bankr own incident-response order: Pause → Revoke → Rotate → Audit → Unpause.
Security properties
bk_key.reasonfield — no reflected-secret risk.What wed like from the Bankr team
x-bankr-verifiedresponse header onapi.bankr.botwould let the SDK detect spoofed upstreams.Threat model: https://github.com/Goblin-rush/fleet-watcher/blob/main/threat_model.md
Happy to iterate on naming, scope, or pattern coverage. Everything MIT — if you would rather fork and host internally, the self-host instructions are in the README.