Whitepaper

Fraud Detection via Behavioral Biometrics

Bot detection through timing regularity — plus the behavioral signals that expose account takeover, carding, and credential stuffing, and how to act on them in your own risk stack.

ClickStream Research · March 2026 · 18 min read

Abstract

Traditional fraud detection relies on rules (IP blocklists, rate limiting, CAPTCHA) or device signal matching. These approaches are easily circumvented by sophisticated attackers using residential proxies, headless browsers with signature spoofing, and CAPTCHA-solving services. Behavioral biometrics offers a fundamentally different approach: instead of identifying the device, identify the human (or non-human) operating it. This whitepaper details four fraud domains — bot detection, account takeover, carding, and credential stuffing — and the behavioral signals that expose each attack pattern. ClickStream ships real-time bot and anomaly detection today (including stealth-browser detection) as part of its 26-model behavioral scoring pipeline, computed at the edge on every event; the account-takeover, carding, and credential-stuffing sections describe how teams can apply ClickStream's behavioral scores and raw signals to those attack patterns in their own risk stack.

What This Means for You

In the Intelligence workspace of your ClickStream dashboard at einstein.clickstream.com, every visitor receives a real-time Human score (0–100) and bot classification. Suspicious visitors are flagged automatically — no rules to configure, no thresholds to set. The platform classifies bots — including stealth automation that spoofs devices and headers — and scores behavioral anomalies in real time; those same signals give your risk stack the raw material to catch credential stuffing, carding, and account-takeover patterns. This whitepaper explains the detection engine behind those scores.

Table of Contents

  1. The Behavioral Approach to Fraud
  2. Bot Detection
  3. Account Takeover Detection
  4. Carding Detection
  5. Credential Stuffing Detection
  6. Unified Fraud Scoring Framework
  7. Automated Response Actions
  8. False Positive Management
  9. Conclusion

1. The Behavioral Approach to Fraud

Humans interact with websites in fundamentally different ways than automated scripts. The differences are measurable, consistent, and extremely difficult to fake:

The core insight of behavioral biometrics is that behavior is harder to fake than identity. An attacker can spoof a device signature, rotate IP addresses, and solve CAPTCHAs. But faithfully reproducing the micro-behavioral patterns of a specific human in real-time is computationally intractable.

2. Bot Detection

ClickStream's bot-probability model — one of the 26 models in the behavioral scoring pipeline, reconciled with a per-request network botScore — evaluates five primary bot indicators. In production, that classification spans 11 bot categories and identifies 158 named bots (including 38 named AI agents), with a dedicated stealth-browser lane that combines mouse entropy, fingerprint consistency, and TLS JA3/JA4 analysis:

2.1 Timing Regularity

The strongest bot signal is timing regularity. Humans have variable inter-action delays that follow a log-normal distribution. Bots operate on fixed intervals or use simple random delays that produce a uniform distribution. The thresholds below are illustrative of the patterns involved, not published detection cut-offs:

SignalHuman PatternBot PatternDetection Method (illustrative)
Inter-click timingLog-normal: 200ms–8s with long tailConstant (e.g., 500ms) or uniform randomCoefficient of variation < 0.3 = bot signal
Inter-page timingHighly variable: 5s–300sConstant or narrow rangeStandard deviation < 2s = bot signal
Scroll speedVariable with pausesConstant velocityScroll velocity variance < 0.1 = bot signal

2.2 Interaction Absence

Headless browsers (Puppeteer, Playwright, Selenium) render pages but often skip generating mouse, scroll, and keyboard events. The absence of these events is a strong bot indicator:

