Script icon
Docker icon
If icon
SlackIncomingWebhook icon
Log icon
Return icon
Schedule icon

Okta System Log Suspicious IP Session Hijack Sentinel

Audits Okta System Log event streams for concurrent active user sessions originating from disparate IP addresses, alerting SecOps via Slack.

Categories
CloudInfrastructure

Audits Okta System Log security streams for concurrent active user authentication sessions spanning geographically disparate IP addresses within narrow time windows, identifying potential token theft, session hijacking, or adversary adversary-in-the-middle attacks.

How it works

  1. System Log Event Streaming: Queries the Okta System Log API with filter parameters targeting user session initiation and administrative application access events within the configured lookback window.
  2. Identity and IP Correlation: Extracts user principal identifiers and source IP addresses, constructing identity-to-network session mappings across concurrent sessions.
  3. Session Anomaly Detection: Identifies users associated with multiple distinct IP addresses within the lookback window, flagging accounts exhibiting impossible travel or concurrent credential usage.
  4. SecOps Notification and Audit Record: Emits structured security incident notifications to dedicated SecOps Slack channels with affected user principals and originating IP addresses.

Architecture diagram

flowchart TD
    A[periodic_okta_audit Schedule Trigger] --> B[scan_okta_system_logs Python Script]
    B --> C[check_suspicious_sessions Flowable If]
    C -- Threshold Breached --> D[notify_slack_secops_alert Webhook]
    C -- Metrics Nominal --> E[log_nominal_okta_state Log]
    D --> E
    E --> F[export_okta_manifest Return]

Architecture components

  • Trigger (periodic_okta_audit): Drives scheduled recurring surveillance cycles without human intervention.
  • Inspection Task (scan_okta_system_logs): Queries target APIs and structures diagnostic indicators via Kestra outputs.
  • Evaluation Gate (check_suspicious_sessions): Evaluates operational safety boundaries using deterministic boolean branching.
  • Notification Action (notify_slack_secops_alert): Dispatches rich, actionable incident messages directly to team channels.
  • Manifest Return (export_okta_manifest): Emits structured compliance payloads for SIEM and analytics records.

Key capabilities

  • Automated Health Polling: Continuous scheduled surveillance executed on customizable recurring intervals without dedicated agent daemons.
  • Deterministic Threshold Evaluation: Pure boolean and numeric tolerance checks eliminating false positives and alert noise.
  • Contextual Incident Notification: Rich Slack messages populated with explicit resource identifiers, error reasons, and metrics.
  • Machine-Readable Audit Manifest: Structured execution telemetry exported for compliance archives, SIEM ingestion, or analytics dashboards.

What you get

  • Proactive discovery of Okta session token hijacking and adversary-in-the-middle proxy attacks
  • Near real-time correlation of concurrent authentication events without expensive SIEM licensing overhead
  • Immediate visibility into compromised workforce accounts for automated or manual session revocation
  • Standardized audit manifest facilitating rapid escalation into incident response playbooks

Who it's for

  • Security Operations Center (SOC) Analysts investigating unauthorized workforce account access
  • Identity and Access Management (IAM) Engineers maintaining enterprise single sign-on security
  • Corporate IT Security Administrators guarding administrative access into cloud infrastructure

Why orchestrate this with Kestra

  • Lightweight scheduled serverless execution avoiding heavy agent installations on corporate identity controllers
  • Native secret vault integration protecting high-privilege Okta SSWS API tokens and notification credentials
  • Automated flow orchestration capable of bridging detection directly into automated remediation flows
  • Clean structured outputs enabling frictionless ingestion into compliance archiving systems

Use cases

  • Token Replay Detection: Detect compromised corporate VPN tokens being utilized concurrently from personal residential networks.
  • Phishing Credential Exploitation: Identify session cookie replay attacks following workforce credential phishing incidents.
  • Privileged Console Auditing: Audit privileged administrative accounts accessing sensitive production cloud consoles from unapproved geographies.

Inputs

Name Type Default Description
okta_domain STRING company-prod.okta.com Target Okta organization tenant domain hosting workforce identity sessions.
lookback_minutes INT 15 Time range in minutes across which Okta System Log events are queried and correlated.
hijack_incident_threshold INT 1 Count of distinct users exhibiting concurrent multi-IP session anomalies that triggers SecOps alerts.
alert_on_hijack BOOL True Toggle whether Slack webhook alerts are dispatched upon detecting concurrent IP session anomalies.

Expected outputs

  • {{ outputs.scan_okta_system_logs.vars.total_events_audited }}: Total number of Okta System Log session events processed during the audit execution.
  • {{ outputs.scan_okta_system_logs.vars.suspicious_user_count }}: Total count of distinct user accounts exhibiting concurrent multi-IP session anomalies.
  • {{ outputs.scan_okta_system_logs.vars.flagged_users }}: Comma-separated list of user account emails or usernames flagged for investigation.
  • {{ outputs.scan_okta_system_logs.vars.ip_mappings }}: Detailed breakdown of flagged users and their associated concurrent IP addresses.
  • {{ outputs.scan_okta_system_logs.vars.is_alerting }}: Boolean flag indicating whether flagged user volume breached configured alert thresholds.

Prerequisites

  • Okta Identity Cloud tenant organization with System Log API access enabled.
  • Okta Read-Only Administrator API Token (SSWS) generated for automated security auditing.
  • Valid OKTA_API_TOKEN secret configured within Kestra namespace secret storage.
  • Configured Slack incoming webhook URL with permissions to post messages into the designated SecOps channel.

Secrets

  • OKTA_API_TOKEN: Vault secret required for authenticated API execution and notifications.
  • SLACK_WEBHOOK_URL: Vault secret required for authenticated API execution and notifications.

Quick start

  1. Register the required secrets in your Kestra namespace settings.
  2. Import this blueprint into your Kestra instance under the company.security namespace.
  3. Review input parameters such as threshold levels and target resource identifiers.
  4. Execute the flow manually to verify connectivity, then enable the automated schedule.

Common pitfalls and troubleshooting

  • Legitimate Mobile Network Hand-offs: Mobile cellular devices frequently rotate IP addresses rapidly; tune lookback duration and combine with user feedback mechanisms.
  • Okta Rate Limiting Headers: Okta System Log API enforces strict rate limits (typically 100 requests per minute); use since parameter filtering to minimize request volume.
  • API Token Expiration Lifecycles: Okta SSWS tokens expire if unused for 30 days; ensure periodic audit flows run regularly to maintain token freshness.
  • Corporate Proxy and ZTNA IP Consolidation: Organizations utilizing Zscaler or Cloudflare Access may route all traffic through identical egress IPs, causing false negative clusterings.

How to extend

  • Automated Okta Session Clear: Trigger Okta API POST /api/v1/users/${userId}/lifecycle/clear_sessions to instantly revoke compromised tokens.
  • Jira Security Ticket Generation: Automatically create high-priority SecOps incident investigation tickets populated with forensic IP telemetry.
  • MFA Step-up Enforcement: Enforce immediate push notification challenge via Okta Verify API when impossible travel velocity is confirmed.

Links

See How

New to Kestra?

Use blueprints to kickstart your first workflows.