2026-06-17

Detecting Impossible Travel Without Expensive UEBA Tooling

Impossible travel detection has a reputation for being an enterprise-only feature, bundled into UEBA platforms that cost more than the rest of a security stack combined. The underlying math is not complicated, and most identity providers already give you everything you need in the raw sign-in log.

The calculation is the haversine formula — the great-circle distance between two latitude/longitude points — divided by the elapsed time between two consecutive sign-ins for the same account. If that implied speed exceeds what’s physically possible (LogTriage defaults to 500 km/h, comfortably above commercial flight speed but well below “instantaneous”), the pair gets flagged. That’s the entire algorithm. No machine learning model, no behavioral baseline period, no training data.

The harder part isn’t the math — it’s getting clean coordinates. Azure AD sign-in logs include location.geoCoordinates directly, which makes this nearly free for Entra ID. For log formats that don’t carry their own geolocation, the fallback is IP-based geolocation through a standard enrichment pipeline, which is noisier (VPN exits, mobile carrier NAT, and corporate proxies all distort it) but still catches the cases that matter: an account signing in from two countries within minutes is suspicious by any geolocation method, even an imprecise one.

It’s worth being honest about the false-positive sources too: a VPN client switching exit nodes, or a mobile user moving between cell towers near a regional border, can produce a coordinate jump that isn’t actually impossible travel. A minimum-distance filter (LogTriage defaults to 100km) screens out same-metro noise, but no implementation of this check is going to be zero-false-positive — which is exactly why it should feed into an analyst’s report as one risk factor among several, not an automatic account lockout trigger on its own.

Frequently Asked Questions

Does impossible travel detection require a UEBA platform?
No. The underlying calculation is haversine distance divided by elapsed time — two consecutive sign-in coordinates and a timestamp are all you need. Azure AD sign-in logs include location coordinates directly. For other formats, IP-based geolocation provides a noisier but still useful fallback.
What speed threshold is used, and why 500 km/h?
500 km/h by default — comfortably above commercial flight cruising speed (~900 km/h at altitude, but with boarding, taxi, and transit time, realistic city-to-city travel is much slower) while still low enough to catch VPN exit nodes in nearby countries. The threshold is configurable if your organization's risk tolerance calls for a different value.
Should impossible travel automatically lock an account?
No — it should feed into an analyst's report as one risk factor among several, not trigger an automatic lockout. False positive sources are real: VPN clients switching exit nodes, mobile users near regional borders, and corporate proxies can all produce a location jump that isn't actually impossible travel. The check is high-confidence enough to escalate; not high-enough to act on autonomously.

Related Resources

See this detection run on a real report

Try the live demo with a pre-loaded malicious log set — no signup required — or upload your own log file and get a full AI-reviewed threat report in minutes.