function detectInteractionAbsence(features: BehavioralFeatures): number { let absenceScore = 0; // Desktop with no mouse movement = strong bot signal if (features.deviceType === 'desktop') { if (features.mouseDistance === 0) absenceScore += 40; if (features.mouseVelocity === 0 && features.clickCount > 0) absenceScore += 30; } // Page rendered but no scroll on long content if (features.scrollDepth === 0 && features.timeOnPage > 0.2) absenceScore += 15; // Clicks without cursor approach trajectory if (features.clickCount > 0 && features.cursorReversals === 0) absenceScore += 10; return absenceScore; }

2.3 Navigation Pattern Analysis

Bots and scrapers exhibit distinct navigation patterns compared to humans:

PatternHumanBot
Page visit orderSelective, interest-drivenSystematic (all pages, alphabetical, or sitemap order)
Session depth2–8 pages typicalHundreds or thousands
Time per pageVariable, content-dependentConstant or near-zero
Referrer patternOrganic entry pointsDirect to deep pages
Resource loadingAll resources (CSS, images, JS)Often skip non-essential resources

3. Account Takeover Detection

Account takeover (ATO) occurs when an attacker gains access to a legitimate user's account. Traditional detection relies on IP geolocation and device signal matching, both easily spoofed. Behavioral biometrics detects ATO through behavioral drift — the deviation between the current session's behavioral pattern and the account holder's established baseline.

3.1 Baseline Construction

ClickStream builds a longitudinal behavioral profile for each identity cluster over time. The profile includes:

Session-level interaction quality (mouse dynamics, hover, timing regularity) is scored separately on every event as part of bot detection, rather than stored as a per-person baseline.

3.2 Behavioral Drift Detection

The drift-scoring logic below is a conceptual illustration of how a risk stack can compare a session against a stored baseline — not shipped ClickStream code:

function detectBehavioralDrift( current: BehavioralFeatures, baseline: BehavioralBaseline ): number { let driftScore = 0; const threshold = 2.5; // standard deviations // Mouse velocity drift const velocityZ = Math.abs( (current.mouseVelocity - baseline.avgMouseVelocity) / baseline.stdMouseVelocity ); if (velocityZ > threshold) driftScore += 20; // Typing speed drift const typingZ = Math.abs( (current.inputFieldTime - baseline.avgInputTime) / baseline.stdInputTime ); if (typingZ > threshold) driftScore += 25; // Navigation pattern drift if (current.deviceType !== baseline.preferredDevice) driftScore += 10; // Session timing drift (accessing at unusual hours) const hourOfDay = new Date().getHours(); if (!baseline.typicalHours.includes(hourOfDay)) driftScore += 15; // Rapid actions after login (rushing to change settings/payment) if (current.sessionDuration < 0.05 && current.pageCategory === 'account_settings') { driftScore += 30; } return Math.min(driftScore, 100); }

3.3 ATO Red Flags

Patterns fraud teams typically weight when building ATO rules on top of behavioral signals:

SignalWhy It MattersWeight
Immediate navigation to account settingsAttackers change password/email first to lock out ownerHigh
Payment method change within first sessionAttackers add their payment or extract stored payment infoHigh
Shipping address change + immediate purchaseClassic ATO monetization patternVery High
Different device type than baselineAttacker rarely uses same device as victimMedium
Mouse dynamics mismatchDifferent person = different motor patternsHigh
Typing cadence mismatchTyping is as unique as handwritingHigh

4. Carding Detection

Carding is the process of testing stolen credit card numbers on e-commerce sites. Carders exhibit distinctive behavioral patterns that differ sharply from legitimate customers:

4.1 Form Timing Anomalies

Legitimate customers type their payment information from memory (slowly, with corrections) or auto-fill from their browser. Carders paste card numbers from a list or type them with copy-paste patterns. The timing bands below are typical patterns reported in fraud research, not ClickStream detection thresholds:

MetricLegitimate CustomerCarder
Card number entry time4–15 seconds (typing from memory)< 1 second (paste) or 2–3s (practiced)
CVV entry time2–6 seconds (find card, flip it over)< 0.5 seconds (from same list as card number)
Expiry date entry1–3 seconds< 0.5 seconds
Total checkout form time30–120 seconds< 10 seconds
Name entry2–5 seconds (auto-fill or known)< 1 second (paste)
Address entry10–30 seconds< 3 seconds (paste)

4.2 Checkout Speed Analysis

The total time from product page to checkout completion is a powerful signal. Carders do not browse; they go directly to the cheapest product (often a gift card or digital item) and proceed to checkout as fast as possible. Conceptually, a carding detector built on these signals looks like this (illustrative, not shipped ClickStream code):

function detectCardingBehavior(features: BehavioralFeatures): number { let cardingScore = 0; // Ultra-fast checkout completion if (features.formCompletionRate > 0.9 && features.inputFieldTime < 0.05) { cardingScore += 35; // Completed form in <3 seconds } // Minimal browsing before checkout if (features.sessionPageCount < 0.15 && features.pageCategory === 'checkout') { cardingScore += 25; // Went directly to checkout with <2 pages } // No scrolling on product page (didn't read anything) if (features.scrollDepth < 0.1) cardingScore += 15; // Multiple rapid checkout attempts (card testing) if (features.formInteractions > 0.8 && features.errorEncountered) { cardingScore += 25; // Many form submissions with errors = testing cards } return Math.min(cardingScore, 100); }

5. Credential Stuffing Detection

Credential stuffing uses breached username/password pairs to attempt logins on other sites (exploiting password reuse). The attack uses automated tools but must interact with login forms.

5.1 Login Page Behavior Patterns

Typical patterns reported in fraud research:

SignalLegitimate UserCredential Stuffing
Login page dwell time5–30 seconds< 2 seconds or exactly constant
Field focus sequenceTab between fields, possible correctionsDirect field fills, no navigation
Password field timing2–10 seconds (recall/typing)< 0.5 seconds (paste)
Mouse to submit buttonCurved approach with decelerationInstant click or no mouse movement
Failed login responseRe-read error, try again slowlyInstant retry with different credentials
Sessions per IP1–3 per dayHundreds per hour

5.2 Post-Login Behavioral Analysis

If a credential stuffing attack succeeds (the credentials were valid), the attacker's post-login behavior differs from the legitimate account holder. The post-login behavioral shift shows up in ClickStream's session scores — engagement, frustration, anomaly — giving your ATO controls a second chance to catch it.

6. Unified Fraud Scoring Framework

Bot probability, stealth score, and behavioral anomaly signals are persisted alongside the rest of ClickStream's 26 behavioral models, and roll up into a single 0–100 Human score per visitor. The bands below are a recommended playbook for acting on those scores in your own stack, expressed as a normalized 0–100 risk scale (the inverse of the Human score):

Risk RangeClassificationRecommended Action (your stack)
0–20LegitimateNo action
21–40Low riskEnhanced monitoring
41–60Moderate riskStep-up authentication (CAPTCHA, email verification)
61–80High riskBlock transaction, require manual review
81–100Very high risk (likely fraud)Block and alert, rate limit IP

7. Automated Response Actions

ClickStream streams its scores to your stack in real time — Signals SDK reads on every tier, the realtime Signals Feed WebSocket (Scale+), signed webhooks, and CRM push (HubSpot, Salesforce, Pipedrive, Zoho) — so your systems can trigger responses such as:

8. False Positive Management

The most critical challenge in fraud detection is minimizing false positives — blocking legitimate users. ClickStream's scoring design, and the response patterns it enables, mitigate this in several ways:

9. Conclusion

Behavioral biometrics represents the next frontier in fraud detection. By analyzing the micro-patterns of human interaction — mouse dynamics, scroll behavior, navigation rhythm, and form timing — ClickStream detects bots and behavioral anomalies that bypass traditional device signal matching, IP-based rules, and CAPTCHA challenges — and its per-event behavioral signals power account-takeover, carding, and credential-stuffing defenses in your own stack.

The key advantage is that behavioral signals are computed passively, without user friction. There is no CAPTCHA to solve, no extra authentication step, and no visible detection mechanism. Scoring runs at the edge inline with every other behavioral model in ClickStream's pipeline — p95 under 3 ms per event, enforced by a CI benchmark gate. Legitimate users never know they are being evaluated. Only the fraudulent actors experience intervention.

As automated attack tools become more sophisticated — using residential proxies, signature spoofing, and AI-generated behavioral mimicry — behavioral biometrics will become increasingly essential. The fundamental asymmetry remains: faking identity is easy, but faking human behavior at the micro-level is computationally intractable.

Stop Wasting Ad Budget on Bots

Behavioral biometrics detect fraudulent clicks in real time — so every ad dollar reaches a real potential customer. Protect your ROAS at the edge.

Start free