Skip to content
Security
Skill

/triage-suspicious-login

Triage suspicious login alerts like impossible travel, untrusted location, or multiple failures. Use when investigating authentication anomalies. Analyzes user history, source IP reputation, login patterns, and determines if escalation is needed.

BOOST
From plugin
ai-runbooks
12830 skills
Install
$ npx -y skills add dandye/ai-runbooks --skill triage-suspicious-login --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/triage-suspicious-login

Context preview

The summary Claude sees to decide when to auto-load this skill.

Triage suspicious login alerts like impossible travel, untrusted location, or multiple failures. Use when investigating authentication anomalies. Analyzes user history, source IP reputation, login patterns, and determines if escalation is needed.

SKILL.md

triage-suspicious-login.SKILL.md
type: Skill
name: triage-suspicious-login
description: "Triage suspicious login alerts like impossible travel, untrusted location, or multiple failures. Use when investigating authentication anomalies. Analyzes user history, source IP reputation, login patterns, and determines if escalation is needed."
required_roles:
  chronicle: roles/chronicle.viewer
  soar: roles/chronicle.editor
  gti: GTI Standard
personas: [tier1-analyst, tier2-analyst, tier3-analyst]
generated:
  by: human:dandye
  at: 2026-02-04T06:10:49-05:00

Suspicious Login Triage Skill

Guide initial triage of suspicious login alerts (impossible travel, untrusted location, multiple failed logins) for Tier 1 SOC Analysts.

Inputs

  • `CASE_ID` - SOAR case ID containing the alert(s)
  • `ALERT_GROUP_IDENTIFIERS` - Alert group identifiers from the case
  • *(Optional)* `USER_ID` - The user ID if known upfront
  • *(Optional)* `SOURCE_IP` - The source IP if known upfront

Workflow

Step 1: Get Case Context

secops-soar.get_case_full_details(case_id=CASE_ID)

Step 2: Extract Key Entities

secops-soar.list_events_by_alert(case_id=CASE_ID, alert_id=ALERT_ID)

Parse events to extract:

  • `USER_ID` - The user account
  • `SOURCE_IP` - The login source IP
  • `HOSTNAME` - The target/source hostname (if available)

Step 3: User Context (SIEM)

secops-mcp.lookup_entity(entity_value=USER_ID)

Record: Recent activity, first/last seen, related alerts.

Step 4: Source IP Enrichment

Use `/enrich-ioc` with IOC_TYPE="IP Address":

  • GTI reputation and geolocation
  • SIEM entity summary
  • IOC match status

Step 5: Hostname Context (if available)

secops-mcp.lookup_entity(entity_value=HOSTNAME)

Step 6: Recent Login Activity

Search for login patterns over the last 96 hours:

secops-mcp.search_security_events(
    text='metadata.event_type IN ("USER_LOGIN", "AUTH_ATTEMPT") AND principal.user.userid = "USER_ID"',
    hours_back=96
)

Analyze for:

  • Logins from unusual IPs
  • Successful logins after failures
  • Geographic anomalies (impossible travel)
  • Concurrent sessions from different locations

Step 7: Check Related Cases

Use `/find-relevant-case` with search terms: `[USER_ID, SOURCE_IP, HOSTNAME]`

Step 8: (Optional) Identity Provider Check

If IDP tools available (e.g., Okta):

  • Account status
  • MFA enrollment
  • Recent legitimate logins
  • Password change history

Step 9: Synthesize & Document

Use `/document-in-case` with findings summary:

Suspicious Login Triage for USER_ID from SOURCE_IP:
- User SIEM Summary: [...]
- Source IP GTI: [reputation, geo]
- Login Pattern: [normal/anomalous]
- Related Cases: [...]
- Recommendation: [Close as FP | Escalate to Tier 2]

Required Outputs

**After completing this skill, you MUST report these outputs:**

| Output | Description | |--------|-------------| | `LOGIN_VERDICT` | Assessment: `legitimate`, `suspicious`, or `malicious` | | `ANOMALY_INDICATORS` | What made the login suspicious (impossible travel, new device, etc.) | | `RELATED_ACTIVITY` | Other suspicious activity from user or source IP | | `RISK_SCORE` | Numerical risk assessment (0-100) based on findings |

Decision Matrix

| Finding | Recommendation | |---------|----------------| | Known VPN/corporate IP + normal pattern | Close as FP | | User confirmed travel + MFA used | Close as Benign TP | | Malicious IP reputation | Escalate | | Impossible travel + no MFA | Escalate urgently | | Multiple failures then success from new IP | Escalate | | Pattern matches user's normal behavior | Close as FP |

Key Patterns to Detect

**Impossible Travel:**

  • Login from NYC, then London 30 mins later
  • Check if VPN or cloud service could explain

**Credential Stuffing:**

  • Many failures across multiple accounts from same IP
  • Success after many failures

**Account Takeover:**

  • Login from new device/location
  • Followed by password change or MFA modification

**Lateral Movement:**

  • Same user logging into many systems rapidly
  • Unusual service account activity
Read more
Ships withai-runbooks

This repository provides security operations runbooks and role-based guides for AI-assisted cybersecurity workflows.

Get the whole plugin

Other skills on ai-runbooks.