Product deep dive
Account Protector
Bot detection asks “is this a human?”. Account Protector asks a harder question: “is this the human who owns this account?” — and scores every login, registration and sensitive account action accordingly.
The problem it solves
Credential stuffing succeeds because billions of username/password pairs are already public and password reuse is universal. The attacker does not need to break your authentication; they need to use it, at scale, with valid credentials. From the application's point of view every request is a correct login. Rate limits and CAPTCHAs raise the cost, but sophisticated operators distribute across residential proxies, solve challenges through farms, and pace themselves below any static threshold.
Account Protector sits in front of the account lifecycle and answers a question ordinary bot detection cannot: not “is this a human?” but “is this the human who owns this account?”
Attack patterns covered
| Pattern | Description | Signal that exposes it |
|---|---|---|
| Credential stuffing | Replaying leaked credential pairs across many accounts | Many distinct usernames from few device fingerprints; abnormal 401 ratio; population anomaly |
| Credential cracking / brute force | Guessing passwords for a targeted account | Many attempts against one user from varied sources |
| Account takeover (ATO) | Successful login by someone other than the owner | User-level deviation: new device, new geography, impossible travel, changed behaviour |
| Fake account creation | Mass registration for promo abuse, fraud staging, spam | Registration velocity, disposable identifiers, shared fingerprints across “new” users |
| MFA fatigue / push bombing | Repeated MFA prompts until the victim approves | Repeated authentication attempts against one user with a valid password |
| Post-login abuse | Changing email, password, shipping address or payout details to lock the owner out | Sensitive-action requests from a session whose risk score is elevated |
| Loyalty and gift-card abuse | Draining points or balances from compromised accounts | Redemption from an unfamiliar device shortly after an anomalous login |
| Aggregator / third-party access | Legitimate services logging in on the user's behalf | Consistent, declared automation — should be allow-listed, not blocked |
User profiles and population profiles
Account Protector's core mechanism is comparison against two learned baselines, evaluated together on every scored request.
User profile (individual baseline)
For each known user identifier, the platform builds a profile of how that specific account normally authenticates:
- Devices and browsers — the fingerprints previously seen for this user, and how long each has been known.
- Networks — typical IP addresses, ASNs, connection types (residential, mobile, corporate, hosting/proxy).
- Geography — usual countries and regions, and the plausibility of travel between consecutive logins.
- Timing — the hours and days on which this account is normally active.
- Behaviour — how the user interacts with the login form: typing cadence, pointer use, form-fill patterns, paste behaviour.
A login that matches the profile is low risk even from an unusual place. A login that contradicts it — new device and new country and hosting-provider IP and pasted credentials at 03:00 — is high risk even with the correct password.
Population profile (site-wide baseline)
Simultaneously, the platform models what normal traffic looks like across your whole user base: the usual mix of device types, browser versions, operating systems, ASNs, countries, and the usual login success/failure ratio. This catches the attack that no individual profile can see — a campaign in which each account is touched only once or twice, but the campaign as a whole is statistically impossible: an implausible concentration of one browser build, or a sudden surge of first-time devices from a single ASN.
The two baselines are complementary by design. A low-and-slow attacker who evades the population model still contradicts individual user profiles; a fast distributed campaign that mimics one user's device still deforms the population model.
Risk scoring
Each scored request produces a user risk score accompanied by risk factors — the specific reasons the score was raised. The factors matter as much as the number: they are what makes the score explainable to a fraud team and actionable in a rule.
| Factor family | Examples |
|---|---|
| Device | Unrecognised device for this user; device fingerprint shared across many accounts; inconsistent or spoofed device attributes |
| Network | Anonymising proxy, VPN, Tor, or hosting-provider IP; ASN never previously used by this user; IP reputation |
| Location | New country or region; impossible travel between consecutive events |
| Behavioural | Absent human interaction signals; automation-like form completion; credentials pasted where the user normally types |
| Velocity | Abnormal attempt rate per user, per device, per IP or per ASN |
| Population anomaly | Traffic characteristics far outside the site-wide norm for this endpoint |
| Bot signals | Bot detection results imported alongside user-level evidence |
A score is a probability, not a verdict. It answers “how far is this from normal for this account and this site?” — and the answer must be combined with the value of the action being attempted before you decide what to do.
Telemetry and user identification
Two integration inputs make the whole product work, and both need engineering attention early.
1. Client-side telemetry
- JavaScript on login, registration and account pages collects device, browser and interaction signals, which the edge combines with network and request evidence.
- Verify the script actually loads and executes on every protected page, including those rendered inside modals, iframes or a separate identity-provider domain.
- A Content Security Policy that blocks the script silently removes an entire evidence class — those sessions get scored on network signals alone.
- Native mobile apps need the equivalent SDK-based collection; otherwise your own app traffic looks like a scripted client.
2. The user identifier
- Account Protector must be told which part of the request carries the user identity — a form field, JSON body field, header or cookie.
- Extraction has to be correct for every login variant you operate: standard form post, JSON API login, social login callback, mobile app login, and any legacy path.
- Identifiers should be normalised (case, whitespace, alias forms of the same email) so one human maps to one profile.
- Hash the identifier where policy requires it, so profiles are keyed on a pseudonymous value rather than a raw email address. Hashing must be consistent across every login path, or the same user fragments into several profiles.
If the identifier is misconfigured on even one login path, that path silently produces no user-level profiling. In practice this is the single most common cause of “Account Protector isn't detecting anything”.
Endpoints to protect
Protection scope should follow the whole account lifecycle, not just the login form. Attackers move to whichever endpoint is unmonitored.
| Endpoint class | Examples | Why |
|---|---|---|
| Authentication | /login, /api/auth/token, OAuth token endpoints, mobile login APIs | The primary target for stuffing and cracking |
| Registration | /register, /signup, invite acceptance | Fake account creation and promo abuse |
| Credential recovery | /forgot-password, reset-token submission, OTP verification | An alternate route to takeover that bypasses the login form entirely |
| Sensitive account changes | Change email, change password, add device, change MFA method | The step that converts a compromised session into a locked-out owner |
| Financial and payout | Add card, change bank/payout details, transfers, withdrawals | Where the loss actually crystallises |
| Stored value | Loyalty redemption, gift-card balance, points transfer | Frequently forgotten, and directly monetisable |
| Profile and data access | View/export personal data, order history | Privacy exposure even without a financial transaction |
Scoring the post-login sensitive actions is the part most organisations skip, and it is the part that limits the damage when a takeover does succeed. Login protection reduces the number of compromises; transactional protection reduces what each one costs you.
Rules, actions and exceptions
Policy is expressed as rules that combine the risk score, the risk factors and the endpoint in question, and then apply an action.
Available actions
| Action | Effect | Appropriate for |
|---|---|---|
| Monitor | Score and factors recorded; request unchanged | Every rule, initially — without exception |
| Allow | Explicitly permitted | Known-good automation and partners |
| Deny | Request rejected at the edge | Unambiguous high-risk traffic on high-value actions |
| Custom deny | Branded or instructive response | Avoiding a raw 403 for a possibly genuine user |
| Forward score to origin | Score and factors passed as headers | The most useful default — the application decides |
Allow lists and exceptions
- Your own automation — synthetic login monitors, test accounts, CI end-to-end suites. These will otherwise be your first and loudest false positives.
- Corporate egress — call-centre agents legitimately signing into many customer accounts from one IP, and staff shared-desktop environments.
- Declared third parties — aggregators and partners with a contractual right to access accounts on a user's behalf; allow-list by identity, not just IP.
- Known migration events — a platform cut-over or forced password reset creates a legitimate surge of first-time devices; plan an exception window rather than absorbing the false-positive spike.
Graduated response
The correct action depends on both the score and the value of what is being attempted. The same score should not produce the same outcome on a browse action and a payout change.
| Risk | Login | Sensitive action (payout, email change) |
|---|---|---|
| Low | Allow silently | Allow |
| Medium | Step-up MFA, or forward the score and let the application decide | Always step up; require re-authentication |
| High | Deny, or force full re-verification | Deny and alert; notify the account owner out of band |
Forwarding the score to the origin is usually the most valuable integration: the application already knows the account's value, tenure, balance and MFA status, and can combine those with the score far more intelligently than an edge rule can.
Strip Account Protector headers from any request that reaches the origin without traversing Akamai. Otherwise an attacker can set the header themselves and declare their own session low-risk.
Reports and investigation
- Risk distribution over time — the shape of scoring across logins, with campaign spikes clearly visible against the baseline.
- Risk factor breakdown — which factors are driving scores. If one factor dominates every high score, verify it is not a misconfiguration (for example, all traffic appearing to come from one IP because a proxy in front of Akamai is not forwarding the client address).
- Top targeted accounts — accounts under sustained attack, which are the ones worth proactively protecting or contacting.
- Attack source view — ASN, geography and device clustering, to distinguish one operator from many.
- Would-have-blocked analysis — in monitor mode, the volume a rule would have actioned. This is the evidence you need before enforcing.
- Failure ratio — the login success/failure balance per endpoint is often the earliest visible sign of a stuffing campaign.
Rollout
- Map every authentication path before configuring anything: web, mobile, API, social login, partner SSO, legacy endpoints. Anything unmapped is unprotected.
- Configure and verify user-ID extraction on each of those paths, with consistent normalisation and hashing.
- Deploy telemetry collection and confirm the script or SDK executes on every protected surface.
- Run in monitor mode through the learning period. Profiles need enough logins per user to be meaningful; low-frequency accounts (annual renewals, seasonal shoppers) take considerably longer than daily-active users.
- Build the allow lists for your own automation, corporate egress and declared third parties.
- Analyse the score distribution and identify the natural break between routine and anomalous logins for your population.
- Start with the highest-value, lowest-volume actions — payout and email changes — where a step-up is cheap and a false positive costs one support call rather than thousands.
- Introduce step-up authentication on medium risk at login, measuring the completion rate. Step-up that genuine users abandon is a revenue problem disguised as a security control.
- Enable denial for high risk only once you can show, from data, what it would have blocked over the prior fortnight.
- Review weekly. Support tickets about blocked logins are the ground-truth false-positive signal, so build that feedback path before you enforce.
Account security is not a project with an end date. Attackers re-tool, your login flows change, and every new mobile release or identity-provider migration can silently move an endpoint outside protection. Treat the endpoint inventory as a living document.
Developer tools
| Interface | Use |
|---|---|
| Application Security API | Manage security configurations, policies and activations programmatically |
| Account Protector configuration | Manage protected operations, user-ID extraction, rules and actions as code |
| Terraform provider | Version-control protected endpoints and thresholds; makes it obvious when a new auth flow escapes coverage |
| SIEM integration | Stream scores and risk factors into your existing detection and response tooling |