12-28-2020, 05:07 PM
Using Microsoft 365 Defender to protect against Solorigate
<div style="margin: 5px 5% 10px 5%;"><img src="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate.png" width="1790" height="748" title="" alt="" /></div><div><p>Microsoft security researchers continue to investigate and respond to the <a href="https://blogs.microsoft.com/on-the-issues/2020/12/13/customers-protect-nation-state-cyberattacks/">sophisticated cyberattack</a> known as <a href="https://www.microsoft.com/en-us/wdsi/threats/malware-encyclopedia-description?Name=Trojan:MSIL/Solorigate.B!dha">Solorigate</a> (also referred to as <a href="https://www.fireeye.com/blog/threat-research/2020/12/evasive-attacker-leverages-solarwinds-supply-chain-compromises-with-sunburst-backdoor.html">Sunburst</a> by FireEye) involving a supply chain compromise and the subsequent compromise of cloud assets. While the related investigations and impact assessments are ongoing, Microsoft is providing visibility into the attack chains and related threat intelligence to the defender community as early as possible so organizations can identify and take action to stop this attack, understand the potential scope of its impact, and begin the recovery process from this active threat. We have established a resource center that is constantly updated as more information becomes available at <a href="https://aka.ms/solorigate">https://aka.ms/solorigate</a>.</p>
<p><strong>This blog is a comprehensive guide for security operations and incident response teams using Microsoft 365 Defender to identify, investigate, and respond to the Solorigate attack</strong> if it’s found in your environment. The description of the attack in this blog is based on current analysis and investigations by researchers across Microsoft, our partners, and the intelligence community who are actively collaborating to respond to the attack. This is an active threat that continues to evolve, and the findings included here represent what we know at the time of publishing. We continue to publish and update intelligence, indicators, tactics, techniques, and procedures (TTPs), and related details as we discover them. The <a href="https://msrc-blog.microsoft.com/2020/12/13/customer-guidance-on-recent-nation-state-cyber-attacks/">report</a> from the Microsoft Security Response Center (MSRC) includes the latest analysis of this threat, known indicators of compromise (IOCs), and initial recommended defenses, and will be updated as new data becomes available.</p>
<p>This blog covers:</p>
<h2 id="Tracking-the-cross-domain-Solarigate-attack">Tracking the cross-domain Solorigate attack from endpoint to the cloud</h2>
<p>The Solorigate attack is an example of a modern cross-domain compromise. Since these kinds of attacks span multiple domains, having visibility into the entire scope of the attack is key to stopping and preventing its spread.</p>
<p>This attack features a sophisticated technique involving a software supply chain compromise that allowed attackers to introduce malicious code into signed binaries on the SolarWinds Orion Platform, a popular IT management software. The compromised application grants attackers “free” and easy deployment across a wide range of organizations who use and regularly update the application, with little risk of detection because the signed application and binaries are common and are considered trusted. With this initial widespread foothold, the attackers can then pick and choose the specific organizations they want to continue operating within (while others remain an option at any point as long as the backdoor is installed and undetected). Based on our investigations, the next stages of the attack involve on-premises activity with the goal of off-premises access to cloud resources through the following steps:</p>
<ol>
<li>Using the compromised SolarWinds DLL to activate a backdoor that enables attackers to remotely control and operate on a device</li>
<li>Using the backdoor access to steal credentials, escalate privileges, and move laterally to gain the ability to create valid SAML tokens using any of two methods:
<ol>
<li>Stealing the SAML signing certificate (Path 1)</li>
<li>Adding to or modifying existing federation trust (Path 2)</li>
</ol>
</li>
<li>Using attacker-created SAML tokens to access cloud resources and perform actions leading to the exfiltration of emails and persistence in the cloud</li>
</ol>
<p><a href="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate.png"><img loading="lazy" class="alignnone wp-image-92470 size-full" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate.png" alt="Diagram of the high-level Solorigate attack chain" width="1790" height="748"></a></p>
<p><em>Figure 1. High-level end-to-end Solorigate attack chain</em></p>
<p>This attack is an advanced and stealthy campaign with the ability to blend in, which could allow attackers to stay under the radar for long periods of time before being detected. The deeply integrated cross-domain security capabilities in <a href="https://www.microsoft.com/en-us/microsoft-365/security/microsoft-365-defender">Microsoft 365 Defender</a> can empower organizations and their security operations (SOC) teams to uncover this attack, scope out the end-to-end breach from endpoint to the cloud, and take action to block and remediate it. This blog will offer step-by-step guidance to do this by outlining:</p>
<ul>
<li>How indicators of attack show up across endpoints, identity, and the cloud</li>
<li>How Microsoft 365 Defender automatically combines alerts across these different domains into a comprehensive end-to-end story</li>
<li>How to leverage the powerful toolset available for deep investigation, hunting, and response to enable SOCs to battle the attackers and evict these attackers from both on-premises and cloud environments</li>
</ul>
<h3 id="Threat-analytics-Solorigate">Threat analytics: Understanding and responding to active attacks</h3>
<p>As soon as this attack was discovered, Microsoft researchers published two <a href="https://docs.microsoft.com/en-us/windows/security/threat-protection/microsoft-defender-atp/threat-analytics">threat analytics</a> reports to help organizations determine if they are affected, assess the impact of the attack, and identify actions to contain it.</p>
<p>The reports are published in <a href="https://security.microsoft.com">Microsoft 365 security</a> center, available to all Microsoft Defender for Endpoint customers and Microsoft 365 Defender early adopters. In addition to detailed descriptions of the attack, TTPs, and indicators of compromise (IoCs), the reports provide real-time data aggregated from signals across Microsoft 365 Defender, indicating the all-up impact of the threat to the organization, as well as details about relevant incidents and alerts to initiate investigation on. These reports continue to be updated as additional information becomes available.</p>
<p>Given the significance of this threat, we are making similar relevant Microsoft threat intelligence data, including the updated list of IOCs, available to everyone publicly. A comprehensive list of guidance and insights is available at <a href="https://aka.ms/solorigate">https://aka.ms/solorigate</a>.</p>
<p><a href="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate.jpg"><img loading="lazy" class="alignnone wp-image-92471 size-full" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate.jpg" alt="Screenshot of threat analytics report on Soloriage in Microsoft Defender Security Center" width="1619" height="895"></a></p>
<p><em>Figure 2. Threat analytics report on Solorigate attack</em></p>
<p>We recommend Microsoft 365 Defender customers to start their investigations here. After gaining deep understanding of the threat and getting the latest research findings, you can take the following recommended steps:</p>
<h3>Find devices with the compromised SolarWinds Orion application</h3>
<p>The threat analytics report uses insights from <a href="https://docs.microsoft.com/en-us/windows/security/threat-protection/microsoft-defender-atp/next-gen-threat-and-vuln-mgt">threat and vulnerability management</a> to identify devices that have the compromised SolarWinds Orion Platform binaries or are exposed to the attack due to misconfiguration.</p>
<p>From the <em>Vulnerability patching status</em> chart in threat analytics, you can view the mitigation details to see a list of devices with the vulnerability ID TVM-2020-0002, which was added specifically to help with Solorigate investigations:</p>
<p><a href="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-1.png"><img loading="lazy" class="alignnone wp-image-92489 size-full" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-1.png" alt="Threat and vulnerability management insights on impact of Solorigate" width="1325" height="623"></a></p>
<p><em>Figure 3. Threat and vulnerability management data shows data on exposed devices</em></p>
<p>Threat and vulnerability management provides more info about the vulnerability ID TVM-2020-0002, as well as all relevant applications, via the <em>Software inventory</em> view. There are also multiple <a href="https://master.staging.securitycenter.microsoft.com/security-recommendations?filters=status%3DActive&page_size=30&search=solarwinds%20orion&fields=title,osPlatform,weaknessesCount,relatedComponent,threats,exposedDevicesWithTrends,status,remediationType,remediationTasks,impactInfo,recommendationTags">security recommendations</a> to address this specific threat, including instructions to update the software versions installed on exposed devices.</p>
<p><a href="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-2.png"><img loading="lazy" class="alignnone wp-image-92473 size-full" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-2.png" alt="Screenshot of security recommendations for Solorigate in Microsoft Defender Security Center" width="1430" height="401"></a></p>
<p><em>Figure 4. Security recommendations from </em><em>threat and vulnerability management</em></p>
<h3>Investigate related alerts and incidents</h3>
<p>From the threat analytics report, you can quickly locate devices with alerts related to the attack. The <em>Devices with alerts</em> chart identifies devices with malicious components or activities known to be directly related to Solorigate. Click through to get the list of alerts and investigate.</p>
<p>Some Solorigate activities may not be directly tied to this specific threat but will trigger alerts due to generally suspicious or malicious behaviors. All alerts in Microsoft 365 Defender provided by different Microsoft 365 products are correlated into incidents. Incidents help you see the relationship between detected activities, better understand the end-to-end picture of the attack, and investigate, contain, and remediate the threat in a consolidated manner.</p>
<p>Review incidents in the <a href="https://docs.microsoft.com/en-us/microsoft-365/security/mtp/investigate-incidents?view=o365-worldwide">Incidents</a> queue and look for those with alerts relevant to this attacker’s TTPs, as described in the threat analytics report (also listed at the end of this blog).</p>
<p><a href="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-3.png"><img loading="lazy" class="alignnone wp-image-92474 size-full" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-3.png" alt="Screenshot of Microsoft Defender Security Center incidents view for Solorigate" width="1104" height="683"></a></p>
<p><em>Figure 5. Consolidated Incident view for Solorigate</em></p>
<p>Some alerts are specially tagged with <a href="https://aka.ms/threatexperts">Microsoft Threat Experts</a> to indicate malicious activities that Microsoft researchers found in customer environments during hunting. As part of the Microsoft Threat Experts service, researchers investigated this attack as it unfolded, hunting for associated attacker behaviors, and sent <a href="https://docs.microsoft.com/en-us/windows/security/threat-protection/microsoft-defender-atp/microsoft-threat-experts#targeted-attack-notification">targeted attack notifications</a>. If you see an alert tagged with Microsoft Threat Experts, we strongly recommend that you give it immediate attention.</p>
<p><a href="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-4.png"><img loading="lazy" class="alignnone size-full wp-image-92475" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-4.png" alt="Screenshot of Microsoft Defender Security Center showing Microsoft Threat Experts detections" width="864" height="486"></a></p>
<p><em>Figure 6. Microsoft Threat Experts </em><em>targeted attack notification</em></p>
<p>Additionally, Microsoft Threat Experts customers with <a href="https://docs.microsoft.com/en-us/windows/security/threat-protection/microsoft-defender-atp/microsoft-threat-experts#collaborate-with-experts-on-demand">Experts on demand</a> subscriptions can reach out directly to our on-demand hunters for additional help in understanding the Solorigate threat and the scope of its impact in their environments.</p>
<h3>Hunt for related attacker activity</h3>
<p>The threat analytics report also provides <a href="https://docs.microsoft.com/en-us/microsoft-365/security/mtp/advanced-hunting-overview?view=o365-worldwide">advanced hunting</a> queries that can help analysts locate additional related or similar activities across endpoint, identity, and cloud. Advanced hunting uses a rich set of data sources, but in response to Solorigate, Microsoft has enabled streaming of Azure Active Directory (Azure AD) audit logs into advanced hunting, available for all customers in <a href="https://docs.microsoft.com/en-us/microsoft-365/security/mtp/preview?view=o365-worldwide">public preview</a>. These logs provide traceability for all changes done by various features within Azure AD. Examples of audit logs include changes made to any resources within Azure AD, such as adding or removing users, apps, groups, roles, and policies. Customers who do not have Microsoft Defender for Endpoint or are not early adopters for Microsoft 365 Defender can see our <a href="https://github.com/microsoft/Microsoft-365-Defender-Hunting-Queries">recommended advanced hunting queries</a>.</p>
<p>Currently, this data is available to customers who have Microsoft Cloud App Security with the <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fcloud-app-security%2Fconnect-office-365-to-microsoft-cloud-app-security&data=04%7C01%7CTali.Ash%40microsoft.com%7Cfc3806cdc15f41c465d108d8a1d7db00%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C637437295875479254%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=wU8ba9Ba3CjrG4rt%2BsjfbuzdnIX0uultcafBrLcGbOI%3D&reserved=0">Office365 connector</a>. Our intent is to expand availability to more Microsoft 365 Defender customers. The new log data is available in the <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fmicrosoft-365%2Fsecurity%2Fmtp%2Fadvanced-hunting-cloudappevents-table%3Fview%3Do365-worldwide&data=04%7C01%7CTali.Ash%40microsoft.com%7Cfc3806cdc15f41c465d108d8a1d7db00%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C637437295875489209%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=PiIofUClKe%2B5DZrIV5G1aR7%2BBKgy8XczaLyPhduSSXA%3D&reserved=0">CloudAppEvents</a> table:</p>
<p><em>CloudAppEvents</em><br /><em>| where Application == “Office 365”</em></p>
<p>The log data contains activity logs useful for investigating and finding Azure AD-related activities. This data further enriches the <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fmicrosoft-365%2Fsecurity%2Fmtp%2Fadvanced-hunting-cloudappevents-table%3Fview%3Do365-worldwide&data=04%7C01%7CTali.Ash%40microsoft.com%7Cfc3806cdc15f41c465d108d8a1d7db00%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C637437295875489209%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=PiIofUClKe%2B5DZrIV5G1aR7%2BBKgy8XczaLyPhduSSXA%3D&reserved=0">CloudAppEvents</a> table, which also has <a href="https://techcommunity.microsoft.com/t5/microsoft-365-defender/hunt-across-cloud-app-activities-with-microsoft-365-defender/ba-p/1893857">Exchange Online and Microsoft Teams activities</a>.</p>
<p>As part of making this new data available, we also published a handful of relevant advanced hunting queries, identified by the suffix <em>[Solorigate]</em>, to the <a href="https://github.com/microsoft/Microsoft-365-Defender-Hunting-Queries/blob/master/Exfiltration/MailItemsAccessed%20Throttling%20%5BSolorigate%5D.md">GitHub repo</a>.</p>
<p>Here’s an example <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmicrosoft%2FMicrosoft-365-Defender-Hunting-Queries%2Fblob%2Fmaster%2FPersistence%2FCredentialsAddAfterAdminConsentedToApp%255BSolorigate%255D.md&data=04%7C01%7CTali.Ash%40microsoft.com%7Cfc3806cdc15f41c465d108d8a1d7db00%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C637437295875489209%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=ss0mMEvsi4hsHqL3bgwX9kku7UgyBmYXKY4JdhlAAtY%3D&reserved=0">query</a> that helps you see when credentials are added to an Azure AD application after ‘Admin Consent’ permissions were granted:</p>
<p><em>CloudAppEvents</em><br /><em>| where Application == “Office 365”</em><br /><em>| where ActionType == “Consent to application.”</em><br /><em>| where RawEventData.ModifiedProperties[0].Name == “ConsentContext.IsAdminConsent” and RawEventData.ModifiedProperties[0].NewValue == “True”</em><br /><em>| extend spnID = tostring(RawEventData.Target[3].ID)</em><br /><em>| parse RawEventData.ModifiedProperties[4].NewValue with * “=> [[” dummpy “Scope: ” After “]]” *</em><br /><em>| extend PermissionsGranted = split(After, “]”,0)</em><br /><em>| project ConsentTime = Timestamp , AccountDisplayName , spnID , PermissionsGranted</em><br /><em>| join (</em><br /><em>CloudAppEvents</em><br /><em>| where Application == “Office 365”</em><br /><em>| where ActionType == “Add service principal credentials.” or ActionType == “Update application – Certificates and secrets management “</em><br /><em>| extend spnID = tostring(RawEventData.Target[3].ID) </em><br /><em>| project AddSecretTime = Timestamp, AccountDisplayName , spnID </em><br /><em>) on spnID </em><br /><em>| where ConsentTime < AddSecretTime and AccountDisplayName <> AccountDisplayName1</em></p>
<p>Microsoft 356 Defender advanced hunting can also assist in many of the recommended incident investigation tasks outlined in the blog, <a href="https://www.microsoft.com/security/blog/2020/12/21/advice-for-incident-responders-on-recovery-from-systemic-identity-compromises/">Advice for incident responders on recovery from systemic identity compromises</a>.</p>
<p>In the remaining sections, we will discuss select examples of alerts raised by Microsoft 365 solutions that monitor and detect Solorigate activities across the attack chain on endpoint, identity, and the cloud. These are alerts you may encounter when investigating incidents in Microsoft 365 security center if your organization is affected by this threat. We will also indicate activities which are now blocked by Microsoft 365 Defender. Lastly, each section contains examples of hunting queries you will find useful for hunting for various attacker activities in your environment.</p>
<h2 id="Malicious-activity-endpoint">Detecting and blocking malware and malicious behavior on endpoints</h2>
<p><a href="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-5.png"><img loading="lazy" class="alignnone wp-image-92476 size-full" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-5.png" alt="Diagram showing attack chain on endpoints involving the Solorigate malware" width="1789" height="748"></a></p>
<p><em>Figure 7. Solorigate attack chain: Initial access and command-and-control </em></p>
<h3>Discovering and blocking backdoor activity</h3>
<p>When the compromised SolarWinds binary <em>SolarWinds.Orion.Core.BusinessLayer.dll</em> gets loaded on a device through normal update channels, the backdoor goes through an extensive list of checks to ensure it’s running in an actual enterprise network and not on an analyst’s machine. It then contacts a command-and-control (C2) server using a subdomain that is generated partly with information gathered from the affected device, which means a unique subdomain is generated for each affected domain. The backdoor allows the attackers to remotely run commands on the device and move to the next stages of the attack. For more information, read our <a href="https://www.microsoft.com/security/blog/2020/12/18/analyzing-solorigate-the-compromised-dll-file-that-started-a-sophisticated-cyberattack-and-how-microsoft-defender-helps-protect/">in-depth analysis of the Solorigate malware</a>.</p>
<p>Microsoft Defender for Endpoint delivers comprehensive protection against this threat (see full list of detection and protection alerts at the end of this blog). Microsoft Defender Antivirus, the default antimalware solution on Windows 10, <a href="https://www.microsoft.com/security/blog/2020/12/15/ensuring-customers-are-protected-from-solorigate/">detects and blocks</a> the malicious DLL and its behaviors. It quarantines the malware, even if the process is running.</p>
<p><a href="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-6.png"><img loading="lazy" class="alignnone wp-image-92477 size-full" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-6.png" alt="Screenshot of Microsoft Defender Security Center showing alert for blocking of Solorigate malware" width="1342" height="709"></a></p>
<p><em>Figure 8. Microsoft Defender for Endpoint blocks malicious binaries</em></p>
<p>If the malicious code is successfully deployed, the backdoor lies dormant for up to two weeks. It then attempts to contact numerous C2 domains, with the primary domain being <em>*.avsvmcloud[.]com</em>. The backdoor uses a domain generation algorithm to evade detection. Microsoft 365 Defender detects and blocks this behavior.</p>
<p><em> <a href="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-7.png"><img loading="lazy" class="alignnone wp-image-92495 size-full" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-7.png" alt="Screenshot of Microsoft Defender Security Center showing alert for malicious network connection" width="2061" height="1047"></a></em></p>
<p><em>Figure 9. Microsoft Defender for Endpoint prevented malicious C2 callback</em></p>
<h3>Discovering potentially tampered devices</h3>
<p>To evade security software and analyst tools, the Solorigate malware enumerates the target system looking for certain running processes, loaded drivers, and registry keys, with the goal of disabling them.</p>
<p>The Microsoft Defender for Endpoint sensor is one of the processes the malware attempts to disable. Microsoft Defender for Endpoint has built-in protections against many techniques attackers use to disable endpoint sensors ranging from hardened OS protection, <a href="https://docs.microsoft.com/en-us/windows/security/threat-protection/microsoft-defender-antivirus/prevent-changes-to-security-settings-with-tamper-protection">anti-tampering policies</a>, and detections for a variety of tampering attempts, including “Attempt to stop Microsoft Defender for Endpoint sensor”, “Tampering with Microsoft Defender for Endpoint sensor settings”, or “Possible sensor tampering in memory”.</p>
<p>Successfully disabling Microsoft Defender for Endpoint can prevent the system from reporting observed activities. However, the multitude of signals reported into Microsoft 365 Defender provides a unique opportunity to hunt for systems where the tampering technique used might have been successful. The following advanced hunting query can be used to locate devices that should be reporting but aren’t:</p>
<p><em>// Times to be modified as appropriate</em><br /><em>let timeAgo=1d;</em><br /><em>let silenceTime=8h;</em><br /><em>// Get all silent devices and IPs from network events</em><br /><em>let allNetwork=materialize(DeviceNetworkEvents</em><br /><em>| where Timestamp > ago(timeAgo)</em><br /><em>and isnotempty(LocalIP)</em><br /><em>and isnotempty(RemoteIP)</em><br /><em>and ActionType in (“ConnectionSuccess”, “InboundConnectionAccepted”)</em><br /><em>and LocalIP !in (“127.0.0.1”, “::1”)</em><br /><em>| project DeviceId, Timestamp, LocalIP, RemoteIP, ReportId);</em><br /><em>let nonSilentDevices=allNetwork</em><br /><em>| where Timestamp > ago(silenceTime)</em><br /><em>| union (DeviceProcessEvents | where Timestamp > ago(silenceTime))</em><br /><em>| summarize by DeviceId;</em><br /><em>let nonSilentIPs=allNetwork</em><br /><em>| where Timestamp > ago(silenceTime)</em><br /><em>| summarize by LocalIP;</em><br /><em>let silentDevices=allNetwork</em><br /><em>| where DeviceId !in (nonSilentDevices)</em><br /><em>and LocalIP !in (nonSilentIPs)</em><br /><em>| project DeviceId, LocalIP, Timestamp, ReportId;</em><br /><em>// Get all remote IPs that were recently active</em><br /><em>let addressesDuringSilence=allNetwork</em><br /><em>| where Timestamp > ago(silenceTime)</em><br /><em>| summarize by RemoteIP;</em><br /><em>// Potentially disconnected devices were connected but are silent</em><br /><em>silentDevices</em><br /><em>| where LocalIP in (addressesDuringSilence)</em><br /><em>| summarize ReportId=arg_max(Timestamp, ReportId), Timestamp=max(Timestamp), LocalIP=arg_max(Timestamp, LocalIP) by DeviceId</em><br /><em>| project DeviceId, ReportId=ReportId1, Timestamp, LocalIP=LocalIP1</em></p>
<p>Microsoft is continuously developing additional measures to both block and alert on these types of tampering activities.</p>
<h2 id="Hands-on-keyboard-activity-on-prem">Detecting hands-on-keyboard activity within an on-premises environment</h2>
<p><a href="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-8.png"><img loading="lazy" class="alignnone wp-image-92480 size-full" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-8.png" alt="Diagram showing Solorigate hands-on-keyboard attack on premises" width="1790" height="852"></a></p>
<p><em>Figure 10. Solorigate attack chain: Hands-on-keyboard attack on premises</em></p>
<p>After establishing a backdoor connection on an affected device, the attacker’s next goal is to achieve off-premises access to the organization’s cloud services. To do this, they must find a way to gain permissions to those services. One technique we have seen the attackers use is to go after the organization’s Active Directory Federation Services (<a href="https://docs.microsoft.com/en-us/windows-server/identity/active-directory-federation-services">AD FS</a>) server to obtain the proverbial “keys” to the identity kingdom. AD FS enables federated identity and access management by securely sharing digital identity and entitlement rights across security and enterprise boundaries; effectively, it is the “LSASS for the cloud.” Among other things, AD FS stores the Security Assertion Markup Language (<a href="https://docs.microsoft.com/en-us/azure/active-directory/manage-apps/certificate-signing-options">SAML</a>) token signing certificate, which is used to create authorization tokens for users or services in the organization so they can access cloud applications and resources after authentication.</p>
<p>To attack the AD FS infrastructure, the attackers must first obtain appropriate domain permissions through on-premises intelligence gathering, lateral movement, and credential theft. Building from the backdoor described above, the attackers leverage fileless techniques for privilege escalation, persistence, and lateral movement, including evading analysis by using system binaries and exploration tools that masquerade as other benign binaries. The attackers also carefully chose organization-specific command-and-control (C2) domains and use custom organization-specific tool naming and locations.</p>
<p>Microsoft Defender for Endpoint detects a wide array of these attack techniques, allowing SOC teams to track the attacker’s actions in the environment and take actions to contain the attack. The following section covers detections for the techniques used by the attackers to compromise the AD FS infrastructure.</p>
<h3>Identifying attacker reconnaissance</h3>
<p>Attackers collect data from Active Directory using a renamed version of the utility ADFind, running queries against Domain Controllers as part of the reconnaissance stage of the attack. Microsoft Defender for Endpoint detects this behavior and allows the SOC analyst to track compromised devices at this stage to gain visibility into the information the attacker is looking for.</p>
<p><a href="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-9.png"><img loading="lazy" class="alignnone wp-image-92481 size-full" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-9.png" alt="Screenshot of Microsoft Defender Security Center alert for detection of exploration tools" width="1232" height="746"></a></p>
<p><em>Figure 11. Microsoft Defender for Endpoint detects usage of masquerading exploration tools</em></p>
<p><a href="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-10.png"><img loading="lazy" class="alignnone wp-image-92482 size-full" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-10.png" alt="Screenshot of Microsoft Defender Security Center alert for detection of LDAP queries" width="1232" height="747"></a></p>
<p><em>Figure 12. Microsoft Defender for Endpoint detects usage LDAP query for reconnaissance.</em></p>
<h3>Stopping lateral movement and credential theft</h3>
<p>To gain access to a highly privileged account needed for later steps in the kill chain, the attackers move laterally between devices and dump credentials until an account with the needed privileges is compromised, all while remaining as stealthy as possible.</p>
<p>A variety of credential theft methods, such as dumping LSASS memory, are detected and blocked by Microsoft Defender for Endpoint. The example below shows the detection of lateral movement using Windows Management Instrumentation (WMI) to run the attacker’s payload using the <em>Rundll32.exe</em> process.</p>
<p><a href="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-11.png"><img loading="lazy" class="alignnone wp-image-92483 size-full" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-11.png" alt="Screenshot of Microsoft Defender Security Center alert for detection of remote WMI execution" width="1232" height="746"></a></p>
<p><em>Figure 13. </em><em>Microsoft Defender for Endpoint alert for suspicious remote WMI execution highlighting the attacker’s device and payload</em></p>
<p>Microsoft Defender for Identity also detects and raises alerts on a variety of credential theft techniques. In addition to watching for alerts, security analysts can hunt across identity data in Microsoft 365 Defender for signs of identity compromise. Here are a couple of example Microsoft Defender for Identity queries looking for such patterns:</p>
<p>Enumeration of high-value DC assets followed by logon attempts to validate stolen credentials in time proximity</p>
<p><em>let MaxTime = 1d;</em><br /><em>let MinNumberLogon = 5;</em><br /><em>//devices attempting enumeration of high-value DC</em><br /><em>IdentityQueryEvents</em><br /><em>| where Timestamp > ago(30d)</em><br /><em>| where Application == “Active Directory”</em><br /><em>| where QueryTarget in (“Read-only Domain Controllers”) </em><br /><em>//high-value RODC assets</em><br /><em>| project Timestamp, Protocol, Query, DeviceName, AccountUpn</em><br /><em>| join kind = innerunique (</em><br /><em>//devices trying to logon {MaxTime} after enumeration</em><br /><em>IdentityLogonEvents</em><br /><em>| where Timestamp > ago(30d)</em><br /><em>| where ActionType == “LogonSuccess”</em><br /><em>| project LogonTime = Timestamp, DeviceName, DestinationDeviceName) on DeviceName </em><br /><em>| where LogonTime between (Timestamp .. (Timestamp + MaxTime)) </em><br /><em>| summarize n=dcount(DestinationDeviceName), TargetedDC = makeset(DestinationDeviceName) by Timestamp, Protocol, DeviceName</em><br /><em>| where n >= MinNumberLogon</em></p>
<p>High-volume of LDAP queries in short time filtering for non-DC devices</p>
<p><em>let Threshold = 12;</em><br /><em>let BinTime = 1m;</em><br /><em>//approximate list of DC </em><br /><em>let listDC=IdentityDirectoryEvents </em><br /><em>| where Application == “Active Directory”</em><br /><em>| where ActionType == “Directory Services replication”</em><br /><em>| summarize by DestinationDeviceName;</em><br /><em>IdentityQueryEvents</em><br /><em>| where Timestamp > ago(30d)</em><br /><em>//filter out LDAP traffic across DC</em><br /><em>| where DeviceName !in (listDC)</em><br /><em>| where ActionType == “LDAP query”</em><br /><em>| parse Query with * “Search Scope: ” SearchScope “, Base Object:” BaseObject “, Search Filter: ” SearchFilter</em><br /><em>| summarize NumberOfDistinctLdapQueries = dcount(SearchFilter) by DeviceName, bin(Timestamp, BinTime)</em><br /><em>| where NumberOfDistinctLdapQueries > Threshold </em></p>
<p>At this point, SOC teams can take containment measures within the Microsoft 365 security center, for example, using <a href="https://docs.microsoft.com/windows/security/threat-protection/microsoft-defender-atp/manage-indicators">indicators</a> to isolate the devices involved and block the remotely executed payload across the environment, as well as mark suspect users as compromised.</p>
<h3>Detecting and remediating persistence</h3>
<p>Microsoft Defender for Endpoint also detects the advanced defense evasion and masquerading techniques used by the attackers to make their actions as close to normal as possible, such as binding a WMI event filter with a logical consumer to remain persistent. Follow the recommended actions in the alert to remove persistence and prevent the attacker’s payload from loading after reboot.</p>
<p><a href="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-12.png"><img loading="lazy" class="alignnone wp-image-92484 size-full" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-12.png" alt="Screenshot of Microsoft Defender Security Center alert for detection of WMI event filter bound to suspicious consumer" width="1515" height="791"></a></p>
<p><em>Figure 14. Microsoft Defender for Endpoint alert for WMI event filter bound to a suspicious consumer showing the persistence and the scheduled command line</em></p>
<h3>Catching AD FS compromise and the attacker’s ability to impersonate users in the cloud</h3>
<p>The next step in the attack focuses on the AD FS infrastructure and can unfold in two separate paths that lead to the same outcome—the ability to create valid SAML tokens allowing impersonation of users in the cloud:</p>
<ul>
<li><strong>Path 1 – Stealing the SAML signing certificate</strong>: After gaining administrative privileges in the organization’s on-premises network, and with access to the AD FS server itself, the attackers access and extract the SAML signing certificate. With this signing certificate, the attackers create valid SAML tokens to access various desired cloud resources as the identity of their choosing.</li>
<li><strong>Path 2 – Adding to or modifying existing federation trust</strong>: After gaining administrative Azure Active Directory (Azure AD) privileges using compromised credentials, the attackers add their own certificate as a trusted entity in the domain either by adding a new federation trust to an existing tenant or modifying the properties of an existing federation trust. As a result, any SAML token they create and sign will be valid for the identity of their choosing.</li>
</ul>
<p>In the first path, obtaining the SAML signing certificate normally entails first querying the private encryption key that resides on the AD FS container and then using that key to decrypt the signing certificate. The certificate can then be used to create illicit but valid SAML tokens that allow the actor to impersonate users, enabling them to access enterprise cloud applications and services.</p>
<p>Microsoft Defender for Endpoint and Microsoft Defender for Identity detect the actions that attackers take to steal the encryption key needed to decrypt the SAML signing certificate. Both solutions leverage unique LDAP telemetry to raise high-severity alerts highlighting the attacker’s progress towards creating illicit SAML tokens.</p>
<p><em><a href="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-13.png"><img loading="lazy" class="alignnone wp-image-92485 size-full" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-13.png" alt="Screenshot of Microsoft Defender Security Center alert for LDAP query and AD FS private key extraction" width="1342" height="818"></a> </em></p>
<p><em>Figure 15. Microsoft Defender for Endpoint detects a suspicious LDAP query being launched and an attempted AD FS private key extraction</em></p>
<p><img loading="lazy" class="alignnone size-full wp-image-92496" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-14.png" alt width="854" height="527"></p>
<p><em>Figure 16. Microsoft Defender for Identity detects private key extraction via</em><em> malicious LDAP requests </em></p>
<p>For the second path, the attackers create their own SAML signing certificate outside of the organization’s environment. With Azure AD administrative permissions, they then add the new certificate as a trusted object. The following advanced hunting query over Azure AD audit logs shows when domain federation settings are changed, helping to discover where the attackers configured the domain to accept authorization tokens signed by their own signing certificate. As these are rare actions, we advise verifying that any instances identified are the result of legitimate administrative activity.</p>
<p><em><a href="https://github.com/microsoft/Microsoft-365-Defender-Hunting-Queries/blob/master/Defense%20evasion/ADFSDomainTrustMods%5BSolarigate%5D.md">ADFSDomainTrustMods</a></em></p>
<p><em>let auditLookback = 1d; CloudAppEvents</em><br /><em>| where Timestamp > ago(auditLookback)</em><br /><em>| where ActionType =~ “Set federation settings on domain.”</em><br /><em>| extend targetDetails = parse_json(ActivityObjects[1])</em><br /><em>| extend targetDisplayName = targetDetails.Name</em><br /><em>| extend resultStatus = extractjson(“$.ResultStatus”, tostring(RawEventData), typeof(string))</em><br /><em>| project Timestamp, ActionType, InitiatingUserOrApp=AccountDisplayName, targetDisplayName, resultStatus, InitiatingIPAddress=IPAddress, UserAgent</em></p>
<p>If the SAML signing certificate is confirmed to be compromised or the attacker has added a new one, follow the <a href="https://www.microsoft.com/security/blog/2020/12/21/advice-for-incident-responders-on-recovery-from-systemic-identity-compromises/">best practices</a> for invalidating through certificate rotation to prevent further use and creation of SAML tokens by the attacker. Additionally, affected AD FS servers may need to be isolated and remediated to ensure no remaining attacker control or persistence.</p>
<p>If the attackers accomplish either path, they gain the ability to create illicit SAML tokens for the identities of their choosing and bypass multifactor authentication (MFA), since the service or application accepting the token assumes MFA is a necessary previous step in creating a properly signed token. To prevent attackers from progressing to the next stage, which is to access cloud resources, the attack should be discovered and remediated at this stage.</p>
<h2 id="Hands-on-keyboard-activity-cloud">Detecting the hands-on-keyboard activity in the cloud environment</h2>
<p><a href="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-15.png"><img loading="lazy" class="alignnone wp-image-92487 size-full" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-15.png" alt="Diagram of hands-on-keyboard attacks in the cloud" width="1790" height="748"></a></p>
<p><em>Figure 17. Solorigate attack chain: Hands-on-keyboard attack in the cloud</em></p>
<p>With the ability to create illicit SAML tokens, the attackers can access sensitive data without having to originate from a compromised device or be confined to on-premises persistence. By abusing API access via existing OAuth applications or service principals, they can attempt to blend into the normal pattern of activity, most notably apps or service principals with existing <em>Mail.Read</em> or <em>Mail.ReadWrite</em> permissions to read email content via Microsoft Graph from Exchange Online. If the application does not already have read permissions for emails, then the app may be modified to grant those permissions.</p>
<h3>Identifying unusual addition of credentials to an OAuth app</h3>
<p>Microsoft Cloud App Security (MCAS) has added new automatic detection of unusual credential additions to an OAuth application to alert SOCs about apps that have been compromised to extract data from the organization. This detection logic is built on an anomaly detection engine that learns from each user in the environment, filtering out normal usage patterns to ensure alerts highlight real attacks and not false positives. If you see this alert in your environment and confirm malicious activity, you should take immediate action to suspend the user, mark the user as compromised, reset the user’s password, and remove the credential additions. You may consider disabling the application during investigation and remediation.</p>
<p><img loading="lazy" class="alignnone size-full wp-image-92497" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-16.png" alt width="1439" height="1125"></p>
<p><em>Figure 18. Microsoft Defender Cloud App Security alert for unusual addition of credentials to an OAuth app</em></p>
<p>SOCs can use the following Microsoft 365 Defender advanced hunting query over Azure AD audit logs to examine when new credentials have been added to a service principle or application. In general, credential changes may be rare depending on the type and use of the service principal or application. SOCs should verify unusual changes with their respective owners to ensure they are the result of legitimate administrative actions.</p>
<p><em><a href="https://github.com/microsoft/Microsoft-365-Defender-Hunting-Queries/blob/master/Persistence/NewAppOrServicePrincipalCredential%5BSolarigate%5D.md">NewAppOrServicePrincipalCredential</a></em></p>
<p><em>let auditLookback = 1d; CloudAppEvents</em><br /><em>| where Timestamp > ago(auditLookback)</em><br /><em>| where ActionType in (“Add service principal.”, “Add service principal credentials.”, “Update application – Certificates and secrets management “)</em><br /><em>| extend RawEventData = parse_json(RawEventData)</em><br /><em>| where RawEventData.ResultStatus =~ “success”</em><br /><em>| where AccountDisplayName has “@”</em><br /><em>| extend targetDetails = parse_json(ActivityObjects[1])</em><br /><em>| extend targetId = targetDetails.Id</em><br /><em>| extend targetType = targetDetails.Type</em><br /><em>| extend targetDisplayName = targetDetails.Name</em><br /><em>| extend keyEvents = RawEventData.ModifiedProperties</em><br /><em>| where keyEvents has “KeyIdentifier=” and keyEvents has “KeyUsage=Verify”</em><br /><em>| mvexpand keyEvents</em><br /><em>| where keyEvents.Name =~ “KeyDescription”</em><br /><em>| parse keyEvents.NewValue with * “KeyIdentifier=” keyIdentifier:string “,KeyType=” keyType:string “,KeyUsage=” keyUsage:string “,DisplayName=” keyDisplayName:string “]” *</em><br /><em>| parse keyEvents.OldValue with * “KeyIdentifier=” keyIdentifierOld:string “,KeyType” *</em><br /><em>| where keyEvents.OldValue == “[]” or keyIdentifier != keyIdentifierOld</em><br /><em>| where keyUsage == “Verify”</em><br /><em>| project-away keyEvents</em><br /><em>| project Timestamp, ActionType, InitiatingUserOrApp=AccountDisplayName, InitiatingIPAddress=IPAddress, UserAgent, targetDisplayName, targetId, targetType, keyDisplayName, keyType, keyUsage, keyIdentifier</em></p>
<h3>Discovering malicious access to mail items</h3>
<p>OAuth applications or service principals with <em>Mail.Read</em> or <em>Mail.ReadWrite</em> permissions can read email content from Exchange Online via the Microsoft Graph. To help increase visibility on these behaviors, the <em>MailItemsAccessed</em> action is now available via the new Exchange mailbox advanced audit functionality. <a href="https://docs.microsoft.com/en-us/microsoft-365/compliance/mailitemsaccessed-forensics-investigations?view=o365-worldwide#the-mailitemsaccessed-mailbox-auditing-action">See if this feature is enabled by default for you</a>. Important note for customers: If you have customized the list of audit events you are collecting, you may need to <a href="https://docs.microsoft.com/en-us/microsoft-365/compliance/enable-mailbox-auditing?view=o365-worldwide#change-or-restore-mailbox-actions-logged-by-default">manually enable this telemetry</a>.</p>
<p>If more than 1,000 <em>MailItemsAccessed</em> audit records are generated in less than 24 hours, Exchange Online stops generating auditing records for <em>MailItemsAccessed</em> activity for 24 hours and then resumes logging after this period. This throttling behavior is a good starting point for SOCs to discover potentially compromised mailboxes.</p>
<p><em><a href="https://github.com/microsoft/Microsoft-365-Defender-Hunting-Queries/blob/master/Exfiltration/MailItemsAccessed%20Throttling%20%5BSolorigate%5D.md">MailItemsAccessedThrottling</a></em></p>
<p><em>let starttime = 2d;</em><br /><em>let endtime = 1d;</em><br /><em>CloudAppEvents</em><br /><em>| where Timestamp between (startofday(ago(starttime))..startofday(ago(endtime)))</em><br /><em>| where ActionType == “MailItemsAccessed”</em><br /><em>| where isnotempty(RawEventData[‘ClientAppId’]) and RawEventData[‘OperationProperties’][1] has “True” </em><br /><em>| project Timestamp, RawEventData[‘OrganizationId’],AccountObjectId,UserAgent</em></p>
<p>In addition to looking for throttled telemetry, you can also hunt for OAuth applications reading mail via the Microsoft Graph API whose behavior has changed prior to a baseline period.</p>
<p><em><a href="https://github.com/microsoft/Microsoft-365-Defender-Hunting-Queries/blob/master/Exfiltration/OAuth%20Apps%20reading%20mail%20via%20GraphAPI%20anomaly%20%5BSolorigate%5D.md">OAuthGraphAPIAnomalies</a></em></p>
<p><em>//Look for OAuth App reading mail via GraphAPI — that did not read mail via graph API in prior week </em><br /><em>let appMailReadActivity = (timeframeStart:datetime, timeframeEnd:datetime) { </em><br /><em>CloudAppEvents </em><br /><em>| where Timestamp between (timeframeStart .. timeframeEnd) </em><br /><em>| where ActionType == “MailItemsAccessed” </em><br /><em>| where RawEventData has “00000003-0000-0000-c000-000000000000” // performance check </em><br /><em>| extend rawData = parse_json(RawEventData) </em><br /><em>| extend AppId = tostring(parse_json(rawData.AppId)) </em><br /><em>| extend OAuthAppId = tostring(parse_json(rawData.ClientAppId)) // extract OAuthAppId </em><br /><em>| summarize by OAuthAppId </em><br /><em>}; </em><br /><em>appMailReadActivity(ago(1d),now()) // detection period </em><br /><em>| join kind = leftanti appMailReadActivity(ago(7d),ago(2d)) // baseline period </em><br /><em>on OAuthAppId</em></p>
<h2>Microsoft 365 Defender’s cross-domain XDR correlation enables stronger response to critical security incidents</h2>
<p>Like the rest of the security industry, Microsoft continues to track the Solorigate attack, an active threat that continues to unfold as well as evolve. As part of empowering our customers and the larger security community to respond to this attack through sharing intelligence and providing advice, this blog serves to guide Microsoft 365 customers to take full advantage of the comprehensive visibility and the rich investigation tools available in Microsoft 365 Defender. This blog shows that many of the existing capabilities in Microsoft 365 Defender help address this attack, but the unique scenarios created by the threat resulted in some Solorigate-specific detections and other innovative protections, including ones that are made possible by deeply integrated cross-domain threat defense.</p>
<p>For additional information and further guidance, refer to these Microsoft resources:</p>
<p>Microsoft will continue to provide public information about the patterns and techniques of this attack and related intelligence for customers to defend themselves, in addition to enhancing the protection capabilities of Microsoft security solutions.</p>
<h2 id="Summary-detections-hunting-queries">Appendix: Additional details for detection and hunting</h2>
<h3>Detection details</h3>
<table border="1">
<tbody>
<tr>
<td width="150"><strong>Attack stage</strong></td>
<td><strong>Microsoft 365 Defender detection or alert </strong></td>
</tr>
<tr>
<td width="150">Initial access</td>
<td>Microsoft Defender for Endpoint:</p>
<ul>
<li>‘Solorigate’ high-severity malware was detected/blocked/prevented (<a href="https://www.microsoft.com/en-us/wdsi/threats/malware-encyclopedia-description?Name=Trojan:MSIL/Solorigate.BR!dha">Trojan:MSIL/Solorigate.BR!dha</a>)</li>
<li>SolarWinds Malicious binaries associated with a supply chain attack</li>
</ul>
</td>
</tr>
<tr>
<td width="150">Execution and persistence</td>
<td>Microsoft Defender for Endpoint: </td>
</tr>
<tr>
<td width="150">Command and Control</td>
<td>Microsoft Defender for Endpoint: </td>
</tr>
<tr>
<td width="150">Defense evasion</td>
<td>Microsoft Defender for Endpoint:</p>
<ul>
<li>Suspicious audit policy tampering</li>
</ul>
</td>
</tr>
<tr>
<td width="150">Reconnaissance</td>
<td>Microsoft Defender for Endpoint:</p>
<ul>
<li>Masquerading Active Directory exploration tool</li>
<li>Suspicious sequence of exploration activities</li>
<li>Execution of suspicious known LDAP query fragments</li>
</ul>
</td>
</tr>
<tr>
<td width="150">Credential access</td>
<td>Microsoft Defender for Endpoint:</p>
<ul>
<li>Suspicious access to LSASS (credential access)</li>
<li>AD FS private key extraction attempt</li>
<li>Possible attempt to access ADFS key material</li>
<li>Suspicious ADFS adapter process created</li>
</ul>
<p>Microsoft Defender for Identity:</p>
<ul>
<li>Unusual addition of permissions to an OAuth app</li>
<li>Active Directory attributes Reconnaissance using LDAP</li>
</ul>
<p>Microsoft Cloud App Security:</p>
<ul>
<li>Unusual addition of credentials to an OAuth app</li>
</ul>
</td>
</tr>
<tr>
<td width="150">Lateral movement</td>
<td>Microsoft Defender for Endpoint</p>
<ul>
<li>Suspicious file creation initiated remotely (lateral movement)</li>
<li>Suspicious Remote WMI Execution (lateral movement)</li>
</ul>
</td>
</tr>
<tr>
<td width="150">Exfiltration</td>
<td>Microsoft Defender for Endpoint</p>
<ul>
<li>Suspicious mailbox export or access modification</li>
<li>Suspicious archive creation</li>
</ul>
</td>
</tr>
</tbody>
</table>
<h3>Advanced hunting queries</h3>
<h3></h3>
</div>
https://www.sickgaming.net/blog/2020/12/...olorigate/
<div style="margin: 5px 5% 10px 5%;"><img src="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate.png" width="1790" height="748" title="" alt="" /></div><div><p>Microsoft security researchers continue to investigate and respond to the <a href="https://blogs.microsoft.com/on-the-issues/2020/12/13/customers-protect-nation-state-cyberattacks/">sophisticated cyberattack</a> known as <a href="https://www.microsoft.com/en-us/wdsi/threats/malware-encyclopedia-description?Name=Trojan:MSIL/Solorigate.B!dha">Solorigate</a> (also referred to as <a href="https://www.fireeye.com/blog/threat-research/2020/12/evasive-attacker-leverages-solarwinds-supply-chain-compromises-with-sunburst-backdoor.html">Sunburst</a> by FireEye) involving a supply chain compromise and the subsequent compromise of cloud assets. While the related investigations and impact assessments are ongoing, Microsoft is providing visibility into the attack chains and related threat intelligence to the defender community as early as possible so organizations can identify and take action to stop this attack, understand the potential scope of its impact, and begin the recovery process from this active threat. We have established a resource center that is constantly updated as more information becomes available at <a href="https://aka.ms/solorigate">https://aka.ms/solorigate</a>.</p>
<p><strong>This blog is a comprehensive guide for security operations and incident response teams using Microsoft 365 Defender to identify, investigate, and respond to the Solorigate attack</strong> if it’s found in your environment. The description of the attack in this blog is based on current analysis and investigations by researchers across Microsoft, our partners, and the intelligence community who are actively collaborating to respond to the attack. This is an active threat that continues to evolve, and the findings included here represent what we know at the time of publishing. We continue to publish and update intelligence, indicators, tactics, techniques, and procedures (TTPs), and related details as we discover them. The <a href="https://msrc-blog.microsoft.com/2020/12/13/customer-guidance-on-recent-nation-state-cyber-attacks/">report</a> from the Microsoft Security Response Center (MSRC) includes the latest analysis of this threat, known indicators of compromise (IOCs), and initial recommended defenses, and will be updated as new data becomes available.</p>
<p>This blog covers:</p>
<h2 id="Tracking-the-cross-domain-Solarigate-attack">Tracking the cross-domain Solorigate attack from endpoint to the cloud</h2>
<p>The Solorigate attack is an example of a modern cross-domain compromise. Since these kinds of attacks span multiple domains, having visibility into the entire scope of the attack is key to stopping and preventing its spread.</p>
<p>This attack features a sophisticated technique involving a software supply chain compromise that allowed attackers to introduce malicious code into signed binaries on the SolarWinds Orion Platform, a popular IT management software. The compromised application grants attackers “free” and easy deployment across a wide range of organizations who use and regularly update the application, with little risk of detection because the signed application and binaries are common and are considered trusted. With this initial widespread foothold, the attackers can then pick and choose the specific organizations they want to continue operating within (while others remain an option at any point as long as the backdoor is installed and undetected). Based on our investigations, the next stages of the attack involve on-premises activity with the goal of off-premises access to cloud resources through the following steps:</p>
<ol>
<li>Using the compromised SolarWinds DLL to activate a backdoor that enables attackers to remotely control and operate on a device</li>
<li>Using the backdoor access to steal credentials, escalate privileges, and move laterally to gain the ability to create valid SAML tokens using any of two methods:
<ol>
<li>Stealing the SAML signing certificate (Path 1)</li>
<li>Adding to or modifying existing federation trust (Path 2)</li>
</ol>
</li>
<li>Using attacker-created SAML tokens to access cloud resources and perform actions leading to the exfiltration of emails and persistence in the cloud</li>
</ol>
<p><a href="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate.png"><img loading="lazy" class="alignnone wp-image-92470 size-full" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate.png" alt="Diagram of the high-level Solorigate attack chain" width="1790" height="748"></a></p>
<p><em>Figure 1. High-level end-to-end Solorigate attack chain</em></p>
<p>This attack is an advanced and stealthy campaign with the ability to blend in, which could allow attackers to stay under the radar for long periods of time before being detected. The deeply integrated cross-domain security capabilities in <a href="https://www.microsoft.com/en-us/microsoft-365/security/microsoft-365-defender">Microsoft 365 Defender</a> can empower organizations and their security operations (SOC) teams to uncover this attack, scope out the end-to-end breach from endpoint to the cloud, and take action to block and remediate it. This blog will offer step-by-step guidance to do this by outlining:</p>
<ul>
<li>How indicators of attack show up across endpoints, identity, and the cloud</li>
<li>How Microsoft 365 Defender automatically combines alerts across these different domains into a comprehensive end-to-end story</li>
<li>How to leverage the powerful toolset available for deep investigation, hunting, and response to enable SOCs to battle the attackers and evict these attackers from both on-premises and cloud environments</li>
</ul>
<h3 id="Threat-analytics-Solorigate">Threat analytics: Understanding and responding to active attacks</h3>
<p>As soon as this attack was discovered, Microsoft researchers published two <a href="https://docs.microsoft.com/en-us/windows/security/threat-protection/microsoft-defender-atp/threat-analytics">threat analytics</a> reports to help organizations determine if they are affected, assess the impact of the attack, and identify actions to contain it.</p>
<p>The reports are published in <a href="https://security.microsoft.com">Microsoft 365 security</a> center, available to all Microsoft Defender for Endpoint customers and Microsoft 365 Defender early adopters. In addition to detailed descriptions of the attack, TTPs, and indicators of compromise (IoCs), the reports provide real-time data aggregated from signals across Microsoft 365 Defender, indicating the all-up impact of the threat to the organization, as well as details about relevant incidents and alerts to initiate investigation on. These reports continue to be updated as additional information becomes available.</p>
<p>Given the significance of this threat, we are making similar relevant Microsoft threat intelligence data, including the updated list of IOCs, available to everyone publicly. A comprehensive list of guidance and insights is available at <a href="https://aka.ms/solorigate">https://aka.ms/solorigate</a>.</p>
<p><a href="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate.jpg"><img loading="lazy" class="alignnone wp-image-92471 size-full" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate.jpg" alt="Screenshot of threat analytics report on Soloriage in Microsoft Defender Security Center" width="1619" height="895"></a></p>
<p><em>Figure 2. Threat analytics report on Solorigate attack</em></p>
<p>We recommend Microsoft 365 Defender customers to start their investigations here. After gaining deep understanding of the threat and getting the latest research findings, you can take the following recommended steps:</p>
<h3>Find devices with the compromised SolarWinds Orion application</h3>
<p>The threat analytics report uses insights from <a href="https://docs.microsoft.com/en-us/windows/security/threat-protection/microsoft-defender-atp/next-gen-threat-and-vuln-mgt">threat and vulnerability management</a> to identify devices that have the compromised SolarWinds Orion Platform binaries or are exposed to the attack due to misconfiguration.</p>
<p>From the <em>Vulnerability patching status</em> chart in threat analytics, you can view the mitigation details to see a list of devices with the vulnerability ID TVM-2020-0002, which was added specifically to help with Solorigate investigations:</p>
<p><a href="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-1.png"><img loading="lazy" class="alignnone wp-image-92489 size-full" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-1.png" alt="Threat and vulnerability management insights on impact of Solorigate" width="1325" height="623"></a></p>
<p><em>Figure 3. Threat and vulnerability management data shows data on exposed devices</em></p>
<p>Threat and vulnerability management provides more info about the vulnerability ID TVM-2020-0002, as well as all relevant applications, via the <em>Software inventory</em> view. There are also multiple <a href="https://master.staging.securitycenter.microsoft.com/security-recommendations?filters=status%3DActive&page_size=30&search=solarwinds%20orion&fields=title,osPlatform,weaknessesCount,relatedComponent,threats,exposedDevicesWithTrends,status,remediationType,remediationTasks,impactInfo,recommendationTags">security recommendations</a> to address this specific threat, including instructions to update the software versions installed on exposed devices.</p>
<p><a href="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-2.png"><img loading="lazy" class="alignnone wp-image-92473 size-full" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-2.png" alt="Screenshot of security recommendations for Solorigate in Microsoft Defender Security Center" width="1430" height="401"></a></p>
<p><em>Figure 4. Security recommendations from </em><em>threat and vulnerability management</em></p>
<h3>Investigate related alerts and incidents</h3>
<p>From the threat analytics report, you can quickly locate devices with alerts related to the attack. The <em>Devices with alerts</em> chart identifies devices with malicious components or activities known to be directly related to Solorigate. Click through to get the list of alerts and investigate.</p>
<p>Some Solorigate activities may not be directly tied to this specific threat but will trigger alerts due to generally suspicious or malicious behaviors. All alerts in Microsoft 365 Defender provided by different Microsoft 365 products are correlated into incidents. Incidents help you see the relationship between detected activities, better understand the end-to-end picture of the attack, and investigate, contain, and remediate the threat in a consolidated manner.</p>
<p>Review incidents in the <a href="https://docs.microsoft.com/en-us/microsoft-365/security/mtp/investigate-incidents?view=o365-worldwide">Incidents</a> queue and look for those with alerts relevant to this attacker’s TTPs, as described in the threat analytics report (also listed at the end of this blog).</p>
<p><a href="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-3.png"><img loading="lazy" class="alignnone wp-image-92474 size-full" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-3.png" alt="Screenshot of Microsoft Defender Security Center incidents view for Solorigate" width="1104" height="683"></a></p>
<p><em>Figure 5. Consolidated Incident view for Solorigate</em></p>
<p>Some alerts are specially tagged with <a href="https://aka.ms/threatexperts">Microsoft Threat Experts</a> to indicate malicious activities that Microsoft researchers found in customer environments during hunting. As part of the Microsoft Threat Experts service, researchers investigated this attack as it unfolded, hunting for associated attacker behaviors, and sent <a href="https://docs.microsoft.com/en-us/windows/security/threat-protection/microsoft-defender-atp/microsoft-threat-experts#targeted-attack-notification">targeted attack notifications</a>. If you see an alert tagged with Microsoft Threat Experts, we strongly recommend that you give it immediate attention.</p>
<p><a href="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-4.png"><img loading="lazy" class="alignnone size-full wp-image-92475" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-4.png" alt="Screenshot of Microsoft Defender Security Center showing Microsoft Threat Experts detections" width="864" height="486"></a></p>
<p><em>Figure 6. Microsoft Threat Experts </em><em>targeted attack notification</em></p>
<p>Additionally, Microsoft Threat Experts customers with <a href="https://docs.microsoft.com/en-us/windows/security/threat-protection/microsoft-defender-atp/microsoft-threat-experts#collaborate-with-experts-on-demand">Experts on demand</a> subscriptions can reach out directly to our on-demand hunters for additional help in understanding the Solorigate threat and the scope of its impact in their environments.</p>
<h3>Hunt for related attacker activity</h3>
<p>The threat analytics report also provides <a href="https://docs.microsoft.com/en-us/microsoft-365/security/mtp/advanced-hunting-overview?view=o365-worldwide">advanced hunting</a> queries that can help analysts locate additional related or similar activities across endpoint, identity, and cloud. Advanced hunting uses a rich set of data sources, but in response to Solorigate, Microsoft has enabled streaming of Azure Active Directory (Azure AD) audit logs into advanced hunting, available for all customers in <a href="https://docs.microsoft.com/en-us/microsoft-365/security/mtp/preview?view=o365-worldwide">public preview</a>. These logs provide traceability for all changes done by various features within Azure AD. Examples of audit logs include changes made to any resources within Azure AD, such as adding or removing users, apps, groups, roles, and policies. Customers who do not have Microsoft Defender for Endpoint or are not early adopters for Microsoft 365 Defender can see our <a href="https://github.com/microsoft/Microsoft-365-Defender-Hunting-Queries">recommended advanced hunting queries</a>.</p>
<p>Currently, this data is available to customers who have Microsoft Cloud App Security with the <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fcloud-app-security%2Fconnect-office-365-to-microsoft-cloud-app-security&data=04%7C01%7CTali.Ash%40microsoft.com%7Cfc3806cdc15f41c465d108d8a1d7db00%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C637437295875479254%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=wU8ba9Ba3CjrG4rt%2BsjfbuzdnIX0uultcafBrLcGbOI%3D&reserved=0">Office365 connector</a>. Our intent is to expand availability to more Microsoft 365 Defender customers. The new log data is available in the <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fmicrosoft-365%2Fsecurity%2Fmtp%2Fadvanced-hunting-cloudappevents-table%3Fview%3Do365-worldwide&data=04%7C01%7CTali.Ash%40microsoft.com%7Cfc3806cdc15f41c465d108d8a1d7db00%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C637437295875489209%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=PiIofUClKe%2B5DZrIV5G1aR7%2BBKgy8XczaLyPhduSSXA%3D&reserved=0">CloudAppEvents</a> table:</p>
<p><em>CloudAppEvents</em><br /><em>| where Application == “Office 365”</em></p>
<p>The log data contains activity logs useful for investigating and finding Azure AD-related activities. This data further enriches the <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fmicrosoft-365%2Fsecurity%2Fmtp%2Fadvanced-hunting-cloudappevents-table%3Fview%3Do365-worldwide&data=04%7C01%7CTali.Ash%40microsoft.com%7Cfc3806cdc15f41c465d108d8a1d7db00%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C637437295875489209%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=PiIofUClKe%2B5DZrIV5G1aR7%2BBKgy8XczaLyPhduSSXA%3D&reserved=0">CloudAppEvents</a> table, which also has <a href="https://techcommunity.microsoft.com/t5/microsoft-365-defender/hunt-across-cloud-app-activities-with-microsoft-365-defender/ba-p/1893857">Exchange Online and Microsoft Teams activities</a>.</p>
<p>As part of making this new data available, we also published a handful of relevant advanced hunting queries, identified by the suffix <em>[Solorigate]</em>, to the <a href="https://github.com/microsoft/Microsoft-365-Defender-Hunting-Queries/blob/master/Exfiltration/MailItemsAccessed%20Throttling%20%5BSolorigate%5D.md">GitHub repo</a>.</p>
<p>Here’s an example <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmicrosoft%2FMicrosoft-365-Defender-Hunting-Queries%2Fblob%2Fmaster%2FPersistence%2FCredentialsAddAfterAdminConsentedToApp%255BSolorigate%255D.md&data=04%7C01%7CTali.Ash%40microsoft.com%7Cfc3806cdc15f41c465d108d8a1d7db00%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C637437295875489209%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=ss0mMEvsi4hsHqL3bgwX9kku7UgyBmYXKY4JdhlAAtY%3D&reserved=0">query</a> that helps you see when credentials are added to an Azure AD application after ‘Admin Consent’ permissions were granted:</p>
<p><em>CloudAppEvents</em><br /><em>| where Application == “Office 365”</em><br /><em>| where ActionType == “Consent to application.”</em><br /><em>| where RawEventData.ModifiedProperties[0].Name == “ConsentContext.IsAdminConsent” and RawEventData.ModifiedProperties[0].NewValue == “True”</em><br /><em>| extend spnID = tostring(RawEventData.Target[3].ID)</em><br /><em>| parse RawEventData.ModifiedProperties[4].NewValue with * “=> [[” dummpy “Scope: ” After “]]” *</em><br /><em>| extend PermissionsGranted = split(After, “]”,0)</em><br /><em>| project ConsentTime = Timestamp , AccountDisplayName , spnID , PermissionsGranted</em><br /><em>| join (</em><br /><em>CloudAppEvents</em><br /><em>| where Application == “Office 365”</em><br /><em>| where ActionType == “Add service principal credentials.” or ActionType == “Update application – Certificates and secrets management “</em><br /><em>| extend spnID = tostring(RawEventData.Target[3].ID) </em><br /><em>| project AddSecretTime = Timestamp, AccountDisplayName , spnID </em><br /><em>) on spnID </em><br /><em>| where ConsentTime < AddSecretTime and AccountDisplayName <> AccountDisplayName1</em></p>
<p>Microsoft 356 Defender advanced hunting can also assist in many of the recommended incident investigation tasks outlined in the blog, <a href="https://www.microsoft.com/security/blog/2020/12/21/advice-for-incident-responders-on-recovery-from-systemic-identity-compromises/">Advice for incident responders on recovery from systemic identity compromises</a>.</p>
<p>In the remaining sections, we will discuss select examples of alerts raised by Microsoft 365 solutions that monitor and detect Solorigate activities across the attack chain on endpoint, identity, and the cloud. These are alerts you may encounter when investigating incidents in Microsoft 365 security center if your organization is affected by this threat. We will also indicate activities which are now blocked by Microsoft 365 Defender. Lastly, each section contains examples of hunting queries you will find useful for hunting for various attacker activities in your environment.</p>
<h2 id="Malicious-activity-endpoint">Detecting and blocking malware and malicious behavior on endpoints</h2>
<p><a href="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-5.png"><img loading="lazy" class="alignnone wp-image-92476 size-full" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-5.png" alt="Diagram showing attack chain on endpoints involving the Solorigate malware" width="1789" height="748"></a></p>
<p><em>Figure 7. Solorigate attack chain: Initial access and command-and-control </em></p>
<h3>Discovering and blocking backdoor activity</h3>
<p>When the compromised SolarWinds binary <em>SolarWinds.Orion.Core.BusinessLayer.dll</em> gets loaded on a device through normal update channels, the backdoor goes through an extensive list of checks to ensure it’s running in an actual enterprise network and not on an analyst’s machine. It then contacts a command-and-control (C2) server using a subdomain that is generated partly with information gathered from the affected device, which means a unique subdomain is generated for each affected domain. The backdoor allows the attackers to remotely run commands on the device and move to the next stages of the attack. For more information, read our <a href="https://www.microsoft.com/security/blog/2020/12/18/analyzing-solorigate-the-compromised-dll-file-that-started-a-sophisticated-cyberattack-and-how-microsoft-defender-helps-protect/">in-depth analysis of the Solorigate malware</a>.</p>
<p>Microsoft Defender for Endpoint delivers comprehensive protection against this threat (see full list of detection and protection alerts at the end of this blog). Microsoft Defender Antivirus, the default antimalware solution on Windows 10, <a href="https://www.microsoft.com/security/blog/2020/12/15/ensuring-customers-are-protected-from-solorigate/">detects and blocks</a> the malicious DLL and its behaviors. It quarantines the malware, even if the process is running.</p>
<p><a href="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-6.png"><img loading="lazy" class="alignnone wp-image-92477 size-full" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-6.png" alt="Screenshot of Microsoft Defender Security Center showing alert for blocking of Solorigate malware" width="1342" height="709"></a></p>
<p><em>Figure 8. Microsoft Defender for Endpoint blocks malicious binaries</em></p>
<p>If the malicious code is successfully deployed, the backdoor lies dormant for up to two weeks. It then attempts to contact numerous C2 domains, with the primary domain being <em>*.avsvmcloud[.]com</em>. The backdoor uses a domain generation algorithm to evade detection. Microsoft 365 Defender detects and blocks this behavior.</p>
<p><em> <a href="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-7.png"><img loading="lazy" class="alignnone wp-image-92495 size-full" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-7.png" alt="Screenshot of Microsoft Defender Security Center showing alert for malicious network connection" width="2061" height="1047"></a></em></p>
<p><em>Figure 9. Microsoft Defender for Endpoint prevented malicious C2 callback</em></p>
<h3>Discovering potentially tampered devices</h3>
<p>To evade security software and analyst tools, the Solorigate malware enumerates the target system looking for certain running processes, loaded drivers, and registry keys, with the goal of disabling them.</p>
<p>The Microsoft Defender for Endpoint sensor is one of the processes the malware attempts to disable. Microsoft Defender for Endpoint has built-in protections against many techniques attackers use to disable endpoint sensors ranging from hardened OS protection, <a href="https://docs.microsoft.com/en-us/windows/security/threat-protection/microsoft-defender-antivirus/prevent-changes-to-security-settings-with-tamper-protection">anti-tampering policies</a>, and detections for a variety of tampering attempts, including “Attempt to stop Microsoft Defender for Endpoint sensor”, “Tampering with Microsoft Defender for Endpoint sensor settings”, or “Possible sensor tampering in memory”.</p>
<p>Successfully disabling Microsoft Defender for Endpoint can prevent the system from reporting observed activities. However, the multitude of signals reported into Microsoft 365 Defender provides a unique opportunity to hunt for systems where the tampering technique used might have been successful. The following advanced hunting query can be used to locate devices that should be reporting but aren’t:</p>
<p><em>// Times to be modified as appropriate</em><br /><em>let timeAgo=1d;</em><br /><em>let silenceTime=8h;</em><br /><em>// Get all silent devices and IPs from network events</em><br /><em>let allNetwork=materialize(DeviceNetworkEvents</em><br /><em>| where Timestamp > ago(timeAgo)</em><br /><em>and isnotempty(LocalIP)</em><br /><em>and isnotempty(RemoteIP)</em><br /><em>and ActionType in (“ConnectionSuccess”, “InboundConnectionAccepted”)</em><br /><em>and LocalIP !in (“127.0.0.1”, “::1”)</em><br /><em>| project DeviceId, Timestamp, LocalIP, RemoteIP, ReportId);</em><br /><em>let nonSilentDevices=allNetwork</em><br /><em>| where Timestamp > ago(silenceTime)</em><br /><em>| union (DeviceProcessEvents | where Timestamp > ago(silenceTime))</em><br /><em>| summarize by DeviceId;</em><br /><em>let nonSilentIPs=allNetwork</em><br /><em>| where Timestamp > ago(silenceTime)</em><br /><em>| summarize by LocalIP;</em><br /><em>let silentDevices=allNetwork</em><br /><em>| where DeviceId !in (nonSilentDevices)</em><br /><em>and LocalIP !in (nonSilentIPs)</em><br /><em>| project DeviceId, LocalIP, Timestamp, ReportId;</em><br /><em>// Get all remote IPs that were recently active</em><br /><em>let addressesDuringSilence=allNetwork</em><br /><em>| where Timestamp > ago(silenceTime)</em><br /><em>| summarize by RemoteIP;</em><br /><em>// Potentially disconnected devices were connected but are silent</em><br /><em>silentDevices</em><br /><em>| where LocalIP in (addressesDuringSilence)</em><br /><em>| summarize ReportId=arg_max(Timestamp, ReportId), Timestamp=max(Timestamp), LocalIP=arg_max(Timestamp, LocalIP) by DeviceId</em><br /><em>| project DeviceId, ReportId=ReportId1, Timestamp, LocalIP=LocalIP1</em></p>
<p>Microsoft is continuously developing additional measures to both block and alert on these types of tampering activities.</p>
<h2 id="Hands-on-keyboard-activity-on-prem">Detecting hands-on-keyboard activity within an on-premises environment</h2>
<p><a href="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-8.png"><img loading="lazy" class="alignnone wp-image-92480 size-full" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-8.png" alt="Diagram showing Solorigate hands-on-keyboard attack on premises" width="1790" height="852"></a></p>
<p><em>Figure 10. Solorigate attack chain: Hands-on-keyboard attack on premises</em></p>
<p>After establishing a backdoor connection on an affected device, the attacker’s next goal is to achieve off-premises access to the organization’s cloud services. To do this, they must find a way to gain permissions to those services. One technique we have seen the attackers use is to go after the organization’s Active Directory Federation Services (<a href="https://docs.microsoft.com/en-us/windows-server/identity/active-directory-federation-services">AD FS</a>) server to obtain the proverbial “keys” to the identity kingdom. AD FS enables federated identity and access management by securely sharing digital identity and entitlement rights across security and enterprise boundaries; effectively, it is the “LSASS for the cloud.” Among other things, AD FS stores the Security Assertion Markup Language (<a href="https://docs.microsoft.com/en-us/azure/active-directory/manage-apps/certificate-signing-options">SAML</a>) token signing certificate, which is used to create authorization tokens for users or services in the organization so they can access cloud applications and resources after authentication.</p>
<p>To attack the AD FS infrastructure, the attackers must first obtain appropriate domain permissions through on-premises intelligence gathering, lateral movement, and credential theft. Building from the backdoor described above, the attackers leverage fileless techniques for privilege escalation, persistence, and lateral movement, including evading analysis by using system binaries and exploration tools that masquerade as other benign binaries. The attackers also carefully chose organization-specific command-and-control (C2) domains and use custom organization-specific tool naming and locations.</p>
<p>Microsoft Defender for Endpoint detects a wide array of these attack techniques, allowing SOC teams to track the attacker’s actions in the environment and take actions to contain the attack. The following section covers detections for the techniques used by the attackers to compromise the AD FS infrastructure.</p>
<h3>Identifying attacker reconnaissance</h3>
<p>Attackers collect data from Active Directory using a renamed version of the utility ADFind, running queries against Domain Controllers as part of the reconnaissance stage of the attack. Microsoft Defender for Endpoint detects this behavior and allows the SOC analyst to track compromised devices at this stage to gain visibility into the information the attacker is looking for.</p>
<p><a href="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-9.png"><img loading="lazy" class="alignnone wp-image-92481 size-full" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-9.png" alt="Screenshot of Microsoft Defender Security Center alert for detection of exploration tools" width="1232" height="746"></a></p>
<p><em>Figure 11. Microsoft Defender for Endpoint detects usage of masquerading exploration tools</em></p>
<p><a href="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-10.png"><img loading="lazy" class="alignnone wp-image-92482 size-full" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-10.png" alt="Screenshot of Microsoft Defender Security Center alert for detection of LDAP queries" width="1232" height="747"></a></p>
<p><em>Figure 12. Microsoft Defender for Endpoint detects usage LDAP query for reconnaissance.</em></p>
<h3>Stopping lateral movement and credential theft</h3>
<p>To gain access to a highly privileged account needed for later steps in the kill chain, the attackers move laterally between devices and dump credentials until an account with the needed privileges is compromised, all while remaining as stealthy as possible.</p>
<p>A variety of credential theft methods, such as dumping LSASS memory, are detected and blocked by Microsoft Defender for Endpoint. The example below shows the detection of lateral movement using Windows Management Instrumentation (WMI) to run the attacker’s payload using the <em>Rundll32.exe</em> process.</p>
<p><a href="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-11.png"><img loading="lazy" class="alignnone wp-image-92483 size-full" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-11.png" alt="Screenshot of Microsoft Defender Security Center alert for detection of remote WMI execution" width="1232" height="746"></a></p>
<p><em>Figure 13. </em><em>Microsoft Defender for Endpoint alert for suspicious remote WMI execution highlighting the attacker’s device and payload</em></p>
<p>Microsoft Defender for Identity also detects and raises alerts on a variety of credential theft techniques. In addition to watching for alerts, security analysts can hunt across identity data in Microsoft 365 Defender for signs of identity compromise. Here are a couple of example Microsoft Defender for Identity queries looking for such patterns:</p>
<p>Enumeration of high-value DC assets followed by logon attempts to validate stolen credentials in time proximity</p>
<p><em>let MaxTime = 1d;</em><br /><em>let MinNumberLogon = 5;</em><br /><em>//devices attempting enumeration of high-value DC</em><br /><em>IdentityQueryEvents</em><br /><em>| where Timestamp > ago(30d)</em><br /><em>| where Application == “Active Directory”</em><br /><em>| where QueryTarget in (“Read-only Domain Controllers”) </em><br /><em>//high-value RODC assets</em><br /><em>| project Timestamp, Protocol, Query, DeviceName, AccountUpn</em><br /><em>| join kind = innerunique (</em><br /><em>//devices trying to logon {MaxTime} after enumeration</em><br /><em>IdentityLogonEvents</em><br /><em>| where Timestamp > ago(30d)</em><br /><em>| where ActionType == “LogonSuccess”</em><br /><em>| project LogonTime = Timestamp, DeviceName, DestinationDeviceName) on DeviceName </em><br /><em>| where LogonTime between (Timestamp .. (Timestamp + MaxTime)) </em><br /><em>| summarize n=dcount(DestinationDeviceName), TargetedDC = makeset(DestinationDeviceName) by Timestamp, Protocol, DeviceName</em><br /><em>| where n >= MinNumberLogon</em></p>
<p>High-volume of LDAP queries in short time filtering for non-DC devices</p>
<p><em>let Threshold = 12;</em><br /><em>let BinTime = 1m;</em><br /><em>//approximate list of DC </em><br /><em>let listDC=IdentityDirectoryEvents </em><br /><em>| where Application == “Active Directory”</em><br /><em>| where ActionType == “Directory Services replication”</em><br /><em>| summarize by DestinationDeviceName;</em><br /><em>IdentityQueryEvents</em><br /><em>| where Timestamp > ago(30d)</em><br /><em>//filter out LDAP traffic across DC</em><br /><em>| where DeviceName !in (listDC)</em><br /><em>| where ActionType == “LDAP query”</em><br /><em>| parse Query with * “Search Scope: ” SearchScope “, Base Object:” BaseObject “, Search Filter: ” SearchFilter</em><br /><em>| summarize NumberOfDistinctLdapQueries = dcount(SearchFilter) by DeviceName, bin(Timestamp, BinTime)</em><br /><em>| where NumberOfDistinctLdapQueries > Threshold </em></p>
<p>At this point, SOC teams can take containment measures within the Microsoft 365 security center, for example, using <a href="https://docs.microsoft.com/windows/security/threat-protection/microsoft-defender-atp/manage-indicators">indicators</a> to isolate the devices involved and block the remotely executed payload across the environment, as well as mark suspect users as compromised.</p>
<h3>Detecting and remediating persistence</h3>
<p>Microsoft Defender for Endpoint also detects the advanced defense evasion and masquerading techniques used by the attackers to make their actions as close to normal as possible, such as binding a WMI event filter with a logical consumer to remain persistent. Follow the recommended actions in the alert to remove persistence and prevent the attacker’s payload from loading after reboot.</p>
<p><a href="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-12.png"><img loading="lazy" class="alignnone wp-image-92484 size-full" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-12.png" alt="Screenshot of Microsoft Defender Security Center alert for detection of WMI event filter bound to suspicious consumer" width="1515" height="791"></a></p>
<p><em>Figure 14. Microsoft Defender for Endpoint alert for WMI event filter bound to a suspicious consumer showing the persistence and the scheduled command line</em></p>
<h3>Catching AD FS compromise and the attacker’s ability to impersonate users in the cloud</h3>
<p>The next step in the attack focuses on the AD FS infrastructure and can unfold in two separate paths that lead to the same outcome—the ability to create valid SAML tokens allowing impersonation of users in the cloud:</p>
<ul>
<li><strong>Path 1 – Stealing the SAML signing certificate</strong>: After gaining administrative privileges in the organization’s on-premises network, and with access to the AD FS server itself, the attackers access and extract the SAML signing certificate. With this signing certificate, the attackers create valid SAML tokens to access various desired cloud resources as the identity of their choosing.</li>
<li><strong>Path 2 – Adding to or modifying existing federation trust</strong>: After gaining administrative Azure Active Directory (Azure AD) privileges using compromised credentials, the attackers add their own certificate as a trusted entity in the domain either by adding a new federation trust to an existing tenant or modifying the properties of an existing federation trust. As a result, any SAML token they create and sign will be valid for the identity of their choosing.</li>
</ul>
<p>In the first path, obtaining the SAML signing certificate normally entails first querying the private encryption key that resides on the AD FS container and then using that key to decrypt the signing certificate. The certificate can then be used to create illicit but valid SAML tokens that allow the actor to impersonate users, enabling them to access enterprise cloud applications and services.</p>
<p>Microsoft Defender for Endpoint and Microsoft Defender for Identity detect the actions that attackers take to steal the encryption key needed to decrypt the SAML signing certificate. Both solutions leverage unique LDAP telemetry to raise high-severity alerts highlighting the attacker’s progress towards creating illicit SAML tokens.</p>
<p><em><a href="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-13.png"><img loading="lazy" class="alignnone wp-image-92485 size-full" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-13.png" alt="Screenshot of Microsoft Defender Security Center alert for LDAP query and AD FS private key extraction" width="1342" height="818"></a> </em></p>
<p><em>Figure 15. Microsoft Defender for Endpoint detects a suspicious LDAP query being launched and an attempted AD FS private key extraction</em></p>
<p><img loading="lazy" class="alignnone size-full wp-image-92496" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-14.png" alt width="854" height="527"></p>
<p><em>Figure 16. Microsoft Defender for Identity detects private key extraction via</em><em> malicious LDAP requests </em></p>
<p>For the second path, the attackers create their own SAML signing certificate outside of the organization’s environment. With Azure AD administrative permissions, they then add the new certificate as a trusted object. The following advanced hunting query over Azure AD audit logs shows when domain federation settings are changed, helping to discover where the attackers configured the domain to accept authorization tokens signed by their own signing certificate. As these are rare actions, we advise verifying that any instances identified are the result of legitimate administrative activity.</p>
<p><em><a href="https://github.com/microsoft/Microsoft-365-Defender-Hunting-Queries/blob/master/Defense%20evasion/ADFSDomainTrustMods%5BSolarigate%5D.md">ADFSDomainTrustMods</a></em></p>
<p><em>let auditLookback = 1d; CloudAppEvents</em><br /><em>| where Timestamp > ago(auditLookback)</em><br /><em>| where ActionType =~ “Set federation settings on domain.”</em><br /><em>| extend targetDetails = parse_json(ActivityObjects[1])</em><br /><em>| extend targetDisplayName = targetDetails.Name</em><br /><em>| extend resultStatus = extractjson(“$.ResultStatus”, tostring(RawEventData), typeof(string))</em><br /><em>| project Timestamp, ActionType, InitiatingUserOrApp=AccountDisplayName, targetDisplayName, resultStatus, InitiatingIPAddress=IPAddress, UserAgent</em></p>
<p>If the SAML signing certificate is confirmed to be compromised or the attacker has added a new one, follow the <a href="https://www.microsoft.com/security/blog/2020/12/21/advice-for-incident-responders-on-recovery-from-systemic-identity-compromises/">best practices</a> for invalidating through certificate rotation to prevent further use and creation of SAML tokens by the attacker. Additionally, affected AD FS servers may need to be isolated and remediated to ensure no remaining attacker control or persistence.</p>
<p>If the attackers accomplish either path, they gain the ability to create illicit SAML tokens for the identities of their choosing and bypass multifactor authentication (MFA), since the service or application accepting the token assumes MFA is a necessary previous step in creating a properly signed token. To prevent attackers from progressing to the next stage, which is to access cloud resources, the attack should be discovered and remediated at this stage.</p>
<h2 id="Hands-on-keyboard-activity-cloud">Detecting the hands-on-keyboard activity in the cloud environment</h2>
<p><a href="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-15.png"><img loading="lazy" class="alignnone wp-image-92487 size-full" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-15.png" alt="Diagram of hands-on-keyboard attacks in the cloud" width="1790" height="748"></a></p>
<p><em>Figure 17. Solorigate attack chain: Hands-on-keyboard attack in the cloud</em></p>
<p>With the ability to create illicit SAML tokens, the attackers can access sensitive data without having to originate from a compromised device or be confined to on-premises persistence. By abusing API access via existing OAuth applications or service principals, they can attempt to blend into the normal pattern of activity, most notably apps or service principals with existing <em>Mail.Read</em> or <em>Mail.ReadWrite</em> permissions to read email content via Microsoft Graph from Exchange Online. If the application does not already have read permissions for emails, then the app may be modified to grant those permissions.</p>
<h3>Identifying unusual addition of credentials to an OAuth app</h3>
<p>Microsoft Cloud App Security (MCAS) has added new automatic detection of unusual credential additions to an OAuth application to alert SOCs about apps that have been compromised to extract data from the organization. This detection logic is built on an anomaly detection engine that learns from each user in the environment, filtering out normal usage patterns to ensure alerts highlight real attacks and not false positives. If you see this alert in your environment and confirm malicious activity, you should take immediate action to suspend the user, mark the user as compromised, reset the user’s password, and remove the credential additions. You may consider disabling the application during investigation and remediation.</p>
<p><img loading="lazy" class="alignnone size-full wp-image-92497" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/12/using-microsoft-365-defender-to-protect-against-solorigate-16.png" alt width="1439" height="1125"></p>
<p><em>Figure 18. Microsoft Defender Cloud App Security alert for unusual addition of credentials to an OAuth app</em></p>
<p>SOCs can use the following Microsoft 365 Defender advanced hunting query over Azure AD audit logs to examine when new credentials have been added to a service principle or application. In general, credential changes may be rare depending on the type and use of the service principal or application. SOCs should verify unusual changes with their respective owners to ensure they are the result of legitimate administrative actions.</p>
<p><em><a href="https://github.com/microsoft/Microsoft-365-Defender-Hunting-Queries/blob/master/Persistence/NewAppOrServicePrincipalCredential%5BSolarigate%5D.md">NewAppOrServicePrincipalCredential</a></em></p>
<p><em>let auditLookback = 1d; CloudAppEvents</em><br /><em>| where Timestamp > ago(auditLookback)</em><br /><em>| where ActionType in (“Add service principal.”, “Add service principal credentials.”, “Update application – Certificates and secrets management “)</em><br /><em>| extend RawEventData = parse_json(RawEventData)</em><br /><em>| where RawEventData.ResultStatus =~ “success”</em><br /><em>| where AccountDisplayName has “@”</em><br /><em>| extend targetDetails = parse_json(ActivityObjects[1])</em><br /><em>| extend targetId = targetDetails.Id</em><br /><em>| extend targetType = targetDetails.Type</em><br /><em>| extend targetDisplayName = targetDetails.Name</em><br /><em>| extend keyEvents = RawEventData.ModifiedProperties</em><br /><em>| where keyEvents has “KeyIdentifier=” and keyEvents has “KeyUsage=Verify”</em><br /><em>| mvexpand keyEvents</em><br /><em>| where keyEvents.Name =~ “KeyDescription”</em><br /><em>| parse keyEvents.NewValue with * “KeyIdentifier=” keyIdentifier:string “,KeyType=” keyType:string “,KeyUsage=” keyUsage:string “,DisplayName=” keyDisplayName:string “]” *</em><br /><em>| parse keyEvents.OldValue with * “KeyIdentifier=” keyIdentifierOld:string “,KeyType” *</em><br /><em>| where keyEvents.OldValue == “[]” or keyIdentifier != keyIdentifierOld</em><br /><em>| where keyUsage == “Verify”</em><br /><em>| project-away keyEvents</em><br /><em>| project Timestamp, ActionType, InitiatingUserOrApp=AccountDisplayName, InitiatingIPAddress=IPAddress, UserAgent, targetDisplayName, targetId, targetType, keyDisplayName, keyType, keyUsage, keyIdentifier</em></p>
<h3>Discovering malicious access to mail items</h3>
<p>OAuth applications or service principals with <em>Mail.Read</em> or <em>Mail.ReadWrite</em> permissions can read email content from Exchange Online via the Microsoft Graph. To help increase visibility on these behaviors, the <em>MailItemsAccessed</em> action is now available via the new Exchange mailbox advanced audit functionality. <a href="https://docs.microsoft.com/en-us/microsoft-365/compliance/mailitemsaccessed-forensics-investigations?view=o365-worldwide#the-mailitemsaccessed-mailbox-auditing-action">See if this feature is enabled by default for you</a>. Important note for customers: If you have customized the list of audit events you are collecting, you may need to <a href="https://docs.microsoft.com/en-us/microsoft-365/compliance/enable-mailbox-auditing?view=o365-worldwide#change-or-restore-mailbox-actions-logged-by-default">manually enable this telemetry</a>.</p>
<p>If more than 1,000 <em>MailItemsAccessed</em> audit records are generated in less than 24 hours, Exchange Online stops generating auditing records for <em>MailItemsAccessed</em> activity for 24 hours and then resumes logging after this period. This throttling behavior is a good starting point for SOCs to discover potentially compromised mailboxes.</p>
<p><em><a href="https://github.com/microsoft/Microsoft-365-Defender-Hunting-Queries/blob/master/Exfiltration/MailItemsAccessed%20Throttling%20%5BSolorigate%5D.md">MailItemsAccessedThrottling</a></em></p>
<p><em>let starttime = 2d;</em><br /><em>let endtime = 1d;</em><br /><em>CloudAppEvents</em><br /><em>| where Timestamp between (startofday(ago(starttime))..startofday(ago(endtime)))</em><br /><em>| where ActionType == “MailItemsAccessed”</em><br /><em>| where isnotempty(RawEventData[‘ClientAppId’]) and RawEventData[‘OperationProperties’][1] has “True” </em><br /><em>| project Timestamp, RawEventData[‘OrganizationId’],AccountObjectId,UserAgent</em></p>
<p>In addition to looking for throttled telemetry, you can also hunt for OAuth applications reading mail via the Microsoft Graph API whose behavior has changed prior to a baseline period.</p>
<p><em><a href="https://github.com/microsoft/Microsoft-365-Defender-Hunting-Queries/blob/master/Exfiltration/OAuth%20Apps%20reading%20mail%20via%20GraphAPI%20anomaly%20%5BSolorigate%5D.md">OAuthGraphAPIAnomalies</a></em></p>
<p><em>//Look for OAuth App reading mail via GraphAPI — that did not read mail via graph API in prior week </em><br /><em>let appMailReadActivity = (timeframeStart:datetime, timeframeEnd:datetime) { </em><br /><em>CloudAppEvents </em><br /><em>| where Timestamp between (timeframeStart .. timeframeEnd) </em><br /><em>| where ActionType == “MailItemsAccessed” </em><br /><em>| where RawEventData has “00000003-0000-0000-c000-000000000000” // performance check </em><br /><em>| extend rawData = parse_json(RawEventData) </em><br /><em>| extend AppId = tostring(parse_json(rawData.AppId)) </em><br /><em>| extend OAuthAppId = tostring(parse_json(rawData.ClientAppId)) // extract OAuthAppId </em><br /><em>| summarize by OAuthAppId </em><br /><em>}; </em><br /><em>appMailReadActivity(ago(1d),now()) // detection period </em><br /><em>| join kind = leftanti appMailReadActivity(ago(7d),ago(2d)) // baseline period </em><br /><em>on OAuthAppId</em></p>
<h2>Microsoft 365 Defender’s cross-domain XDR correlation enables stronger response to critical security incidents</h2>
<p>Like the rest of the security industry, Microsoft continues to track the Solorigate attack, an active threat that continues to unfold as well as evolve. As part of empowering our customers and the larger security community to respond to this attack through sharing intelligence and providing advice, this blog serves to guide Microsoft 365 customers to take full advantage of the comprehensive visibility and the rich investigation tools available in Microsoft 365 Defender. This blog shows that many of the existing capabilities in Microsoft 365 Defender help address this attack, but the unique scenarios created by the threat resulted in some Solorigate-specific detections and other innovative protections, including ones that are made possible by deeply integrated cross-domain threat defense.</p>
<p>For additional information and further guidance, refer to these Microsoft resources:</p>
<p>Microsoft will continue to provide public information about the patterns and techniques of this attack and related intelligence for customers to defend themselves, in addition to enhancing the protection capabilities of Microsoft security solutions.</p>
<h2 id="Summary-detections-hunting-queries">Appendix: Additional details for detection and hunting</h2>
<h3>Detection details</h3>
<table border="1">
<tbody>
<tr>
<td width="150"><strong>Attack stage</strong></td>
<td><strong>Microsoft 365 Defender detection or alert </strong></td>
</tr>
<tr>
<td width="150">Initial access</td>
<td>Microsoft Defender for Endpoint:</p>
<ul>
<li>‘Solorigate’ high-severity malware was detected/blocked/prevented (<a href="https://www.microsoft.com/en-us/wdsi/threats/malware-encyclopedia-description?Name=Trojan:MSIL/Solorigate.BR!dha">Trojan:MSIL/Solorigate.BR!dha</a>)</li>
<li>SolarWinds Malicious binaries associated with a supply chain attack</li>
</ul>
</td>
</tr>
<tr>
<td width="150">Execution and persistence</td>
<td>Microsoft Defender for Endpoint: </td>
</tr>
<tr>
<td width="150">Command and Control</td>
<td>Microsoft Defender for Endpoint: </td>
</tr>
<tr>
<td width="150">Defense evasion</td>
<td>Microsoft Defender for Endpoint:</p>
<ul>
<li>Suspicious audit policy tampering</li>
</ul>
</td>
</tr>
<tr>
<td width="150">Reconnaissance</td>
<td>Microsoft Defender for Endpoint:</p>
<ul>
<li>Masquerading Active Directory exploration tool</li>
<li>Suspicious sequence of exploration activities</li>
<li>Execution of suspicious known LDAP query fragments</li>
</ul>
</td>
</tr>
<tr>
<td width="150">Credential access</td>
<td>Microsoft Defender for Endpoint:</p>
<ul>
<li>Suspicious access to LSASS (credential access)</li>
<li>AD FS private key extraction attempt</li>
<li>Possible attempt to access ADFS key material</li>
<li>Suspicious ADFS adapter process created</li>
</ul>
<p>Microsoft Defender for Identity:</p>
<ul>
<li>Unusual addition of permissions to an OAuth app</li>
<li>Active Directory attributes Reconnaissance using LDAP</li>
</ul>
<p>Microsoft Cloud App Security:</p>
<ul>
<li>Unusual addition of credentials to an OAuth app</li>
</ul>
</td>
</tr>
<tr>
<td width="150">Lateral movement</td>
<td>Microsoft Defender for Endpoint</p>
<ul>
<li>Suspicious file creation initiated remotely (lateral movement)</li>
<li>Suspicious Remote WMI Execution (lateral movement)</li>
</ul>
</td>
</tr>
<tr>
<td width="150">Exfiltration</td>
<td>Microsoft Defender for Endpoint</p>
<ul>
<li>Suspicious mailbox export or access modification</li>
<li>Suspicious archive creation</li>
</ul>
</td>
</tr>
</tbody>
</table>
<h3>Advanced hunting queries</h3>
<h3></h3>
</div>
https://www.sickgaming.net/blog/2020/12/...olorigate/