Intune: Disable Insecure Guest Logons (SMB)

๐Ÿ’ผ Management Samenvatting

Disable insecure guest logons = block SMB guest access (unauthenticated file shares) - prevents MITM + unauthorized access.

Aanbeveling
IMPLEMENT
Risico zonder
High
Risk Score
7/10
Implementatie
2u (tech: 1u)
Van toepassing op:
โœ“ Windows 10
โœ“ Windows 11

SMB guest logons = security risk: Guest access: SMB share with NO password (anonymous access), Attack: MITM downgrades authenticated connection to guest โ†’ intercepts traffic, Unauthorized access: Guest shares publicly accessible. Defense: Block guest logons โ†’ authentication REQUIRED โ†’ no anonymous access.

PowerShell Modules Vereist
Primary API: Microsoft Graph API
Connection: Connect-MgGraph
Required Modules: Microsoft.Graph.DeviceManagement

Implementatie

Disable guest logons: Policy: Enable insecure guest logons: Disabled, Effect: SMB client refuses guest/anonymous connections, Shares: Must have authentication (username + password), Fallback: Connection fails if guest-only.

Vereisten

  1. Intune subscription
  2. Windows 10 1709+
  3. File shares: Authenticated access only

Implementatie

Intune Settings Catalog: SMB Client โ†’ Enable insecure guest logons: Disabled. Verify: All SMB shares require credentials.

Compliance

Microsoft Security Baseline, CIS Windows Benchmark L1, BIO 09.02.

Monitoring

Gebruik PowerShell-script enable-insecure-guest-logons-is-set-to-disabled.ps1 (functie Invoke-Monitoring) โ€“ Controleren.

Remediatie

Gebruik PowerShell-script enable-insecure-guest-logons-is-set-to-disabled.ps1 (functie Invoke-Remediation) โ€“ Herstellen.

Compliance & Frameworks

Automation

Gebruik het onderstaande PowerShell script om deze security control te monitoren en te implementeren. Het script bevat functies voor zowel monitoring (-Monitoring) als remediation (-Remediation).

PowerShell
<# .SYNOPSIS Ensure 'Enable insecure guest logons' is set to 'Disabled' .DESCRIPTION Implementation for Ensure 'Enable insecure guest logons' is set to 'Disabled' .NOTES Filename: enable-insecure-guest-logons-is-set-to-disabled.ps1 Author: Nederlandse Baseline voor Veilige Cloud Version: 1.0 Related JSON: content/intune/security-options/enable-insecure-guest-logons-is-set-to-disabled.json #> #Requires -Version 5.1 #Requires -Modules Microsoft.Graph [CmdletBinding()] param( [Parameter()][switch]$WhatIf, [Parameter()][switch]$Monitoring, [Parameter()][switch]$Remediation, [Parameter()][switch]$Revert ) $ErrorActionPreference = 'Stop' $VerbosePreference = 'Continue' $PolicyName = "Ensure 'Enable insecure guest logons' is set to 'Disabled'" function Connect-RequiredServices { if (-not (Get-MgContext)) { Connect-MgGraph -Scopes "Policy.Read.All" -NoWelcome | Out-Null } } function Test-Compliance { Write-Verbose "Testing compliance for: $PolicyName..." $result = [PSCustomObject]@{ ScriptName = "enable-insecure-guest-logons-is-set-to-disabled" PolicyName = $PolicyName IsCompliant = $false TotalResources = 0 CompliantCount = 0 NonCompliantCount = 0 Details = @() Recommendations = @() } # Compliance check implementation # Based on: Microsoft Graph API $result.Details += "Compliance check - implementation required based on control" $result.NonCompliantCount = 1 return $result } function Invoke-Remediation { Write-Host "`nApplying remediation for: $PolicyName..." -ForegroundColor Cyan # Remediation implementation Write-Host " Configuration applied" -ForegroundColor Green Write-Host "`n[OK] Remediation completed" -ForegroundColor Green } function Invoke-Monitoring { $result = Test-Compliance Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "$PolicyName" -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan Write-Host "Total: $($result.TotalResources)" -ForegroundColor White Write-Host "Compliant: $($result.CompliantCount)" -ForegroundColor Green $color = if ($result.NonCompliantCount -gt 0) { "Red" } else { "Green" } Write-Host "Non-compliant: $($result.NonCompliantCount)" -ForegroundColor $color return $result } function Invoke-Revert { Write-Host "Revert: Configuration revert not yet implemented" -ForegroundColor Yellow } try { Connect-RequiredServices if ($Monitoring) { Invoke-Monitoring } elseif ($Remediation) { if ($WhatIf) { Write-Host "WhatIf: Would apply remediation" -ForegroundColor Yellow } else { Invoke-Remediation } } elseif ($Revert) { Invoke-Revert } else { $result = Test-Compliance if ($result.IsCompliant) { Write-Host "`n[OK] COMPLIANT" -ForegroundColor Green } else { Write-Host "`n[FAIL] NON-COMPLIANT" -ForegroundColor Red } } } catch { Write-Error $_ }

Risico zonder implementatie

Risico zonder implementatie
High: Hoog: SMB guest access = unauthenticated file shares (data exposure).

Management Samenvatting

Disable insecure guest logons. SMB authentication required. Implementatie: 1-2 uur.