💼 Management Samenvatting
Azure SQL Auditing registreert database-gebeurtenissen naar Azure Storage, Log Analytics of Event Hubs voor naleving van compliance-vereisten, onderzoek naar beveiligingsincidenten en detectie van afwijkende patronen. Deze audittrail is wettelijk verplicht onder de AVG en essentieel voor het onderzoeken van beveiligingsincidenten en het detecteren van bedreigingen van binnenuit waarbij medewerkers of gecompromitteerde accounts kwaadwillende activiteiten uitvoeren.
✓ SQL Managed Instance
Zonder SQL auditing ontbreekt cruciale zichtbaarheid in database-activiteiten, wat ernstige compliance- en beveiligingsrisico's creëert. Organisaties hebben geen inzicht in wie toegang heeft gehad tot welke data, wanneer, en vanuit welke locatie. Deze gebrek aan transparantie maakt het onmogelijk om toegangspatronen te monitoren of ongeautoriseerde toegang te detecteren. Wanneer een beveiligingsincident plaatsvindt, kunnen organisaties deze niet effectief onderzoeken omdat er geen audittrail bestaat die forensisch onderzoek mogelijk maakt. Bij een datalek is het onmogelijk om te achterhalen welke data is gecompromitteerd, door wie dit is gebeurd, en op welke manier de aanval heeft plaatsgevonden. Deze informatie blindheid vormt een fundamentele belemmering voor effectieve incident response en herstel operaties. Compliance-fouten zijn onvermijdelijk zonder audit logging omdat vrijwel alle moderne beveiligings- en privacyframeworks database audit logs vereisen. De Algemene Verordening Gegevensbescherming, bekend als AVG of GDPR, bevat in Artikel 32 expliciete vereisten voor logging van gegevenstoegang wanneer persoonsgegevens worden verwerkt. Organisaties die persoonsgegevens in SQL-databases opslaan, moeten kunnen aantonen wie toegang heeft gehad tot deze gegevens, wanneer deze toegang plaatsvond, en vanuit welke locatie. Deze vereiste is essentieel voor het voldoen aan AVG-verzoeken zoals het inzagerecht en het recht op verwijdering, en het ontbreken van adequate logging kan leiden tot boetes tot €20 miljoen of 4% van de wereldwijde jaaromzet. De ISO 27001:2022 standaard bevat controle A.12.4.1 die expliciet vereist dat organisaties gebeurtenissen logging en audittrails implementeren voor alle systemen die kritieke informatie verwerken. Voor databases betekent dit dat alle database-activiteiten moeten worden gelogd, inclusief authenticatiegebeurtenissen, gegevenstoegang, schema-wijzigingen en machtigingswijzigingen. Tijdens ISO 27001-certificering audits moeten organisaties kunnen aantonen dat zij een complete audit trail hebben en dat deze logs worden bewaard volgens de vereiste bewaarperioden. Het ontbreken van adequate audit logging is een van de meest voorkomende redenen voor ISO 27001-certificering failures. Voor organisaties die creditcarddata verwerken, is PCI-DSS v4.0 Requirement 10.2 van kritiek belang. Deze vereiste verplicht audit logs voor alle systemen die kaarthouderdata verwerken, en deze verplichting is bijzonder streng omdat creditcarddata zeer gevoelige informatie is die een hoog risico vormt voor identiteitsdiefstal en fraude. Het niet voldoen aan Requirement 10.2 resulteert in een directe PCI-DSS-compliance failure, wat betekent dat organisaties hun rechten verliezen om creditcardbetalingen te verwerken. Deze gevolgen kunnen catastrofaal zijn voor e-commerce bedrijven en andere organisaties die afhankelijk zijn van creditcardtransacties. De NIS2-richtlijn, die van toepassing is op kritieke entiteiten in Nederland, bevat in Artikel 21 specifieke verplichtingen voor logging en monitoring. Organisaties die onder NIS2 vallen moeten uitgebreide logging implementeren van alle beveiligingsrelevante gebeurtenissen, inclusief database-activiteiten, en zonder adequate audit logging kunnen organisaties niet voldoen aan deze verplichtingen. Bedreigingen van binnenuit vormen een bijzonder ernstige bedreiging die zonder audit logging volledig ondetecteerbaar blijven. Medewerkers die gegevens uitlekken, ongeautoriseerde wijzigingen maken, of sabotage plegen, kunnen dit doen zonder enige audittrail die hun activiteiten vastlegt. Studies tonen aan dat 20-30% van alle datalekken worden veroorzaakt door interne actoren, en organisaties ontdekken aanvallen van binnenuit gemiddeld 300+ dagen te laat zonder adequate audit logging. SQL injection-pogingen, zelfs mislukte pogingen, blijven onzichtbaar zonder query logging, wat vroege detectie van aanvallen onmogelijk maakt. Aanvallers kunnen meerdere SQL injection-pogingen uitvoeren zonder dat organisaties zich bewust zijn van deze bedreigingen, waardoor aanvallers de tijd krijgen om hun aanvalstechnieken te verfijnen en uiteindelijk succesvol te zijn. SQL Auditing lost al deze problemen op door uitgebreide logging te bieden van alle database-activiteiten. Het systeem logt database login-gebeurtenissen met bron-IP-adres en nauwkeurige tijdstippen, waardoor organisaties kunnen achterhalen wie toegang heeft gehad en wanneer. Query-uitvoeringen worden volledig vastgelegd inclusief de complete SQL-statements, wat essentieel is voor het traceren van gegevenstoegang en het detecteren van verdachte querypatronen. Schema-wijzigingen zoals CREATE, ALTER en DROP operaties worden geregistreerd, evenals machtigingswijzigingen waarbij toegangsrechten worden gewijzigd. Mislukte authenticatiepogingen worden gelogd en kunnen wijzen op brute-force aanvallen waarbij aanvallers proberen wachtwoorden te raden. Verdachte activiteiten zoals ongebruikelijke querypatronen of massale gegevens-exporten worden vastgelegd, wat essentieel is voor het detecteren van bedreigingen van binnenuit en gegevens-uitlekkingspogingen.
Connection:
Connect-AzAccountRequired Modules: Az.Accounts, Az.Sql
Implementatie
Deze maatregel implementeert Azure SQL Auditing voor alle SQL-servers in de organisatie, waarbij auditing op serverniveau wordt ingeschakeld. Deze configuratie op serverniveau is automatisch van toepassing op alle databases binnen die server, wat de implementatie aanzienlijk vereenvoudigt en consistentie garandeert over alle databases. Het is belangrijk om te begrijpen dat auditing wordt geconfigureerd op het niveau van de SQL-server en niet op individuele databases, wat betekent dat organisaties één keer auditing hoeven in te schakelen per server en deze configuratie vervolgens automatisch geldt voor alle databases binnen die server. De configuratie begint met het selecteren van een logbestemming voor de audit logs. Een Log Analytics-workspace wordt sterk aanbevolen als primaire bestemming omdat dit real-time waarschuwingen mogelijk maakt, flexibele bewaarbeleidsregels biedt, en geavanceerde query's met KQL ondersteunt. Audit logs worden real-time gestreamd naar de Log Analytics-workspace met een typische latentie van 1 tot 5 minuten, wat betekent dat gebeurtenissen vrijwel direct beschikbaar zijn voor query's en waarschuwingen. Als alternatief kan een Azure Storage Account worden gebruikt voor langetermijnarchivering, wat kostenefficiënter is maar minder real-time mogelijkheden biedt. Voor organisaties die compliance-vereisten hebben voor langetermijnbewaring, is een combinatie van beide aanpakken ideaal waarbij Log Analytics wordt gebruikt voor operationele monitoring en Storage Account voor archivering na 90 dagen. De auditacties moeten zorgvuldig worden geconfigureerd om alle relevante gebeurtenissen vast te leggen die nodig zijn voor compliance en monitoring van beveiliging. SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP logt alle succesvolle logins met gebruikersidentiteit, tijdstip en bron-IP, wat essentieel is voor het traceren van toegangspatronen en het identificeren van verdachte activiteiten. FAILED_DATABASE_AUTHENTICATION_GROUP registreert mislukte loginpogingen die kunnen wijzen op brute-force aanvallen waarbij aanvallers proberen wachtwoorden te raden. BATCH_COMPLETED_GROUP logt alle uitgevoerde queries en statements inclusief de volledige SQL-tekst, wat cruciaal is voor het traceren van gegevenstoegang en het detecteren van bedreigingen van binnenuit waarbij medewerkers gevoelige gegevens uitlekken. SCHEMA_OBJECT_CHANGE_GROUP registreert alle CREATE, ALTER en DROP operaties, wat essentieel is voor het detecteren van onbevoegde schema-wijzigingen die kunnen wijzen op sabotage of privilege escalation pogingen. SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP logt machtigingswijzigingen waarbij toegangsrechten worden gewijzigd via GRANT en REVOKE statements, wat cruciaal is voor het detecteren van onbevoegde privilege escalation. Door alle categorieën te selecteren, creëren organisaties een complete audittrail die alle aspecten van database-activiteit dekt. De bewaarperiode voor audit logs moet worden afgestemd op zowel operationele behoeften als compliance-vereisten. Voor operationele doeleinden zoals recent incidentonderzoek en dagelijkse monitoring is een bewaarperiode van minimaal 90 dagen in Log Analytics voldoende. Voor uitgebreide beveiligingsonderzoeken wordt 365 dagen aanbevolen, wat meer historische context biedt voor het analyseren van patronen en trends. Voor compliance met AVG en ISO 27001 is vaak 7 jaar bewaarplicht vereist, waarbij langetermijnopslag naar een Azure Storage Account kan worden geconfigureerd voor kostenefficiëntie. Deze hybride aanpak combineert de voordelen van real-time monitoring via Log Analytics met de kostenefficiëntie van langetermijnarchivering via Storage Account. Integratie met Microsoft Defender for SQL wordt sterk aanbevolen omdat Advanced Threat Protection audit logs gebruikt als basis voor bedreigingsdetectie. Defender for SQL kan geavanceerde machine learning-algoritmen toepassen op audit logs om anomalieën te detecteren, verdachte patronen te identificeren, en automatische waarschuwingen te genereren voor potentieel kwaadaardige activiteiten. Deze integratie versterkt de beveiligingswaarde van audit logging aanzienlijk door proactieve bedreigingsdetectie mogelijk te maken in plaats van alleen reactief onderzoek na incidenten. De implementatie kan plaatsvinden via Azure Portal door te navigeren naar SQL server, vervolgens Auditing te selecteren, en daar Azure SQL Auditing in te schakelen en de bestemming en acties te configureren. Voor organisaties met meerdere SQL-servers wordt het gebruik van PowerShell sterk aanbevolen voor geautomatiseerde implementatie over meerdere servers, wat tijd bespaart en consistentie garandeert. Na activering moeten testqueries worden uitgevoerd om te verifiëren dat logs daadwerkelijk worden gegenereerd en correct worden opgeslagen. Logs moeten binnen 5 minuten verschijnen in Log Analytics vanwege de real-time streaming latentie. Automatische waarschuwingen moeten worden geconfigureerd voor kritieke gebeurtenissen zoals meer dan 5 mislukte logins binnen 5 minuten, wat kan wijzen op brute-force aanvallen. DROP en TRUNCATE TABLE-commando's moeten worden gemonitord omdat deze operaties onomkeerbaar zijn en kunnen leiden tot permanent dataverlies. GRANT en REVOKE statements moeten worden gemonitord omdat onbevoegde machtigingswijzigingen kunnen leiden tot privilege escalation. De kosten voor Log Analytics-opname bedragen circa €2 tot €5 per database per maand, afhankelijk van het queryvolume en de hoeveelheid gegenereerde audit logs. Databases met hoge transactievolumes of veel gebruikers genereren meer logs en zullen dus hogere kosten met zich meebrengen. Voor Storage Account archivering zijn de kosten lager, ongeveer €0,50 tot €1 per database per maand voor langetermijnopslag. Deze audit logging is een niet-onderhandelbare compliance-vereiste en essentieel voor alle productiedatabases zonder uitzonderingen.
Vereisten
Voordat u Azure SQL Auditing implementeert, moet u ervoor zorgen dat alle benodigde infrastructuur en rechten aanwezig zijn. De primaire vereiste is een actieve Azure SQL Database of SQL Managed Instance waarop auditing moet worden ingeschakeld. Deze databases moeten zich in een productieomgeving bevinden of voorbereid worden voor productiegebruik, aangezien auditing een fundamentele beveiligingsmaatregel is die niet mag ontbreken in operationele systemen.
Voor de opslag van audit logs heeft u twee opties: een Log Analytics-workspace of een Azure Storage Account. Een Log Analytics-workspace wordt sterk aanbevolen omdat dit real-time waarschuwingen mogelijk maakt, flexibele bewaarbeleidsregels biedt en geavanceerde query's met KQL (Kusto Query Language) ondersteunt. Deze workspace moet worden geconfigureerd in dezelfde Azure-regio als uw SQL-servers om latentie te minimaliseren en kosten te optimaliseren. Als alternatief kan een Storage Account worden gebruikt voor langetermijnarchivering, wat kostenefficiënter is maar minder real-time mogelijkheden biedt. Voor organisaties die compliance-vereisten hebben voor langetermijnbewaring (zoals 7 jaar voor AVG of ISO 27001), is een combinatie van beide aanpakken ideaal: Log Analytics voor operationele monitoring en Storage Account voor archivering na 90 dagen.
Wat betreft toegangsrechten heeft u Contributor-rechten nodig op de SQL-server om auditing te kunnen configureren. Deze rechten zijn vereist omdat auditing een server-level configuratie is die van invloed is op alle databases binnen die server. Daarnaast heeft u leesrechten nodig op de Log Analytics-workspace of het Storage Account om audit logs te kunnen raadplegen. Voor dagelijkse monitoring en analyse is de rol 'Log Analytics Reader' voldoende, terwijl voor configuratie de rol 'Log Analytics Contributor' of hoger nodig is.
Financieel gezien moet u rekening houden met kosten voor logopslag. Voor Log Analytics bedragen de kosten ongeveer €2 tot €5 per database per maand, afhankelijk van het queryvolume en de hoeveelheid gegenereerde audit logs. Databases met hoge transactievolumes of veel gebruikers genereren meer logs en zullen dus hogere kosten met zich meebrengen. Voor Storage Accounts zijn de kosten lager, ongeveer €0,50 tot €1 per database per maand voor langetermijnarchivering, maar dit biedt geen real-time query- of waarschuwingsmogelijkheden. Organisaties moeten een budgetplanning maken die rekening houdt met het aantal databases, het verwachte logvolume en de compliance-vereisten voor bewaartermijnen.
Hoewel niet strikt vereist, wordt integratie met een SIEM-systeem zoals Microsoft Sentinel sterk aanbevolen. Deze integratie maakt geavanceerde security analytics mogelijk, correlatie van gebeurtenissen tussen verschillende systemen, en geautomatiseerde threat detection en response. Sentinel kan audit logs van SQL-databases combineren met logs van andere Azure-services en on-premises systemen om een holistisch beeld te krijgen van de beveiligingspostuur. Voor organisaties die al gebruikmaken van een externe SIEM zoals Splunk of QRadar, kan Event Hub worden geconfigureerd als audit log destination om real-time streaming naar deze systemen mogelijk te maken.
Implementatie
Gebruik PowerShell-script sql-auditing-enabled.ps1 (functie Invoke-Remediation) – Schakelt SQL Auditing in voor alle SQL servers naar Log Analytics-workspace.
**FASE 1: Log Analytics Workspace Voorbereiden (Duur: 15 minuten indien nieuw, 5 minuten indien bestaand)**
De eerste fase van de implementatie bestaat uit het voorbereiden van de Log Analytics-workspace die als bestemming zal dienen voor de audit logs. U kunt kiezen voor het creëren van een dedicated workspace specifiek voor SQL audit logs of het gebruik van een bestaande centrale security workspace. Voor het creëren van een nieuwe workspace navigeert u in Azure Portal naar Log Analytics workspaces en klikt u op Create. Geef de workspace een duidelijke naam zoals 'law-sql-audit-prod' die aangeeft dat dit specifiek voor productie SQL audit logs is. Selecteer dezelfde regio als waar uw SQL-servers zich bevinden om latentie te minimaliseren en kosten te optimaliseren. Plaats de workspace in een resource group die gericht is op security of databases, afhankelijk van uw organisatiestructuur.
Een kritieke configuratiestap is het instellen van de data retention. Navigeer naar de Log Analytics workspace, ga naar Usage and estimated costs en selecteer Data Retention. Stel minimaal 90 dagen in als operationele baseline, wat voldoende is voor recent incidentonderzoek en dagelijkse monitoring. Voor uitgebreide security investigations wordt 365 dagen aanbevolen, wat meer historische context biedt voor het analyseren van patronen en trends. Indien compliance-vereisten langetermijnbewaring verplicht stellen (zoals 7 jaar voor AVG of ISO 27001), moet u rekening houden met aanzienlijk hogere kosten. In dergelijke gevallen is het aan te raden om na 90 dagen logs automatisch te archiveren naar een Storage Account met Archive-tier, wat kostenefficiënter is voor langetermijnopslag.
Toegangscontrole is essentieel voor audit logs omdat deze gevoelige informatie bevatten over database-activiteiten. Alleen het security team, compliance officers en database administrators moeten audit logs kunnen lezen. Wijs de Azure RBAC-rol 'Log Analytics Reader' toe voor read-only toegang aan deze groepen. Dit voorkomt dat onbevoegde personen toegang krijgen tot audit logs terwijl het security team en compliance officers de informatie kunnen raadplegen die nodig is voor hun werkzaamheden. Als best practice wordt aanbevolen om een aparte workspace te gebruiken voor SQL audit logs versus application logs. Dit vereenvoudigt toegangscontrole omdat verschillende teams verschillende toegangsrechten nodig hebben, en het isoleert kosten zodat u precies kunt zien hoeveel de audit logging kost versus andere logtypes.
**FASE 2: SQL Auditing Inschakelen op SQL Server (Duur: 10 minuten per server)**
In de tweede fase activeert u SQL Auditing op serverniveau. Belangrijk om te begrijpen is dat auditing wordt geconfigureerd op het niveau van de SQL-server, niet op individuele databases. Deze server-level configuratie is automatisch van toepassing op alle databases binnen die server, wat de implementatie aanzienlijk vereenvoudigt. Navigeer in Azure Portal naar SQL Servers en selecteer de SQL-server waarop u auditing wilt inschakelen. Klik in het linkermenu onder Security op 'Auditing'. Dit opent de auditing-configuratiepagina waar u alle benodigde instellingen kunt configureren.
Schakel 'Enable Azure SQL Auditing' in door de schakelaar op ON te zetten. Vervolgens moet u de audit log bestemming configureren. Log Analytics wordt als primaire en aanbevolen optie gepresenteerd - selecteer de Log Analytics-workspace die u in Fase 1 heeft voorbereid. Audit logs worden real-time gestreamd naar deze workspace met een typische latentie van 1 tot 5 minuten, wat betekent dat gebeurtenissen vrijwel direct beschikbaar zijn voor query's en waarschuwingen. Als optionele aanvullende bestemming kunt u een Storage Account selecteren voor langetermijnarchivering, wat vooral relevant is wanneer compliance-vereisten 7 jaar of langer bewaarplicht verplicht stellen. Voor organisaties die gebruikmaken van een externe SIEM zoals Splunk of QRadar, kan Event Hub worden geconfigureerd als audit log bestemming om real-time streaming naar deze systemen mogelijk te maken.
Voor audit log categories is het cruciaal om ALLE categorieën te selecteren om uitgebreide logging te garanderen. BATCH_COMPLETED_GROUP logt alle uitgevoerde queries en statements, wat essentieel is voor het traceren van data access en het detecteren van verdachte querypatronen. SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP registreert alle succesvolle logins met gebruikersidentiteit, tijdstip en bron-IP, terwijl FAILED_DATABASE_AUTHENTICATION_GROUP mislukte loginpogingen vastlegt die kunnen wijzen op brute-force aanvallen. APPLICATION_ROLE_CHANGE_PASSWORD_GROUP monitort wijzigingen aan applicatierollen, DATABASE_OBJECT_CHANGE_GROUP logt alle schema-wijzigingen zoals CREATE, ALTER en DROP operaties, DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP registreert wijzigingen in objecteigendom, DATABASE_PERMISSION_CHANGE_GROUP logt alle machtigingswijzigingen zoals GRANT en REVOKE statements, DATABASE_PRINCIPAL_CHANGE_GROUP monitort gebruikersbeheer, en DATABASE_ROLE_MEMBER_CHANGE_GROUP registreert wijzigingen in roltoewijzingen. Door alle categorieën te selecteren, creëert u een complete audittrail die alle aspecten van database-activiteit dekt. Klik op 'Save' om de configuratie op te slaan - auditing is direct actief en alle database-gebeurtenissen worden nu gelogd.
**FASE 3: Audit Log Verificatie en Testen (Duur: 20 minuten)**
Na het inschakelen van auditing is het essentieel om te verifiëren dat logs daadwerkelijk worden gegenereerd en correct worden opgeslagen. Voer verschillende test database-activiteiten uit om te valideren dat alle gebeurtenistypen worden gelogd. Maak verbinding met de SQL Database via SQL Server Management Studio (SSMS) of Azure Data Studio. Voer enkele SELECT-queries uit om te testen of query-uitvoeringen worden gelogd. Maak een testtabel aan met een CREATE TABLE-statement om te verifiëren dat schema-wijzigingen worden vastgelegd. Verwijder vervolgens de testtabel met een DROP TABLE-statement om te controleren of destructieve operaties worden geregistreerd. Probeer ten slotte een mislukte authenticatie door een onjuist wachtwoord in te voeren, wat moet resulteren in een logentry voor een mislukte loginpoging.
Verifieer de logs in Log Analytics door te navigeren naar Azure Portal, de Log Analytics-workspace te openen en naar de Logs-blade te gaan. Voer de volgende KQL-query uit: AzureDiagnostics | where Category == 'SQLSecurityAuditEvents' | where TimeGenerated > ago(15m) | project TimeGenerated, event_time_s, statement_s, server_principal_name_s, client_ip_s | order by TimeGenerated desc. Deze query haalt alle SQL Security Audit Events op van de afgelopen 15 minuten en toont de tijdstempel, eventtijd, SQL-statement, gebruikersnaam en client-IP. De resultaten moeten alle testactiviteiten tonen die u zojuist heeft uitgevoerd, en deze moeten binnen 1 tot 5 minuten na de activiteit verschijnen vanwege de streaming latentie.
Als er geen logs verschijnen, zijn er verschillende mogelijke oorzaken. Wacht eerst 5 tot 10 minuten omdat er een initiële streamingvertraging kan zijn wanneer auditing voor het eerst wordt ingeschakeld. Verifieer dat Auditing daadwerkelijk is ingeschakeld op de SQL-server door terug te gaan naar de Auditing-configuratiepagina en te controleren of de schakelaar op ON staat. Controleer of de Log Analytics-workspace Resource ID correct is geconfigureerd in de audit configuratie. Als logs onvolledig zijn, verifieer dat ALLE auditcategorieën zijn geselecteerd in de configuratie. Controleer ook of er geen database-level auditing is geconfigureerd die de server-level configuratie overschrijft, wat kan leiden tot inconsistente logging.
**FASE 4: Beveiligingswaarschuwingen Configureren voor Kritieke Gebeurtenissen (Duur: 30 minuten)**
Het configureren van automatische waarschuwingen voor kritieke gebeurtenissen is essentieel om proactief te kunnen reageren op beveiligingsincidenten. De eerste waarschuwing die u moet configureren is voor mislukte authenticaties, wat kan wijzen op brute-force aanvallen. Navigeer in Log Analytics naar Alert rules en klik op New alert rule. Gebruik de volgende KQL-query: AzureDiagnostics | where Category == 'SQLSecurityAuditEvents' | where action_name_s == 'FAILED_DATABASE_AUTHENTICATION_GROUP' | summarize FailedLogins=count() by server_principal_name_s, bin(TimeGenerated, 5m) | where FailedLogins > 5. Deze query telt mislukte logins per gebruiker in tijdvensters van 5 minuten en triggert wanneer er meer dan 5 mislukte pogingen zijn. Stel de alertconditie in op 'When result count > 0' en configureer een actie die een e-mail verstuurt naar het security team voor onmiddellijke notificatie.
Configureer een tweede waarschuwing voor DROP TABLE-operaties, omdat deze kunnen wijzen op potentiële dataverlies of sabotage. Gebruik de query: AzureDiagnostics | where Category == 'SQLSecurityAuditEvents' | where statement_s contains 'DROP TABLE'. Deze query detecteert alle DROP TABLE-statements, wat cruciaal is omdat dergelijke operaties onomkeerbaar zijn en kunnen leiden tot permanent dataverlies. Stel de alert in voor onmiddellijke notificatie zodat het security team direct kan ingrijpen. Een derde waarschuwing moet worden geconfigureerd voor machtigingswijzigingen met de query: AzureDiagnostics | where Category == 'SQLSecurityAuditEvents' | where action_name_s contains 'PERMISSION_CHANGE'. Deze waarschuwing moet het DBA-team notificeren omdat onbevoegde machtigingswijzigingen kunnen leiden tot privilege escalation en ongeautoriseerde data access.
Ten slotte configureert u een waarschuwing voor database-toegang buiten kantooruren, wat kan wijzen op insider threats of gecompromitteerde accounts. Gebruik de query: AzureDiagnostics | where Category == 'SQLSecurityAuditEvents' | where hourofday(TimeGenerated) < 7 or hourofday(TimeGenerated) > 19. Deze query detecteert alle database-activiteiten vóór 7:00 uur of na 19:00 uur, wat buiten normale kantooruren valt. Hoewel sommige toegang buiten kantooruren legitiem kan zijn (bijvoorbeeld voor onderhoud of batchprocessen), kan ongebruikelijke toegang wijzen op insider threats waarbij medewerkers buiten werktijden gevoelige data proberen te benaderen of exporteren. Deze waarschuwing moet leiden tot een insider threat investigation waarbij het security team de activiteit analyseert om te bepalen of deze legitiem is of verdacht.
⏱️ **Totale Implementatietijd**: 1-2 uur (Log Analytics setup 15 min, SQL Auditing enable 10 min per server, verification 20 min, alerts 30 min).
💰 **Kosten**: Log Analytics-opname €2-5/database/maand (typische workload met matig queryvolume), Storage-archivering €0,50-1/database/maand voor 7-jaar bewaarplicht. Totaal: €2,50-6/database/maand.
Monitoring
Gebruik PowerShell-script sql-auditing-enabled.ps1 (functie Invoke-Monitoring) – Controleert SQL Auditing configuratie voor alle SQL servers.
Continue monitoring van SQL audit logs is essentieel om beveiligingsincidenten tijdig te detecteren en te reageren op verdachte activiteiten. De primaire monitoring vindt plaats via Log Analytics waar alle audit logs worden opgeslagen in de AzureDiagnostics-tabel met Category gelijk aan 'SQLSecurityAuditEvents'. Door regelmatig KQL-query's uit te voeren op deze tabel, kunnen security teams patronen identificeren, anomalieën detecteren en forensisch onderzoek uitvoeren na incidenten. De query's kunnen worden opgeslagen als saved queries voor herhaald gebruik en kunnen worden gevisualiseerd in Azure Dashboards voor real-time monitoring.
Automatische waarschuwingen moeten worden geconfigureerd voor kritieke gebeurtenissen die onmiddellijke aandacht vereisen. Een belangrijke waarschuwing is voor meer dan 5 mislukte logins binnen 5 minuten, wat kan wijzen op brute-force aanvallen waarbij aanvallers proberen wachtwoorden te raden. Deze waarschuwing moet direct het security team notificeren zodat zij kunnen ingrijpen door het betreffende account te blokkeren of aanvullende beveiligingsmaatregelen te nemen. Daarnaast moeten waarschuwingen worden geconfigureerd voor DROP TABLE- en TRUNCATE TABLE-commando's, omdat deze operaties onomkeerbaar zijn en kunnen leiden tot permanent gegevensverlies. Dergelijke operaties kunnen wijzen op sabotage, insider threats of gecompromitteerde accounts.
Machtigingswijzigingen via GRANT- en REVOKE-statements moeten ook worden gemonitord omdat onbevoegde wijzigingen kunnen leiden tot privilege escalation en ongeautoriseerde data access. Elke wijziging in database-machtigingen moet worden gereviewd om te verifiëren dat deze legitiem is en in overeenstemming met het least-privilege-principe. Wekelijkse reviews moeten worden uitgevoerd om ongebruikelijke querypatronen te identificeren, zoals bulk data exports, toegang tot gevoelige tabellen buiten normale werkpatronen, of queries die abnormaal veel data ophalen. Deze reviews helpen bij het detecteren van insider threats waarbij medewerkers systematisch gevoelige data kunnen exfiltreren.
Voor geavanceerde analytics en threat detection wordt integratie met Microsoft Sentinel sterk aanbevolen. Sentinel biedt geavanceerde machine learning-capaciteiten voor het detecteren van anomalieën, correlatie van gebeurtenissen tussen verschillende systemen, en geautomatiseerde incident response. Sentinel kan audit logs van SQL-databases combineren met logs van andere Azure-services, on-premises systemen en security tools om een holistisch beeld te krijgen van de beveiligingspostuur. Dit maakt het mogelijk om complexe aanvallen te detecteren die meerdere systemen omvatten, zoals lateral movement waarbij aanvallers van een gecompromitteerd account naar een database navigeren.
Compliance en Auditing
Azure SQL Auditing is een fundamentele vereiste voor naleving van vrijwel alle moderne security- en privacyframeworks die van toepassing zijn op Nederlandse overheidsorganisaties en bedrijven die persoonsgegevens verwerken. Het ontbreken van database auditing resulteert gegarandeerd in compliance-fouten tijdens audits, omdat auditors altijd uitgebreide audit logs vereisen als bewijs van adequate security controls. Deze sectie beschrijft de specifieke compliance-vereisten per framework en legt uit hoe SQL Auditing bijdraagt aan het voldoen aan deze verplichtingen.
De CIS Azure Foundations Benchmark v3.0.0 bevat control 4.1.1 die expliciet vereist dat SQL server auditing is ingeschakeld. Deze control is geclassificeerd als Level 1, wat betekent dat het een fundamentele security practice is die moet worden geïmplementeerd in alle omgevingen. Tijdens CIS-compliance-audits controleren auditors of auditing is ingeschakeld op alle SQL-servers en of logs correct worden opgeslagen en bewaard. Het niet voldoen aan deze control resulteert in een directe audit failure, wat betekent dat de organisatie niet kan claimen dat zij voldoet aan de CIS Azure Benchmark. Dit heeft niet alleen gevolgen voor de security-postuur, maar kan ook contractuele gevolgen hebben wanneer organisaties verplicht zijn om CIS-compliance aan te tonen aan klanten of partners.
ISO 27001:2022 controle A.12.4.1 vereist gebeurtenissen logging en audittrails voor alle systemen die kritieke informatie verwerken. Voor databases betekent dit dat alle database-activiteiten moeten worden gelogd, inclusief authenticatie-events, data access, schema-wijzigingen en machtigingswijzigingen. Tijdens ISO 27001-certificering audits moeten organisaties kunnen aantonen dat zij een complete audit trail hebben van alle database-activiteiten en dat deze logs worden bewaard volgens de vereiste bewaarperioden. Auditors zullen specifiek controleren of logs beschermd zijn tegen wijziging of verwijdering, of logs regelmatig worden gemonitord, en of logs beschikbaar zijn voor forensisch onderzoek. Het ontbreken van adequate audit logging is een van de meest voorkomende redenen voor ISO 27001-certificering failures.
De NIS2-richtlijn, die van toepassing is op kritieke entiteiten in Nederland, bevat in Artikel 21 specifieke verplichtingen voor logging en monitoring. Organisaties die onder NIS2 vallen moeten uitgebreide logging implementeren van alle security-relevante gebeurtenissen, inclusief database-activiteiten. De richtlijn vereist dat logs worden bewaard voor minimaal 12 maanden, hoewel langere bewaarperioden vaak worden aanbevolen voor forensisch onderzoek. NIS2-audits controleren of organisaties proactief monitoren op security-incidenten en of zij in staat zijn om snel te reageren op bedreigingen. Zonder adequate audit logging kunnen organisaties niet voldoen aan deze verplichtingen, wat kan leiden tot boetes en andere sancties van de toezichthouder.
De Algemene Verordening Gegevensbescherming (AVG), ook wel bekend als GDPR, bevat in Artikel 32 specifieke vereisten voor logging van data toegang. Dit artikel vereist dat organisaties passende technische en organisatorische maatregelen nemen om persoonsgegevens te beveiligen, en logging van data access is expliciet genoemd als een van deze maatregelen. Wanneer persoonsgegevens worden opgeslagen in SQL-databases, moeten organisaties kunnen aantonen wie toegang heeft gehad tot deze gegevens, wanneer, en vanuit welke locatie. Dit is essentieel voor het voldoen aan AVG-verzoeken zoals het inzagerecht (Artikel 15) en het recht op verwijdering (Artikel 17). Tijdens AVG-audits door de Autoriteit Persoonsgegevens controleren auditors of adequate logging is geïmplementeerd. Het ontbreken van audit logging kan worden beschouwd als een schending van Artikel 32, wat kan leiden tot boetes tot €20 miljoen of 4% van de wereldwijde jaaromzet, afhankelijk van welke hoger is.
PCI-DSS v4.0 Requirement 10.2 verplicht audit logs voor alle systemen die kaarthouderdata verwerken. Deze vereiste is bijzonder streng omdat creditcarddata zeer gevoelige informatie is die een hoog risico vormt voor identiteitsdiefstal en fraude. Requirement 10.2 vereist dat alle toegang tot kaarthouderdata wordt gelogd, inclusief wie toegang heeft gehad, wanneer, en welke data is benaderd. Tijdens PCI-DSS-audits controleren Qualified Security Assessors (QSA's) of audit logging correct is geconfigureerd en of logs worden bewaard voor minimaal 1 jaar, met minimaal 3 maanden onmiddellijk beschikbaar voor analyse. Het niet voldoen aan Requirement 10.2 resulteert in een directe PCI-DSS-compliance failure, wat betekent dat organisaties hun rechten verliezen om creditcardbetalingen te verwerken. Dit kan catastrofale gevolgen hebben voor e-commerce bedrijven en andere organisaties die afhankelijk zijn van creditcardtransacties.
De BIO Baseline Informatiebeveiliging Overheid bevat in Thema 12.04.01 specifieke vereisten voor logregistratie. Nederlandse overheidsorganisaties die onder de BIO vallen moeten uitgebreide logging implementeren van alle systemen, inclusief databases. De BIO vereist dat logs worden bewaard voor minimaal 7 jaar voor compliance-doeleinden, wat betekent dat organisaties een langetermijnarchiveringsstrategie moeten implementeren. Tijdens BIO-audits controleren auditors of logging correct is geconfigureerd, of logs worden bewaard volgens de vereiste bewaarperioden, en of logs worden gebruikt voor security monitoring en incident response. Het niet voldoen aan BIO-vereisten kan leiden tot negatieve audit-rapportages en kan gevolgen hebben voor de financiering en het vertrouwen van burgers in de overheidsorganisatie.
Naast deze specifieke framework-vereisten is audit logging ook essentieel voor het voldoen aan algemene governance- en accountability-vereisten. Organisaties moeten kunnen aantonen dat zij adequate controls hebben geïmplementeerd om data te beschermen, en audit logs vormen het primaire bewijs hiervan. Tijdens security-audits, compliance-audits en forensisch onderzoek zijn audit logs onmisbaar voor het reconstrueren van gebeurtenissen, het identificeren van verantwoordelijken, en het aantonen van due diligence. Zonder adequate audit logging kunnen organisaties niet voldoen aan deze fundamentele governance-vereisten, wat kan leiden tot juridische aansprakelijkheid, reputatieschade en verlies van vertrouwen van stakeholders.
Remediatie
Gebruik PowerShell-script sql-auditing-enabled.ps1 (functie Invoke-Remediation) – Schakelt SQL Auditing in voor alle SQL-servers naar Log Analytics-workspace.
Wanneer SQL Auditing niet is ingeschakeld op een Azure SQL-server, moet dit onmiddellijk worden hersteld omdat dit een kritieke beveiligings- en compliance-gap vertegenwoordigt. De remediatieprocedure begint met het identificeren van alle SQL-servers waarop auditing niet is geactiveerd. Dit kan worden gedaan via het PowerShell-script dat bij deze maatregel hoort, of handmatig via Azure Portal door elke SQL-server te controleren op de Auditing-configuratiepagina.
Voor elke SQL-server waarop auditing niet is ingeschakeld, volgt u de implementatieprocedure zoals beschreven in de Implementatie-sectie. Eerst moet een Log Analytics-workspace worden voorbereid of geïdentificeerd als bestemming voor de audit logs. Vervolgens activeert u auditing op serverniveau via Azure Portal of via het PowerShell-script voor geautomatiseerde implementatie over meerdere servers. Zorg ervoor dat alle auditcategorieën zijn geselecteerd om uitgebreide logging te garanderen, en configureer de juiste bewaarperioden volgens uw compliance-vereisten.
Na het inschakelen van auditing is het essentieel om te verifiëren dat logs daadwerkelijk worden gegenereerd. Voer testactiviteiten uit zoals beschreven in Fase 3 van de implementatieprocedure en verifieer dat deze activiteiten binnen 5 minuten verschijnen in Log Analytics. Configureer vervolgens de benodigde waarschuwingen voor kritieke gebeurtenissen zoals beschreven in Fase 4. Voor organisaties met meerdere SQL-servers wordt het gebruik van het PowerShell-script sterk aanbevolen voor geautomatiseerde remediatie, wat tijd bespaart en consistentie garandeert over alle servers.
Het is belangrijk om te erkennen dat het inschakelen van auditing geen historische logs genereert voor activiteiten die plaatsvonden vóór de activering. Dit betekent dat er een gap bestaat in de audittrail voor de periode waarin auditing niet was ingeschakeld. Voor compliance-doeleinden moet deze gap worden gedocumenteerd, en organisaties moeten kunnen aantonen dat auditing nu correct is geconfigureerd en actief is. Voor toekomstige audits en forensisch onderzoek zullen alleen logs beschikbaar zijn vanaf het moment dat auditing werd ingeschakeld, wat de urgentie benadrukt om auditing zo snel mogelijk te implementeren.
De remediatieprocedure vereist een systematische aanpak waarbij eerst wordt geïnventariseerd welke SQL-servers en databases momenteel zonder auditing opereren. Voor organisaties met meerdere abonnementen of resourcegroepen is het essentieel om een complete inventarisatie uit te voeren, omdat SQL-servers mogelijk verspreid zijn over verschillende omgevingen zoals productie, acceptatie en ontwikkeling. Het gebruik van Azure Resource Graph-queries of PowerShell-scripts maakt het mogelijk om alle SQL-servers in een organisatie te identificeren en te controleren op hun auditing-status. Deze inventarisatie moet niet alleen controleren of auditing is ingeschakeld, maar ook verifiëren of de configuratie correct is, of logs daadwerkelijk worden gegenereerd, en of de juiste auditcategorieën zijn geselecteerd. Servers waar auditing is ingeschakeld maar waar geen logs worden gegenereerd, vereisen eveneens remediatie omdat de configuratie mogelijk incorrect is of omdat er problemen zijn met de logbestemming.
Na identificatie van de servers die remediatie vereisen, moet worden bepaald welke logbestemming het meest geschikt is voor de organisatie. Voor de meeste organisaties is een Log Analytics-workspace de aanbevolen keuze omdat dit real-time waarschuwingen mogelijk maakt, geavanceerde KQL-query's ondersteunt, en integratie biedt met Azure Sentinel voor geavanceerde threat detection. Organisaties die al een centrale security-workspace hebben, kunnen deze gebruiken voor SQL audit logs, wat kostenbesparend is en centralisatie van security monitoring mogelijk maakt. Voor organisaties zonder bestaande Log Analytics-workspace moet eerst een nieuwe workspace worden gecreëerd, bij voorkeur in dezelfde Azure-regio als de SQL-servers om latentie te minimaliseren en kosten te optimaliseren. Als alternatief kan een Storage Account worden gebruikt voor langetermijnarchivering, wat vooral relevant is wanneer compliance-vereisten 7 jaar of langer bewaarplicht verplicht stellen. Voor optimale compliance wordt vaak een hybride aanpak gebruikt waarbij Log Analytics wordt gebruikt voor operationele monitoring en Storage Account voor langetermijnarchivering na 90 dagen.
De configuratie van auditcategorieën is cruciaal voor een complete audittrail die voldoet aan alle compliance-vereisten. Alle beschikbare categorieën moeten worden geselecteerd om uitgebreide logging te garanderen, omdat het achteraf toevoegen van categorieën betekent dat historische gebeurtenissen niet kunnen worden gereconstrueerd. BATCH_COMPLETED_GROUP is essentieel voor het loggen van alle query-uitvoeringen, wat nodig is voor het traceren van data access en het detecteren van verdachte querypatronen die kunnen wijzen op insider threats of gecompromitteerde accounts. SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP en FAILED_DATABASE_AUTHENTICATION_GROUP zijn beide vereist voor complete authenticatielogging, waarbij mislukte pogingen kunnen wijzen op brute-force aanvallen waarbij aanvallers proberen wachtwoorden te raden. Schema-wijzigingen worden vastgelegd via DATABASE_OBJECT_CHANGE_GROUP, wat alle CREATE, ALTER en DROP operaties omvat, terwijl DATABASE_PERMISSION_CHANGE_GROUP alle machtigingswijzigingen logt zoals GRANT en REVOKE statements die kunnen leiden tot privilege escalation. Door alle categorieën te selecteren, creëert u een complete audittrail die alle aspecten van database-activiteit dekt en voldoet aan de vereisten van compliance-frameworks zoals AVG, ISO 27001, PCI-DSS en NIS2.
De bewaartermijn voor audit logs moet worden afgestemd op zowel operationele behoeften als compliance-vereisten. Voor operationele doeleinden zoals recent incidentonderzoek en dagelijkse monitoring is een bewaartermijn van 90 dagen in Log Analytics voldoende. Voor uitgebreide security investigations wordt 365 dagen aanbevolen, wat meer historische context biedt voor het analyseren van patronen en trends die kunnen wijzen op langdurige aanvallen of insider threats. Wanneer compliance-vereisten langetermijnbewaring verplicht stellen, zoals 7 jaar voor AVG of ISO 27001, moet rekening worden gehouden met aanzienlijk hogere kosten voor Log Analytics. In dergelijke gevallen is het aan te raden om na 90 dagen logs automatisch te archiveren naar een Storage Account met Archive-tier, wat kostenefficiënter is voor langetermijnopslag. De configuratie van automatische archivering kan worden geautomatiseerd via Azure Automation of Logic Apps, waarbij logs na de operationele bewaartermijn worden verplaatst naar goedkopere storage tiers zonder verlies van data of compliance-vereisten.
Na het inschakelen van auditing is uitgebreide verificatie essentieel om te garanderen dat logs daadwerkelijk worden gegenereerd en correct worden opgeslagen. Testactiviteiten moeten worden uitgevoerd die alle belangrijke gebeurtenistypen dekken, inclusief succesvolle en mislukte authenticatiepogingen, query-uitvoeringen met verschillende complexiteit, schema-wijzigingen zoals het aanmaken en verwijderen van tabellen, en machtigingswijzigingen zoals GRANT en REVOKE statements. Verificatie in Log Analytics moet plaatsvinden binnen 5 tot 10 minuten na de testactiviteiten, omdat audit logs real-time worden gestreamd met een typische latentie van 1 tot 5 minuten. Als logs niet verschijnen, moeten mogelijke oorzaken worden onderzocht zoals incorrecte configuratie van de logbestemming waarbij de Resource ID van de Log Analytics-workspace mogelijk onjuist is ingevoerd, ontbrekende auditcategorieën waardoor bepaalde gebeurtenistypen niet worden gelogd, of problemen met de Log Analytics-workspace integratie zoals ontbrekende RBAC-rechten of netwerkconnectiviteitsproblemen. Automatische waarschuwingen moeten worden geconfigureerd voor kritieke gebeurtenissen zoals brute-force pogingen waarbij meer dan 5 mislukte logins binnen 5 minuten plaatsvinden, destructieve operaties zoals DROP TABLE of TRUNCATE TABLE statements die kunnen leiden tot permanent dataverlies, of onbevoegde machtigingswijzigingen die kunnen wijzen op privilege escalation pogingen, zodat het security team proactief kan reageren op beveiligingsincidenten voordat deze escaleren tot volledige datalekken.
Voor organisaties met meerdere SQL-servers is geautomatiseerde remediatie via PowerShell of Azure Policy sterk aanbevolen om consistentie te garanderen en handmatige fouten te voorkomen. Het PowerShell-script kan worden uitgevoerd tegen alle SQL-servers in een abonnement of resourcegroep, waarbij auditing wordt ingeschakeld met dezelfde configuratie voor alle servers. Dit zorgt ervoor dat er geen servers worden gemist en dat alle databases dezelfde auditstandaarden hebben, wat essentieel is voor compliance-audits waarbij auditors verwachten dat alle productiedatabases dezelfde beveiligingsmaatregelen hebben. Azure Policy kan worden gebruikt om te garanderen dat nieuwe SQL-servers automatisch auditing hebben ingeschakeld, wat voorkomt dat de compliance-gap opnieuw ontstaat wanneer nieuwe resources worden gecreëerd door development teams of wanneer databases worden gemigreerd naar nieuwe servers. Na implementatie moet regelmatige monitoring worden ingesteld om te verifiëren dat auditing actief blijft en dat logs correct worden gegenereerd, omdat configuratiewijzigingen of resource-migraties kunnen leiden tot onbedoelde uitschakeling van auditing. Maandelijkse compliance-scans moeten worden uitgevoerd om te detecteren of er nieuwe SQL-servers zijn gecreëerd zonder auditing, of of bestaande servers auditing hebben uitgeschakeld, zodat deze onmiddellijk kunnen worden gerepareerd voordat compliance-audits falen.
Compliance & Frameworks
- CIS M365: Control 4.1.1 (L1) - CIS Azure Foundations v3.0.0 - 4.1.1: Zorg ervoor dat SQL server auditing is ingeschakeld
- BIO: 12.04.01, 12.04.03 - BIO Baseline Informatiebeveiliging Overheid - Thema 12: Logregistratie en monitoring van database events
- ISO 27001:2022: A.12.4.1 - Gebeurtenissen logging en audittrails - Database audittrail
- NIS2: Artikel - Logging en monitoring - Database activity logging
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).
Risico zonder implementatie
Management Samenvatting
SQL Auditing voor Azure SQL Database creëert uitgebreide audittrails van alle database-activiteiten door gebeurtenissen te loggen naar Azure Log Analytics-workspace of Storage Account. Auditing logt: alle authenticatiegebeurtenissen (succesvolle/mislukte logins, gebruikersidentiteit, bron-IP, tijdstempel), database schema-wijzigingen (CREATE/ALTER/DROP TABLE, stored procedure-wijzigingen, machtigingswijzigingen), data access queries (SELECT-statements met querytekst, benaderde tabellen, gebruikerscontext), datawijzigingsoperaties (INSERT/UPDATE/DELETE met aantal betrokken rijen), administratieve acties (databaseconfiguratiewijzigingen, backup-operaties, gebruikersbeheer), machtigingswijzigingen (GRANT/REVOKE, roltoewijzingen, beveiligingsbeleidswijzigingen). Audit logs worden real-time gestreamd naar: Log Analytics-workspace (aanbevolen - maakt KQL-queries mogelijk, waarschuwingen, dashboards, integratie met Azure Sentinel), Azure Storage Account (langetermijnarchivering voor 7+ jaar compliance-bewaring, kostenefficiënt), Event Hub (real-time streaming naar externe SIEM zoals Splunk). Audit log-analyse maakt mogelijk: forensisch onderzoek na beveiligingsincidenten waarbij complete activiteitsreconstructie mogelijk is, insider threat detection door abnormale toegangspatronen te identificeren (bulk-exporten, toegang buiten kantooruren, onbevoegde tabeltoegang), compliance audit-succes door auditors uitgebreide logs te kunnen tonen, troubleshooting van applicatieproblemen via queryprestatieanalyse. Deze maatregel is absoluut verplicht voor alle Azure SQL-productiedatabases zonder uitzonderingen, verplicht voor compliance met AVG Artikel 30, PCI-DSS Requirement 10, ISO 27001 A.12.4.1, CIS 4.1.1, NIS2 Artikel 21, en wordt beschouwd als fundamentele beveiligingscontrole door NIST CSF (Detect/Respond-functies). Implementatie: Azure Portal → SQL Server → Auditing → Enable Azure SQL Auditing → Bestemming: Log Analytics-workspace → Audit log-categorieën: SELECT ALL (SQLSecurityAuditEvents), Bewaring: 90 dagen minimum in Log Analytics (operationeel), 7 jaar in Storage voor compliance-archief. Kosten: Log Analytics-opname €2-5/database/maand voor typische workloads (varieert met queryvolume), Storage-archivering €0,50-1/database/maand voor langetermijnbewaring. Return on investment komt van: compliance audit-succes (AVG/PCI-DSS/ISO 27001-vereisten), voorkomen van regelgevende boetes (€20M AVG, verlies van payment processing rechten PCI-DSS), forensische capaciteiten die incidentonderzoektijd met 80 procent reduceren, en insider threat detection.
- Implementatietijd: 2 uur
- FTE required: 0.02 FTE