> For the complete documentation index, see [llms.txt](https://docs.material.security/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.material.security/learn-more/risk-areas/malicious-oauth-apps.md).

# Malicious OAuth Apps

## Overview

Material monitors third-party app access in your Google Workspace environment in real time. Advanced plans include the OAuth Remediation Agent, which adds AI-powered investigation, automated classification, and recurring audits.

<details>

<summary>Why OAuth Security Matters</summary>

OAuth is how most third-party apps, and increasingly AI agents, connect to your Google Workspace. When a user connects to a tool or authorizes a new AI assistant, they're granting that app an OAuth token: a persistent, programmatic key to their Gmail, Drive, Calendar, or other Google data.

The problem is threefold:

**The Approval Bottleneck** Every new app install is a potential risk that someone needs to evaluate. In practice, that means admins spend hours researching obscure vendors, chasing users to understand why they installed something, and manually deciding whether to allow or block it. For lean security teams, this backlog never shrinks.

**The Silent Breach** OAuth tokens don't expire when a user changes their password or enables MFA. A token granted months ago to a vendor that has since been compromised is still active, and your team likely doesn't know. The typical discovery timeline is months, often triggered by a manual audit or a breach announcement from the vendor.

**The Transparency Gap** Existing automation tools try to solve this but fail for a simple reason: they're black boxes. Admins disable them because they can't answer the questions that matter: "What breaks if I revoke this?" and "Who's actually using it right now?" Without transparency, automation feels like a liability.

Meanwhile, the risk is growing. As organizations adopt AI tools that connect to the enterprise stack via OAuth, every new agent installation is another persistent access point that often carries broader permissions than the task actually requires.

Take a look [at our CISO's recent LinkedIn post](https://www.linkedin.com/posts/rajankkapoor_want-to-see-an-oauth-attack-happen-live-ugcPost-7462398070589272064-Z1QE?utm_source=share\&utm_medium=member_desktop\&rcm=ACoAAArtYhQBQRat98ff8ShnrBNrtCcLNp_Eulg) demonstrating these risks.

</details>

<details>

<summary>How Material address OAuth Risk</summary>

Material's approach is built around a coordinated model: the agent handles the high-volume work of research, outreach, and triage, while you retain oversight for decisions that carry real business risk.

This means:

* **Real-time detection** instead of hourly polling. The agent catches new OAuth activity as it happens, not after the fact.
* **AI-powered investigation** that answers the questions admins actually need: who's using this, what can it access, and should I be concerned?
* **Automated remediation** based on policies you define. The agent acts, so you don't have to.

</details>

{% @arcade/embed url="<https://app.arcade.software/share/6mnKaEUsPNyiIZtRAEgg/QoOtGjDK6QfqZO4NF2eX>" flowId="6mnKaEUsPNyiIZtRAEgg" %}

Two tiers of capability are available depending on your plan:

* **Essentials:** Real-time OAuth inventory, scope visibility, and account blast radius. The **Application was granted OAuth access for the first time** detection fires when a user connects a new app, creating an issue for review. You can manually classify apps and configure responses per classification, including token revocation.
* **Advanced:** Everything in Essentials, plus the OAuth Remediation Agent, which adds AI-powered investigation, automated classification (coming soon), end-user notifications, and recurring 90-day audits.

{% hint style="info" %}
**Note**: This feature is not available for customers who have opted out of Material’s GenAI capabilities.
{% endhint %}

***

## How the OAuth Remediation Agent Works

The OAuth Remediation Agent is a collection of detections that fire when OAuth activity occurs in your environment, paired with an AI investigation agent that researches each app, scores it across four risk factors, and recommends a classification.

At a high level, here's how it works:

1. **A detection fires:** real-time event monitoring catches new or changed OAuth activity in your environment
2. **The agent investigates:** researches the app across four risk factors and produces a classification and plain-language summary
3. **A response executes:** based on policies you configure, the agent automatically revokes tokens, notifies users, or takes no action
4. **An issue surfaces:** if human review is needed, it appears in your dashboard with the investigation already done. Accepting the agent's suggested classification automatically resolves the issue.

**The result**: your team spends less time chasing down app justifications and more time on the work that actually requires your judgment.

{% hint style="success" %}
The OAuth Remediation Agent is an Advanced plan feature. On Essentials, the **Application was granted OAuth access for the first time** detection still fires and creates issues for manual review, but AI investigation and recurring audits are not included.
{% endhint %}

### Apps Dashboard

The Apps dashboard located in the Explorer gives you a high level view of all your connected apps, their classifications, active issues, active accounts etc.

<figure><img src="/files/cbnzhSwmCQdx8Ez6rS0S" alt="Apps dashboard showing connected OAuth apps, classifications, active issues, and account counts"><figcaption><p>Apps dashboard in Explorer</p></figcaption></figure>

To narrow the list to the apps specific people use, apply the **Accounts** filter. Select one or more accounts to see only the apps those accounts have granted, including grants that were later revoked. CSV export respects the filter, so you can export exactly the apps you've filtered to.

Click the **Accounts** tab on any app detail view to see all connected users. The tab opens filtered to active accounts, with a count that matches what's shown, and includes a **Scope Level** column and filters so you can sort and narrow the list. When an account's token has been revoked, a **Revoked at** timestamp shows when it happened, and if the token can't be revoked, a tooltip explains why. The **Remediation** column is hidden by default to keep the view uncluttered; you can turn it back on from the table's display options. You can also select multiple accounts and [revoke their tokens at once](/learn-more/risk-areas/malicious-oauth-apps/oauth-remediation-responses.md#revoke-tokens-for-multiple-accounts).

<figure><img src="/files/U9yGPTNsYREKl3LmDw1E" alt="App detail view with the Accounts tab showing connected users for an OAuth app"><figcaption><p>Accounts connected to an OAuth app</p></figcaption></figure>

<figure><img src="https://3411262179-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FksjM8NywYRSHu1IlfxdP%2Fuploads%2F2nPOmC8UkMhEAtiSq1R3%2Fimage.png?alt=media&#x26;token=9fb0027f-53e1-4c95-87e9-f8527ab5e95f" alt="OAuth app Accounts tab filtered to active accounts, with the matching account count"><figcaption><p>Accounts tab filtered to active accounts</p></figcaption></figure>

Expand an account row to display the specific OAuth scopes that user granted. Scopes can differ between users, giving you a precise view of each account's actual access.

<figure><img src="/files/3TmEqEmyTFqZwtw1e2Y3" alt="Expanded account row showing OAuth scopes granted by a specific user" width="375"><figcaption><p>Granted OAuth scopes for one account</p></figcaption></figure>

### Getting Started

If you're just getting started with the OAuth Remediation Agent, complete these tasks:

{% stepper %}
{% step %}

#### Detections

[Learn about the OAuth Remediation Agent detections and when they fire](/learn-more/risk-areas/malicious-oauth-apps/oauth-detections-and-classification.md#detections)
{% endstep %}

{% step %}

#### Classification

[Classify your apps](/learn-more/risk-areas/malicious-oauth-apps/oauth-detections-and-classification.md#how-to-classify-an-app)
{% endstep %}

{% step %}

#### Default Responses

[Review default responses and edit as needed](/learn-more/risk-areas/malicious-oauth-apps/oauth-remediation-responses.md#response)
{% endstep %}

{% step %}

#### End user notifications

[Set up end user notifications](/learn-more/risk-areas/malicious-oauth-apps/oauth-remediation-responses.md#set-up-end-user-notifications)
{% endstep %}
{% endstepper %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.material.security/learn-more/risk-areas/malicious-oauth-apps.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
