Skip to content
Vera5
How-To Extension GitHub
← Back to Vera5

Security Model

Vera5 Security Model

Local-first No default telemetry Analyst-owned keys

Vera5 is local-first: enrichment uses API keys you configure, and indicator values are sent only to the vendors you enable—never to Vera5-operated infrastructure. This page summarizes how that trust model works in plain language.

For the full permission rationale, outbound-network boundaries, regression checks, and threat scenarios, read the deeper documentation in the public repository: the security model and SECURITY.md. For the user-facing policy, see the Security & Privacy overview, Privacy Policy, and Third-Party Services Disclosure.

What Vera5 can do on a page

On pages you open over HTTP/HTTPS, Vera5 can:

  • scan visible text (and, when explicitly enabled, allowlisted link attributes) for IOCs;
  • show on-page highlights and a workspace enrichment overlay;
  • enrich indicators when you configure API keys and take an explicit enrich action;
  • manage investigation sessions, collections, history, timelines, notebook fragments, and local correlation memory.

Settings, API keys, enrichment cache, trust policy, and investigation data stay in local browser storage. There is no Vera5-operated enrichment backend and no default telemetry.

Data and trust boundaries

Vera5 keeps analyst data local by default. Only indicator values you choose to enrich leave the browser—and only to the vendors you configure.

DataStays localMay leave the browser (your choice)
API keysStored in extension storage or an optional self-hosted .env you controlSent only to vendor APIs you enable, over TLS, as each connector requires
Extension settings, sessions, collections, notebook, correlationYesNo
Detected IOC valuesProcessed locally for displaySent as indicator-only requests to configured threat-intel APIs
Normalized enrichment JSON for AI summaryBuilt locally from card fieldsSent only to your http://127.0.0.1 LLM endpoint when summary is explicitly requested and enabled
Full page HTML, browsing history, ticketsNot uploaded to Vera5-operated servicesNot sent to Vera5 by design
Investigation replay segmentsStored locally; read-only playbackNo upload; markdown export is user-initiated only
Portable threat profiles and settings packsImported/exported as JSON without keysNo Vera5-hosted profile store

Bring-your-own keys / bring-your-own API: you create keys in vendor portals; Vera5 does not operate a required enrichment proxy or shared maintainer keys. Telemetry: no usage analytics or crash reporting to Vera5 by default.

Trust gates (stacked)

Live outbound enrichment passes through layered gates before any vendor call:

GateBehavior
Manual-only enrichment (default)Auto-fetch on hover stays off until you disable manual-only mode
Quiet mode (default off)Blocks all live vendor calls; pivots, cached enrich display, and local detection remain available
Domain policyBlocks live enrich on denylisted hostnames (and allowlist mode when configured) before pre-query disclosure
Internal asset listsBlocks outbound enrich when the indicator value matches configured internal domains, IPv4 CIDR ranges, or vendor/SaaS hostname patterns
Known-good policy (optional)When enabled, may skip vendor enrich for curated benign/internal matches; does not bypass domain deny or quiet mode
Pre-query disclosureAn inline notice names the enabled vendors and the indicator before the first vendor fetch when notices are on
Selection / context-menu enrichRe-validates the selection as an exact IOC match; same page and indicator gates as hover enrich
Value sanitizationRejects multi-line, oversized, or markup-bearing values before they reach the background worker
Host allowlistBlocks any request before network I/O when the target host is not a declared connector API

Pivot recipe links are navigation-only (no live fetch from the page context).

Domain policy and sensitive sites

Vera5 gates auto-scan and live enrichment on the hostname of the page you are viewing. Policy is stored locally. When the domain enrich gate is enabled (default), the same rules block vendor API calls before pre-query disclosure runs.

ModeBehavior
Allow by default (product default)Auto-scan and enrichment run on all hosts except those on the denylist.
Deny by default (optional posture)Auto-scan and enrichment run only on hosts in the allowlist.

Fresh installs use allow by default, and the denylist ships with sensitive webmail patterns (for example mail.*, webmail.*, and common provider webmail hosts) so those hosts are blocked for auto-scan and live enrichment without manual setup. A Sensitive sites preset can merge banking, patient-portal, and workforce-SaaS patterns into the denylist without removing custom entries. Lists are managed in Vera5 Settings under Trust & consent.

