/
/

Zo automatiseert u dreigingsrespons met Conditional Access, Graph en PowerShell

door Team Ninja
How to Automate Threat Response with Conditional Access, Graph, and PowerShell blog banner image

Directe samenvatting

Deze blogpost van NinjaOne biedt een uitgebreide basislijst met CMD-commands en een deep dive duik in Windows-commands met meer dan 70 essentiële cmd-commands voor zowel beginners als gevorderden. Het legt praktische opdrachtpromptcommando’s uit voor file management, directory navigation, network troubleshooting, disk operations en automatisering met echte voorbeelden om de productiviteit te verbeteren. Of u nu fundamentele cmd-commands leert of geavanceerde Windows CLI-tools onder de knie krijgt, deze gids helpt u de Command Prompt effectiever te gebruiken.

Handmatig reageren op identiteitsgerelateerde dreigingen kost veel tijd en kan uw risico vergroten. Mogelijk lekt u gevoelige gegevens en brengt u uw organisatie in gevaar. U verhoogt de bescherming onder meer door Microsoft Conditional Access (CA) te combineren met Graph API-triggers en PowerShell-automatisering. Het resultaat is een geautomatiseerde dreigingsrespons.

Zo kunnen MSP’s (Managed Services Providers) dreigingen indammen en beperken zonder dure SIEM-platforms (Security Information and Event Management).

Dreigingsrespons automatiseren met Conditional Access, Microsoft Graph en PowerShell

Er zijn verschillende manieren om dreigingsrespons te automatiseren. U kunt Conditional Access-beleidsregels configureren, Microsoft Graph gebruiken, een PowerShell-script maken, dreigingsrespons-gebeurtenissen bijhouden in het register en met GPO quarantaine-gedrag afdwingen.

📌 Vereisten:

  • Azure AD Premium P2 voor Identity Protection en Conditional Access
  • Microsoft Defender for Endpoint of een vergelijkbare risicogebaseerde signaalbron
  • Microsoft Graph API-machtigingen
  • PowerShell 7+ met de module Microsoft.Graph geïnstalleerd

📌 Aanbevolen implementatiestrategieën:

Klik om een methode te kiezen

💻
Beste voor individuele gebruikers
💻💻💻
Beste voor grote organisaties
Methode 1: Conditional Access-beleid configureren voor dreigingsrespons ✓
Methode 2: Microsoft Graph gebruiken om realtime beleidsacties te activeren ✓
Methode 3: Herstelacties automatiseren met PowerShell ✓
Methode 4: Dreigingsrespons-gebeurtenissen bijhouden in het register ✓
Methode 5: GPO gebruiken om quarantainegedrag af te dwingen op risicovolle devices ✓

Methode 1: Conditional Access-beleid configureren voor dreigingsrespons

De eerste stap is het configureren van Conditional Access-beleid.

📌 Use case: IT-beheerders die Conditional Access-regels maken die risicovolle aanmeldingen automatisch blokkeren of extra verificatie vragen

Maak in Entra ID Conditional Access-beleid voor dreigingssignalen:

  • Respons op basis van gebruikersrisico:
    • Signaal: UserRiskLevel = High
    • Actie: toegang blokkeren of een wachtwoordreset vereisen
  • Respons op basis van devicerisico:
    • Signaal: DeviceRiskLevel = High (vanuit Defender)
    • Actie: een compliant device vereisen of toegang blokkeren

Voorbeeld van een beleidsfilterexpressie:

(device.deviceOwnership -eq "Company") and (device.riskLevel -eq "High")

Wijs beleid toe aan risicogevoelige rollen, zoals beheerders en directieleden.

⚠️ Waarschuwing: restrictieve regels kunnen beheerders en andere legitieme gebruikers buitensluiten. (Meer informatie vindt u bij: Waar u op moet letten)

Methode 2: Microsoft Graph gebruiken om realtime beleidsacties te activeren

U kunt Microsoft Graph gebruiken om realtime beleidsacties te activeren.

📌 Use case: IT-beheerders die een script bouwen dat risicovolle gebruikers opvraagt en hun accounts realtime uitschakelt

  1. Druk op Win, typ PowerShell en klik op Als administrator uitvoeren.
  2. Kopieer en plak de volgende scripts in de prompt en druk op Enter:
