Skip to content

Find the AI nobody asked permission for. With the evidence attached.

Shadow AI is any AI tool in use that your organization has not reviewed. GhostAudit looks for it in seven places, two of which need nothing installed on any device, and puts what it finds in one queue, so a person can decide what each finding means.

01Sources

Seven ways in, because no single source sees everything.

An AI tool can enter a company through a "Sign in with Google" button, a pull request, a single sign-on tile, a browser tab or a desktop download. Each leaves a different trace, so GhostAudit reads all of them.

  • Google Workspace. Reads the admin audit log for third-party apps that people have granted access to their Google account, and for SAML sign-ins, and matches them against the AI catalog.
  • Microsoft 365 / Entra ID. Reads the enterprise applications in your tenant, the permissions they were granted and who is assigned, through Microsoft Graph.
  • Okta. Matches the applications in your tenant against a catalog of AI vendors, with the number of people assigned.
  • GitHub. Scans dependency files in your repositories for AI SDKs and frameworks, and reports the package, version and file.
  • Browser extension. Sees AI sites opened in Chrome and Edge, whether or not they go through SSO.
  • Desktop agent. Sees native AI apps and connections to AI API hosts on macOS and Windows.
  • Log import. Paste lines from an SSO, proxy or DNS log and GhostAudit picks out the AI services they mention. Useful before any sensor is deployed.

A tool found by several sources is one finding with several pieces of evidence, not several findings.

Example workspace. Names and figures are illustrative.

Discovery
5 to review
  • Fireflies.aiGoogle Workspace
    Granted calendar and file access by 27 people
  • ClaudeBrowser extension
    211 people on 226 devices since 14 Oct
  • CursorDesktop agent
    Cursor.exe, Cursor.app on 66 devices
  • OpenAI APIGitHub
    openai 1.51 in payments-service/requirements.txt
  • Otter.aiOkta
    SSO app assigned to 41 people
02Agentless

Start from Google Workspace or Microsoft 365, before anything is installed.

Most AI tools are adopted by clicking "Sign in with Google" or "Sign in with Microsoft". That click leaves a record in your identity provider, and the record says more than that the tool exists: it says what the tool was allowed to reach.

Connect Google Workspace with a service account you create, limited to one read-only scope for the admin audit log. Connect Microsoft 365 with an app you register in your own tenant, with read-only directory permission. The first sync runs when you connect, and each AI tool found becomes a finding with its evidence: how many people granted it access, since when, and which permissions it holds. After that, every connected source is synced automatically once a night, and Sync now on the Integrations page runs one whenever you want.

Permissions drive the suggested risk. A writing assistant that can only see a name and an email address is one thing. A meeting assistant that was granted read access to calendars and files is another, and its finding says so in plain words.

What is read, and what is not. Application names and ids, permission names, the identity of the person who granted access, counts and timestamps. No mail, files, calendar entries or prompt content are requested from either provider. People are stored according to your identity mode: emails in named mode, the same salted hashes the sensors use in pseudonymous mode, and counts only in anonymous mode.

Limits. Google keeps these audit events for 180 days, so a grant made earlier is seen only if the app was authorised again or was active recently. Microsoft sign-in counts need Entra ID P1 or P2 and an additional permission; without them you still get applications, grants and assignments. Neither source sees a tool that someone signed up for with a personal email address; that is what the sensors are for.

  • Read-only: one audit-log scope for Google, directory read for Microsoft
  • Credentials you create and can revoke, encrypted before they are stored
  • Evidence per tool: people, dates and the access that was granted
  • Synced automatically every night, or on demand with Sync now

An example finding, and what each connector asks for.

Fireflies.ai Google Workspace
Suggested risk: high
Evidence
OAuth grant by 27 people since 2 Sep. Last API activity 9 Nov.
Access granted
Calendar (read), Drive files (read), basic profile
Why it matters
A meeting assistant with calendar and file access can join and record meetings on behalf of the people who granted it.
People
27 identities, shown as hashes in pseudonymous mode
DismissAdd to inventory
Google Workspace
Read-only
Connects with
Your own service account, with domain-wide delegation
Permission
One read-only scope: admin.reports.audit.readonly
Reads
Third-party OAuth grants and SAML app sign-ins, from the admin audit log (last 180 days)
Never requests
Mail, files, calendar entries or any content
Microsoft 365 / Entra ID
Read-only
Connects with
An app you register in your own tenant; client-credentials flow
Permission
Directory.Read.All. Optionally AuditLog.Read.All for sign-in counts
Reads
Enterprise applications, permission grants and assignments. With Entra ID P1 or P2, sign-ins (last 30 days)
Never requests
Mail, files, calendar entries or any content
03Review

