{
  "id": "CB-M365-DATA-004",
  "standard": "m365",
  "version": "main",
  "url": "https://baselines.cirsec.org/b/m365/CB-M365-DATA-004",
  "json": "https://baselines.cirsec.org/b/m365/CB-M365-DATA-004.json",
  "yaml": "https://baselines.cirsec.org/b/m365/CB-M365-DATA-004.yml",
  "profiles_effective": [
    "baseline",
    "hardened"
  ],
  "license": "Text CC BY 4.0, code Apache-2.0",
  "attribution": "CIRSEC Baselines, https://baselines.cirsec.org",
  "control": {
    "id": "CB-M365-DATA-004",
    "title": "Enforce a DLP policy for Microsoft 365 Copilot",
    "finding": {
      "title": "Microsoft 365 Copilot can process and summarize the most sensitive content without restriction",
      "description": "Without a Copilot DLP policy, prompts containing personal identifiers are processed and sent to web search, and highly confidential labelled files appear in AI summaries for anyone who can open them."
    },
    "status": "active",
    "profiles": [
      "baseline"
    ],
    "risk": {
      "severity": "medium"
    },
    "assessment": "manual",
    "tags": [
      "dlp",
      "purview",
      "copilot",
      "ai",
      "data-protection",
      "sensitivity-labels"
    ],
    "applicability": {
      "requires": [
        "Microsoft 365 Copilot"
      ]
    },
    "description": "A Microsoft Purview DLP policy on the **Microsoft 365 Copilot and Copilot Chat** location is\nturned on for all users, with at least two rules:\n\n- **Content contains** > **Sensitivity labels** with the organization's highest labels (for\n  example *Highly confidential*, *Personal*) and the action **Prevent Copilot from processing\n  content**;\n- **Content contains** > **Sensitive information types** with the types of CB-M365-DATA-001 and\n  the action **Prevent Copilot from processing content** > **Performing Web Searches** (and\n  **Processing prompts** where the business accepts it).\n",
    "rationale": "Copilot works with the user's permissions, so oversharing problems become instantly visible\nthrough summaries and search. Excluding the most sensitive labelled content from Copilot\nprocessing limits that exposure, and blocking web grounding for prompts that contain personal\nidentifiers prevents them from being sent to an external search provider.\n",
    "impact": "Users cannot get Copilot answers based on excluded labelled items (they still appear in\ncitations). The label rule needs a label taxonomy in place (CB-M365-DATA-005). Policy changes\ncan take up to four hours to apply.\n",
    "notes": "The Copilot location only exists in the **Custom** template and cannot be combined with other\nlocations in the same policy. Blocking external email from Copilot grounding (preview) is a\nuseful addition against prompt injection.\n",
    "audit": {
      "manual": "1. Sign in to the Microsoft Purview portal (https://purview.microsoft.com) as at least a Global\n   Reader.\n2. Browse to **Solutions** > **Data Loss Prevention** > **Policies**.\n3. Find a policy with the **Microsoft 365 Copilot and Copilot Chat** location for all users,\n   **Status** = **On**, and check its rules against the description.\n4. Alternative in Security & Compliance PowerShell: `Get-DlpCompliancePolicy | Format-List\n   Name,Mode,Locations` and `Get-DlpComplianceRule -Policy <policy> | Format-List\n   Name,ContentContainsSensitiveInformation,AdvancedRule,RestrictAccess` (the Copilot location\n   is exposed as an `Applications` location of type Copilot).\n5. Fail if no enforced policy targets the Copilot location, or if it has neither a label rule\n   nor a sensitive information type rule.\n"
    },
    "remediation": {
      "manual": "1. Sign in to the Microsoft Purview portal with Purview Data Security AI Admin, Compliance\n   Administrator or Compliance Data Administrator.\n2. Browse to **Solutions** > **Data Loss Prevention** > **Policies** > **Create policy** >\n   **Custom** > **Custom policy**.\n3. On **Locations**, turn on **Microsoft 365 Copilot and Copilot Chat** only, for all users.\n4. Add a rule **Content contains** > **Sensitivity labels** (highest labels) with **Prevent\n   Copilot from processing content**.\n5. Add a second rule **Content contains** > **Sensitive information types** (types of\n   CB-M365-DATA-001) with **Prevent Copilot from processing content** > **Performing Web\n   Searches**, and optionally **Processing prompts**.\n6. Turn on policy tips with a link to the internal data handling page, run in simulation, then\n   turn the policy on.\n",
      "rollback": "Set the policy to simulation or off.\n"
    },
    "references": [
      {
        "title": "Microsoft Purview DLP for Microsoft 365 Copilot",
        "url": "https://learn.microsoft.com/purview/dlp-microsoft365-copilot-location-learn-about",
        "publisher": "Microsoft",
        "kind": "vendor-doc",
        "accessed": "2026-10-24"
      },
      {
        "title": "Maester MT.1175",
        "url": "https://maester.dev/docs/tests/",
        "publisher": "Maester",
        "kind": "tool",
        "accessed": "2026-10-24"
      }
    ],
    "mappings": [
      {
        "framework": "nist-800-53r5",
        "framework_version": "5.1.1",
        "id": "AC-4",
        "relation": "related"
      }
    ],
    "related_controls": [
      {
        "id": "CB-M365-DATA-001",
        "type": "related"
      },
      {
        "id": "CB-M365-DATA-005",
        "type": "requires"
      },
      {
        "id": "CB-M365-DATA-009",
        "type": "related"
      },
      {
        "id": "CB-M365-TENANT-020",
        "type": "related"
      }
    ],
    "authors": [
      {
        "name": "Alice",
        "github": "Sn0wAlice"
      }
    ],
    "introduced_in": "0.1.0",
    "created": "2026-10-24",
    "updated": "2026-10-24"
  }
}