Connect-MgGraph -Scopes "User.ReadWrite.All", "IdentityRiskEvent.Read.All"

$riskyUsers = Get-MgRiskyUser | Where-Object { $_.RiskLevel -eq "high" -and $_.RiskState -eq "atRisk" }

foreach ($user in $riskyUsers) {

Update-MgUser -UserId $user.Id -AccountEnabled:$false

Write-Output "Disabled account: $($user.UserPrincipalName)"

}

💡 Tip: leg de actie vast en breng eventueel een beheerder op de hoogte of open een PSA-ticket, zodat securityteams zicht houden op wat er gebeurt.

Methode 3: Herstelacties automatiseren met PowerShell

Met PowerShell zet u risicodetecties om in herhaalbare, controleerbare acties.

📌 Use case: IT-beheerders die accountherstel automatiseren door wachtwoordresets af te dwingen, tokens ongeldig te maken en devices in quarantaine te plaatsen na detecties met een hoog risico

Zo kunt u bijvoorbeeld MFA (Multi-Factor Authentication) resetten en een wachtwoordreset starten met PowerShell.

  1. Druk op Win, typ PowerShell en klik op Als administrator uitvoeren.
  2. Kopieer en plak de volgende scripts in de prompt en druk op Enter:
Connect-MgGraph -Scopes "User.ReadWrite.All", "IdentityRiskyUser.ReadWrite.All", "Device.ReadWrite.All"

$riskyUsers = Get-MgRiskyUser | Where-Object { $_.RiskLevel -eq "high" -and $_.RiskState -eq "atRisk" }

foreach ($user in $riskyUsers) {

try {

# Invalidate all active sessions

Invoke-MgInvalidateUserRefreshToken -UserId $user.Id

# Force password reset on next sign-in (requires a temporary password)

$tempPassword = "TempP@ssw0rd!" # Replace with a secure generator if needed

Update-MgUser -UserId $user.Id -PasswordProfile @{

Password = $tempPassword

ForceChangePasswordNextSignIn = $true

}

# Quarantine associated device(s) if extension attribute exists

$devices = Get-MgUserRegisteredDevice -UserId $user.Id

foreach ($device in $devices) {

try {

Update-MgDevice -DeviceId $device.Id -AdditionalProperties @{

"extensionAttribute1" = "Quarantined"

}

} catch {

Write-Warning "Failed to update device $($device.Id)"

}

}

Write-Output "Remediated: $($user.UserPrincipalName)"

} catch {

Write-Warning "Failed to remediate user $($user.UserPrincipalName)"

}

}

  • Device in quarantaine plaatsen op basis van tag of beleidsfilter:
Update-MgDevice -DeviceId $device.Id -AdditionalProperties @{ "extensionAttribute1" = "Quarantined" }

💡 Tip: u kunt deze scripts combineren met RMM-taken of ze activeren via e-mailnotificaties en Logic Apps.

⚠️ Waarschuwing: test de instellingswijziging eerst op een lokale machine voordat u die op verschillende endpoints uitrolt. (Meer informatie vindt u bij: Waar u op moet letten)

Methode 4: Dreigingsrespons-gebeurtenissen bijhouden in het register

Deze methode legt lokale responsgebeurtenissen vast in het register voor devices die niet onder Microsoft Defender of Intune vallen.

📌 Use case: IT-beheerders die dreigingsrespons-activiteit vastleggen in het Windows-register om lokale audittrails bij te houden

  1. Druk op Win, typ PowerShell en klik op Als administrator uitvoeren.
  2. Kopieer en plak de volgende scripts in de prompt en druk op Enter:
New-Item -Path "HKLM:\SOFTWARE\Org\ThreatResponse" -Force

Set-ItemProperty -Path "HKLM:\SOFTWARE\Org\ThreatResponse" `

-Name "LastResponse" -Value "$(Get-Date) - Quarantine enforced"

Set-ItemProperty -Path "HKLM:\SOFTWARE\Org\ThreatResponse" `

-Name "QuarantineState" -Value "True"

U kunt ook controleren wat er in de registersleutel staat door de volgende prompt te kopiëren en te plakken:

reg query HKLM\SOFTWARE\Org\ThreatResponse

