How Fraudsters Create Fake Accounts
(And How to Stop Them)
Fake account creation is a billion-dollar fraud industry. From credential stuffing to referral abuse to account takeovers, fraudsters have industrialized the process of creating thousands of fake identities.
Understanding how they operate is the first step to stopping them. In this post, we'll reverse-engineer the fake account creation pipeline and show you how to defend against it.
The Scale of the Problem
Fake accounts aren't created manually. They're generated at industrial scale:
- Credential stuffing: Billions of stolen username/password combos tested across sites
- Referral fraud: Fake accounts claiming bonuses (Uber, Airbnb, crypto airdrops)
- Review manipulation: Fake Amazon/Yelp accounts posting fake reviews
- Social media bots: Inflating follower counts or spreading misinformation
- SaaS trial abuse: Repeatedly claiming free tier benefits
A single fraudster can create 10,000+ accounts per day using automation tools.
Anatomy of Fake Account Creation: The Fraudster's Toolkit
Creating fake accounts at scale requires three components:
1. Disposable Email Services
Email verification is the most common anti-fraud check—so fraudsters bypass it with:
- Temporary inboxes: tempmail.com, guerrillamail.com, 10minutemail.net (free, no signup required)
- Email aliasing: Gmail's "+" trick (user+123@gmail.com) or catch-all domains
- Burner email APIs: Services that generate thousands of emails programmatically
- Hacked email accounts: Compromised accounts used to verify signups
These services receive verification emails automatically, allowing bots to confirm accounts without human intervention.
2. Residential Proxies and VPNs
Most platforms detect datacenter IPs (AWS, Google Cloud) as suspicious. Fraudsters counter with:
- Residential proxy networks: Rent real home IP addresses (Bright Data, Smartproxy) to appear as legitimate users
- Mobile proxies: 4G/5G IPs that rotate frequently
- VPN services: NordVPN, ExpressVPN exit nodes spread across countries
- SOCKS5 proxies: Cheap, disposable IPs bought in bulk
Residential proxies are particularly dangerous—they look exactly like real users to basic IP checks.
3. Automation Frameworks
Fraudsters use headless browsers and automation tools to mimic human behavior:
- Puppeteer/Playwright: Headless Chrome controlled by scripts
- Selenium: Browser automation framework
- Anti-detect browsers: Tools that spoof fingerprints (FingerprintJS, Multilogin)
- CAPTCHA solving services: 2Captcha, AntiCaptcha (human workers solve CAPTCHAs for $1-3 per 1000)
These tools can fill forms, click buttons, and navigate pages—making bot traffic nearly indistinguishable from humans.
Step-by-Step: How Fraudsters Create 1,000 Fake Accounts
Step 1: Acquire Resources
- Buy 1,000 residential proxy IPs ($50-100)
- Subscribe to a disposable email API ($20/month for unlimited addresses)
- Set up Puppeteer script with anti-detection plugins
Step 2: Automate Signup Flow
// Simplified fraudster script (Puppeteer + residential proxies)
import puppeteer from 'puppeteer-extra';
import StealthPlugin from 'puppeteer-extra-plugin-stealth';
import { getDisposableEmail, checkInbox } from 'temp-email-api';
import { getProxy } from 'residential-proxy-service';
puppeteer.use(StealthPlugin()); // Evade bot detection
async function createFakeAccount() {
const proxy = await getProxy(); // Get residential IP
const email = await getDisposableEmail(); // Generate temp email
const browser = await puppeteer.launch({
args: [`--proxy-server=${proxy}`],
headless: true
});
const page = await browser.newPage();
await page.goto('https://target-platform.com/signup');
// Fill signup form with randomized data
await page.type('#email', email);
await page.type('#username', generateRandomUsername());
await page.type('#password', generateStrongPassword());
// Mimic human behavior (random delays, mouse movements)
await page.mouse.move(100, 200);
await page.waitForTimeout(Math.random() * 2000 + 1000);
await page.click('#submit-button');
// Wait for verification email
await page.waitForTimeout(5000);
const verificationLink = await checkInbox(email);
// Verify account
await page.goto(verificationLink);
await browser.close();
console.log(`Account created: ${email}`);
}
// Run 1,000 times in parallel
for (let i = 0; i < 1000; i++) {
createFakeAccount();
}Step 3: Verify Accounts
The script monitors disposable inboxes for verification emails and clicks confirmation links automatically.
Step 4: Exploit the Platform
Once accounts are verified, fraudsters use them for:
- Claiming referral bonuses (cash out or resell accounts)
- Scraping data (product prices, user profiles)
- Spamming (posting fake reviews, sending phishing messages)
- Credential stuffing (testing stolen passwords on other sites)
Why Traditional Defenses Fail
Fraudsters have adapted to bypass most common protections:
| Defense | How Fraudsters Bypass It |
|---|---|
| Email verification | Disposable email APIs auto-fetch verification links |
| CAPTCHA | Solving services (2Captcha) for $1-3 per 1,000 |
| IP blocking | Residential proxies appear as real users |
| Browser fingerprinting | Anti-detect browsers spoof fingerprints |
| Rate limiting | Rotate IPs and distribute requests over time |
The key insight: No single signal is enough. You need layered detection.
How to Detect Fake Accounts: Multi-Signal Approach
Signal #1: Email Intelligence
Go beyond syntax validation. Check:
- Disposable domain lists: Maintain updated blocklists (or use an API like IPASIS)
- Email age: New domains are often throwaway
- Sender reputation: Domains with high bounce rates
- Pattern matching: Sequential emails (user1@, user2@, user3@)
Signal #2: Advanced IP Analysis
Residential proxies are hard to detect, but not impossible:
- Proxy/VPN detection: Use specialized databases (IPASIS, IP2Proxy)
- Connection type: Datacenter vs. residential vs. mobile
- Geo-mismatch: IP location doesn't match claimed location
- Behavioral velocity: Same IP creating multiple accounts in minutes
Signal #3: Behavioral Analysis
Even sophisticated bots leave traces:
- Typing speed: Bots fill forms instantly or at perfect intervals
- Mouse movements: Straight lines or no cursor activity
- Session depth: Real users browse; bots go straight to signup
- Time on page: Spending <2 seconds on signup form is suspicious
Signal #4: Device Fingerprinting
Track unique device signatures:
- Canvas/WebGL fingerprints: Unique rendering patterns
- Installed fonts: Unusual font lists = automation tools
- Browser inconsistencies: Claimed browser doesn't match capabilities
- Hardware specs: Headless browsers report unusual CPU/GPU
Implementation: Multi-Layered Fraud Detection
Here's how to combine signals for maximum accuracy:
// Server-side fraud detection
async function evaluateSignupRisk(email, ip, fingerprint, behaviorData) {
// Check email + IP with IPASIS
const ipasisResponse = await fetch('https://api.ipasis.com/check', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.IPASIS_API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({ email, ip })
});
const ipasis = await ipasisResponse.json();
// Calculate risk score (0-100, lower = riskier)
let riskScore = ipasis.trust_score;
// Deduct points for red flags
if (ipasis.email?.disposable) riskScore -= 30;
if (ipasis.datacenter) riskScore -= 20;
if (ipasis.vpn || ipasis.proxy) riskScore -= 15;
if (ipasis.tor) riskScore -= 25;
// Behavioral signals
if (behaviorData.formFillTime < 2000) riskScore -= 20; // Too fast
if (behaviorData.mouseMovements < 5) riskScore -= 15; // No human movement
if (!behaviorData.referrer) riskScore -= 10; // Direct POST
// Device fingerprint signals
if (fingerprint.headlessBrowser) riskScore -= 25;
if (fingerprint.duplicateFingerprint) riskScore -= 20; // Seen before
// Velocity check: same IP creating multiple accounts
const recentSignups = await countRecentSignups(ip, '1 hour');
if (recentSignups > 3) riskScore -= 20;
return {
riskScore: Math.max(0, riskScore),
signals: {
disposableEmail: ipasis.email?.disposable,
datacenterIP: ipasis.datacenter,
vpnDetected: ipasis.vpn || ipasis.proxy,
suspiciousBehavior: behaviorData.formFillTime < 2000,
headlessBrowser: fingerprint.headlessBrowser,
highVelocity: recentSignups > 3
},
action: riskScore < 40 ? 'BLOCK' : riskScore < 70 ? 'CHALLENGE' : 'ALLOW'
};
}Responding to Different Risk Levels
- Low risk (70-100): Allow instantly
- Medium risk (40-69): Require email verification + CAPTCHA
- High risk (<40): Block or manual review queue
Post-Signup Monitoring
Even if an account gets through, continue monitoring:
- Activation rate: Does the user actually use the account?
- API abuse: Immediate high-volume requests
- Referral patterns: Referring other suspicious accounts
- Session anomalies: Logging in from 10 countries in 1 hour
Flagged accounts can be rate-limited, required to re-verify, or suspended.
The Arms Race: Staying Ahead
Fraudsters constantly evolve their techniques. To stay ahead:
- Update detection rules monthly: New proxy services emerge, disposable email domains change
- Monitor false positive rate: If >5%, you're blocking real users
- Analyze blocked accounts: What patterns do they share?
- Share threat intel: Coordinate with other platforms to identify fraud rings
Case Study: Stopping a Referral Fraud Attack
A fintech app offered $10 for each referral. Fraudsters created 5,000 fake accounts in 24 hours to claim $50,000.
How they did it:
- Residential proxies to appear legitimate
- Disposable email APIs for verification
- Anti-detect browsers to evade fingerprinting
How the platform stopped it:
- Implemented IPASIS email + IP validation
- Flagged accounts created within minutes of each other from similar IPs
- Required ID verification for referral payouts >$50
- Recovered $47,000 before fraudsters cashed out
Best Practices for Fraud Prevention
- Layer multiple signals: Email + IP + behavior + device fingerprint
- Use specialized APIs: IPASIS detects disposable emails and proxy IPs in <20ms
- Apply progressive friction: Don't block aggressively—challenge medium-risk users
- Monitor post-signup behavior: Catch accounts that slip through initial checks
- Update blocklists regularly: Fraudsters rotate infrastructure constantly
- Require verification for high-value actions: Payouts, purchases, data exports
The Future of Fake Account Detection
As AI-powered automation improves, fake accounts will become harder to detect. The future of fraud prevention includes:
- Behavioral biometrics: Unique typing rhythms and mouse patterns
- Graph analysis: Detecting fraud rings by account relationships
- Device reputation: Tracking devices across platforms
- Real-time ML models: Learning from fraud patterns as they emerge
But the fundamentals remain: validate identity signals early, apply friction intelligently, and monitor continuously.
Detect fake accounts before they cause damage.
IPASIS provides real-time email + IP intelligence. Stop fraud in <20ms.