Defender for Office 365 — EOP, Anti-Spam & Anti-Phishing
SC-200 Exam Alignment
SC-200
Mitigate threats using Defender for Office 365: Configure and manage Exchange Online Protection policies — anti-spam, anti-malware, anti-phishing — and understand the EOP filtering pipeline, spoof intelligence, authentication (SPF/DKIM/DMARC), and preset security policies.
- Know the EOP filtering pipeline order: connection filtering → anti-malware → mail flow rules → anti-spam → anti-phishing
- Know that all Microsoft 365 tenants get Exchange Online Protection (EOP) at no additional cost — Defender for Office 365 Plan 1 and Plan 2 add extra layers
- Understand the difference between SCL (Spam Confidence Level) — a numeric score (−1 to 9) assigned during anti-spam filtering — and BCL (Bulk Complaint Level) for bulk email
- Know that Standard and Strict preset security policies configure EOP + Defender for Office 365 settings in bulk — Strict is more aggressive and should be applied to high-value targets
🔄 EOP Filtering Pipeline
Every email message entering an Exchange Online mailbox passes through this pipeline in order. Understanding the sequence is essential for diagnosing why a message was delivered, quarantined, or rejected.
| # | Filter Layer | What It Checks | Outcome if Triggered |
|---|---|---|---|
| 1 | Connection filtering | Sender IP address against Microsoft’s global block list and your custom IP Allow/Block lists | Block at SMTP connection (message never enters the pipeline) |
| 2 | Anti-malware scanning | Email attachments and body for known malware signatures using multiple scan engines | Quarantine the message; replace attachment with alert text |
| 3 | Mail flow rules (transport rules) | Admin-defined conditions on headers, subject, sender, recipient, or attachment type | Any configured action — reject, redirect, stamp header, set SCL |
| 4 | Anti-spam filtering | Content analysis, sender reputation, SPF/DKIM/DMARC authentication results → assigns SCL | Deliver, Junk folder, or Quarantine based on SCL and policy thresholds |
| 5 | Anti-phishing filtering | Spoof intelligence (EOP), user impersonation, domain impersonation, mailbox intelligence (MDO P1/P2) | Move to Junk, Quarantine, or deliver with safety tip banner |
| 6 | Safe Attachments (MDO) | Detonates attachments in a sandbox to detect zero-day malware not caught by signature scanning | Block or deliver based on detonation result (MDO P1 required) |
| 7 | Safe Links (MDO) | Rewrites URLs; performs time-of-click reputation check at the moment the user clicks | Block malicious URL or redirect to safe page (MDO P1 required) |
🚫 Anti-Spam Policies
Anti-spam policies define what happens to messages at different SCL values. The default policy covers all users; custom policies can target specific users, groups, or domains with higher priority.
security.microsoft.com › Email & collaboration › Policies & rules › Threat policies › Anti-spam
| SCL Value | Classification | Default Action | Policy Setting |
|---|---|---|---|
| −1 | Skip spam filter (safe sender / IP allow) | Deliver to Inbox | Connection filter allow list or mail flow rule |
| 0 – 4 | Not spam | Deliver to Inbox | No action required |
| 5 – 6 | Spam | Move to Junk Email folder | Spam action: Move to Junk / Quarantine |
| 7 – 8 | High confidence spam | Move to Junk Email folder | High confidence spam action: Quarantine recommended |
| 9 | High confidence spam (bulk/phish) | Quarantine | Quarantine retention: 30 days by default |
⚠️ Outbound Spam Policy
Outbound spam policies limit how many messages users can send per hour and per day. If a user’s account is compromised and used for bulk spam, the outbound policy automatically restricts the account and alerts administrators. Configure the Action when a user exceeds the limits to “Restrict the user from sending email” to prevent your domain from being blocklisted by external mail services.
🦠 Anti-Malware Policies
Anti-malware policies control how EOP handles messages containing known malware signatures. They apply before the message reaches the user’s mailbox.
| Setting | Description | Recommended Value |
|---|---|---|
| Enable the common attachments filter | Automatically blocks file types commonly used to deliver malware (.exe, .bat, .ps1, .js, .vbs, .dll, .lnk and more) regardless of content scanning | Enabled (strict) — add custom extensions as needed |
| Zero-hour auto purge (ZAP) | Retroactively moves messages already delivered to mailboxes when a previously unknown threat is later classified as malware | Enabled always — critical for catching late-identified threats |
| Quarantine vs Delete | Quarantine preserves the message for admin review; Delete permanently removes it | Quarantine — gives admin ability to recover false positives |
| Admin notification | Send an alert to a mailbox when malware is detected | Enable for the security team mailbox |
🎣 Anti-Phishing Policies
Anti-phishing policies provide multiple layers of protection against spoofed and impersonated senders. EOP provides spoof intelligence (free). Defender for Office 365 P1/P2 adds user impersonation, domain impersonation, and mailbox intelligence.
| Protection Type | What It Detects | Requires |
|---|---|---|
| Spoof intelligence (EOP) | Sender domain in the From header doesn’t match the actual sending infrastructure — external spoofing of your domain or cross-domain spoofing | EOP (all tenants) |
| User impersonation (MDO) | Someone pretending to be a specific user you define (e.g. your CEO’s name in the From field with a different email address) | Defender for Office 365 P1+ |
| Domain impersonation (MDO) | Look-alike domain of your organisation (e.g. cont0so.com vs contoso.com) — typosquatting and homograph attacks | Defender for Office 365 P1+ |
| Mailbox intelligence (MDO) | Uses sending patterns and communication history to identify unusual senders — detects first-time senders or senders not normally communicating with this mailbox | Defender for Office 365 P1+ |
🔐 Email Authentication: SPF, DKIM, DMARC
Email authentication standards let receiving mail servers verify that email claiming to come from your domain was actually sent by an authorised server. EOP checks all three on inbound mail and uses results in anti-spam and anti-phishing scoring.
| Standard | What It Does | DNS Record Type | Configured In |
|---|---|---|---|
| SPF | Publishes which IP addresses are authorised to send email for your domain. Receivers check the sending IP against this list | TXT record at root domain | DNS (your domain registrar) |
| DKIM | Adds a cryptographic signature to outgoing messages. Receivers verify the signature matches a public key in DNS — proves message integrity and origin | CNAME records (Microsoft publishes the keys) | Microsoft 365 admin center → Email authentication → DKIM |
| DMARC | Tells receiving servers what to do when SPF or DKIM fails: none (monitor), quarantine, or reject. Also requests aggregate reports (rua) and forensic reports (ruf) | TXT record at _dmarc subdomain | DNS (your domain registrar) |
🛡️ Preset Security Policies
Preset security policies (Standard and Strict) configure all EOP and Defender for Office 365 settings in a single step. Microsoft maintains the settings — they update automatically as new threats emerge.
💡 Standard vs Strict Protection
- Standard protection: Balanced settings suitable for most users. Recommended minimum for all mailboxes. Spam goes to Junk; high confidence phish goes to Quarantine
- Strict protection: More aggressive — higher false positive rate but better detection. Quarantines more categories. Recommended for executives, finance, IT admins, and high-value targets
- Preset policies override individual custom policies for the users they target — you cannot mix preset settings with custom overrides for the same policy type
# Connect to Exchange Online Connect-ExchangeOnline # List anti-spam policies and key settings Get-HostedContentFilterPolicy | Select-Object Name,SpamAction,HighConfidenceSpamAction,BulkThreshold,QuarantineRetentionPeriod # Anti-phishing policy settings including spoof intelligence Get-AntiPhishPolicy | Select-Object Name,Enabled,EnableSpoofIntelligence,EnableMailboxIntelligence,PhishThresholdLevel # Check DKIM signing status for all domains Get-DkimSigningConfig | Select-Object Domain,Enabled,Status # Enable DKIM for a domain (CNAME records must exist in DNS first) Set-DkimSigningConfig -Identity contoso.com -Enabled $true
💡 Best Practices
- Apply Standard preset security policy to all users as your baseline — then layer Strict protection on top for executives, finance teams, and IT admins
- Enable DKIM for every custom domain you send from — it’s one of the highest-value Secure Score improvements and directly strengthens email deliverability
- Set your DMARC policy to
p=quarantineinitially, then move top=rejectafter monitoring the aggregate reports for 2–4 weeks to ensure no legitimate mail streams are failing authentication - Enable Zero-hour Auto Purge (ZAP) for both spam and phishing — it silently remediates messages that were delivered before the threat was classified without requiring user action
- Review the Spoof intelligence insight (Email & collaboration → Policies & rules → Threat policies → Anti-spam → Spoof intelligence insight) monthly — it lists all cross-domain spoofing activity so you can allow legitimate senders and block the rest
🎓 Interview Q&A
A message arrives with SCL 8. The organisation’s anti-spam policy has the following actions: Spam → Junk, High confidence spam → Quarantine. What happens to this message?
Which email authentication standard cryptographically signs outgoing messages so receiving servers can verify message integrity and sender identity?
An organisation wants the most aggressive email protection settings for their executive team without manually tuning individual policies. What is the recommended approach?
Zero-hour Auto Purge (ZAP) detects a message previously delivered to a user’s Inbox that has now been reclassified as phishing. What does ZAP do with the message by default?
Which anti-phishing feature in the EOP base layer (available to all M365 tenants without Defender for Office 365) detects when an external sender’s domain in the From header doesn’t match the actual sending infrastructure?