Skip to content

Repository files navigation

OpenFraudMonitoring

OpenFraudMonitoring

Self-hosted browser fingerprinting, behavioral analysis, and fraud monitoring platform. One script tag gives you device fingerprints, bot detection, behavioral signals, threat intelligence enrichment, and a live dashboard.

Dashboard

Features

  • Browser fingerprinting — collects 35+ signal categories via FPScanner (screen, GPU, codecs, fonts, WebGL, automation flags, etc.)
  • Bot detection — 21 built-in detection rules (WebDriver, CDP, Selenium, Playwright, spoofed GPU, impossible memory, etc.)
  • Behavioral tracking — mouse movements, clicks, keystrokes, scrolls, copy/paste, navigation events via heartbeats every 30s
  • Monitored domains — per-domain auth cookie detection, login-form authentication attempts, normalized session domains (docs)
  • Risk scoring — automatic scoring from bot signals + customizable detection rules
  • Custom dashboards — drag-and-drop widgets (stats, pie charts, histograms, weighted lists) with saved layouts
  • Session filtering — 50+ filterable fields with autocomplete, composable filter conditions
  • Threat intelligence — STIX 2.1 entity store with enrichment connectors (IPinfo, OpenCTI), relationship graph navigation
  • Connector architecture — pluggable enrichment connectors via RabbitMQ, auto/manual trigger modes, health monitoring

Quick Start

cp .env.example .env   # edit if needed
docker compose up --build
Service URL
Dashboard http://localhost:3000
Demo page http://localhost:3000/demo
API http://localhost:5000

Integration

Add the fingerprint collection script to any page:

<script src="/ofm.js"></script>

The script automatically:

  1. Collects a full device fingerprint on page load
  2. Sends behavioral heartbeats every 30 seconds
  3. Generates a deterministic device ID (fsid) that persists across sessions

See Deployment for same-origin, reverse-proxied, and separate-host setups. Cookie-based authentication detection requires the script and collection API to be reachable through the monitored domain.

Screenshots

Landing Page

Landing Page

Dashboard

The dashboard supports customizable widgets with drag-and-drop layout. Use the filter builder to narrow results by any of 50+ fields.

Session Filters

Adding Widgets

Create stat counters, pie charts, histograms, or weighted lists — each with their own filter conditions:

Step 1: Choose type Step 2: Configure Step 3: Result
Widget Step 1 Widget Step 2 Widget Step 3

Demo Page

A built-in demo page (/demo.html) lets you test fingerprint collection and see the raw signals in real time — no integration needed.

Demo Page

Intelligence

Browse and search STIX entities (IPs, user agents, AS numbers, malware, indicators). Click any entity to see its relationships, enrichment data, and linked session count. Navigate between related entities directly.

IP Intelligence

Logging

Monitor connector health, queue depths, and system logs in real time.

Logging

Configuration

All variables are in .env.example. Key ones:

Variable Purpose
OFM_SERVER_URL Client collection URL; empty for same-origin or reverse-proxied deployment
DATABASE_URL PostgreSQL connection string
REDIS_URL Redis connection string
POSTGRES_PASSWORD Database password
CONNECTOR_TOKEN Shared auth token for connector HTTP fallback
INTEL_DECAY_DAYS Days before STIX intel is marked as decayed (default 7)

Documentation

  • Architecture — system overview, data flow, STIX storage, folder structure
  • Deployment — deployment modes, Caddy reverse proxying, and cookie-based collection requirements
  • Monitored Domains — per-domain auth cookie, authentication-attempt detection, JSON import/export
  • Connectors — how enrichment connectors work, how to build your own
  • Rules — how to create and manage detection rules
  • Filters — how filtering works, schema fields, code mapping
  • Graph Explorer — interactive graph view: nodes, expansions, bulk expand, settings

License

Copyright (C) 2026 Quentin Fraty.

Licensed under the GNU Affero General Public License v3.0. You may use, modify, and redistribute this software, including commercially, provided derivative works remain under the AGPL-3.0 and you keep the copyright notices intact.

If you run a modified version as a network service, section 13 requires you to offer its complete source code to your users.

Third-party attributions, including the MIT-licensed fpscanner component, are listed in NOTICE.

About

Open fraud monitoring: An open source platform that helps domain administrators monitor the behavior of users on their domain to identify malicious usages.

Topics

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages