<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>rss.livelink.threads-in-node</title>
    <link>https://techcommunity.microsoft.com/t5/microsoft-sentinel/ct-p/microsoft-sentinel</link>
    <description>rss.livelink.threads-in-node</description>
    <pubDate>Mon, 31 Aug 2026 10:01:06 GMT</pubDate>
    <dc:creator>microsoft-sentinel</dc:creator>
    <dc:date>2026-08-31T10:01:06Z</dc:date>
    <item>
      <title>Make system-generated LogARepublisher Threat Intelligence updates non-billable (_IsBillable = false)</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-sentinel-ideas/make-system-generated-logarepublisher-threat-intelligence/idi-p/4551632</link>
      <description>&lt;P&gt;&lt;STRONG&gt;Problem Statement:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Currently, Microsoft Sentinel regularly reruns an internal background process called LogARepublisher. This process periodically republishes existing Threat Intelligence data into the ThreatIntelIndicators table on an ongoing 7-to-10 day cycle to maintain freshness.&lt;/P&gt;&lt;P&gt;Because these system-generated updates write new records into the workspace, they are flagged as &lt;STRONG&gt;_IsBillable = true&lt;/STRONG&gt;. This results in organizations paying multiple times for the exact same threat indicators over their lifecycle. In general, this is a small amount of data but can form a larger percentage of ingest/analytic cost for customers with low ingestion volumes, and becomes noticeable at scale when managing many Azure tenants.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;BR /&gt;Why This Matters:&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="lia-indent-padding-left-30px"&gt;&lt;STRONG&gt;Unintended Cost Allocation:&lt;/STRONG&gt; Customers are being billed for automated, backend data-maintenance cycles triggered by Microsoft, rather than true new log ingestion or external feed consumption.&lt;/P&gt;&lt;P class="lia-indent-padding-left-30px"&gt;&lt;STRONG&gt;Artificial Volume Inflation:&lt;/STRONG&gt; Large TI datasets can exponentially inflate monthly data volume metrics solely due to repeating republication, making budget forecasting unpredictable.&lt;/P&gt;&lt;P class="lia-indent-padding-left-30px"&gt;&lt;STRONG&gt;No Added Analytical Value: &lt;/STRONG&gt;Rerunning the exact same indicators does not offer new security value or unique logs; it simply updates the timestamp metadata on a new row.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Proposed Solution:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Modify the backend pipeline so that when a record is ingested via LastUpdateMethod == "LogARepublisher", the system-generated metadata property _IsBillable is automatically set to false.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Customers should only be billed for the initial ingestion of a threat indicator, not for the automated system maintenance required to keep it fresh within the Sentinel ecosystem.&lt;/STRONG&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 31 Aug 2026 00:26:47 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-sentinel-ideas/make-system-generated-logarepublisher-threat-intelligence/idi-p/4551632</guid>
      <dc:creator>mtwexp</dc:creator>
      <dc:date>2026-08-31T00:26:47Z</dc:date>
    </item>
    <item>
      <title>Building Microsoft Sentinel Connectors in Minutes with the Sentinel Connector Builder Agent</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-sentinel-blog/building-microsoft-sentinel-connectors-in-minutes-with-the/ba-p/4544378</link>
      <description>&lt;H1&gt;Overview&lt;/H1&gt;
&lt;P&gt;We previously announced the public preview of the &lt;A href="https://aka.ms/SentinelCCF_Connector-Builder-Agent" target="_blank" rel="noopener"&gt;Microsoft Sentinel connector builder agent&lt;/A&gt; via VS code extension, that helps developers build Microsoft Sentinel codeless connectors faster with low-code and AI-assisted prompts. This post walks through a hands-on lab using a mock Network Log API to demonstrate how the Sentinel connector builder agent simplifies building Codeless Connector Framework (CCF) pull connectors. Instead of manually creating ingestion infrastructure and configuration files, you’ll use a guided, conversational workflow in VS Code to generate connector artifacts, test them against a live API, and deploy them into Microsoft Sentinel. The lab focuses on the end-to-end experience ranging from API setup to validated connector deployment so you can see how quickly a working integration can be produced. For additional guidance beyond this lab, refer to our &lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/sentinel/isv/create-custom-connector-builder-agent" target="_blank" rel="noopener"&gt;MS Learn documentation&lt;/A&gt;.&lt;/P&gt;
&lt;H1&gt;The Lab Environment&amp;nbsp;&lt;/H1&gt;
&lt;P&gt;This lab is built around a mock Network Log API hosted as an Azure Function App. The purpose of the lab environment is to give us a live API that we can use to build, validate, and test the Sentinel CCF connector builder agent against end to end. The API exposes 50 synthetic network activity records that look and behave like a real product data source, including web traffic, DNS requests, blocked remote access attempts, malware command-and-control blocks, VPN activity, and other common network events. That makes it a useful stand-in for the type of telemetry many teams want to onboard into Microsoft Sentinel.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The API is intentionally shaped like the kind of source a customer might expose for telemetry retrieval. It uses API key authentication through the &lt;CODE&gt;X-API-Key&lt;/CODE&gt; header, returns paginated results through a &lt;CODE&gt;nextLink&lt;/CODE&gt; model, and provides a predictable response structure that the builder agent can map into a pull connector configuration.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The repo&amp;nbsp;contains&amp;nbsp;everything needed for the walkthrough. There is an ARM template to deploy the Function App, reference documentation for the API, and a sample connector package showing the generated polling config, table schema, DCR, and connector definition. The end goal of the lab is straightforward: use the builder agent to generate a CCF pull connector that ingests this API into the custom &lt;CODE&gt;NetworkLogAPIGetNetworkLogs_CL&lt;/CODE&gt; table in Sentinel.&amp;nbsp;&lt;/P&gt;
&lt;H1&gt;Prerequisites&amp;nbsp;&lt;/H1&gt;
&lt;P&gt;Before starting, make sure you have the following:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Azure subscription&lt;/STRONG&gt; -- with Contributor access on a resource group (for deploying the Function App) and Microsoft Sentinel Contributor access on a Sentinel-enabled workspace (for deploying the connector)&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Microsoft Sentinel workspace&lt;/STRONG&gt; -- an existing Log Analytics workspace with Sentinel enabled. See &lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/sentinel/quickstart-onboard?tabs=defender-portal" target="_blank" rel="noopener"&gt;Onboard Microsoft Sentinel to a Log Analytics workspace&lt;/A&gt; for more information.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Azure CLI&lt;/STRONG&gt; -- See&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/cli/azure/install-azure-cli" target="_blank" rel="noopener" data-lia-auto-title-active="0" data-lia-auto-title="How to install the Azure CLI"&gt;How to install the Azure CLI&lt;/A&gt; for more information.&lt;SPAN style="color: rgb(30, 30, 30);"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;VS Code&amp;nbsp;&lt;/STRONG&gt;with the &lt;A class="lia-external-url" href="https://marketplace.visualstudio.com/items?itemName=ms-security.ms-sentinel" target="_blank" rel="noopener"&gt;Microsoft Sentinel for Visual Studio Code&lt;/A&gt; extension installed.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;GitHub Copilot&lt;/STRONG&gt; -- with access to premium models. The connector builder agent requires Claude Sonnet 4.5 or 4.6, which uses Copilot premium model credits.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Lab Repository&lt;/STRONG&gt; -- Once the aforementioned prerequisites are met, you can access the lab repository here:&amp;nbsp;&lt;A href="https://github.com/Azure/Azure-Sentinel/tree/master/Tools/CCF-Connector-Builder-Agent-Accelerator" target="_blank" rel="noopener"&gt;Azure-Sentinel/Tools/CCF-Connector-Builder-Agent-Accelerator at master · Azure/Azure-Sentinel&lt;/A&gt;&lt;/P&gt;
&lt;H1&gt;Deploying the Mock API&amp;nbsp;&lt;/H1&gt;
&lt;P&gt;The full CLI commands for this section are available in the repo. For a simpler option, you can use GitHub Copilot to handle the deployment. Enter this prompt:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Follow the deployment instructions in Sentinel-CCF-Pull-Connector-Builder-Agent-Accelerator/agent-instructions.md. Let’s deploy the Network Log API and build a CCF pull connector.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;At&amp;nbsp;a high level, the setup is four steps: clone the repo, create a resource group, ensure you have a &lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/sentinel/quickstart-onboard?tabs=defender-portal" target="_blank" rel="noopener"&gt;Sentinel-enabled&amp;nbsp;workspace&lt;/A&gt;, and deploy the Function App using the included ARM template. The template takes two parameters: an &lt;CODE&gt;ApiKey&lt;/CODE&gt; of your choice (the secret the CCF connector will use to authenticate) and your Log Analytics workspace resource ID for Application Insights. Deployment takes about two to three minutes and outputs the &lt;CODE&gt;FunctionAppName&lt;/CODE&gt; and endpoint URLs you will need later.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Once deployed, verify the API is live:&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;curl -s -H "X-API-Key: &amp;lt;your-api-key&amp;gt;" \ 
  "https://&amp;lt;functionappname&amp;gt;.azurewebsites.net/api/GetNetworkLogs?page=1&amp;amp;pageSize=3" 
&amp;lt;/functionappname&amp;gt;&amp;lt;/your-api-key&amp;gt;&lt;/LI-CODE&gt;
&lt;P&gt;You should see a response like this:&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;The API also exposes an &lt;CODE&gt;/api/RefreshData&lt;/CODE&gt; endpoint that regenerates the 50 sample records with fresh timestamps. This is useful later in the walkthrough when you want to produce new events and trigger an immediate ingestion cycle without waiting for the next polling interval:&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;curl -s -X POST -H "X-API-Key: &amp;lt;your-api-key&amp;gt;" \ 
  "https://&amp;lt;functionappname&amp;gt;.azurewebsites.net/api/RefreshData" 
&amp;lt;/functionappname&amp;gt;&amp;lt;/your-api-key&amp;gt;&lt;/LI-CODE&gt;
&lt;H1&gt;Building the Connector with the Sentinel Connector Builder Agent&amp;nbsp;&lt;/H1&gt;
&lt;P&gt;With the Microsoft Sentinel extension installed and GitHub Copilot running in agent mode, open a Copilot chat and enter a single prompt pointing at the API documentation file:&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;That is the entire invocation. The agent takes it from there.&amp;nbsp;&amp;nbsp;It works through a structured seven-step sequence: preparation, polling config, table schema, DCR, connector definition, package validation, and summary.&amp;nbsp;&amp;nbsp;The agent produces four files in a &lt;CODE&gt;sentinel-connectors/NetworkLogAPI_CCF/&lt;/CODE&gt; output folder:&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;NetworkLogAPI_PollingConfig.json&amp;nbsp;&lt;/STRONG&gt;– This is the API&amp;nbsp;poller&amp;nbsp;configuration. The agent reads the documentation and correctly identifies the &lt;CODE&gt;GET /api/GetNetworkLogs&lt;/CODE&gt; endpoint, configures API Key authentication via the &lt;CODE&gt;X-API-Key&lt;/CODE&gt; header, sets up &lt;CODE&gt;NextPageUrl&lt;/CODE&gt; pagination using &lt;CODE&gt;$.metadata.nextLink&lt;/CODE&gt; with a &lt;CODE&gt;$.metadata.hasNextPage&lt;/CODE&gt; stop condition, and wires up the &lt;CODE&gt;since&lt;/CODE&gt; query parameter for incremental delta pulls using the &lt;CODE&gt;timestamp&lt;/CODE&gt; field. The &lt;CODE&gt;RefreshData&lt;/CODE&gt; endpoint is correctly excluded, which the agent recognizes as a maintenance operation, not a security data stream.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;NetworkLogAPI_Table.json&amp;nbsp;–&amp;nbsp;&lt;/STRONG&gt;This is&amp;nbsp;the&amp;nbsp;custom Log Analytics table schema for &lt;CODE&gt;NetworkLogAPIGetNetworkLogs_CL&lt;/CODE&gt;. All 20 fields from the API response are mapped to the correct column types, with &lt;CODE&gt;timestamp&lt;/CODE&gt; promoted to &lt;CODE&gt;TimeGenerated&lt;/CODE&gt; as the standard Sentinel time column.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;NetworkLogAPI_DCR.json&amp;nbsp;–&amp;nbsp;&lt;/STRONG&gt;This is the&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;Data Collection Rule. This defines the stream declaration, the workspace destination, and the KQL transform that maps the raw&amp;nbsp;snake_case&amp;nbsp;API fields (&lt;CODE&gt;sourceIp&lt;/CODE&gt;, &lt;CODE&gt;destinationIp&lt;/CODE&gt;, &lt;CODE&gt;threatIndicator&lt;/CODE&gt;, etc.) to their&amp;nbsp;PascalCase&amp;nbsp;table columns.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;NetworkLogAPI_ConnectorDefinition.json&amp;nbsp;–&amp;nbsp;&lt;/STRONG&gt;This is the connector UI configuration. This drives what the connector page looks like in Microsoft Sentinel: the title, description, prerequisite instructions, the &lt;CODE&gt;BaseUrl&lt;/CODE&gt; and &lt;CODE&gt;ApiKey&lt;/CODE&gt; input fields, sample KQL queries, and the connectivity status logic.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The only point where the agent paused for input was to propose a connector description and ask for confirmation before writing it to the file. Everything else&amp;nbsp;such as&amp;nbsp;endpoint selection, auth type, pagination pattern, schema mapping, KQL transform, cross-file consistency was&amp;nbsp;selected&amp;nbsp;autonomously.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;To put that in perspective: without the agent, a developer building this connector from scratch would need to manually author four JSON files, understand the CCF schema for polling configs, DCRs, and connector definitions, write the KQL transform by hand, and validate that every cross-file reference lines up correctly. The agent compresses that work, typically hours of reading documentation, trial-and-error, and portal debugging, into a single prompt.&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Testing the Connector&amp;nbsp;&lt;/H2&gt;
&lt;P&gt;Before deploying anything to a Sentinel workspace, the Microsoft Sentinel connector builder agent lets you validate the generated polling config against the live API directly from your editor. Right-click the &lt;CODE&gt;sentinel-connectors/NetworkLogAPI_CCF&lt;/CODE&gt; folder, select&amp;nbsp;&lt;STRONG&gt;Microsoft Sentinel → Test Connector (Preview)&lt;/STRONG&gt;, and a Configuration Variables panel opens asking for the two template variables from the polling config: &lt;CODE&gt;BaseUrl&lt;/CODE&gt; and &lt;CODE&gt;apiKey&lt;/CODE&gt;. For other API patterns, there may be additional and different inputs.&amp;nbsp; For example, &lt;CODE&gt;apiKey&lt;/CODE&gt; input could be swapped with &lt;CODE&gt;clientID&lt;/CODE&gt; and &lt;CODE&gt;secret&lt;/CODE&gt; if the API supports OAUTH.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;Enter the Function App base URL and your API key, and the test runner connects immediately. The panel shows a live polling session.&amp;nbsp;&amp;nbsp;Poll #1 returns HTTP 200 with 50 events, and a countdown timer shows when the next poll will fire. Switching to the Events tab displays the ingested records in a tabular view with columns for &lt;CODE&gt;timestamp&lt;/CODE&gt;, &lt;CODE&gt;severity&lt;/CODE&gt;, &lt;CODE&gt;action&lt;/CODE&gt;, &lt;CODE&gt;bytesIn&lt;/CODE&gt;, &lt;CODE&gt;bytesOut&lt;/CODE&gt;, &lt;CODE&gt;category&lt;/CODE&gt;, and the rest of the mapped fields fresh from the API.&amp;nbsp; Additionally, there are tabs for&amp;nbsp;Headers, Payload, and Response, which can be useful for verifying that your &lt;CODE&gt;pollerconfig.json&lt;/CODE&gt; configuration provides the expected request to your api with a working response.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;Data Extracted:&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;The Test Connector feature can be used to visualize the response data in a table format to verify that data will land in a Sentinel table based on your configuration.&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;Request from Poller:&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;The Test Connector feature can be used to validate the request and response headers that will go out to the API based on the generated poller configuration.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;Request Response:&lt;BR /&gt;&lt;/STRONG&gt;&lt;/U&gt;The Test Connector feature shows you the live response from the API with respect to the request going to the API based on the poller configuration.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;This is a meaningful pre-flight check. It confirms that auth is working, the &lt;CODE&gt;$.data&lt;/CODE&gt; events path resolves correctly, pagination is functional, and the polling interval fires as configured all before a single file is deployed to Azure. The most common connector configuration issues (wrong base URL, incorrect header name, mismatched JSON path) surface here in seconds rather than after a failed deployment and a 20-minute wait for Sentinel to attempt its first ingestion cycle. It is also the fastest way to troubleshoot if something goes wrong after deployment, far quicker than pushing changes to Azure and waiting for the connector to poll again.&amp;nbsp;&lt;/P&gt;
&lt;H1&gt;Deploying and Enabling the Connector&amp;nbsp;&lt;/H1&gt;
&lt;P&gt;With the connector tested and passing, deployment is the same right-click menu: right-click the &lt;CODE&gt;sentinel-connectors/NetworkLogAPI_CCF&lt;/CODE&gt; folder, select &lt;STRONG&gt;Microsoft Sentinel → Deploy Connector (Preview)&lt;/STRONG&gt;.&amp;nbsp; If you are not already signed in to Azure, the extension will prompt you to authenticate. The agent will also provide a clickbox in the chat window to invoke a connector deployment.&lt;/P&gt;
&lt;P&gt;Right Click &lt;STRONG&gt;Deploy Connector&lt;/STRONG&gt;:&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;UI Prompt Based Deploy Method:&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;Once signed in, a workspace picker lists all available Log Analytics workspaces across your subscriptions. Select the one with Sentinel enabled and click &lt;STRONG&gt;Deploy&lt;/STRONG&gt;. The extension deploys all four files to the workspace in the correct order: table schema first, then DCR, polling config, and connector definition.&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;Once deployed, navigate to your Sentinel workspace via &lt;U&gt;https://security.microsoft.com&lt;/U&gt;, go to Data Connectors, and find the Network Log API connector. The connector page shows the description, prerequisite notes, and the two credential fields generated by the agent:&amp;nbsp;&amp;nbsp;API Base URL and API Key. Enter your Function App base URL and API key and click Connect. The status updates to show the connector is connected and the deployment succeeded.&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Note: &lt;/STRONG&gt;Data will appear in the workspace within 5 to 30 minutes depending on the polling interval. Run this query in Log Analytics to confirm ingestion. Note that the agent derives the table name from the&amp;nbsp;vendor&amp;nbsp;name and endpoint, so yours may differ slightly from the example below. Check the agent's summary output or the &lt;CODE&gt;NetworkLogAPI_Table.json&lt;/CODE&gt; file for the exact name:&amp;nbsp;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;LI-CODE lang=""&gt;NetworkLogAPIGetNetworkLogs_CL 
| sort by TimeGenerated desc 
| take 10 &lt;/LI-CODE&gt;
&lt;P&gt;If you want to generate a fresh batch of events immediately rather than waiting for the next polling cycle, use the &lt;CODE&gt;RefreshData&lt;/CODE&gt; endpoint to reset the sample records with new timestamps:&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;curl -s -X POST -H "X-API-Key: " \ 
  "https://.azurewebsites.net/api/RefreshData" &lt;/LI-CODE&gt;
&lt;H1&gt;Next Steps&lt;/H1&gt;
&lt;P&gt;&lt;STRONG&gt;If you want to go further:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Try it with your own API. The lab repo includes documentation on adapting the polling config, schema, and KQL transform to a real data source.&lt;/LI&gt;
&lt;LI&gt;Review the CCF connector schema documentation to understand the full range of supported configurations: pagination patterns, auth types, incremental pull strategies, and delta filter expressions.&lt;/LI&gt;
&lt;LI&gt;Explore the Microsoft Sentinel content hub to see how published connectors are structured and what the certification requirements look like for production submissions.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H1&gt;Conclusion&lt;/H1&gt;
&lt;P&gt;Following these steps, you saw how a working Sentinel connector can be generated, tested, and deployed in minutes rather than requiring days of manual configuration and infrastructure setup. If you are an ISV building a Sentinel integration and want hands-on support, Microsoft’s App Assure program is available to help. We partner with ISVs on connector development, validation, and deployment and provide guidance through implementation, testing, and readiness for production. You can get started by reaching out through &lt;A href="https://aka.ms/appassurerequest" target="_blank" rel="noopener"&gt;our intake form&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;See our other Sentinel connector feature’s hands-on labs&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/AppAssure_Nested-API-Connector-Lab" target="_blank" rel="noopener"&gt;Building a CCF Nested API Pull Connector: A Technical Lab Walkthrough&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Tue, 11 Aug 2026 16:00:00 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-sentinel-blog/building-microsoft-sentinel-connectors-in-minutes-with-the/ba-p/4544378</guid>
      <dc:creator>Robert_Moriarty</dc:creator>
      <dc:date>2026-08-11T16:00:00Z</dc:date>
    </item>
    <item>
      <title>AI-powered playbook generator, now available to more customers</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-sentinel-blog/ai-powered-playbook-generator-now-available-to-more-customers/ba-p/4544385</link>
      <description>&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;We’re excited to announce we’re making it easier than ever to go from intent to action with the AI-powered playbook generator now available to more customers.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559739&amp;quot;:160}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H4 aria-level="2"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;What’s new&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559738&amp;quot;:260,&amp;quot;335559739&amp;quot;:120}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H4&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;&lt;SPAN data-olk-copy-source="MessageBody"&gt;All Microsoft Sentinel customers in Defender portal can now create AI-generated playbooks directly in their automation workflow.&lt;/SPAN&gt; As part of this change, Security Copilot enablement is no longer required: playbook generator is now available to more teams out of the box and without any extra cost.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559739&amp;quot;:160}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H4 aria-level="2"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;What&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;p&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;laybook&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;g&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;enerator does&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559738&amp;quot;:260,&amp;quot;335559739&amp;quot;:120}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H4&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Playbook&amp;nbsp;generator uses AI to turn what you want to automate into a working playbook. Instead of hand-building automation&amp;nbsp;in python code, describe the response you need&amp;nbsp;in natural language&amp;nbsp;and get an editable&amp;nbsp;playbook,&amp;nbsp;its tests and documentation&amp;nbsp;generated for you right inside the Microsoft Defender portal.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559739&amp;quot;:160}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="•" data-font="" data-listid="2" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;•&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;&lt;STRONG&gt;Faster response automation:&lt;/STRONG&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;go from idea to playbook in minutes.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559739&amp;quot;:60}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="•" data-font="" data-listid="2" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;•&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="1"&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Built into your workflow:&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-contrast="auto"&gt;find it under Automation › + Create › Playbook Generator.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559739&amp;quot;:60}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="•" data-font="" data-listid="2" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;•&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="3" data-aria-level="1"&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Fully editable:&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-contrast="auto"&gt;generated playbooks are code-based, complete with&amp;nbsp;tests,&amp;nbsp;documentation and&amp;nbsp;visual&amp;nbsp;flow, that you can review and refine.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559739&amp;quot;:60}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H4 aria-level="2"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;Who is it for&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559738&amp;quot;:260,&amp;quot;335559739&amp;quot;:120}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H4&gt;
&lt;P&gt;If you’re using Microsoft Sentinel in your Defender portal, the playbook generator is now within reach. This expansion brings AI-assisted playbook creation to significantly more security teams.&lt;/P&gt;
&lt;H4 aria-level="2"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;How to get started&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559738&amp;quot;:260,&amp;quot;335559739&amp;quot;:120}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H4&gt;
&lt;H5 aria-level="5"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 5"&gt;Ensure&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 5"&gt;&amp;nbsp;you have the right permissions&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335551550&amp;quot;:1,&amp;quot;335551620&amp;quot;:1,&amp;quot;335557856&amp;quot;:16777215,&amp;quot;335559738&amp;quot;:600,&amp;quot;335559739&amp;quot;:300}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H5&gt;
&lt;P&gt;&lt;SPAN data-contrast="none"&gt;To build and deploy generated playbooks,&amp;nbsp;make sure&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;You have the&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="none"&gt;Automation Playbooks&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-contrast="none"&gt;&amp;nbsp;Unified RBAC permission with&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="none"&gt;Read&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-contrast="none"&gt;&amp;nbsp;and&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="none"&gt;Write&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-contrast="none"&gt;&amp;nbsp;access.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335551550&amp;quot;:1,&amp;quot;335551620&amp;quot;:1,&amp;quot;335557856&amp;quot;:16777215,&amp;quot;335559738&amp;quot;:0,&amp;quot;335559739&amp;quot;:150}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P aria-level="2"&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335551550&amp;quot;:1,&amp;quot;335551620&amp;quot;:1,&amp;quot;335557856&amp;quot;:16777215,&amp;quot;335559738&amp;quot;:0,&amp;quot;335559739&amp;quot;:150}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Open Microsoft Defender Portal and go to Automation.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559739&amp;quot;:60}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Select + Create › Playbook Generator.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559739&amp;quot;:60}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Describe the playbook you want to create.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559739&amp;quot;:60}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Review, edit, and deploy.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559739&amp;quot;:60}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;img&gt;&lt;SPAN data-contrast="auto"&gt;Automatically created visual diagram of the playbook.&lt;/SPAN&gt;&lt;/img&gt;&lt;img&gt;&lt;SPAN data-contrast="auto"&gt;Phyton code created by playbook generator.&lt;/SPAN&gt;&lt;/img&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H5 aria-level="2"&gt;&lt;SPAN data-contrast="auto"&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;Availability&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559738&amp;quot;:260,&amp;quot;335559739&amp;quot;:120}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H5&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;General availability:&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;Already available.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559739&amp;quot;:60}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559739&amp;quot;:60}"&gt;&lt;SPAN data-contrast="auto"&gt;Cost:&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Included&amp;nbsp;with Microsoft Sentinel&amp;nbsp;-&amp;nbsp;no additional charge.&lt;/SPAN&gt; &amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-contrast="none"&gt;Try Playbook Generator in your Microsoft Defender Portal today.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559739&amp;quot;:160}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 07 Aug 2026 19:28:40 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-sentinel-blog/ai-powered-playbook-generator-now-available-to-more-customers/ba-p/4544385</guid>
      <dc:creator>NoaCafri</dc:creator>
      <dc:date>2026-08-07T19:28:40Z</dc:date>
    </item>
    <item>
      <title>Smarter signals, broader coverage: UEBA anomalies on top of Behaviors layer and new data sources</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-sentinel-blog/smarter-signals-broader-coverage-ueba-anomalies-on-top-of/ba-p/4544384</link>
      <description>&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Co-authors: Ron Shlomo and Ryan Smith&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Security teams don't struggle with a lack of security signals. The real challenge is understanding which activity matters, why it stands out, and where to focus first.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559739&amp;quot;:120}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Microsoft Sentinel's Behaviors layer already helps analysts transform raw security events into meaningful behavioral patterns. Today,&amp;nbsp;we're&amp;nbsp;making that experience both smarter and broader.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559739&amp;quot;:120}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;What if every behavior could&amp;nbsp;immediately&amp;nbsp;tell you&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;not only what happened, but why it matters&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-contrast="auto"&gt;?&amp;nbsp;We're&amp;nbsp;bringing&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;UEBA anomaly intelligence directly into the Behaviors layer&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-contrast="auto"&gt;, so every behavior now includes anomaly insights together with explainable context.&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&lt;STRONG&gt;At the same time&lt;/STRONG&gt;,&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;UEBA expands beyond identity signals to support network and cloud data sources, enabling richer behavioral insights across more of your environment and helping security teams detect suspicious activity wherever it occurs.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559739&amp;quot;:120}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;If&amp;nbsp;you're&amp;nbsp;new to these capabilities, we recommend reviewing our&amp;nbsp;previous&amp;nbsp;announcements on the&amp;nbsp;&lt;/SPAN&gt;&lt;A class="lia-internal-link lia-internal-url lia-internal-url-content-type-blog" href="https://techcommunity.microsoft.com/blog/microsoftsentinelblog/microsoft-sentinel%E2%80%99s-ai-driven-ueba-ushers-in-the-next-era-of-behavioral-analyti/4448390" target="_blank" rel="noopener" data-lia-auto-title="UEBA expansion" data-lia-auto-title-active="0"&gt;UEBA expansion&lt;/A&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;and the&amp;nbsp;&lt;/SPAN&gt;&lt;A class="lia-internal-link lia-internal-url lia-internal-url-content-type-blog" href="https://techcommunity.microsoft.com/blog/microsoftsentinelblog/turn-complexity-into-clarity-introducing-the-new-ueba-behaviors-layer-in-microso/4484493" target="_blank" rel="noopener" data-lia-auto-title="Behaviors public preview" data-lia-auto-title-active="0"&gt;Behaviors public preview&lt;/A&gt;&lt;SPAN data-contrast="auto"&gt;, which provide&amp;nbsp;additional&amp;nbsp;background on the Behaviors layer and its underlying UEBA capabilities.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H3 aria-level="1"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt;What's&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt; new in Sentinel UEBA and B&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt;ehaviors layer&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559738&amp;quot;:360,&amp;quot;335559739&amp;quot;:160,&amp;quot;335572079&amp;quot;:6,&amp;quot;335572080&amp;quot;:4,&amp;quot;335572081&amp;quot;:12549407,&amp;quot;469789806&amp;quot;:&amp;quot;single&amp;quot;}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Microsoft Sentinel’s Behaviors&amp;nbsp;layer&amp;nbsp;aggregates&amp;nbsp;and sequences&amp;nbsp;individual events into meaningful behavioral patterns,&amp;nbsp;giving SOC teams&amp;nbsp;the security context of who did what to whom and why it matters in one place, instead of sifting through raw telemetry in separated tables.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:120,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;With this release, we're expanding the Behaviors layer. It now includes&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;UEBA Anomalies&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-contrast="auto"&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;and contextual enrichments directly within each behavior. In addition, the Behaviors layer now supports&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Fortinet&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;logs via the&amp;nbsp;CommonSecurityLog&amp;nbsp;table.&amp;nbsp;We're&amp;nbsp;also&amp;nbsp;expanding&amp;nbsp;Classical UEBA&amp;nbsp;beyond identity signals by adding support&amp;nbsp;for&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;network&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;and cloud data sources:&amp;nbsp;AWS&amp;nbsp;GuardDuty,&amp;nbsp;Check&amp;nbsp;Point,&amp;nbsp;Zscaler and&amp;nbsp;Fortinet&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;(via&amp;nbsp;CommonSecurityLog).&amp;nbsp;Together, these enhancements&amp;nbsp;allow the SOC to&amp;nbsp;receive&amp;nbsp;a richer&amp;nbsp;context and explainable anomaly detection for every&amp;nbsp;behavior&amp;nbsp;across a broader&amp;nbsp;portion&amp;nbsp;of the&amp;nbsp;environment.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:120,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H4 aria-level="2"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;Adding context to every behavior&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;—use &lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;case&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559738&amp;quot;:280,&amp;quot;335559739&amp;quot;:120}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H4&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;The following example illustrates how&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;UEBA Anomalies on Behaviors&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;help analysts quickly&amp;nbsp;identify&amp;nbsp;suspicious activity by adding context to every behavior.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H5 aria-level="3"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;Scenario:&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;Detecting a compromised FortiGate device&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559738&amp;quot;:200,&amp;quot;335559739&amp;quot;:80,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H5&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;An attacker gains administrative access to a FortiGate&amp;nbsp;firewall&amp;nbsp;and begins making configuration changes to&amp;nbsp;establish&amp;nbsp;persistence and enable future access. Individually, each action may appear legitimate. Together, however, they form a&amp;nbsp;potentially&amp;nbsp;suspicious behavioral pattern.&amp;nbsp;UEBA then layers anomaly insights and explainability on top of these Behaviors, providing the&amp;nbsp;additional&amp;nbsp;context needed to&amp;nbsp;identify&amp;nbsp;suspicious activity.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H6&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Examples of observed behaviors include:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/H6&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Firewall&amp;nbsp;administrator signs in from a new geographic location.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Configuration changes occur outside normal maintenance windows.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;A new administrator account is created.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;VPN settings or&amp;nbsp;firewall&amp;nbsp;rules are&amp;nbsp;modified&amp;nbsp;to enable new access paths.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Unusual outbound traffic is detected through the FortiGate device.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Rather than presenting these as isolated events, UEBA enriches each behavior with anomaly insights and explainable context. Analysts can&amp;nbsp;immediately&amp;nbsp;understand why the activity stands out. For example, because the administrator has never performed this combination of actions before, the changes occurred at an unusual time, and multiple high-risk modifications happened within&amp;nbsp;a short period.&amp;nbsp;This helps security teams quickly&amp;nbsp;identify&amp;nbsp;high-risk activity, reduce investigation time, and respond before attackers can expand their access within the environment.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;201341983&amp;quot;:0,&amp;quot;335551550&amp;quot;:1,&amp;quot;335551620&amp;quot;:1,&amp;quot;335559685&amp;quot;:0,&amp;quot;335559737&amp;quot;:0,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H6&gt;&lt;STRONG&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;201341983&amp;quot;:0,&amp;quot;335551550&amp;quot;:1,&amp;quot;335551620&amp;quot;:1,&amp;quot;335559685&amp;quot;:0,&amp;quot;335559737&amp;quot;:0,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240,&amp;quot;335559740&amp;quot;:259}"&gt;KQL examples&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/H6&gt;
&lt;LI-CODE lang="kusto"&gt;//Query 1: Logon and Configuration Change by user for the first time 

BehaviorInfo 
| where Timestamp &amp;gt; ago(30d) 
| where ActionType == "BehaviorFortiGateReconfiguration" 
| where Insights has "FirstSeen" 
| extend AdditionalFields = todynamic(AdditionalFields) 
| extend Hostname = AdditionalFields.ApplianceId 
| extend User = AdditionalFields.ChangedBy[0] 
| extend uebaEnrichments = AdditionalFields ["ueba.enrichments"] 
| extend uebaInsights = todynamic(Insights).Explainability 
| project ActionType, Description, Categories, AttackTechniques, ServiceSource, DataSources, User, Hostname, AdditionalFields, uebaInsights, uebaEnrichments 

//Query 2: get HighVolumeAnomaly behaviors to detect high traffic for the suspicious host / IP 

BehaviorInfo 
| where Timestamp &amp;gt; ago(30d) 
| where DataSources has "CommonSecurityLog" 
| invoke GetAnomalousBehaviorsByValue( 
  "&amp;lt;Hostname&amp;gt;", //Extracted from Hostname in query 1 
  "HighVolumeAnomaly") &lt;/LI-CODE&gt;
&lt;H4 aria-level="2"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;Expanding visibility scross the environment&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;—use cases&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559738&amp;quot;:280,&amp;quot;335559739&amp;quot;:120}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H4&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;The following examples show how the new network data sources extend Behavioral analytics and UEBA Anomalies, helping uncover suspicious activity across more of your environment.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H5 aria-level="3"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;Scenario: I&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;dentifying&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt; suspicious web access with Zscaler telemetry &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559738&amp;quot;:200,&amp;quot;335559739&amp;quot;:80}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H5&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;A user&amp;nbsp;attempts&amp;nbsp;to access a URL categorized as phishing, malware, spyware, or command-and-control. On its own, the event may appear as just another web-proxy log among thousands generated every day.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;With Zscaler telemetry incorporated into behavioral analytics, UEBA&amp;nbsp;identifies&amp;nbsp;that the user has never accessed this high-risk URL category before and enriches the activity with user, destination, source IP, location, ISP, and threat intelligence context, helping analysts&amp;nbsp;immediately&amp;nbsp;understand why the event stands out.&amp;nbsp;Rather than investigating an isolated web access event, analysts can quickly&amp;nbsp;determine&amp;nbsp;whether the activity&amp;nbsp;indicates&amp;nbsp;a phishing attempt or attacker-controlled infrastructure and respond before the compromise spreads.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H6 aria-level="4"&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 4"&gt;KQL example&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/H6&gt;
&lt;LI-CODE lang="kusto"&gt;//Query 3: First-time high-risk web category access from an unusual location or ISP 
Returns phishing, malware, spyware, or C2 category hits that are new for the user and come from an unusual location or network. Check RequestURL and UrlCategory for the destination. 

BehaviorAnalytics 
| where TimeGenerated &amp;gt; ago(7d) 
| where EventSource == "CommonSecurityLog" 
| where ActivityType == "UnusualHighRiskWebCategoryAccess" 
| where ActivityInsights.DeviceVendor == "Zscaler" 
| where ActivityInsights.DeviceProduct == "NSSWeblog" 
| extend UrlCategory = ActivityInsights.UrlCategory 
| extend RequestURL = ActivityInsights.RequestURL 
| extend ISP = DevicesInsights.ISP 
| extend ThreatIntel = DevicesInsights.ThreatIntelIndicatorType 
| extend RiskyCategory = ActivityInsights.FirstTimeUserAccessedHighRiskUrlCategory == True 
                      or ActivityInsights.FirstTimeHighRiskUrlCategoryObservedInTenant == True 
| extend UnusualLocation = ActivityInsights.FirstTimeUserConnectedFromCountry == True 
                        or ActivityInsights.FirstTimeConnectionFromCountryObservedInTenant == True 
                        or ActivityInsights.CountryUncommonlyConnectedFromByUser == True 
| extend UnusualISP = ActivityInsights.FirstTimeUserConnectedViaISP == True 
                   or ActivityInsights.ISPUncommonlyUsedByUser == True 
                   or ActivityInsights.IPRegOrgUncommonlyUsedByUser == True 
| where RiskyCategory and (UnusualLocation or UnusualISP or isnotempty(ThreatIntel)) &lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;The following example illustrates how &lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&lt;STRONG&gt;Behaviors&lt;/STRONG&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;built on top of new network data source help analysts&amp;nbsp;identify&amp;nbsp;sensitive administrative activity that might otherwise appear routine.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559738&amp;quot;:210,&amp;quot;335559739&amp;quot;:210,&amp;quot;335559740&amp;quot;:300}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H4 aria-level="3"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;Scenario:&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;Identifying&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt; suspicious FortiGate configuration backups &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559738&amp;quot;:200,&amp;quot;335559739&amp;quot;:80}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H4&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;A network administrator exports a FortiGate configuration backup. On its own, this action is common during maintenance, upgrades, or disaster recovery and is unlikely to trigger immediate investigation.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559738&amp;quot;:210,&amp;quot;335559739&amp;quot;:210,&amp;quot;335559740&amp;quot;:300}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;With Behaviors built on top of Fortinet telemetry, Microsoft Sentinel transforms this raw administrative event into&amp;nbsp;a meaningful&amp;nbsp;security context. Analysts can&amp;nbsp;immediately&amp;nbsp;see who performed the backup, which device was involved, how it was executed&amp;nbsp;(GUI, API,&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;&amp;nbsp;RESTAPI, ssh&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;or CLI), and whether the activity deviates from the user's normal behavior or occurred alongside other suspicious activity.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559738&amp;quot;:210,&amp;quot;335559739&amp;quot;:210,&amp;quot;335559740&amp;quot;:300}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Instead of reviewing isolated&amp;nbsp;firewall&amp;nbsp;events, analysts can quickly&amp;nbsp;determine&amp;nbsp;whether the&amp;nbsp;configuration&amp;nbsp;export is part of legitimate administration or an early indicator of compromise, reconnaissance, or preparation for persistence.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559738&amp;quot;:210,&amp;quot;335559739&amp;quot;:210,&amp;quot;335559740&amp;quot;:300}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H6&gt;&lt;STRONG&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559738&amp;quot;:210,&amp;quot;335559739&amp;quot;:210,&amp;quot;335559740&amp;quot;:300}"&gt;KQL example&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/H6&gt;
&lt;LI-CODE lang="kusto"&gt;// Query 4: FortiGate configuration backup activity 

BehaviorInfo 
| where ActionType == "BehaviorFortiGateBackup" 
| extend ParsedData = parse_json(AdditionalFields) 
| extend 
Device = tostring(ParsedData.ApplianceId), 
User = tostring(ParsedData.Account), 
SourceIP = tostring(ParsedData.LoginSourceIP) 
| project TimeGenerated, Device, User, SourceIP, Description, AdditionalFields 
| order by TimeGenerated &lt;/LI-CODE&gt;
&lt;H3 aria-level="1"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt;Getting started&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559738&amp;quot;:360,&amp;quot;335559739&amp;quot;:160,&amp;quot;335572079&amp;quot;:6,&amp;quot;335572080&amp;quot;:4,&amp;quot;335572081&amp;quot;:12549407,&amp;quot;469789806&amp;quot;:&amp;quot;single&amp;quot;}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;In the Microsoft Defender portal, make sure&amp;nbsp;the&amp;nbsp;&lt;/SPAN&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/sentinel/entity-behaviors-layer#enable-the-ueba-behaviors-layer" target="_blank" rel="noopener"&gt;Behaviors layer is enabled&lt;/A&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;and&amp;nbsp;&lt;/SPAN&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/sentinel/entity-behaviors-layer#supported-data-sources-and-behaviors" target="_blank" rel="noopener"&gt;supported data sources are connected&lt;/A&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559739&amp;quot;:80}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Baselines are built for approximately one week for high-quality anomalies.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559739&amp;quot;:80}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Explore the insights column in the&amp;nbsp;BehaviorInfo&amp;nbsp;table in Advanced Hunting.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559739&amp;quot;:60}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Enabling the new data sources for&amp;nbsp;&lt;/SPAN&gt;&lt;A class="lia-external-url" href="https://review.learn.microsoft.com/en-us/azure/sentinel/enable-entity-behavior-analytics?branch=pr-en-us-8156&amp;amp;tabs=azure" target="_blank" rel="noopener"&gt;UEBA&lt;/A&gt;&lt;SPAN data-contrast="auto"&gt; and &lt;/SPAN&gt;&lt;A class="lia-external-url" href="https://review.learn.microsoft.com/en-us/azure/sentinel/entity-behaviors-layer" target="_blank" rel="noopener"&gt;Behaviors layer:&lt;/A&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559739&amp;quot;:80}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img&gt;UEBA user interface.&lt;/img&gt;
&lt;P&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559685&amp;quot;:720,&amp;quot;335559739&amp;quot;:80}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;We’d love to hear how your team is using these capabilities. Share your feedback to help us improve and expand coverage.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559739&amp;quot;:120}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H3 aria-level="1"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt;Why it matters&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559738&amp;quot;:360,&amp;quot;335559739&amp;quot;:160,&amp;quot;335572079&amp;quot;:6,&amp;quot;335572080&amp;quot;:4,&amp;quot;335572081&amp;quot;:12549407,&amp;quot;469789806&amp;quot;:&amp;quot;single&amp;quot;}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;These updates represent another step in our commitment to making Behaviors and UEBA in Microsoft Sentinel more powerful, more explainable, and more broadly applicable across the environments your security team defends.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559739&amp;quot;:120}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 18 Aug 2026 18:39:45 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-sentinel-blog/smarter-signals-broader-coverage-ueba-anomalies-on-top-of/ba-p/4544384</guid>
      <dc:creator>SaraSamokovlija</dc:creator>
      <dc:date>2026-08-18T18:39:45Z</dc:date>
    </item>
    <item>
      <title>Public Preview: Nested API Support Comes to Microsoft Sentinel CCF</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-sentinel-blog/public-preview-nested-api-support-comes-to-microsoft-sentinel/ba-p/4537026</link>
      <description>&lt;P&gt;Microsoft Sentinel continues to evolve its capabilities to support an expanding ecosystem of partners and data integrations. Recent innovations include the Codeless Connector Framework (CCF) &lt;A href="https://aka.ms/SentinelCCFPush" target="_blank" rel="noopener"&gt;Push feature&lt;/A&gt;, the new &lt;A href="https://techcommunity.microsoft.com/blog/microsoft-security-blog/accelerate-connectors-development-using-ai-agent-in-microsoft-sentinel/4507019" target="_blank" rel="noopener"&gt;Sentinel connector builder agent&lt;/A&gt;, and the CCF expansion to pull data from &lt;A href="https://aka.ms/SentinelAzureBlobStorage" target="_blank" rel="noopener"&gt;Azure Storage Blob&lt;/A&gt;. Each of these reflects our ongoing investment in making it easier for ISVs and developers to build scalable, high-fidelity data connectors that bring telemetry into Sentinel data lake.&lt;/P&gt;
&lt;P&gt;Today, we are excited to announce another advancement in this journey – the public preview for Nested API support in CCF.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;What is Nested API support and Why it Matters&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Nested API support enables a pattern common across many ISV log sources, where a single polling cycle spans multiple dependent API calls: an initial call returns a list of records (such as alert IDs or case references), and one or more follow-up calls fetch the full detail for each record in that list.&lt;/P&gt;
&lt;P&gt;This support allows CCF to accommodate the list-then-detail API pattern as it exists in many API designs, so that partners don’t need to restructure or adapt their endpoints. The result is broader integration coverage that allows partners to connect data sources whose APIs are naturally paginated across multiple calls, and then to ingest complete records into Microsoft Sentinel without building custom middleware.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Support for Nested API in the Microsoft Sentinel VS Code extension&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;This pattern is also available through the Visual Studio Code (VS Code) extension for Microsoft Sentinel connectors. The extension is an agentic tool that helps ISVs and partners build, test, and package data connectors more efficiently, providing a guided experience for bringing data into Microsoft Sentinel.&lt;/P&gt;
&lt;P&gt;As part of its design, the extension enables developers to implement Nested API workflows, allowing connectors to orchestrate multi-step API calls and support APIs that require chained or dependent requests. To learn more, see the &lt;A href="https://techcommunity.microsoft.com/blog/microsoft-security-blog/accelerate-connectors-development-using-ai-agent-in-microsoft-sentinel/4507019" target="_blank" rel="noopener"&gt;Sentinel connector builder agent blog&lt;/A&gt; and the &lt;A href="https://learn.microsoft.com/en-us/azure/sentinel/create-custom-connector-builder-agent" target="_blank" rel="noopener"&gt;Microsoft Learn documentation&lt;/A&gt; for implementation guidance.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Real-world adoption: Early ISV implementations&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;A growing set of solutions are already leveraging Nested API support to enable multi-step data retrieval scenarios. These early implementations demonstrate how partners are using this capability to structure connector workflows around their existing APIs. Some of the early adopters and their solutions are listed below.&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="lia-table-wrapper styles_table-responsive__MW0lN"&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN lia-align-center"&gt;&lt;table border="2" style="width: 100%; height: 706.906px; border-width: 2px;"&gt;&lt;tbody&gt;&lt;tr style="height: 233.651px;"&gt;&lt;td class="lia-align-center" style="height: 233.651px; border-width: 2px;"&gt;&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/td&gt;&lt;td class="lia-align-left lia-vertical-align-top" style="height: 233.651px; border-width: 2px;"&gt;
&lt;P class="lia-align-left"&gt;&amp;nbsp;&lt;SPAN class="lia-text-color-15"&gt;&lt;A class="lia-external-url" href="https://securitystore.microsoft.com/solutions/big-id.azure-sentinel-solution-bigid" target="_blank" rel="noopener"&gt;&lt;STRONG&gt;BigID&lt;/STRONG&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;BR /&gt;
&lt;P class="lia-align-left"&gt;BigID integrates with Microsoft Sentinel to extend data security posture management (DSPM) insights into security operations workflows. The solution brings visibility into sensitive, regulated, and critical data across cloud, SaaS, and on‑premises environments, helping security teams understand data‑related risk and exposure. Built on the Codeless Connector Framework (CCF), the integration can leverage capabilities such as Nested API retrieval to ingest more detailed, context‑rich records through multi‑step API calls, supporting more informed investigation and prioritization.&lt;/P&gt;
&lt;P class="lia-align-left"&gt;&amp;nbsp;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 217.63px;"&gt;&lt;td class="lia-align-center" style="height: 217.63px; border-width: 2px;"&gt;&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/td&gt;&lt;td class="lia-align-left" style="height: 217.63px; border-width: 2px;"&gt;
&lt;P&gt;&lt;SPAN class="lia-text-color-15"&gt;&lt;STRONG&gt;&lt;A class="lia-external-url" href="https://securitystore.microsoft.com/solutions/cisco.cisco-etd-sentinel" target="_blank" rel="noopener"&gt;Cisco Email Threat Defense&lt;/A&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Cisco Email Threat Defense integrates with Microsoft Sentinel to bring email‑borne threat detections into centralized security operations. The connector ingests all information that can be used as security signals, such as phishing and malware indicators, enabling teams to correlate email activity with broader incidents and improve investigation and response. Built on the Codeless Connector Framework (CCF), the integration supports advanced patterns like Nested API retrieval, allowing more detailed event context to be ingested through multi‑step API calls without requiring changes to the underlying data source.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 255.625px;"&gt;&lt;td class="lia-align-center" style="height: 255.625px; border-width: 2px;"&gt;&amp;nbsp;&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/td&gt;&lt;td class="lia-align-left" style="height: 255.625px; border-width: 2px;"&gt;
&lt;P&gt;&lt;SPAN class="lia-text-color-15"&gt;&lt;STRONG&gt;&lt;A class="lia-external-url" href="https://securitystore.microsoft.com/solutions/cyberark.cyberark_audit_sentinel" target="_blank" rel="noopener"&gt;Idira Audit&lt;/A&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Idira® Audit by Palo Alto Networks integrates with Microsoft Sentinel to centralize visibility into privileged identity and access activity. By streaming detailed audit logs—covering system events, user actions, and administrative activity—into Sentinel, security teams can correlate identity‑driven risks with broader security telemetry. Built on the Codeless Connector Framework (CCF), the integration can leverage capabilities such as Nested Application Programming Interface retrieval to ingest more detailed, context‑rich records, supporting faster investigation and more effective response.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 39.7994%" /&gt;&lt;col style="width: 60.1697%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In addition to these early third-party adopters, some Microsoft-built connectors that also leverage this pattern are listed below:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://securitystore.microsoft.com/solutions/azuresentinel.azure-sentinel-solution-crowdstrikefalconep" target="_blank" rel="noopener"&gt;CrowdStrike Falcon Endpoint Protection&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://securitystore.microsoft.com/solutions/azuresentinel.azure-sentinel-solution-rapid7insightvm" target="_blank" rel="noopener"&gt;InsightVM CloudAPI&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://securitystore.microsoft.com/solutions/azuresentinel.azure-sentinel-solution-salesforceservicecloud" target="_blank" rel="noopener"&gt;Salesforce Service Cloud&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Build with Nested APIs in Microsoft Sentinel&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Developers and partners can begin leveraging Nested API support today as part of the Codeless Connector Framework. To get started, review the &lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/sentinel/isv/custom-connector-nested-api-polling" target="_blank" rel="noopener"&gt;&lt;SPAN class="lia-text-color-7"&gt;&lt;SPAN class="lia-text-color-10"&gt;Microsoft Learn documentation&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt; for implementation guidance and explore existing connector configurations that demonstrate this pattern. You can also jump right in and explore building with mock data using our &lt;A class="lia-external-url" href="https://aka.ms/AppAssure_Nested-API-Connector-Lab" target="_blank" rel="noopener"&gt;Nested API Lab&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;As Microsoft Sentinel continues to expand its ecosystem, App Assure works closely with partners to help onboard and optimize integrations. If you are building or extending a connector and would like support, the App Assure team is available to help you get started. Reach out to us via &lt;A href="https://aka.ms/appassurerequest" target="_blank" rel="noopener"&gt;our intake form&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&lt;U style="color: rgb(30, 30, 30);"&gt;&lt;STRONG&gt;Additional Sentinel Feature Public Preview Announcements&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/microsoftsentinelblog/extending-sentinel-data-integration-azure-blob-storage-support-for-ccf-connector/4516896?" target="_blank" rel="noopener"&gt;Extending Sentinel Data Integration: Azure Blob Storage Support for CCF Connectors | Microsoft Community Hub&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A style="font-style: normal; font-weight: 400; background-color: rgb(255, 255, 255);" href="https://techcommunity.microsoft.com/blog/microsoftsentinelblog/public-preview-announcement-empower-real-time-security-with-microsoft-sentinel%E2%80%99s/4483884" target="_blank" rel="noopener"&gt;Public Preview Announcement: Empower Real-Time Security with Microsoft Sentinel’s CCF Push Feature | Microsoft Community Hub&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A style="font-style: normal; font-weight: 400; background-color: rgb(255, 255, 255);" href="https://techcommunity.microsoft.com/blog/microsoft-security-blog/accelerate-connectors-development-using-ai-agent-in-microsoft-sentinel/4507019" target="_blank" rel="noopener"&gt;Accelerate connectors development using AI agent in Microsoft Sentinel | Microsoft Community Hub&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Fri, 07 Aug 2026 17:15:55 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-sentinel-blog/public-preview-nested-api-support-comes-to-microsoft-sentinel/ba-p/4537026</guid>
      <dc:creator>Robert_Moriarty</dc:creator>
      <dc:date>2026-08-07T17:15:55Z</dc:date>
    </item>
    <item>
      <title>Building a CCF Nested API Pull Connector: A Technical Lab Walkthrough</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-sentinel-blog/building-a-ccf-nested-api-pull-connector-a-technical-lab/ba-p/4537027</link>
      <description>&lt;P&gt;This post walks through building a Microsoft Sentinel Codeless Connector Framework (CCF) RestApiPoller connector that uses the nested API polling pattern. The nested pattern exists for a specific reason: many enterprise APIs do not return enriched records from a single call. Instead, they use a two-step model: a list endpoint that returns identifiers, followed by a detail endpoint that accepts one identifier and returns the full record. Without native support for this pattern, building a Sentinel connector for such an API means writing custom orchestration in code. The CCF nested pattern re places that with a JSON configuration that the engine handles directly.&lt;/P&gt;
&lt;P&gt;The lab is built around a mock Contoso Incident API hosted as an Azure Function App. The purpose is to give you a live API you can deploy, inspect, and connect to Sentinel without needing a real product. Once deployed, you will walk through each of the four connector files that make up the integration (the poller config, the DCR, the table schema, and the connector definition) and see exactly how the two-call chain is wired together. By the end of the walkthrough, you will have a working connector ingesting enriched incident records into ContosoIncidents_CL in your Sentinel workspace.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Lab repository:&lt;/STRONG&gt; &lt;A class="lia-external-url" href="https://github.com/Azure/Azure-Sentinel/tree/master/Tools/CCF-Pull-Connector-Nested-Accelerator" target="_blank" rel="noopener"&gt;CCF Pull Connector - Nested API Accelerator&lt;/A&gt;: clone the repository, then deploy the mock API and connector with a single Copilot prompt. See the &lt;A class="lia-external-url" href="https://microsoft-my.sharepoint.com/personal/rmoriarty_microsoft_com/Documents/cxe/docContent/README.md?web=1" target="_blank" rel="noopener"&gt;README&lt;/A&gt; for full instructions. (link to be confirmed on merge)&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Related documentation:&lt;/STRONG&gt; &lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/sentinel/isv/custom-connector-nested-api-polling" target="_blank" rel="noopener"&gt;CCF Nested API Polling Reference&lt;/A&gt;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;H1&gt;Quick Start&lt;/H1&gt;
&lt;P&gt;Already familiar with CCF nested polling?&lt;/P&gt;
&lt;P&gt;Complete these sections:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;A href="#community--1-prerequisites" target="_blank" rel="noopener"&gt;Prerequisites&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="#community--1-deploying_api" target="_blank" rel="noopener"&gt;Deploying the Mock API&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="#community--1-deploying_connector" target="_blank" rel="noopener"&gt;Deploying the Sentinel Connector&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="#community--1-verify_data" target="_blank" rel="noopener"&gt;Enabling and Verifying Data&lt;/A&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;The remaining sections explain how the nested polling configuration, KQL extraction, DCR transform, and connector artifacts work behind the scenes.&lt;/P&gt;
&lt;H1 id="prerequisites"&gt;Prerequisites&lt;/H1&gt;
&lt;P&gt;Before starting, make sure you have the following:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Azure subscription&lt;/STRONG&gt; with Contributor access on a resource group for deploying the Function App, and Microsoft Sentinel Contributor on a Sentinel-enabled workspace for deploying the connector&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Microsoft Sentinel workspace:&lt;/STRONG&gt; an existing Log Analytics workspace with Sentinel enabled (&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/sentinel/quickstart-onboard" target="_blank" rel="noopener"&gt;Quickstart: Onboard Microsoft Sentinel&lt;/A&gt;)&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Azure CLI&lt;/STRONG&gt; (&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/cli/azure/install-azure-cli" target="_blank" rel="noopener"&gt;Install the Azure CLI&lt;/A&gt;) installed and authenticated&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;VS Code&lt;/STRONG&gt; with &lt;A class="lia-external-url" href="https://marketplace.visualstudio.com/items?itemName=GitHub.copilot-chat" target="_blank" rel="noopener"&gt;GitHub Copilot&lt;/A&gt; installed if you want to use the one-prompt agent deployment option&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Lab repository:&lt;/STRONG&gt; clone the &lt;A class="lia-external-url" href="https://github.com/Azure/Azure-Sentinel/tree/master/Tools/CCF-Pull-Connector-Nested-Accelerator" target="_blank" rel="noopener"&gt;CCF Pull Connector - Nested API Accelerator&lt;/A&gt; repository locally&lt;/LI&gt;
&lt;/UL&gt;
&lt;H1&gt;The Lab Environment&lt;/H1&gt;
&lt;P&gt;The mock Contoso Incident API exposes exactly the two-endpoint pattern the nested connector is designed for. The list endpoint returns a set of incident identifiers scoped to a time window. The detail endpoint accepts a single identifier and returns the full enriched record for that incident. There is no way to get the full records in a single call; you have to ask for them one at a time.&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;A call to the list endpoint looks like this:&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;LI-CODE lang="json"&gt;{
  "incidents": [
    { "incidentId": "INC-001" },
    { "incidentId": "INC-002" },
    { "incidentId": "INC-003" },
    { "incidentId": "INC-004" },
    { "incidentId": "INC-005" }
  ]
}&lt;/LI-CODE&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;And a call to the detail endpoint for INC-00 returns:&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;LI-CODE lang="json"&gt;{
"incidentId": "INC-001",
"title": "Suspicious login attempt",
"severity": "High",
"status": "Active",
"affectedUser": "alice@contoso.com",
"sourceIp": "198.51.100.42",
"createdAt": "2026-05-30T14:22:00Z"
}&lt;/LI-CODE&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;So for every polling cycle the connector needs to call the list endpoint once, extract the five incidentId values, and then call the detail endpoint five times. That fan-out logic (taking a value from the first response and injecting it into the URL for each subsequent call) is what the nested step configuration handles. The repo contains everything needed for the walkthrough: an ARM template to deploy the Function App, the four connector artifact files, and a solution package that deploys the connector into Sentinel.&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;H1 id="deploying_api"&gt;Deploying the Mock API&lt;/H1&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;The quickest way to deploy is to open Copilot Chat in Agent mode in VS Code and paste:&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Load and follow the deployment instructions at Tools/CCF-Pull-Connector-Nested-Accelerator/agent-instructions.md. Let's deploy a CCF nested API connector.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;The agent reads the deployment instructions, collects the values it needs, generates names for anything you do not provide, and deploys end-to-end. The only manual action in the entire flow is clicking Connect in the Sentinel portal once the ARM template has been deployed.&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;If you prefer to deploy manually, the steps are straightforward. Create a resource group, deploy the Function App using the included ARM template, zip the MockApi/ folder and push the code, then retrieve the Function App API key:&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;LI-CODE lang="powershell"&gt;az group create --name contoso-mock-api-rg --location eastus

az deployment group create `
  --resource-group contoso-mock-api-rg `
  --template-file "Tools/CCF-Pull-Connector-Nested-Accelerator/MockApi/azuredeploy_MockApi.json" `
  --parameters FunctionAppName=ContosoMockApi Location=eastus

$outputs = az deployment group show `
  --resource-group contoso-mock-api-rg --name azuredeploy_MockApi `
  --query properties.outputs -o json | ConvertFrom-Json

$functionAppName = $outputs.functionAppName.value
$mockApiBaseUrl  = $outputs.mockApiBaseUrl.value

Compress-Archive -Path "Tools/CCF-Pull-Connector-Nested-Accelerator/MockApi/*" -DestinationPath contosoapi.zip -Force
az functionapp deployment source config-zip --name $functionAppName --resource-group contoso-mock-api-rg --src contosoapi.zip

$apiKey = (az functionapp keys list --name $functionAppName --resource-group contoso-mock-api-rg --query functionKeys.default -o tsv).Trim()&lt;/LI-CODE&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;Once deployed, verify both endpoints are responding before moving on:&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;LI-CODE lang="powershell"&gt;Invoke-RestMethod "$mockApiBaseUrl/incidents" -Headers @{"x-functions-key" = $apiKey}

Invoke-RestMethod "$mockApiBaseUrl/incidents/INC-001/details" -Headers @{"x-functions-key" = $apiKey}&lt;/LI-CODE&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;H2 data-line="108"&gt;How the Nested Step Pattern Works&lt;/H2&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;The entire two-call chain lives inside ContosoIncidents_PollerConfig.json. Here is the full config:&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;LI-CODE lang="json"&gt;{
  "type": "Microsoft.SecurityInsights/dataConnectors",
  "kind": "RestApiPoller",
  "properties": {
    "connectorDefinitionName": "ContosoIncidentsConnector",
    "dataType": "ContosoIncidents_CL",
    "dcrConfig": {
      "streamName": "Custom-ContosoIncidents_CL",
      "dataCollectionEndpoint": "{{dataCollectionEndpoint}}",
      "dataCollectionRuleImmutableId": "{{dataCollectionRuleImmutableId}}"
    },
    "auth": {
      "type": "APIKey",
      "ApiKey": "{{ApiKey}}",
      "ApiKeyName": "x-functions-key"
    },
    "request": {
      "apiEndpoint": "{{mockApiBaseUrl}}/incidents",
      "httpMethod": "GET",
      "queryWindowInMin": 5,
      "queryTimeFormat": "yyyy-MM-ddTHH:mm:ssZ",
      "startTimeAttributeName": "startTime",
      "endTimeAttributeName": "endTime",
      "headers": { "Accept": "application/json" }
    },
    "response": {
      "eventsJsonPaths": [ "$.incidents" ],
      "format": "json"
    },
    "stepInfo": {
      "stepType": "Nested",
      "nextSteps": [
        {
          "stepId": "fetchIncidentDetails",
          "stepPlaceholdersParsingKql": "source | project res = parse_json(data) | project incidentId = res.incidentId"
        }
      ]
    },
    "stepCollectorConfigs": {
      "fetchIncidentDetails": {
        "shouldJoinNestedData": false,
        "request": {
          "httpMethod": "GET",
          "apiEndpoint": "{{mockApiBaseUrl}}/incidents/$incidentId$/details",
          "headers": { "Accept": "application/json" }
        },
        "response": {
          "eventsJsonPaths": [ "$" ],
          "format": "json"
        }
      }
    }
  }
}&lt;/LI-CODE&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;The request block at the top defines the parent call, the list endpoint. On every polling cycle the CCF engine calls GET /incidents with startTime and endTime query parameters derived from queryWindowInMin: 5. The response.eventsJsonPaths: ["$.incidents"] tells the engine where to find the data in the response; it walks to the incidents array and treats each element as a separate row.&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;Those rows do not go to the DCR. Instead, because stepInfo.stepType is set to "Nested", the engine passes each row to the stepPlaceholdersParsingKql expression before doing anything else.&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;H1&gt;The KQL That Links the Two Calls&lt;/H1&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;This is the most important line in the entire connector:&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;source | project res = parse_json(data) | project incidentId = res.incidentId&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;Each row from the list response arrives as raw JSON in a column called data. The parse_json(data) call converts that string into a dynamic object so individual fields can be addressed. The final project extracts incidentId and gives it a column name. That column name, incidentId, is not arbitrary. It must exactly match the $incidentId$ token in the child endpoint URL. The engine reads the output of this expression, takes every value in the incidentId column, and substitutes it into the URL for the next step.&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;For the Contoso API this produces five values (INC-001 through INC-005), and the engine issues five parallel GET requests:&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;LI-CODE lang="json"&gt;GET /api/incidents/INC-001/details
GET /api/incidents/INC-002/details
GET /api/incidents/INC-003/details
GET /api/incidents/INC-004/details
GET /api/incidents/INC-005/details&lt;/LI-CODE&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;Each of those calls returns a full incident record. The eventsJsonPaths: ["$"] in the child response block captures the entire response body as a single event. Those five events are what get sent to the DCR stream, not the five lightweight rows from the list call.&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;shouldJoinNestedData&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;The shouldJoinNestedData: false setting on the child step tells the engine not to merge the parent row's fields into the child row before sending to the DCR. In this case the detail response already contains incidentId and all other required fields, so there is nothing to carry forward from the parent. If your list endpoint returns fields that are not present in the detail response (a category, a tenant identifier, a product namespace), setting this to true will merge them in automatically.&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;H1&gt;The DCR and the KQL Transform&lt;/H1&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;The Data Collection Rule handles what happens to each detail response once it arrives at the Data Collection Endpoint. The streamDeclarations block defines the inbound schema (the shape of the data the CCF engine sends), and the transformKql maps it to the destination table columns.&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;The transform for this connector is:&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;LI-CODE lang=""&gt;source
| extend TimeGenerated = now()
| project
    TimeGenerated,
    IncidentId   = ['incidentId'],
    Title        = ['title'],
    Severity     = ['severity'],
    Status       = ['status'],
    AffectedUser = ['affectedUser'],
    SourceIp     = ['sourceIp']&lt;/LI-CODE&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;The extend TimeGenerated = now() sets the ingestion timestamp. The mock API returns a createdAt field on every detail record, but it is not used here; TimeGenerated reflects when the record was received by the pipeline rather than when the incident was created on the source system. The project operators rename each snake_case field from the API response to the PascalCase column names defined in the table schema.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;The column names produced by transformKql must exactly match the column names in ContosoIncidents_Table.json. A mismatch causes rows to be silently dropped at ingestion with no error surfaced to the connector status page, which makes it one of the more frustrating issues to debug after the fact.&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;H1&gt;The Table Schema and Connector Definition&lt;/H1&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;Before looking at the connector definition, it helps to understand what the table object itself is. ContosoIncidents_Table.json deploys a Microsoft.OperationalInsights/workspaces/tables resource, the same resource type that creates any custom log table in your Log Analytics workspace. Its schema block is an array of column definitions, each with a name, a type, and a description:&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;LI-CODE lang="json"&gt;"schema": {
  "name": "ContosoIncidents_CL",
  "columns": [
    { "name": "TimeGenerated", "type": "datetime", "description": "Ingestion timestamp." },
    { "name": "IncidentId", "type": "string", "description": "Unique identifier of the incident (e.g. INC-001)." },
    { "name": "Severity", "type": "string", "description": "Incident severity: Critical, High, Medium, or Low." }
  ]
}&lt;/LI-CODE&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;This is the definition that shows up when you query the table. Each column name becomes a field you can reference directly in KQL, and each column type determines how that field behaves when you filter or aggregate on it. TimeGenerated being a datetime is what lets you sort or filter with operators like ago() and between.&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;The table schema in ContosoIncidents_Table.json defines ContosoIncidents_CL with seven columns: TimeGenerated, IncidentId, Title, Severity, Status, AffectedUser, and SourceIp.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;The connector definition in ContosoIncidents_ConnectorDefinition.json drives the portal UI. It defines the connector page title and description, the ingestion activity graph, the sample KQL queries that are surfaced to analysts directly from the connector page, and the connectivity check query that determines whether the connector shows as Connected or Disconnected in the Data Connectors blade. The two Textbox inputs in the instructionSteps block (mockApiBaseUrl and ApiKey) are what feed the {{template}} variables in the poller config when a user clicks Connect. Getting those input names right is what makes the credential handoff from the portal to the connector work without manual intervention.&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;H1 id="deploying_connector"&gt;Deploying the Sentinel Connector&lt;/H1&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;With the mock API running, deploy the Sentinel connector solution using the included mainTemplate.json. The template creates the Data Collection Endpoint, the ContosoIncidents_CL table, the DCR, the poller config, and the connector definition in the correct dependency order.&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;If you would rather not use the CLI, you can deploy the same template through the Azure portal. Open the &lt;A class="lia-external-url" href="https://portal.azure.com/#create/Microsoft.Template" target="_blank" rel="noopener"&gt;Custom deployment&lt;/A&gt; blade, choose "Build your own template in the editor," and paste in the contents of mainTemplate.json, then fill in the parameters (workspace, workspace-location, and so on) through the generated form instead of a parameters file. See &lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/azure-resource-manager/templates/quickstart-create-templates-use-the-portal" target="_blank" rel="noopener"&gt;Deploy template - Azure portal - Azure Resource Manager&lt;/A&gt; for the full walkthrough. The CLI steps below are the faster path if you already have the CLI authenticated, but the portal works just as well.&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;The workspace-location parameter requires special handling because the hyphen in the parameter name causes issues when passed inline to the Azure CLI. Write a parameters file first, then reference it with @:&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;LI-CODE lang="powershell"&gt;@{
  '$schema'      = 'https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#'
  contentVersion = '1.0.0.0'
  parameters     = @{
    workspace            = @{ value = '&amp;lt;your-workspace-name&amp;gt;' }
    'workspace-location' = @{ value = '&amp;lt;region&amp;gt;' }
  }
} | ConvertTo-Json -Depth 5 | Out-File deploy-params.json -Encoding utf8

az deployment group create `
  --resource-group &amp;lt;sentinel-workspace-rg&amp;gt; `
  --name mainTemplate `
  --template-file "Tools/CCF-Pull-Connector-Nested-Accelerator/ContosoIncidents/Package/mainTemplate.json" `
  --parameters "@deploy-params.json" `
  --output table&amp;lt;/sentinel-workspace-rg&amp;gt;&amp;lt;/region&amp;gt;&amp;lt;/your-workspace-name&amp;gt;&lt;/LI-CODE&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;The workspace-location value must exactly match the region string returned by az monitor log-analytics workspace show --query location for your workspace.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;H1 id="verify_data"&gt;Enabling and Verifying Data&lt;/H1&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;The ARM deployment registers the connector definition but does not start data collection. To start polling you need to click Connect once in the portal. Navigate to your Sentinel workspace via &lt;A class="lia-external-url" href="https://security.microsoft.com/" target="_blank" rel="noopener"&gt;security.microsoft.com&lt;/A&gt;, go to Data Connectors, and find Contoso Incidents (CCF Nested API Accelerator). If it is not immediately visible, click Refresh and wait two to three minutes for the deployment to propagate.&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;Open the connector page and under STEP 2 - Connect to the Contoso Mock API, enter the mockApiBaseUrl from the deployment output and the ApiKey retrieved earlier, then click Connect. The CCF engine begins polling immediately.&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;Allow five to ten minutes for the first poll cycle to complete, then confirm data is arriving:&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;LI-CODE lang=""&gt;ContosoIncidents_CL
| sort by TimeGenerated desc
| take 10&lt;/LI-CODE&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;You should see five rows, one per mock incident, with all columns populated. From there you can use the sample queries built into the connector page to start exploring the data:&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;LI-CODE lang=""&gt;// High and Critical incidents
ContosoIncidents_CL
| where Severity in ('Critical', 'High')
| sort by TimeGenerated desc

// Active incidents with source IP
ContosoIncidents_CL
| where Status == 'Active'
| project TimeGenerated, IncidentId, Title, Severity, AffectedUser, SourceIp&lt;/LI-CODE&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;H1&gt;Adapting This Pattern to Your Own API&lt;/H1&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;The nested pattern is reusable for any two-tier REST API. The changes needed to adapt the accelerator are mechanical: replace the parent endpoint and update eventsJsonPaths to point to your identifier array, rewrite the stepPlaceholdersParsingKql to extract your identifier field (the column name in the final project must match the $token$ in your child URL), replace the child endpoint URL, and update the DCR stream declaration, transform, and table schema to match your detail response fields.&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;The shouldJoinNestedData flag is worth thinking through for your specific case. If your list endpoint returns context that is not replicated in the detail response (a tenant ID, a data source label, a parent category), set it to true and those fields will be merged into every child row automatically before it reaches the DCR.&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;H1&gt;Next Steps&lt;/H1&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Review the CCF Nested API Polling Reference&lt;/STRONG&gt; for the full specification of stepInfo, stepCollectorConfigs, shouldJoinNestedData, and multi-level nesting: &lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/sentinel/isv/custom-connector-nested-api-polling" target="_blank" rel="noopener"&gt;CCF Nested API Polling Reference&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Review the codeless connector documentation&lt;/STRONG&gt; for the full range of supported auth types, pagination patterns, and incremental pull strategies: &lt;A class="lia-external-url" href="https://learn.microsoft.com/azure/sentinel/create-codeless-connector" target="_blank" rel="noopener"&gt;Create a codeless connector&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Explore the Microsoft Sentinel content hub &lt;/STRONG&gt;to see how published connectors are structured and what the certification requirements look like for production submissions.&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;H1&gt;Conclusion&lt;/H1&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;Following these steps, you saw how a CCF nested API connector works at the configuration level: how the stepPlaceholdersParsingKql expression extracts identifier values from the list response, how those values are substituted into the child endpoint URL to produce per-record detail calls, and how the DCR transform maps the raw API fields into a clean Sentinel table. The pattern is deliberately simple to adapt: the KQL expression and the $token$ in the URL are the only two moving parts that link the two calls together.&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;
&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;If you are an ISV building a Sentinel integration and want hands-on support, Microsoft's App Assure program is available to help with connector development, validation, and readiness for production. You can get started by reaching out through &lt;A class="lia-external-url" href="https://aka.ms/appassurerequest" target="_blank" rel="noopener"&gt;our intake form&lt;/A&gt;.&lt;/P&gt;</description>
      <pubDate>Wed, 05 Aug 2026 16:00:00 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-sentinel-blog/building-a-ccf-nested-api-pull-connector-a-technical-lab/ba-p/4537027</guid>
      <dc:creator>Robert_Moriarty</dc:creator>
      <dc:date>2026-08-05T16:00:00Z</dc:date>
    </item>
    <item>
      <title>What’s new in Microsoft Sentinel: July 2026</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-sentinel-blog/what-s-new-in-microsoft-sentinel-july-2026/ba-p/4542130</link>
      <description>&lt;P&gt;Welcome back to What's new in Microsoft Sentinel. In July, Sentinel adds custom detections support in Sentinel repositories, so you can manage detections as code alongside your analytics rules, playbooks, parsers, and workbooks, authoring in GitHub and deploying through the CI/CD pipelines you already use. In Sentinel data lake, table insights brings table-level observability into the Microsoft Defender portal, helping you track ingestion volume, spot week-over-week changes, and catch connectors that have gone silent, all without running a single KQL query. Connector coverage also expands with GitHub Audit logs, Agari, and Airlock Digital, bringing more of the signals that matter to you into one place.&lt;/P&gt;
&lt;P&gt;Read on for the details, and if you're joining us at Black Hat USA 2026, don't miss the keynote from Agentic Security CVP David Weston and other Microsoft Security activities at this event. Explore our resources at the end to go deeper.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Sentinel innovations:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="#community--1-siem" target="_blank" rel="noopener"&gt;Sentinel SIEM&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="#community--1-datalake" target="_blank" rel="noopener"&gt;Sentinel data lake&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;&lt;STRONG&gt;Sentinel SIEM&lt;/STRONG&gt;&lt;/H2&gt;
&lt;H3&gt;&lt;STRONG&gt;Custom detections support in Sentinel repositories [Public Preview]&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P&gt;Custom detections can be managed as code through Sentinel repositories, alongside analytics rules, playbooks, parsers, and workbooks, completing the detections-as-code workflow across the full Sentinel portfolio. Teams can author detections in GitHub, review through pull requests, and deploy via existing CI/CD pipelines or the Microsoft Security Bicep extension. &lt;A href="https://learn.microsoft.com/en-us/azure/sentinel/ci-cd-custom-content#deploy-custom-detection-rules-as-code-preview" target="_blank" rel="noopener"&gt;Learn how to manage custom content with repository connections&lt;/A&gt;.&lt;/P&gt;
&lt;H3&gt;&lt;STRONG&gt;Behind the Build&lt;/STRONG&gt;&lt;STRONG&gt; with Gigamon: Enriching Sentinel with network-derived telemetry&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P&gt;Learn how Gigamon's integration with Sentinel brings network-derived telemetry into your security investigations, correlated with the identity, endpoint, and cloud signals already in your workspace. By adding this runtime context, you can trace suspicious activity across environments and investigate threats that span traditionally siloed domains, with faster and more accurate investigations, higher-quality signal, and clearer visibility into encrypted and hybrid cloud traffic that logs alone often miss. &lt;A href="https://aka.ms/AppAssure_BehindtheBuild_Gigamon" target="_blank" rel="noopener"&gt;Read the blog&lt;/A&gt; to explore the integration and what it means for your security operations.&lt;/P&gt;
&lt;H2&gt;&lt;STRONG&gt;Sentinel data lake&lt;/STRONG&gt;&lt;/H2&gt;
&lt;H3&gt;&lt;STRONG&gt;Table insights [Public Preview]&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P&gt;Table insights is a built-in monitoring view on the tables page in the Microsoft Defender portal that gives you table-level observability for your Sentinel workspace without running KQL queries or opening a separate workbook.&lt;/P&gt;
&lt;P&gt;Table insights surfaces the signals you rely on most:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;📊 Ingestion volume by tier – compare analytics versus data lake&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;📉 Day-over-week ingestion fluctuations – spot drops or spikes against the same day last week&lt;/LI&gt;
&lt;LI&gt;🔝 Top 5 tables by daily ingestion volume – identify your biggest cost drivers at a glance&lt;/LI&gt;
&lt;LI&gt;🕐 Last data received – catch connectors that stopped sending data&lt;/LI&gt;
&lt;LI&gt;💰 Estimated daily ingestion cost – per-table cost to inform tier and retention decisions&lt;/LI&gt;
&lt;LI&gt;⚠️ Volume anomaly – signed percentage change versus baseline to flag unusual behavior early&lt;/LI&gt;
&lt;/UL&gt;
&lt;img&gt;
&lt;P&gt;Figure 1: View all table insights and investigate your table behavior with Sentinel in the Defender portal.&lt;/P&gt;
&lt;/img&gt;
&lt;P&gt;Together, these signals help you spot collection failures early, so you can act before they turn into bigger problems.&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/blog/microsoft-security-blog/understand-your-sentinel-tables-at-a-glance-monitor-with-table-insights/4530738" target="_blank" rel="noopener"&gt;Learn more.&lt;/A&gt;&lt;/P&gt;
&lt;H3&gt;&lt;STRONG&gt;Connectors [Public Preview]&lt;/STRONG&gt;&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;H4&gt;&lt;STRONG&gt;GitHub Audit logs (via Azure Storage Blob)&lt;/STRONG&gt;&lt;/H4&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;The &lt;A href="https://learn.microsoft.com/en-us/azure/sentinel/data-connectors-reference#github-enterprise-audit-log-via-azure-storage" target="_blank" rel="noopener"&gt;GitHub Audit logs connector&lt;/A&gt; ingests GitHub Enterprise audit logs into Sentinel from Azure Blob Storage with near real-time latency, so you can view this data in workbooks, create custom alerts, and strengthen your investigations. This requires Audit log streaming to be set up on GitHub for an Enterprise. &lt;A href="https://docs.github.com/en/enterprise-cloud@latest/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/streaming-the-audit-log-for-your-enterprise" target="_blank" rel="noopener"&gt;Learn how to stream audit logs.&lt;/A&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;H4&gt;&lt;STRONG&gt;Agari&lt;/STRONG&gt;&lt;/H4&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;The &lt;A href="https://learn.microsoft.com/en-us/azure/sentinel/data-connectors-reference#fortra-agari-data-connector-via-codeless-connector-framework" target="_blank" rel="noopener"&gt;Agari Data connector&lt;/A&gt; allows ingesting logs from Agari APIs into Sentinel. This connector integrates with Agari Brand Protection (BP) and Phishing Defense (APD). It supports Data Collection Rules-based ingestion time transformations for efficient query execution.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;H4&gt;&lt;STRONG&gt;Airlock Digital&lt;/STRONG&gt;&lt;/H4&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;Ingests &lt;A href="https://learn.microsoft.com/en-us/azure/sentinel/data-connectors-reference#airlock-digital-connector-via-codeless-connector-framework" target="_blank" rel="noopener"&gt;Airlock Digital&lt;/A&gt; application control and execution events to strengthen endpoint threat detection and response.&lt;/P&gt;
&lt;H2&gt;&lt;STRONG&gt;Additional resources&lt;/STRONG&gt;&lt;/H2&gt;
&lt;H4&gt;&lt;STRONG&gt;Blogs and documentation: &lt;/STRONG&gt;&lt;/H4&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/sentinel/manage-table-tiers-retention" target="_blank" rel="noopener"&gt;Configure table settings in Sentinel&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/sentinel/manage-data-overview" target="_blank" rel="noopener"&gt;Manage data tiers and retention in Sentinel&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/SentinelCICD/RepositoriesSampleContent" target="_blank" rel="noopener"&gt;Sentinel CI/CD repositories sample&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H4&gt;&lt;STRONG&gt;Upcoming events: &lt;/STRONG&gt;&lt;/H4&gt;
&lt;H4&gt;&lt;STRONG&gt;Featured event: Aug 1–6, Black Hat USA 2026 (Mandalay Bay, Las Vegas)&lt;/STRONG&gt;&lt;/H4&gt;
&lt;UL&gt;
&lt;LI&gt;Keynote with Agentic Security CVP David Weston&lt;BR /&gt;&lt;A href="https://blackhat.com/us-26/features/schedule/index.html#keynote-the-end-of-rare-defending-when-offense-is-cheap-56597" target="_blank" rel="noopener"&gt;The end of rare: Defending when offense is cheap&lt;/A&gt;&lt;BR /&gt;Wednesday, Aug 5 | 9:15 AM – 10 AM&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;
&lt;LI&gt;Main stage with Microsoft Security CVP Aarti Borkar and Microsoft Security Research VP Tanmay Ganacharya&lt;BR /&gt;&lt;A href="https://blackhat.com/us-26/features/schedule/?day=wednesday#poisoned-at-the-source-inside-microsoft-threat-intelligences-hunt-for-supply-chain-attacks-56692" target="_blank" rel="noopener"&gt;Poisoned at the source: Inside Microsoft Threat Intelligence's hunt for supply chain attacks&lt;/A&gt;&lt;BR /&gt;Wednesday, Aug 5 | 2:30 PM – 3 PM&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;
&lt;LI&gt;Main stage with Customer Success GM Wes Malaby&lt;BR /&gt;&lt;A href="https://blackhat.com/us-26/sponsored-sessions/schedule/index.html?format%5b%5d=20-minute-sponsored-session#mind-the-gap-turning-threat-intelligence-into-decisive-action-with-expert-led-defense-56120" target="_blank" rel="noopener"&gt;Mind the gap: Turning threat intelligence into decisive action with expert-led defense&lt;/A&gt;&lt;BR /&gt;Wednesday, Aug 5 | 11:25 AM – 11:45 AM&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;
&lt;LI&gt;Mandalay Bay K with Principal Product Manager Naadia Sayed&lt;BR /&gt;&lt;A href="https://blackhat.com/us-26/sponsored-sessions/schedule/?#agentic-security-whats-next-56138" target="_blank" rel="noopener"&gt;Agentic security: What's next&lt;/A&gt;&lt;BR /&gt;Wednesday, Aug 5 | 11:15 AM – 12 PM&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;
&lt;LI&gt;Microsoft Security Black Hat USA 2026 VIP mixer hosted by Microsoft Security CVP Aarti Borkar&lt;BR /&gt;&lt;A href="https://www.swingers.club/us/locations/las-vegas" target="_blank" rel="noopener"&gt;Swingers&lt;/A&gt; at Mandalay Bay Resort – &lt;A href="https://microsoftsecurityevents.eventbuilder.com/events/11f160f889b3bd90bd56610069c622b2" target="_blank" rel="noopener"&gt;Register here&lt;/A&gt;&lt;BR /&gt;Wednesday, Aug 5 | 6 PM – 9 PM&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;
&lt;LI&gt;Microsoft booth #2144&lt;STRONG&gt; &lt;/STRONG&gt;with live sessions, AMAs, and hands-on demos of our latest security innovations&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;
&lt;LI&gt;Learn more &lt;A href="https://www.microsoft.com/en-us/security/blog/2026/07/17/microsoft-at-black-hat-usa-2026-defending-trust-in-the-age-of-ai-and-supply-chain-attacks/" target="_blank" rel="noopener"&gt;in our Black Hat 2026 blog&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H4&gt;&lt;STRONG&gt;Upcoming webinars:&lt;/STRONG&gt;&lt;/H4&gt;
&lt;UL&gt;
&lt;LI&gt;Aug 6: &lt;A href="https://msevents.microsoft.com/event?id=3335618655" target="_blank" rel="noopener"&gt;Security Immersion Event: Into the Breach&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Aug 13–14: &lt;A href="https://msevents.microsoft.com/event?id=1250655938" target="_blank" rel="noopener"&gt;Microsoft Virtual Training Day: Predict and Defend Against Cybersecurity Threats&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Aug 19: &lt;A href="https://msevents.microsoft.com/event?id=703635750" target="_blank" rel="noopener"&gt;Microsoft Security Immersion Event: Shadow Hunter&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Aug 20: &lt;A href="https://msevents.microsoft.com/event?id=1005232315" target="_blank" rel="noopener"&gt;Microsoft Security Immersion Event: Agent Hackathon&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Aug 25: &lt;A href="https://msevents.microsoft.com/event?id=4107074912" target="_blank" rel="noopener"&gt;Tech Brief: Modernize security operations with a unified platform&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;&lt;STRONG&gt;Stay connected&lt;/STRONG&gt;&lt;/H2&gt;
&lt;P&gt;Check back each month for the latest innovations, updates, and events to ensure you’re getting the most out of &lt;A href="https://aka.ms/microsoftsentinel" target="_blank" rel="noopener"&gt;Microsoft Sentinel&lt;/A&gt;. We’ll see you in the next edition!&lt;/P&gt;</description>
      <pubDate>Fri, 31 Jul 2026 16:00:00 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-sentinel-blog/what-s-new-in-microsoft-sentinel-july-2026/ba-p/4542130</guid>
      <dc:creator>vkokkengada</dc:creator>
      <dc:date>2026-07-31T16:00:00Z</dc:date>
    </item>
    <item>
      <title>Windows Forwarded Events connector with Windows Security Events NRT rules</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-sentinel/windows-forwarded-events-connector-with-windows-security-events/m-p/4540749#M12958</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;We are testing Microsoft Sentinel using the official Windows Forwarded Events connector.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Environment&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;- Windows Server WEC&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;- Windows Event Forwarding&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;- Azure Arc&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;- Azure Monitor Agent&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;- Windows Forwarded Events connector&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Everything works correctly.&lt;/P&gt;&lt;P&gt;Forwarded security events are successfully ingested into the WindowsEvent table.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For example:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;- Event ID 1102&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;- Event ID 4732&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;However, the built-in Windows Security Events NRT Analytics Rules (Content Hub version 1.0.1) query only the SecurityEvent table.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Example:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;NRT Security Event log cleared&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="lia-text-color-8"&gt;SecurityEvent&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="lia-text-color-8"&gt;| where EventID == 1102&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;As a result, forwarded events received through the Windows Forwarded Events connector never trigger these NRT rules.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Question:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Is this expected behavior?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Should Windows Forwarded Events customers use a different set of analytics rules (ASIM or other templates), or should these built-in NRT rules also support WindowsEvent?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you.&lt;/P&gt;</description>
      <pubDate>Sun, 26 Jul 2026 00:07:11 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-sentinel/windows-forwarded-events-connector-with-windows-security-events/m-p/4540749#M12958</guid>
      <dc:creator>enescalban</dc:creator>
      <dc:date>2026-07-26T00:07:11Z</dc:date>
    </item>
    <item>
      <title>Hunting AI Agent Configuration Drift with Microsoft Sentinel</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-sentinel/hunting-ai-agent-configuration-drift-with-microsoft-sentinel/m-p/4538962#M12956</link>
      <description>&lt;P&gt;&lt;EM&gt;Four KQL patterns for detecting instruction changes, new MCP servers, ownership changes, and organization-wide sharing&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;I recently authored and contributed four new Microsoft Sentinel hunting queries for detecting security-relevant configuration drift in AI agents. They have been reviewed, approved, and merged into Microsoft's public Azure-Sentinel repository.&lt;/P&gt;&lt;P&gt;I built the queries around four changes that can materially affect an agent's behavior, access, or exposure: instructions being modified, MCP servers being connected, owners being added, and sharing being expanded to the entire organization. Each modification may be legitimate, but each deserves enough context for a security team to verify that it was expected and authorized.&lt;/P&gt;&lt;P&gt;For a security operations team, the difficult question is often not&amp;nbsp;&lt;EM&gt;what does this agent look like now?&lt;/EM&gt;&amp;nbsp;It is&amp;nbsp;&lt;EM&gt;what changed since the last known state?&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;Microsoft Sentinel's&amp;nbsp;AgentsInfo&amp;nbsp;table provides inventory-style snapshots of AI agents and their associated configuration. That makes it useful for more than posture reporting. By comparing a recent snapshot with an earlier baseline, we can hunt for configuration drift that deserves investigation.&lt;/P&gt;&lt;P&gt;This post walks through four practical hunting scenarios:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Instructions changed on a previously published agent&lt;/LI&gt;&lt;LI&gt;A newly observed MCP server on an existing agent&lt;/LI&gt;&lt;LI&gt;An owner added to an MCP-enabled agent&lt;/LI&gt;&lt;LI&gt;Sharing expanded from a restricted scope to the entire organization&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;The complete hunting queries are available in Microsoft's public&amp;nbsp;&lt;A href="https://github.com/Azure/Azure-Sentinel/tree/master/Hunting%20Queries/AI%20Agents" target="_blank"&gt;Azure-Sentinel repository&lt;/A&gt;. The focus here is the detection design behind them, the KQL patterns they share, and the investigation questions they help answer.&lt;/P&gt;&lt;H2&gt;What I contributed&lt;/H2&gt;&lt;P&gt;I wrote the four standalone hunting queries discussed in this article and submitted them to&amp;nbsp;Azure/Azure-Sentinel&amp;nbsp;in&amp;nbsp;&lt;A href="https://github.com/Azure/Azure-Sentinel/pull/14702" target="_blank"&gt;pull request #14702&lt;/A&gt;:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;STRONG&gt;AI Agents - Instructions changed on previously published agent&lt;/STRONG&gt;&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;AI Agents - Newly observed MCP server on existing agent&lt;/STRONG&gt;&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;AI Agents - Owner added to MCP-enabled agent&lt;/STRONG&gt;&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;AI Agents - Sharing expanded to organization-wide&lt;/STRONG&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;The contribution went through several rounds of technical review. Across six commits, I aligned the queries with the unified&amp;nbsp;AgentsInfo&amp;nbsp;schema, added schema-tolerant&amp;nbsp;IdentityInfo&amp;nbsp;enrichment, improved entity mappings, bounded the identity lookback, expanded all owner values, and kept the ATT&amp;amp;CK mappings limited to scenarios where a precise technique could be defended. Repository collaborator&amp;nbsp;v-atulyadav&amp;nbsp;approved the final revision, and the four queries were merged into&amp;nbsp;master&amp;nbsp;on July 20, 2026.&lt;/P&gt;&lt;P&gt;This article explains the detection logic and engineering decisions behind that contribution rather than simply reproducing the final YAML files.&lt;/P&gt;&lt;H2&gt;Why current-state queries are not enough&lt;/H2&gt;&lt;P&gt;A current-state query can answer questions such as:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Which agents are published?&lt;/LI&gt;&lt;LI&gt;Which agents have MCP servers configured?&lt;/LI&gt;&lt;LI&gt;Which agents are shared with the organization?&lt;/LI&gt;&lt;LI&gt;Who owns a particular agent?&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;Those are important posture questions, but they do not tell us whether the state is new. An agent with an MCP server might have been reviewed and approved months ago. The same MCP server appearing for the first time today is a different security signal.&lt;/P&gt;&lt;P&gt;Configuration-drift hunting adds the missing time dimension. Instead of treating a risky-looking property as an event, it compares two states of the same agent and reports only meaningful transitions.&lt;/P&gt;&lt;H2&gt;The common detection pattern&lt;/H2&gt;&lt;P&gt;I used the same basic time model across all four hunts:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="kusto"&gt;let lookback = 14d;
let recent = 2d;&lt;/LI-CODE&gt;&lt;P&gt;The latest snapshot observed during the last two days becomes the current state. The latest snapshot from the preceding portion of the 14-day lookback becomes the baseline.&lt;/P&gt;&lt;P&gt;Conceptually, the comparison looks like this:&lt;/P&gt;&lt;LI-CODE lang="kusto"&gt;let CurrentState =
    AgentsInfo
    | where Timestamp &amp;gt; ago(recent)
    | summarize arg_max(Timestamp, *) by AgentId
    | where LifecycleStatus != "Deleted";

let BaselineState =
    AgentsInfo
    | where Timestamp between (ago(lookback) .. ago(recent))
    | where LifecycleStatus != "Deleted"
    | summarize arg_max(Timestamp, *) by AgentId;

CurrentState
| join kind=inner BaselineState on AgentId&lt;/LI-CODE&gt;&lt;P&gt;Several details matter here:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;arg_max(Timestamp, *) by AgentId&amp;nbsp;selects the latest available state for each agent in the relevant time range.&lt;/LI&gt;&lt;LI&gt;The inner join restricts results to agents that exist in both periods. A newly created agent is therefore not automatically treated as configuration drift on an existing agent.&lt;/LI&gt;&lt;LI&gt;Deleted lifecycle snapshots are excluded so that a deletion record does not become the effective baseline or current configuration.&lt;/LI&gt;&lt;LI&gt;The two-day current window is operationally significant. To retain coverage, these hunts should run within two days of a change.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;The 14-day and two-day values are practical defaults, not universal constants. Environments with different ingestion cadence or retention requirements can adjust them, but the current and baseline windows must remain non-overlapping.&lt;/P&gt;&lt;H2&gt;Scenario 1: Instructions changed on a published agent&lt;/H2&gt;&lt;P&gt;An agent's instructions define its default behavior, persona, and operating boundaries. Changing them can be part of normal development, but it can also weaken restrictions, redirect the agent's behavior, or modify how it uses connected capabilities.&lt;/P&gt;&lt;P&gt;The first hunt compares the current and previous instruction values only when the agent was published in both snapshots:&lt;/P&gt;&lt;LI-CODE lang="kusto"&gt;CurrentState
| join kind=inner BaselineState on AgentId
| where CurrentInstructions != PreviousInstructions
| extend PreviousInstructionsHash = hash_sha256(PreviousInstructions),
         CurrentInstructionsHash = hash_sha256(CurrentInstructions),
         InstructionsLengthDelta = strlen(CurrentInstructions) - strlen(PreviousInstructions)&lt;/LI-CODE&gt;&lt;P&gt;I deliberately chose to expose hashes and a length delta rather than returning both instruction bodies in plaintext. This confirms that a change occurred without unnecessarily spreading potentially sensitive prompts through query results, exports, or screenshots.&lt;/P&gt;&lt;P&gt;Useful investigation questions include:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Was the change associated with an approved development or release process?&lt;/LI&gt;&lt;LI&gt;Did the agent remain published while the instructions changed?&lt;/LI&gt;&lt;LI&gt;Were guardrails, declared tools, permissions, or sharing settings modified around the same time?&lt;/LI&gt;&lt;LI&gt;Do audit records identify an expected actor and change path?&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;The query maps well to an integrity-focused investigation. Its MITRE ATT&amp;amp;CK mapping is&amp;nbsp;T1565.001&amp;nbsp;(Stored Data Manipulation), but the result is still a hunting lead rather than proof of malicious manipulation.&lt;/P&gt;&lt;P&gt;&lt;A href="https://github.com/Azure/Azure-Sentinel/blob/master/Hunting%20Queries/AI%20Agents/AgentsInfoInstructionsChangedOnPublishedAgent.yaml" target="_blank"&gt;View the complete instruction-change query&lt;/A&gt;&lt;/P&gt;&lt;H2&gt;Scenario 2: A newly observed MCP server&lt;/H2&gt;&lt;P&gt;Model Context Protocol servers can extend an agent with external tools, data sources, or actions. From a defender's perspective, the important transition is not simply that an MCP server exists. It is that a server name appears in the current configuration but was absent from the baseline.&lt;/P&gt;&lt;P&gt;The query expands the dynamic&amp;nbsp;McpServers&amp;nbsp;array and builds a set of server names for each agent:&lt;/P&gt;&lt;LI-CODE lang="kusto"&gt;let CurrentMcp =
    CurrentRaw
    | mv-expand Mcp = McpServers
    | extend McpName = tostring(Mcp.name)
    | where isnotempty(McpName)
    | summarize CurrentMcpServers = make_set(McpName) by AgentI&lt;/LI-CODE&gt;&lt;P&gt;It performs the same normalization for the baseline, then calculates the difference:&lt;/P&gt;&lt;LI-CODE lang="kusto"&gt;| extend AddedMcpServers = set_difference(CurrentMcpServers, BaselineMcpServers)
| where array_length(AddedMcpServers) &amp;gt; 0&lt;/LI-CODE&gt;&lt;P&gt;Using&amp;nbsp;set_difference()&amp;nbsp;avoids raising a result merely because the order of array elements changed. The hunt reports only MCP server names present in the current set and absent from the previous set.&lt;/P&gt;&lt;P&gt;An analyst should validate more than the displayed name:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Is the MCP integration part of the approved inventory?&lt;/LI&gt;&lt;LI&gt;What endpoint, authentication method, and permissions are associated with it?&lt;/LI&gt;&lt;LI&gt;Which tools or data can the server expose to the agent?&lt;/LI&gt;&lt;LI&gt;Was the integration introduced through an expected deployment path?&lt;/LI&gt;&lt;LI&gt;Did ownership, instructions, or sharing change in the same period?&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;I did not assign an ATT&amp;amp;CK technique to this query. Adding an MCP server does not, by itself, prove command execution, persistence, or a specific attacker behavior. Avoiding an overly broad mapping keeps the signal honest.&lt;/P&gt;&lt;P&gt;&lt;A href="https://github.com/Azure/Azure-Sentinel/blob/master/Hunting%20Queries/AI%20Agents/AgentsInfoNewlyObservedMcpServer.yaml" target="_blank"&gt;View the complete MCP-server query&lt;/A&gt;&lt;/P&gt;&lt;H2&gt;Scenario 3: An owner added to an MCP-enabled agent&lt;/H2&gt;&lt;P&gt;Ownership is a control-plane relationship. A newly added owner may be able to modify an agent's configuration, instructions, integrations, or publication state. The risk becomes more interesting when the agent already has MCP servers configured.&lt;/P&gt;&lt;P&gt;The hunt first limits the current state to MCP-enabled agents:&lt;/P&gt;&lt;LI-CODE lang="kusto"&gt;| where array_length(coalesce(McpServers, dynamic([]))) &amp;gt; 0
| project AgentId, Timestamp, Name, Platform, CreatedDateTime,
          CurrentOwners = coalesce(Owners, dynamic([])), McpServers&lt;/LI-CODE&gt;&lt;P&gt;It then compares the owner arrays as sets:&lt;/P&gt;&lt;LI-CODE lang="kusto"&gt;| extend AddedOwners = set_difference(CurrentOwners, PreviousOwners)
| where array_length(AddedOwners) &amp;gt; 0
| mv-expand AddedOwnerId = AddedOwners to typeof(string)&lt;/LI-CODE&gt;&lt;P&gt;Expanding&amp;nbsp;AddedOwners&amp;nbsp;produces one row per newly observed owner. This is more useful than returning one opaque dynamic array because every added identity can be enriched, mapped, and investigated independently.&lt;/P&gt;&lt;P&gt;I kept the raw object identifier in the result even when identity enrichment fails:&lt;/P&gt;&lt;LI-CODE lang="kusto"&gt;| extend AddedOwnerUpn = AccountUpn,
         UnresolvedAddedOwnerId = iff(isempty(AccountUpn), AddedOwnerId, "")&lt;/LI-CODE&gt;&lt;P&gt;That fallback matters. A missing UPN should not hide the underlying ownership change.&lt;/P&gt;&lt;P&gt;Investigation should establish:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Is the added owner an expected person, service identity, or administrative group?&lt;/LI&gt;&lt;LI&gt;Does the identity's role and business function justify control of this agent?&lt;/LI&gt;&lt;LI&gt;Was the owner added before other configuration changes?&lt;/LI&gt;&lt;LI&gt;Does the identity appear in related sign-in, audit, or privileged-access activity?&lt;/LI&gt;&lt;LI&gt;Should ownership be removed while the change is reviewed?&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;This query maps to&amp;nbsp;T1098&amp;nbsp;(Account Manipulation) under Persistence and Privilege Escalation. As with the instruction-change hunt, the mapping frames an investigation hypothesis; it does not label every ownership change as malicious.&lt;/P&gt;&lt;P&gt;&lt;A href="https://github.com/Azure/Azure-Sentinel/blob/master/Hunting%20Queries/AI%20Agents/AgentsInfoOwnerAddedToMcpAgent.yaml" target="_blank"&gt;View the complete owner-change query&lt;/A&gt;&lt;/P&gt;&lt;H2&gt;Scenario 4: Sharing expanded to the entire organization&lt;/H2&gt;&lt;P&gt;An agent can move from a limited audience to organization-wide availability without changing its underlying tools or instructions. That transition can materially increase exposure, especially when the agent has MCP integrations or declared tools.&lt;/P&gt;&lt;P&gt;The hunt treats&amp;nbsp;"*"&amp;nbsp;in&amp;nbsp;SharedWith&amp;nbsp;as the organization-wide state. The current snapshot must contain it, while the baseline must not:&lt;/P&gt;&lt;LI-CODE lang="kusto"&gt;// Current state
| where set_has_element(coalesce(SharedWith, dynamic([])), "*")

// Baseline state
| where not(set_has_element(coalesce(SharedWith, dynamic([])), "*"))&lt;/LI-CODE&gt;&lt;P&gt;The result also counts MCP servers and declared tools:&lt;/P&gt;&lt;LI-CODE lang="kusto"&gt;| extend McpServerCount = array_length(coalesce(McpServers, dynamic([]))),
         DeclaredToolCount = array_length(coalesce(DeclaredTools, dynamic([])))
| extend HasElevatedCapabilities = McpServerCount &amp;gt; 0 or DeclaredToolCount &amp;gt; 0
| sort by HasElevatedCapabilities desc, Timestamp desc&lt;/LI-CODE&gt;&lt;P&gt;I use&amp;nbsp;HasElevatedCapabilities&amp;nbsp;as a prioritization field, not a verdict. It brings agents with connected capabilities to the top of the result set so analysts can review the potentially larger blast radius first.&lt;/P&gt;&lt;P&gt;Questions for triage include:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Was organization-wide publication explicitly approved?&lt;/LI&gt;&lt;LI&gt;Is the agent intended for every user, or was a group-based scope expected?&lt;/LI&gt;&lt;LI&gt;What data sources, tools, and MCP servers can organization-wide users reach through it?&lt;/LI&gt;&lt;LI&gt;Do the instructions contain assumptions that were safe only for a restricted audience?&lt;/LI&gt;&lt;LI&gt;Were access reviews or user-acceptance tests completed before the expansion?&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;No ATT&amp;amp;CK mapping is assigned because a broader sharing scope is a security-relevant exposure change, but not a sufficiently precise adversary technique on its own.&lt;/P&gt;&lt;P&gt;&lt;A href="https://github.com/Azure/Azure-Sentinel/blob/master/Hunting%20Queries/AI%20Agents/AgentsInfoSharingExpandedToOrgWide.yaml" target="_blank"&gt;View the complete sharing-scope query&lt;/A&gt;&lt;/P&gt;&lt;H2&gt;Resolving owners without making the hunt schema-fragile&lt;/H2&gt;&lt;P&gt;The&amp;nbsp;Owners&amp;nbsp;field contains identifiers. Human-readable identity context makes results easier to triage, and entity mappings make those identities more useful in Sentinel investigations.&lt;/P&gt;&lt;P&gt;I built a small, materialized&amp;nbsp;IdentityInfo&amp;nbsp;lookup that is shared by the four hunts:&lt;/P&gt;&lt;LI-CODE lang="kusto"&gt;let IdentityIdtoUPN = materialize(
    IdentityInfo
    | extend ResolvedAccountUpn = tostring(
        column_ifexists("AccountUpn", column_ifexists("AccountUPN", ""))),
        IdentityTimestamp = todatetime(
        column_ifexists("Timestamp", column_ifexists("TimeGenerated", datetime(null))))
    | where IdentityTimestamp &amp;gt;= ago(lookback)
    | where isnotempty(AccountObjectId) and isnotempty(ResolvedAccountUpn)
    | summarize arg_max(IdentityTimestamp, ResolvedAccountUpn) by AccountObjectId
    | project AccountObjectId = tostring(AccountObjectId),
              AccountUpn = ResolvedAccountUpn);&lt;/LI-CODE&gt;&lt;P&gt;There are three design choices worth noting:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;column_ifexists()&amp;nbsp;accommodates observed&amp;nbsp;IdentityInfo&amp;nbsp;naming variants without maintaining separate query versions.&lt;/LI&gt;&lt;LI&gt;The lookup is bounded by the same lookback period instead of scanning unbounded identity history.&lt;/LI&gt;&lt;LI&gt;arg_max()&amp;nbsp;keeps the latest usable identity record for each object ID.&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;After enrichment, the queries map the account using the UPN components and the Entra object ID:&lt;/P&gt;&lt;LI-CODE lang="kusto"&gt;entityMappings:
  - entityType: Account
    fieldMappings:
      - identifier: Name
        columnName: OwnerAccountName
      - identifier: UPNSuffix
        columnName: OwnerAccountUPNSuffix
      - identifier: AadUserId
        columnName: OwnerId&lt;/LI-CODE&gt;&lt;P&gt;The strong&amp;nbsp;AadUserId&amp;nbsp;identifier remains valuable even when display information changes. Microsoft Sentinel can use mapped entities in bookmarks and investigation experiences, so mapping the changed owner is more than cosmetic enrichment.&lt;/P&gt;&lt;H2&gt;Turning a result into an investigation&lt;/H2&gt;&lt;P&gt;These queries intentionally stop at the configuration transition.&amp;nbsp;AgentsInfo&amp;nbsp;tells us that two snapshots differ; it does not necessarily tell us who performed the change, through which interface, or whether the action was authorized.&lt;/P&gt;&lt;P&gt;A practical investigation workflow is:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Confirm that the two snapshots represent the expected agent and time period.&lt;/LI&gt;&lt;LI&gt;Review the exact changed property and the agent's current capabilities.&lt;/LI&gt;&lt;LI&gt;Identify the owner or newly added owner through&amp;nbsp;IdentityInfo&amp;nbsp;and Entra ID context.&lt;/LI&gt;&lt;LI&gt;Correlate the transition with the relevant audit source for actor attribution.&lt;/LI&gt;&lt;LI&gt;Check for related changes to permissions, tools, data sources, publication state, and sharing.&lt;/LI&gt;&lt;LI&gt;Validate the change against an approved request, release, or ownership process.&lt;/LI&gt;&lt;LI&gt;Restrict, unpublish, or revert the agent if the exposure cannot be justified.&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;Expected changes can still be useful findings. Repeated legitimate results may reveal that a deployment process lacks a stable change window, that ownership is managed through noisy automation, or that the hunt's timing needs to be aligned with release activity.&lt;/P&gt;&lt;H2&gt;Tuning the hunts for your environment&lt;/H2&gt;&lt;P&gt;Before operational use, consider the following adjustments:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;STRONG&gt;Run cadence:&lt;/STRONG&gt;&amp;nbsp;Execute within the two-day current window. A daily cadence provides overlap without blending current and baseline periods.&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;Lookback:&lt;/STRONG&gt;&amp;nbsp;Increase the 14-day lookback only if snapshot history and query cost support it. A longer lookback does not compensate for missing the current window.&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;Known change windows:&lt;/STRONG&gt;&amp;nbsp;Add watchlists or environment-specific suppression logic for well-controlled automated deployments, while retaining enough context to audit the change.&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;Agent scope:&lt;/STRONG&gt;&amp;nbsp;Filter by platform, business unit, agent naming convention, or owner if different teams require separate triage queues.&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;Risk prioritization:&lt;/STRONG&gt;&amp;nbsp;Raise agents with sensitive declared data sources, powerful tools, privileged owners, or broad availability to the top of the result set.&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;Audit correlation:&lt;/STRONG&gt;&amp;nbsp;Keep attribution logic separate unless the audit source and join keys are stable in your environment. This makes the configuration-drift hunt reusable while allowing each organization to attach its own control-plane evidence.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;Test with representative snapshots before treating any hunt as an operational control. In particular, validate array shapes for&amp;nbsp;Owners,&amp;nbsp;McpServers, and&amp;nbsp;SharedWith, confirm the identity fields present in your workspace, and exercise both changed and unchanged states.&lt;/P&gt;&lt;H2&gt;Using the queries&lt;/H2&gt;&lt;P&gt;The four YAML definitions have been merged into the&amp;nbsp;Hunting Queries/AI Agents&amp;nbsp;folder of Microsoft's Azure-Sentinel repository. Each file contains the complete KQL, description, entity mappings, and ATT&amp;amp;CK mappings where a precise technique applies.&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;A href="https://github.com/Azure/Azure-Sentinel/blob/master/Hunting%20Queries/AI%20Agents/AgentsInfoInstructionsChangedOnPublishedAgent.yaml" target="_blank"&gt;Instructions changed on a previously published agent&lt;/A&gt;&lt;/LI&gt;&lt;LI&gt;&lt;A href="https://github.com/Azure/Azure-Sentinel/blob/master/Hunting%20Queries/AI%20Agents/AgentsInfoNewlyObservedMcpServer.yaml" target="_blank"&gt;Newly observed MCP server on an existing agent&lt;/A&gt;&lt;/LI&gt;&lt;LI&gt;&lt;A href="https://github.com/Azure/Azure-Sentinel/blob/master/Hunting%20Queries/AI%20Agents/AgentsInfoOwnerAddedToMcpAgent.yaml" target="_blank"&gt;Owner added to an MCP-enabled agent&lt;/A&gt;&lt;/LI&gt;&lt;LI&gt;&lt;A href="https://github.com/Azure/Azure-Sentinel/blob/master/Hunting%20Queries/AI%20Agents/AgentsInfoSharingExpandedToOrgWide.yaml" target="_blank"&gt;Sharing expanded to organization-wide&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;The broader pattern is reusable beyond these four scenarios: select a stable current snapshot, select a non-overlapping baseline, normalize dynamic properties into comparable sets, calculate the transition, and enrich only after the drift has been identified. That keeps the core detection explainable and gives the analyst the before-and-after context needed for a defensible investigation.&lt;/P&gt;&lt;H2&gt;References&lt;/H2&gt;&lt;UL&gt;&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/azure-monitor/reference/tables/agentsinfo" target="_blank"&gt;AgentsInfo table reference&lt;/A&gt;&lt;/LI&gt;&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/azure-monitor/reference/queries/agentsinfo" target="_blank"&gt;Example queries for AgentsInfo&lt;/A&gt;&lt;/LI&gt;&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/azure-monitor/reference/tables/identityinfo" target="_blank"&gt;IdentityInfo table reference&lt;/A&gt;&lt;/LI&gt;&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/sentinel/entities-reference" target="_blank"&gt;Microsoft Sentinel entity types and identifiers&lt;/A&gt;&lt;/LI&gt;&lt;LI&gt;&lt;A href="https://github.com/Azure/Azure-Sentinel/pull/14702" target="_blank"&gt;Merged contribution: Azure/Azure-Sentinel PR #14702&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;EM&gt;I authored the four hunting queries discussed in this article and contributed them to Microsoft's Azure-Sentinel repository as&amp;nbsp;&lt;A href="https://github.com/Azure/Azure-Sentinel/pull/14702" target="_blank"&gt;PR #14702&lt;/A&gt;. The complete implementations and review history are publicly available through the links above.&lt;/EM&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 20 Jul 2026 12:28:46 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-sentinel/hunting-ai-agent-configuration-drift-with-microsoft-sentinel/m-p/4538962#M12956</guid>
      <dc:creator>Marcel_Graewer</dc:creator>
      <dc:date>2026-07-20T12:28:46Z</dc:date>
    </item>
    <item>
      <title>Sentinel - Defender XDR KQL Queries Library</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-sentinel/sentinel-defender-xdr-kql-queries-library/m-p/4538669#M12955</link>
      <description>&lt;P&gt;Hello all,&lt;/P&gt;&lt;P&gt;I’ve been building something over the past few weeks that I think the security community might find useful.&lt;BR /&gt;&lt;BR /&gt;&lt;A class="lia-external-url" href="https://goxdr.fyi" target="_blank"&gt;GoXDR&lt;/A&gt; is a searchable KQL query library for Microsoft Sentinel and Defender XDR. The name comes from a nickname my colleagues gave me (GoX) combined with XDR. I also picked up &lt;A class="lia-external-url" href="https://goxdr.fyi" target="_blank"&gt;goxdr.fyi&lt;/A&gt; as a short and easy to remember domain for it.&lt;BR /&gt;&lt;BR /&gt;You can check it out here: https://goxdr.fyi&lt;/P&gt;&lt;P&gt;The idea came from my own day to day work as someone working in IAM and SOC operations. I constantly find myself writing and refining KQL queries for threat hunting, detection engineering and incident investigation. Over time I realized I had a growing collection of queries that I kept going back to and I thought why not make these available to others?&lt;BR /&gt;&lt;BR /&gt;It currently has 117 queries covering identity security, BEC/AiTM detection, NTLM and LDAP attack hunting, OAuth governance, AI/Copilot security, Sentinel alert trending, SOC performance metrics and more.&lt;BR /&gt;&lt;BR /&gt;Some of these queries are ones I wrote from scratch based on real scenarios I encountered in production environments. Others are community queries I tested and validated in my own setup. Only the ones I found genuinely useful and that actually worked against real data made it in.&lt;BR /&gt;&lt;BR /&gt;Each query comes with a description explaining what it detects and why it matters, along with severity levels, platform tags (Sentinel, XDR or both) and a copy button so you can paste it directly into Advanced Hunting or use it as the basis for an Analytics Rule.&lt;BR /&gt;&lt;BR /&gt;The site is open source, hosted on GitHub Pages and licensed under CC BY 4.0. No sign-up, no paywall, no tracking. The source is available.&lt;/P&gt;&lt;P&gt;I’ll keep adding queries as new scenarios come up. If there’s enough interest I’m also considering adding Cortex XQL queries for Palo Alto environments.&lt;BR /&gt;&lt;BR /&gt;Suggestions, feedback or ideas for new detections are always welcome. Feel free to reach out.&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;</description>
      <pubDate>Sun, 19 Jul 2026 11:33:56 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-sentinel/sentinel-defender-xdr-kql-queries-library/m-p/4538669#M12955</guid>
      <dc:creator>GokselATAKAN</dc:creator>
      <dc:date>2026-07-19T11:33:56Z</dc:date>
    </item>
    <item>
      <title>Announcing the ASIM Parser Creation Agentic Experience</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-sentinel-blog/announcing-the-asim-parser-creation-agentic-experience/ba-p/4532266</link>
      <description>&lt;P data-line="3"&gt;Creating high-quality ASIM parsers has always required deep knowledge about source data and ASIM schemas, careful KQL design, and repeated validation cycles. That process is meaningful to understand the whole Sentinel ecosystem, but it can be slow when you are starting from raw source data and trying to get to a production-ready parser.&lt;/P&gt;
&lt;P data-line="5"&gt;Today, we are introducing a new agentic experience available now as open source that helps security teams move faster: an AI-guided workflow for creating ASIM parsers end to end.&lt;/P&gt;
&lt;H4 data-line="7"&gt;Why this matters&lt;/H4&gt;
&lt;P data-line="9"&gt;ASIM parsers are the normalization layer that makes detections, hunting, and analytics portable across data sources. They are foundational, but building them involves many steps:&lt;/P&gt;
&lt;UL data-line="11"&gt;
&lt;LI&gt;Gathering source requirements and schema targets&lt;/LI&gt;
&lt;LI&gt;Authoring a parameter-less and a parameterized ASIM parser&lt;/LI&gt;
&lt;LI&gt;Validating schema conformance and data quality&lt;/LI&gt;
&lt;LI&gt;Packaging the parsers into a GitHub pull request for open-source contributions&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-line="16"&gt;ASIM normalization is important because it gives security teams a common language across different products and log formats. Without normalization, every detection, hunting query, and workbook has to be rewritten per vendor table, which increases engineering effort and creates blind spots when data sources change. With ASIM, the same analytic logic can operate across multiple sources through consistent field names and semantics.&lt;/P&gt;
&lt;P data-line="18"&gt;This directly improves security outcomes by enabling faster content reuse, easier cross-source correlation, and more reliable incident triage. It also reduces long-term maintenance costs, because teams update parsers at the query and mapping layer instead of rewriting detection content each time a connector changes.&lt;/P&gt;
&lt;P data-line="20"&gt;The new agentic experience orchestrates those steps for you with clear checkpoints and repeatable outputs.&lt;/P&gt;
&lt;H4 data-line="22"&gt;What is the ASIM parser creation agentic experience?&lt;/H4&gt;
&lt;P data-line="24"&gt;The experience is built around a specialized set of skills that work together as a workflow. Instead of using a single prompt and hoping for the best, the agent walks through parser creation as a structured process.&lt;/P&gt;
&lt;P data-line="26"&gt;At the center is the orchestration skill that coordinates:&lt;/P&gt;
&lt;UL data-line="28"&gt;
&lt;LI&gt;Requirement collection&lt;/LI&gt;
&lt;LI&gt;Parser generation&lt;/LI&gt;
&lt;LI&gt;Validation loops that test the parser schema and data outputs&lt;/LI&gt;
&lt;LI&gt;Optional deployment to Log Analytics and PR packaging for&amp;nbsp;&lt;A href="https://github.com/Azure/Azure-Sentinel/tree/master" target="_blank" rel="noopener"&gt;Azure-Sentinel&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H4 data-line="33"&gt;Where can I find these skills?&lt;/H4&gt;
&lt;P data-line="35"&gt;If you have cloned or forked the&amp;nbsp;&lt;A href="https://github.com/Azure/Azure-Sentinel/tree/master" target="_blank" rel="noopener"&gt;Azure-Sentinel&lt;/A&gt;&amp;nbsp;repository, the skills are already there! All you need is GitHub Copilot CLI to get started. For more information, you can visit the&amp;nbsp;&lt;A href="https://github.com/Azure/Azure-Sentinel/blob/master/ASIM/tools/ASIMParserCreation-Agentic/README.md" target="_blank" rel="noopener"&gt;README&lt;/A&gt;&amp;nbsp;or our&amp;nbsp;&lt;A href="https://learn.microsoft.com/azure/sentinel/normalization-create-parsers-ai-agent" target="_blank" rel="noopener"&gt;Learn Docs&lt;/A&gt;.&lt;/P&gt;
&lt;P data-line="37"&gt;Another way to access these skills is through our&amp;nbsp;&lt;A href="https://marketplace.visualstudio.com/items?itemName=ms-security.ms-sentinel" target="_blank" rel="noopener"&gt;Microsoft Sentinel Visual Studio Code Extension&lt;/A&gt;. You can simply chat with GitHub Copilot with your intention to create ASIM parsers, and it will call its loaded skills.&lt;/P&gt;
&lt;H4 data-line="39"&gt;What you can expect in practice&lt;/H4&gt;
&lt;P data-line="41"&gt;When you start with a request like "Create a new ASIM parser for my source table" the agent can:&lt;/P&gt;
&lt;OL data-line="43"&gt;
&lt;LI&gt;Gather critical inputs&lt;/LI&gt;
&lt;LI&gt;Build the initial ASIM parser from source requirements&lt;/LI&gt;
&lt;LI&gt;Run schema and data validation&lt;/LI&gt;
&lt;LI&gt;Refine the parser in a loop until error-level findings are resolved (or report remaining blockers)&lt;/LI&gt;
&lt;LI&gt;Build the matching parameterized parser and re-validate&lt;/LI&gt;
&lt;LI&gt;Help deploy or package your parsers into a PR to contribute to open-source&lt;/LI&gt;
&lt;/OL&gt;
&lt;H4 data-line="50"&gt;Where this helps most&lt;/H4&gt;
&lt;P data-line="52"&gt;This workflow is especially useful when:&lt;/P&gt;
&lt;UL data-line="54"&gt;
&lt;LI&gt;Data is already flowing into Sentinel, but there are no supporting ASIM parsers yet&lt;/LI&gt;
&lt;LI&gt;Migrating legacy parsing logic to ASIM conventions&lt;/LI&gt;
&lt;LI&gt;Creating a parser needs to happen with almost no delay, without sacrificing validation confidence&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-line="58"&gt;It will also reduce onboarding time for analysts who are new to ASIM but comfortable with KQL and Sentinel operations.&lt;/P&gt;
&lt;H4 data-line="60"&gt;Closing&lt;/H4&gt;
&lt;P data-line="62"&gt;The ASIM parser creation agentic experience is not about replacing engineering judgment. It is about amplifying it.&lt;/P&gt;
&lt;P data-line="64"&gt;If you are building ASIM parsers today, now is the right time to pilot an agentic workflow and shape what comes next.&lt;/P&gt;
&lt;P data-line="66"&gt;If you are new to ASIM, getting started with parsers is easier than ever. The guided agentic flow walks you through requirements, parser generation, and validation step by step, so you can learn the ASIM model while still producing useful, high-quality parser outputs quickly.&lt;/P&gt;</description>
      <pubDate>Wed, 15 Jul 2026 16:00:00 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-sentinel-blog/announcing-the-asim-parser-creation-agentic-experience/ba-p/4532266</guid>
      <dc:creator>derricklee</dc:creator>
      <dc:date>2026-07-15T16:00:00Z</dc:date>
    </item>
    <item>
      <title>Building toward an Agentic SOC: A Portable, Autonomous Malware Investigation Agent</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-sentinel-blog/building-toward-an-agentic-soc-a-portable-autonomous-malware/ba-p/4526872</link>
      <description>&lt;P&gt;Modern Security Operations Centers are not short on tools. They are short on continuity. Analysts jump from alert consoles to data exploration, from enrichment to investigation, and from evidence gathering to response—often across multiple interfaces and disconnected workflows.&lt;/P&gt;
&lt;P&gt;A single malware incident may begin in Microsoft Sentinel, require enrichment in Defender, depend on targeted KQL hunting, and end with manual response actions somewhere else. Every handoff adds friction. Every context switch slows triage. And every inconsistency increases the risk of missed signals or delayed containment.&lt;/P&gt;
&lt;P&gt;To explore what an &lt;STRONG&gt;Agentic SOC&lt;/STRONG&gt; could look like in practice, I built a &lt;STRONG&gt;portable, autonomous malware investigation agent&lt;/STRONG&gt;: a user-invocable workflow that takes an incident from investigation to evidence correlation to verdict and, when appropriate, to action.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;The goal is simple:&lt;/STRONG&gt; one prompt, one workflow, and a full incident lifecycle that moves cleanly from &lt;STRONG&gt;Investigate&lt;/STRONG&gt; to &lt;STRONG&gt;Decide&lt;/STRONG&gt; to &lt;STRONG&gt;Act&lt;/STRONG&gt;.&lt;/P&gt;
&lt;H4&gt;&lt;STRONG&gt;The Real Problem: SOC Work Is Still Too Fragmented&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;In a conventional malware investigation, even experienced analysts spend too much time stitching the workflow together:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Pivoting across Sentinel and Defender&lt;/LI&gt;
&lt;LI&gt;Manually extracting entities&lt;/LI&gt;
&lt;LI&gt;Writing and optimizing multiple KQL queries&lt;/LI&gt;
&lt;LI&gt;Context switching between tools&lt;/LI&gt;
&lt;LI&gt;Making decisions with incomplete evidence&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;The operational impact is familiar to every SOC team:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Increased MTTR&lt;/LI&gt;
&lt;LI&gt;Analyst fatigue&lt;/LI&gt;
&lt;LI&gt;Inconsistent investigation quality&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;This fragmentation is exactly what a unified Microsoft Sentinel and Defender experience is built to solve, and it is where such an investigation agent demonstrates its value.&lt;/P&gt;
&lt;H4&gt;&lt;STRONG&gt;The Approach: A Portable Agent for End-to-End Malware Investigations&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;The agent is designed to handle the full investigation loop—not just enrichment, not just summarization, and not just response orchestration.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;End-to-end malware investigation&lt;/LI&gt;
&lt;LI&gt;Evidence-based verdicting&lt;/LI&gt;
&lt;LI&gt;SOC-ready summarization&lt;/LI&gt;
&lt;LI&gt;Optional automated response&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Because it is defined as a portable agent, the same investigation pattern can be reused across environments with consistent logic, standardized outputs, and controlled automation boundaries.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Standardized investigations&lt;/LI&gt;
&lt;LI&gt;Repeatable execution&lt;/LI&gt;
&lt;LI&gt;Controlled automation&lt;/LI&gt;
&lt;LI&gt;Cross-environment portability&lt;/LI&gt;
&lt;/UL&gt;
&lt;H5&gt;Architecture Overview (End-to-End Flow)&lt;/H5&gt;
&lt;H4&gt;&lt;STRONG&gt;Visual 1: Agentic SOC Investigation Workflow&lt;/STRONG&gt;&lt;/H4&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="width: 61.9444%; height: 680px; border-width: 1px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="lia-align-center"&gt;
&lt;P&gt;&lt;STRONG&gt;User / Analyst Input&lt;/STRONG&gt;&lt;BR /&gt;“Investigate Incident”&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="lia-align-center"&gt;
&lt;P&gt;↓&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="lia-align-center"&gt;
&lt;P&gt;&lt;STRONG&gt;SOC AI Agent&lt;/STRONG&gt;&lt;BR /&gt;Portable Investigator&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="lia-align-center"&gt;
&lt;P&gt;↓&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="lia-align-center"&gt;
&lt;P&gt;&lt;STRONG&gt;Microsoft Sentinel&lt;/STRONG&gt;&lt;BR /&gt;SecurityIncident • SecurityAlert • Data Lake (KQL)&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="lia-align-center"&gt;
&lt;P&gt;↓&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="lia-align-center"&gt;
&lt;P&gt;&lt;STRONG&gt;Entity-Driven Queries&lt;/STRONG&gt;&lt;BR /&gt;Device • User • File • IP&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="lia-align-center"&gt;
&lt;P&gt;↓&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="lia-align-center"&gt;
&lt;P&gt;&lt;STRONG&gt;Evidence Correlation&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="lia-align-center"&gt;
&lt;P&gt;↓&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="lia-align-center"&gt;
&lt;P&gt;&lt;STRONG&gt;Verdict + Summary&lt;/STRONG&gt;&lt;BR /&gt;True Positive • False Positive • Benign True Positive&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="lia-align-center"&gt;
&lt;P&gt;↓&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="lia-align-center"&gt;
&lt;P&gt;&lt;STRONG&gt;Optional Actions&lt;/STRONG&gt;&lt;BR /&gt;Comment • Tag • Isolate&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 100.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4 id="mcetoc_1jt6n4518_1"&gt;&lt;STRONG&gt;How the Agent Works: A Practical Deep Dive&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;&lt;STRONG&gt;Prerequisites&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;VS Code with GitHub Copilot&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Microsoft Sentinel MCP server (provides the Triage and Data Lake exploration tools the agent runs on)&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Microsoft Defender for Endpoint data (for the Device* hunting tables)&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;API permissions for any response action (e.g. endpoint isolation)&lt;/STRONG&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H5&gt;&amp;nbsp;1. &lt;SPAN style="color: rgb(30, 30, 30);"&gt;Input &amp;amp; Trigger&lt;/SPAN&gt;&lt;/H5&gt;
&lt;P&gt;The workflow starts with a simple natural-language prompt, for example:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Investigate Defender incident 1939&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The input includes:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Defender Incident ID&lt;/LI&gt;
&lt;LI&gt;Optional Sentinel workspace&lt;/LI&gt;
&lt;/UL&gt;
&lt;H5&gt;2. Sentinel-First Investigation&lt;/H5&gt;
&lt;P&gt;The first design choice is deliberate: the agent starts from &lt;STRONG&gt;Sentinel as the investigation plane&lt;/STRONG&gt;, within the Unified Defender Portal, where incidents are correlated across Sentinel and Defender, using it to retrieve incident structure, alert context, severity, timelines, and alert relationships before moving deeper.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Queries:&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;SecurityIncident&lt;/LI&gt;
&lt;LI&gt;SecurityAlert&lt;/LI&gt;
&lt;/UL&gt;
&lt;LI&gt;Extracts:&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Severity&lt;/LI&gt;
&lt;LI&gt;Timeline&lt;/LI&gt;
&lt;LI&gt;Alert relationships&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;P&gt;This ensures:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Consistent data plane&lt;/LI&gt;
&lt;LI&gt;Reduced dependency on multiple APIs&lt;/LI&gt;
&lt;/UL&gt;
&lt;H5&gt;3. Entity-Driven Correlation&lt;/H5&gt;
&lt;P&gt;Instead of launching broad hunts across the environment, the agent narrows the scope using the entities already present in the incident. That makes the investigation faster, cheaper, and more precise.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Extracts entities:&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Device&lt;/LI&gt;
&lt;LI&gt;User&lt;/LI&gt;
&lt;LI&gt;File hash&lt;/LI&gt;
&lt;LI&gt;IP/URL&lt;/LI&gt;
&lt;/UL&gt;
&lt;LI&gt;Runs &lt;STRONG&gt;targeted queries only&lt;/STRONG&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Example tables:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;DeviceProcessEvents&lt;/LI&gt;
&lt;LI&gt;DeviceFileEvents&lt;/LI&gt;
&lt;LI&gt;DeviceNetworkEvents&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;This is critical for:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Performance&lt;/LI&gt;
&lt;LI&gt;Cost control&lt;/LI&gt;
&lt;LI&gt;Precision&lt;/LI&gt;
&lt;/UL&gt;
&lt;/BLOCKQUOTE&gt;
&lt;H4 id="mcetoc_1jt6n4518_2"&gt;&lt;STRONG&gt;Visual 2: From Incident to Correlated Evidence&lt;/STRONG&gt;&lt;/H4&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Incident&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Alerts&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Entities&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Targeted Queries&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Evidence&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Incident 1939&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Malware detection&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;device123&lt;BR /&gt;userA&lt;BR /&gt;file.exe&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;DeviceProcessEvents&lt;BR /&gt;DeviceFileEvents&lt;BR /&gt;DeviceNetworkEvents&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Correlated execution, origin, and network signals&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 20.00%" /&gt;&lt;col style="width: 20.00%" /&gt;&lt;col style="width: 20.00%" /&gt;&lt;col style="width: 20.00%" /&gt;&lt;col style="width: 20.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;H5&gt;4. Evidence-Based Verdict&lt;/H5&gt;
&lt;P&gt;Once the signals are correlated, the agent produces one of three explicit outcomes—grounded in evidence rather than guesswork.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;True Positive&lt;/LI&gt;
&lt;LI&gt;False Positive&lt;/LI&gt;
&lt;LI&gt;Benign True Positive&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;The verdict is:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Based on evidence only&lt;/LI&gt;
&lt;LI&gt;Not guess-driven&lt;/LI&gt;
&lt;LI&gt;Not heuristic overreach&lt;/LI&gt;
&lt;/UL&gt;
&lt;H5&gt;5. SOC-Ready Output Standardization&lt;/H5&gt;
&lt;P&gt;The final output is intentionally standardized so an analyst can review the outcome quickly, understand the reasoning, and decide what happens next.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;One-line verdict&lt;/LI&gt;
&lt;LI&gt;ASCII findings table&lt;/LI&gt;
&lt;LI&gt;Analyst summary&lt;/LI&gt;
&lt;LI&gt;Actions taken&lt;/LI&gt;
&lt;LI&gt;Optional containment recommendation&lt;/LI&gt;
&lt;/UL&gt;
&lt;H4 id="mcetoc_1jt6n4518_3"&gt;&lt;STRONG&gt;Visual 3: Standardized Investigation Output&lt;/STRONG&gt;&lt;/H4&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td colspan="2"&gt;
&lt;P&gt;&lt;STRONG&gt;Verdict: True Positive&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Category&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Findings&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Incident Details&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Severity: High&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Malware Details&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Trojan X detected&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Device Posture&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Real-time protection enabled&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;User Context&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Standard user&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Observed Activity&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Suspicious process tree&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Recommendation&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Isolation recommended&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 100.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;H5&gt;Summary&lt;/H5&gt;
&lt;UL&gt;
&lt;LI&gt;Malware execution confirmed.&lt;/LI&gt;
&lt;LI&gt;Blocked by Defender.&lt;/LI&gt;
&lt;LI&gt;No lateral movement observed.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H5&gt;Actions Taken&lt;/H5&gt;
&lt;UL&gt;
&lt;LI&gt;Comment added.&lt;/LI&gt;
&lt;LI&gt;Tag applied.&lt;/LI&gt;
&lt;LI&gt;Awaiting isolation decision.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H5&gt;Optional Response &amp;amp; Containment&lt;/H5&gt;
&lt;P&gt;If permissions are available, the agent can:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Add incident comments&lt;/LI&gt;
&lt;LI&gt;Tag incidents&lt;/LI&gt;
&lt;LI&gt;Update classification&lt;/LI&gt;
&lt;LI&gt;Close incidents&lt;/LI&gt;
&lt;LI&gt;Perform endpoint isolation (gated with human in the loop)&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;With strict safeguards:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Evidence-backed decisions&lt;/LI&gt;
&lt;LI&gt;Permission validation&lt;/LI&gt;
&lt;LI&gt;Audit traceability&lt;/LI&gt;
&lt;/UL&gt;
&lt;H4 id="mcetoc_1jt6n4518_4"&gt;&lt;STRONG&gt;Visual 4: Workspace Portability Logic&lt;/STRONG&gt;&lt;/H4&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Decision Point&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Outcome&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Workspace provided?&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Yes → Use the specified workspace.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Workspace provided?&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;No → Detect available workspaces.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Only one workspace available?&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Yes → Use it automatically.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Multiple workspaces available?&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Ask the user to select one.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Missing permissions?&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Fall back to read-only behavior.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 50.00%" /&gt;&lt;col style="width: 50.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H5&gt;Security &amp;amp; Operational Rigor&lt;/H5&gt;
&lt;P&gt;The agent enforces:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;No secret storage&lt;/LI&gt;
&lt;LI&gt;Use of existing authentication context&lt;/LI&gt;
&lt;LI&gt;Clear reports of missing permissions&lt;/LI&gt;
&lt;LI&gt;Minimized unnecessary queries&lt;/LI&gt;
&lt;/UL&gt;
&lt;H4&gt;&lt;STRONG&gt;Why This Matters for the Agentic SOC Journey&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;This solution demonstrates &lt;STRONG&gt;three core pillars of agentic SOC&lt;/STRONG&gt;:&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: rgb(30, 30, 30); font-size: 20px;"&gt;1. Deterministic AI Execution&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Standardized workflow&lt;/LI&gt;
&lt;LI&gt;Repeatable outcomes&lt;/LI&gt;
&lt;LI&gt;Consistent investigation depth&lt;/LI&gt;
&lt;/UL&gt;
&lt;H5&gt;2. Human-in-the-Loop Control&lt;/H5&gt;
&lt;UL&gt;
&lt;LI&gt;Analyst decides final actions&lt;/LI&gt;
&lt;LI&gt;No blind automation&lt;/LI&gt;
&lt;LI&gt;Clear explainability&lt;/LI&gt;
&lt;/UL&gt;
&lt;H5&gt;3. End-to-End Closure Capability&lt;/H5&gt;
&lt;P&gt;This is the most important:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Not just detection&lt;/LI&gt;
&lt;LI&gt;Not just enrichment&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Full lifecycle:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Investigate&lt;/LI&gt;
&lt;LI&gt;Decide&lt;/LI&gt;
&lt;LI&gt;Act&lt;/LI&gt;
&lt;/UL&gt;
&lt;H4&gt;&lt;STRONG&gt;What’s Next&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;This pattern can be extended to:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Identity investigations&lt;/LI&gt;
&lt;LI&gt;Insider risk&lt;/LI&gt;
&lt;LI&gt;Multi-cloud threat correlation&lt;/LI&gt;
&lt;LI&gt;Security Copilot-driven SOC agents&lt;/LI&gt;
&lt;/UL&gt;
&lt;H4&gt;&lt;STRONG&gt;Final Thoughts&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;Most SOC automation still stops too early—at playbooks, enrichment, or isolated workflow steps. What is still missing in many environments is a cohesive execution model that can carry an investigation from signal to decision without losing context along the way.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Playbooks&lt;/LI&gt;
&lt;LI&gt;Alert enrichment&lt;/LI&gt;
&lt;LI&gt;Partial workflows&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;This pattern points to something more powerful: &lt;STRONG&gt;composable, intelligent SOC agents&lt;/STRONG&gt; that can operate across the full incident lifecycle while keeping humans firmly in control of high-impact actions.&lt;/P&gt;
&lt;P&gt;If an agentic SOC is the destination, portable investigation agents are a practical and credible way to start building toward it today.&lt;/P&gt;
&lt;H4&gt;&lt;STRONG&gt;Get the agent, setup steps, and instructions on GitHub: &amp;nbsp;&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;&lt;A class="lia-external-url" href="https://github.com/Abhishek-Sharan/microsoft-security-operations-toolkit/tree/main/AI%20Security/Custom%20Agents/SOC%20Malware%20Investigator%20Portable" target="_blank" rel="noopener"&gt;SOC Malware Investigator (Portable)SOC Malware Investigator (Portable)&lt;/A&gt;&lt;/P&gt;
&lt;H4&gt;&lt;STRONG&gt;Learn more&lt;/STRONG&gt;&lt;/H4&gt;
&lt;UL&gt;
&lt;LI&gt;Microsoft Sentinel MCP server:&amp;nbsp;&lt;A href="https://learn.microsoft.com/azure/sentinel/datalake/sentinel-mcp-overview" target="_blank" rel="noopener"&gt;https://learn.microsoft.com/azure/sentinel/datalake/sentinel-mcp-overview&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Microsoft Sentinel data lake:&amp;nbsp;&lt;A href="https://learn.microsoft.com/azure/sentinel/datalake/sentinel-lake-overview" target="_blank" rel="noopener"&gt;https://learn.microsoft.com/azure/sentinel/datalake/sentinel-lake-overview&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Advanced hunting (Defender device tables):&amp;nbsp;&lt;A href="https://learn.microsoft.com/microsoft-365/security/defender/advanced-hunting-overview" target="_blank" rel="noopener"&gt;https://learn.microsoft.com/microsoft-365/security/defender/advanced-hunting-overview&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Mon, 13 Jul 2026 19:09:25 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-sentinel-blog/building-toward-an-agentic-soc-a-portable-autonomous-malware/ba-p/4526872</guid>
      <dc:creator>absharan</dc:creator>
      <dc:date>2026-07-13T19:09:25Z</dc:date>
    </item>
    <item>
      <title>Sentinel - Defender for Cloud P2 Benefit</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-sentinel/sentinel-defender-for-cloud-p2-benefit/m-p/4534021#M12946</link>
      <description>&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;To receive the the benefit of the Sentinel / Defender for Cloud P2 500mb benefit is the following correct:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Enabled Defender for Cloud P2 on the server or via Azure Arc (these are mainly on-prem servers.&lt;/P&gt;&lt;P&gt;Create a DCR rule to collect events and send to our Sentinel Workspace.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Enable Defender on the Sentinel workspace (not subscription)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Defender for Servers is far more work than it should be!&lt;/P&gt;</description>
      <pubDate>Mon, 06 Jul 2026 09:11:03 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-sentinel/sentinel-defender-for-cloud-p2-benefit/m-p/4534021#M12946</guid>
      <dc:creator>DaithiG</dc:creator>
      <dc:date>2026-07-06T09:11:03Z</dc:date>
    </item>
    <item>
      <title>Behind the Build with Gigamon: Enriching Microsoft Sentinel with Network-Derived Telemetry</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-sentinel-blog/behind-the-build-with-gigamon-enriching-microsoft-sentinel-with/ba-p/4530360</link>
      <description>&lt;P class="lia-align-center"&gt;&lt;EM&gt;Behind the Build is an ongoing series spotlighting standout Microsoft partner collaborations. Each edition dives into the technical and strategic decisions that shape real-world integrations—highlighting engineering excellence, innovation, and the shared customer value created through partnership.&lt;/EM&gt;&lt;/P&gt;
&lt;P class="lia-align-left"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Security teams today operate across an expanding set of signals, spanning identity, endpoint, cloud and application environments. Yet many organizations still lack sufficient visibility into how systems communicate across their infrastructure, creating gaps in detection, investigation, and response.&lt;/P&gt;
&lt;P&gt;In this edition of &lt;EM&gt;Behind the Build&lt;/EM&gt;, I spoke with Srinivas Chakravarty, vice president, cloud ecosystems at Gigamon, about how Microsoft and Gigamon collaborated to bring network-derived telemetry into Microsoft Sentinel, helping customers enrich security investigations with deeper runtime context and AI-driven insights.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;The Evolution of Network Intelligence and Why It Matters&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;For more than twenty years, Gigamon has helped organizations access and operationalize network traffic across complex environments. Today, the Gigamon Deep Observability Pipeline, helps enable organizations to extract actionable network-derived telemetry across hybrid infrastructure, encrypted traffic, containers, and modern application environments.&lt;/P&gt;
&lt;P&gt;That foundation makes the Gigamon Deep Observability Pipeline a strong complement to Microsoft Sentinel. Microsoft Sentinel brings together security telemetry from across the enterprise—including identity, endpoint, cloud, application, and network data sources—while Gigamon contributes enriched network-derived telemetry that provides additional runtime context into how systems, applications, and services communicate. Together, these signals can help organizations gain deeper insight for threat detection, investigation, and response.&lt;/P&gt;
&lt;P&gt;As Srinivas put it: “You have logs, you have metrics, you have traces, but network telemetry completes the picture.” Together, these data sources provide deeper context for threat detection, investigation, and AI-driven analysis.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Gigamon and Microsoft partner to design end-to-end solutions for our shared customers, starting with how network traffic is captured, to how it is processed, and ultimately to how it is analyzed within Microsoft Sentinel. The first step in that pipeline is ensuring consistent, scalable visibility into traffic across environments.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Extending Visibility&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Gigamon has been working alongside Microsoft’s Azure network virtual access point team to expand how customers access network traffic across Azure and hybrid environments. Customers can leverage the virtual network TAP in Azure environments alongside Gigamon telemetry capabilities across on-premises, cloud, and hybrid deployments.&lt;/P&gt;
&lt;P&gt;This visibility layer is foundational to the broader architecture. The Gigamon Deep Observability Pipeline helps ensure organizations can access, optimize, and enrich network traffic before transforming it into actionable telemetry for downstream analysis in Microsoft Sentinel.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Turning Network Telemetry into Actionable Security Insights&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The integration between Gigamon and Microsoft Sentinel is designed to maximize both fidelity and operational efficiency. Gigamon deep packet inspection capabilities extract and enrich nearly 6,000 metadata attributes from network traffic, transforming raw packets into curated telemetry designed for downstream analysis.&lt;/P&gt;
&lt;P&gt;That telemetry is delivered into Microsoft Sentinel through a Codeless Connector Framework (CCF) push connector, where it can be correlated with identity, endpoint, and cloud telemetry. By bringing these signals together, organizations can more easily trace suspicious activity across their environments and investigate threats that span traditionally siloed domains.&lt;/P&gt;
&lt;P&gt;Rather than overwhelming analysts with raw network data, the integration prioritizes actionable metadata that can be correlated across traditionally siloed domains. &amp;nbsp;“When you bring this data into Sentinel, you’re no longer analyzing it in isolation, you’re correlating it across the entire estate,” said Srinivas.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Delivering Customer Value: A Unified Investigative Experience&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;While the technical architecture is important, the ultimate measure of success is the impact on customers. By combining Gigamon’s network intelligence with Microsoft Sentinel’s analytics and AI capabilities, organizations can gain a more complete view of their environments, one that helps reduce fragmentation and accelerate investigations.&lt;/P&gt;
&lt;P&gt;“Customers are looking for a single investigative plane,” Srinivas explained.&amp;nbsp;“When you bring all of this together, it can help significantly reduce the time to detect and respond.”&lt;/P&gt;
&lt;P&gt;This helps manifest four key outcomes:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Accelerated investigations &lt;/STRONG&gt;through correlation across network, identity, endpoint, and cloud telemetry&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Improved signal quality &lt;/STRONG&gt;through curated, high-value network-derived metadata&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Greater operational efficiency &lt;/STRONG&gt;through a unified investigation experience in Microsoft Sentinel&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Enhanced visibility &lt;/STRONG&gt;into encrypted, East-West, and hybrid cloud traffic activity that is often difficult to analyze through logs alone&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;By helping to address gaps that exist when using network or log data in isolation, the combined Gigamon and Microsoft solution can help SOC teams move more quickly from signal to action.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;From Ingestion to Insight: Building with Agentic AI&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Bringing telemetry into Microsoft Sentinel was only the first step. A major area of collaboration between Microsoft and Gigamon focused on leveraging Sentinel's AI and data platform capabilities to enable agentic workflows that can reason over enriched network-derived telemetry alongside broader security data.&lt;/P&gt;
&lt;P&gt;“It’s truly working backwards from customers,” said Srinivas. “We are driven by what customers want and we help each other out, we unblock each other at every step of the way to make these joint solutions possible.”&lt;/P&gt;
&lt;P&gt;The result is Gigamon's &lt;A href="https://securitystore.microsoft.com/solutions/gigamon-inc.gigamon-security-posture-agent" target="_blank" rel="noopener"&gt;Security Posture Insight Agent&lt;/A&gt;, which leverages Microsoft Sentinel platform capabilities to enrich investigations with deep packet-derived evidence including JA4 fingerprints, decrypted TLS metadata, and lateral-movement flows. This can help give analysts faster access to runtime evidence that might otherwise require manual packet analysis and correlation across tools.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Expanding the Possibilities of the Platform&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;As the collaboration evolves, both teams see opportunities to expand the role of network-derived telemetry across emerging AI and hybrid cloud security use cases. Areas of potential exploration include AI application visibility, expanded runtime intelligence, and deeper integration between observability, security analytics, and AI-driven workflows.&lt;/P&gt;
&lt;P&gt;“The platform approach will win, especially in an AI-driven world,” said Srinivas. “It’s about ecosystems coming together.”&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;That ecosystem mindset of bringing together best-in-class data, analytics, and AI is what enables organizations to stay ahead of increasingly complex threats.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Final Thoughts&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;This collaboration highlights what’s possible when strong engineering partnerships are grounded in customer outcomes. By combining network-derived telemetry from the Gigamon Deep Observability Pipeline with analytics and AI capabilities of Microsoft Sentinel, organizations can gain deeper runtime visibility, accelerate investigations, and improve AI-driven security operations.&lt;/P&gt;
&lt;P&gt;As the partnership continues to evolve, Microsoft and Gigamon are working together to help customers build more unified, intelligent SOC experiences across increasingly complex hybrid cloud environments.&lt;/P&gt;
&lt;P class="lia-align-left"&gt;For software companies building on Microsoft Sentinel, the Gigamon collaboration also demonstrates how partners can leverage Microsoft App Assure’s &lt;A href="https://techcommunity.microsoft.com/blog/microsoftsentinelblog/extending-app-assure%E2%80%99s-sentinel-promise-through-the-sentinel-advisory-service/4503045" target="_blank" rel="noopener"&gt;Sentinel Advisory Service&lt;/A&gt;, a no-cost program that helps partners design secure, high-performance solutions on Microsoft Sentinel while accelerating time to market. From development to deployment, App Assure ensures your solution meets Microsoft’s standards while accelerating time to market. Ready to get started building a Sentinel solution?&amp;nbsp;&lt;A href="https://aka.ms/appassurerequest" target="_blank" rel="noopener"&gt;Submit a request to App Assure.&lt;/A&gt;&lt;/P&gt;
&lt;P class="lia-align-left"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-align-left"&gt;&amp;nbsp;&lt;U&gt;&lt;STRONG&gt;To read previous entries in our Behind the Build series, see below:&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV class="lia-align-left"&gt;&lt;A class="lia-external-url" href="https://aka.ms/AppAssure_BehindtheBuild_Netskope" target="_blank" rel="noopener"&gt;Behind the Build with Netskope: Engineering at the Edge for Strategic Impact&lt;/A&gt;&lt;/DIV&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class="lia-align-left"&gt;&lt;A class="lia-external-url" href="https://aka.ms/AppAssure_BehindtheBuild_RSA" target="_blank" rel="noopener"&gt;Behind the Build with RSA: Identity Resilience in the Age of AI&lt;/A&gt;&lt;/DIV&gt;
&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Wed, 01 Jul 2026 17:51:59 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-sentinel-blog/behind-the-build-with-gigamon-enriching-microsoft-sentinel-with/ba-p/4530360</guid>
      <dc:creator>Natee_Pretikul</dc:creator>
      <dc:date>2026-07-01T17:51:59Z</dc:date>
    </item>
    <item>
      <title>The AI-first SOC: Copilot, UEBA, threat intelligence, and SOC optimization</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-sentinel-blog/the-ai-first-soc-copilot-ueba-threat-intelligence-and-soc/ba-p/4528609</link>
      <description>&lt;H5&gt;&lt;STRONG&gt;&lt;SPAN data-teams="true"&gt;Co-authored with Lizet Pena, Caroline Mutua, Alvin Kua and Marco Sudahl&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/H5&gt;
&lt;P&gt;&lt;EM&gt;The portal change was the easy part. The real upside is the operating model it unlocks—generative AI in every workflow, behavioral analytics across hybrid and multi-cloud, native threat intelligence, and SOC optimization recommendations that tell you exactly where to invest next.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;If the first five parts of this series were about what changes and how to plan for it, this part is about what you get on the other side. Microsoft Defender is the only place where Security Copilot agents, the unified UEBA experience, native MDTI convergence, and the full SOC optimization recommendation engine come together—and each one moves a needle that classic Sentinel could not move alone.&lt;/P&gt;
&lt;P&gt;None of these capabilities require a forced cutover. Most of them light up the moment a workspace is connected. The story is not “give up Sentinel for Defender”—it is “your existing investment now compounds with capabilities you did not have before.”&lt;/P&gt;
&lt;H4&gt;What this post covers&lt;/H4&gt;
&lt;UL&gt;
&lt;LI&gt;Security Copilot: embedded experience, standalone portal, and AI agents&lt;/LI&gt;
&lt;LI&gt;UEBA: same engine, unified entity pages, new data sources, unified IdentityInfo schema&lt;/LI&gt;
&lt;LI&gt;Threat intelligence: MDTI converged natively, richer STIX data model, actor-centric investigations&lt;/LI&gt;
&lt;LI&gt;SOC optimization: from manual workbooks to personalized, cross-service recommendations&lt;/LI&gt;
&lt;LI&gt;Persona implications, common misconceptions, a do-this-week checklist, and the series wrap-up&lt;/LI&gt;
&lt;/UL&gt;
&lt;H4&gt;Security Copilot in Defender&lt;/H4&gt;
&lt;P&gt;&lt;A href="https://learn.microsoft.com/en-us/copilot/security/" target="_blank" rel="noopener"&gt;Microsoft Security Copilot&lt;/A&gt; is a generative AI-powered security solution. Customers can interact with Security Copilot across their Sentinel and Defender data in Defender (embedded experience and agents) and the standalone copilot portal (&lt;A href="https://securitycopilot.microsoft.com" target="_blank" rel="noopener"&gt;securitycopilot.microsoft.com&lt;/A&gt;).&lt;/P&gt;
&lt;H5&gt;Core capabilities&lt;/H5&gt;
&lt;UL&gt;
&lt;LI&gt;Investigate and remediate threats; incident summarization, guided step-by-step response actions, triage complex alerts into actionable summaries&lt;/LI&gt;
&lt;LI&gt;Build KQL queries and analyze scripts; natural language → KQL in advanced hunting, reverse engineer suspicious PowerShell, batch, and bash scripts&lt;/LI&gt;
&lt;LI&gt;Understand risks and manage posture; prioritized risk insights, exposure context, and threat actor intelligence from Microsoft and open source&lt;/LI&gt;
&lt;LI&gt;Develop reports for stakeholders; generate incident reports in natural language, tailored to audience tone and language&lt;/LI&gt;
&lt;/UL&gt;
&lt;H5&gt;AI agents&lt;/H5&gt;
&lt;P&gt;Microsoft-built and partner-built agents are available through the Security Store in Defender, automating SOC tasks such as incident triage, access reviews, and vulnerability remediation. Custom agents can be built using agent builder, APIs, MCP, and Graph.&lt;/P&gt;
&lt;H5&gt;Transition considerations&lt;/H5&gt;
&lt;UL&gt;
&lt;LI&gt;The embedded experience of Security Copilot and agents are available in the &lt;A href="https://learn.microsoft.com/en-us/azure/sentinel/microsoft-sentinel-defender-portal" target="_blank" rel="noopener"&gt;Defender portal&lt;/A&gt; and not in the Azure portal.&lt;/LI&gt;
&lt;LI&gt;No configuration migration needed; available once licensed.&lt;/LI&gt;
&lt;LI&gt;Train SOC analysts on Security Copilot as part of Defender onboarding.&lt;/LI&gt;
&lt;/UL&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Why this lands well: &lt;/STRONG&gt;Generative AI is not bolted on to the side of the SOC—it is embedded in the surfaces where work already happens. Triage, KQL authoring, scripted-attack analysis, and stakeholder reporting each get a copilot, and the agent marketplace means the catalog grows without you writing more code.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;H4&gt;UEBA: Same engine, richer surface&lt;/H4&gt;
&lt;P&gt;Most User and Entity Behavior Analytics (&lt;A href="https://learn.microsoft.com/en-us/azure/sentinel/ueba-reference" target="_blank" rel="noopener"&gt;UEBA&lt;/A&gt;) functionality carries over to Defender with minimal disruption—anomaly detection, behavioral baselines, and investigation priority scoring all continue to work. However, there are meaningful differences in how UEBA surfaces within the unified experience that analysts and engineering teams should understand before transitioning.&lt;/P&gt;
&lt;P&gt;The Microsoft Sentinel UEBA behaviors layer transforms high-volume raw security logs into structured, plain-language behavioral summaries (“who did what to whom”), adding context such as MITRE ATT&amp;amp;CK mappings and entity relationships to improve investigation clarity and efficiency.&lt;/P&gt;
&lt;P&gt;These behaviors are neutral activity summaries (not alerts), aggregating and sequencing events to help analysts detect patterns, hunt threats, and build simpler detections, ultimately speeding up investigation and response without requiring deep knowledge of underlying log sources.&lt;/P&gt;
&lt;H4&gt;What changes in Defender&lt;/H4&gt;
&lt;P&gt;The standalone entity behavior blade from the Azure portal is no longer available. Instead, UEBA insights are integrated directly into the unified entity pages under assets (accounts, hosts, mailboxes) and evidence (IPs, files, URLs). Users flagged with behavioral anomalies are automatically tagged with a “UEBA anomalies” label on the user page, showing confidence scores and anomaly counts—making it easier to prioritize investigation without navigating to a separate blade. Additionally, the incident graph now supports a “Go hunt” action on user entities that surfaces all related anomalies, and advanced hunting queries against UEBA-related tables display contextual banners suggesting joins with the anomalies table for richer results. Also, in Defender, UEBA now has &lt;A href="https://learn.microsoft.com/en-us/azure/sentinel/entity-behaviors-layer" target="_blank" rel="noopener"&gt;behavior layers&lt;/A&gt;.&lt;/P&gt;
&lt;H5&gt;New data sources (Defender only)&lt;/H5&gt;
&lt;P&gt;After transitioning, UEBA gains access to additional data sources that are not available in the Azure portal: AAD managed identity sign-in logs, AAD service principal sign-in logs, AWS CloudTrail, device logon events, Okta single sign-on, and GCP audit logs. These expand behavioral baselines beyond traditional user sign-ins to cover service principals, multi-cloud activity, and device-level logon events—a significant uplift for organizations with hybrid or multi-cloud environments.&lt;/P&gt;
&lt;H5&gt;IdentityInfo table: Two flavors, now unified&lt;/H5&gt;
&lt;P&gt;The IdentityInfo table has historically existed in two separate versions: one populated by Microsoft Defender for identity (MDI) in advanced hunting, and another populated by Microsoft Sentinel’s UEBA engine in log analytics.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Important - Table-level RBAC on IdentityInfo:&amp;nbsp;&lt;/STRONG&gt;If Table-level RBAC has been delegated to the Sentinel IdentityInfo table, this permission model is not carried over to Defender. Table-level RBAC for the IdentityInfo table is not supported in the Defender portal. Review and update your workspace RBAC delegations before migrating to avoid unexpected access gaps. For details, see the&amp;nbsp;&lt;A href="https://learn.microsoft.com/en-us/azure/sentinel/move-to-defender#investigate-with-ueba-in-the-defender-portal" target="_blank" rel="noopener"&gt;&lt;EM&gt;Investigate with UEBA in the Defender portal&lt;/EM&gt;&lt;/A&gt; section in the Microsoft documentation.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;After onboarding to Defender, these merge into a &lt;A href="https://learn.microsoft.com/en-us/defender-xdr/advanced-hunting-identityinfo-table" target="_blank" rel="noopener"&gt;unified IdentityInfo table&lt;/A&gt; that includes fields from both sources. If UEBA is enabled, the UEBA-specific columns—such as BlastRadius, GroupMembership, CompanyName, DeletedDateTime, EmployeeId, OtherMailAddresses, State, and Tags—are automatically visible in the unified schema. Without UEBA enabled, these columns are not available.&lt;/P&gt;
&lt;P&gt;The key action item here is that the unified schema introduces field name differences that can break existing queries.&lt;/P&gt;
&lt;P&gt;The following table maps old field names to the new unified schema:&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Log analytics field&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Unified schema field&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;AccountCloudSID&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;CloudSid&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;AccountCreationTime&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;CreatedDateTime&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;AccountSID&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;OnPremSid&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;AccountUPN&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;AccountUpn&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;AdditionalMailAddresses&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;OtherMailAddresses&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;MailAddress&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;EmailAddress&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;OnPremisesDistinguishedName&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;DistinguishedName&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;RiskState&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;RiskStatus&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;SAMAccountName&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;AccountName&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;SourceSystem&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;IdentityEnvironment&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;StreetAddress&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Address&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;UserType&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;TenantMembershipType&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 50.00%" /&gt;&lt;col style="width: 50.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Additionally, UserState and UserStateChangedOn no longer exist in the unified schema and must be removed from any queries that reference them.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Important caveat: &lt;/STRONG&gt;Existing Sentinel analytic rules and workbooks that query IdentityInfo via the log analytics API continue to hit the Sentinel table in log analytics—they are not automatically redirected to the advanced hunting table. However, any queries executed in advanced hunting in Defender use the unified table. Teams should verify both query paths during transition.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Why this lands well: &lt;/STRONG&gt;The same UEBA engine you already trust, now embedded in entity pages where investigations actually happen, fed by additional multi-cloud and identity data sources that simply do not exist on the Azure portal side.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;H4&gt;Threat intelligence converged natively&lt;/H4&gt;
&lt;H5&gt;Azure portal versus Defender at a glance&lt;/H5&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Aspect&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Azure portal&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Defender&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Custom threat intelligence management&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Sentinel’s threat intelligence blade for ingesting, viewing, and managing custom indicators (IOCs). Threat intelligence analytics rule matches against data sources automatically.&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Defender’s threat intelligence blade is focused on Microsoft-curated intelligence integrated directly into the unified experience. Threat intelligence ingestion using STIX/TAXII is unchanged architecturally but is managed from the Defender UI rather than a standalone Sentinel experience. Customers can add/import their own threat intelligence using bulk file imports, or add new threat intelligence objects.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Microsoft threat intelligence&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Threat intelligence analytics rule provides high-fidelity alerts using Microsoft’s domain, IP, and URL threat indicators across CEF, Syslog, OfficeActivity, AzureActivity, DNS.&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Threat intelligence analytic rules are also present. &lt;A href="https://learn.microsoft.com/en-us/defender/threat-intelligence/what-is-microsoft-defender-threat-intelligence-defender-ti" target="_blank" rel="noopener"&gt;Microsoft Defender threat intelligence (MDTI)&lt;/A&gt; converged into a unified experience in Defender, where threat intelligence is now surfaced natively across Defender and Microsoft Sentinel through &lt;A href="https://learn.microsoft.com/en-us/defender-xdr/threat-analytics" target="_blank" rel="noopener"&gt;threat analytics&lt;/A&gt;, investigations, and hunting workflows.&lt;/P&gt;
&lt;P&gt;Microsoft Threat Intelligence insights are embedded directly into incidents to provide enriched context and can also be accessed seamlessly through Security Copilot prompts. Security Copilot leverages Microsoft threat intelligence and non-Microsoft plugins.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 33.33%" /&gt;&lt;col style="width: 33.33%" /&gt;&lt;col style="width: 33.33%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H5&gt;Transition considerations&lt;/H5&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Continue managing custom threat intelligence feeds &lt;/STRONG&gt;using Sentinel connectors and the threat intelligence experience for TAXII/STIX feeds&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Keep the threat intelligence analytics rule enabled &lt;/STRONG&gt;for automated indicator matching; resulting alerts can still flow into Defender incidents&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Use MDTI context and Security Copilot prompts &lt;/STRONG&gt;to enrich investigations&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Threat intelligence is no longer Sentinel-only&lt;/STRONG&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;In Defender, threat intelligence is:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Linked to &lt;STRONG&gt;Defender incidents&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;Visible in &lt;STRONG&gt;threat analytics&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;Usable in &lt;STRONG&gt;cross-product hunting&lt;/STRONG&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;This is not possible in the Azure portal experience, which is Sentinel-scoped only.&lt;/P&gt;
&lt;H5&gt;MDTI convergence (native, not a connector)&lt;/H5&gt;
&lt;UL&gt;
&lt;LI&gt;MDTI is converged directly into &lt;STRONG&gt;Defender + Sentinel&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;Threat actor profiles, campaigns, and IOCs surface automatically&lt;/LI&gt;
&lt;LI&gt;No separate MDTI portal or workflow is required&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;This convergence does not fully materialize in the Azure portal experience.&lt;/P&gt;
&lt;H5&gt;Richer STIX data model in Defender&lt;/H5&gt;
&lt;P&gt;Defender emphasizes richer relationships, such as:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;ThreatIntelIndicators&lt;/LI&gt;
&lt;LI&gt;ThreatIntelObjects&lt;/LI&gt;
&lt;LI&gt;Actor ↔ tool ↔ infrastructure relationships&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;This enables &lt;STRONG&gt;actor-centric investigations&lt;/STRONG&gt;, not just IOC matching.&lt;/P&gt;
&lt;H5&gt;Better correlation and investigation&lt;/H5&gt;
&lt;UL&gt;
&lt;LI&gt;Threat intelligence automatically enriches &lt;STRONG&gt;unified incidents&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;Indicators connect to affected endpoints, users, mail, and cloud workloads&lt;/LI&gt;
&lt;/UL&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Why this lands well: &lt;/STRONG&gt;Threat intelligence stops being a side-product. Microsoft-curated intelligence and your custom feeds both flow into the same incident view, surface in threat analytics, and become huntable across Defender + Sentinel—with Security Copilot in the loop for enrichment.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;H4&gt;SOC Optimization: From workbooks to recommendations&lt;/H4&gt;
&lt;H5&gt;Azure portal versus Defender&lt;/H5&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Portal&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;SOC optimization model&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Azure portal&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;UL&gt;
&lt;LI&gt;No native SOC Optimization prior to May 2024. Customers used the MITRE ATT&amp;amp;CK coverage page (Preview) and community workbooks (Workspace Usage, Security Operations Efficiency) for manual, non-opinionated assessment&lt;/LI&gt;
&lt;LI&gt;No personalized recommendations; analysts had to interpret workbooks themselves&lt;/LI&gt;
&lt;LI&gt;Available in Azure portal (since May 2024 public preview)—same recommendation engine. However, the Azure portal provides Sentinel-only visibility and lags Defender in surfacing newer recommendation types and aggregation views, such as risk-based optimization and cross-service context&lt;/LI&gt;
&lt;LI&gt;Sunsets March 31, 2027, along with the rest of the Azure portal Sentinel UI&lt;/LI&gt;
&lt;/UL&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Defender&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/sentinel/soc-optimization/soc-optimization-access" target="_blank" rel="noopener"&gt;SOC optimization&lt;/A&gt; overview tile shows recent optimization activity, threat-based coverage tiers (low, medium, high), and ingestion trends&lt;/LI&gt;
&lt;LI&gt;Three GA recommendation types: data value (identify unused or low-value ingested data), threat-based coverage (close detection gaps against specific threats), and similar organizations (benchmarking)&lt;/LI&gt;
&lt;LI&gt;Preview capabilities: risk-based recommendations, AI-powered MITRE ATT&amp;amp;CK tagging, and unused columns detection&lt;/LI&gt;
&lt;LI&gt;Cross-service coverage: Unified view spans Sentinel + Defender workloads, not just Sentinel&lt;/LI&gt;
&lt;LI&gt;Recommendations API (Preview, 2024-01-01): GET/PATCH/triggerEvaluation for automation; scales for MSSPs.&lt;/LI&gt;
&lt;LI&gt;Permissions: Standard Sentinel RBAC (Reader to view, Contributor to action)&lt;/LI&gt;
&lt;/UL&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 50.00%" /&gt;&lt;col style="width: 50.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H5&gt;Transition considerations&lt;/H5&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Not Defender-exclusive: &lt;/STRONG&gt;Core recommendation engine runs in both portals—no functionality loss for customers who transition early&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Defender advantages: &lt;/STRONG&gt;Cross-service coverage (Sentinel + Defender), richer overview tile, and Preview-only risk-based recommendations are Defender exclusives&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Preview features evolving: &lt;/STRONG&gt;Risk-based, AI MITRE tagging, and unused columns remain in Preview—verify GA status against “What’s new in Sentinel” before relying on them&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Retire manual workbooks: &lt;/STRONG&gt;Phase out reliance on the Workspace Usage and Security Operations Efficiency workbooks; SOC optimization supersedes them with personalized, actionable recommendations&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Action tracking: &lt;/STRONG&gt;Use the recommendations API to track which optimizations your team actions over time—useful for MSSPs reporting SOC maturity to customers&lt;/LI&gt;
&lt;/UL&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Why this lands well: &lt;/STRONG&gt;You stop guessing what to improve. The engine tells you where coverage is weak, where ingestion is wasted, and how peer organizations are configured—and it does so across Sentinel + Defender, not just one product.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;H4&gt;Persona implications&lt;/H4&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Persona&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;What this part means for you&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;SOC analyst&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Security Copilot in-line for triage, incident summaries, KQL drafting, and script reverse-engineering. UEBA anomalies show up on the entity page itself, not a separate blade.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Threat hunter&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Unified IdentityInfo, multi-cloud UEBA data sources, MDTI-enriched investigations, and natural-language-to-KQL all in one surface.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Detection engineer&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Update IdentityInfo field names in existing queries; verify both log analytics and advanced hunting paths during transition.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;SOC manager&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;SOC optimization gives you a personalized, cross-service action list. Retire the manual workbooks; track action rate through the recommendations API.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;MSSP operator&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;SOC optimization recommendations API scales for MSSP reporting; agents from the Security Store help automate repetitive customer-facing SOC tasks.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 50.00%" /&gt;&lt;col style="width: 50.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;H4&gt;Clearing up common misconceptions&lt;/H4&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;“Security Copilot is only available in the standalone portal.” &lt;BR /&gt;&lt;/STRONG&gt;It’s not. The embedded experience and agents are available inside Defender once licensed—no configuration migration needed.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;“UEBA loses functionality after the transition.” &lt;BR /&gt;&lt;/STRONG&gt;UEBA functionality remains. Anomaly detection, baselines, and priority scoring all carry over—and you gain multi-cloud and service-principal data sources that do not exist in the Azure portal experience.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;“All my IdentityInfo queries will keep working unchanged.” &lt;BR /&gt;&lt;/STRONG&gt;Partially. Sentinel analytic rules and workbooks hitting log analytics still work; Advanced hunting queries use the unified table with new field names—verify both paths during transition.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;“MDTI needs a separate portal or connector.” &lt;BR /&gt;&lt;/STRONG&gt;It doesn’t. MDTI is converged natively into Defender + Sentinel—threat actor profiles, campaigns, and IOCs surface automatically.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;“SOC Optimization is Defender-only.” &lt;BR /&gt;&lt;/STRONG&gt;The core engine runs in both portals. Defender adds cross-service coverage, the richer overview tile, and Preview-only recommendation types.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;“Community workbooks for usage and efficiency are still the recommended path.” &lt;BR /&gt;&lt;/STRONG&gt;Not anymore. SOC optimization supersedes them with personalized, actionable recommendations—phase the manual workbooks out.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H4&gt;Do this week&lt;/H4&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Enable&lt;/STRONG&gt; the embedded experience in Defender and pilot incident summarization on one active incident if you are licensed for Security Copilot&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Walk through&lt;/STRONG&gt; the SOC optimization overview tile with your manager—pick one data-value and one threat-based recommendation to action this sprint&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Inventory&lt;/STRONG&gt; queries that reference the legacy log analytics IdentityInfo fields; map them against the unified schema field-name table and prioritize updates&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Confirm&lt;/STRONG&gt; UEBA is enabled where applicable so the additional unified-schema columns light up&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Open&lt;/STRONG&gt; the Defender threat intelligence pane and verify MDTI context is surfacing on at least one current incident&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Try&lt;/STRONG&gt; one natural-language-to-KQL prompt in advanced hunting via Security Copilot—a quick “aha” for the team&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Evaluate&lt;/STRONG&gt; at least one Microsoft-built or partner-built agent from the Security Store for a high-volume repetitive task if you are an MSSP&lt;/LI&gt;
&lt;/UL&gt;
&lt;H4&gt;Closing the series&lt;/H4&gt;
&lt;P&gt;Six parts in, the picture should be clear: the Microsoft Sentinel transition to Defender is not a forced UI swap. It is the consolidation of SIEM and XDR into a single operating model—one incident queue, one detection rules view, one hunting surface, one governance plane, and a single AI-first toolchain.&lt;/P&gt;
&lt;P&gt;Everything you have built carries forward. Analytics rules continue to fire. Playbooks continue to run. Workbooks continue to render. Your Azure RBAC continues to govern. And the new capabilities—XDR correlation, custom detections, Security Copilot, the data lake, UEBA on multi-cloud, MDTI convergence, SOC optimization—are the upside you collect for making the move.&lt;/P&gt;
&lt;P&gt;March 31, 2027 sets the deadline. The adoption helper sets the starting line. Everything in between is yours to design—and this series exists so you can design it with confidence.&lt;/P&gt;
&lt;H4&gt;Read the rest of the series&lt;/H4&gt;
&lt;P&gt;Each part in this series stands alone—pick the angle that matters most to you, or read them in order.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://aka.ms/usx-blog-1" target="_blank" rel="noopener"&gt;&lt;STRONG&gt;Part 1 – Beyond a portal move: The strategic shift to Defender&lt;/STRONG&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Why the transition matters at the architecture and program level—the executive framing, the deadline, and the analyst validation.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://aka.ms/usx-blog-2" target="_blank" rel="noopener"&gt;&lt;STRONG&gt;Part 2 – Anatomy of the change: Incidents, alerts, correlation, and data&lt;/STRONG&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;The component-level mechanics: how the XDR correlation engine replaces Fusion, why incidents are no longer alert-centric, and what changes (and doesn’t) in your data architecture.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://aka.ms/usx-blog-3" target="_blank" rel="noopener"&gt;&lt;STRONG&gt;Part 3 – Detection and automation, reimagined&lt;/STRONG&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;How analytics rules, playbooks, workbooks, and hunting evolve—and why the toolbelt doubled, not shrank.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://aka.ms/usx-blog-4" target="_blank" rel="noopener"&gt;&lt;STRONG&gt;Part 4 – The governance shift: RBAC, URBAC, data lake, and MSSP&lt;/STRONG&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;The move from Azure RBAC to URBAC, the data lake operating model, and multi-tenant patterns.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://aka.ms/usx-blog-5" target="_blank" rel="noopener"&gt;&lt;STRONG&gt;Part 5 – Your readiness playbook: Adoption helper, costs, APIs, and the checklist&lt;/STRONG&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;A practical plan: the Defender adoption helper, cost reality, API strategy, and the migration checklist.&lt;/P&gt;</description>
      <pubDate>Tue, 30 Jun 2026 16:00:00 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-sentinel-blog/the-ai-first-soc-copilot-ueba-threat-intelligence-and-soc/ba-p/4528609</guid>
      <dc:creator>Mohit_Kumar1</dc:creator>
      <dc:date>2026-06-30T16:00:00Z</dc:date>
    </item>
    <item>
      <title>What’s new in Microsoft Sentinel: June 2026</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-sentinel-blog/what-s-new-in-microsoft-sentinel-june-2026/ba-p/4531902</link>
      <description>&lt;P&gt;Welcome back to What's new in Microsoft Sentinel. In June, Sentinel SIEM’s Advanced Security Information Model (ASIM) broadens its normalization, so one analytic rule can reach more sources with less per-source work and, additionally, two new ASIM schemas can now bring asset inventory and AI agent telemetry into common form. In Microsoft Sentinel data lake, the Agent Identities Asset Connector adds the identity context behind your AI agents, helping you see who owns an agent and what permissions it holds. In Sentinel MCP, graph tools help security teams investigate threats and optimize security coverage by visualizing relationships across identities, devices, alerts, and signals in a unified graph experience.&lt;/P&gt;
&lt;P&gt;Read on for the details, and explore the resources at the end to go deeper.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Sentinel innovations:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A class="lia-internal-link" href="#community--1-SIEM" target="_blank" rel="noopener" data-lia-auto-title="Sentinel SIEM" data-lia-auto-title-active="0"&gt;Sentinel SIEM&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="lia-internal-link" href="#community--1-Lake" target="_blank" rel="noopener" data-lia-auto-title="Sentinel data lake" data-lia-auto-title-active="0"&gt;Sentinel data lake&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="lia-internal-link" href="#community--1-MCP" target="_blank" rel="noopener" data-lia-auto-title="Sentinel MCP" data-lia-auto-title-active="0"&gt;Sentinel MCP&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="lia-internal-link" href="#community--1-Store" target="_blank" rel="noopener" data-lia-auto-title="Microsoft Security Store" data-lia-auto-title-active="0"&gt;Microsoft Security Store&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H1&gt;&lt;a id="community--1-SIEM" class="lia-anchor"&gt;&lt;/a&gt;&lt;STRONG class="lia-linked-item"&gt;Sentinel SIEM&lt;/STRONG&gt;&lt;/H1&gt;
&lt;H4&gt;&lt;STRONG&gt;Advanced Security Information Model (ASIM) parsers and schemas [Generally available]&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;The Advanced Security Information Model (ASIM) in Sentinel normalizes logs into common schemas, so one analytic rule can cover many sources without managing each native schema. ASIM coverage has expanded across more Azure services, broader AWS CloudTrail activity, and a range of third-party firewall, identity, and proxy products, so your detections reach more of your environment with less per-source work. Two schemas also join ASIM: &lt;A href="https://learn.microsoft.com/en-us/azure/sentinel/normalization-schema-asset" target="_blank" rel="noopener"&gt;Asset Entities&lt;/A&gt; normalizes asset inventory so you can correlate files and assets across investigations, and &lt;A href="https://learn.microsoft.com/en-us/azure/sentinel/normalization-schema-agent" target="_blank" rel="noopener"&gt;AI Agent Events&lt;/A&gt; normalizes telemetry from AI-driven workflows and autonomous agents. Browse the &lt;A href="https://github.com/Azure/Azure-Sentinel/tree/master/Parsers" target="_blank" rel="noopener"&gt;ASIM parsers on GitHub&lt;/A&gt; to explore, file issues, or contribute. &lt;A href="https://techcommunity.microsoft.com/blog/microsoftsentinelblog/introducing-new-additions-to-microsoft-sentinel-normalization-and-asim/4524584" target="_blank" rel="noopener"&gt;Learn more in our blog.&lt;/A&gt;&lt;/P&gt;
&lt;H4&gt;&lt;STRONG&gt;Sentinel transition to Defender &lt;/STRONG&gt;&lt;STRONG&gt;blog &lt;/STRONG&gt;&lt;STRONG&gt;series&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;By &lt;STRONG&gt;March 31, 2027&lt;/STRONG&gt;, all Microsoft Sentinel customers transition to Defender. This six-part series guides you through moving your Sentinel experience from the Azure portal to Defender, where SIEM, XDR, threat intelligence, AI, and automation come together in one experience. Your analytics rules, playbooks, workbooks, log analytics workspace, and access assignments all carry forward while the operational layer becomes more connected and intelligent. Starting early matters because you realize the benefits sooner, including a unified incident queue, cross-product correlation, Security Copilot, Sentinel data lake, and SOC optimization. Across the six-part blog series you get 1) the &lt;A href="https://aka.ms/usx-blog-1" target="_blank" rel="noopener"&gt;strategic shift&lt;/A&gt;, 2) the anatomy of &lt;A href="https://aka.ms/usx-blog-2" target="_blank" rel="noopener"&gt;incident and data changes&lt;/A&gt;, 3) &lt;A href="https://aka.ms/usx-blog-3" target="_blank" rel="noopener"&gt;detection and automation&lt;/A&gt;, 4) the &lt;A href="https://aka.ms/usx-blog-4" target="_blank" rel="noopener"&gt;governance shift&lt;/A&gt; across roles and access, 5) a &lt;A href="https://aka.ms/usx-blog-5" target="_blank" rel="noopener"&gt;readiness playbook&lt;/A&gt; with the adoption helper and cost guidance, and 6) a look at the &lt;A href="https://aka.ms/usx-blog-6" target="_blank" rel="noopener"&gt;AI-first SOC&lt;/A&gt;. Each part stands alone, so you can read in order or jump to what matters most to you.&lt;/P&gt;
&lt;H1&gt;&lt;a id="community--1-Lake" class="lia-anchor"&gt;&lt;/a&gt;&lt;STRONG class="lia-linked-item"&gt;Sentinel data lake&lt;/STRONG&gt;&lt;/H1&gt;
&lt;H4&gt;&lt;STRONG&gt;Agent Identities&lt;/STRONG&gt;&lt;STRONG&gt; Asset Connector&lt;/STRONG&gt;&lt;STRONG&gt; [Public preview]&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;The Agent Identities Asset Connector brings identity context for AI agents into Sentinel. Activity connectors like Agent 365 and Microsoft 365 Copilot already show you what AI agents do, but activity alone cannot tell you who owns an agent, what permissions it holds, or how it is governed. This connector fills that gap with four asset tables covering agent owners, agent identities, agent blueprints, and the service principals tied to those blueprints. Together they form a connected agent identity graph you can trace from owner to identity to blueprint to permissions to the resources an agent touches. Joining this asset data with activity data in Sentinel data lake lets you detect anomalous behavior relative to permissions, spot over-permissioned or misconfigured agents, and follow full execution chains for end-to-end traceability. To get started, install the Agent 365 and Microsoft 365 Copilot solutions in Content Hub and enable the asset and activity connectors. &lt;A href="https://techcommunity.microsoft.com/blog/microsoftsentinelblog/announcing-public-preview-agent-identities-asset-connector-for-microsoft-sentine/4527960" target="_blank" rel="noopener"&gt;Learn more.&lt;/A&gt;&lt;/P&gt;
&lt;H1&gt;&lt;a id="community--1-MCP" class="lia-anchor"&gt;&lt;/a&gt;&lt;STRONG class="lia-linked-item"&gt;Sentinel MCP&lt;/STRONG&gt;&lt;/H1&gt;
&lt;H4&gt;&lt;STRONG&gt;Sentinel MCP graph tools [Public preview]&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;&lt;A href="https://techcommunity.microsoft.com/blog/microsoft-security-blog/microsoft-sentinel-mcp-server---generally-available-with-exciting-new-capabiliti/4470125" target="_blank" rel="noopener"&gt;Microsoft Security Graph MCP tools, recently introduced in the Microsoft Sentinel MCP Server data exploration collection&lt;/A&gt; helps security teams investigate threats by exploring relationships between identities and device assets, and threat and activity signals ingested by data connectors and surfaced by analytic rules. Starting from an alert, analysts can follow the exposure path across connected entities — tracing lateral movement, understanding blast radius, and identifying configuration gaps — all from a single, interactive workspace. The tool provides a clear graph view that highlights dependencies and makes it easier to understand how content interacts across your environment. This helps security teams assess coverage, optimize content deployment, and identify areas that may need tuning or additional data sources. Executing graph queries via the MCP tools will trigger the graph meter. &lt;A href="https://learn.microsoft.com/en-us/azure/sentinel/datalake/sentinel-mcp-data-exploration-tool#graph-tools-preview" target="_blank" rel="noopener"&gt;Learn more&lt;/A&gt;.&lt;/P&gt;
&lt;H1&gt;&lt;a id="community--1-Store" class="lia-anchor"&gt;&lt;/a&gt;&lt;STRONG class="lia-linked-item"&gt;Microsoft Security Store&lt;/STRONG&gt;&lt;/H1&gt;
&lt;H4&gt;&lt;STRONG&gt;Partner testimonials from Adaquest and Glueckkanja&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;For partners like Adaquest and Glueckkanja, the &lt;A href="https://securitymarketplace.microsoft.com" target="_blank" rel="noopener"&gt;Microsoft Security Store&lt;/A&gt; helps not only put their years of knowledge, understanding, and best practices into a scalable, packaged solution, it gives them the ability to democratize that expertise and take it to market globally. Security Store operationalizes their expertise as always-on defenses — discoverable, deployable, and driving real outcomes inside the tools that security teams rely on every day.&lt;/P&gt;
&lt;P&gt;See how the Security Store is helping security teams act on threats faster with the right solutions and to be ready when it matters most:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Watch: &lt;A href="https://cdn-dynmedia-1.microsoft.com/is/content/microsoftcorp/4015150-Security-Store-Partner-Testimonials" target="_blank" rel="noopener"&gt;Adaquest unlocks faster response times for customers (testimonial) &lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Watch: &lt;A href="https://cdn-dynmedia-1.microsoft.com/is/content/microsoftcorp/4015197-Security-Store-Partner-Testimonials" target="_blank" rel="noopener"&gt;Glueckkanja builds agents with purpose (testimonial) &lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H1&gt;&lt;STRONG&gt;Additional resources&lt;/STRONG&gt;&lt;/H1&gt;
&lt;P&gt;Blogs and documentation:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/sentinel/normalization-schema-process-event" target="_blank" rel="noopener"&gt;The Advanced Security Information Model (ASIM) Process Event normalization schema reference&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.bluevoyant.com/blog/asim-first-threat-detection-microsoft-sentinel" target="_blank" rel="noopener"&gt;How BlueVoyant's ASIM-First Strategy Simplifies Threat Detection in Microsoft Sentinel&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/microsoft-security-blog/migrate-sentinel-to-defender---why-it-is-a-security-architecture-decision-not-ju/4513815" target="_blank" rel="noopener"&gt;Migrate Sentinel to Defender – Why It Is a Security Architecture Decision, Not Just a Portal Change&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/unified-secops/microsoft-sentinel-onboard" target="_blank" rel="noopener"&gt;Connect Microsoft Sentinel to the Microsoft Defender portal&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/microsoftsentinelblog/agent-365-connector-monitor-hunt-and-investigate-ai-agent-activity-in-microsoft-/4520836" target="_blank" rel="noopener"&gt;Agent 365 connector: Monitor, hunt, and investigate AI agent activity in Microsoft Sentinel&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/sentinel/datalake/sentinel-mcp-get-started" target="_blank" rel="noopener"&gt;Get started with Microsoft Sentinel MCP server&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Upcoming webinars and events:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;July 15–16: &lt;A href="https://msevents.microsoft.com/event?id=2760893161" target="_blank" rel="noopener"&gt;Microsoft Virtual Training Day: Predict and Defend Against Cybersecurity Threats&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;July 22: &lt;A href="https://msevents.microsoft.com/event?id=3907033170" target="_blank" rel="noopener"&gt;Microsoft Security Immersion Event: Shadow Hunter&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;July 23-24: &lt;A href="https://msevents.microsoft.com/event?id=2567286143" target="_blank" rel="noopener"&gt;Microsoft Virtual Training Day: Introduction to Microsoft Security&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;July 28: &lt;A href="https://msevents.microsoft.com/event?id=3805883258" target="_blank" rel="noopener"&gt;Tech Brief: Modernize security operations with a unified platform&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;July 29: &lt;A href="https://msevents.microsoft.com/event?id=2157689843" target="_blank" rel="noopener"&gt;Security Immersion Event: Into the Breach&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H1&gt;&lt;STRONG&gt;Stay connected&lt;/STRONG&gt;&lt;/H1&gt;
&lt;P&gt;Check back each month for the latest innovations, updates, and events to ensure you’re getting the most out of &lt;A href="https://aka.ms/microsoftsentinel" target="_blank" rel="noopener"&gt;Microsoft Sentinel&lt;/A&gt;. We’ll see you in the next edition!&lt;/P&gt;</description>
      <pubDate>Tue, 30 Jun 2026 16:43:18 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-sentinel-blog/what-s-new-in-microsoft-sentinel-june-2026/ba-p/4531902</guid>
      <dc:creator>TomerBrand</dc:creator>
      <dc:date>2026-06-30T16:43:18Z</dc:date>
    </item>
    <item>
      <title>Your readiness playbook: adoption helper, costs, APIs, and the checklist</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-sentinel-blog/your-readiness-playbook-adoption-helper-costs-apis-and-the/ba-p/4528608</link>
      <description>&lt;H5&gt;&lt;STRONG&gt;&lt;SPAN data-teams="true"&gt;Co-authored with Lizet Pena, Caroline Mutua, Alvin Kua and Marco Sudahl&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/H5&gt;
