Free Tool · CIS · SOC 2 · ISO 27001 · NIST

CIS M365 & Google Workspace Baseline Explorer

Inspect every automated check in the Pistos Pharos catalogue, including plain-English risk explanations, multi-framework compliance mappings, and step-by-step remediation commands.

m365-mfa-101Microsoft 365MFA & Identity Hygiene
Severity: CRITICAL

Require phishing-resistant MFA for all privileged administrator roles

Administrator accounts hold keys to every mailbox, SharePoint site, and directory setting. Requiring FIDO2/WebAuthn or Microsoft Authenticator number-matching blocks credential stuffing and adversary-in-the-middle token theft.

CIS M365 v3.1 5.2.2.1SOC 2 CC6.1SOC 2 CC6.2ISO A.8.5ISO A.5.17NIST CSF PR.AA-01NIST CSF PR.AA-03

Entra Admin Center → Protection → Conditional Access → Policies

  1. Create or edit a Conditional Access policy targeting all built-in Entra directory admin roles.
  2. Under Grant controls, require Authentication strength → Phishing-resistant MFA.
  3. Exclude only your two monitored emergency-access (break-glass) accounts.
Connect-MgGraph -Scopes "Policy.ReadWrite.ConditionalAccess"
New-MgIdentityConditionalAccessPolicy -DisplayName "Pharos: Require Admin Phishing-Resistant MFA" -State "enabled"
m365-mfa-102Microsoft 365MFA & Identity Hygiene
Severity: HIGH

Enforce MFA for 100% of active member and guest users

Even a single unlicensed or shared user account without MFA allows an attacker to pivot inside Microsoft Teams, read internal SharePoint sites, and launch internal phishing.

CIS M365 v3.1 5.2.2.2SOC 2 CC6.1ISO A.8.5NIST CSF PR.AA-03

Entra Admin Center → Identity → Overview → Properties → Security defaults (or Conditional Access)

  1. Verify every active member and guest user is covered by Conditional Access MFA or Security Defaults.
  2. Review excluded groups to ensure temporary onboarding exemptions have been removed.
Get-MgReportAuthenticationMethodUserRegistrationDetail -All | Where-Object { -not $_.IsMfaRegistered }
m365-adm-201Microsoft 365Admin Privilege & Role Boundaries
Severity: HIGH

Keep standing Global Administrators between 2 and 4 accounts

More than 4 Global Administrators multiplies your blast radius; fewer than 2 risks tenant lockout if one admin is unavailable. Daily administrative work should use scoped roles (Exchange Admin, User Admin).

CIS M365 v3.1 1.1.3SOC 2 CC6.3ISO A.8.2ISO A.5.15NIST CSF PR.AA-05

Entra Admin Center → Identity → Roles & admins → Global Administrator

  1. Review all accounts permanently assigned the Global Administrator role.
  2. Downgrade day-to-day admins to least-privilege roles such as User Administrator or Exchange Administrator.
  3. Retain 2 dedicated cloud-only emergency access accounts protected by FIDO2 hardware keys.
$role = Get-MgDirectoryRole -Filter "DisplayName eq 'Global Administrator'"
Get-MgDirectoryRoleMember -DirectoryRoleId $role.Id
m365-adm-202Microsoft 365Admin Privilege & Role Boundaries
Severity: MEDIUM

Ensure Global Administrator accounts are cloud-only (not hybrid synced)

If an on-premises Active Directory account is synced to Entra ID with Global Admin rights, an on-prem domain compromise immediately compromises the entire cloud tenant.

CIS M365 v3.1 1.1.4SOC 2 CC6.2SOC 2 CC6.3ISO A.8.2NIST CSF PR.AA-05

Entra Admin Center → Identity → Users → All users

  1. Inspect Global Administrator accounts and verify OnPremisesSyncEnabled is false.
  2. Create dedicated cloud-only admin accounts (*.onmicrosoft.com) separate from daily email accounts.
