SAS Tokens Beperkt

💼 Management Samenvatting

Deze beveiligingscontrole waarborgt de correcte configuratie van Shared Access Signature (SAS) tokens en beschermt Azure Storage accounts tegen onbevoegde toegang en gegevenslekken.

Aanbeveling
IMPLEMENTEER SAS TOKEN RESTRICTIES
Risico zonder
High
Risk Score
7/10
Implementatie
3u (tech: 2u)
Van toepassing op:
Azure opslag

SAS tokens vormen een kritieke beveiligingslaag voor Azure Storage, maar onjuist geconfigureerde tokens kunnen permanente toegang verlenen tot gevoelige gegevens. Deze instelling is essentieel voor het handhaven van een veilige omgeving en voorkomt bekende aanvalsvectoren door het afdwingen van beveiligingsbest practices. Zonder restricties kunnen gelektte tokens jarenlang toegang verlenen tot opslagcontainers, wat leidt tot ernstige datalekken en compliance-overtredingen.

PowerShell Modules Vereist
Primary API: Azure API
Connection: Connect-AzAccount
Required Modules: Az.Accounts, Az.opslag

Implementatie

Beperk SAS tokens door korte vervaltijden te gebruiken (uren of dagen in plaats van maanden), IP-adresrestricties in te stellen zodat alleen specifieke client-IP's toegang hebben, HTTPS-verbindingen verplicht te stellen, en minimale machtigingen toe te kennen (bij voorkeur alleen-lezen). Gebruik waar mogelijk User Delegation SAS tokens in plaats van Account SAS tokens, omdat deze betere beveiliging en auditmogelijkheden bieden.

Vereisten

Het implementeren van SAS token restricties vereist een grondige voorbereiding en een duidelijk inzicht in de technische en organisatorische vereisten. Allereerst moet er een actief Azure Storage account aanwezig zijn, waarbij organisaties kunnen kiezen tussen verschillende accounttypen afhankelijk van hun specifieke behoeften. Een standaard opslagaccount van het type General Purpose v2 biedt de meeste flexibiliteit en ondersteunt alle opslagservices, terwijl gespecialiseerde accounts zoals Blob Storage, File Storage of Queue Storage geoptimaliseerd zijn voor specifieke use cases. Het opslagaccount moet zich bevinden binnen een Azure-abonnement waar de implementerende partij volledige beheerdersrechten heeft, wat essentieel is voor het configureren van beveiligingsinstellingen op accountniveau. Daarnaast zijn specifieke op rollen gebaseerde toegangscontrole (RBAC) machtigingen vereist, waarbij de minimale benodigde rollen Storage Account Contributor of Storage Blob Data Contributor zijn, afhankelijk van het type opslagresource dat wordt beheerd. Voor organisaties die Azure Policy willen gebruiken om restricties centraal af te dwingen over meerdere abonnementen en resourcegroepen, zijn aanvullende machtigingen nodig zoals Policy Contributor of Resource Policy Contributor, wat een hoger niveau van toegangsrechten vereist. Naast de technische vereisten moeten organisaties beschikken over een compleet overzicht van alle applicaties, services en workflows die momenteel SAS tokens gebruiken voor toegang tot opslagresources. Deze inventarisatie is cruciaal omdat het implementeren van restricties zonder voorafgaande analyse kan leiden tot onbedoelde service-onderbrekingen wanneer applicaties plotseling geen toegang meer hebben tot benodigde resources. Het is daarom aanbevolen om een uitgebreide inventarisatie uit te voeren voordat restricties worden geïmplementeerd, waarbij voor elke applicatie wordt gedocumenteerd welke tokens worden gebruikt, wat de huidige vervaltijden zijn, welke IP-adressen toegang hebben, en welke machtigingen zijn verleend. Deze informatie vormt de basis voor het plannen van migratiepaden voor applicaties die afhankelijk zijn van langlopende tokens of tokens zonder IP-restricties. Organisaties moeten ook beschikken over toegang tot Azure Portal, Azure CLI of Azure PowerShell, waarbij de keuze afhankelijk is van de voorkeuren van het team en de mate van automatisering die gewenst is. Voor grootschalige implementaties is het gebruik van Infrastructure as Code tools zoals Azure Resource Manager templates of Terraform aanbevolen, wat consistentie en reproduceerbaarheid waarborgt. Daarnaast moeten organisaties beschikken over een duidelijk beveiligingsbeleid dat definieert welke restricties moeten worden toegepast, wat de maximale toegestane vervaltijden zijn, en onder welke omstandigheden uitzonderingen zijn toegestaan. Dit beleid moet worden goedgekeurd door de juiste autoriteiten binnen de organisatie en moet regelmatig worden herzien om te zorgen dat het aansluit bij de nieuwste beveiligingsstandaarden en compliance-vereisten.

Monitoring

Gebruik PowerShell-script sas-tokens-restricted.ps1 (functie Invoke-Monitoring) – Controleren.

Effectieve monitoring van SAS token gebruik en beleidsregels vormt de hoeksteen van een robuuste beveiligingsstrategie voor Azure Storage omgevingen. Organisaties moeten een uitgebreid monitoringprogramma implementeren dat regelmatig controleert of alle gegenereerde SAS tokens voldoen aan de vastgestelde restricties, waarbij aandacht wordt besteed aan kritieke aspecten zoals vervaltijden, IP-adresbeperkingen, en machtigingsniveaus. Azure Storage Analytics biedt uitgebreide loggingmogelijkheden die organisaties in staat stellen om alle SAS token activiteit te volgen, inclusief wanneer tokens worden gegenereerd, welke resources worden benaderd, en vanaf welke IP-adressen toegang wordt verkregen. Deze logs kunnen worden geïntegreerd met Azure Monitor voor geavanceerde analyse en waarschuwingsmogelijkheden, waardoor beveiligingsteams proactief kunnen reageren op afwijkingen. Het is sterk aanbevolen om wekelijkse audits uit te voeren waarbij wordt gecontroleerd op tokens met ongebruikelijk lange vervaltijden die de vastgestelde limieten overschrijden, tokens zonder IP-restricties die toegang vanaf elke locatie toestaan, of tokens met te brede machtigingen zoals schrijfrechten waar alleen-lezen voldoende zou zijn voor de beoogde use case. Deze audits moeten worden uitgevoerd door getraind personeel dat bekend is met de beveiligingsvereisten en de specifieke risico's die gepaard gaan met onjuist geconfigureerde tokens. Beveiligingsteams moeten alert zijn op patronen die kunnen wijzen op gecompromitteerde tokens of onbevoegde toegang, zoals onverwachte toegang vanaf nieuwe geografische locaties die niet overeenkomen met de normale bedrijfsactiviteiten, ongebruikelijke toegangstijden buiten normale kantooruren, of plotselinge toename van dataoverdrachtvolumes die kunnen wijzen op datadiefstal. Automatische waarschuwingen moeten worden geconfigureerd voor verschillende scenario's, waaronder situaties waarbij tokens worden gegenereerd die niet voldoen aan organisatiebeleid, tokens die worden gebruikt vanaf niet-geautoriseerde IP-adressen, of tokens die worden gebruikt voor ongebruikelijke operaties zoals het verwijderen van grote hoeveelheden data. Deze waarschuwingen moeten worden geïntegreerd met incident response procedures zodat direct actie kan worden ondernomen wanneer afwijkingen worden gedetecteerd. Logs moeten minimaal zeven jaar worden bewaard voor compliance-doeleinden, conform de vereisten van de Baseline Informatiebeveiliging Overheid (BIO) en ISO 27001, waarbij organisaties moeten zorgen dat logs worden opgeslagen op een veilige locatie met adequate bescherming tegen wijziging of verwijdering. Het gebruik van Azure Policy voor het afdwingen van SAS token restricties biedt extra monitoringmogelijkheden, omdat alle policy-evaluaties worden gelogd en kunnen worden geanalyseerd via Azure Policy compliance rapporten, wat organisaties in staat stelt om snel te identificeren welke resources niet voldoen aan de vastgestelde standaarden. Daarnaast kunnen organisaties gebruik maken van Azure Security Center of Microsoft Defender for Cloud voor geavanceerde threat detection en security recommendations die specifiek gericht zijn op SAS token beveiliging, wat helpt om potentiële kwetsbaarheden vroegtijdig te identificeren en te adresseren.

