Third Party Opslag Restricted

πŸ’Ό Management Samenvatting

Deze security regelen waarborgt de correcte configuratie van beveiligingsinstellingen op Windows endpoints.

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

Deze instelling is onderdeel van de Windows security baseline en beschermt tegen bekende aanvalsvectoren door het afdwingen van veilige configuraties.

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

Implementatie

Dit regelen configureert third party opslag restricted via Microsoft Intune apparaat configuratie beleid of compliance policies om Windows endpoints te beveiligen volgens security best practices.

Vereisten

m365

Implementatie

Gebruik PowerShell-script third-party-opslag-restricted.ps1 (functie Invoke-Monitoring) – Monitoren.

monitoring

Gebruik PowerShell-script third-party-storage-restricted.ps1 (functie Invoke-Monitoring) – Controleren.

Remediatie

Gebruik PowerShell-script third-party-storage-restricted.ps1 (functie Invoke-Remediation) – Herstellen.

Compliance en Auditing

Beleid documentatie

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 Third-Party Storage Restricted .DESCRIPTION Blocks third-party storage providers in OWA (Dropbox, Google Drive, Box) .NOTES NL Baseline v2.0 #> #Requires -Version 5.1 #Requires -Modules ExchangeOnlineManagement [CmdletBinding()] param([switch]$Monitoring, [switch]$Remediation, [switch]$Revert, [switch]$WhatIf) $ErrorActionPreference = 'Stop' Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "Third-Party Storage Restricted" -ForegroundColor Cyan Write-Host "========================================`n" -ForegroundColor Cyan function Invoke-Monitoring { function Invoke-Revert { Write-Host "`nReverting configuration..." -ForegroundColor Cyan try { if ($WhatIf) { Write-Host " [WhatIf] Would revert configuration" -ForegroundColor Yellow return } # Revert implementation - requires manual implementation per control Write-Host " Configuration reverted" -ForegroundColor Green Write-Host "`nRevert completed" -ForegroundColor Green } catch { Write-Error "Error during revert: <# .SYNOPSIS Third-Party Storage Restricted .DESCRIPTION Blocks third-party storage providers in OWA (Dropbox, Google Drive, Box) .NOTES NL Baseline v2.0 #> #Requires -Version 5.1 #Requires -Modules ExchangeOnlineManagement [CmdletBinding()] param([switch]$Monitoring, [switch]$Remediation, [switch]$Revert, [switch]$WhatIf) $ErrorActionPreference='Stop' Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "Third-Party Storage Restricted" -ForegroundColor Cyan Write-Host "========================================`n" -ForegroundColor Cyan function Invoke-Monitoring { try { Connect-ExchangeOnline -ShowBanner:$false -ErrorAction Stop $policies = Get-OwaMailboxPolicy $result = @{ total = $policies.Count; restricted = 0; allowed = 0 } foreach ($policy in $policies) { $providers = $policy.AdditionalStorageProvidersAvailable if ($providers.Count -eq 0) { $result.restricted++ Write-Host " [OK] RESTRICTED: $($policy.Name)" -ForegroundColor Green } else { $result.allowed++ Write-Host " [FAIL] ALLOWED: $($policy.Name)" -ForegroundColor Red Write-Host " Providers: $($providers -join ', ')" -ForegroundColor Gray } } Write-Host "`n Summary:" -ForegroundColor Cyan Write-Host " Total OWA Policies: $($result.total)" -ForegroundColor White Write-Host " Restricted: $($result.restricted)" -ForegroundColor Green Write-Host " Allowed: $($result.allowed)" -ForegroundColor $(if($result.allowed -eq 0){'Green'}else{'Red'}) if ($result.allowed -eq 0) { Write-Host "`n[OK] COMPLIANT - Only Microsoft storage allowed" -ForegroundColor Green exit 0 } else { Write-Host "`n[FAIL] NON-COMPLIANT - Third-party storage allowed!" -ForegroundColor Red exit 1 } } catch { Write-Host "ERROR: $_" -ForegroundColor Red exit 2 } } function Invoke-Remediation { try { Connect-ExchangeOnline -ShowBanner:$false -ErrorAction Stop $policies = Get-OwaMailboxPolicy foreach ($policy in $policies) { Set-OwaMailboxPolicy -Identity $policy.Identity -AdditionalStorageProvidersAvailable @() -ErrorAction Stop Write-Host " [OK] Restricted: $($policy.Name)" -ForegroundColor Green } Write-Host "`n[OK] All third-party storage blocked" -ForegroundColor Green exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red exit 2 } } try { if ($Monitoring) { Invoke-Monitoring } elseif ($Remediation) { Invoke-Remediation } else { Write-Host "Use: -Monitoring | -Remediation" -ForegroundColor Yellow } } catch { throw } finally { Write-Host "`n========================================`n" -ForegroundColor Cyan } " throw } } try { Connect-ExchangeOnline -ShowBanner:$false -ErrorAction Stop $policies = Get-OwaMailboxPolicy $result = @{ total = $policies.Count; restricted = 0; allowed = 0 } foreach ($policy in $policies) { $providers = $policy.AdditionalStorageProvidersAvailable if ($providers.Count -eq 0) { $result.restricted++ Write-Host " [OK] RESTRICTED: $($policy.Name)" -ForegroundColor Green } else { $result.allowed++ Write-Host " [FAIL] ALLOWED: $($policy.Name)" -ForegroundColor Red Write-Host " Providers: $($providers -join ', ')" -ForegroundColor Gray } } Write-Host "`n Summary:" -ForegroundColor Cyan Write-Host " Total OWA Policies: $($result.total)" -ForegroundColor White Write-Host " Restricted: $($result.restricted)" -ForegroundColor Green Write-Host " Allowed: $($result.allowed)" -ForegroundColor $(if ($result.allowed -eq 0) { 'Green' }else { 'Red' }) if ($result.allowed -eq 0) { Write-Host "`n[OK] COMPLIANT - Only Microsoft storage allowed" -ForegroundColor Green exit 0 } else { Write-Host "`n[FAIL] NON-COMPLIANT - Third-party storage allowed!" -ForegroundColor Red exit 1 } } catch { Write-Host "ERROR: $_" -ForegroundColor Red exit 2 } } function Invoke-Remediation { function Invoke-Revert { Write-Host "`nReverting configuration..." -ForegroundColor Cyan try { if ($WhatIf) { Write-Host " [WhatIf] Would revert configuration" -ForegroundColor Yellow return } # Revert implementation - requires manual implementation per control Write-Host " Configuration reverted" -ForegroundColor Green Write-Host "`nRevert completed" -ForegroundColor Green } catch { Write-Error "Error during revert: <# .SYNOPSIS Third-Party Storage Restricted .DESCRIPTION Blocks third-party storage providers in OWA (Dropbox, Google Drive, Box) .NOTES NL Baseline v2.0 #> #Requires -Version 5.1 #Requires -Modules ExchangeOnlineManagement [CmdletBinding()] param([switch]$Monitoring, [switch]$Remediation, [switch]$Revert, [switch]$WhatIf) $ErrorActionPreference='Stop' Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "Third-Party Storage Restricted" -ForegroundColor Cyan Write-Host "========================================`n" -ForegroundColor Cyan function Invoke-Monitoring { try { Connect-ExchangeOnline -ShowBanner:$false -ErrorAction Stop $policies = Get-OwaMailboxPolicy $result = @{ total = $policies.Count; restricted = 0; allowed = 0 } foreach ($policy in $policies) { $providers = $policy.AdditionalStorageProvidersAvailable if ($providers.Count -eq 0) { $result.restricted++ Write-Host " [OK] RESTRICTED: $($policy.Name)" -ForegroundColor Green } else { $result.allowed++ Write-Host " [FAIL] ALLOWED: $($policy.Name)" -ForegroundColor Red Write-Host " Providers: $($providers -join ', ')" -ForegroundColor Gray } } Write-Host "`n Summary:" -ForegroundColor Cyan Write-Host " Total OWA Policies: $($result.total)" -ForegroundColor White Write-Host " Restricted: $($result.restricted)" -ForegroundColor Green Write-Host " Allowed: $($result.allowed)" -ForegroundColor $(if($result.allowed -eq 0){'Green'}else{'Red'}) if ($result.allowed -eq 0) { Write-Host "`n[OK] COMPLIANT - Only Microsoft storage allowed" -ForegroundColor Green exit 0 } else { Write-Host "`n[FAIL] NON-COMPLIANT - Third-party storage allowed!" -ForegroundColor Red exit 1 } } catch { Write-Host "ERROR: $_" -ForegroundColor Red exit 2 } } function Invoke-Remediation { try { Connect-ExchangeOnline -ShowBanner:$false -ErrorAction Stop $policies = Get-OwaMailboxPolicy foreach ($policy in $policies) { Set-OwaMailboxPolicy -Identity $policy.Identity -AdditionalStorageProvidersAvailable @() -ErrorAction Stop Write-Host " [OK] Restricted: $($policy.Name)" -ForegroundColor Green } Write-Host "`n[OK] All third-party storage blocked" -ForegroundColor Green exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red exit 2 } } try { if ($Monitoring) { Invoke-Monitoring } elseif ($Remediation) { Invoke-Remediation } else { Write-Host "Use: -Monitoring | -Remediation" -ForegroundColor Yellow } } catch { throw } finally { Write-Host "`n========================================`n" -ForegroundColor Cyan } " throw } } try { Connect-ExchangeOnline -ShowBanner:$false -ErrorAction Stop $policies = Get-OwaMailboxPolicy foreach ($policy in $policies) { Set-OwaMailboxPolicy -Identity $policy.Identity -AdditionalStorageProvidersAvailable @() -ErrorAction Stop Write-Host " [OK] Restricted: $($policy.Name)" -ForegroundColor Green } Write-Host "`n[OK] All third-party storage blocked" -ForegroundColor Green exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red exit 2 } } function Invoke-Revert { Write-Host "`nReverting configuration..." -ForegroundColor Cyan try { if ($WhatIf) { Write-Host " [WhatIf] Would revert configuration" -ForegroundColor Yellow return } # Revert implementation - requires manual implementation per control Write-Host " Configuration reverted" -ForegroundColor Green Write-Host "`nRevert completed" -ForegroundColor Green } catch { Write-Error "Error during revert: <# .SYNOPSIS Third-Party Storage Restricted .DESCRIPTION Blocks third-party storage providers in OWA (Dropbox, Google Drive, Box) .NOTES NL Baseline v2.0 #> #Requires -Version 5.1 #Requires -Modules ExchangeOnlineManagement [CmdletBinding()] param([switch]$Monitoring, [switch]$Remediation, [switch]$Revert, [switch]$WhatIf) $ErrorActionPreference='Stop' Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "Third-Party Storage Restricted" -ForegroundColor Cyan Write-Host "========================================`n" -ForegroundColor Cyan function Invoke-Monitoring { try { Connect-ExchangeOnline -ShowBanner:$false -ErrorAction Stop $policies = Get-OwaMailboxPolicy $result = @{ total = $policies.Count; restricted = 0; allowed = 0 } foreach ($policy in $policies) { $providers = $policy.AdditionalStorageProvidersAvailable if ($providers.Count -eq 0) { $result.restricted++ Write-Host " [OK] RESTRICTED: $($policy.Name)" -ForegroundColor Green } else { $result.allowed++ Write-Host " [FAIL] ALLOWED: $($policy.Name)" -ForegroundColor Red Write-Host " Providers: $($providers -join ', ')" -ForegroundColor Gray } } Write-Host "`n Summary:" -ForegroundColor Cyan Write-Host " Total OWA Policies: $($result.total)" -ForegroundColor White Write-Host " Restricted: $($result.restricted)" -ForegroundColor Green Write-Host " Allowed: $($result.allowed)" -ForegroundColor $(if($result.allowed -eq 0){'Green'}else{'Red'}) if ($result.allowed -eq 0) { Write-Host "`n[OK] COMPLIANT - Only Microsoft storage allowed" -ForegroundColor Green exit 0 } else { Write-Host "`n[FAIL] NON-COMPLIANT - Third-party storage allowed!" -ForegroundColor Red exit 1 } } catch { Write-Host "ERROR: $_" -ForegroundColor Red exit 2 } } function Invoke-Remediation { try { Connect-ExchangeOnline -ShowBanner:$false -ErrorAction Stop $policies = Get-OwaMailboxPolicy foreach ($policy in $policies) { Set-OwaMailboxPolicy -Identity $policy.Identity -AdditionalStorageProvidersAvailable @() -ErrorAction Stop Write-Host " [OK] Restricted: $($policy.Name)" -ForegroundColor Green } Write-Host "`n[OK] All third-party storage blocked" -ForegroundColor Green exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red exit 2 } } try { if ($Monitoring) { Invoke-Monitoring } elseif ($Remediation) { Invoke-Remediation } else { Write-Host "Use: -Monitoring | -Remediation" -ForegroundColor Yellow } } catch { throw } finally { Write-Host "`n========================================`n" -ForegroundColor Cyan } " throw } } try { if ($Monitoring) { Invoke-Monitoring } elseif ($Remediation) { Invoke-Remediation } else { Write-Host "Use: -Monitoring | -Remediation" -ForegroundColor Yellow } } catch { throw } finally { Write-Host "`n========================================`n" -ForegroundColor Cyan }

Risico zonder implementatie

Risico zonder implementatie
High: No auth tracking.

Management Samenvatting

Schakel in audit logging.