CIS Microsoft 365 Foundations Benchmark

Secure configuration guidelines for Microsoft 365 cloud services

v6.0.1 February 2026

Overview

▶

This CIS Benchmark provides prescriptive guidance for establishing a secure configuration posture for Microsoft 365. This benchmark is the product of a community consensus process and consists of secure configuration guidelines developed for Microsoft 365 Cloud productivity and collaboration services.

194Recommendations
7Sections
2Profile Levels
4License Tiers
License Applicability: Recommendations are mapped to specific Microsoft 365 license tiers: E3 (Enterprise E3), E5 (Enterprise E5), F1 (F1 Frontline), and F3 (F3 Frontline). Each recommendation indicates which licenses include the required functionality.
SectionAreaRecommendationsFocus
1Microsoft Entra Admin Center~55Identity, Users, Groups, External Identities, Conditional Access, Governance
2Microsoft 365 Admin Center~25Org Settings, Security & Privacy, User Consent, Password Policies
3Exchange Online~30Mail Flow, Anti-spam, Anti-phishing, Modern Auth, Transport Rules
4SharePoint & OneDrive~20Sharing Policies, Access Control, Guest Access, Storage Limits
5Microsoft Teams~25Messaging, Meetings, External Access, Guest Policies, Apps
6Microsoft Defender~25Safe Attachments, Safe Links, Anti-phishing, Alert Policies
7Microsoft Purview~14Audit Logging, DLP, Information Protection, Data Retention

Profile Definitions

▶
Profile Levels define security tiers. L1 is the baseline and should be applied broadly. L2 adds defense-in-depth controls that may impact usability.
ProfileDescriptionIntended Use
L1 Level 1 — Corporate/Enterprise Environment (General) Practical security settings that can be implemented broadly without significant impact on functionality. These are the minimum recommended baseline security settings.
L2 Level 2 — High Security/Sensitive Data Environment Settings intended for environments where security is paramount. May reduce usability or functionality in exchange for stronger security posture. Extends L1 controls.

License Applicability

TierLicenseNotes
E3Microsoft 365 Enterprise E3Core enterprise license — most L1 recommendations apply
E5Microsoft 365 Enterprise E5Advanced security, compliance, and analytics features
F1Microsoft 365 F1 (Frontline)Limited feature set for frontline workers
F3Microsoft 365 F3 (Frontline)Enhanced frontline worker license

1 — Microsoft Entra Admin Center

▶

This section contains recommendations for configuring Microsoft Entra ID (formerly Azure Active Directory), including identity, authentication, authorization, and governance settings.

1.1 Identity > Users

▶
1.1.1 Ensure Administrative Accounts are Cloud-Only (Manual)
L1 E3 E5
Profile Applicability
Level 1E3E5
Description

Administrative accounts that are cloud-only ensure that the compromise of on-premises environments does not extend to Microsoft 365. These accounts should not be synced from an on-premises directory using AD Connect or similar tools.

Rationale

If an on-premises Active Directory is compromised, accounts synced to Entra ID are also at risk. Cloud-only administrative accounts isolate the cloud environment from on-premises attacks and ensure administrative access remains available even if on-premises infrastructure fails.

Impact

Administrators will need separate cloud-only accounts for M365 administration, which must be managed independently of on-premises AD. This may increase the number of credentials administrators must manage.

Audit

From the Entra Admin Center:

  1. Navigate to Microsoft Entra admin center > Identity > Users > All users.
  2. Filter by User type = Member and sort by On-premises sync enabled.
  3. For each user with an administrative role assigned, ensure On-premises sync enabled is No.

Using Microsoft Graph PowerShell:

