CyberCLI
← All connectors

Microsoft 365

Pro

Cloud Identity & Email

The identity perimeter most SMBs live behind — routed into your SOC, not Microsoft's.

Microsoft 365 homepage ↗

The default identity perimeter for most SMBs. Pulls Entra ID sign-in events, audit log, risky-user signals, mailbox audit — everything Microsoft already tracks, just routed into your sovereign SOC instead of Microsoft's.

What it watches

  • Entra ID sign-ins — impossible travel, new-country, legacy-auth, MFA fatigue
  • Risky-user + risky-sign-in signals from Identity Protection
  • Mailbox audit — auto-forward rules, mass-delete, delegate adds
  • Admin actions — role grants, app consents, conditional-access changes
  • OAuth-app + token activity (consent phishing)

MITRE ATT&CK coverage

Tactics this connector gives CyberCLI visibility into.

TA0001 · Initial Access TA0005 · Defense Evasion TA0006 · Credential Access TA0007 · Discovery TA0008 · Lateral Movement TA0009 · Collection
See the full coverage matrix →

Every alert this connector surfaces

4 event types

Every matrix-covered event_type on the passthrough lane — pinned by the engine's coverage matrix. The right column shows the operator-friendly phrase the dashboard renders. High-severity AI-lane signals are summarized in What it watches above (Warden + Herald handle those); the rest take the substrate's passthrough lane (no AI tokens burned).

event_type dashboard renders
3002.0001 Authentication failed on m365
3004 Directory audit on m365
3004.0001 Directory audit on m365
1001.0001 Security finding on m365

What it helps you catch

Catches account takeover the moment a sign-in lands from an impossible location — before the attacker sets a mail rule.
Flags the auto-forward + inbox-rule combo that signals business email compromise in progress.
Surfaces a malicious OAuth-app consent — the modern phishing payload that skips the password entirely.

What you'd see in CyberCLI

illustrative
CYCON 3 high Microsoft 365

Impossible-travel sign-in + new inbox forwarding rule

user
cfo@acme.com
from
Lagos, NG
prior
Austin, TX · 22m ago
rule
auto-forward → external

Routed to Warden (triage) → Knight (detection) → Marshal (response) → Paladin (containment) → Herald (notify)

Suggested Revoke sessions · disable rule (needs approval)

⛓ every step hash-chained · replayable

What CyberCLI reads from Microsoft 365

audit our math
Fields normalized
0
parsed from the source event
Event categories
4
API ingestion · sample below
Trust Ladder
L0 → L4
AI authorization range

M365 is the identity plane — every Entra ID sign-in, every directory audit action, every Defender alert is a CyberCLI-relevant event. We pull the Graph API + Defender alerts v2 schema: who signed in, from where (IP, country, device, app), how (interactive vs service principal vs token refresh), what the conditional-access policy said, and which directory roles changed. Defender alerts arrive with full kill-chain context.

Event categories we parse

  • Alerts v2 defender alert alerts_v2_defender_alert.json

    Defender for Identity / Defender for Cloud Apps alert with mapped MITRE technique, evidence, and recommended action.

  • Directory audit role change directory_audit_role_change.json

    Role assignment change in Entra ID. Carries actor, target, role granted, and whether it's a permanent or eligible PIM assignment.

  • Signin interactive failed signin_interactive_failed.json

    Failed interactive sign-in — carries IP, user, app, location, failure reason, conditional-access policy decision.

  • Signin service principal signin_service_principal.json

    Service-principal sign-ins (app-only tokens). Carries app ID, tenant, IP, scopes — the surface most attackers target post-compromise.

Sample event · Alerts v2 defender alert ↓
{
  "id": "ad399f7a-91ee-4f9b-a8fa-2c4f8e9c3d72",
  "providerAlertId": "da637854...",
  "createdDateTime": "2026-05-12T13:20:00.000Z",
  "title": "Suspicious sign-in activity",
  "category": "InitialAccess",
  "severity": "high",
  "status": "new",
  "classification": "unknown",
  "determination": "unknown",
  "serviceSource": "microsoftDefenderForCloudApps",
  "detectionSource": "mcas",
  "productName": "Microsoft Defender for Cloud Apps",
  "tenantId": "00000000-0000-0000-0000-000000000099",
  "description": "Impossible travel detected for chris@example.com between IS and US within 1 hour.",
  "mitreTechniques": [
    "T1078"
  ],
  "threatDisplayName": null,
  "threatFamilyName": null,
  "evidence": [
    {
      "@odata.type": "#microsoft.graph.security.userEvidence",
      "userAccount": {
        "userPrincipalName": "chris@example.com",
        "displayName": "Chris Test"
      }
    },
    {
      "@odata.type": "#microsoft.graph.security.ipEvidence",
      "ipAddress": "203.0.113.42",
      "countryLetterCode": "IS"
    }
  ]
}

MITRE techniques typically mapped

Trust Ladder ceiling · L0 → L4

AI can authorize
  • ·L0–L2: digest the sign-in / audit event · notify · summarize the alert chain
  • ·L3 (Knight verification): correlate with prior sign-ins, geo-IP, device-compliance state — read-only Graph queries
  • ·L4 (Paladin containment, Pro+): user disable via m365.disable_user · sign-in session revoke via m365.revoke_sign_in_sessions
Requires human approval
  • ·L5+: role revocation, conditional-access policy changes, tenant-wide enforcement
  • ·Any action affecting break-glass or service accounts

Full ladder semantics · /trust →

Field count + sample event auto-derived from src/cybercli/connectors/microsoft365/vector.vrl at build time. Numbers update the moment the engine's parser changes — no drift.

Close more of the kill chain

Microsoft 365 covers 6 of 14 ATT&CK tactics. Pair it with these to widen coverage:

How to connect

  1. 1 Create an Entra app registration with Reports.Read.All + AuditLog.Read.All.
  2. 2 Grant admin consent + generate a client secret (stored in the CyberCLI vault).
  3. 3 Run `cybercli onboard m365` with the tenant + app credentials.
  4. 4 Confirm sign-in + audit events flowing in the dashboard's Connectors panel.
Install / activate
Already on M365? Create an Entra app registration with Reports.Read.All → `cybercli onboard m365`
Guild roles it feeds
  • Warden (triage)
  • Knight (detection)
  • Marshal (response)
  • Paladin (containment)
  • Herald (notify)
The Guild →
Sovereignty

Hybrid. CyberCLI pulls M365's audit data via Microsoft's API into your local SOC — the data Microsoft already holds, now correlated under your control instead of only theirs.

Go deeper