SECOPS

Detect Sudden OAuth Grant Spikes for One App

Monitors OAuth authorization events and alerts when a single third-party app is granted access by an unusual number of users in a short window.

CategorySecOps
Enginesim
Difficultyadvanced
Triggerwebhook
Steps5
Setup~25 min

How it runs

The automated pipeline, trigger to output.

  • TriggerOAuth authorize event from audit logGoogle DriveGoogle Drive
  • ActionAppend app, user, and timestamp to grant logPostgreSQLPostgres
  • LogicCount distinct grantees per app over rolling window
  • LogicBranch when an app exceeds the spike threshold
  • OutputAlert security in Slack with app, count, and scopesSlack

What it does

This workflow looks for the pattern that single-grant reviews miss: many users authorizing the same unfamiliar app in a short span. That spike is a classic consent-phishing fingerprint and also catches a risky tool spreading by word of mouth. It counts grants per app over a rolling window and alerts when any app crosses your threshold.

When to use it

Use it as a defense against OAuth consent-phishing campaigns, where an attacker tricks staff into granting a malicious app mailbox or Drive access. It is also useful for catching shadow-IT tools going viral internally before they hold half the company's data.

How it works

  1. 1The audit-log webhook fires on each OAuth authorize event.
  2. 2The flow records the app, user, and timestamp to a running grant log in Postgres.
  3. 3A logic step counts distinct grantees per app over the rolling window.
  4. 4When an app exceeds the spike threshold, the flow branches to alerting.
  5. 5A Slack alert names the app, the grant count, the scopes, and the affected users so security can move to revoke.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect Google DriveDocs, sheets, slides, files.
  2. 2
    Connect PostgresAny Postgres URL — query, write, migrate.
  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.