m365-leg-301Microsoft 365Legacy Protocols & Sign-In Risk
Severity: CRITICAL

Block legacy authentication protocols (IMAP, POP3, SMTP Basic, ActiveSync)

Legacy authentication protocols cannot enforce MFA. Over 90% of successful password-spray attacks against Microsoft 365 authenticate through legacy IMAP, POP3, or older Office clients.

CIS M365 v3.1 5.2.2.3SOC 2 CC6.1SOC 2 CC6.6ISO A.8.5ISO A.8.20NIST CSF PR.AA-03

Entra Admin Center → Protection → Conditional Access → Block Legacy Authentication

  1. Create a Conditional Access policy targeting All users.
  2. Under Conditions → Client apps, check Exchange ActiveSync clients and Other clients.
  3. Under Access controls → Grant, select Block access.
Set-OrganizationConfig -DefaultAuthenticationPolicy "Block-Legacy-Auth"
m365-mail-401Microsoft 365Mail Forwarding & Routing Rules
Severity: CRITICAL

Disable automatic external mail forwarding on outbound spam policies and inbox rules

Attackers who compromise a mailbox routinely add silent inbox rules or SMTP forwarding to exfiltrate invoices, wire instructions, and password reset emails to an external address.

CIS M365 v3.1 2.1.1SOC 2 CC6.6SOC 2 CC6.7ISO A.8.12NIST CSF PR.DS-05

Microsoft Defender Portal → Email & collaboration → Policies & rules → Threat policies → Anti-spam → Outbound spam

  1. Edit the default Outbound spam filter policy.
  2. Set Automatic forwarding rules to Off — Forwarding is disabled.
  3. Audit existing mailbox ForwardingSmtpAddress values and remove unauthorized external targets.
Set-HostedOutboundSpamFilterPolicy -Identity Default -AutoForwardingMode Off
m365-ext-501Microsoft 365External Sharing & Guest Access
Severity: HIGH

Restrict SharePoint & OneDrive anonymous "Anyone with the link" sharing

Anonymous "Anyone" links can be forwarded outside the intended recipient list and indexed or accessed without authentication, exposing customer contracts and internal spreadsheets.

CIS M365 v3.1 7.2.1CIS M365 v3.1 7.2.3SOC 2 CC6.6SOC 2 CC6.7ISO A.5.14ISO A.8.12NIST CSF PR.DS-01NIST CSF PR.AA-05

SharePoint Admin Center → Policies → Sharing

  1. Slide SharePoint and OneDrive external sharing down from "Anyone" to "New and existing guests" or "Existing guests".
  2. Set default sharing link type to "Specific people (only the people the user specifies)".
Set-SPOTenant -SharingCapability ExistingExternalUserSharingOnly -DefaultSharingLinkType Direct
m365-ext-502Microsoft 365External Sharing & Guest Access
Severity: MEDIUM

Restrict Entra ID guest user invite permissions and directory visibility

By default, guests can enumerate all users and groups in your Entra directory. Restricting guest access to their own profile properties prevents external recon.

CIS M365 v3.1 5.1.6.2SOC 2 CC6.1SOC 2 CC6.3ISO A.5.15NIST CSF PR.AA-05

Entra Admin Center → Identity → External Identities → External collaboration settings

  1. Set Guest user access restrictions to "Guest user access is restricted to properties and memberships of their own directory objects".
  2. Set Guest invite settings to "Only users assigned to specific admin roles can invite guest users".
m365-oauth-601Microsoft 365Third-Party OAuth & Shadow-IT
Severity: HIGH

Require administrator consent for third-party OAuth applications requesting high-risk scopes

Illicit consent grant attacks trick users into clicking "Accept" on a third-party OAuth prompt, granting attackers persistent API access to Mail.ReadWrite and Files.ReadWrite.All without ever needing the user’s password or MFA.

CIS M365 v3.1 5.1.5.1SOC 2 CC6.1SOC 2 CC6.8ISO A.8.26ISO A.5.23NIST CSF PR.AA-05NIST CSF GV.SC-07