Separate from page-hostname policy, internal asset lists gate enrichment at the indicator level: live enrichment is blocked when the indicator value matches a configured internal domain, IPv4 CIDR range, or vendor/SaaS label—even on otherwise allowed SOC pages.

Opt-in attribute and href extraction

Default: off. Vera5 does not scan link attributes unless you explicitly enable attribute/href extraction in Settings and confirm a first-enable consent dialog. When enabled, a conservative allowlisted attribute scan (for example href, src, data-url) merges with visible-text detection; password inputs and hidden subtrees are excluded, and attribute-sourced IOCs are labeled separately. The same domain policy, quiet mode, and enrich gates apply.

Quiet mode

Quiet mode is a global setting (default off) that blocks outbound vendor enrichment calls while preserving local IOC detection and highlighting, attributed pivot links, cached enrichment display with cached-vs-live labels, and export/sessions/collections/notebook workflows. Bulk enrich and macro enrich steps abort with clear messaging when quiet mode is active.

Optional local backend (127.0.0.1)

When enabled, the extension may send indicator-only enrich requests to a user-operated FastAPI service on localhost instead of calling vendors directly from the background worker.

BoundaryBehavior
Listen address127.0.0.1 only—not exposed on LAN by default
DefaultOff; direct BYOK vendor calls remain the primary path
CredentialsMay live in a local .env on your machine; never committed to git
FallbackExtension falls back to in-browser connectors with honest UI when the backend is unreachable
CORSRestricted to the extension origin and localhost
LoggingBackend request logs redact API keys and bulk IOC payloads
Vera5 cloudThe backend does not relay indicators or keys to Vera5-operated infrastructure

Optional local AI summary (127.0.0.1)

The optional AI summary feature is default-off. When enabled, it sends normalized enrichment JSON only to a user-configured http://127.0.0.1 endpoint. Forbidden inputs include API keys, full DOM, browsing history, raw vendor HTTP bodies, and credentials. Summary output is labeled AI summary (local, unverified) and does not replace the composite score or per-source attribution; guardrails reject claims not present in the input JSON.

Browser permissions

Vera5 requests a minimal Manifest V3 permission set, and each permission maps to a visible analyst capability:

  • Local storage — persists your settings, masked API keys, source toggles, cache, and investigation data on your profile. It is never synced to Vera5 servers.
  • Active tab — lets Vera5 operate on the tab you are viewing when you invoke it, without blanket access to every tab up front.
  • Scripting — injects the detection and overlay UI on demand. All executable code ships inside the extension package; there is no remote code, eval, or maintainer-hosted scripts.
  • Context menu — adds an Enrich selection with Vera5 action that runs through the same trust gates as every other enrich path.
  • Host access (http://*/*, https://*/*, and declared vendor API hosts) — page text is read for detection on origins you visit; only indicator values you enrich are sent to vendors. Any new permission or host pattern requires a documented update before release.

Treating the page as untrusted

Vera5 treats page content as untrusted input for detection display while keeping credentials, enrichment fetches, and vendor calls in extension-controlled contexts. Detection walks visible text nodes (skipping script, style, and form-field content), caps scan size per pass, and applies conservative regex with overlap deduplication. The on-page overlay is assembled by the extension and renders analyst-visible strings and vendor summaries as text—page-supplied markup is never executed as extension UI.

The real extension UI appears only after you invoke Vera5 (toolbar, workspace, keyboard shortcut, context menu, or highlight). Treat unexpected enrich prompts that did not follow your action as suspicious.

Reporting a vulnerability

Security reports are welcome. Review the repository’s SECURITY.md for the threat model and reporting process, or contact Vera5io@proton.me. Please do not include API keys or full page content in reports.

Vera5

Open-source analyst tooling for IOC enrichment.

Project

  • GitHub

Docs

  • How-To
  • Product Vision
  • Security Model

Site

  • Tool
  • Principles
  • Status

Legal

  • Privacy Policy
  • Terms of Service
  • Security & Privacy
  • Third-Party Services Disclosure
  • Cookie Policy
vera5.io Open source · MIT