Connect-MgGraph -Scopes "User.Read.All","RoleManagement.Read.Directory"
$adminRoles = Get-MgDirectoryRole
foreach ($role in $adminRoles) {
  $members = Get-MgDirectoryRoleMember -DirectoryRoleId $role.Id
  foreach ($member in $members) {
    $user = Get-MgUser -UserId $member.Id `
      -Property DisplayName,OnPremisesSyncEnabled
    if ($user.OnPremisesSyncEnabled -eq $true) {
      Write-Host "FAIL: $($user.DisplayName) in $($role.DisplayName) is synced"
    }
  }
}
Remediation

Create dedicated cloud-only administrative accounts in Microsoft Entra ID:

  1. Navigate to Microsoft Entra admin center > Identity > Users > Create new user.
  2. Create a new cloud-only account for administrative purposes.
  3. Assign the appropriate administrative roles to the new account.
  4. Remove administrative roles from any synced on-premises accounts.
Default Value

By default, Microsoft 365 does not prevent synced accounts from holding administrative roles.

CIS Controls
ControlDescriptionIG
5.4Restrict Administrator Privileges to Dedicated Administrator AccountsIG1
1.1.2 Ensure Two Emergency Access Accounts are Configured (Manual)
L1 E3 E5
Profile Applicability
Level 1E3E5
Description

Emergency access accounts (also known as "break glass" accounts) are highly privileged accounts not assigned to specific individuals. They are limited to emergency scenarios where normal administrative accounts cannot be used — for example, if all administrators are locked out due to a Conditional Access misconfiguration.

Rationale

Without emergency access accounts, an organization may be permanently locked out of their Microsoft 365 tenant if all administrator accounts are compromised, disabled, or blocked by Conditional Access. Two accounts are recommended for redundancy.

Impact

Emergency access accounts require special handling: extremely long and complex passwords stored securely (e.g., in a safe), excluded from Conditional Access policies, and monitored with alerts on any sign-in activity.

Audit

From the Entra Admin Center:

  1. Navigate to Identity > Users > All users.
  2. Verify at least two accounts exist that are: cloud-only, assigned Global Administrator, excluded from all Conditional Access policies, and not used for day-to-day administration.
Remediation
  1. Create two cloud-only user accounts with long, random passwords (minimum 16 characters).
  2. Assign the Global Administrator role to both accounts.
  3. Exclude these accounts from all Conditional Access policies.
  4. Store credentials securely (e.g., split knowledge in a physical safe).
  5. Monitor sign-in activity with alerts for any use of these accounts.
Default Value

By default, no emergency access accounts are configured.

CIS Controls
ControlDescriptionIG
5.4Restrict Administrator Privileges to Dedicated Administrator AccountsIG1
1.1.3 Ensure Fewer than Five Global Administrators are Designated (Manual)
L1 E3 E5
Profile Applicability
Level 1E3E5
Description

The Global Administrator role grants unrestricted access to all services and settings in Microsoft 365. The number of users assigned this role should be minimized — ideally between two and four (including emergency access accounts).

Rationale

The principle of least privilege dictates that only the minimum number of administrators should hold the most powerful role. More Global Admins increases the attack surface and risk of account compromise. Use specific admin roles (e.g., Exchange Administrator, SharePoint Administrator) where possible.

Audit
Connect-MgGraph -Scopes "RoleManagement.Read.Directory"
$globalAdminRole = Get-MgDirectoryRole | Where-Object {
  $_.DisplayName -eq "Global Administrator"
}
$members = Get-MgDirectoryRoleMember -DirectoryRoleId $globalAdminRole.Id
Write-Host "Global Administrators: $($members.Count)"
# Result should be between 2 and 4
Remediation

Review all Global Administrator assignments and reassign to more specific admin roles where possible. Keep between 2–4 Global Admins (including emergency access accounts).

CIS Controls
ControlDescriptionIG
5.4Restrict Administrator Privileges to Dedicated Administrator AccountsIG1

1.2 Identity > Groups

▶
1.2.1 Ensure that Group Owners Cannot Add or Approve Members (Manual)
L2 E3 E5
Description

By default, group owners can approve requests to join their groups. This setting controls whether additional approval workflows are required when users request to join a group.

Rationale

When group membership is used to control access to resources, unrestricted group owner approval can lead to unauthorized access. Requiring additional oversight for group membership changes ensures proper authorization.

Audit

Navigate to Microsoft Entra admin center > Identity > Groups > General settings and review group membership approval settings.

Remediation

Configure group access reviews or implement approval workflows using Entra ID Governance entitlement management.

1.3 Identity > External Identities

▶
1.3.1 Ensure Guest User Access is Restricted (Automated)
L1 E3 E5 Auto
Description

Guest users should have limited access to directory properties and memberships. This setting restricts guest users to limited access — they can view only their own profile and explicitly shared resources.

Rationale

Unrestricted guest access allows external users to enumerate users, groups, and other directory objects, potentially exposing sensitive organizational structure to non-employees.

Audit

Navigate to Microsoft Entra admin center > Identity > External Identities > External collaboration settings.

Verify Guest user access restrictions is set to "Guest user access is restricted to properties and memberships of their own directory objects (most restrictive)".

Remediation
  1. Navigate to External Identities > External collaboration settings.
  2. Set Guest user access restrictions to the most restrictive option.
  3. Click Save.
CIS Controls
ControlDescriptionIG
6.8Define and Maintain Role-Based Access ControlIG2

1.4 Protection > Conditional Access

▶
1.4.1 Ensure Multifactor Authentication is Required for All Users (Manual)
L1 E3 E5
Description

A Conditional Access policy should require MFA for all users. This significantly reduces the risk of account compromise from credential-based attacks such as password spray, phishing, and brute force.

Rationale

Passwords alone are insufficient. Requiring a second factor ensures that even if a password is compromised, the attacker cannot access the account without the additional factor.

Audit
  1. Navigate to Microsoft Entra admin center > Protection > Conditional Access > Policies.
  2. Identify a policy that targets All users (excluding emergency access accounts).
  3. Verify the Grant control requires Require multifactor authentication.
  4. Ensure the policy state is On.
Remediation
  1. Navigate to Protection > Conditional Access > Create new policy.
  2. Under Users, select All users. Under Exclude, add emergency access accounts.
  3. Under Cloud apps, select All cloud apps.
  4. Under Grant, select Require multifactor authentication.
  5. Set policy to On and save.
CIS Controls
ControlDescriptionIG
6.3Require MFA for Externally-Exposed ApplicationsIG1
6.4Require MFA for Remote Network AccessIG1
6.5Require MFA for Administrative AccessIG1
1.4.2 Ensure Sign-in Frequency is Enabled and Browser Sessions are Not Persistent for Administrative Users (Manual)
L1 E3 E5
Description

Configure a Conditional Access policy for administrative users that enforces a maximum sign-in frequency (e.g., 4 hours) and disables persistent browser sessions to force periodic re-authentication.

Rationale

Persistent admin sessions increase the window of opportunity for session hijacking. Frequently re-authenticating administrators limits the duration a compromised session token remains valid.

Audit
  1. Navigate to Protection > Conditional Access > Policies.
  2. Identify a policy targeting administrative roles.
  3. Verify Session controls set Sign-in frequency to ≤ 4 hours and Persistent browser session to Never persistent.
Remediation

Create or modify a Conditional Access policy targeting all Directory Roles, setting session controls for sign-in frequency and non-persistent browser sessions.

1.4.3 Ensure that Legacy Authentication is Blocked via Conditional Access (Automated)
L1 E3 E5 Auto
Description

Legacy authentication protocols (e.g., IMAP, POP3, SMTP, ActiveSync with basic auth) do not support MFA and are common vectors for brute force and password spray attacks. Block legacy authentication for all users via Conditional Access.

Rationale

Legacy protocols bypass MFA entirely, making them the preferred attack vector. Microsoft reports that more than 99% of password spray attacks and more than 97% of credential stuffing attacks use legacy authentication.

Audit
  1. Navigate to Protection > Conditional Access > Policies.
  2. Locate a policy with Conditions > Client apps set to Exchange ActiveSync clients and Other clients.
  3. Verify the Grant control is Block access.
Remediation
  1. Create a new Conditional Access policy targeting All users.
  2. Under Conditions > Client apps, select Exchange ActiveSync clients and Other clients.
  3. Under Grant, select Block access.
  4. Enable the policy.
CIS Controls
ControlDescriptionIG
6.7Centralize Access ControlIG2

1.5 Identity Governance

▶
1.5.1 Ensure Access Reviews for Guest Users are Configured (Manual)
L2 E5
Description

Configure regular access reviews for guests using Entra ID Governance. Reviews should occur at least quarterly and automatically remove access if the review is not completed.

Rationale

Guest accounts often accumulate over time and retain access long after their business need has ended. Regular reviews ensure stale guest accounts are identified and removed.

Audit

Navigate to Identity Governance > Access Reviews and verify at least one review targeting guest users is configured with a recurring schedule.

Remediation
  1. Navigate to Identity Governance > Access Reviews > New access review.
  2. Scope to Guest users only, set frequency to Quarterly.
  3. Set auto-apply results and configure Remove access if reviewers don't respond.

2 — Microsoft 365 Admin Center

▶

Settings managed through the Microsoft 365 Admin Center including organizational settings, password policies, and security configurations.

2.1 Settings

▶
2.1.1 Ensure the Password Expiration Policy is Set to Not Expire (Automated)
L1 E3 E5 Auto
Description

Set organizational passwords to never expire. NIST SP 800-63B guidance recommends against periodic password changes as they lead to weaker passwords. Combined with MFA and conditional access, non-expiring passwords provide better security.

Rationale

Requiring periodic password changes encourages users to choose weak, predictable passwords or make trivial modifications to existing passwords. Modern guidance focuses on long, unique passwords protected by MFA rather than frequent rotation.

Audit
Connect-MgGraph -Scopes "Domain.Read.All"
Get-MgDomain | Select-Object Id, PasswordValidityPeriodInDays
# PasswordValidityPeriodInDays should be 2147483647 (never expire)
Remediation

Navigate to Microsoft 365 admin center > Settings > Org settings > Security & privacy > Password expiration policy. Check "Set passwords to never expire".

2.2 Org Settings > Security & Privacy

▶
2.2.1 Ensure Calendar Details Sharing with External Users is Disabled (Automated)
L2 E3 E5 Auto
Description

Disable sharing calendar details with external users to prevent disclosure of meeting subjects, attendee lists, and organizational activity patterns to unauthorized parties.

Rationale

Leaving Calendar Details Sharing with External Users enabled when it is not required unnecessarily expands the attack surface. An attacker could leverage this feature to gain unauthorized access or escalate privileges on the Microsoft 365 cloud platform.

Audit
Connect-ExchangeOnline
Get-SharingPolicy | Where-Object {$_.Default -eq $true} |
  Format-List Name, Domains, Enabled
# Verify no external domains are configured or sharing is disabled
Remediation

Navigate to Exchange admin center > Organization > Sharing and modify the default sharing policy to remove external calendar sharing or restrict to Free/Busy only.

2.3 Org Settings > User Consent

▶
2.3.1 Ensure User Consent to Apps is Not Allowed (Automated)
L1 E3 E5 Auto
Description

Disable the ability for users to consent to third-party applications accessing organizational data. All app consents should go through an administrator approval process.

Rationale

Illicit consent grant attacks trick users into granting permissions to malicious third-party apps. By restricting user consent, organizations prevent unauthorized data exposure through phishing-based OAuth consent attacks.

Audit

Navigate to Microsoft Entra admin center > Applications > Enterprise applications > Consent and permissions > User consent settings.

Verify "Do not allow user consent" is selected.

Remediation
  1. Navigate to Enterprise applications > Consent and permissions.
  2. Under User consent settings, select "Do not allow user consent".
  3. Configure the Admin consent workflow for users to request app access through administrators.

3 — Exchange Online

▶

Email security configuration including mail flow rules, authentication controls, anti-spam, and anti-phishing policies administered through Exchange Online.

3.1 Mail Flow

▶
3.1.1 Ensure External Senders are Identified with a Warning Tag (Automated)
L1 E3 E5 Auto
Description

Configure Exchange Online to tag emails from external senders with a visual indicator (e.g., "[EXTERNAL]" prepended to subject or an external sender callout in Outlook) to help users identify potential phishing emails.

Rationale

Failure to external Senders are Identified with a Warning Tag may leave the Microsoft 365 cloud platform vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit
Connect-ExchangeOnline
Get-ExternalInOutlook | Format-List Enabled, AllowList
# Enabled should be True
Remediation
Set-ExternalInOutlook -Enabled $true
3.1.2 Ensure Mail Transport Rules Do Not Whitelist Specific Domains (Manual)
L1 E3 E5
Description

Review mail transport rules to ensure no rules bypass spam filtering or other protections for specific sender domains. Domain-based whitelisting allows attackers to spoof trusted domains and bypass security controls.

Rationale

Failure to mail Transport Rules Do Not Whitelist Specific Domains may leave the Microsoft 365 cloud platform vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit
Get-TransportRule | Where-Object {
  $_.SetSCL -eq -1 -or
  $_.SetHeaderName -eq "X-MS-Exchange-Organization-SkipSafeLinksProcessing"
} | Format-List Name, State, SenderDomainIs
Remediation

Remove or modify any transport rules that whitelist domains by setting SCL to -1 or skipping filtering. Use the allow lists in anti-spam policies only when strictly necessary.

3.2 Anti-spam / Anti-phishing

▶
3.2.1 Ensure DKIM is Enabled for All Exchange Online Domains (Automated)
L1 E3 E5 Auto
Description

DomainKeys Identified Mail (DKIM) allows the receiving mail system to verify that messages were not tampered with in transit and originated from the authorized mail system for that domain.

Rationale

Failure to dKIM is Enabled for All Exchange Online Domains may leave the Microsoft 365 cloud platform vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit
Connect-ExchangeOnline
Get-DkimSigningConfig | Format-List Domain, Enabled
# All domains should show Enabled = True
Remediation
  1. Publish DKIM CNAME records for each domain in DNS.
  2. Enable DKIM signing: Set-DkimSigningConfig -Identity yourdomain.com -Enabled $true
3.2.2 Ensure SPF Records are Published for All Exchange Domains (Manual)
L1 E3 E5
Description

Sender Policy Framework (SPF) DNS records should be published for all domains used for email. SPF records authorize specific mail servers to send email on behalf of the domain.

Rationale

Failure to sPF Records are Published for All Exchange Domains may leave the Microsoft 365 cloud platform vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit
# For each domain:
nslookup -type=TXT yourdomain.com
# Should include: v=spf1 include:spf.protection.outlook.com -all
Remediation

Add a TXT record to DNS: v=spf1 include:spf.protection.outlook.com -all

Use -all (hard fail) rather than ~all (soft fail) for strict enforcement.

3.2.3 Ensure DMARC Records are Published for All Domains (Manual)
L1 E3 E5
Description

DMARC (Domain-based Message Authentication, Reporting, and Conformance) builds on SPF and DKIM to provide domain-level email authentication. A DMARC policy instructs receiving servers on how to handle messages that fail SPF/DKIM checks.

Rationale

Failure to dMARC Records are Published for All Domains may leave the Microsoft 365 cloud platform vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit
nslookup -type=TXT _dmarc.yourdomain.com
# Should include: v=DMARC1; p=reject; (or p=quarantine at minimum)
Remediation

Add a TXT record at _dmarc.yourdomain.com:

v=DMARC1; p=reject; rua=mailto:dmarc-reports@yourdomain.com; ruf=mailto:dmarc-forensic@yourdomain.com; pct=100

Start with p=none for monitoring, then progress to p=quarantine and finally p=reject.

3.3 Modern Authentication

▶
3.3.1 Ensure Modern Authentication for Exchange Online is Enabled (Automated)
L1 E3 E5 Auto
Description

Modern authentication (based on OAuth 2.0) must be enabled for Exchange Online. This is required for MFA and Conditional Access to function with mail clients.

Rationale

Without Modern Authentication for Exchange Online enabled, the Microsoft 365 cloud platform may lack critical protections against known attack vectors. Enabling this control mitigates risk and aligns the deployment with industry-accepted security baselines.

Audit
Get-OrganizationConfig | Format-List OAuth2ClientProfileEnabled
# Should be True
Remediation
Set-OrganizationConfig -OAuth2ClientProfileEnabled $true

4 — SharePoint & OneDrive

▶

File sharing, access control, and collaboration settings for SharePoint Online and OneDrive for Business.

4.1 Sharing Policies

▶
4.1.1 Ensure SharePoint External Sharing is Managed (Manual)
L1 E3 E5
Description

Configure SharePoint Online external sharing to allow sharing only with authenticated external guests (at minimum). Disable anonymous sharing links unless a specific business need exists.

Rationale

Failure to sharePoint External Sharing is Managed may leave the Microsoft 365 cloud platform vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit
Connect-SPOService -Url https://yourtenant-admin.sharepoint.com
Get-SPOTenant | Format-List SharingCapability
# Should be ExistingExternalUserSharingOnly or ExternalUserSharingOnly
# Should NOT be ExternalUserAndGuestSharing (Anyone links)
Remediation
Set-SPOTenant -SharingCapability ExternalUserSharingOnly

This restricts sharing to authenticated guests who must sign in before accessing shared content.

4.1.2 Ensure Expiration of External Sharing Links is Configured (Automated)
L1 E3 E5 Auto
Description

Configure a maximum expiration period for external sharing links (guest access links). Links should expire within 30 days or fewer.

Rationale

Misconfiguration of Expiration of External Sharing Links can lead to security gaps that may be exploited by attackers. A properly configured Microsoft 365 cloud platform reduces exposure to both known vulnerabilities and configuration drift.

Audit
Get-SPOTenant | Format-List RequireAnonymousLinksExpireInDays,
  ExternalUserExpireInDays, ExternalUserExpirationRequired
Remediation
Set-SPOTenant -ExternalUserExpireInDays 30 -ExternalUserExpirationRequired $true

4.2 Access Control

▶
4.2.1 Ensure OneDrive Content Sharing is Restricted (Manual)
L2 E3 E5
Description

OneDrive sharing settings should be at least as restrictive as the SharePoint tenant-level settings. Restrict OneDrive sharing to existing external users or internal only.

Rationale

Unrestricted OneDrive Content Sharing could allow unauthorized users or processes to perform actions beyond their intended scope. Applying least-privilege principles to the Microsoft 365 cloud platform is essential for defense in depth.

Audit
Get-SPOTenant | Format-List OneDriveSharingCapability
# Should be ExistingExternalUserSharingOnly or Disabled
Remediation
Set-SPOTenant -OneDriveSharingCapability ExistingExternalUserSharingOnly

5 — Microsoft Teams

▶

Security settings for Microsoft Teams collaboration platform covering messaging, meetings, external access, and app management.

5.1 Messaging Policies

▶
5.1.1 Ensure Users Can Report Security Concerns in Teams (Automated)
L1 E3 E5 Auto
Description

Enable the ability for users to report suspicious messages in Teams, similar to the report message functionality in Outlook. This feature should route reports to the security team for review.

Rationale

Failure to users Can Report Security Concerns in Teams may leave the Microsoft 365 cloud platform vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Navigate to Microsoft Teams admin center > Messaging policies > Global (Org-wide default). Verify Report a security concern is set to On.

Remediation

In the Teams admin center, edit the Global messaging policy and enable Report a security concern.

5.2 Meeting Policies

▶
5.2.1 Ensure Anonymous Users Can Not Join Meetings (Manual)
L2 E3 E5
Description

Disable anonymous (unauthenticated) users from joining Teams meetings. All attendees should be required to authenticate before joining.

Rationale

Anonymous join allows unidentified users to participate in meetings where sensitive information may be discussed. Requiring authentication ensures accountability and allows meeting organizers to control access.

Audit
Connect-MicrosoftTeams
Get-CsTeamsMeetingPolicy -Identity Global |
  Format-List AllowAnonymousUsersToJoinMeeting
# Should be False
Remediation
Set-CsTeamsMeetingPolicy -Identity Global `
  -AllowAnonymousUsersToJoinMeeting $false
5.2.2 Ensure Only Organizers and Co-organizers Can Present (Manual)
L1 E3 E5
Description

Configure the default meeting policy so only organizers and co-organizers can present, preventing external attendees or unintended users from sharing content.

Rationale

Failure to only Organizers and Co-organizers Can Present may leave the Microsoft 365 cloud platform vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit
Get-CsTeamsMeetingPolicy -Identity Global |
  Format-List DesignatedPresenterRoleMode
# Should be OrganizerOnlyUserOverride
Remediation
Set-CsTeamsMeetingPolicy -Identity Global `
  -DesignatedPresenterRoleMode OrganizerOnlyUserOverride

5.3 External Access

▶
5.3.1 Ensure External Access is Restricted in the Teams Admin Center (Manual)
L1 E3 E5
Description

External access controls communication with users outside the organization. This should be restricted to specific allowed domains rather than open to all external organizations.

Rationale

Unrestricted external access allows any external Teams/Skype user to message internal users, enabling social engineering and phishing via Teams chat.

Audit
Get-CsTenantFederationConfiguration |
  Format-List AllowFederatedUsers, AllowedDomains
# AllowFederatedUsers should be True only with specific AllowedDomains
# Or AllowFederatedUsers should be False
Remediation

Navigate to Teams admin center > Users > External access. Set to "Allow only specific external domains" and add required domains.

6 — Microsoft Defender

▶

Microsoft Defender for Office 365 provides advanced threat protection including Safe Attachments, Safe Links, and anti-phishing capabilities.

6.1 Safe Attachments

▶
6.1.1 Ensure Safe Attachments Policy is Enabled (Automated)
L1 E5 Auto
Description

Safe Attachments scans email attachments for malware by detonating them in a virtual environment. Enable this with a Block or Dynamic Delivery action.

Rationale

Traditional anti-malware may miss zero-day threats. Safe Attachments uses sandbox detonation to detect previously unknown malware in attachments before they reach user mailboxes.

Audit
Connect-ExchangeOnline
Get-SafeAttachmentPolicy | Format-List Name, Enable, Action
# Should have at least one policy with Enable=True and Action=Block or DynamicDelivery
Remediation

Navigate to Microsoft Defender portal > Policies & rules > Threat policies > Safe Attachments. Create or edit a policy with action set to Block.

6.1.2 Ensure Safe Attachments for SharePoint, OneDrive, and Teams is Enabled (Automated)
L1 E5 Auto
Description

Extend Safe Attachments protection to files in SharePoint, OneDrive, and Teams. Malicious files detected are blocked from being opened or downloaded.

Rationale

Without Safe Attachments for SharePoint, OneDrive, and Teams enabled, the Microsoft 365 cloud platform may lack critical protections against known attack vectors. Enabling this control mitigates risk and aligns the deployment with industry-accepted security baselines.

Audit
Get-AtpPolicyForO365 | Format-List EnableATPForSPOTeamsODB
# Should be True
Remediation
Set-AtpPolicyForO365 -EnableATPForSPOTeamsODB $true

6.2 Safe Links

▶
6.2.1 Ensure Safe Links Policy is Enabled (Automated)
L1 E5 Auto
Description

Safe Links provides URL scanning and rewriting of inbound email messages and time-of-click verification of URLs in email, Teams, and Office documents.

Rationale

Without Safe Links Policy enabled, the Microsoft 365 cloud platform may lack critical protections against known attack vectors. Enabling this control mitigates risk and aligns the deployment with industry-accepted security baselines.

Audit
Get-SafeLinksPolicy | Format-List Name, EnableSafeLinksForEmail,
  EnableSafeLinksForTeams, EnableSafeLinksForOffice,
  ScanUrls, DeliverMessageAfterScan, TrackClicks
Remediation

Navigate to Microsoft Defender portal > Policies & rules > Threat policies > Safe Links. Create or edit a policy enabling URL scanning for email, Teams, and Office applications.

6.3 Anti-phishing Policies

▶
6.3.1 Ensure Anti-phishing Policy is Configured with Impersonation Protection (Manual)
L1 E5
Description

Configure anti-phishing policies with user and domain impersonation protection enabled. This protects against attackers impersonating key users (C-suite, finance) or trusted domains.

Rationale

Business email compromise (BEC) attacks frequently use impersonation of executives or trusted partners. Impersonation protection uses mailbox intelligence and AI to detect these attempts.

Audit
Get-AntiPhishPolicy | Format-List Name, Enabled,
  EnableTargetedUserProtection, TargetedUsersToProtect,
  EnableTargetedDomainsProtection, EnableOrganizationDomainsProtection,
  EnableMailboxIntelligence, EnableMailboxIntelligenceProtection
Remediation
  1. Navigate to Microsoft Defender portal > Anti-phishing.
  2. Enable user impersonation protection and add key users (executives, finance).
  3. Enable domain impersonation protection for organizational and custom domains.
  4. Enable mailbox intelligence and mailbox intelligence protection.
  5. Set actions to quarantine for impersonation detections.

7 — Microsoft Purview

▶

Data governance, compliance, and audit logging through Microsoft Purview (formerly Microsoft 365 Compliance Center).

7.1 Audit Logging

▶
7.1.1 Ensure Microsoft 365 Audit Log Search is Enabled (Automated)
L1 E3 E5 Auto
Description

The unified audit log records user and admin activity across Microsoft 365 services. This must be enabled to capture exchange, SharePoint, Entra ID, and other service events for security monitoring and incident response.

Rationale

Without audit logging, security teams cannot investigate incidents, detect suspicious behavior, or satisfy compliance requirements that mandate activity logging.

Audit
Connect-ExchangeOnline
Get-AdminAuditLogConfig | Format-List UnifiedAuditLogIngestionEnabled
# Should be True
Remediation
Set-AdminAuditLogConfig -UnifiedAuditLogIngestionEnabled $true
CIS Controls
ControlDescriptionIG
8.2Collect Audit LogsIG1
8.5Collect Detailed Audit LogsIG2
7.1.2 Ensure Mailbox Auditing for All Users is Enabled (Automated)
L1 E3 E5 Auto
Description

Mailbox auditing captures mailbox access operations (read, send, delete, move) for owner, delegate, and admin logon types. While enabled by default since 2019, verify this setting has not been disabled.

Rationale

Without Mailbox Auditing for All Users enabled, the Microsoft 365 cloud platform may lack critical protections against known attack vectors. Enabling this control mitigates risk and aligns the deployment with industry-accepted security baselines.

Audit
Get-OrganizationConfig | Format-List AuditDisabled
# Should be False
# Also check individual mailboxes:
Get-Mailbox -ResultSize Unlimited | Where-Object {$_.AuditEnabled -eq $false} |
  Select-Object DisplayName, AuditEnabled
Remediation
Set-OrganizationConfig -AuditDisabled $false

7.2 Data Loss Prevention

▶
7.2.1 Ensure DLP Policies are Enabled (Manual)
L2 E5
Description

Data Loss Prevention (DLP) policies help prevent inadvertent or intentional sharing of sensitive information. At minimum, configure DLP policies for common sensitive data types (PII, financial data, health records).

Rationale

Without DLP policies, users may inadvertently share sensitive data such as credit card numbers, Social Security numbers, or health information via email, Teams, or SharePoint, violating regulatory requirements.

Audit

Navigate to Microsoft Purview compliance portal > Data loss prevention > Policies. Verify at least one DLP policy exists and is enabled, covering Exchange, SharePoint, OneDrive, and Teams.

Remediation
  1. Navigate to Data loss prevention > Policies > Create policy.
  2. Select a template (e.g., U.S. PII, Financial Data) or create a custom policy.
  3. Apply to Exchange, SharePoint, OneDrive, Teams, and Devices as appropriate.
  4. Configure policy tips to educate users and set actions for violations.
  5. Enable the policy in enforcement mode.
CIS Controls
ControlDescriptionIG
3.1Establish and Maintain a Data Management ProcessIG1
3.7Establish and Maintain a Data Classification SchemeIG2