Entra Admin Center → Identity → Applications → Enterprise applications → Consent and permissions

  1. Select "Do not allow user consent" or "Allow user consent for apps from verified publishers, for selected permissions (Low impact)".
  2. Enable the Admin consent workflow so users can request review with a business justification.
Update-MgPolicyAuthorizationPolicy -DefaultUserRolePermissions @{PermissionGrantPoliciesAssigned = @()}
m365-log-701Microsoft 365Unified Audit Logging & Alerting
Severity: HIGH

Enable Microsoft Purview Unified Audit Log ingestion and mailbox auditing

Without Unified Audit Logging enabled, forensic responders cannot determine which emails or SharePoint files were accessed during an incident, failing SOC 2 and ISO 27001 logging requirements.

CIS M365 v3.1 3.1.1CIS M365 v3.1 6.1.1SOC 2 CC7.1SOC 2 CC7.2ISO A.8.15ISO A.8.16NIST CSF DE.CM-01NIST CSF DE.CM-03

Microsoft Purview Portal → Solutions → Audit

  1. Verify Unified Audit Logging is turned On for the organization.
  2. Enable mailbox auditing by default across all user and shared mailboxes.
Set-AdminAuditLogConfig -UnifiedAuditLogIngestionEnabled $true
Set-OrganizationConfig -AuditDisabled $false
gws-mfa-101Google WorkspaceMFA & Identity Hygiene
Severity: CRITICAL

Enforce 2-Step Verification (2SV) for all Super Admins with security keys

Google Workspace Super Admins bypass almost all organizational restrictions. Enforcing 2-Step Verification with FIDO2 Security Keys or passkeys prevents takeover of your entire Google Workspace domain.

CIS Google Workspace v1.3 1.1.3SOC 2 CC6.1SOC 2 CC6.2ISO A.8.5ISO A.5.17NIST CSF PR.AA-01NIST CSF PR.AA-03

Google Admin Console → Security → Authentication → 2-Step Verification

  1. Select your Admin organizational unit (OU) or group.
  2. Turn Enforcement ON and set Allowed methods to "Only security key".
  3. Verify backup security keys are registered for each Super Admin.
gam update org "/Admins" twostepverification enforcement on method security_key
gws-mfa-102Google WorkspaceMFA & Identity Hygiene
Severity: HIGH

Enforce 2-Step Verification across all organizational units (disallow SMS/Voice)

SIM-swapping and SS7 interception make SMS and voice call codes vulnerable. Enforcing Google Prompt, authenticator apps, or security keys across all users eliminates password-only and SMS-based compromise.

CIS Google Workspace v1.3 1.1.4CIS Google Workspace v1.3 1.1.5SOC 2 CC6.1ISO A.8.5NIST CSF PR.AA-03

Google Admin Console → Security → Authentication → 2-Step Verification

  1. At the root Organizational Unit, check "Allow users to turn on 2-Step Verification".
  2. Set Enforcement to ON with a 7–14 day enrollment grace period for new hires.
  3. Set Allowed methods to "Any except verification codes via text, phone call".
gws-adm-201Google WorkspaceAdmin Privilege & Role Boundaries
Severity: HIGH

Limit Google Workspace Super Admins to between 2 and 4 dedicated accounts

Super Admins have irrevocable control over every user, Google Drive file, and Google Cloud project linked to the domain. Keeping Super Admin count between 2 and 4 reduces attack surface.

CIS Google Workspace v1.3 1.1.1SOC 2 CC6.3ISO A.8.2ISO A.5.15NIST CSF PR.AA-05

Google Admin Console → Account → Admin roles → Super Admin

  1. Audit all users assigned the Super Admin role.
  2. Reassign routine administrators to delegated roles (User Management Admin, Groups Admin, Help Desk Admin).
  3. Remove daily Gmail/Calendar licenses from dedicated Super Admin accounts.
