Art-of-Technology

anti-fraud

0
0
# Install this skill:
npx skills add Art-of-Technology/anti-fraud-skill

Or install specific skill: npx add-skill https://github.com/Art-of-Technology/anti-fraud-skill

# Description

Multi-layered anti-fraud and bot detection system for registration flows. Use when implementing: (1) Registration form security, (2) Bot detection and shadow banning, (3) Behavioral analysis (keystroke, mouse tracking), (4) Risk scoring systems, (5) Honeypot field implementation, (6) Disposable email detection, or any fraud prevention for user registration

# SKILL.md


name: anti-fraud
description: "Multi-layered anti-fraud and bot detection system for registration flows. Use when implementing: (1) Registration form security, (2) Bot detection and shadow banning, (3) Behavioral analysis (keystroke, mouse tracking), (4) Risk scoring systems, (5) Honeypot field implementation, (6) Disposable email detection, or any fraud prevention for user registration"


Anti-Fraud & Bot Detection System

A three-layer defense system for registration forms that detects bots while minimizing false positives for legitimate users.

Architecture Overview

Layer 1: SERVER-SIDE (tamper-proof)
├── Encrypted timestamp token verification
├── Device fingerprint matching
└── Minimum fill time enforcement (3s)

Layer 2: MANIPULATION DETECTION (server comparison)
├── Client vs Server timing mismatch
├── Keystroke/input inconsistency
└── Impossible value detection

Layer 3: CLIENT SIGNALS (informational)
├── Honeypot fields
├── Behavioral analysis
└── Content analysis

Key Principle: Never trust client-side data alone.

Quick Implementation

1. Form Token Endpoint

// /api/auth/form-token
// Generate AES-256-GCM encrypted token with timestamp
const token = encrypt({ timestamp: Date.now(), fingerprint, nonce });

2. Behavior Tracking Hook

interface BehaviorSignals {
  totalFillTimeMs: number;
  fieldTimings: Record<string, number>;
  inputMethods: Record<string, 'typed' | 'pasted' | 'autofilled' | 'mixed'>;
  keystrokes: KeystrokeData[];
  keystrokeVariance: number;
  mouseMovements: MouseMovement[];
  hasMouseActivity: boolean;
  focusSequence: string[];
  tabKeyUsed: boolean;
  backspaceCount: number;
}

3. Honeypot Fields

Add hidden fields (CSS hidden, aria-hidden, tabIndex=-1):
- website, phone2, address, company

Any content in honeypot → Instant shadow ban

Risk Scoring

Shadow Ban Triggers (ANY = ban)

Trigger Condition
Server timing Fill time < 3 seconds
Token Invalid or missing
Manipulation High confidence detection
Score >= 80 points
Honeypot Any field filled
Email Disposable domain

Signal Weights

See references/signal-weights.md for complete weight tables.

Critical (+100): HONEYPOT_FILLED, DISPOSABLE_EMAIL
High (+25-40): INSTANT_SUBMIT, ALL_FIELDS_PASTED, BOT_PASSWORD_PATTERN, NO_MOUSE_MOVEMENT
Positive (-5 to -40): PASSWORD_MANAGER_LIKELY, KEYBOARD_ONLY_USER, NATURAL_TYPING_RHYTHM

Shadow Ban Response

if (shouldShadowBan) {
  await delay(1000 + Math.random() * 2000); // Appear legitimate
  return Response.json({ message: 'Registration successful' }, { status: 200 });
  // No account created, no backend call
}

False Positive Prevention

Password Manager Detection (-40 points)

const isPasswordManager = 
  allFieldsAutofilledOrPasted && 
  keystrokeCount < 5 && 
  fillTime >= 1000 && fillTime < 15000;

Keyboard-Only User Detection (-15 points)

const isKeyboardOnly = 
  tabKeyUsed && 
  focusSequence.length >= 2 && 
  !hasMouseActivity && 
  totalFieldTime > 1000;

File Structure

src/
├── lib/anti-fraud/
│   ├── index.ts
│   ├── types.ts
│   ├── constants.ts
│   ├── risk-scoring.ts
│   ├── server-token.ts
│   ├── manipulation-detector.ts
│   └── validators/
│       ├── email-validator.ts
│       ├── name-validator.ts
│       └── password-validator.ts
├── hooks/use-behavior-tracking.ts
├── components/anti-fraud/honeypot-fields.tsx
└── app/api/auth/
    ├── form-token/route.ts
    └── register/route.ts