⚠️ Waarschuwing: het bewerken van het register kan onbedoelde gevolgen hebben. Ga voorzichtig te werk en maak een back-up van het register voordat u wijzigingen aanbrengt. (Meer informatie vindt u bij: Waar u op moet letten)

Methode 5: GPO gebruiken om quarantainegedrag af te dwingen op risicovolle devices

Met GPO kunt u beperkingen afdwingen wanneer lokale registersleutels op quarantaine wijzen.

📌 Use case: IT-beheerders die endpointquarantaine afdwingen door internettoegang en applicaties uit te schakelen wanneer het register een quarantainestatus aangeeft

📌 Vereiste: GPO-toegang voor lokaal quarantainebeleid

  1. Druk op Win + R, typ gpmc.msc en druk op Enter.
  2. Ga naar het volgende pad:
    • Computerconfiguratie > Windows-instellingen > Beveiligingsinstellingen > Beleid voor softwarebeperking

In dit voorbeeld kunt u de toegang tot toegewezen stations beperken of internetbrowsers blokkeren.

U kunt ook een quarantainevlag in het register controleren en actie ondernemen op het endpoint. Voer daarvoor het volgende script uit in PowerShell:

Script logic (triggered by key):

if ((Get-ItemPropertyValue -Path "HKLM:\SOFTWARE\Org\ThreatResponse" -Name "QuarantineState") -eq "True") {

Stop-Process -Name "chrome" -Force

Disable-NetAdapter -Name "Wi-Fi" -Confirm:$false

}

⚠️ Waar u op moet letten

Risico’s Mogelijke gevolgen Herstelacties
Restrictieve regels kunnen legitieme gebruikers blokkeren Beheerders kunnen buitengesloten raken. Schakel het beleid uit of verwijder het in Entra ID.
Niet testen op een lokale machine Het uitrollen van een ongetest script kan devices laten crashen door problemen zoals incompatibiliteit van registersleutels. Pas de gewenste wijzigingen toe op een lokale machine en controleer daarna of de configuratie het beoogde resultaat oplevert.
Het register bewerken zonder back-up Een onjuiste bewerking van het register kan tot corruptie leiden. Maak daarom vooraf een back-up. Exporteer de registersleutel vóór de wijzigingen via Bestand > Exporteren.

Aanvullende overwegingen

Voor veerkrachtige identiteitsbescherming moeten organisaties letten op nauwkeurige targeting, duidelijke escalatiepaden, multi-tenant inzicht en een zorgvuldige validatie van dreigingssignalen.

Scopefilters

Voorkom dat u CA-beleid toepast op gebruikers die geen risico lopen, want dat zorgt voor verstoring. Zo kunt u per ongeluk beheerders of serviceaccounts buitensluiten als u een streng blokkeerbeleid afdwingt. Gebruik daarom groepen, attributen of beheereenheden om CA-beleid alleen op groepen met een hoog risico te richten.

Escalatiepaden

Zonder escalatieproces blijven sommige signalen onopgemerkt of blokkeren kritieke notificaties gebruikers zonder dat er herstel plaatsvindt. U kunt een integratie met een ticketsysteem opzetten voor opvolging en onderzoek. Daarbij routeert u risicovolle aanmeldingen, geblokkeerde toegangspogingen of de risicodetecties van Identity Protection rechtstreeks naar een ticketsysteem.

Notificaties over tenants heen

Gebrek aan inzicht in verschillende omgevingen maakt het voor MSP’s lastig om meerdere tenants te beheren. Overweeg Graph API-loops of Logic Apps voor betere monitoring over tenants heen:

  • Graph API-loops: Bevraag Microsoft Graph in elke beheerde tenant om notificatie- en aanmeldgegevens te verzamelen.
  • Logic Apps: Automatiseer het verzamelen en doorsturen van notificaties naar een centrale SIEM.

Validatie van dreigingssignalen

CA kan beleid afdwingen op basis van signalen uit Microsoft Defender, Entra ID en Identity Protection. Toch komen false positives nog steeds voor en kan toepassing op basis van die signalen leiden tot onnodige blokkades. U voorkomt dat bijvoorbeeld door meer dan één risicosignaal te vereisen voordat een blokkade in werking treedt.

Veelvoorkomende problemen oplossen

