SECOPS

Impossible-Travel Login Detection with PagerDuty Escalation

Streams authentication events from Axiom, computes geo-velocity between consecutive logins per user.

CategorySecOps
Enginesim
Difficultyintermediate
Triggerschedule
Steps5
Setup~15 min

How it runs

The automated pipeline, trigger to output.

  • TriggerScheduled pull of recent login eventsAxiom
  • LogicPair consecutive logins per user and compute distance + elapsed time
  • LogicFilter to events exceeding ~900 km/h implied speed
  • ActionOpen PagerDuty incident with coordinates and speedPagerDutyPagerDuty
  • OutputMirror the incident to the secops Slack channelSlack

What it does

This workflow watches your authentication log stream and catches "impossible travel" — the same user account signing in from two locations so far apart, so quickly, that no real human could have traveled between them. When detected, it raises a PagerDuty incident with the account, both geo-coordinates, and the computed travel speed so on-call can act in minutes.

When to use it

Run this when you need always-on detection of credential compromise across a distributed workforce. It is ideal for teams that already ship auth logs to Axiom and want a deterministic, low-false-positive trigger that wakes someone up only for genuinely anomalous sessions.

How it works

  1. 1A scheduled Axiom query pulls the last window of successful login events, ordered by user and timestamp.
  2. 2The pipeline pairs each login with the prior login for the same user and computes the great-circle distance and elapsed time between them.
  3. 3A logic step divides distance by time to get implied speed; events under ~900 km/h pass and are dropped.
  4. 4For events that exceed the threshold, a PagerDuty incident is opened with severity tied to the speed.
  5. 5A Slack message is posted to the secops channel mirroring the incident for visibility.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect AxiomLog streams, queries, dashboards.
  2. 2
    Connect PagerDutyIncidents, on-call, escalations.
  3. 3
    Connect SlackChannels, DMs, threads, mentions.
  4. 4
    Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
  5. 5
    Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
  6. 6
    Test, then turn it onRun once against a sample, confirm the output, then enable the trigger.

Run this workflow in your colony.

14-day trial. No DevOps. No Sales call. Provisioned in under a minute.