Field guide

Microsoft 365 CIS Benchmark, made operational.

The CIS Microsoft 365 Foundations Benchmark covers nearly a hundred controls across identity, email, collaboration, and data. This page walks through twelve of the highest-impact controls with paraphrased summaries, why each one moves the needle, and a 5-minute fix you can run today. Free to read, no email required.

12 controls

The set we lead with on every Microsoft 365 readiness review. Ordered by risk reduction per minute.

5-minute fixes

Each entry ends with the exact admin path or PowerShell line. No vendor login required to read it.

Audit ready

Every control maps to NIST 800-53, ISO 27001, SOC 2, and HIPAA in our control registry. Cross-framework on day one.

Why CIS Microsoft 365 is the baseline auditors recognize

It maps to everything else

Each CIS control aligns to NIST 800-53, ISO 27001:2022, SOC 2 Trust Services Criteria, HIPAA Security Rule, and the CISA Secure Cloud Business Applications baseline. Implement CIS cleanly and the other framework rows light up at the same time.

It is configuration, not paperwork

CIS controls are tenant settings, Conditional Access policies, DLP rules, and Defender configurations. They live in your tenant, not in a binder. That is what makes them automatable end to end.

It catches the boring 80 percent

Most Microsoft 365 incidents start with one of three root causes: weak admin auth, an open consent grant, or a misconfigured email filter. CIS covers all three before it gets to the exotic controls.

It scales with the tenant

The same 12 controls below apply to a 50-seat startup tenant and a 50,000-seat enterprise tenant. Microsoft 365 does not expose different settings at different sizes. The hardening is identical.

12 controls, 12 fixes

Paraphrased control titles from the Veri-Tech control registry. The CIS section IDs are factual references and remain visible. Authoritative control text lives with the Center for Internet Security; this page describes what each control checks for and how to satisfy it.

#1CIS-M365.5.1.1.1criticalIdentity

Security defaults disabled in Azure Active Directory

What it does

Security Defaults give every tenant a baseline of MFA and legacy auth blocking. The CIS posture replaces them with Conditional Access policies that cover the same gaps with finer control.

Why it matters

Security Defaults and Conditional Access cannot run side by side. Tenants left on Security Defaults cannot use Conditional Access at all, which means no risk-based MFA, no device compliance gating, no admin protections.

5-minute fix

Stand up CA policies that require MFA for all users, block legacy auth, and require compliant or hybrid-joined devices for admins. Once the CA policies are reporting-only clean for 24 hours, switch Security Defaults off in Entra admin center, Identity, Overview, Properties.

#2CIS-M365.5.2.2.5criticalIdentity

Phishing-resistant MFA strength required for administrators

What it does

A Conditional Access policy that targets every admin role and requires an authentication strength of phishing-resistant MFA (FIDO2 security key, Windows Hello for Business, or certificate-based auth).

Why it matters

Push-prompt and SMS MFA are bypassed every quarter in real breaches. Phishing-resistant methods cannot be relayed by an attacker proxy. Admins are the highest-value target in the tenant.

5-minute fix

Issue a Temporary Access Pass to each admin, register a FIDO2 key or Windows Hello for Business, then enable a CA policy targeting all admin role IDs with Grant, Require authentication strength, Phishing-resistant MFA.

#3CIS-M365.5.2.2.4criticalIdentity

Admin sign-in frequency enabled with non-persistent browser sessions

What it does

Conditional Access session controls that force admins to reauthenticate on a regular cadence and prevent the browser from holding the session across closes.

Why it matters

A persistent browser session on a stolen or shared admin device equals a persistent breach. Forcing a sign-in frequency closes the window for token theft and walk-up access.

5-minute fix

In your admin CA policy, set Session, Sign-in frequency to four hours and Persistent browser session to Never persistent. Apply to every admin role, exclude only break-glass.

#4CIS-M365.5.2.2.8criticalIdentity

Admin center access limited to administrative roles

What it does

A Conditional Access policy that blocks the Microsoft Admin Portals app for everyone except users assigned an administrative role.

Why it matters

Standard users browsing portal.azure.com or admin.microsoft.com leak the admin URL surface to credential-stealing extensions and phishing kits. Blocking unprivileged access to admin portals shrinks the attack surface to the people who need it.

5-minute fix

Create a CA policy with Cloud apps, Microsoft Admin Portals. Users, All users, exclude all admin roles. Grant, Block. Roll out in report-only first to confirm no service accounts get caught.

#5CIS-M365.5.2.3.1criticalIdentity

Microsoft Authenticator hardened against MFA fatigue

What it does

Number matching, application name display, and geographic location display turned on for the Microsoft Authenticator app.

Why it matters

MFA fatigue attacks (push spamming) succeed when the prompt does not tell the user where the request is coming from. Number matching forces deliberate confirmation. App name and location turn a "tap yes" reflex into a deliberate decision.

5-minute fix

