Platform

Plant. Continue. Investigate.

FalseTrail is one system with three parts, named the way the operator console groups them: Placement Fabric creates the false opportunities, the Deception Runtime gives them somewhere believable to lead, and Operations is where your team reads and runs the result.

Placement Fabric · Placements

Every false opportunity, accounted for.

A placement is one planted artifact at one location on one host. FalseTrail creates it from a pack, your tooling puts it in place, and the console tracks it from creation to retirement.

PackWhat is plantedIt carriesLeads to
deploy-env-v1A deploy .env filea service credential and a service URLAuth service, Admin API
mcp-config-v1An MCP client configurationa service credential and a service URLAuth service, Admin API
kubeconfig-context-v1A standalone kubeconfiga cluster tokenCluster API
  • Unique to its location. Every planted value belongs to one placement, so any use names where it came from.
  • A bundle, not an agent. Each placement produces the file, a manifest (path, mode and SHA-256, never the value), a create-only install script, Ansible tasks and a receipt template.
  • Create-only. A placement never replaces or edits an existing file. The kubeconfig pack is a standalone file and is refused at real cluster configuration paths.
  • Receipts from your tooling. Deployed, verified and removed receipts must match the manifest’s checksums, and can name the asset in your inventory.
  • A plan with limits. Target groups say where trails belong; prohibited zones say where they must never go, and are enforced when a placement is created.
  • Lifecycle: Learning → Armed → Retired. A use after retirement still reports, with the placement shown as retired.
Placement Fabric · Learning

Learn first. Arm what’s clean.

Scanners, backup, indexing and CI automation touch files. New placements start in Learning, so FalseTrail can see what legitimately reaches them before they count at full severity. Uses still alert while learning.

Healthy

Nothing unexplained touched it. Ready to arm.

Needs review

Something touched it that no pattern or tester explains.

Conflicted

Legitimate activity keeps reaching it. Probably the wrong spot.

Insufficient data

Not enough time or traffic to judge yet.

  • Arming needs a healthy report or an override with a recorded reason.
  • Narrow benign patterns. Known automation is described by at most a /24, optionally a client fingerprint, for one placement, and expires within 90 days.
  • Registered testers let your own red team’s uses be recognised as testing, with the match shown on the finding.
  • History stays as recorded. A new pattern or tester applies to future uses. Existing findings are never rewritten.
Deception Runtime

Not a dead end. A controlled synthetic trail.

A planted opportunity leads into synthetic services that answer like the real thing. Each one can hand out material for the next, so the actor keeps moving, and every step stays on a path you control.

  1. enters from kubeconfig context
    S4Cluster API

    A Kubernetes API server with read-only RBAC in one namespace. Writes are refused, and recorded as attempts.

    a synthetic Secret holds a client secret
  2. enters from .env or MCP config credential
    S2Auth service

    An OAuth client-credentials service. It exchanges a client secret for an admin token that only works here.

    issues an admin token
  3. enters from service reference
    S3Admin API

    The decision point: five synthetic opportunities offered side by side. Privileged actions are performed in the synthetic world.

Bounded: one synthetic world from a versioned template, holding no real data.Reachable only through what you planted; never in your production path.The Cluster API is optional, chosen at install.

Deception Runtime · Continuation

Bounded, synthetic and recorded at every step.

The services answer from one synthetic world built from a versioned template. Material they issue works only inside that world, and each piece is recorded before it is shown, so the next step can be linked back to the trail that produced it.

  • Issued material: admin tokens, service credentials and export job IDs, each tied to the chain that led to it.
  • Responses are never built from request bytes. Names a request supplies are not echoed back; the world answers with its own identifiers.
  • Refusals are real behaviour. The Cluster API refuses writes with RBAC errors; the admin API refuses disabling audit logging. Both are recorded as attempts.
  • Template upgrades in place. A newer world template starts a new epoch with the same seed; material issued under the previous epoch keeps working.
FalseTrail operator console · synthetic demo data
The Decoy runtime page: three responding personas, the auth service, cluster API and admin API, each with requests recorded, where trails arrived from and how far they went in stages; below, the admin API decision point with five opportunities and how many trails took each, including one refused attempt.

The Decoy runtime view: how far trails went at each synthetic service, counted from facts and causal links only, and which opportunities were taken at the decision point.

Deception Runtime · Decision point

Give the trail a choice. Record the choice.

With an admin token, a trail reaches the synthetic admin API, where five opportunities sit side by side: service account credentials, a data export, credential rotation, a role grant and audit log settings. Which ones are taken, in what order and with what outcome becomes evidence on the finding.

Choices are facts, never intent.The console says what was done, not why. A performed privileged action is R3; a refused one is an attempt. How observed choices are recorded →
Operations · Findings

A finding your team can investigate.

A finding names the placement, the source and the decoy, draws only causally linked steps as the path, lists observed choices, keeps correlated activity as context, and carries an Investigate panel and a JSON export. It reaches your SOC as a notification line your forwarder ships.

See how FalseTrail separates causality from correlation.The evidence model, R1 to R3, issued-material lineage and reuse across sources, with a real finding from the console. Read the evidence model →
Operations · Overview and System

Run it like your own infrastructure.

The console shows whether the installation is healthy, what is deployed, what needs a person and what was caught. A first-trail checklist takes a new installation from install to its first finding.

  • Overview: health, deception coverage, what needs a person, and what was caught in the last day and week.
  • System: readiness checks the service will not start without, durable delivery queues between components, version and world template, backup and self-test.
  • Kill switch for decoy responses, and an audit trail of operator actions in the console.
How it is deployed and operated →

Put a false trail in front of your next attacker.

Evaluate FalseTrail on your own estate. We start with a walkthrough on a sample environment, then scope an evaluation inside your network.

  • A finding followed from first interaction to evidence trail
  • Where placements would fit in your estate
  • How it deploys and what stays inside your network
demo@falsetrail.com