TL;DR
- A 42-person specialty insurance brokerage in the Northeast started on Microsoft 365 Business Standard with MFA on 80% of users, legacy auth allowed, no Conditional Access, and a 90-day audit log. Their cyber insurance renewal questionnaire flagged 9 control gaps.
- The fix was a license uplift to Business Premium ($220 a month for 42 seats) plus a 30-day deployment of identity, email, endpoint, and data controls, then 60 more days of maintenance scaffolding (IR plan, tabletop, drift checklist).
- Total project cost: roughly $11,000, including the license uplift for the year and about 60 hours of work across an internal IT generalist and a part-time MSP.
- Outcome at the 90-day renewal: passed all 14 affirmative-answer questions, premium decreased 4% year over year, and the cyber sub-limit went from $250K to $1M on the same base policy.
- Five things broke during the rollout that nobody warned them about, and the lessons that came out of those are the most useful part of the project for anyone running this in-house.
An illustrative composite. This walkthrough combines the settings, timelines, and decisions common to small-business M365 hardening projects into one representative brokerage so the sequence is easy to follow. It is not a single named client, and the numbers are examples of how a project like this typically adds up, not figures billed to one company.
The starting point: a tenant the owner thought was fine
The brokerage runs specialty lines for marine and energy clients out of two offices, with a third of the staff fully remote. Forty-two seats on Microsoft 365 Business Standard. Email worked, SharePoint worked, Teams worked, and as far as the owner was concerned the security situation was fine. "We've never had a problem so we're probably fine" was the operating mindset.
Then the cyber insurance renewal questionnaire arrived. Twenty-three pages. Their broker walked them through it and counted nine controls that would not pass: MFA was enforced on 80% of users (three "VIPs" had been excluded at the owner's request), legacy authentication was still on, no Conditional Access policies existed, external SharePoint sharing defaulted to "anyone with the link," DMARC was at p=none, the audit log retained 90 days, there was no documented incident response plan, no tabletop exercise had ever happened, and they had never run a phishing simulation.
The carrier's underwriter sent a follow-up note. Renew at the current limits with the gaps documented, take a 12% premium increase, drop the cyber sub-limit from $250K to $50K, and accept a $25K retention. Or close the gaps inside 90 days and resubmit for a real quote. The owner did the math and called the IT generalist on staff, who then called a part-time MSP they had used for printer issues.
That phone call was day zero of the project. What follows is the actual sequence they ran, what it cost, what surprised them, and where they ended up. The reference baseline they worked against is in the 30-day guide to securing Microsoft 365 for small business; they followed roughly that order with a few sequencing changes for their environment.
Day 1 to 7: the license uplift and the identity baseline
The first decision was the license tier. Business Standard does not include Defender for Office 365 P1, Microsoft Intune, or Entra ID Premium P1. Without those three, most of the controls on the carrier questionnaire are unreachable. The MSP showed the owner the price difference: roughly $5.20 per user per month from Standard to Premium at list, which on 42 seats works out to about $220 a month, or $2,640 for the renewal year.
Day 2 was the upgrade. Microsoft applied the new entitlements within four hours. The IT generalist then pulled the user list, the role assignments, and the MFA registration state. Three accounts had MFA disabled. Two of those were the founder and a senior producer who had pushed back during the original rollout. The third was the bookkeeper, who was approaching retirement and had told someone three years ago that "all this two-step stuff" was a hassle.
Day 3 was a difficult conversation with the owner. The carrier's questionnaire said MFA on 100% of users with no exclusions, full stop. The owner agreed, and the MSP enforced MFA tenant-wide that afternoon. The bookkeeper enrolled within an hour. The senior producer enrolled the next morning after a 15-minute walkthrough. The founder also enrolled, and one other employee, who had been quietly excluded years earlier and never re-checked, quit the following week over an unrelated dispute that the MFA conversation seems to have surfaced. That part of the story is its own lesson.
Day 4 to 5 was Conditional Access. The MSP staged four policies in Report-only first: require MFA for all users, block legacy authentication, require compliant device for admins, and block sign-ins from countries the brokerage does not operate in. The legacy-auth detection query (the same one in the step-by-step guide to blocking legacy authentication in Microsoft 365) came back with three hits: a marine-survey scanner sending shipping receipts via SMTP, a producer's old iPhone running iOS 11, and a third-party CRM that authenticated to Exchange Web Services via basic auth.
Day 6 was named-admin separation. The owner had been doing all admin work from their primary mailbox-bound account, which was also the most-phished mailbox in the tenant. The MSP created two new accounts: [email protected] with Global Administrator and no mailbox license, and a deputy admin for the IT generalist. They also created two break-glass accounts with 64-character passwords stored in two physical locations, excluded from every access-blocking policy.
Day 7 was verification. After seven days of Report-only data, the four Conditional Access policies flipped to On. The legacy-auth scanner, the iPhone, and the CRM had all been remediated by then. Sign-in logs went clean inside 48 hours.
Day 8 to 14: the email security layer
The brokerage runs on email. Quotes, bind requests, claim notifications, and wire instructions all move through Outlook. The carrier specifically asked about Defender for Office 365, impersonation protection, and DMARC, so this week got the most attention from the owner.
Day 8 to 9 the MSP applied the Defender Strict preset to all users. Safe Links scans every URL at click time. Safe Attachments detonates attachments in a sandbox before delivery. Zero-hour auto-purge yanks messages out of inboxes if they turn out to be malicious after the fact. They then configured anti-phishing impersonation protection with five named users (the founder, the CFO, the controller, the head of producer relations, and the operations manager) and the brokerage's primary domain as a protected domain.
Day 10 was DNS. SPF was already correct because the prior IT vendor had set it up cleanly. DKIM was a one-click enable per accepted domain in the Defender portal. DMARC moved from p=none to p=quarantine after seven days of clean aggregate reports. The reports surfaced one legitimate sender they had forgotten, a marketing platform sending newsletters, and that got added to the SPF record before the policy tightened.
Day 11 was the auto-forwarding block. External auto-forwarding got disabled at the tenant level. One producer had a forwarding rule sending every email containing "policy renewal" to a personal Gmail so they could check it on weekends. That had been in place for two years. The producer was not pleased, and the resolution was a documented exception via a shared mailbox the producer could open from the Outlook mobile app instead. Convenience preserved, attack surface closed.
Day 12 was OAuth consent. The MSP locked down user consent in Entra ID admin settings and required admin approval for new third-party app registrations. They also reviewed the existing consented apps and revoked four nobody could explain.
Day 13 to 14 was alerting. They enabled the four highest-signal alert policies: forwarding rule created, OAuth consent granted, mailbox permission added, and role added to admin. Alerts route to a shared mailbox the IT generalist actually monitors, not a forgotten distribution list. The full settings list they used as a reference is the Microsoft 365 email security checklist; they ticked off every item before moving on.
Comparing the in-house hour count above against an outsourced rollout? The trade-off is broken down in managed M365 security vs DIY.
Day 15 to 21: endpoint compliance and Intune
Identity tells the tenant who is signing in. Endpoint tells it what they are signing in from. The brokerage had 38 company-issued Windows laptops, 4 MacBooks for the design team, and a mixed bag of personal phones being used to read email. Without endpoint compliance, an attacker with a stolen password and any random laptop had the same access as a legitimate employee on a patched, encrypted, EDR-protected device.
Day 15 to 16 the MSP enrolled all 38 Windows laptops in Intune. Most were already Entra-joined, so enrollment was a Group Policy push. The four MacBooks went through Company Portal manually because the design team needed a few app exceptions. Total enrollment time: about six hours of MSP work plus 15 minutes per user.
Day 17 was the compliance policy. They built one Windows policy and one macOS policy with the standard set: BitLocker (or FileVault) required, OS at the supported version or newer, EDR present, password complexity enforced, screen-lock timer at five minutes. One older laptop running Windows 10 21H2 fell out of compliance immediately and got upgraded the next day.
Day 18 was the Conditional Access tie-in. They added "Require device to be marked as compliant" to every policy that grants access to Exchange, SharePoint, and Teams. From this point forward, a non-compliant device cannot reach corporate data even with valid credentials and an MFA prompt completed.
Day 19 to 20 was mobile. Five employees use personal phones for work email. The brokerage made a deliberate decision: full device enrollment is overreach for personal property, but app-protection policies are not. They applied Intune app-protection to Outlook, Teams, OneDrive, and the Microsoft 365 mobile apps. The policies require a PIN to open Outlook on a phone, block copy-paste from corporate to personal apps, and allow a remote wipe of corporate data without touching personal photos. Two of the five employees had to install Outlook Mobile because the native iOS Mail app cannot enforce app-protection. That was a 10-minute walkthrough each.
Day 21 was verification. The IT generalist tried to sign in to a non-compliant test laptop on purpose. Conditional Access blocked the sign-in with a clear "Your device is not compliant" message. The endpoint layer was live.
Day 22 to 30: data protection and monitoring
The last week of the deployment closed the data-protection and monitoring gaps. The brokerage handles a steady flow of premium audits, signed binders, and W-9s, all of which contain content the carrier specifically wanted protected.
Day 22 was SharePoint and OneDrive. External sharing dropped from "Anyone with the link" to "New and existing guests." Default link type changed to "Specific people," default permission to "View." Anonymous-link expiration set to 14 days. The change generated three help-desk tickets on day one (all producers who had legacy "anyone" links shared with carriers) and zero by day three once the new pattern was understood.
Day 23 was sensitivity labels. Three labels: Public, Internal, Confidential. The Confidential label encrypts the file, restricts it to the brokerage's domain only, and adds a watermark. Auto-classification was tuned to flag content with the words "binder" or "premium audit" plus client identifiers. Most employees still rarely apply labels manually. The auto-classify catches the documents that matter.
Day 24 was DLP. Two policies: U.S. Financial Data (block external sharing of credit card and routing numbers) and U.S. PII (Social Security and driver license numbers). Each ran in "Test with notifications" for a week before flipping to Block. The test surface flagged two false positives (a producer's notes file with a bank routing number that turned out to be from a 2019 quote that was never deleted), which got cleaned up.
Day 25 was the audit retention extension. The unified audit log went from 90 days to 365 days using a Purview retention policy. The carrier's questionnaire asked specifically about 12-month retention, and Business Premium covers it without an add-on.
Day 26 was the third-party backup. They signed up for a Microsoft 365 backup vendor at $4 per user per month, pointed it at the tenant, and ran the first full backup. Day 27 was the restore test on a single OneDrive file and a single SharePoint document library, with timestamps and content confirmed.
Day 28 to 29 was a phishing simulation baseline. They sent a realistic invoice-fraud lure to all 42 users. The 28% click rate on day one was higher than the owner expected and lower than the MSP expected. Two follow-up training modules went out that week, with shorter follow-up simulations every two weeks for the next 60 days. The click rate at day 60 was 7%.
Day 30 was the baseline lock. The MSP ran the full audit again, fixed two minor drift items, and snapshotted the tenant configuration. Every control on the carrier questionnaire was in place. The deployment phase was done.
Day 30 to 60: the maintenance scaffolding
The deployment was done. The work was not. A controls baseline that does not get checked drifts within months. The next 30 days built the scaffolding that keeps the baseline in place after the MSP's project hours run out.
The first piece was a quarterly drift-check checklist. One page, 14 items, each with the PowerShell or admin-portal location to verify the setting. The IT generalist owns it. It takes about 90 minutes a quarter.
The second piece was the incident response plan. Twelve pages, customized from a template the MSP provided. Named roles (incident commander, communications lead, technical lead), an escalation tree with phone numbers, contact details for the cyber carrier and the breach coach, and the first-hour checklist (revoke sessions, force password reset, isolate the affected mailbox or device, snapshot the audit log). Stored in three places: a printed binder in the office safe, a shared OneDrive folder, and a personal copy on the IT generalist's phone.
The third piece was a 90-minute tabletop exercise. The MSP ran a scenario where the controller's mailbox was compromised at 3pm on a Friday and a fake wire instruction had been sent to a client. The exercise revealed three things that were not on anyone's radar. Nobody had a key to the office after hours, which mattered because the printed IR binder was inside. The cyber carrier's claims line goes to voicemail outside business hours and the breach coach's number was not in anyone's phone. And nobody could remember the password to the break-glass account vault, because the password to the vault was stored only in the vault.
All three got fixed inside a week. None would have been found by any technical control. The tabletop is the cheapest part of the project and the part that catches what the technical controls cannot. The full FAQ on what tabletop exercises do and do not cover is in the M365 security FAQ.
The five surprises that nobody warned them about
Every guide makes the rollout sound clean. Every real rollout has surprises. Five of them turned out to be the most-discussed part of the project.
1. The executive who refused MFA. The senior producer had been carved out of MFA for years. The day enforcement went on, they sent an email asking who authorized "this nonsense" and copied the owner. The owner's response was three sentences and ended the conversation. The lesson: do not plan around the VIP exec. Get the owner aligned on the policy first, then enforce uniformly. Anything else creates a security exception that an attacker will eventually find.
2. The warehouse barcode scanner. The brokerage stores binders and policy documents in a small back-office archive room with a marine-grade barcode scanner that emails the receipt log nightly via SMTP AUTH. Blocking legacy auth killed it on day one of CA enforcement. The fix took 45 minutes: switch the scanner to SMTP relay over a dedicated connector authenticated by the scanner's static IP, with a service mailbox locked down to that one source.
3. The third-party CRM OAuth re-consent. The producer-management CRM had been authenticated against the tenant for years using a stale OAuth grant. The OAuth consent lockdown on day 12 invalidated the grant and broke the integration. The vendor had a current OAuth update available. Reauthorization took 20 minutes. If the vendor had been less responsive, this would have been a multi-day outage.
4. The marketing manager's external-sharing exception. The marketing manager runs a co-branded campaign portal with three carriers via SharePoint links. The new "specific people" default broke that workflow. Rather than relax the default tenant-wide, the MSP created a documented exception for that one site collection with named guest accounts and a 90-day review. Documented exceptions are how you preserve a real business need without dropping the perimeter.
5. The IR plan tabletop revealed the office-key gap. Nobody had a key to the office after hours. The printed IR binder was inside the office. If the breach happened at 9pm on a Sunday, the technical IR plan assumed access to a document that was physically inaccessible. This kind of gap shows up only when you simulate the scenario, never when you write the policy.
The outcome at 90 days: what the carrier said
The brokerage submitted the resubmission packet on day 88. The carrier's underwriter confirmed receipt and turned around a quote in 11 days.
The renewal numbers: passed all 14 affirmative-answer questions on the questionnaire. Premium decreased 4% year over year on the same coverage. Cyber sub-limit increased from $250K to $1M. Retention held at $10K. The underwriter's note specifically called out the audit log retention extension, the Defender Strict preset, the sensitivity labels with encryption, and the documented IR plan with the tabletop exercise.
The financial summary on the project: license uplift of $2,640 for the renewal year, third-party backup at $2,016 a year, MSP project hours at roughly $5,400 (about 30 hours at $180), internal IT generalist at roughly 30 hours of pre-existing salaried time, and another $900 for the phishing-simulation platform's first year. Total cash out: about $10,956.
The IT generalist's view at the end was useful. Asked whether they could have done this solo, the answer was no on the Intune compliance rollout specifically. The other workstreams were all reachable with documentation and patience. The endpoint piece was where the MSP's prior experience saved a multiple-week troubleshooting effort.
The same pattern shows up in the parallel cyber insurance implementation case study, which walks through a similar arc from the carrier's questionnaire side. And the inverse path, where a similar-sized firm did not get the baseline in place and ended up running an incident response instead, is in the M365 breach recovery case study.
The five lessons that generalize beyond this case
A single case study is not a baseline. Five things from this project show up consistently across small-business M365 hardening engagements, and they are the parts most worth carrying forward.
- Start with the license tier. Business Standard caps what is reachable. Defender for Office 365 P1, Intune, and Entra ID Premium P1 are not optional for a real baseline. The uplift to Business Premium is roughly $5 per user per month and unlocks every other workstream. Decide this before you write a single Conditional Access policy.
- Identity layer first, always. Conditional Access cannot evaluate a sign-in if MFA never fired. Endpoint compliance is meaningless without identity context. Email security depends on knowing who is signing in. Identity is the foundation, and every workstream that comes after assumes it works.
- Do not plan around the VIP exec. Owner authority overrules executive convenience on policy decisions, or the policy has a hole the owner cannot patch later. The producer who quit over MFA was statistically going to leave anyway. The exception that would have outlasted them was the actual risk.
- Budget time for third-party SaaS surprises. Every small business has integrations they have forgotten about: a scanner, a CRM, a marketing tool, a legacy reporting service. Each one will surface during the rollout, usually at the worst time. Inventory them up front, expect at least two surprises per ten integrations, and budget half a day each.
- Run the tabletop earlier than feels comfortable. Tabletop exercises reveal process gaps that no technical control catches. Office keys, after-hours phone numbers, paper backups stored in inaccessible locations. The technical work assumes the process works; the tabletop tests whether it actually does.
For a fuller deployment-vs-outsource comparison and the hour-by-hour cost view, the managed M365 security vs DIY breakdown covers both paths. For the underlying CIS-aligned control set this brokerage's baseline lines up to, the reference is implementing the CIS M365 Benchmark for a small business, and the CIS M365 Benchmark checklist is the verification companion for confirming each control is actually in place. The brokerage's one-page drift checklist comes straight out of the quarterly M365 drift check, which is what keeps the baseline from slipping every 90 days after the MSP's project hours run out.
Common questions
Is the 42-person brokerage representative of a typical small-business engagement?
Reasonably. The 25-to-60-seat range with a single internal IT generalist plus part-time MSP support is the most common shape for businesses that complete a hardening project on this timeline. Smaller (under 15 seats) usually skips Intune entirely and relies on app-protection policies for the mobile and data-protection layers. Larger (over 75 seats) usually has more political overhead at the executive-MFA stage and tends to extend the timeline by another two to four weeks.
Could the brokerage have done this without any MSP help?
The IT generalist's honest answer was no, specifically because of the Intune compliance rollout. A solo IT generalist learning Intune for the first time on a 42-seat fleet would have spent multiple weeks on troubleshooting that the MSP's prior experience compressed into about six hours. The other workstreams were all reachable with documentation and the deployment guide. If the brokerage had not had the carrier deadline, a solo path would have run four to six months instead of 90 days.
Why move DMARC only to p=quarantine instead of p=reject?
The carrier accepted p=quarantine as a passing answer, and the brokerage wanted a six-month observation window before tightening to p=reject. Specialty insurance has unusual sender patterns (carrier portals, MGA platforms, agency management systems) that can take time to surface. Most engagements move from quarantine to reject after one or two reporting cycles confirm there are no legitimate senders being marginalized.
What does ongoing maintenance actually cost after the project?
Roughly four hours a quarter for the drift check, one hour a month for new-admin and new-exception review, and one half-day a year for the baseline refresh as Microsoft retires features and adds new ones. The brokerage budgets the IT generalist's time for the recurring work and keeps the MSP on retainer for two hours a month to backstop tickets and run the annual refresh. Total ongoing cost is approximately $4,000 a year on top of the license fees.
Did the 4% premium decrease pay back the project?
Not in year one. The premium decrease was about $1,800 against the $11,000 spend. The real payback shows up over the policy lifetime: avoiding the proposed 12% increase saved roughly $5,000 in year one alone, and the larger sub-limit (from $250K to $1M) is the more valuable change because the prior $250K cap would not have covered a real incident. The honest framing is that the project paid for itself through avoided incident cost and avoided premium escalation, not through direct premium savings.
Where Does Your Tenant Land?
Run a free risk assessment. See exactly which controls match the baseline above and which ones still need attention before your next renewal.
Check My Risk