DEV Community

Cover image for Free Breach Alerts in Microsoft Sentinel: One-Click Setup with XposedOrNot
Devanand Premkumar
Devanand Premkumar

Posted on

Free Breach Alerts in Microsoft Sentinel: One-Click Setup with XposedOrNot

Data breaches don't announce themselves. Your organization's credentials could be sitting in dark web marketplaces right now, and most security teams won't find out until someone uses them.

We built a Microsoft Sentinel connector that pulls breach exposure data into your SIEM automatically. Free tier included. One-click deploy. No agents to install.

What XposedOrNot Is (Quick Context)

XposedOrNot is a free, open-source breach monitoring platform. We track 10.5 billion+ exposed records across 661 verified breaches, with 835 million+ compromised passwords checked against our database.

You can explore the full list of tracked breaches at our data repository.

The platform offers email breach checks, password exposure lookups (using k-anonymity so your password never leaves your device), risk scoring, and domain monitoring. Everything is API-first, and the core service is free.

The Sentinel connector brings all of this into your existing security workflow.

What the Connector Does

The connector syncs breach exposure data into your Sentinel workspace on a schedule you choose (every 1, 6, 12, or 24 hours).

Once connected, you get:

  • Breach exposure per domain you monitor
  • Risk-scored credentials (plaintext vs. hashed vs. unknown)
  • Pre-built workbook for executive reporting
  • Analytics rules that fire when new exposures show up

You keep doing your normal Sentinel work, and breach intel shows up alongside your other security data. Passive early warning.

XposedOrNot API --> Logic App --> Data Collection Endpoint/Rule
                       |                      |
                       v                      v
                  Key Vault            Log Analytics Workspace
                 (API Key)                    |
                                              v
                                      Microsoft Sentinel
                                     (Workbook + Analytics)
Enter fullscreen mode Exit fullscreen mode

Data flow: Logic App runs on schedule (default: every 12h), grabs the API key from Key Vault, calls XposedOrNot, and pushes results into Log Analytics via the Data Collection Rule. Sentinel picks it up for the workbook and analytics rules.

What Gets Deployed

Nine Azure resources, all managed via a single ARM template:

Resource What It Does
Key Vault Stores your API key (RBAC, no access policies)
Data Collection Endpoint Ingestion pipeline
Data Collection Rule Defines the schema and routing
Logic App Pulls data on schedule (Managed Identity, no manual auth)
Workbook Breach intelligence dashboard
Analytics Rule Detects new exposures (disabled by default, enable after 24h)

The Logic App runs under a Managed Identity. Zero passwords, zero service principals to rotate. It talks to Key Vault, grabs your API key, hits the XposedOrNot API, and pushes results into your custom log table.

Prerequisites

You need two things:

1. A Sentinel-enabled Log Analytics workspace

Already have one? Skip ahead. If not:

# Create workspace
az monitor log-analytics workspace create \
  --resource-group your-rg \
  --workspace-name your-workspace \
  --location eastus

# Enable Sentinel
az sentinel onboarding-state create \
  --resource-group your-rg \
  --workspace-name your-workspace \
  --name default
Enter fullscreen mode Exit fullscreen mode

2. An XposedOrNot API key

Edition Best For Features Where to Get It
Community (free) Individual or small team monitoring Basic breach checks, standard polling xposedornot.com
xonEnterprise+ Organization-wide workforce protection Multi-domain monitoring, sub-minute alerting, executive dashboards plus.xposedornot.com
xonThreatIntel+ Vendor/supply chain monitoring Real-time intelligence feeds, deep web monitoring, partner domain tracking plus.xposedornot.com

The free Community key gets you started. When you need to monitor your entire organization's domains, track vendor exposure, or get sub-minute alerting, the Plus tiers unlock everything. The connector works with all editions without any changes on the Sentinel side.

Deploy in 60 Seconds

Option 1: Click the Button

Head to the GitHub repo and hit Deploy to Azure.

The portal wizard asks for three things:

  • Workspace name
  • Workspace resource group
  • Your XposedOrNot API key

Click Create. Done.

Option 2: CLI

az deployment group create \
  -g your-resource-group \
  -f mainTemplate.json \
  -p workspaceName=your-workspace \
     workspaceResourceGroup=your-workspace-rg \
     xonApiKey=your-api-key
Enter fullscreen mode Exit fullscreen mode

Either way, here's what happens after deploy:

Time What Happens
0 min Deployment completes
~2 min First sync kicks off (Azure permissions need to propagate)
~5 min Data shows up in your workspace