gam print admins role "Super Admin"
gws-leg-301Google WorkspaceLegacy Protocols & Sign-In Risk
Severity: HIGH

Disable Less Secure Apps and restrict IMAP/POP access for end users

Legacy IMAP/POP clients and app-specific passwords bypass modern session controls and context-aware access policies.

CIS Google Workspace v1.3 3.1.1SOC 2 CC6.1SOC 2 CC6.6ISO A.8.5NIST CSF PR.AA-03

Google Admin Console → Apps → Google Workspace → Gmail → End User Access

  1. Disable POP and IMAP access for all standard user organizational units, allowing only approved OAuth mail clients.
  2. Ensure Less Secure Apps access remains disabled across the domain.
gws-mail-401Google WorkspaceMail Forwarding & Routing Rules
Severity: HIGH

Disable automatic user-configured external Gmail forwarding

Preventing end users from configuring silent automatic forwarding to external domains stops data exfiltration and persistent mailbox spying.

CIS Google Workspace v1.3 3.1.8SOC 2 CC6.6SOC 2 CC6.7ISO A.8.12NIST CSF PR.DS-05

Google Admin Console → Apps → Google Workspace → Gmail → End User Access → Automatic forwarding

  1. Uncheck "Allow users to automatically forward incoming email to another address".
  2. Review existing user forwarding addresses and filters via GAM or Admin audit logs.
gam all users print forward
gws-ext-501Google WorkspaceExternal Sharing & Guest Access
Severity: HIGH

Restrict Google Drive default link sharing and disallow public "Anyone with the link" defaults

When default link sharing is open or external sharing is unrestricted, sensitive Google Docs and Sheets can be accessed by anyone with the URL.

CIS Google Workspace v1.3 4.1.1CIS Google Workspace v1.3 4.1.2SOC 2 CC6.6SOC 2 CC6.7ISO A.5.14ISO A.8.12NIST CSF PR.DS-01

Google Admin Console → Apps → Google Workspace → Drive and Docs → Sharing settings

  1. Set Default link sharing for new files to "OFF — Only specific people can access".
  2. Under Sharing outside of organization, require warning prompts and restrict sharing to allowlisted domains or authenticated guests.
gws-oauth-601Google WorkspaceThird-Party OAuth & Shadow-IT
Severity: HIGH

Block unverified third-party OAuth apps from accessing restricted Google Workspace scopes

Users frequently sign into AI note-takers, Chrome extensions, and productivity tools with "Sign in with Google", inadvertently granting full read/write access to Gmail and Google Drive.

CIS Google Workspace v1.3 6.1.1SOC 2 CC6.1SOC 2 CC6.8ISO A.8.26ISO A.5.23NIST CSF PR.AA-05NIST CSF GV.SC-07

Google Admin Console → Security → Access and data control → API controls → Manage Google Services

  1. Set Gmail, Google Drive, and Admin Directory Google Services to "Restricted" so only explicitly trusted OAuth apps can request scopes.
  2. Under Unconfigured third-party apps, select "Don’t allow users to access any third-party apps" or allow only internal/trusted apps.
gws-log-701Google WorkspaceUnified Audit Logging & Alerting
Severity: MEDIUM

Enable Google Admin alert rules for Super Admin grants, 2SV changes, and anomalous Drive exports

Real-time alerts when a new Super Admin is promoted, 2SV is disabled, or a user downloads an unusual volume of Drive files allow security teams to contain incidents in minutes instead of weeks.

CIS Google Workspace v1.3 5.1.1CIS Google Workspace v1.3 5.1.3SOC 2 CC7.2SOC 2 CC7.3ISO A.8.15ISO A.8.16NIST CSF DE.AE-02NIST CSF DE.CM-01

Google Admin Console → Rules → System defined rules

  1. Enable email notifications and Alert Center severity High for Admin privilege granted, User suspended, and Government-backed attack warning.
  2. Configure Drive data exfiltration threshold rules.