Methodology
Our scoring model, false-positive philosophy, and confidence thresholds — explained honestly.
Signal vs verdict
A score above our alert threshold means a domain name looks statistically similar to something on your watch-list, and that similarity is unusual enough to warrant your attention. It does not mean:
Many matches are legitimate: a competitor who includes your brand name in a keyword, a parked domain purchased years ago, a security researcher's test environment. We state this clearly in every alert we send.
Thresholds
| Score | Delivery | Meaning |
|---|---|---|
| ≥ 80 | Immediate email | Strong match — review urgently |
| 50–79 | Daily digest | Plausible match — review when convenient |
| 40–49 | Internal log only | Weak signal — not delivered to you |
| < 40 | Discarded | Statistical noise |
Thresholds are adjustable per tenant. High-risk sectors (banking, crypto) typically lower the immediate alert threshold to 65–70 to catch more borderline cases.
Pipeline
Every certificate that appears in a public CT log passes through the same pipeline before we decide whether to store or alert.
*. wildcard, trim whitespace.xn--) to Unicode so homoglyph detection works correctly.garantı → garanti).Signals
Signals are grouped into families. We publish the families and their direction — we don't publish exact weights, because weights are recalibrated periodically and because publishing them makes evasion cheap.
| Family | Signal | Direction |
|---|---|---|
| Term match | Exact substring of a brand term | ↑ strong |
| Damerau-Levenshtein distance 1 (one-char edit) | ↑ strong | |
| Damerau-Levenshtein distance 2 | ↑ moderate | |
Homoglyph skeleton match — including Turkish characters: ı→i, ş→s, ğ→g, ç→c, ö→o, ü→u |
↑ strong | |
| Combosquat (brand term concatenated with a keyword) | ↑ moderate | |
| Keywords | Generic phishing keywords: login, verify, secure, update, account |
↑ moderate |
Turkish phishing keywords: giris, sifre, dogrulama, edevlet, odeme — most global detection tools miss these entirely |
↑ moderate | |
| Structural | Hyphen count, subdomain depth, digit density | ↑ weak |
| Punycode present in registrable domain | ↑ moderate | |
| Domain length significantly longer than the brand term | ↑ weak | |
| TLD | Free-registration TLD (.tk, .ml, .ga, .cf, newer gTLDs) |
↑ moderate |
Country TLD matching the tenant's home market (e.g. .tr for Turkish brands) |
↓ mild | |
| Certificate | Free CA issuance (Let's Encrypt, ZeroSSL) — legitimate but also trivially obtained by adversaries | ↑ weak |
Enrichment
For candidates that cross the digest threshold, we run an enrichment pass before storing or alerting. Enrichment provides context and can lower a score as well as confirm it.
Enrichment steps: a single HTTP HEAD request (GET if HEAD fails), a DNS lookup, and registration age from RDAP/WHOIS. For technical details on what we send and how to opt out, see our scanner page.
Enrichment signals that decrease confidence:
A domain that scores 75 pre-enrichment but turns out to be a decade-old parked page may not reach your inbox at all. Enrichment is the last line of false-positive defence.
Accuracy
An automated system running at CT-log scale will produce false positives. Our goal is to keep the ratio low enough that alerts remain actionable — not to eliminate false positives by raising the threshold, which would also eliminate true positives.
If you consistently see false-positive domains matching a particular pattern, you can add those patterns to your suppress-list and we'll filter them before delivery. Suppression rules are tunable without changing your alert threshold.
Scope
We are a detection system, not an investigation or remediation service. We don't:
For takedown and legal action, contact an IP or trademark attorney, or use your registrar's abuse mechanism.
Sources
We do not use active port scanning, vulnerability databases, or dark-web sources.