Skip to content

Add XposedOrNot analyzer (email breach lookup, no API key required) - #1471

Open
DevaOnBreaches wants to merge 2 commits into
TheHive-Project:masterfrom
XposedOrNot:add-xposedornot-analyzer
Open

Add XposedOrNot analyzer (email breach lookup, no API key required)#1471
DevaOnBreaches wants to merge 2 commits into
TheHive-Project:masterfrom
XposedOrNot:add-xposedornot-analyzer

Conversation

@DevaOnBreaches

Copy link
Copy Markdown

This PR adds an analyzer for XposedOrNot — an open, free data-breach search service. Given a mail observable, it reports which known data breaches the address appears in.

No API key or registration required. Both flavors work out of the box via the free keyless API (rate limits: 2 req/s, 25/hour per IP; the analyzer returns an actionable error when reached). An optional key configuration item (from console.xposedornot.com) switches to the commercial Plus API with higher limits.

Flavors

  • XposedOrNot_CheckEmail — fast lookup; report lists the breach names, taxonomy XON:Breaches=<count> (safe at 0, suspicious at 1+).
  • XposedOrNot_BreachAnalytics — detailed report: per-breach date, records exposed, affected domain, exposed data classes and password-storage risk, plus first/latest exposure year, total records and overall risk. Adds XON:Risk=<label> and a malicious-level XON:PlaintextPwd=yes when any breach stored passwords in plaintext. Breached-site domains are extracted as domain artifacts for pivoting.

Privacy / data egress

Only the observable's email address is sent (TLS) to xposedornot.com. Since an email address is PII, both flavors ship TLP- and PAP-gated (check_tlp/check_pap, max 2 by default), and this is documented in the analyzer README.

Testing

  • Live runs via the stdin job contract for both flavors: breached address (201/202 breaches, correct taxonomies and domain artifacts), clean address (renders the not-found panel, safe taxonomy), invalid input, and TLP-exceeded (refuses before any network call).
  • Mocked: HTTP 429 (actionable message), Plus API path (URL-encoding of user+tag@ addresses, x-api-key header, plaintext-password taxonomy), clean 200-with-empty response. The API key never appears in reports or errors.
  • Long templates handle all three states (error / not found / success); short templates are the standard taxonomy chips.
  • Descriptors are JSON-valid; requirements are cortexutils + requests only.

  required)

Two flavors for mail observables backed by the free, keyless XposedOrNot
  API:
  XposedOrNot_CheckEmail (fast breach-name list) and XposedOrNot_BreachAnalytics
  (per-breach dates, records, exposed data classes, password-storage risk,
  overall
  risk score, breached-site domains extracted as artifacts).

  Taxonomies: XON:Breaches (safe/suspicious), XON:Risk, and a malicious-level
  XON:PlaintextPwd when any breach stored plaintext passwords. Both flavors are
  TLP- and PAP-gated; an optional API key raises rate limits via the Plus API.
  Clean results render a not-found panel rather than an error; 429 responses
  return an actionable message. Includes README, service logo and report
  templates for both flavors.
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