Compliance en Auditing

Het implementeren van SAS token restricties is een kritieke vereiste voor naleving van verschillende beveiligingsstandaarden die van toepassing zijn op Nederlandse overheidsorganisaties en organisaties die werken met gevoelige informatie. De Baseline Informatiebeveiliging Overheid (BIO) controle 09.04 vereist expliciet dat organisaties adequate maatregelen treffen voor het beheer van authenticatiemiddelen, waarbij specifiek aandacht wordt besteed aan het beperken van de geldigheidsduur van credentials en het toepassen van toegangsbeperkingen die onbevoegde toegang voorkomen. SAS tokens zonder restricties vormen een directe schending van deze controle, omdat ze permanente of langdurige toegang kunnen verlenen zonder adequate controles, wat in strijd is met het principe van least privilege en het concept van time-limited access dat centraal staat in moderne beveiligingsframeworks. ISO 27001:2022 controle A.5.17, getiteld Authentication Information, stelt vergelijkbare eisen en benadrukt het fundamentele belang van het beperken van de geldigheidsduur van authenticatiemiddelen en het implementeren van aanvullende beveiligingsmaatregelen zoals IP-restricties, netwerksegmentatie, en monitoring van authenticatiepogingen. Deze standaard vereist dat organisaties kunnen aantonen dat zij adequate controles hebben geïmplementeerd om te voorkomen dat authenticatiemiddelen worden misbruikt of gecompromitteerd, waarbij SAS token restricties een essentiële component vormen van deze controles. Voor organisaties die werken met persoonsgegevens is ook de Algemene Verordening Gegevensbescherming (AVG) van toepassing, waarbij artikel 32 expliciet vereist dat passende technische en organisatorische maatregelen worden getroffen om gegevens te beveiligen tegen ongeautoriseerde toegang, verlies, of vernietiging. Onbeperkte SAS tokens kunnen leiden tot ernstige datalekken die moeten worden gemeld aan de Autoriteit Persoonsgegevens (AP) binnen 72 uur na ontdekking, wat niet alleen administratieve lasten met zich meebrengt maar ook ernstige gevolgen kan hebben voor de organisatie in termen van reputatieschade, mogelijke boetes die kunnen oplopen tot twintig miljoen euro of vier procent van de wereldwijde jaaromzet, en het verlies van vertrouwen van burgers en stakeholders. Tijdens externe audits en compliance reviews moeten organisaties kunnen aantonen dat alle SAS tokens voldoen aan de vastgestelde restricties, dat er regelmatige controles worden uitgevoerd door gekwalificeerd personeel, en dat er gedocumenteerde procedures zijn voor het detecteren en reageren op afwijkingen waarbij duidelijk is wie verantwoordelijk is voor welke acties en binnen welke tijdsframes. Documentatie moet duidelijk maken welke restricties zijn geïmplementeerd op technisch niveau, hoe deze worden afgedwongen via Azure Policy of andere mechanismen, welke uitzonderingen zijn toegestaan en waarom deze uitzonderingen gerechtvaardigd zijn vanuit een risicoperspectief, en hoe de effectiviteit van deze maatregelen wordt gemeten en geëvalueerd. Deze documentatie moet regelmatig worden bijgewerkt om te reflecteren wijzigingen in de omgeving, nieuwe bedreigingen, of updates aan compliance-vereisten, en moet beschikbaar zijn voor auditors en compliance officers tijdens reviews.

Remediatie

Gebruik PowerShell-script sas-tokens-restricted.ps1 (functie Invoke-Remediation) – Herstellen.