Resources

  • Signal weights & thresholds: See references/signal-weights.md
  • Validators (email, name, password): See references/validators.md
  • XML patterns & detection: See references/detection-patterns.md

Environment

AUTH_SECRET=your-secret-key-for-token-encryption

Logging

All decisions logged with [ANTI_FRAUD] prefix:

[ANTI_FRAUD] { timestamp, emailDomain, serverFillTimeMs, summary: 'Risk: 25/100 (low) - allow' }

# README.md

🛡️ Anti-Fraud Skill

A multi-layered bot detection and fraud prevention system for registration flows. This skill teaches AI coding agents how to implement comprehensive anti-fraud measures that catch bots while protecting legitimate users.

Installation

# Using skills CLI
npx skills add Art-of-Technology/anti-fraud-skill

# Or with Claude Code
/install-skill Art-of-Technology/anti-fraud-skill

What This Skill Does

Provides a complete anti-fraud implementation guide with:

  • 3-Layer Defense Architecture - Server-side verification, manipulation detection, and behavioral analysis
  • Shadow Banning - Silent rejection that wastes attacker time without revealing detection
  • Smart Risk Scoring - 20+ weighted signals with automatic threshold tuning
  • False Positive Prevention - Detects password managers and accessibility users to avoid blocking legitimate users

Architecture Overview

┌─────────────────────────────────────────────────┐
│           LAYER 1: SERVER-SIDE                  │
│           (Tamper-proof)                        │
│  • Encrypted timestamp tokens                   │
│  • Device fingerprint matching                  │
│  • Minimum 3-second fill time                   │
└─────────────────────────────────────────────────┘
                      │
                      ▼
┌─────────────────────────────────────────────────┐
│        LAYER 2: MANIPULATION DETECTION          │
│        (Server-side comparison)                 │
│  • Client vs server timing mismatch             │
│  • Keystroke inconsistency detection            │
│  • Impossible value detection                   │
└─────────────────────────────────────────────────┘
                      │
                      ▼
┌─────────────────────────────────────────────────┐
│          LAYER 3: CLIENT SIGNALS                │
│          (Behavioral analysis)                  │
│  • Honeypot fields                              │
│  • Mouse movement patterns                      │
│  • Keystroke dynamics                           │
└─────────────────────────────────────────────────┘

Key Features

🚫 Shadow Ban Triggers

Trigger Action
Fill time < 3 seconds Instant ban
Honeypot field filled Instant ban
Disposable email domain Instant ban
Risk score ≥ 80 Instant ban
High-confidence manipulation Instant ban

✅ False Positive Protection

User Type Detection Score Adjustment
Password Manager Fast autofill, few keystrokes -40 points
Keyboard-Only User Tab navigation, no mouse -15 points
Natural Typing 20-200ms variance -10 points

📊 Risk Scoring

Signals are weighted and combined:

  • Critical (+100): Honeypot filled, disposable email
  • High (+25-40): Instant submit, all fields pasted, bot password patterns
  • Medium (+15-25): Keyboard patterns in name, linear mouse movement
  • Low (+5-10): No backspaces, uniform keystroke timing

File Structure

anti-fraud-skill/
├── SKILL.md                        # Main skill instructions
└── references/
    ├── signal-weights.md           # Complete scoring tables
    ├── validators.md               # Email, name, password validators
    └── detection-patterns.md       # Behavioral analysis code

Usage Example

Ask your AI agent:

"Implement anti-fraud protection for my registration form"

"Add bot detection with shadow banning to my signup flow"

"Create a risk scoring system for user registration"

The agent will use this skill to generate a complete implementation with all three defense layers.

Tech Stack Compatibility

  • Backend: Node.js, Next.js, Express, any server-side framework
  • Frontend: React, Vue, vanilla JavaScript
  • Database: Any (logging and monitoring)

Requirements

  • AUTH_SECRET environment variable for token encryption
  • AES-256-GCM encryption support (Node.js crypto)

Contributing

Issues and PRs welcome! If you have ideas for new detection signals or false positive improvements, please contribute.

License

MIT


Stop bots. Protect users. Ship with confidence.

# Supported AI Coding Agents

This skill is compatible with the SKILL.md standard and works with all major AI coding agents:

Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.