&lt;P&gt;&lt;EM&gt;The transition is not a project—it is a sequence of small, ordered decisions. Here is the readiness tool that scores your environment in minutes, the cost story you can take to finance, the API strategy that future-proofs your integrations, and the FAQ list that answers the questions your team is already asking.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Most transition anxiety comes from not knowing what you do not know. The Defender transition is mature enough that Microsoft has packaged the readiness work into a script, the cost work into an estimator, and the API work into a clear migration story—and the most common questions are already answered.&lt;/P&gt;
&lt;P&gt;This part is the practical playbook. It does not introduce new architecture; it gives you the levers you can pull right now to know exactly where you stand, what it will cost, what to integrate with, and how to brief the people asking questions.&lt;/P&gt;
&lt;H4&gt;What this post covers&lt;/H4&gt;
&lt;UL&gt;
&lt;LI&gt;Defender adoption helper: a free readiness assessment with a visual dashboard&lt;/LI&gt;
&lt;LI&gt;Cost story: identical Sentinel pricing, optional new capabilities, and the new estimator&lt;/LI&gt;
&lt;LI&gt;The API strategy: SecurityInsights for workspace, Defender APIs for SOC, Graph security for the long run&lt;/LI&gt;
&lt;LI&gt;FAQ list: the five questions every stakeholder asks, answered&lt;/LI&gt;
&lt;LI&gt;Persona implications, common misconceptions, and a do-this-week checklist&lt;/LI&gt;
&lt;/UL&gt;
&lt;H4&gt;Defender adoption helper&lt;/H4&gt;
&lt;H5&gt;Overview&lt;/H5&gt;
&lt;P&gt;The &lt;A href="https://github.com/Azure/Azure-Sentinel/tree/master/Tools/Sentinel-Defender-Helper-Script" target="_blank" rel="noopener"&gt;Sentinel-Defender-helper-script&lt;/A&gt; is a PowerShell-based assessment tool designed to evaluate the readiness of Microsoft Sentinel workspaces before onboarding them into Microsoft Defender. It automates the discovery of potential compatibility issues, configuration gaps, and behavioral changes that organizations should address prior to the transition. The tool generates a structured CSV output that feeds an interactive HTML dashboard, providing security teams with a clear, visual summary of findings and actionable recommendations.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Important: &lt;/STRONG&gt;This script is not an official Microsoft product or supported solution. No Microsoft Customer Services &amp;amp; Support (CSS) ticket can be raised for issues related to this tool, and bug fixing is not guaranteed beyond the author's willingness to maintain it. No rights can be derived from this solution—incorrect or missing information generated by this script may lead to customer production disruption. Test it before using it in production environment.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;H5&gt;How it works&lt;/H5&gt;
&lt;P&gt;The tool operates in three phases:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Authentication&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The operator authenticates against Microsoft Entra ID using one of two supported modes. In User mode, the script initiates an interactive device code flow through the browser, leveraging the well-known Azure PowerShell first-party client ID — no app registration is required. In app mode, a pre-configured service principal with a client secret is used for unattended execution. In both cases, the account must hold the Microsoft Sentinel Reader role on each target workspace.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Analysis&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;For each workspace defined in the sentinelEnvironments.json configuration file, the script calls the Azure Resource Manager REST APIs to inspect five areas:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Defender data &lt;/STRONG&gt;–&lt;STRONG&gt; &lt;/STRONG&gt;Queries the retention settings of 21 Defender tables (e.g., DeviceInfo, EmailEvents, IdentityLogonEvents). Tables with default 30-day retention do not need separate ingestion into Sentinel, whereas tables with extended retention (e.g., 730 days) must continue to be stored in the log analytics workspace.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Analytics rules &lt;/STRONG&gt;–&lt;STRONG&gt; &lt;/STRONG&gt;Examines every analytics rule for conditions that may cause issues after onboarding: Fusion engine enablement (Fusion is automatically disabled post-transition), rules that do not generate incidents (alerts become invisible in Defender), incident reopening settings (not supported in Defender—new incidents are created instead), custom alert grouping (overridden by the Defender XDR correlation engine), and Microsoft incident creation rules (deactivated after onboarding). Disabled rules are flagged as informational only.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Automation rules &lt;/STRONG&gt;–&lt;STRONG&gt; &lt;/STRONG&gt;Inspects automation rule triggers and conditions for deprecated or incompatible patterns: use of incident title instead of analytics rule name, use of incident provider instead of alert product name, dependencies on Fusion-generated incidents, reliance on the description field (removed from SecurityIncident after onboarding), the Updated By = Microsoft 365 Defender value (which becomes Other), and alert-based triggers (which will only fire for Sentinel-originated alerts post-transition).&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Data lake region &lt;/STRONG&gt;–&lt;STRONG&gt; &lt;/STRONG&gt;Verifies whether the workspace region supports the data lake (Auxiliary tier) capability, checking against the list of currently supported Azure regions.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Table tiers &lt;/STRONG&gt;–&lt;STRONG&gt; &lt;/STRONG&gt;Enumerates all tables in the workspace and flags those using the basic tier, which must be converted to analytics or auxiliary before onboarding. Tables already on the auxiliary tier are noted as future data lake tables.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Output&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;All findings are collected into a flat CSV file (results.csv) with a consistent schema containing the row type (env, check, or score), workspace name, section, severity status, a human-readable message, and an optional sub-item identifier for grouping (e.g., the rule name). Per-section scores and a final readiness percentage are calculated automatically. The data lake checks are reported separately and do not affect the final readiness score.&lt;/P&gt;
&lt;H5&gt;Severity classification&lt;/H5&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Status&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Meaning&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Ok&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;No action required—the configuration is compatible with Defender.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Warning&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Requires attention before onboarding—the configuration will cause a behavioral change or loss of functionality.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Informational&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;No action required and does not block migration (e.g., tables with default retention, disabled rules). Counts as passed in the final score.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 50.00%" /&gt;&lt;col style="width: 50.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H5&gt;Analyzing the findings&lt;/H5&gt;
&lt;P&gt;The generated CSV is loaded into the accompanying HTML dashboard (dashboard.html), which provides:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;A multi-workspace overview with readiness scores and pie charts for each environment&lt;/LI&gt;
&lt;LI&gt;Per-workspace detail panels that break down findings by section (Defender data, analytics, automation, data lake region, table tiers)&lt;/LI&gt;
&lt;LI&gt;Multi-select filters to isolate Ok (Passed), Warning, or Informational findings&lt;/LI&gt;
&lt;LI&gt;Grouped rule views—analytics and automation rules are grouped by name, with individual sub-checks shown underneath&lt;/LI&gt;
&lt;LI&gt;Items overview cards summarizing the count and distribution of findings per section&lt;/LI&gt;
&lt;LI&gt;Export to PDF—either per workspace or across all environments at once&lt;/LI&gt;
&lt;LI&gt;Direct Azure portal links for each section, allowing operators to navigate directly to the relevant blade&lt;/LI&gt;
&lt;LI&gt;A built-in knowledge base with recommendations mapped to official Microsoft documentation&lt;/LI&gt;
&lt;LI&gt;A multitenant guidance tab covering access models (GDAP, Azure Lighthouse, B2B collaboration), MSSP best practices, and known limitations&lt;/LI&gt;
&lt;/UL&gt;
&lt;H5&gt;Project contents&lt;/H5&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;File&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Description&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;DefenderAdoptionHelper.ps1&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Main PowerShell script that performs the assessment via Azure REST APIs and generates the CSV output&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;dashboard.html&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Self-contained interactive HTML dashboard that visualizes the CSV findings&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;sentinelEnvironments.json&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Configuration file listing the Sentinel workspaces (subscription ID, resource group, workspace name) to be analyzed&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;results.csv&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Generated output file consumed by the dashboard&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 50.00%" /&gt;&lt;col style="width: 50.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Why this lands well: &lt;/STRONG&gt;You go from “I think we are ready” to a percentage score and a list of named items in under an hour—with a knowledge base that links each finding to documentation. The hardest part of any migration is no longer the hardest part.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;H4&gt;Cost story&lt;/H4&gt;
&lt;H5&gt;Cost model&lt;/H5&gt;
&lt;UL&gt;
&lt;LI&gt;The &lt;A href="https://www.microsoft.com/en-us/security/pricing/microsoft-sentinel/" target="_blank" rel="noopener"&gt;Microsoft Sentinel pricing&lt;/A&gt; remains same for analytics tier data. The cost advantage of Defender comes from &lt;A href="https://learn.microsoft.com/en-us/azure/sentinel/billing" target="_blank" rel="noopener"&gt;flexible billing&lt;/A&gt; and features (data lake, graph, MCP) that don’t exist in the Azure portal.&lt;/LI&gt;
&lt;LI&gt;Use the new &lt;A href="https://www.microsoft.com/en-us/security/pricing/microsoft-sentinel/cost-estimator" target="_blank" rel="noopener"&gt;Sentinel cost estimator&lt;/A&gt; to analyze your data ingestion and retention cost.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Sentinel data lake can introduce variable cost, but in most environments, it reduces overall cost meaningfully—by letting you keep long-tail data in a cheaper tier instead of paying analytics-tier rates for data you rarely query.&lt;/P&gt;
&lt;H5&gt;Reference SKU table&lt;/H5&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;SKU&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Meter type&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Price&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Data lake ingestion&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Data processed (GB)&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;$0.05 USD&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Data processing&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Data processed (GB)&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;$0.1 USD&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Data lake query&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Data analyzed (GB)&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;$0.005 USD&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Advanced data insights&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;1 compute hour&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;$0.15 USD&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Data lake storage&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Data stored (GB/month)&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;$0.026 USD&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Graph&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;1 compute hour&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;$3 USD&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 33.33%" /&gt;&lt;col style="width: 33.33%" /&gt;&lt;col style="width: 33.33%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Why this lands well: &lt;/STRONG&gt;Same analytics tier price, plus new tiers and capabilities that let you do things you simply could not do before. Run the estimator before you guess—most teams find the data lake reduces total spend once long-retention data is moved off the analytics tier.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;H4&gt;The API strategy&lt;/H4&gt;
&lt;P&gt;The SecurityInsights API remains operational, but its coverage is scoped to &lt;STRONG&gt;Sentinel-specific resources and data&lt;/STRONG&gt;. It does not surface &lt;STRONG&gt;Defender XDR incidents, Advanced Hunting data, or unified SecOps capabilities &lt;/STRONG&gt;- meaning integrations built on it will lack access to the core unified experience.&lt;/P&gt;
&lt;P&gt;Organizations relying on the SecurityInsights API should plan to migrate to the Microsoft Graph Security API as soon as possible. The Graph API provides unified coverage across Defender XDR incidents, Advanced Hunting, cases, and all emerging SecOps capabilities—areas the legacy Sentinel-only API does not expose. Migrating now reduces integration debt as Sentinel capabilities continue to consolidate into the unified Defender portal.&lt;/P&gt;
&lt;H5&gt;Common tasks&lt;/H5&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Create/update a Sentinel incident (workspace object): &lt;/STRONG&gt;&lt;A href="https://learn.microsoft.com/en-us/rest/api/securityinsights/" target="_blank" rel="noopener"&gt;SecurityInsights incidents&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;List/manage Sentinel analytics rules: &lt;/STRONG&gt;SecurityInsights alert rules&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Integrate with unified incidents: &lt;/STRONG&gt;&lt;A href="https://learn.microsoft.com/en-us/defender-xdr/api-overview" target="_blank" rel="noopener"&gt;Defender incidents API&lt;/A&gt; and &lt;A href="https://learn.microsoft.com/en-us/graph/api/resources/security-api-overview" target="_blank" rel="noopener"&gt;Graph security incidents&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Run Defender hunting programmatically: &lt;/STRONG&gt;&lt;A href="https://learn.microsoft.com/graph/api/security-security-runhuntingquery" target="_blank" rel="noopener"&gt;Graph security runHuntingQuery&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H5&gt;Sentinel versus Defender versus Microsoft Graph security&lt;/H5&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Dimension&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Microsoft Sentinel REST API (SecurityInsights)&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Microsoft Defender APIs&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Microsoft Graph security API&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;API surface&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Azure resource manager (ARM) API under Microsoft.SecurityInsights&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Product-specific REST APIs (/api/*) for Defender&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Unified Microsoft Graph endpoint (/security/*)&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Primary purpose&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Workspace configuration and SIEM/SOAR management&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Operational SOC actions in Defender&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Unified security operations and automation across products&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Typical usage&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Infrastructure and content lifecycle management&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Incident, alert, and detection operations&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Cross-solution incident, alert, hunting, and threat intelligence integration&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Scope of data&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Sentinel-only (workspace-scoped)&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Defender detections and signals&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Aggregated signals across Defender + Sentinel&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Incidents access&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Sentinel incidents (Azure portal model)&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Defender incident model&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Unified incident model (Defender + Sentinel)&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Alerts access&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Analytic rule-generated alerts&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Defender alerts&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Unified alerts across providers&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Detection management&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Yes (analytic rules; automation rules)&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Yes (custom detection rules)&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;No (read/act; no rule authoring)&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Hunting&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Yes (KQL via log analytics)&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Yes (Advanced hunting)&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Yes (Advanced hunting through runHuntingQuery)&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Threat intelligence (IOCs)&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Yes (TI CRUD; TAXII/STIX)&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Limited&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Yes (unified threat intelligence submission and investigation)&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Automation and SOAR&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Yes (logic apps playbooks; automation rules)&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Limited native automation&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Yes (event-driven workflows via Graph+ logic apps)&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Authentication and permissions&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Azure RBAC + Entra ID&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Entra app permissions (Defender scopes)&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Entra app permissions (Graph; unified RBAC)&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Portal alignment&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Azure portal (legacy Sentinel UX)&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Microsoft Defender&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Microsoft Defender&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Multitenant/MSSP&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Azure-subscription centric&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Supported&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Best fit through Graph + GDAP / MTO models&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Strategic direction&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Configuration and management API&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Product API (still supported)&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Strategic, long-term unified API&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 25.00%" /&gt;&lt;col style="width: 25.00%" /&gt;&lt;col style="width: 25.00%" /&gt;&lt;col style="width: 25.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H5&gt;Microsoft Graph security API – Overview&lt;/H5&gt;
&lt;P&gt;The &lt;A href="https://learn.microsoft.com/en-us/graph/api/resources/security-api-overview" target="_blank" rel="noopener"&gt;Microsoft Graph security API&lt;/A&gt; provides a unified interface and schema to integrate with security solutions from Microsoft and ecosystem partners; it federates queries to onboarded security providers and aggregates responses.&lt;/P&gt;
&lt;P&gt;What you use it for (common SOC/platform scenarios)&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Consolidate and correlate security alerts from multiple sources&lt;/LI&gt;
&lt;LI&gt;Pull and investigate incidents and alerts from services that are part of or integrated with Microsoft Defender&lt;/LI&gt;
&lt;LI&gt;Automate security tasks/workflows/reporting and send threat indicators (where applicable) into Microsoft products&lt;/LI&gt;
&lt;/UL&gt;
&lt;H5&gt;Advanced hunting through Graph (high-value capability)&lt;/H5&gt;
&lt;P&gt;Graph security supports advanced hunting through &lt;A href="https://learn.microsoft.com/graph/api/security-security-runhuntingquery" target="_blank" rel="noopener"&gt;runHuntingQuery&lt;/A&gt;, allowing you to run KQL on Microsoft 365 Defender advanced hunting tables and use results to enrich investigations.&lt;/P&gt;
&lt;H5&gt;Quotas/limits to keep in mind&lt;/H5&gt;
&lt;UL&gt;
&lt;LI&gt;Queries generally explore up to the past 30 days of data&lt;/LI&gt;
&lt;LI&gt;Results can return up to 100,000 rows&lt;/LI&gt;
&lt;LI&gt;You can make at least ~45 calls/min/tenant (varies by tenant size); requests can be throttled with HTTP 429 when resources are exhausted&lt;/LI&gt;
&lt;LI&gt;If a request runs longer than 3 minutes, it times out&lt;/LI&gt;
&lt;LI&gt;Query output has an overall 50 MB size limit&lt;/LI&gt;
&lt;/UL&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Why this lands well: &lt;/STRONG&gt;You do not have to rewrite anything urgently. Keep using SecurityInsights for Sentinel workspace work, layer Defender APIs for operational SOC actions, and treat Microsoft Graph security as the strategic direction for anything new—a single endpoint that already federates across products.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;H4&gt;FAQ list: Questions every stakeholder asks&lt;/H4&gt;
&lt;P&gt;&lt;STRONG&gt;“Is this transition mandatory?”&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Yes, but you have time. After March 31, 2027, Microsoft Sentinel will no longer be supported in the Azure portal and will be available only in Microsoft Defender. All customers will be redirected to Defender for Sentinel security operations.&lt;/P&gt;
&lt;P&gt;However, starting your transition now is strongly recommended to immediately access exclusive capabilities like Security Copilot, Sentinel data lake, and SOC optimization—features only available in Defender.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;“Do I need to migrate my workspace?”&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Workspace migration is not required. This is a common misconception. Your Sentinel workspace, log analytics workspace, and all data remain in their current Azure location. The transition is simply connecting your existing workspace to Defender for management.&lt;/P&gt;
&lt;P&gt;Nothing about your data storage, retention, or access changes. You are not moving data—you are adding a new portal interface to the same underlying workspace.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;“Will my costs change?”&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;There isn’t a cost change from the portal transition itself. Your Microsoft Sentinel pricing and billing model remains identical regardless of which portal you use. Data ingestion costs, commitment tiers, and log analytics charges all stay the same.&lt;/P&gt;
&lt;P&gt;The only new potential costs are optional features available exclusively in Defender:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Security Copilot: Requires separate licensing if you want AI-powered investigation assistance&lt;/LI&gt;
&lt;LI&gt;Sentinel data lake: Only incurs charges if you enable long-term retention beyond standard 90-day analytics tier&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Standard Sentinel operations (data connectors, analytics rules, automation, hunting) have zero cost change from transitioning.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;“Can I still use Azure portal?”&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Yes, until March 31, 2027. During the transition period, you can use both portals simultaneously:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Azure portal &lt;/STRONG&gt;for configuration management (data connectors, analytics rules, automation)&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Defender &lt;/STRONG&gt;for security operations (incidents, hunting, investigations)&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Many organizations adopt a hybrid approach during transition: security analysts work primarily in Defender for day-to-day operations, while SOC engineers use the Azure portal for configuration and rule development.&lt;/P&gt;
&lt;P&gt;After the March 2027 deadline, Sentinel security operations will only be available in Defender. However, the underlying Azure infrastructure (log analytics workspace, logic apps for playbooks) will remain accessible through the Azure portal for resource management.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;“What if I use multiple workspaces?”&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Multiple workspaces are fully supported.&lt;STRONG&gt; &lt;/STRONG&gt;Defender has robust multi-workspace capabilities:&lt;/P&gt;
&lt;P&gt;How it works:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Connect all your Sentinel workspaces to Defender (one-time setup per workspace)&lt;/LI&gt;
&lt;LI&gt;Designate a primary workspace that feeds the unified incident queue&lt;/LI&gt;
&lt;LI&gt;Use the workspace switcher in Defender to view or query other workspaces&lt;/LI&gt;
&lt;LI&gt;Advanced Hunting can query across multiple workspaces simultaneously using the workspace function&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;For MSSPs managing customer tenants:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;GDAP (granular delegated admin privileges) is now supported in Defender with MTO including Sentinel capabilities&lt;/LI&gt;
&lt;LI&gt;Azure Lighthouse continues supporting cross-tenant workspace management&lt;/LI&gt;
&lt;LI&gt;Each customer tenant’s workspaces can connect to Defender&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Considerations:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Only the primary workspace contributes to the unified incident queue&lt;/LI&gt;
&lt;LI&gt;Other workspaces are accessible for hunting, queries, and investigation but don’t merge incidents into the main queue&lt;/LI&gt;
&lt;LI&gt;This prevents overwhelming analysts with incidents from test/dev workspaces while maintaining access to all data&lt;/LI&gt;
&lt;/UL&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Why this lands well: &lt;/STRONG&gt;Every objection your stakeholders raise has a clean, source-grounded answer—mandatory but with runway, no data move, no surprise cost, two portals during transition, and full multi-workspace support.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;H4&gt;Persona implications&lt;/H4&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Persona&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;What this part means for you&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;SOC manager&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Run the adoption helper across all workspaces and use the dashboard to brief leadership with a readiness score, not a hunch.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Architect&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Use the API comparison to plan your long-run integration story: SecurityInsights for workspace config, Defender APIs for SOC ops, Graph security as the strategic direction.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Finance/FinOps&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Run the Sentinel cost estimator with current ingestion and retention numbers. Model what moving long-retention data from analytics to data lake does to monthly spend.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Integration engineer&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Inventory existing SecurityInsights API consumers; decide which new integrations should be built on Graph security from the start.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Stakeholder/ Sponsor&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Use the FAQ list as a one-pager for executives and security leadership—the five questions everyone asks, with grounded answers.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 50.00%" /&gt;&lt;col style="width: 50.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;Clearing up common misconceptions&lt;/H4&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;“This is a workspace migration.” &lt;BR /&gt;&lt;/STRONG&gt;It isn’t. Your Sentinel and log analytics workspaces stay where they are—you connect them to Defender.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;“Costs will go up automatically.” &lt;BR /&gt;&lt;/STRONG&gt;Analytics tier pricing is unchanged. New cost only appears if you opt into Security Copilot or enable the data lake—and the lake often reduces total cost when long-retention data moves off the analytics tier.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;“My API integrations will break on day one.” &lt;BR /&gt;&lt;/STRONG&gt;SecurityInsights remains the API for Sentinel workspace operations. Defender APIs and Graph security extend the surface area—they do not replace what you have.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;“I have to pick one portal.” &lt;BR /&gt;&lt;/STRONG&gt;Until March 31, 2027, both portals are supported. Most teams run a hybrid model during transition.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;“My multi-workspace setup will not work.” &lt;BR /&gt;&lt;/STRONG&gt;It will. Multi-workspace is fully supported. Designate a primary for the unified queue and use the workspace switcher for the rest.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;“I need an app registration to run the adoption helper.” &lt;BR /&gt;&lt;/STRONG&gt;Not required. User mode uses the well-known Azure PowerShell first-party client ID through device code flow—no App Registration required. App mode is available for unattended runs.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H4&gt;Do this week&lt;/H4&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Clone&lt;/STRONG&gt; the Defender adoption helper and run it across at least one production workspace; open the dashboard and walk the findings with your SOC team.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Take&lt;/STRONG&gt; the warnings the adoption helper surfaces and create one tracking item per warning (analytics rule cleanup, automation rule cleanup, table tier conversions).&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Run&lt;/STRONG&gt; the Sentinel cost estimator with your current ingestion + retention numbers—model the lake scenario for long-retention tables.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Inventory &lt;/STRONG&gt;which systems call the SecurityInsights APIs today; for any new integration starting this quarter, default to Microsoft Graph security.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Circulate&lt;/STRONG&gt; the FAQ list (or a one-pager version of it) to executives and security leadership before they ask.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Confirm&lt;/STRONG&gt; whether your primary workspace region supports the Sentinel data lake—it determines part of the tiering plan.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Calendar&lt;/STRONG&gt; a transition kickoff for the next two weeks—the readiness work above gives you exactly the right inputs.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H4&gt;Continue the series&lt;/H4&gt;
&lt;P&gt;Each part in this series stands alone—pick the angle that matters most to you or read them in order.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://aka.ms/usx-blog-1" target="_blank" rel="noopener"&gt;&lt;STRONG&gt;Part 1 – Beyond a portal move: The strategic shift to Defender&lt;/STRONG&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Why the transition matters at the architecture and program level—the executive framing, the deadline, and the analyst validation.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://aka.ms/usx-blog-2" target="_blank" rel="noopener"&gt;&lt;STRONG&gt;Part 2 – Anatomy of the change: Incidents, alerts, correlation, and data&lt;/STRONG&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;The component-level mechanics: how the XDR correlation engine replaces Fusion, why incidents are no longer alert-centric, and what changes (and doesn’t) in your data architecture.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://aka.ms/usx-blog-3" target="_blank" rel="noopener"&gt;&lt;STRONG&gt;Part 3 – Detection and automation, reimagined&lt;/STRONG&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;How analytics rules, playbooks, workbooks, and hunting evolve—and why the toolbelt doubled, not shrank.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://aka.ms/usx-blog-4" target="_blank" rel="noopener"&gt;&lt;STRONG&gt;Part 4 – The governance shift: RBAC, URBAC, data lake, and MSSP&lt;/STRONG&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;The move from Azure RBAC to URBAC, the data lake operating model, and multitenant patterns.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://aka.ms/usx-blog-6" target="_blank" rel="noopener"&gt;&lt;STRONG&gt;Part 6 – The AI-first SOC: Copilot, UEBA, threat intelligence, and SOC optimization&lt;/STRONG&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;The destination: how Security Copilot, UEBA, threat intelligence, and SOC optimization combine into a fundamentally different operating model.&lt;/P&gt;</description>
      <pubDate>Mon, 29 Jun 2026 16:00:00 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-sentinel-blog/your-readiness-playbook-adoption-helper-costs-apis-and-the/ba-p/4528608</guid>
      <dc:creator>Mohit_Kumar1</dc:creator>
      <dc:date>2026-06-29T16:00:00Z</dc:date>
    </item>
    <item>
      <title>The governance shift: RBAC, URBAC, data lake, and MSSP</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-sentinel-blog/the-governance-shift-rbac-urbac-data-lake-and-mssp/ba-p/4528607</link>
      <description>&lt;H5&gt;&lt;STRONG&gt;&lt;SPAN data-teams="true"&gt;Co-authored with Lizet Pena, Caroline Mutua, Alvin Kua and Marco Sudahl&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/H5&gt;
&lt;P&gt;&lt;EM&gt;Governance is the silent dependency every transition trips on. Read about how roles, data tiering, and multi-tenant operations evolve in Defender, and why each change unlocks something your old model could not.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Detection engineers debate KQL. Architects debate roles. The Defender transition is interesting because it updates to simply both - but the governance changes are the ones that quietly determine whether your unified SOC actually works the way you designed it on the whiteboard.&lt;/P&gt;
&lt;P&gt;The good news: everything is normal on day one. Your existing Azure RBAC assignments keep functioning. Your Sentinel data stays where it is. Your MSSP delegations remain intact. What changes is what is now possible: data-scoped permissions that are not tied to a single workspace, a tiered data model that lets you keep years of history without keeping years of analytics-tier cost, and a multi-tenant view that spans up to 100 customer tenants with a single sign-in.&lt;/P&gt;
&lt;P&gt;This post walks through each governance shift, what carries forward, and what is genuinely new—from the perspective of the architect who has to sign off and the SOC lead who has to operate it.&lt;/P&gt;
&lt;H4&gt;What this post covers&lt;/H4&gt;
&lt;UL&gt;
&lt;LI&gt;Roles and personas: who owns what after the transition&lt;/LI&gt;
&lt;LI&gt;From classic Azure RBAC to Unified RBAC (URBAC): coexistence, then convergence&lt;/LI&gt;
&lt;LI&gt;The data lake as a governance construct: tiering, retention, residency&lt;/LI&gt;
&lt;LI&gt;Multi-tenant management and the MSSP operating model&lt;/LI&gt;
&lt;LI&gt;Persona implications, common misconceptions, and a do-this-week checklist&lt;/LI&gt;
&lt;/UL&gt;
&lt;H4&gt;Roles and personas: nothing breaks on day one&lt;/H4&gt;
&lt;P&gt;Transitioning to Defender does not eliminate existing Azure RBAC assignments – all continue to function. Once &lt;A href="https://learn.microsoft.com/en-us/defender-xdr/manage-rbac" target="_blank" rel="noopener"&gt;URBAC&lt;/A&gt; is activated, it becomes the source of permissions/authorization. The unified platform introduces a new permissions model: &lt;STRONG&gt;Microsoft Defender XDR Unified RBAC (URBAC)&lt;/STRONG&gt;, which can coexist with or replace classic Azure RBAC for Sentinel access.&lt;/P&gt;
&lt;P&gt;Once URBAC is enabled in Defender, URBAC becomes the source of permissions and not Azure RBAC. It is preferred to migrate the classic Sentinel roles to URBAC ones after onboarding the log analytic workspaces.&lt;/P&gt;
&lt;P&gt;Before transitioning, SOC leads and identity administrators should review the full &lt;A href="https://learn.microsoft.com/en-us/azure/sentinel/roles" target="_blank" rel="noopener"&gt;role matrix and persona assignments&lt;/A&gt; and understand which personas require updated assignments. Customers can import roles using the import wizard; this way there is no need to create URBAC roles manually.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Why URBAC is the upgrade: &lt;/STRONG&gt;URBAC is data-scoped + cross-workspace, not tied to a single workspace boundary. Another benefit of migrating to URBAC is the use of Sentinel scoping with row-level RBAC. And finally, it allows you to manage all of your roles and permissions in a single holistic access management system.&lt;/P&gt;
&lt;H5&gt;Persona-by-persona view&lt;/H5&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Security analysts &lt;/STRONG&gt;–&lt;STRONG&gt; &lt;/STRONG&gt;Triage and investigate incidents using the unified incident queue; require the Security Operator unified RBAC role. Entra global roles are not required for incident triage across Defender and Sentinel—a custom Defender unified RBAC role provides the necessary permissions with more granular scoping.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Security engineers &lt;/STRONG&gt;–&lt;STRONG&gt; &lt;/STRONG&gt;Build detections, manage content, and onboard data; require Sentinel Contributor (see mapping with URBAC). For SOAR tasks, roles such as logic app Contributor and Microsoft Sentinel automation Contributor can still be managed and assigned to Security engineers using Azure RBAC&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;SOC managers / architects &lt;/STRONG&gt;–&lt;STRONG&gt; &lt;/STRONG&gt;Plan RBAC strategy and map existing Azure RBAC to URBAC; govern least-privilege access across workspaces&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Automation &lt;/STRONG&gt;–&lt;STRONG&gt; &lt;/STRONG&gt;Execute playbooks and automation rules; the roles related to automation (Microsoft Sentinel automation Contributor, logic app Contributor, Microsoft Sentinel playbook Operator) post-transition are not yet supported through URBAC, but can still be managed using Azure RBAC&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Service principals &lt;/STRONG&gt;–&lt;STRONG&gt; &lt;/STRONG&gt;Service principals are currently not supported in URBAC; assigning permissions to a service principal or GDAP user group is planned to go public preview soon. Do not enable URBAC if service principals are in use in Microsoft Sentinel in the Azure portal.&lt;/LI&gt;
&lt;/UL&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Why this lands well: &lt;/STRONG&gt;Day One continuity for every existing role assignment, with a clear path to a more capable model. You choose when to flip URBAC on, the import wizard does the heavy lifting, and you get data-scoped, cross-workspace permissions you never had in classic Sentinel.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;H4&gt;Azure RBAC and URBAC: coexistence, then convergence&lt;/H4&gt;
&lt;P&gt;The transition does not force a permissions cutover. Sentinel permissions currently configured keep working exactly as they do today. You can also use URBAC for Sentinel permissions, ensuring you can manage your access management for Defender and Sentinel in a single holistic access management system. Once you turn URBAC on, it becomes the source of truth for permissions instead of Azure RBAC.&lt;/P&gt;
&lt;H5&gt;How they compare&lt;/H5&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Dimension&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Classic Azure RBAC (Sentinel)&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Unified RBAC (URBAC) in Defender&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Scope model&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Workspace-bound—a role grants access to one log analytics workspace at a time. In addition, you can configure row and table level conditions&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Workspace-bound and scoped; A role grants access to one or more log analytics workspaces at the time, while also providing row-level Sentinel scopes if desired&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Permissions surface&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Reader, Responder, Contributor (plus automation-specific roles like logic app Contributor, playbook Operator)&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Reader, Responder, Contributor created through URBAC custom roles; classic roles map in through the import wizard&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Source of truth&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Source of permissions until URBAC is enabled&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Once enabled in Defender, URBAC becomes the source of permissions—not Azure RBAC&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Service principals&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Fully supported&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Not currently supported in URBAC—keep managing these through Azure RBAC, even when URBAC is enabled&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Automation roles&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Logic app Contributor, Microsoft Sentinel automation Contributor, playbook Operator&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Not currently supported in URBAC—keep managing these through Azure RBAC&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Row-level scoping&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Possible through log analytics row-level or table-level conditions, but this does not propagate to Sentinel experiences&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Sentinel scoping (row-level access) supported and propagates to experiences (alerts, hunting, incidents)&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 33.33%" /&gt;&lt;col style="width: 33.33%" /&gt;&lt;col style="width: 33.33%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H5&gt;Transition considerations&lt;/H5&gt;
&lt;UL&gt;
&lt;LI&gt;Onboard the log analytics workspaces first, then move the classic Sentinel role assignments to URBAC&lt;/LI&gt;
&lt;LI&gt;Use the import wizard rather than re-creating URBAC roles manually—it preserves your existing assignment intent&lt;/LI&gt;
&lt;LI&gt;If you rely on service principals for any Sentinel access (CI/CD, automation, integrations), please be aware that these are not yet supported in URBAC. The import wizard will detect this and will import the roles, but not assign them to service principals. If the role only includes service principals in the assignment, it can't be imported. Track the URBAC roadmap and plan accordingly, this support will be available soon. You can continue to configure these in Azure RBAC for now, even when URBAC is enabled.&lt;/LI&gt;
&lt;LI&gt;Keep automation-related role assignments in Azure RBAC—they are not supported through URBAC today.&lt;/LI&gt;
&lt;LI&gt;When you enable URBAC and assign roles, they are synchronized back to Azure as well. For example, a Sentinel Reader role created in URBAC will also create the role in Azure RBAC. If you then change the role in Azure RBAC (instead of on URBAC), it can create a sync issue. Disabling and enabling the workspace on URBAC will resolve the issue. This does not affect scenarios where Azure RBAC is the only source of permissions (logic apps for example), but it is something to be aware of.&lt;/LI&gt;
&lt;LI&gt;Take advantage of &lt;A href="https://learn.microsoft.com/en-us/defender-xdr/scoping" target="_blank" rel="noopener"&gt;row-level RBAC and cross-workspace scoping&lt;/A&gt; where you previously had to compromise.&lt;/LI&gt;
&lt;/UL&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Why this lands well: &lt;/STRONG&gt;You get a more capable permissions model without a forced cutover. Classic roles keep working, the import wizard handles the migration, and the new data-scoped model finally matches the way modern SOCs think about access.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;H4&gt;Sentinel data lake as a governance construct&lt;/H4&gt;
&lt;P&gt;All data ingested into the analytics tier (log analytics workspace) is automatically mirrored into the &lt;A href="https://learn.microsoft.com/en-us/azure/sentinel/datalake/sentinel-lake-overview" target="_blank" rel="noopener"&gt;Sentinel data lake&lt;/A&gt; tier when Sentinel data lake is enabled, ensuring a single authoritative copy of security data that can be queried using KQL, notebooks, and advanced hunting tools without duplicating ingestion pipelines.&lt;/P&gt;
&lt;P&gt;Security architects should use Sentinel data lake for historical threat hunting, retroactive IOC matching, compliance retention, and AI-assisted investigations, while keeping latency-sensitive detections and alerts in the analytics tier. Use the &lt;A href="https://www.microsoft.com/en-us/security/pricing/microsoft-sentinel/cost-estimator?msockid=30bfcca2d3e36dc228aedab6d2a66c1e" target="_blank" rel="noopener"&gt;Sentinel cost estimator&lt;/A&gt; to calculate your environment’s need and refer to the pricing table to know more.&lt;/P&gt;
&lt;H5&gt;What the data lake gives you&lt;/H5&gt;
&lt;UL&gt;
&lt;LI&gt;Supports interactive and async KQL queries across all connected Sentinel workspaces.&lt;/LI&gt;
&lt;LI&gt;Query external data sources without moving data (Public Preview), including Microsoft Fabric, Azure Databricks, and Azure Data Lake Storage Gen2.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H5&gt;Transition considerations&lt;/H5&gt;
&lt;UL&gt;
&lt;LI&gt;Sentinel data lake must be provisioned in the same Azure region as the primary Sentinel workspace and is not available in all regions—check the latest &lt;A href="https://learn.microsoft.com/en-us/azure/sentinel/geographical-availability-data-residency" target="_blank" rel="noopener"&gt;geographical availability and data residency&lt;/A&gt;.&lt;/LI&gt;
&lt;LI&gt;When Sentinel is accessed through Defender, processed and configuration data may follow Defender regional processing, which can differ from the log analytics workspace region.&lt;/LI&gt;
&lt;LI&gt;Customer-managed keys (CMKs) are not supported for data stored in the Sentinel data lake; Microsoft-managed keys are used.&lt;/LI&gt;
&lt;LI&gt;Compare the analytics tier and data lake tier when sizing your retention strategy.&lt;/LI&gt;
&lt;/UL&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Region availability note: &lt;/STRONG&gt;Sentinel data lake is not available in all Azure regions. Validate availability for your primary workspace region before planning enablement—the &lt;A href="https://learn.microsoft.com/en-us/azure/sentinel/geographical-availability-data-residency" target="_blank" rel="noopener"&gt;supported regions list&lt;/A&gt; is the authoritative reference and is updated as new regions come online.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Why this lands well: &lt;/STRONG&gt;You finally separate “hot” detection data from “warm/cold” investigation data without rebuilding pipelines. One copy of the truth, two tiers, KQL across both—and a clear regional/governance story you can take to your data protection officer.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;H4&gt;Multitenant management and the MSSP operating model&lt;/H4&gt;
&lt;P&gt;MSSPs and large multitenant enterprises have always had to stitch together Lighthouse, GDAP, and per-workspace navigation. Defender does not eliminate those building blocks—but it does add a unified cross-tenant view that genuinely simplifies day-to-day operations.&lt;/P&gt;
&lt;H5&gt;Azure portal versus Defender for multitenant&lt;/H5&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Portal&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Multi-tenant model&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Azure portal&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/lighthouse/overview" target="_blank" rel="noopener"&gt;Azure Lighthouse&lt;/A&gt; for cross-tenant visibility through ARM delegation&lt;/LI&gt;
&lt;LI&gt;Multi-workspace incident view; analysts pivot between workspaces for deep investigation&lt;/LI&gt;
&lt;LI&gt;Cross-workspace KQL through workspace operator (recommended to limit up to 10 workspaces to avoid latency and timeout)&lt;/LI&gt;
&lt;LI&gt;Per-workspace Azure RBAC; no centralized cross-tenant role management&lt;/LI&gt;
&lt;/UL&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Defender&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/defender-xdr/mto-overview" target="_blank" rel="noopener"&gt;Multitenant management (MTO)&lt;/A&gt; unified view across up to 100 tenants with single sign-in&lt;/LI&gt;
&lt;LI&gt;Unified incident queue, cross-tenant advanced hunting (SIEM + XDR), and content distribution profiles&lt;/LI&gt;
&lt;LI&gt;Dual RBAC: Azure RBAC for data + unified RBAC (URBAC) for portal access, currently with B2B, with centralized management&lt;/LI&gt;
&lt;LI&gt;Critical: MTO does not replace Lighthouse—Lighthouse is still required to access Azure resources such as Azure policy and function apps&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/partner-center/customers/gdap-introduction" target="_blank" rel="noopener"&gt;GDAP&lt;/A&gt; for Sentinel in Public Preview&lt;/LI&gt;
&lt;/UL&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 50.00%" /&gt;&lt;col style="width: 50.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H5&gt;Transition considerations&lt;/H5&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Maintain Lighthouse: &lt;/STRONG&gt;Do not remove existing delegations—Lighthouse is still required to access Azure resources such as Azure policy and function apps.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;100-tenant limit: &lt;/STRONG&gt;Large MSSPs may need multiple MTO configurations or prioritize active tenants. MSSPs can also leverage tenant groups to organize tenants collectively and switch multitenant view between groups. Microsoft hasn't published a timeline for raising this ceiling—monitor the Defender XDR release notes for updates&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Tenant-boundary isolation: &lt;/STRONG&gt;Correlation engine operates within tenant boundaries—incidents never merged across tenants.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Playbook distribution gap: &lt;/STRONG&gt;Automation rules and playbooks (logic apps) are not currently supported as distributable artifacts through MTO content distribution profiles, but you do have the ability to run logic apps hosted on “home tenant” to run on “target tenant” without deploying the artifact.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H5&gt;Where partners and MSSPs add value&lt;/H5&gt;
&lt;P&gt;Managed security service providers (MSSPs) and Microsoft partners bring specialized expertise in planning and executing Sentinel transitions to Defender. Partners accelerate your transition timeline, reduce operational risk, and ensure your team maximizes the value of unified security operations from Day One.&lt;/P&gt;
&lt;P&gt;Key advantages of working with a partner:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Transition expertise: &lt;/STRONG&gt;Partners have hands-on experience transitioning multiple customer environments and can anticipate challenges specific to your industry, architecture, and security maturity level.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Multi-tenant complexity: &lt;/STRONG&gt;MSSPs managing Sentinel for multiple customers can navigate enhanced GDAP delegation, Azure Lighthouse configurations, and cross-tenant workspace management.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Accelerated onboarding: &lt;/STRONG&gt;Partners provide structured onboarding programs combining technical setup, SOC analyst training, and workflow optimization to minimize time to value.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Custom automation development: &lt;/STRONG&gt;Partners can develop logic apps playbooks, custom analytics rules, and hunting queries tailored to your environment and threat landscape.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Ongoing optimization: &lt;/STRONG&gt;Post-transition, partners offer SOC optimization services leveraging the enhanced capabilities in Defender including AI-powered recommendations, cost management, and detection coverage gap analysis.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;To find Microsoft partners specialized in Sentinel and Defender, visit &lt;A href="https://partner.microsoft.com/" target="_blank" rel="noopener"&gt;partner.microsoft.com&lt;/A&gt; or consult your Microsoft account team for recommendations.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Why this lands well: &lt;/STRONG&gt;A single cross-tenant view that does not force you to abandon what you have. Lighthouse + GDAP + MTO each do a different job, and the unified incident queue across tenants is the kind of capability MSSPs have been asking for.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;H4&gt;Persona implications&lt;/H4&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Persona&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;What changes for you&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;SOC analyst&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Single security Operator URBAC role across workspaces; the day-to-day triage experience does not require knowing which workspace an alert came from.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Security engineer&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Sentinel Contributor maps into URBAC for SIEM content; keep logic app Contributor and automation Contributor in Azure RBAC for SOAR work.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;SOC manager/ architect&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;You own the URBAC migration plan, the tier-versus-lake retention strategy, and the multi-tenant access model. Use the import wizard to preserve existing intent.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Data protection officer&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;The data lake adds a tier with its own residency and encryption story (Microsoft-managed keys, regional availability). Document it as part of your data flow inventory.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;MSSP operator&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Unified incident queue across up to 100 tenants; Lighthouse, GDAP, and B2B each remain in the picture but for different purposes. Plan tenant groups and content distribution profiles early.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 50.00%" /&gt;&lt;col style="width: 50.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;Clearing up common misconceptions&lt;/H4&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;“Turning on URBAC breaks my existing Azure RBAC assignments.” &lt;BR /&gt;&lt;/STRONG&gt;No. Classic Sentinel roles continue to function. URBAC becomes the source of permissions once enabled, but it can be migrated from your existing assignments using the import wizard.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;“I have to move my Sentinel data into the data lake.” &lt;BR /&gt;&lt;/STRONG&gt;No. Data ingested into the analytics tier is automatically mirrored into the data lake when the lake is enabled—a single authoritative copy, no duplicate ingestion.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;“MTO replaces Azure Lighthouse for MSSPs.” &lt;BR /&gt;&lt;/STRONG&gt;No. MTO and Lighthouse coexist—Lighthouse is still required for Azure resource access (Azure policy, function apps); MTO provides the unified cross-tenant SOC view.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;“If I enable URBAC, my logic apps playbooks break.” &lt;BR /&gt;&lt;/STRONG&gt;No. Automation-related roles (logic app Contributor, automation Contributor, playbook Operator) keep working under Azure RBAC.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;“Data lake is available everywhere Sentinel is.” &lt;BR /&gt;&lt;/STRONG&gt;No. The data lake must be in the same Azure region as the primary Sentinel workspace and is not available in all regions—always check the geographical availability list before planning.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;“MTO will merge incidents across tenants.” &lt;BR /&gt;&lt;/STRONG&gt;No. The correlation engine operates within tenant boundaries—incidents are never merged across tenants. MTO provides visibility and operational consistency, not cross-tenant correlation.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H4&gt;Do this week&lt;/H4&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Inventory &lt;/STRONG&gt;who holds which classic Sentinel role (Reader, Responder, Contributor, Automation roles) and which identities are service principals.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Defer&lt;/STRONG&gt; URBAC enablement and document the dependency if any service principals hold Sentinel access.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Stand up&lt;/STRONG&gt; a test URBAC scope using the import wizard—validate that analyst, engineer, and architect personas see what you expect.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Confirm&lt;/STRONG&gt; your primary Sentinel workspace region is on the Sentinel data lake supported regions list.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Decide&lt;/STRONG&gt; the analytics tier versus data lake tier split: which tables you want hot for detection and which you want warm for hunting/compliance.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Map&lt;/STRONG&gt; your existing Lighthouse + GDAP footprint to the MTO model if you operate multi-tenant, and identify tenants for an initial MTO configuration (under the 100-tenant cap).&lt;/LI&gt;
&lt;LI&gt;Schedule the transition planning session now if you work with an MSSP or Microsoft partner to compress weeks of work and surface issues you would otherwise find in production.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H4&gt;Continue the series&lt;/H4&gt;
&lt;P&gt;Each part of this series stands alone—pick the angle that matters most to you or read them in order.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://aka.ms/usx-blog-1" target="_blank" rel="noopener"&gt;&lt;STRONG&gt;Part 1 – Beyond a portal move: The strategic shift to Defender&lt;/STRONG&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Why the transition matters at the architecture and program level—the executive framing, the deadline, and the analyst validation.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://aka.ms/usx-blog-2" target="_blank" rel="noopener"&gt;&lt;STRONG&gt;Part 2 – Anatomy of the change: Incidents, alerts, correlation, and data&lt;/STRONG&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;The component-level mechanics: how the XDR correlation engine replaces Fusion, why incidents are no longer alert-centric, and what changes (and doesn’t) in your data architecture.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://aka.ms/usx-blog-3" target="_blank" rel="noopener"&gt;&lt;STRONG&gt;Part 3 – Detection and automation, reimagined&lt;/STRONG&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;How analytics rules, playbooks, workbooks, and hunting evolve—and why the toolbelt doubled, not shrank.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://aka.ms/usx-blog-5" target="_blank" rel="noopener"&gt;&lt;STRONG&gt;Part 5 – Your readiness playbook: Adoption helper, costs, APIs, and the checklist&lt;/STRONG&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;A practical plan: the Defender adoption helper, cost reality, API strategy, and the migration checklist.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://aka.ms/usx-blog-6" target="_blank" rel="noopener"&gt;&lt;STRONG&gt;Part 6 – The AI-first SOC: Copilot, UEBA, threat intelligence, and SOC optimization&lt;/STRONG&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;The destination: how Security Copilot, UEBA, threat intelligence, and SOC optimization combine into a fundamentally different operating model.&lt;/P&gt;</description>
      <pubDate>Thu, 25 Jun 2026 20:11:19 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-sentinel-blog/the-governance-shift-rbac-urbac-data-lake-and-mssp/ba-p/4528607</guid>
      <dc:creator>Mohit_Kumar1</dc:creator>
      <dc:date>2026-06-25T20:11:19Z</dc:date>
    </item>
    <item>
      <title>A guide to innovating threat hunting with Microsoft Sentinel custom graph</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-sentinel-blog/a-guide-to-innovating-threat-hunting-with-microsoft-sentinel/ba-p/4530287</link>
      <description>&lt;P&gt;Microsoft Sentinel platform offers a growing list of tools and features, with graph being a cornerstone capability.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://learn.microsoft.com/azure/sentinel/datalake/sentinel-graph-overview?tabs=defender" target="_blank" rel="noopener"&gt;Sentinel graph&lt;/A&gt; is a relationship-first method for organizing and querying data within Microsoft Sentinel data lake. Activities amongst entities (users, devices, emails, IPs, applications, etc.) become a navigable structure that avoids a complex table structure. Rather than stitching together data and evidence via complex joins, users can follow multi-hop connections in order to understand insights such as blast radius, unseen pivots in malicious behavior, and investigative details that may not be as obvious within regular logs, all while visualizing these paths to assist in communicating evidence and findings.&lt;/P&gt;
&lt;P&gt;This blog will walk through how to &lt;A href="https://learn.microsoft.com/azure/sentinel/datalake/custom-graphs-overview" target="_blank" rel="noopener"&gt;create custom graphs&lt;/A&gt; using GitHub Copilot chat experiences in Sentinel VS Code. And how to leverage out-of-the-box graph samples to build custom graphs addressing security outcomes. Custom graphs are available in public preview.&lt;/P&gt;
&lt;H3&gt;Prerequisites and Tooling&lt;/H3&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/azure/sentinel/datalake/sentinel-lake-onboarding" target="_blank" rel="noopener"&gt;Sentinel data lake&lt;/A&gt; enabled in the tenant, this is where the data for the graph will be stored.&lt;/LI&gt;
&lt;LI&gt;Users will need &lt;A href="https://learn.microsoft.com/azure/sentinel/roles#microsoft-sentinel-data-lake-write-permissions" target="_blank" rel="noopener"&gt;read/write permissions&lt;/A&gt; on Sentinel data lake data. And either&lt;A href="https://learn.microsoft.com/entra/identity/role-based-access-control/permissions-reference#security-operator" target="_blank" rel="noopener"&gt; security operator&lt;/A&gt; or &lt;A href="https://learn.microsoft.com/entra/identity/role-based-access-control/permissions-reference#security-administrator" target="_blank" rel="noopener"&gt;security admin&lt;/A&gt; permissions to save a custom graph in the tenant.&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://code.visualstudio.com/docs/?dv=win" target="_blank" rel="noopener"&gt;Visual Studio Code (VS Code)&lt;/A&gt; will need to be installed, as it is essential for building and saving graphs.&lt;/LI&gt;
&lt;LI&gt;The Jupyter notebook extension, Microsoft Sentinel extension, and GitHub Copilot extension will need to be installed from within VS Code. These are key pieces for configuring and managing graphs.&lt;/LI&gt;
&lt;LI&gt;(Optional) &lt;A href="https://learn.microsoft.com/azure/sentinel/datalake/sentinel-mcp-overview" target="_blank" rel="noopener"&gt;Microsoft Sentinel MCP server&lt;/A&gt; if using MCP tools like the data exploration tool.&lt;/LI&gt;
&lt;/OL&gt;
&lt;H2&gt;Building a new custom graph&lt;/H2&gt;
&lt;P&gt;The starting point is within Visual Studio Code (VS Code), where the custom graph will be built via GitHub Copilot and the Sentinel graph authoring tool. Make sure to have a GitHub account logged in within VS Code, then start a chat with Copilot via &lt;STRONG&gt;&lt;EM&gt;View &amp;gt; Chat&lt;/EM&gt;&lt;/STRONG&gt;&lt;EM&gt;.&lt;/EM&gt; This will open a chat window on the right side of the screen.&lt;/P&gt;
&lt;img /&gt;
&lt;H3&gt;Determining security telemetry for investigation&lt;/H3&gt;
&lt;P&gt;If unsure about which tables are available within the environment or the columns to focus on for hunting/investigations, turn to the Sentinel MCP server. With the &lt;A href="https://learn.microsoft.com/en-us/azure/sentinel/datalake/sentinel-mcp-overview" target="_blank" rel="noopener"&gt;Sentinel MCP server&lt;/A&gt;, users can explore the threat landscape within their environment as well as see which data sources currently exist within the Sentinel data lake. This process can be done using natural language with Copilot to obtain the information needed to perform the task at hand.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;“List the most important tables within my Microsoft Sentinel data lake environment that would build a blast radius for a compromised user account. List the best columns to use for this scenario. Format the response as a table”&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;img /&gt;
&lt;P&gt;The tables and columns that can be used are now known. The next step is to use these tables to construct a custom graph with help from GitHub Copilot. For this example, a blast radius graph will be built to assist in reviewing the impact of compromised accounts within the environment:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;“List the top 5 compromised or targeted accounts within my environment. List which types of attacks are involved with those accounts. Summarize the information into a simple to read table”&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;img /&gt;
&lt;P&gt;Given this response, there are a few options for going forward:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Return to the Microsoft Defender portal and attempt threat hunting/review this with other analysts&lt;/LI&gt;
&lt;LI&gt;Ask Copilot to provide threat hunting queries or perform incident investigations for the top users who are most targeted&lt;/LI&gt;
&lt;LI&gt;Build custom graphs to visualize threat data around the most targeted accounts&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;For this example, we will use option 3.&lt;/P&gt;
&lt;H3&gt;Building graph mappings with GitHub Copilot&lt;/H3&gt;
&lt;P&gt;To begin building a custom graph from scratch, a new prompt is submitted, this time tagging the Sentinel extension’s graph authoring tool. An example of the type of prompt to use is below:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;“@Sentinel /graph-authoring I want to investigate the blast radius of a compromised user and what systems/ app/ devices that they accessed based on users authentication activity. Please use at least SignInLogs, NonInteractivelogs, DeviceLogon, Onprem AD logs, IdentityInfo, and AADRiskyUsers.&lt;/P&gt;
&lt;P&gt;The graph should help investigate the following security outcomes:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;What is the user's current risk level and risk score from Identity Protection?&lt;/LI&gt;
&lt;LI&gt;Which applications and resources did a user authenticate to?&lt;/LI&gt;
&lt;LI&gt;Are there sign-ins from risky IP addresses, Tor exit nodes, or anonymizers?&lt;/LI&gt;
&lt;LI&gt;Are there non-interactive sign-ins from unexpected locations or devices?&lt;/LI&gt;
&lt;LI&gt;Which machines did a user log on to locally/remotely (RDP)?&lt;/LI&gt;
&lt;LI&gt;Which user accounts have been active on a compromised device?&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;A few guidance for data ingestion:&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;BLOCKQUOTE&gt;Ensure to filter out any data that has NULL or empty values for key Nodes and Edges&lt;/BLOCKQUOTE&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;BLOCKQUOTE&gt;Filter all data for last 14 days&lt;/BLOCKQUOTE&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;BLOCKQUOTE&gt;Do not map json arrays as Keys in Nodes or Edges”&lt;/BLOCKQUOTE&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;EM&gt;Note: To ensure that the graph that is written matches the desired scenario, it helps to provide outcomes or guidance to the graph authoring tool.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;If a Juypter notebook is not already open within the VS Code, Copilot will build a new notebook based on the prompt given. Once Copilot is done, select a kernel to run the notebook. This can be done from the top right of the Notebook:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Click on &lt;STRONG&gt;&lt;EM&gt;Select Kernel&lt;/EM&gt;&lt;/STRONG&gt;&lt;EM&gt;.&lt;/EM&gt;&lt;/LI&gt;
&lt;LI&gt;Click on &lt;STRONG&gt;&lt;EM&gt;Microsoft Sentinel&lt;/EM&gt;&lt;/STRONG&gt;&lt;EM&gt;.&lt;/EM&gt;&lt;/LI&gt;
&lt;LI&gt;Choose a pool option for the compute cluster.&lt;/LI&gt;
&lt;LI&gt;Once a pool is picked, click on the run button next to one of the code cells to boot up the compute pool (this can take up to 5 minutes)&lt;/LI&gt;
&lt;LI&gt;Once connected, users can either go through and click the run button next to the code cell to run the code or click the &lt;STRONG&gt;&lt;EM&gt;Run All&lt;/EM&gt;&lt;/STRONG&gt; button at the top of the Notebook.&lt;/LI&gt;
&lt;/OL&gt;
&lt;img /&gt;
&lt;P&gt;For each cell in the Notebook:&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Cell 2&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;This section of the notebook is for mporting the sentinel_graph library and configures Spark settings. This is essentially setting up the notebook environment for executing the rest of the code.&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;from sentinel_graph import notebook notebook.requires(sentinel_graph="0.3.8") spark.conf.set("spark.sql.parquet.datetimeRebaseModeInRead", "CORRECTED")&lt;/LI-CODE&gt;
&lt;P&gt;&lt;EM&gt;Cell 3&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;This section is performing more Sentinel specific configurations by defining which Sentinel workspace to use, which timerange to use, which tables to use, etc. This is defining which data sources should be considered when building the graph.&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;from pyspark.sql import functions as F from sentinel_lake.providers import MicrosoftSentinelProvider lake_provider = MicrosoftSentinelProvider(spark=spark) LOG_ANALYTICS_WORKSPACE = "Woodgrove-LogAnalyiticsWorkspace" # Auto-detected from the Microsoft Sentinel extension TARGET_USER = "ram723@int.zava-private.com" # Time filter — 7 days for broader blast radius context time_filter = F.col("TimeGenerated") &amp;gt;= F.expr("current_timestamp() - INTERVAL 7 DAYS") # --- IdentityInfo: user profile, roles, group memberships, risk --- df_identity_info = ( lake_provider.read_table("IdentityInfo", LOG_ANALYTICS_WORKSPACE) .filter(time_filter) .filter(F.lower(F.col("AccountUPN")) == TARGET_USER.lower()) ) # --- SigninLogs: interactive sign-ins to resources --- df_signins = ( lake_provider.read_table("SigninLogs", LOG_ANALYTICS_WORKSPACE) .filter(time_filter) .filter( (F.lower(F.col("UserPrincipalName")) == TARGET_USER.lower()) &amp;amp; (F.col("ResultType") == "0") # successful sign-ins ) )&lt;/LI-CODE&gt;
&lt;P&gt;&lt;EM&gt;Cell 4&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;This section is defining and building the nodes that will be used in the graph. The definitions include what events look like, which entities are involved, and how they are considered for each node type.&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;# 1. User node (the target user) user_nodes = ( df_identity_info .select( F.col("AccountUPN"), F.col("AccountDisplayName"), F.col("RiskLevel"), F.col("RiskState"), F.col("AssignedRoles"), F.col("GroupMembership"), F.col("BlastRadius"), F.col("Department"), F.col("JobTitle"), F.col("IsMFARegistered"), F.col("IsAccountEnabled") ) .distinct() .withColumn("AccountUPN", F.lower(F.col("AccountUPN"))) )&lt;/LI-CODE&gt;
&lt;P&gt;&lt;EM&gt;Cell 5&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;This section is building out the schema for the graph. The schema for a graph is taking the columns and details from the tables in cell 3 while also tying them to the nodes and edges built in cell 4.&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;# Build nodes first builder = ( GraphSpecBuilder.start() # === NODES === .add_node("User") .from_dataframe(user_nodes) .with_columns("AccountUPN", "AccountDisplayName", "RiskLevel", "RiskState", "AssignedRoles", "GroupMembership", "BlastRadius", "Department", "JobTitle", "IsMFARegistered", "IsAccountEnabled", key="AccountUPN", display="AccountUPN") # Then add edges and finalise into a GraphSpec spec = ( builder # === EDGES === .add_edge("AccessedInteractive") .from_dataframe(edge_user_resource_interactive) .source(id_column="UserUPN", node_type="User") .target(id_column="ResourceName", node_type="Resource") .with_columns("AppDisplayName", "TimeGenerated", "IPAddress", "ConditionalAccessStatus", "AccessType", "EdgeKey", key="EdgeKey", display="AccessType")&lt;/LI-CODE&gt;
&lt;P&gt;&lt;EM&gt;Cell 6&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;This cell will take the schema from cell 5 and will load it into the graph visual builder. This will give a sample of what the graphs made with this Notebook will look like. These samples are fully interactive and will give an example of how it will look within the Defender portal. For example:&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&lt;EM&gt;Please note that the Authoring Agent may provide a different looking schema if following along with this example. The schema above is just meant to provide an example of what one will look like within a Notebook.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Cell 7&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;This cell is taking each of the following steps performed and is going to compile and build the graph based on the data from the Sentinel data lake. This may take a few minutes to perform.&lt;/P&gt;
&lt;P&gt;With the custom graph built, the next step is to create a Graph Job to save the custom graph in the tenant for persistent use. If necessary, users can go back into the notebook to refine, expand, and improve the custom graph.&lt;/P&gt;
&lt;H3&gt;Publishing graph&lt;/H3&gt;
&lt;P&gt;Publishing a graph is the process of saving the graph in a tenant, allowing for the graph to be scheduled for recurring refreshes or as needed. This process saves the graph to the tenant and enables other SOC members to access this graph from within the Defender portal.&lt;/P&gt;
&lt;P&gt;To publish a custom graph, this must go through a Graph Job. This option is available within the Notebook experience as a button near the top:&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;Clicking on the&amp;nbsp;&lt;EM&gt;Create Scheduled Job &lt;/EM&gt;button will open a new tab within VS Code with the jobs settings and the option to publish:&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;There are two types of job schedules:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;On Demand: Saves the custom graph to the tenant and will persist the custom graph for 30 days. After 30 days, the graph will be auto deleted.&lt;/LI&gt;
&lt;LI&gt;Scheduled: Saves the custom graph to the tenant and will rebuild with new security telemetry based on a user defined schedule.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;Once everything is prepped, the custom graph can be published to the tenant by hitting the &lt;EM&gt;Submit&lt;/EM&gt; button. Users can view and monitor the creation progress by finding the graph within the Sentinel extension navigation as it shows the graphs available for the environment:&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;Finding and selecting the custom graph will open up a new tab that shows details around the graph. This includes details around the name, creation status (creating, ready, etc), author, and publishing date.&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;Near the top, there are tabs for Job Details and Graph Query. These options allow the user to review the current Graph Job, make changes to the Graph Job, or query the graph within the notebook.&lt;/P&gt;
&lt;H3&gt;Querying the graph in Defender&lt;/H3&gt;
&lt;P&gt;Once the custom graph has been published and the creation status is Ready, users can query the new graph in the Defender Portal:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Expand the &lt;EM&gt;Microsoft Sentinel &lt;/EM&gt;navigation.&lt;/LI&gt;
&lt;LI&gt;Select &lt;EM&gt;Graphs.&lt;/EM&gt;&lt;/LI&gt;
&lt;LI&gt;Either find the card with the graph title or search for it within the menu.&lt;img /&gt;&lt;/LI&gt;
&lt;LI&gt;Once found, click &lt;EM&gt;Query Graph&lt;/EM&gt; to open it.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;The graph will open in the &lt;EM&gt;schema &lt;/EM&gt;view. The schema here is a visual representation of which nodes, edges, and relations are part of the graph. This is what was built in the notebook. To query it, a user can write GQL queries or use ones that are provided. For this example, a query provided in the &lt;EM&gt;Getting Started &lt;/EM&gt;tab will be used. This is a generic query that will show everything in a graph:&lt;/P&gt;
&lt;LI-CODE lang="graphql"&gt;// Visualize any graph MATCH (x)-[y]-&amp;gt;(z) RETURN * LIMIT 100&lt;/LI-CODE&gt;&lt;img /&gt;
&lt;P&gt;More focused queries will yield more focused results. For example:&lt;/P&gt;
&lt;LI-CODE lang="graphql"&gt;MATCH (n_user:User)-[e_ip:SignedInFrom]-&amp;gt;(n_ip:IPAddress) MATCH (n_user)-[e_signin:InteractiveSignIn]-&amp;gt;(n_app:Application) WHERE n_user.UserPrincipalName = 'ENTERUSERNAMHERE' AND n_ip.IPAddress = 'IPADDRESSHERE' RETURN n_user, e_ip, n_ip, e_signin, n_app&lt;/LI-CODE&gt;&lt;img /&gt;&lt;LI-CODE lang="graphql"&gt;MATCH (n_user)-[x]-&amp;gt;() MATCH (n_user)-[e_signin:InteractiveSignIn]-&amp;gt;(n_app:Application) WHERE n_user.UserPrincipalName = 'ENTERUSERNAMEHERE' RETURN *&lt;/LI-CODE&gt;&lt;img /&gt;
&lt;P&gt;From here, a user can continue the hunt, remediate the concerns, escalate this for further attention and remediation, or refine the graph as needed.&lt;/P&gt;
&lt;H3&gt;Refining Graphs&lt;/H3&gt;
&lt;P&gt;Throughout the process, the custom graph may need to be updated for various reasons, including:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;The scope of the hunt/investigation has expanded due to new information or the hypothesis being updated based on findings&lt;/LI&gt;
&lt;LI&gt;The original hypothesis of the hunt was incorrect or needs to be changed&lt;/LI&gt;
&lt;LI&gt;Important nodes are missing from the graph and need to be added&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;To achieve this, return to VS Code and use the GitHub Copilot chat experience to add new telemetry, nodes, edges, or properties in the existing graph.&lt;/P&gt;
&lt;P&gt;The below example illustrates adding Azure resources as new assets by prompting the Sentinel graph authoring tool and instructing it on what needs to be added.&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;Running the cells of the Notebook will yield an updated graph that includes the new changes:&lt;/P&gt;
&lt;img /&gt;
&lt;H3&gt;Graph samples in the Sentinel VS Code extension&lt;/H3&gt;
&lt;P&gt;To help with learning, building, and using Sentinel graph, there are 5 graph samples included in the Sentinel extension within VS Code. &lt;BR /&gt;&lt;BR /&gt;These can be found by clicking on the Sentinel extension and looking under &lt;EM&gt;Notebook Samples &amp;gt; Graphs&lt;/EM&gt;. Each graph included contains a Jupyter notebook containing the graph schema and mappings, as well as graph queries which can be run against the graph.&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;These graphs ingest certain security telemetry and expect them to already exist within the Sentinel lake instance that is being used. If needed, the graph mapping can be updated to include/ exclude security telemetry as needed. These graph samples are also located within the Sentinel GitHub repository.&lt;/P&gt;
&lt;P&gt;Let’s look at one of the sample graphs – Phishing Email Killchain to understand how it can help during a security investigation.&lt;/P&gt;
&lt;H2&gt;Using a graph: phishing email kill chain scenario&lt;/H2&gt;
&lt;P&gt;Phishing is the number one initial access vector, yet investigating a phishing campaign requires correlating data across multiple Sentinel tables: EmailEvents, EmailUrlInfo, UrlClickEvents, EmailAttachmentInfo, DeviceFileEvents, and DeviceProcessEvents. Each table uses a different join key (NetworkMessageId, AccountUpn, SHA256, DeviceName), and analysts must stitch results together manually across several Defender portals.&lt;/P&gt;
&lt;P&gt;The core question every SOC analyst needs to answer is: “Who received the email, clicked the URL, downloaded the attachment, and executed it on their device?” In KQL, answering this requires 5+ sequential queries and 30–60 minutes of manual correlation. The Phishing Email Kill Chain graph fuses all of these tables into a single connected structure with 10 node types and 12 edge types, making it possible to answer that question in seconds with a single GQL traversal. SOC teams can create this graph in their tenant and start investigating phishing campaigns using graph-powered insights.&lt;/P&gt;
&lt;H3&gt;Investigation with the Phishing Email Killchain graph&lt;/H3&gt;
&lt;P&gt;&lt;STRONG&gt;Multi-hop traversal. &lt;/STRONG&gt;The full kill chain from email to endpoint execution is a 4-hop path: Email → Attachment → Process → Device. In KQL, each hop is a separate join with a different key column. In the graph, it’s one MATCH clause.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Structural detection. &lt;/STRONG&gt;Campaign topology is visible as the graph’s shape — senders fanning out to emails, emails fanning out to users, shared URLs converging into hubs. These patterns are structural properties requiring no aggregation queries.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Click-exposure overlay. &lt;/STRONG&gt;The graph overlays email delivery and URL click paths in a single view. An analyst instantly sees which users received a phishing email AND clicked the embedded URL — no separate UrlClickEvents join needed.&lt;/P&gt;
&lt;H3&gt;Example queries&lt;/H3&gt;
&lt;P&gt;Below are three queries from the published phishing_email_killchain graph that demonstrate these capabilities. Each query is a single GQL statement that replaces multiple KQL joins.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Query 1: Full Kill Chain — Email to Endpoint&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;This query traces the complete attack path: phishing email → malicious attachment → process execution → endpoint device. In KQL, this requires joining 4 tables with different keys and temporal proximity filtering.&lt;/P&gt;
&lt;LI-CODE lang="graphql"&gt;MATCH (e:Email)-[ha:HasAttachment]-&amp;gt;(att:Attachment) -[tp:TriggeredProcess]-&amp;gt;(p:Process)-[od:OnDevice]-&amp;gt;(d:Device) RETURN e, ha, att, tp, p, od, d LIMIT 10&lt;/LI-CODE&gt;&lt;img /&gt;
&lt;P&gt;&lt;EM&gt;Figure 1: Two complete kill chains — Invoice_Q3.xlsm → EXCEL.EXE → DESKTOP-FIN01 and DocuSign_Contract.pdf.exe → cmd.exe → DESKTOP-SALES02. Each path is one traversal replacing 4+ KQL joins.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Query 2: Campaign Topology — Sender to Email to User to URL&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;This query visualizes the full campaign structure: which senders sent which emails, who received them, and what URLs were embedded. The graph’s fan-out shape immediately reveals the blast radius and shared infrastructure.&lt;/P&gt;
&lt;LI-CODE lang="graphql"&gt;MATCH (s:Sender)-[se:Sent]-&amp;gt;(e:Email)-[re:ReceivedEmail]-&amp;gt;(u:User), (e)-[cu:ContainsUrl]-&amp;gt;(url:Url) RETURN s, se, e, re, u, cu, url LIMIT 10&lt;/LI-CODE&gt;&lt;img /&gt;
&lt;P&gt;&lt;EM&gt;Figure 2: Campaign topology — 2 senders, 2 emails fanning out to 9 users and 2 URLs. The shared URL node (c0ntoso-share...) receiving edges from both emails reveals coordinated campaign infrastructure.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Query 3: URL Click Exposure — Who Clicked the Phishing Links&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;This query shows which emails contained URLs and which users clicked them. The Email → URL → User click chain is a single traversal that replaces joining EmailUrlInfo with UrlClickEvents.&lt;/P&gt;
&lt;LI-CODE lang="graphql"&gt;MATCH (e:Email)-[cu:ContainsUrl]-&amp;gt;(url:Url)&amp;lt;-[cl:ClickedUrl]-(u:User) RETURN e, cu, url, cl, u LIMIT 10&lt;/LI-CODE&gt;&lt;img /&gt;
&lt;P&gt;&lt;EM&gt;Figure 3: Click exposure — 3 users clicked phishing URLs from 3 different emails. Each cluster shows Email → URL → User, instantly identifying click-through victims.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;These are just 3 examples of what is possible when using GQL on a graph. Users can author their own GQL queries to run on this graph to show other possibilities.&lt;/P&gt;
&lt;H3&gt;Additional graph samples&lt;/H3&gt;
&lt;P&gt;As mentioned, the Phishing Email Killchain graph is one of five graph samples that are available today for use within the VS Code Sentinel Extension. The remaining graphs are:&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Behavioral Attack Chain&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Ingests data from the SentinelBehaviorInfo, SentinelBehaviorEntities, AlertInfo, AlertEvidence, ThreatIntelIndicators, and BehaviorAnalytics tables to model the relationships between different detections, MITRE tactics/techniques, entities, and threat intel to high different traversals that are difficult to do with just KQL alone.&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&lt;EM&gt;Databricks Outbound Exfiltration&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Ingests data from the DatabricksNotebook, DatabricksSecrets, DatabricksDBFS, DatabricksClusters, DatabricksJobs, DatabricksSQLPermissions, IdentityInfo, AADUserRiskEvents, and BehaviorAnalytics tables to map Databricks notebook and cluster activities to the identities used in order to enable detections of unusual outbound data movement, privilege escalation, and data exfiltration patterns.&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&lt;EM&gt;DNS C2 Beaconing&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Ingests data from the DeviceNetworkEvents, DeviceInfo, and ThreatIntelIndicators to model DNS resolution patterns to detect C2 beaconing and other malicious patterns.&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&lt;EM&gt;OAuth Privilege Escalation&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Ingests data from the EntraServicePrincipals, AADRiskyServicePrincipals, and AADServicePrincipalSignInLogs tables to trace OAuth consent chains, credential abuse, and privilege escalation paths to identify hub users, over-permissions identities, and backdoor patterns that may exist.&lt;/P&gt;
&lt;img /&gt;
&lt;H2&gt;Closing&lt;/H2&gt;
&lt;P&gt;This blog showcased an example of how a custom graph can be made with data within Microsoft Sentinel data lake and the help of GitHub Copilot, investigating a phishing email kill chain situation, and how to leverage the several graph templates that are provided in Sentinel.&lt;/P&gt;
&lt;P&gt;Get started today by using one of the template graphs, building your own graph, or by checking out the public documentation for Sentinel graph.&lt;/P&gt;
&lt;P&gt;Note: Custom graph API usage for creating graph and querying graph will be billed according to the Sentinel graph meter.&lt;/P&gt;
&lt;P&gt;Public Documentation: &lt;A href="https://learn.microsoft.com/azure/sentinel/datalake/sentinel-graph-overview#" target="_blank" rel="noopener"&gt;https://learn.microsoft.com/azure/sentinel/datalake/sentinel-graph-overview&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;GQL Reference: &lt;A href="https://learn.microsoft.com/azure/sentinel/datalake/gql-reference-for-sentinel-custom-graph" target="_blank" rel="noopener"&gt;Graph Query Language (GQL) reference for Microsoft Sentinel graph (Preview) | Microsoft Learn&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Planning graph Costs: &lt;A href="https://learn.microsoft.com/azure/sentinel/billing?tabs=simplified%2Ccommitment-tiers#microsoft-sentinel-graph" target="_blank" rel="noopener"&gt;Plan costs and understand pricing and billing - Microsoft Sentinel | Microsoft Learn&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 24 Jun 2026 18:06:41 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-sentinel-blog/a-guide-to-innovating-threat-hunting-with-microsoft-sentinel/ba-p/4530287</guid>
      <dc:creator>Matt_Lowe</dc:creator>
      <dc:date>2026-06-24T18:06:41Z</dc:date>
    </item>
    <item>
      <title>Reminder: Next Tuesday 6/23 at 9AM PST we will be hosting an 'Ask Microsoft Anything' session on Tech Community for the Sentinel SIEM Migration Experience!</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-sentinel/reminder-next-tuesday-6-23-at-9am-pst-we-will-be-hosting-an-ask/m-p/4529360#M12943</link>
      <description>&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-teams="true"&gt;Join us for a live demo and AMA on the Microsoft Sentinel SIEM migration experience. We’ll show how the experience helps teams move from legacy SIEMs like Splunk and QRadar into Microsoft Sentinel with a more guided, lower-friction path. We’ll cover what it does today, how it works, and the questions customers ask most, then open it up for live Q&amp;amp;A.&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;H4&gt;&lt;STRONG&gt;Link here: &lt;A href="https://techcommunity.microsoft.com/event/microsoft-security-events/ask-microsoft-anything-the-microsoft-sentinel-siem-migration-experience/4521635" target="_blank"&gt;Ask Microsoft Anything: The Microsoft Sentinel SIEM Migration Experience&lt;/A&gt;&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;&lt;STRONG&gt;Hope to see you there!&lt;/STRONG&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 18 Jun 2026 22:25:31 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-sentinel/reminder-next-tuesday-6-23-at-9am-pst-we-will-be-hosting-an-ask/m-p/4529360#M12943</guid>
      <dc:creator>Trevor_Rusher</dc:creator>
      <dc:date>2026-06-18T22:25:31Z</dc:date>
    </item>
  </channel>
</rss>