Nothing joins your inventory until someone accepts it.

Discovery proposes; people decide. Each finding shows the tool, the vendor, a suggested risk level with the reasoning behind it, and the evidence. For a tool such as a consumer chatbot, the notes say plainly what the concern is: personal accounts sit outside the company workspace, and people can paste confidential documents into them.

From the queue you can add to inventory, which creates the record and lets you assign an owner and a status, or dismiss with a reason. A dismissed finding stays on file and is not raised again when the same tool is seen later; you can reopen it if circumstances change.

That is the difference between a discovery report and a governed process: every tool that was found has a recorded decision, a name against it and a date.

  • Suggested risk level per tool, with notes for the reviewer
  • Accept, dismiss with a reason, or reopen
  • Every decision is written to the audit log

Example workspace. Names and figures are illustrative.

AI inventory
38 systems · 21 vendors
SystemOwnerRisk tierStatus
Candidate screening
HireVue
People operationsHighSanctioned
ChatGPT Enterprise
OpenAI
ITLimitedSanctioned
Support assistant
Intercom
Customer supportLimitedSanctioned
Claude
Anthropic
EngineeringLimitedUnder review
Cursor
Anysphere
UnassignedLimitedUnsanctioned
Grammarly
Grammarly
MarketingMinimalSanctioned
04Unclassified apps

The AI tools that are not in anyone's catalog yet.

A catalog is always a little behind. New AI products appear every week, and an identity provider reports every app in your tenant, most of which have nothing to do with AI.

So the apps that Google Workspace, Microsoft 365 or Okta report and the catalog does not recognise are screened by fixed rules: AI terms in the name, a domain that reads like an AI product, or broad access to mail, files or calendars. Those that look AI-related are listed as unclassified apps on the Discovery page, each with the reasons it was listed.

An admin or compliance manager goes through the list. Confirm turns the app into a finding in the review queue and adds it to your organization's own catalog, so the next sync recognises it. Dismiss removes it from the list. Nothing is added on its own.

Only the app's name, public domain and permission labels are kept for this list, not who uses it. The organization catalog is used when identity providers are synced; the browser extension and desktop agent keep to the built-in catalog.

  • Screened by name, domain and granted access, with the reasons shown
  • Confirm or dismiss; a person decides every time
  • Confirmed apps are recognised at the next sync

Example list. App names and domains are fictional.

Unclassified apps 3
Not in the AI catalog
  • Scribelane AI Notetaker
    app.scribelane.example · Google Workspace
    AI term in the app namecan read calendars and mail
    ConfirmDismiss
  • TallyBot GPT for Sheets
    tallybot-ai.example · Google Workspace
    AI term in the app namecan read Drive files
    ConfirmDismiss
  • Meadowlark Transcription Assistant
    meadowlark.example · Microsoft Entra ID
    name suggests an AI feature
    ConfirmDismiss
Confirm the ones that are AI tools; nothing is added on its own.
05Alerts

Hear about a new tool the day it appears.

Connect Slack, Microsoft Teams or any webhook, and GhostAudit posts when a new AI tool is found or added to the inventory. The message names the source and the evidence, and links to the finding.

Once a tool is in the inventory, the rest of the product takes over. You set its status, which the sensors apply as a warning or a block. You assess it against the frameworks you follow. The regulation tracker tells you which laws reach it, and why.

An example alert. Names and figures are illustrative.

#ai-governance
Slack
GhostAudit 09:14
New AI tool found: Otter.ai
Source: browser extension. 41 people on 44 devices since 3 Nov. Not in the AI inventory.
Review in Discovery
06Scope

What discovery will and will not find.

We would rather you know the edges than discover them later.