Wanneer monitoring detecteert dat SAS tokens niet voldoen aan de vereiste restricties, moeten onmiddellijk remediatiestappen worden ondernomen om de beveiligingsrisico's te beperken en te voorkomen dat kwetsbaarheden worden uitgebuit door kwaadwillende actoren. Het remediatieproces begint met het identificeren van alle niet-conforme tokens binnen de organisatie, wat kan worden gedaan via Azure Storage Analytics logs die gedetailleerde informatie bevatten over alle token generaties en gebruik, of door gebruik te maken van de bijbehorende PowerShell-script dat specifiek is ontwikkeld voor het detecteren en rapporteren van niet-conforme tokens. Deze identificatie moet worden uitgevoerd door gekwalificeerd personeel dat bekend is met de beveiligingsvereisten en de technische implementatie van SAS tokens, waarbij aandacht wordt besteed aan zowel actieve tokens die momenteel worden gebruikt als tokens die zijn gegenereerd maar nog niet zijn verlopen. Voor tokens die nog actief zijn maar niet voldoen aan de restricties, moeten nieuwe tokens worden gegenereerd met de juiste beperkingen die overeenkomen met het organisatiebeleid, waarbij de oude tokens worden ingetrokken zodra de migratie is voltooid om te voorkomen dat er meerdere versies van tokens actief zijn die toegang verlenen tot dezelfde resources. Organisaties moeten een gestructureerde en gedocumenteerde aanpak volgen waarbij eerst een uitgebreide inventarisatie wordt gemaakt van alle applicaties, services, en workflows die afhankelijk zijn van de niet-conforme tokens, zodat migratiepaden kunnen worden gepland zonder onbedoelde service-onderbrekingen die de bedrijfscontinuïteit kunnen beïnvloeden. Deze inventarisatie moet worden gedocumenteerd in een remediatieplan dat duidelijk maakt welke tokens worden aangepast, welke applicaties worden beïnvloed, wat de verwachte impact is, en welke stappen worden genomen om deze impact te minimaliseren. Azure Policy kan worden gebruikt om automatisch te voorkomen dat nieuwe tokens worden gegenereerd die niet voldoen aan de restricties, wat helpt om toekomstige problemen te voorkomen en ervoor zorgt dat alle nieuwe tokens vanaf het moment van implementatie voldoen aan de beveiligingsstandaarden. Voor bestaande tokens met te lange vervaltijden die de vastgestelde limieten overschrijden, moet een gefaseerde aanpak worden gevolgd waarbij eerst de vervaltijden worden verkort voor alle nieuwe tokens die worden gegenereerd, en vervolgens bestaande tokens worden vervangen tijdens normale onderhoudsvensters wanneer applicaties kunnen worden bijgewerkt zonder impact op de productieomgeving. IP-restricties kunnen worden toegevoegd door de token generatiecode aan te passen in alle applicaties en services die tokens genereren, waarbij organisaties moeten zorgen dat alle legitieme client-IP-adressen worden geïdentificeerd en toegevoegd aan de toegestane lijst, en dat er procedures zijn voor het beheren van deze lijst wanneer nieuwe IP-adressen moeten worden toegevoegd of oude moeten worden verwijderd. Het is cruciaal om na remediatie uitgebreide verificatie uit te voeren om te bevestigen dat alle tokens nu voldoen aan de restricties, dat er geen onbedoelde toegangsproblemen zijn ontstaan voor legitieme gebruikers of applicaties, en dat de beveiligingspostuur daadwerkelijk is verbeterd. Deze verificatie moet worden gedocumenteerd en moet worden herhaald op regelmatige basis om te zorgen dat nieuwe tokens die worden gegenereerd blijven voldoen aan de vereisten, en om te detecteren wanneer tokens worden gegenereerd die niet voldoen aan het beleid ondanks de geïmplementeerde controles.

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
<# ================================================================================ AZURE POWERSHELL SCRIPT - Nederlandse Baseline voor Veilige Cloud ================================================================================ .SYNOPSIS SAS Tokens Restricted .DESCRIPTION CIS Azure Foundations Benchmark - Control 3.21 Controleert restricties op SAS tokens. .NOTES Filename: sas-tokens-restricted.ps1 Author: Nederlandse Baseline voor Veilige Cloud Version: 1.0 CIS Control: 3.21 #> #Requires -Version 5.1 #Requires -Modules Az.Accounts, Az.Storage [CmdletBinding()] param([Parameter()][switch]$Monitoring) $ErrorActionPreference = 'Stop' $PolicyName = "SAS Tokens Restricted" function Connect-RequiredServices { if (-not (Get-AzContext)) { Connect-AzAccount | Out-Null } } function Test-Compliance { $storageAccounts = Get-AzStorageAccount -ErrorAction SilentlyContinue $result = @{ TotalAccounts = $storageAccounts.Count; WithSASPolicy = 0 } foreach ($account in $storageAccounts) { if ($account.SasPolicy) { $result.WithSASPolicy++ } } return $result } try { Connect-RequiredServices if ($Monitoring) { $r = Test-Compliance Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "$PolicyName" -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan Write-Host "Total Storage Accounts: $($r.TotalAccounts)" -ForegroundColor White Write-Host "With SAS Policy: $($r.WithSASPolicy)" -ForegroundColor $(if ($r.WithSASPolicy -gt 0) { 'Green' } else { 'Yellow' }) } else { $r = Test-Compliance Write-Host "`nSAS Policy: $($r.WithSASPolicy)/$($r.TotalAccounts) accounts" } } catch { Write-Error $_; exit 1 } # ================================================================================ # Standaard Invoke-* Functions (Auto-generated) # ================================================================================ function Invoke-Implementation { <# .SYNOPSIS Implementeert de configuratie #> [CmdletBinding()] param() Invoke-Remediation } function Invoke-Monitoring { <# .SYNOPSIS Controleert de huidige configuratie status #> [CmdletBinding()] param() $Monitoring = $true try { Connect-RequiredServices if ($Monitoring) { $r = Test-Compliance Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "$PolicyName" -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan Write-Host "Total Storage Accounts: $($r.TotalAccounts)" -ForegroundColor White Write-Host "With SAS Policy: $($r.WithSASPolicy)" -ForegroundColor $(if ($r.WithSASPolicy -gt 0) { 'Green' } else { 'Yellow' }) } else { $r = Test-Compliance Write-Host "`nSAS Policy: $($r.WithSASPolicy)/$($r.TotalAccounts) accounts" } } catch { Write-Error $_; exit 1 } } function Invoke-Remediation { <# .SYNOPSIS Herstelt de configuratie naar de gewenste staat .DESCRIPTION Dit is een monitoring-only control, remediation delegeert naar monitoring #> [CmdletBinding()] param() Write-Host "[INFO] Dit is een monitoring-only control" -ForegroundColor Yellow Write-Host "[INFO] Running monitoring check..." -ForegroundColor Cyan Invoke-Monitoring }

Risico zonder implementatie

Risico zonder implementatie
High: Onbeperkte SAS tokens verlenen permanente toegang tot opslagaccounts. Een gelekt SAS token kan door iedereen worden gebruikt om onbeperkt toegang te krijgen tot blob-containers en andere opslagresources. Dit vormt een directe schending van compliance-vereisten zoals CIS 3.9 en BIO 9.04. Het risico is HOOG vanwege de mogelijkheid tot credential theft en onbeperkte gegevensuitwisseling.

Management Samenvatting

SAS token restricties: Korte vervaltijden (maximaal 24 uur), IP-adresbeperkingen (alleen specifieke client-IP's), minimale machtigingen (bij voorkeur alleen-lezen), uitsluitend HTTPS-verbindingen. Azure Policy dwingt restricties af. Activatie: SAS generatiebeleid plus Azure Policy. Geen extra kosten. Verplicht volgens CIS 3.9 en BIO 9.04. Implementatietijd: 2-3 uur. Beperkt blootstelling van authenticatiemiddelen.