{"id":506,"date":"2025-12-18T19:48:33","date_gmt":"2025-12-18T19:48:33","guid":{"rendered":"https:\/\/blog.asambe.ai\/index.php\/2025\/12\/18\/case-study-cutting-phishing-with-spf-dkim-dmarc\/"},"modified":"2025-12-18T19:48:37","modified_gmt":"2025-12-18T19:48:37","slug":"case-study-cutting-phishing-with-spf-dkim-dmarc","status":"publish","type":"post","link":"https:\/\/blog.asambe.ai\/index.php\/2025\/12\/18\/case-study-cutting-phishing-with-spf-dkim-dmarc\/","title":{"rendered":"Case Study Cutting Phishing with SPF DKIM DMARC"},"content":{"rendered":"<p>When a well-known professional services firm noticed a sudden spike in lookalike emails and invoice fraud attempts, they faced a familiar dilemma: how do you protect busy employees and clients from convincing email impersonation without slowing the business to a crawl? This case study walks through how the team systematically implemented SPF, DKIM, and DMARC to cut phishing by 82% in six months\u2014while improving deliverability and preserving a seamless experience for legitimate senders.<\/p>\n<h2>Table of Contents<\/h2>\n<ul>\n<li><a href=\"#background\">Background: The Rising Cost of Phishing<\/a><\/li>\n<li><a href=\"#phishing-baseline\">Baseline and Objectives<\/a><\/li>\n<li><a href=\"#spfdkimdmarc-101\">SPF, DKIM, and DMARC in Plain English<\/a><\/li>\n<li><a href=\"#project-plan\">Project Plan, Roles, and Timeline<\/a><\/li>\n<li><a href=\"#implementation\">Step-by-Step Implementation<\/a><\/li>\n<li><a href=\"#technical-hurdles\">Technical Hurdles and Fixes<\/a><\/li>\n<li><a href=\"#results\">Results: Phishing Reduction and Deliverability<\/a><\/li>\n<li><a href=\"#training-change-management\">Change Management and Training<\/a><\/li>\n<li><a href=\"#lessons\">Lessons Learned and Best Practices<\/a><\/li>\n<li><a href=\"#get-started\">How to Get Started<\/a><\/li>\n<li><a href=\"#conclusion\">Conclusion<\/a><\/li>\n<li><a href=\"#faq\">Frequently Asked Questions<\/a><\/li>\n<\/ul>\n<h2 id=\"background\">Background: The Rising Cost of Phishing<\/h2>\n<p>The organization in this case is a mid-sized professional services firm with about 2,000 employees and multiple client-facing brands. Over one quarter, the security team recorded a 3x increase in spoofed messages claiming to be from executives, HR, and billing.<\/p>\n<p>Their existing email security gateway blocked many malicious messages, but attackers were increasingly abusing lookalike domains and forwarding paths, slipping past filters. The team needed a domain-level control that told receiving mail systems which messages were legitimately from them\u2014and which were not.<\/p>\n<p>Enter SPF, DKIM, and DMARC: a trio of open standards that authenticate sending sources, verify message integrity, and give domain owners a policy-based say in what happens to impostors.<\/p>\n<h2 id=\"phishing-baseline\">Baseline and Objectives<\/h2>\n<p>Before making any changes, the team defined success and captured a baseline. They looked at:<\/p>\n<ul>\n<li>Reported phishing emails per week (from employees and clients).<\/li>\n<li>Security operations center (SOC) detections of spoofed domains.<\/li>\n<li>Deliverability KPIs for campaigns (marketing, payroll notices, client updates).<\/li>\n<li>Third-party senders in use (CRM, marketing platform, ticketing, payroll, newsletter tools).<\/li>\n<\/ul>\n<p>They set three practical objectives for a six-month program:<\/p>\n<ul>\n<li>Reduce impersonation of the primary domain by at least 70%.<\/li>\n<li>Achieve a DMARC policy of <em>quarantine<\/em> by month four and <em>reject<\/em> for the primary domain by month six.<\/li>\n<li>Maintain or improve deliverability for legitimate business mail.<\/li>\n<\/ul>\n<h2 id=\"spfdkimdmarc-101\">SPF, DKIM, and DMARC in Plain English<\/h2>\n<p>SPF (Sender Policy Framework) tells receiving mail servers which IPs and services are allowed to send mail for your domain. Think of it as an approved sender list published in DNS.<\/p>\n<p>DKIM (DomainKeys Identified Mail) adds a cryptographic signature to each message. Receiving servers use a public key in your DNS to verify that the message wasn\u0019t altered and truly came from an authorized sender.<\/p>\n<p>DMARC (Domain-based Message Authentication, Reporting &#038; Conformance) ties it all together. It requires messages to pass SPF or DKIM <em>and<\/em> align with the visible From domain. Then it lets domain owners specify a policy: do nothing (none), send to spam (quarantine), or reject. DMARC also provides reporting so you can see who\u0019s sending on your behalf and how many messages pass or fail.<\/p>\n<p>In short: SPF = who can send, DKIM = message integrity, DMARC = enforce and report. These standards don\u0019t replace secure email gateways or awareness training, but they powerfully reduce domain spoofing.<\/p>\n<h2 id=\"project-plan\">Project Plan, Roles, and Timeline<\/h2>\n<p>The firm set up a small cross-functional working group:<\/p>\n<ul>\n<li><strong>Security engineering<\/strong> (lead): design, DNS changes, monitoring, policy.<\/li>\n<li><strong>Messaging\/IT<\/strong>: MTA configuration, DKIM signing, vendor coordination.<\/li>\n<li><strong>Marketing &#038; Communications<\/strong>: third-party sender inventory, testing.<\/li>\n<li><strong>Procurement\/Vendor management<\/strong>: contracts and technical contacts.<\/li>\n<\/ul>\n<p>They planned three phases across six months:<\/p>\n<ol>\n<li><strong>Discovery &#038; monitoring<\/strong> (weeks 1\u0013): inventory senders, publish DMARC at p=none, start collecting reports.<\/li>\n<li><strong>Authentication rollout<\/strong> (weeks 4\u00112): implement SPF and DKIM for each sender; fix alignment gaps.<\/li>\n<li><strong>Enforcement ramp-up<\/strong> (weeks 13\u00126): move DMARC to quarantine, then reject, with gradual percentage increases.<\/li>\n<\/ol>\n<h2 id=\"implementation\">Step-by-Step Implementation<\/h2>\n<h3>1) Inventory every legitimate sender<\/h3>\n<p>With DMARC reporting (RUA aggregate reports) enabled on day one, the team quickly identified all sources claiming to send from the domain, including forgotten tools used by departments. They also asked stakeholders to list any system that sends email externally.<\/p>\n<ul>\n<li>Corporate M365 and on-prem relay<\/li>\n<li>Marketing automation platform<\/li>\n<li>CRM and support desk<\/li>\n<li>HR\/payroll notifications<\/li>\n<li>Scanner\/MFPs and facilities systems<\/li>\n<\/ul>\n<h3>2) Configure SPF correctly<\/h3>\n<p>The team published a single SPF record at the root domain, carefully including each authorized service. They avoided common pitfalls:<\/p>\n<ul>\n<li>Only one SPF TXT record (multiple records break SPF).<\/li>\n<li>Use of <code>include:<\/code> for vendor-maintained records rather than raw IPs.<\/li>\n<li>Kept total DNS lookups at or below 10.<\/li>\n<li>Ended with <code>-all<\/code> to explicitly fail non-authorized sources.<\/li>\n<\/ul>\n<p>For subdomains used by specific tools (e.g., <em>mail.brand.example.com<\/em>), they created dedicated SPF records where appropriate and sometimes delegated sending to vendor-owned domains to simplify alignment.<\/p>\n<h3>3) Enable DKIM signing<\/h3>\n<p>Next, they enabled DKIM on the corporate mail system and each third-party platform. Key practices included:<\/p>\n<ul>\n<li>Using 2048-bit keys where supported.<\/li>\n<li>Unique selectors per sender (e.g., <em>s1-m365<\/em>, <em>s1-mktg<\/em>).<\/li>\n<li>Rotating keys on a semi-annual schedule.<\/li>\n<li>Ensuring the <em>d=<\/em> domain in DKIM signatures aligned with the visible From domain (or subdomain) for DMARC.<\/li>\n<\/ul>\n<h3>4) Turn on DMARC with monitoring<\/h3>\n<p>They published DMARC at <code>p=none<\/code> with RUA reporting to a vendor mailbox for analysis. This produced daily summaries of pass\/fail rates by source, letting the team fix issues before blocking anything.<\/p>\n<ul>\n<li>Address: <code>v=DMARC1; p=none; rua=mailto:dmarc-reports@vendor.example;<\/code><\/li>\n<li>Alignment: started with <code>relaxed<\/code> alignment (<code>adkim=r; aspf=r<\/code>), tightening later where feasible.<\/li>\n<\/ul>\n<h3>5) Fix alignment gaps<\/h3>\n<p>DMARC requires SPF or DKIM pass <em>and<\/em> alignment with the From domain. The biggest fixes involved:<\/p>\n<ul>\n<li>Updating vendors to sign DKIM with the company\u0019s domain, not the vendor default.<\/li>\n<li>Changing some From addresses to subdomains dedicated to the tool (e.g., <em>billing.example.com<\/em>).<\/li>\n<li>Shifting a few systems to rely on DKIM instead of SPF when messages were frequently forwarded (where SPF breaks).<\/li>\n<\/ul>\n<h3>6) Enforce gradually<\/h3>\n<p>With authentication stable, they moved to <code>p=quarantine<\/code> at 25%, then 50%, then 100% over four weeks. After two more weeks of monitoring, they switched to <code>p=reject<\/code> with <code>pct=50<\/code>, then 100%.<\/p>\n<ul>\n<li>Mailbox-level sampling reduced risk while catching outliers.<\/li>\n<li>They kept a few niche subdomains at <code>p=none<\/code> temporarily while vendors completed DKIM setup.<\/li>\n<\/ul>\n<h3>7) Optional enhancements<\/h3>\n<ul>\n<li>Set up RUF forensic reports to a controlled mailbox for deeper investigations (with privacy review).<\/li>\n<li>Explored BIMI for primary brand to display a verified logo once DMARC reached enforcement.<\/li>\n<li>Considered ARC support on inbound to improve handling of forwarded messages.<\/li>\n<\/ul>\n<h2 id=\"technical-hurdles\">Technical Hurdles and Fixes<\/h2>\n<p>Several issues surfaced during rollout, each with a practical resolution:<\/p>\n<ul>\n<li><strong>Multiple SPF records:<\/strong> Legacy entries created duplicates. They consolidated into one record and used <code>include:<\/code> statements.<\/li>\n<li><strong>SPF lookup limits:<\/strong> Too many <code>include:<\/code> chains risked exceeding 10 DNS lookups. They pruned unused vendors and used vendor \u001cmacro\u001d includes where offered.<\/li>\n<li><strong>DKIM selector collisions:<\/strong> A vendor reused a generic selector already in use elsewhere. They requested a custom selector and published a new DNS record.<\/li>\n<li><strong>Forwarding breaks SPF:<\/strong> Employee forwarding to personal mailboxes caused SPF fails. Relying on DKIM for alignment solved most cases.<\/li>\n<li><strong>Shared mailboxes and aliases:<\/strong> Some systems sent using the root domain From address while authenticating under a subdomain. They standardized From domains and tightened alignment.<\/li>\n<li><strong>DNS propagation latency:<\/strong> They scheduled changes during low-traffic windows and validated with external tools after TTLs expired.<\/li>\n<\/ul>\n<p>Throughout, they used DMARC aggregate reports and sandbox mailboxes to validate changes before moving to stricter policies. Public resources like <a href=\"https:\/\/dmarc.org\" target=\"_blank\">dmarc.org<\/a> helped confirm recommended practices.<\/p>\n<h2 id=\"results\">Results: Phishing Reduction and Deliverability<\/h2>\n<p>Within six months:<\/p>\n<ul>\n<li><strong>82% reduction<\/strong> in spoofed messages reaching user inboxes for the primary domain.<\/li>\n<li><strong>71% drop<\/strong> in business email compromise (BEC) attempts impersonating executives.<\/li>\n<li><strong>Fewer helpdesk tickets<\/strong> related to suspicious internal-looking emails.<\/li>\n<li><strong>Stable or improved deliverability<\/strong> for legitimate mail, with marketing open rates up 3% (less provider throttling and fewer soft bounces).<\/li>\n<\/ul>\n<p>Equally important, they now had visibility. DMARC reports revealed unauthorized bulk senders and legacy apps still attempting to mail as the company. Those were either authenticated properly or shut down.<\/p>\n<p>Metrics were collected from SOC logs, DMARC report analysis, email gateway stats, and user-reported phishing trends, giving leadership a clear before-and-after view.<\/p>\n<h2 id=\"training-change-management\">Change Management and Training<\/h2>\n<p>Technology alone wasn\u0019t the full answer. The team paired the rollout with light-touch training:<\/p>\n<ul>\n<li>Short guides explaining what changed and why email might land in spam during the transition.<\/li>\n<li>Encouraging reporting of suspicious emails via a one-click add-in.<\/li>\n<li>Notifying key client contacts about improved anti-spoofing protections.<\/li>\n<\/ul>\n<p>This communication prevented confusion and reduced resistance when certain messages were quarantined during the enforcement ramp-up.<\/p>\n<h2 id=\"lessons\">Lessons Learned and Best Practices<\/h2>\n<ul>\n<li><strong>Start with visibility:<\/strong> Publish DMARC at <code>p=none<\/code>, collect reports, and map your real sender ecosystem before enforcing.<\/li>\n<li><strong>Inventory ruthlessly:<\/strong> Shadow IT and department tools often send mail. Find them early to avoid broken flows.<\/li>\n<li><strong>Prefer DKIM for alignment<\/strong> when forwarding is common. SPF is valuable, but forwarding can break it.<\/li>\n<li><strong>Use subdomains deliberately:<\/strong> Assign tools to subdomains to keep alignment clean and reduce risk to the root domain.<\/li>\n<li><strong>Enforce gradually:<\/strong> Increase <code>pct<\/code> in steps and monitor. Keep a rollback plan.<\/li>\n<li><strong>Watch SPF limits:<\/strong> Minimize <code>include:<\/code> chains and remove unused vendors.<\/li>\n<li><strong>Rotate DKIM keys:<\/strong> Establish a calendar and use unique selectors per platform.<\/li>\n<li><strong>Document everything:<\/strong> Track selectors, DNS records, owners, and vendor contacts. It pays dividends during audits and incidents.<\/li>\n<li><strong>Combine with user awareness:<\/strong> DMARC reduces domain spoofing but doesn\u0019t stop all phishing, especially via lookalike domains.<\/li>\n<\/ul>\n<h2 id=\"get-started\">How to Get Started<\/h2>\n<p>If you\u0019re starting from scratch, a pragmatic path looks like this:<\/p>\n<ol>\n<li>Publish DMARC at <code>p=none<\/code> with RUA reports to a monitored mailbox or reporting service.<\/li>\n<li>Inventory all senders and enable DKIM for each. Fix alignment by adjusting From domains or vendor settings.<\/li>\n<li>Consolidate to a single, well-structured SPF record; keep lookups under 10.<\/li>\n<li>Move to <code>p=quarantine<\/code> with <code>pct=25<\/code>, then 50, then 100% as reports stabilize.<\/li>\n<li>Advance to <code>p=reject<\/code> with <code>pct<\/code> ramp-up. Maintain exceptions only where necessary.<\/li>\n<li>Maintain: review reports weekly, rotate keys, and update records when tools change.<\/li>\n<\/ol>\n<h2 id=\"conclusion\">Conclusion<\/h2>\n<p>By treating SPF, DKIM, and DMARC as a business project\u2014not just a DNS tweak\u2014this organization dramatically reduced impersonation risk without disrupting legitimate email. The combination of accurate sender inventory, careful configuration, gradual enforcement, and clear communication delivered measurable results and lasting operational clarity.<\/p>\n<p>If you\u0019re ready to reduce phishing and protect your brand, start with DMARC monitoring, fix alignment systematically, and ramp to enforcement with confidence.<\/p>\n<h2 id=\"faq\">Frequently Asked Questions<\/h2>\n<p><strong>Does DMARC stop all phishing?<\/strong><\/p>\n<p>No. DMARC blocks direct spoofing of your domain when enforced, but attackers can still use lookalike domains or compromised accounts. Pair DMARC with user training, MFA, and inbound filtering.<\/p>\n<p><strong>How long does a typical rollout take?<\/strong><\/p>\n<p>For a mid-sized organization, plan 8\u00131 weeks for discovery and authentication, then 6\u001312 weeks to ramp enforcement. Complex vendor landscapes or many brands can extend timelines.<\/p>\n<p><strong>Will enforcement hurt deliverability?<\/strong><\/p>\n<p>Done correctly, most organizations see equal or better deliverability. The key is to authenticate every legitimate sender and use a gradual <code>pct<\/code> ramp with continuous monitoring.<\/p>\n<p><strong>What if our marketing platform can\u0019t sign DKIM with our domain?<\/strong><\/p>\n<p>Use a dedicated subdomain they can authenticate (e.g., <em>news.example.com<\/em>) or have them send from a vendor domain that clearly identifies your brand, then update links and branding accordingly.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>See how one organization cut phishing by 82% in 6 months using SPF, DKIM and DMARC. Learn the steps, pitfalls, metrics, and best practices to replicate it.<\/p>\n","protected":false},"author":1,"featured_media":505,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_hide_featured_image":false,"_jetpack_featured_image_duplicate_dismissed":0,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[8],"tags":[],"class_list":["post-506","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog-posts"],"jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/i0.wp.com\/blog.asambe.ai\/wp-content\/uploads\/2025\/12\/2025-12-18-19-48-21-data.png?fit=1024%2C1024&ssl=1","_links":{"self":[{"href":"https:\/\/blog.asambe.ai\/index.php\/wp-json\/wp\/v2\/posts\/506","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.asambe.ai\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.asambe.ai\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.asambe.ai\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.asambe.ai\/index.php\/wp-json\/wp\/v2\/comments?post=506"}],"version-history":[{"count":1,"href":"https:\/\/blog.asambe.ai\/index.php\/wp-json\/wp\/v2\/posts\/506\/revisions"}],"predecessor-version":[{"id":507,"href":"https:\/\/blog.asambe.ai\/index.php\/wp-json\/wp\/v2\/posts\/506\/revisions\/507"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.asambe.ai\/index.php\/wp-json\/wp\/v2\/media\/505"}],"wp:attachment":[{"href":"https:\/\/blog.asambe.ai\/index.php\/wp-json\/wp\/v2\/media?parent=506"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.asambe.ai\/index.php\/wp-json\/wp\/v2\/categories?post=506"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.asambe.ai\/index.php\/wp-json\/wp\/v2\/tags?post=506"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}