Discovery recognises the 86 tools in the GhostAudit catalog: 60 end-user products, 13 developer APIs and 13 libraries and frameworks. A tool that is not in the catalog is not matched by the sensors or the GitHub scan; you can still add it to the inventory by hand. For apps reported by Google Workspace, Microsoft 365 and Okta, the unclassified apps review above catches the ones that look AI-related.

Sensors see managed browsers and managed devices. AI used on a personal phone is outside their reach. The Google Workspace and Microsoft 365 connections see AI tools that were given access to a work account, on any device, and nothing that was used with a personal account. AI features embedded inside a product you already use, such as an assistant inside a CRM, are found through the vendor's SSO tile or API host where one exists, and otherwise need to be recorded manually.

The GitHub scan reads dependency manifests. It reports that an AI SDK is present in a repository; it does not analyse how your code uses it.

Specification

Discovery at a glance

Google Workspace
Customer-owned service account with domain-wide delegation and one read-only scope, admin.reports.audit.readonly. Reads OAuth grant, revoke and activity events and SAML sign-ins for the last 180 days. Evidence: people, dates and scopes granted.
Microsoft 365 / Entra ID
App registration in your tenant, client-credentials flow, Directory.Read.All (and optionally AuditLog.Read.All for sign-in counts, which also needs Entra ID P1 or P2). Evidence: assignments, permission grants and sign-ins.
GitHub
Organization connection. Dependency files scanned for AI SDKs and frameworks. Evidence: package, version and file path.
Okta
Applications matched to AI vendors by name. Evidence: application and number of people assigned.
Sensors
First sighting of a catalog tool that is not in the inventory creates a finding. Evidence: people and devices, and the date first seen.
Log import
SSO, network or other log lines, pasted in. Evidence: number of matching lines and an example.
Sync schedule
Google Workspace, Microsoft 365, Okta and GitHub are synced automatically once a day, at a fixed time for each organization between 01:00 and 05:00 UTC, and on demand with Sync now. A failed sync is retried with increasing delays.
Unclassified apps
Apps from Google Workspace, Microsoft 365 and Okta that are not in the catalog but look AI-related by name, domain or access are listed for an admin or compliance manager to confirm or dismiss.
Credentials
Integration tokens are encrypted before they are stored. See security.
Alerts
Slack, Microsoft Teams, generic webhook.
Plans
Included in every plan. See pricing.
FAQ

Questions

What is shadow AI?

AI tools and features that employees use for work without the organization having reviewed or approved them. It is usually well-intentioned: someone found a tool that helps. The risk is that nobody has checked what data goes into it or which rules apply.

Do we need to deploy sensors to start?

No. Connecting Google Workspace, Microsoft 365, Okta or GitHub, or importing a log extract, produces findings from the first sync. Sensors add what those sources cannot see: tools used with a personal account, and how much each tool is actually used.

What access do the Google Workspace and Microsoft 365 connections need?

Read-only access to metadata. For Google, a service account you create with one scope, admin.reports.audit.readonly. For Microsoft, an app you register with Directory.Read.All, and optionally AuditLog.Read.All. Neither can read mail, files or calendars, and neither can change anything in your tenant. You can revoke either at any time from your own admin console.

How often are the connected sources checked?

Once a night, automatically, for Google Workspace, Microsoft 365, Okta and GitHub. You can also run a sync at any time with Sync now on the Integrations page. Sensors report continuously and do not depend on this schedule.

What about an AI tool that is not in your catalog?

If it is reported by Google Workspace, Microsoft 365 or Okta and looks AI-related by its name, domain or the access it was granted, it appears under unclassified apps for an admin to confirm or dismiss. Sensors match the built-in catalog only, so a tool seen only in a browser or on a desktop has to be in the catalog or be added to the inventory by hand.

Does discovery read our source code?

The GitHub scan reads dependency files such as requirements.txt and package.json to find AI packages. It does not store your source code.

What happens to tools we decide are fine?

They become inventory records marked sanctioned. Sensors keep counting their use, and the tool can be assessed and included in documents like any other system.

Connect one source and see what turns up.

Start a 14-day trial with every Govern feature, connect one discovery source and enroll a handful of devices. No card is needed to start, and nobody is asked to change how they work.