Whitepaper

Fraud Detection via Behavioral Biometrics

Bot detection through timing regularity, account takeover via behavioral drift, carding identification through form timing, and credential stuffing defense using login page behavior patterns.

ClickStream Research · March 2026 · 18 min read

Abstract

Traditional fraud detection relies on rules (IP blocklists, rate limiting, CAPTCHA) or device signatureing. 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 ClickStream's four fraud detection domains — bot detection, account takeover, carding, and credential stuffing — and the specific behavioral signals that expose each attack pattern. Every signal is computed at the edge in real-time as part of ClickStream's 26-model behavioral scoring pipeline.

What This Means for You

In the Signals tab of your ClickStream dashboard at einstein.clickstream.com, every visitor receives a real-time Bot/Fraud Detection Score. Suspicious visitors are flagged automatically — no rules to configure, no thresholds to set. The platform detects bots, credential stuffing, carding attacks, and account takeover attempts using behavioral biometrics that attackers can't easily spoof. 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 (Model #26 in the behavioral scoring pipeline) evaluates five primary bot indicators:

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.

SignalHuman PatternBot PatternDetection Method
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
Keystroke timingVariable 50ms–400ms inter-keyConstant or zero (paste)Keystroke variance < 10ms = 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 signatureing, 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 behavioral baseline for each identity cluster over time. The baseline includes:

3.2 Behavioral Drift Detection

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

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:

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:

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

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. ClickStream's account takeover detection layer then activates.

6. Unified Fraud Scoring Framework

All four fraud detection domains feed into a unified fraud score that is stored alongside the other 15 behavioral scores:

Score RangeClassificationAction
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 can trigger automated responses based on fraud scores via webhooks or native integrations:

8. False Positive Management

The most critical challenge in fraud detection is minimizing false positives — blocking legitimate users. ClickStream mitigates this through several mechanisms:

9. Conclusion

Behavioral biometrics represents the next frontier in fraud detection. By analyzing the micro-patterns of human interaction — mouse dynamics, typing cadence, scroll behavior, navigation rhythm, and form timing — ClickStream detects bots, account takeover, carding, and credential stuffing attacks that bypass traditional device signatureing, IP-based rules, and CAPTCHA challenges.

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. The scoring happens at the edge in under 3ms, inline with every other behavioral model in ClickStream's pipeline. 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.

GET EARLY ACCESS