Verify It's Working

Heads up: After deployment, the Logic App needs a few minutes to pull and process the initial data from XposedOrNot. Give it about 5 minutes before running your first query. If you get zero results immediately after deploy, that's normal. Grab a coffee, come back, and try again.

Run this in Log Analytics:

XonBreachDetails_CL
| take 10
Enter fullscreen mode Exit fullscreen mode

You should see records with fields like Email, BreachName, PasswordRisk, and ExposedDataTypes. If rows come back, you're live.

The Data You Get

Every record in XonBreachDetails_CL includes:

Field Type What It Tells You
Email string The exposed email address
EmailDomain string Domain part of the email
BreachName string Which breach it came from
BreachedDate datetime When the breach happened
PasswordRisk string plaintext, easytocrack, unknown, or stronghash
ExposedDataTypes string What categories of data leaked
ExposedRecords number How big the breach was

PasswordRisk is the field that should worry you the most. plaintext means the password was stored in clear text by the breached service. If your employee reused that password on your systems, you have an active problem.

Queries Worth Running

Find your highest-risk exposures:

XonBreachDetails_CL
| where PasswordRisk in ('plaintext', 'easytocrack')
| summarize Count=count() by Email, PasswordRisk
| order by Count desc
Enter fullscreen mode Exit fullscreen mode

These are the accounts that need password resets yesterday.

Breach exposure by domain:

XonBreachDetails_CL
| summarize 
    Exposures = count(),
    Breaches = dcount(BreachName)
  by Domain
| order by Exposures desc
Enter fullscreen mode Exit fullscreen mode

Useful when you monitor multiple domains. Shows which parts of your organization are most exposed.

Track new exposures over time:

XonBreachDetails_CL
| where TimeGenerated > ago(7d)
| summarize Count=count() by bin(TimeGenerated, 1h)
| render timechart
Enter fullscreen mode Exit fullscreen mode

Plug this into a dashboard, and you'll see breach data flowing in on each sync cycle.

The Workbook

Once data starts flowing, head to Microsoft Sentinel > Workbooks > My workbooks > XposedOrNot Breach Intelligence.


The workbook gives you:

  • Exposure analytics across all monitored domains
  • Risk breakdown by password type
  • Breach timeline showing when exposures were detected
  • Drill down into individual breaches and affected accounts

No KQL required. Your CISO can open this and understand the exposure posture in minutes.

Enable the Analytics Rule

After 24 hours of data collection (so you have a baseline), go to:

Microsoft Sentinel > Analytics > find "XposedOrNot - New Breach Exposure Detected" > Enable

This creates incidents when new breach exposures are detected in your monitored domains. From there, you can build playbooks: automatically trigger password resets, notify affected users, or route to your existing incident response workflow.

What This Costs

The XposedOrNot Community API is free. The Azure costs are minimal:

  • Logic App: Runs once every 12 hours by default. A few cents per month.
  • Log Analytics ingestion: Depends on data volume. For most organizations, monitoring a handful of domains costs single-digit dollars per month.
  • Key Vault: Negligible. One secret, occasional reads.

If you're already running Sentinel, this barely moves the needle on your Azure bill.

Security Notes

A few things we built intentionally:

  • Key Vault uses RBAC, not access policies. The Logic App's Managed Identity gets a scoped role. No one else has access by default.
  • No secrets in the ARM template. The API key goes straight into Key Vault during deployment.
  • The Logic App doesn't store data. It reads from the API, transforms, and pushes to Log Analytics. Nothing persists in the Logic App itself.
  • All communication over HTTPS. API calls to XposedOrNot, Key Vault reads, Log Analytics writes: all TLS.

Going Further

Some things worth exploring once you're up and running:

  • Build a playbook that auto-resets passwords when PasswordRisk = 'plaintext' exposures show up
  • Correlate with sign-in logs to check if exposed credentials were actually used to authenticate
  • Monitor vendor domains with xonThreatIntel+ to catch supply chain breaches before they reach your perimeter
  • Track executive exposure with xonEnterprise+ for C-suite credential monitoring
  • Set up weekly reports to your CISO with exposure trends
  • Connect to Teams/Slack via Sentinel playbooks for real-time notifications

Get Started

The repo, API, and community tier are all free and open source.

If you spot something we should improve, open an issue. PRs welcome.


Have you set up breach monitoring in your SIEM before? Curious what other integrations you'd want to see. Drop a comment, I read all of them.


Written by Devanand Premkumar, founder of XposedOrNot. Tracking breaches since 2017.

Top comments (0)