feat(surface): BearTrap + BearWall dedicated surface page + counter chiclet - #153
Merged
Conversation
…hiclet Both actors were emitting the beartrap-detection observer signal but the user had no dedicated place to see caught probes / blocked vendors / canary exfiltrations. Hamburger menu items I added in #142 anchored at bearnet.html#beartrap — a page that didn't exist. Adds: - settings/start/beartrap.html — unified surface page, 3 tabs: * Fingerprint probes (BearTrap) — kind: 'fingerprint' * Blocked vendors (BearWall) — kind: 'vendor-blocked' * Canary tokens — kind: 'canary' Polls http://127.0.0.1:8093/honeypot (already exposed by capture-sidecar at server.rs:68) every 2s. Deep-link support: #beartrap|#bearwall|#canary jump to the corresponding tab. credentials:'omit', cache:'no-store'. Empty-state explainers so first-run users understand what each tab means. - settings/start/bearstart-autoconfig.js — extend the existing observer handler that already tracked fingerprint origins. Now tracks all three kinds, sets data-block-count on the nav-bar button, updates tooltip with a per-kind summary (e.g. '2 fingerprint attempts, 5 vendor requests blocked — open BearTrap'). Chiclet visible from any tab. - scripts/stage-bearnet.sh — stage the new beartrap.html into the packaged app so resource://bearstart/beartrap.html resolves. - settings/start/bearstart-autoconfig.js — update the hamburger appMenu BearTrap + BearWall entries to point at beartrap.html (was pointing at the non-existent bearnet.html#beartrap anchor). The observer wiring is unchanged from what BearTrapMonitor.sys.mjs already emits (line 97 for canary/canary matches, line 289 for vendor-blocked → same 'beartrap-detection' topic with kind fields). No new actor plumbing needed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Both actors were emitting the
beartrap-detectionobserver signal but the user had no dedicated place to see caught probes / blocked vendors / canary exfiltrations. Hamburger menu items I added in #142 anchored atbearnet.html#beartrap— a page that didn't exist. This lands the real surface.Adds
settings/start/beartrap.html — unified surface, 3 tabs:
kind: 'fingerprint'kind: 'vendor-blocked'kind: 'canary'Polls
http://127.0.0.1:8093/honeypot(already exposed by capture-sidecar atserver.rs:68) every 2s. Deep-link:#beartrap|#bearwall|#canaryjump to the corresponding tab.credentials:'omit',cache:'no-store',referrerPolicy:'no-referrer'. Empty-state explainers.URL-bar counter chiclet — extends the existing observer in
bearstart-autoconfig.jsthat already tracked fingerprint origins. Now tracks all threekinds (fingerprint / vendor-blocked / canary), setsdata-block-counton the nav-barbearnet-button, updates tooltip with a per-kind summary. Visible from any tab.stage-bearnet.sh — stage the new HTML into the packaged app so
resource://bearstart/beartrap.htmlresolves.hamburger appMenu — update BearTrap + BearWall entries to point at
beartrap.html(was the non-existentbearnet.html#beartrapanchor).Adversarial-review checklist
http://127.0.0.1:8093/honeypot(loopback),credentials:'omit',cache:'no-store', HTML has<meta name="referrer" content="no-referrer">escapeHTML()before insertion; no innerHTML with untrusted datastage-bearnet.shstaging list;verify-package.shdoesn't have a specific assertion for beartrap.html yet — follow-upTest plan
node -c settings/start/bearstart-autoconfig.js→ syntax okresource://bearstart/beartrap.html, confirm sidecar polling + tab switching. This will be automated by the cockpit-boot-style integration test I'm queueing in the same day's work.