Hieronder staan veelvoorkomende problemen bij het automatiseren van dreigingsrespons en hoe u ze oplost.

Graph-fouten

Loopt u tegen Graph-fouten aan, controleer dan de machtigingen van de gedelegeerde tokens en de app-tokens. Decodeer beide tokens en zoek naar patronen. 401-patronen wijzen op tokenproblemen, terwijl 403 op onvoldoende machtigingen duidt.

Vertraging in beleidstoepassing

Graph-updates kunnen enkele minuten nodig hebben voordat ze van kracht worden. Gebruik daarom de aanmeldlogboeken ter bevestiging. Controleer ook de logboeken en verifieer dat uw Graph-wijziging is doorgevoerd.

GPO wordt niet geactiveerd

Controleer de vernieuwingsfrequentie van het beleid en de uitvoeringscontext van het script als de GPO niet wordt geactiveerd. U kunt een vernieuwing ook afdwingen met gpupdate /force.

NinjaOne-diensten die geautomatiseerde dreigingsrespons ondersteunen

Met NinjaOne kunnen MSP’s responsworkflows opschalen in hybride omgevingen en omgevingen die niet Microsoft-native zijn. NinjaOne ondersteunt geautomatiseerde dreigingsrespons door:

  • Scripts uit te rollen om gecompromitteerde devices te isoleren of te taggen
  • Registersleutels en risico-indicatoren te monitoren om herstelacties te starten
  • Endpoints te taggen voor beleidstoewijzing
  • Notificaties en workflowautomatisering te activeren op basis van scriptresultaten
  • Over tenants heen te rapporteren over dreigingsrespons-gebeurtenissen, ondernomen acties en getroffen endpoints

Beperk de verblijftijd bij een compromittering door dreigingsrespons te automatiseren

Door dreigingsrespons te automatiseren met Microsoft Conditional Access, de Graph API en PowerShell kunnen MSP’s risico’s indammen zonder dure SIEM-tools. Met tools als NinjaOne versterkt u die automatisering verder: u rolt scripts uit, monitort endpoints en stroomlijnt het inzicht en de rapportage over tenants heen.

Gerelateerde onderwerpen:

Dit vindt u misschien ook leuk

Klaar om de moeilijkste delen van IT te vereenvoudigen?

NinjaOne Algemene Voorwaarden

Door op de knop “Ik accepteer” hieronder te klikken, geeft u aan dat u de volgende wettelijke voorwaarden en onze Gebruiksvoorwaarden accepteert:

  • Eigendomsrechten: NinjaOne bezit en blijft eigenaar van alle rechten, aanspraken en belangen in en op het script (inclusief het auteursrecht). NinjaOne geeft u een beperkte licentie om het script te gebruiken in overeenstemming met deze wettelijke voorwaarden.
  • Gebruiksbeperking: U mag het script alleen gebruiken voor uw legitieme persoonlijke of interne bedrijfsdoeleinden en u mag het script niet delen met derden.
  • Republicatieverbod: Het is onder geen beding toegestaan om het script opnieuw te publiceren in een scriptbibliotheek die toebehoort aan of onder controle staat van een andere softwareleverancier.
  • Garantie disclaimer: Het script wordt geleverd “zoals het is” en “zoals het beschikbaar is”, zonder enige vorm van garantie. NinjaOne belooft of garandeert niet dat het script vrij van gebreken zal zijn of dat het aan uw specifieke behoeften of verwachtingen zal voldoen.
  • Risicoaanvaarding: Het gebruik van het script is op eigen risico. U erkent dat het gebruik van het script bepaalde inherente risico’s met zich meebrengt en u begrijpt en aanvaardt elk van deze risico’s.
  • Verklaring van afstand en vrijwaring: U zult NinjaOne niet verantwoordelijk houden voor enige nadelige of onbedoelde gevolgen die voortvloeien uit uw gebruik van het script en u doet afstand van alle wettelijke of billijke rechten of rechtsmiddelen die u tegen NinjaOne kunt hebben met betrekking tot uw gebruik van het script.
  • EULA: Als u een NinjaOne-klant bent, is uw gebruik van het script onderworpen aan de licentieovereenkomst voor eindgebruikers die op u van toepassing is (EULA).