Entra admin center, Authentication methods, Policies, Microsoft Authenticator, Configure. Enable Number matching, Show application name, and Show geographic location. Apply to All users.

#6CIS-M365.2.1.8highEmail

SPF records published for all Exchange domains

What it does

A DNS TXT record at the apex of every accepted email domain that lists Microsoft 365 as an authorized sender and hard-fails everyone else.

Why it matters

Without SPF, anyone can spoof your domain in an email envelope. Recipients lose the ability to detect that mail claiming to be from you actually came from a third party.

5-minute fix

Add a TXT record at each domain apex with content v=spf1 include:spf.protection.outlook.com -all. The hard fail (-all) is the CIS posture, not the soft fail (~all).

#7CIS-M365.2.1.10highEmail

DMARC records published for all Exchange Online domains

What it does

A DNS TXT record at _dmarc.<domain> that tells receivers what to do with mail that fails SPF or DKIM, and where to send aggregate reports.

Why it matters

SPF and DKIM tell receivers how to authenticate mail. DMARC tells them what to do when authentication fails. Without DMARC, a receiver can choose to deliver spoofed mail anyway.

5-minute fix

Publish a TXT record at _dmarc.yourdomain with v=DMARC1; p=quarantine; rua=mailto:dmarc-reports@yourdomain. Once aggregate reports show only your authorized senders, advance to p=reject.

#8CIS-M365.2.1.11highEmail

Comprehensive attachment filtering applied

What it does

The Exchange Online malware filter set to block a comprehensive list of dangerous executable and script attachment types, not just the default.

Why it matters

The default Common Attachment Types Filter misses dozens of formats that ship malware (msi, msix, lnk, mst, hta, iso, img, and more). Attackers bounce between them as soon as one gets blocked.

5-minute fix

Run Set-MalwareFilterPolicy -Identity Default -EnableFileFilter $true with the comprehensive file type list (ace, apk, app, appx, bat, cmd, com, dll, exe, hta, img, iso, lnk, msi, msix, msp, vbs, and 30 more).

#9CIS-M365.5.1.5.2highIdentity

User consent to apps accessing company data blocked

What it does

The tenant authorization policy locked so a standard user cannot grant a third-party application permission to read their mailbox, OneDrive, or directory data.

Why it matters

Illicit consent grant attacks (the OAuth phishing kits that send a fake consent page) succeed because most tenants leave user consent at the default permissive setting. Removing that default closes the most common cloud account takeover path.

5-minute fix

Entra admin center, Identity, Applications, Enterprise applications, Consent and permissions. Set Users can consent to apps to No. Pair with the admin consent workflow below.

#10CIS-M365.5.1.5.3highIdentity

Admin consent workflow enabled

What it does

A built-in workflow that lets users request admin consent for apps they need but cannot consent to themselves, with assigned reviewers.

Why it matters

Blocking user consent without a request path shifts shadow IT into worse channels (personal accounts, screenshot exfil). The workflow gives users a sanctioned way to ask, and gives admins visibility into demand.

5-minute fix

Entra admin center, Enterprise applications, Consent and permissions, Admin consent settings. Enable Users can request admin consent. Assign two or three reviewers (Cloud App Admin or App Admin role).

#11CIS-M365.3.2.1highData

DLP policies enabled

What it does

At least one Microsoft Purview Data Loss Prevention policy in Enabled mode covering Exchange, scoped to detect and act on sensitive content like financial data, credentials, and regulated identifiers.

Why it matters

DLP is the only Microsoft 365 control that inspects message and file content as it moves. Audit-only DLP does nothing in real time. Enable mode is the entry price for protecting regulated data.

5-minute fix

Microsoft Purview, Data loss prevention, Policies. Use a built-in template (Financial, Health, Privacy) and set Mode to Enable. Re-run scans, address false positives, then expand scope.

#12CIS-M365.5.1.6.1highIdentity

Collaboration invitations restricted to allowed domains

What it does

External Identities settings that limit who can invite guests and which external domains they can invite from.

Why it matters

A wide-open guest invite policy is the simplest way for a phisher with one compromised mailbox to seed a long-running social engineering campaign across your tenant. Allow-listing partner domains and gating invites to admin roles closes that lane.

5-minute fix

Entra admin center, External Identities, External collaboration settings. Set Guest invite settings to Only users assigned to specific admin roles. Configure cross-tenant access B2B inbound to allow-list partner tenants.

What about the other 80-odd CIS controls?

The full Microsoft 365 CIS Benchmark covers around ninety four controls across identity, email, sharing, defender, and audit. The twelve above are the ones that fail most often, fix fastest, and buy the most risk reduction per hour of work. Once those are clean, the next tier is mostly tuning: stricter sign-in risk thresholds, DKIM rotation, sensitivity labels, advanced delivery for security tooling.

Veri-Guard scans your live tenant against the full registry, scores it, and generates a remediation runbook for every failing control. The runbook tells you exactly which Conditional Access policy, which Exchange cmdlet, or which Defender setting is wrong, with the fix already filled in.