Anomalous Login
True positive detection reduces breach dwell time
Anomalous logins are drowning in noise. Impossible-travel alerts fire whenever a VPN reconnects, new-device alerts fire on every phone upgrade, off-hours-login alerts fire on the same three people every week. Security teams silence the alerts, and then the one real account compromise arrives dressed as another false positive. Detection without response is theatre.
An hour-by-hour walkthrough.
Step by step.
- 01
Ingest login signals from every IdP + endpoint
Read Okta / Azure AD / Google Workspace login events, EDR endpoint events, VPN connection logs. Normalise to a common login record with location, device fingerprint, network context, user-agent, TLS fingerprint.
Okta · Azure AD · Google Workspace · CrowdStrike · SentinelOne - 02
Fuse signals before scoring
Cross-check the login against: user's calendar, Slack status, recent travel-request tickets, recent device-enrolment steps, VPN reconnect history. A signal in isolation is noise; the fusion is the signal.
Google Calendar · Slack · IT ticketing · VPN logs - 03
Score + tier the response
Multi-factor score (0-1) drives tier. Under 0.3: auto-close with note. 0.3-0.7: notify user + require in-app confirmation. Over 0.7: session revoke + account lock + P1 incident + page security.
Scoring engine · Policy config - 04
Execute the response
For high-tier: force logout on every SSO-connected app, lock the account, contact the user out-of-band (SMS to verified phone), file P1 incident with evidence bundle, page on-call security.
Okta · Twilio · Jira Service Management · PagerDuty - 05
Close the loop + write the audit trail
Auto-closed low-tier events get a one-line audit entry with the reason. High-tier events stay open until the security engineer resolves them. Weekly digest surfaces patterns (repeat offenders, geographies, times).
SIEM · Audit log · Security digest
What you connect to make this run.
Okta · Azure AD · Google Workspace
read+writeConsume login events via System Log API (Okta) / Sign-In Logs (Azure) / Reports API (Google). Write: force-logout, session-revoke, account-lock via admin APIs.
Calendar · Slack · IT ticketing
readFusion context. Calendar tells us if the user is travelling; Slack presence tells us if they're active elsewhere; ticket search tells us if they filed a laptop-swap request yesterday.
Twilio · SMS gateway
writeOut-of-band contact for high-tier events. Never rely on email or Slack alone — those are the exact channels an attacker just gained access to.
Jira Service Management · PagerDuty
writeP1 incident with the full evidence bundle: timeline, signal fusion detail, action taken, user contact status. On-call security engineer paged with the incident link.
Before and after, honestly.
Playbooks that pair with this one.
Answers about this playbook.
What if the user is legitimately travelling but forgot to book it?
Mid-tier response (0.3-0.7 score) — user gets an in-app confirmation prompt, not a hard lock. If they confirm from a trusted device, the login proceeds and the trip auto-registers. Hard lock is only for high-fusion-score events where the evidence is overwhelming.
Can we exclude executives or on-call staff from auto-actions?
Yes but reluctantly. Exec bypass is a well-known attacker target; better to keep the flow with a shorter response tier (notify security immediately, don't hard-lock without human confirmation). Every bypass is a signed exception in policy config with an owner and expiry.
How does it handle service accounts + automation?
Service accounts have their own baseline (fixed set of IPs, no user-context). Any deviation is high-tier by default, since a service account rarely legitimately drifts. Separate policy config from human accounts.
What about M365 / Google alerts we already get?
Sig subscribes to those alerts as one of many signals — never as the sole trigger. The vendor alerts alone are noisy; the fusion + action layer sits on top and translates them into decisions.
Is the SMS out-of-band step a security risk (SIM swap)?
SMS is the tie-breaker, not the auth. The auth is: user confirms via a device we already trust (their laptop, their phone's authenticator app). SMS is the notification that says "we've locked your account, use your trusted device to verify." Attacker with a SIM swap sees a notification for an account already locked.
See it run on your data.
Free plan, no credit card. Connect the systems this playbook needs and run it against a past event first.