File Integrity Monitoring (FIM) Ingeschakeld

💼 Management Samenvatting

File Integrity Monitoring (FIM) via Azure Change Tracking detecteert onbevoegde bestandswijzigingen, registeraanpassingen en software-installaties op virtuele machines om backdoors, rootkits en configuratiewijzigingen te identificeren.

Aanbeveling
IMPLEMENTEER VOOR COMPLIANCE WORKLOADS
Risico zonder
Medium
Risk Score
7/10
Implementatie
6u (tech: 4u)
Van toepassing op:
Azure Virtuele Machines
Azure Arc Servers

Aanvallers wijzigen vaak kritieke systeembestanden om persistentie te behouden na een initiële compromittering. Deze technieken omvatten het vervangen van systeembestanden door versies met backdoors (DLL-hijacking), het aanpassen van registerkeys voor automatische opstart (Run-keys), het installeren van rootkits voor stealth-operaties, het manipuleren van beveiligingssoftwareconfiguraties, het wijzigen van firewallregels en het aanpassen van auditlogs om sporen uit te wissen. Zonder File Integrity Monitoring blijven deze wijzigingen onopgemerkt totdat de schade is aangericht. FIM detecteert onbevoegde uitvoerbare bestanden in systeemmappen, wijzigingen aan opstartitems, aanpassingen aan beveiligingshulpprogramma's, registermachtigingswijzigingen en verdachte bestandsbewerkingen. Voor Nederlandse overheidsorganisaties is dit van cruciaal belang omdat aanvallers vaak proberen langdurige toegang te behouden door systeembestanden te manipuleren, wat kan leiden tot datalekken, compliance-overtredingen en reputatieschade.

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

Implementatie

Deze controle verifieert dat File Integrity Monitoring is ingeschakeld via de Azure Change Tracking-oplossing, die onderdeel uitmaakt van Azure Automation. FIM bewaakt kritieke Windows-systeemmappen zoals System32, Windows en Program Files, Linux-systeempaden zoals /etc, /usr/bin en /lib, Windows-registerkeys zoals Run, Services en beleidsregels, software-inventariswijzigingen en daemon- of serviceconfiguraties. Change Tracking logt alle wijzigingen naar een Log Analytics-werkruimte voor analyse en waarschuwingen. Voor de werking is de Log Analytics-agent vereist op virtuele machines. De kosten bedragen ongeveer twee tot vijf euro per server per maand voor werkruimtegegevensopname.

Vereisten

Voor de implementatie van File Integrity Monitoring via Azure Change Tracking zijn verschillende technische en organisatorische vereisten noodzakelijk. Deze vereisten zorgen ervoor dat de oplossing correct functioneert en voldoet aan de beveiligings- en compliance-eisen van Nederlandse overheidsorganisaties.

De primaire technische vereiste betreft de aanwezigheid van Azure Virtual Machines of Azure Arc-servers die bewaakt moeten worden. Deze virtuele machines kunnen zowel Windows- als Linux-besturingssystemen draaien, waarbij Change Tracking ondersteuning biedt voor beide platformen. Voor Windows-systemen worden standaard kritieke mappen zoals System32, Windows en Program Files bewaakt, terwijl voor Linux-systemen paden zoals /etc, /usr/bin en /lib worden gecontroleerd.

Voor het beheer en de implementatie van Change Tracking is PowerShell versie 5.1 of hoger vereist. Daarnaast moeten specifieke Azure PowerShell-modules zijn geïnstalleerd: Az.Accounts voor authenticatie en accountbeheer, Az.Security voor beveiligingsconfiguraties en Az.OperationalInsights voor interactie met Log Analytics-werkruimten. Deze modules kunnen worden geïnstalleerd via de PowerShell Gallery met behulp van de Install-Module-cmdlet.

Een Log Analytics-werkruimte is essentieel voor het opslaan en analyseren van de wijzigingsgegevens die door Change Tracking worden verzameld. Deze werkruimte moet worden geconfigureerd met een geschikte retentieperiode, waarbij voor compliance-doeleinden vaak een retentie van minimaal zeven jaar wordt aanbevolen. De werkruimte kan worden gekoppeld aan meerdere abonnementen en virtuele machines, wat centrale monitoring mogelijk maakt.

Een Azure Automation-account is vereist voor het inschakelen van de Change Tracking-oplossing. Dit account moet worden gekoppeld aan de Log Analytics-werkruimte en biedt de mogelijkheid om Change Tracking in te schakelen op workspace-niveau of per machine. Het Automation-account fungeert als de orchestrator voor het verzamelen en verwerken van wijzigingsgegevens.

De Change Tracking-oplossing moet expliciet worden ingeschakeld in het Azure Automation-account. Dit kan worden gedaan via de Azure-portal, Azure PowerShell of Azure Resource Manager-sjablonen. Na activering begint het systeem automatisch met het monitoren van geconfigureerde bestanden en registerkeys op virtuele machines waar de Log Analytics-agent is geïnstalleerd.

De Log Analytics-agent, ook wel bekend als de Microsoft Monitoring Agent (MMA) of de Azure Monitor-agent (AMA), moet worden geïnstalleerd op alle virtuele machines die moeten worden bewaakt. Deze agent verzamelt wijzigingsgegevens en stuurt deze naar de Log Analytics-werkruimte. Voor nieuwe implementaties wordt de Azure Monitor-agent aanbevolen, terwijl bestaande omgevingen mogelijk nog de legacy Microsoft Monitoring Agent gebruiken.

Vanuit budgetperspectief moeten organisaties rekening houden met de kosten voor gegevensopname in de Log Analytics-werkruimte. Deze kosten bedragen doorgaans tussen de twee en vijf euro per server per maand, afhankelijk van het aantal wijzigingen dat wordt gedetecteerd en de hoeveelheid gegevens die wordt verzameld. Voor grote omgevingen met honderden virtuele machines kan dit aanzienlijke kosten met zich meebrengen, maar deze investering is essentieel voor compliance met normen zoals CIS Azure Foundations Benchmark en PCI-DSS.

Naast technische vereisten zijn ook organisatorische aspecten belangrijk. IT-beheerders moeten worden getraind in het interpreteren van Change Tracking-rapporten en het reageren op waarschuwingen. Procedures moeten worden ontwikkeld voor het onderscheiden van legitieme wijzigingen (zoals software-updates en patches) en verdachte activiteiten. Daarnaast moet er een proces zijn voor het regelmatig reviewen van wijzigingsrapporten en het bijwerken van baselineconfiguraties.

Implementatie

De implementatie van File Integrity Monitoring via Azure Change Tracking vereist een gestructureerde aanpak waarbij verschillende stappen in de juiste volgorde worden uitgevoerd. Deze implementatie kan worden uitgevoerd via de Azure-portal, Azure PowerShell of Infrastructure as Code-tools zoals Azure Resource Manager-sjablonen of Terraform.

De eerste stap in het implementatieproces is het aanmaken van een Log Analytics-werkruimte, indien deze nog niet bestaat. Deze werkruimte dient als centrale opslaglocatie voor alle wijzigingsgegevens die door Change Tracking worden verzameld. Bij het aanmaken van de werkruimte moeten organisaties aandacht besteden aan de locatie waar de gegevens worden opgeslagen, waarbij voor Nederlandse overheidsorganisaties vaak wordt gekozen voor West-Europa of Noord-Europa om te voldoen aan gegevensresidencie-eisen. De werkruimte moet worden geconfigureerd met een passende prijscategorie, waarbij de betalingscategorie per GB vaak geschikt is voor de meeste omgevingen.

Vervolgens moet een Azure Automation-account worden aangemaakt en gekoppeld aan de Log Analytics-werkruimte. Dit Automation-account fungeert als de orchestrator voor Change Tracking en maakt het mogelijk om de oplossing centraal te beheren. Tijdens het aanmaken van het Automation-account moet worden gekozen voor een Run As-account, dat wordt gebruikt voor authenticatie bij Azure-resources. Het Automation-account moet expliciet worden gekoppeld aan de eerder aangemaakte Log Analytics-werkruimte via de instellingen in de Azure-portal.

Na het aanmaken en koppelen van het Automation-account moet de Change Tracking-oplossing expliciet worden ingeschakeld. Dit kan worden gedaan via de Azure-portal door naar het Automation-account te navigeren, de optie Change Tracking en Inventory te selecteren en de oplossing te activeren. Alternatief kan dit worden uitgevoerd via Azure PowerShell met behulp van de Set-AzOperationalInsightsIntelligencePack-cmdlet of via Azure Resource Manager-sjablonen voor geautomatiseerde implementaties.

Een kritieke stap in het implementatieproces is het implementeren van de Log Analytics-agent op alle virtuele machines die moeten worden bewaakt. Dit kan handmatig worden gedaan, maar voor grote omgevingen wordt sterk aanbevolen om Azure Policy te gebruiken voor geautomatiseerde implementatie. Er zijn ingebouwde Azure Policy-definities beschikbaar die automatisch de Log Analytics-agent installeren op nieuwe en bestaande virtuele machines. Deze policies kunnen worden toegewezen op abonnements- of resourcegroepniveau en zorgen ervoor dat alle virtuele machines automatisch worden bewaakt zodra ze worden aangemaakt.

Na de installatie van de agent moeten de te monitoren bestands- en registerpaden worden geconfigureerd. Change Tracking bevat standaardconfiguraties voor kritieke Windows-systeemmappen zoals System32, Windows en Program Files, en voor Linux-systeempaden zoals /etc, /usr/bin en /lib. Organisaties kunnen echter aanvullende paden toevoegen voor applicatiespecifieke bestanden of aangepaste configuratiebestanden. Voor Windows-systemen kunnen ook specifieke registerkeys worden toegevoegd aan de monitoring, zoals Run-keys, Services en beleidsregels die vaak worden gebruikt voor persistentie door aanvallers.

De frequentie van wijzigingscontroles kan worden geconfigureerd, waarbij de standaardwaarde vijftien minuten is. Deze frequentie bepaalt hoe vaak het systeem controleert op wijzigingen in de geconfigureerde bestanden en registerkeys. Voor kritieke systemen kan een hogere frequentie worden ingesteld, hoewel dit meer gegevens genereert en hogere kosten met zich meebrengt. Voor minder kritieke systemen kan een lagere frequentie worden gebruikt om kosten te besparen.

Voor effectieve monitoring moeten waarschuwingen worden geconfigureerd in Log Analytics voor kritieke bestandswijzigingen. Deze waarschuwingen kunnen worden ingesteld op basis van KQL-query's die specifieke wijzigingen detecteren, zoals wijzigingen aan systeembestanden, installaties van nieuwe software of aanpassingen aan registerkeys. Waarschuwingen kunnen worden geconfigureerd om e-mailmeldingen te versturen, webhooks te activeren of te integreren met Microsoft Sentinel voor geavanceerde security orchestration.

Voor uitgebreide monitoring en security orchestration wordt aanbevolen om Change Tracking te integreren met Microsoft Sentinel, de cloud-native SIEM-oplossing van Microsoft. Deze integratie maakt gecentraliseerde monitoring mogelijk, geavanceerde threat detection en geautomatiseerde respons op beveiligingsincidenten. Sentinel kan Change Tracking-gegevens combineren met andere beveiligingssignalen om complexe aanvalspatronen te detecteren en automatische responsacties te triggeren.

Na de implementatie is het belangrijk om een baseline te creëren van verwachte wijzigingen, zoals regelmatige software-updates, patches en geplande configuratiewijzigingen. Deze baseline helpt bij het onderscheiden van legitieme wijzigingen en verdachte activiteiten. Regelmatige reviews van wijzigingsrapporten moeten worden uitgevoerd om de effectiviteit van de monitoring te waarborgen en om te zorgen dat alle kritieke systemen correct worden bewaakt.

Monitoring

Gebruik PowerShell-script file-integrity-monitoring-on.ps1 (functie Invoke-Monitoring) – Controleert de implementatiestatus van de Change Tracking-oplossing per abonnement en werkruimte.

Effectieve monitoring van File Integrity Monitoring vereist een gestructureerde aanpak waarbij verschillende tools en technieken worden gebruikt om wijzigingen te detecteren, te analyseren en erop te reageren. De monitoring moet worden uitgevoerd op meerdere niveaus: technisch om de werking van het systeem te waarborgen, operationeel om wijzigingen te detecteren en te analyseren, en strategisch om trends en patronen te identificeren.

Het primaire dashboard voor het monitoren van Change Tracking is beschikbaar in Azure Automation. Dit dashboard biedt een overzichtelijke interface waar alle bestands- en registerwijzigingen worden weergegeven, gegroepeerd per machine, type wijziging en tijdsperiode. Het dashboard toont wijzigingen aan bestanden in systeemmappen, aanpassingen aan registerkeys, software-installaties en -verwijderingen, en wijzigingen aan services en daemons. Beheerders kunnen filteren op verschillende criteria, zoals machine, type wijziging, tijdsperiode en bestandspad, om specifieke wijzigingen te vinden.

Voor geavanceerde analyse en query's kan Log Analytics worden gebruikt, waarbij de ChangeTrackingResources-tabel wordt bevraagd met KQL (Kusto Query Language). Deze tabel bevat gedetailleerde informatie over alle wijzigingen die zijn gedetecteerd, inclusief timestamps, machine-informatie, bestandspaden, wijzigingstypen en aanvullende metadata. Met KQL-query's kunnen beheerders complexe analyses uitvoeren, zoals het identificeren van wijzigingspatronen, het correleren van wijzigingen met andere beveiligingsgebeurtenissen, en het genereren van aangepaste rapporten voor compliance-doeleinden.

Een kritiek aspect van de monitoring is het instellen van waarschuwingen voor kritieke systeembestandswijzigingen. Deze waarschuwingen moeten worden geconfigureerd om te detecteren wanneer bestanden in kritieke systeemmappen worden gewijzigd, wanneer nieuwe software wordt geïnstalleerd zonder autorisatie, of wanneer registerkeys worden aangepast die vaak worden gebruikt voor persistentie door aanvallers. Waarschuwingen kunnen worden ingesteld met verschillende prioriteitsniveaus, waarbij kritieke wijzigingen onmiddellijk worden gemeld via e-mail, SMS of integratie met incident response-systemen.

Regelmatige wekelijkse reviews van software-installatiewijzigingen zijn essentieel voor het identificeren van onbevoegde software-installaties en het waarborgen van compliance met softwarebeleid. Tijdens deze reviews moeten beheerders alle nieuwe software-installaties analyseren, verifiëren dat deze zijn geautoriseerd en voldoen aan het softwarebeleid van de organisatie, en actie ondernemen bij onbevoegde installaties. Deze reviews moeten worden gedocumenteerd voor audit-doeleinden en kunnen worden gebruikt om trends te identificeren en het softwarebeleid te verbeteren.

Het creëren en onderhouden van een baseline van verwachte wijzigingen is cruciaal voor het onderscheiden van legitieme wijzigingen en verdachte activiteiten. Deze baseline moet informatie bevatten over regelmatige software-updates, patches, geplande configuratiewijzigingen en andere legitieme wijzigingen die regelmatig voorkomen. Wanneer wijzigingen worden gedetecteerd die overeenkomen met de baseline, kunnen deze worden gemarkeerd als verwacht en vereisen ze geen verdere actie. Wijzigingen die niet in de baseline voorkomen, moeten worden onderzocht om te bepalen of ze legitiem of verdacht zijn.

Voor Nederlandse overheidsorganisaties is het belangrijk om monitoring te integreren met compliance-rapportage. Change Tracking-gegevens moeten regelmatig worden geëxporteerd en geanalyseerd om te voldoen aan auditvereisten van normen zoals ISO 27001, NIS2 en de BIO. Deze rapportage moet aantonen dat File Integrity Monitoring actief is, dat wijzigingen worden gedetecteerd en geanalyseerd, en dat passende acties worden ondernomen bij verdachte activiteiten. De rapportage moet worden opgeslagen voor de vereiste retentieperiode, die vaak minimaal zeven jaar bedraagt voor compliance-doeleinden.

Geavanceerde monitoring kan worden uitgevoerd door Change Tracking te integreren met Microsoft Sentinel, wat geavanceerde threat detection en security orchestration mogelijk maakt. Sentinel kan Change Tracking-gegevens combineren met andere beveiligingssignalen, zoals Azure Defender-waarschuwingen, identiteitsgebeurtenissen en netwerkactiviteit, om complexe aanvalspatronen te detecteren. Sentinel kan ook geautomatiseerde responsacties triggeren, zoals het isoleren van gecompromitteerde machines of het blokkeren van verdachte IP-adressen.

Remediatie

Gebruik PowerShell-script file-integrity-monitoring-on.ps1 (functie Invoke-Remediation) – Activeert Change Tracking (FIM) op een bestaande Log Analytics-werkruimte per abonnement.

Remediatie voor File Integrity Monitoring omvat het inschakelen en configureren van Change Tracking op bestaande Azure-omgevingen waar deze functionaliteit nog niet is geactiveerd. Het remediatieproces moet worden uitgevoerd volgens een gestructureerde aanpak om te zorgen dat alle kritieke systemen worden bewaakt en dat de oplossing correct is geconfigureerd voor de specifieke behoeften van de organisatie.

De eerste stap in het remediatieproces is het koppelen van ten minste één Log Analytics-werkruimte aan ieder Azure-abonnement dat virtuele machines bevat die moeten worden bewaakt. Deze koppeling kan worden gemaakt via de Azure-portal door naar het abonnement te navigeren en de werkruimte te selecteren in de instellingen, of via Azure Policy om automatisch werkruimten te koppelen aan nieuwe en bestaande abonnementen. Het is belangrijk om te zorgen dat de werkruimte zich in de juiste geografische regio bevindt om te voldoen aan gegevensresidencie-eisen, en dat de werkruimte is geconfigureerd met een passende retentieperiode voor compliance-doeleinden.

Na het koppelen van de werkruimte moet het ChangeTracking Intelligence Pack worden ingeschakeld voor de geselecteerde werkruimte. Dit Intelligence Pack bevat de benodigde oplossingscomponenten voor Change Tracking en maakt het mogelijk om wijzigingen te detecteren en te loggen. Het Intelligence Pack kan worden ingeschakeld via de Azure-portal door naar de Log Analytics-werkruimte te navigeren, de optie Oplossingen te selecteren en het ChangeTracking Intelligence Pack toe te voegen. Alternatief kan dit worden gedaan via Azure PowerShell of Azure Resource Manager-sjablonen voor geautomatiseerde implementaties.

Een kritieke stap in het remediatieproces is het implementeren van de Log Analytics-agent of Azure Monitor-agent op alle virtuele machines die moeten worden bewaakt. Voor nieuwe implementaties wordt sterk aanbevolen om de Azure Monitor-agent te gebruiken, die modernere functionaliteit biedt en beter is geïntegreerd met Azure-services. De implementatie kan handmatig worden uitgevoerd, maar voor grote omgevingen wordt sterk aanbevolen om Azure Policy te gebruiken voor geautomatiseerde implementatie. Er zijn ingebouwde Azure Policy-definities beschikbaar die automatisch de agent installeren op nieuwe en bestaande virtuele machines, wat zorgt voor consistente implementatie en vermindert de kans op gemiste machines.

Voor organisaties met high-risk applicaties of aangepaste configuraties moeten aanvullende bestandspaden en registerkeys worden gedefinieerd voor monitoring. Deze aanvullende configuraties kunnen worden toegevoegd via de Azure-portal in de Change Tracking-configuratie, of via Azure PowerShell voor geautomatiseerde configuratie. Het is belangrijk om te zorgen dat alle kritieke applicatiebestanden, configuratiebestanden en registerkeys worden bewaakt die relevant zijn voor de beveiliging van de organisatie. Regelmatige reviews van de monitoringconfiguratie moeten worden uitgevoerd om te zorgen dat nieuwe applicaties en configuraties worden toegevoegd aan de monitoring.

Voor effectieve detectie en respons moeten waarschuwingen worden geconfigureerd in Log Analytics of Microsoft Sentinel voor kritieke wijzigingen. Deze waarschuwingen moeten worden ingesteld om te detecteren wanneer bestanden in kritieke systeemmappen worden gewijzigd, wanneer nieuwe software wordt geïnstalleerd zonder autorisatie, of wanneer registerkeys worden aangepast die vaak worden gebruikt voor persistentie. Waarschuwingen moeten worden geconfigureerd met passende prioriteitsniveaus en moeten worden geïntegreerd met incident response-processen om te zorgen dat verdachte activiteiten snel worden onderzocht en aangepakt.

Na de remediatie is het belangrijk om de implementatie te valideren door te verifiëren dat Change Tracking actief is op alle kritieke virtuele machines, dat wijzigingen correct worden gedetecteerd en gelogd, en dat waarschuwingen correct functioneren. Deze validatie moet worden uitgevoerd door testwijzigingen aan te brengen aan gecontroleerde bestanden en te verifiëren dat deze worden gedetecteerd en gelogd. Regelmatige audits moeten worden uitgevoerd om te zorgen dat de implementatie blijft voldoen aan de beveiligings- en compliance-eisen van de organisatie.

Compliance en Auditing

File Integrity Monitoring is een essentiële controle voor compliance met verschillende beveiligingsnormen en frameworks die worden gebruikt door Nederlandse overheidsorganisaties. De implementatie van FIM helpt organisaties te voldoen aan vereisten voor het monitoren van systeemwijzigingen, het detecteren van onbevoegde aanpassingen en het waarborgen van de integriteit van kritieke systemen.

De CIS Azure Foundations Benchmark versie 3.0.0 bevat controle 2.1.18, die expliciet vereist dat File Integrity Monitoring is ingeschakeld. Deze controle is geclassificeerd als Level 2, wat betekent dat deze wordt aanbevolen voor omgevingen met verhoogde beveiligingsvereisten. De controle vereist dat organisaties een mechanisme hebben om wijzigingen aan kritieke systeembestanden, configuratiebestanden en registerkeys te detecteren en te loggen. Azure Change Tracking voldoet aan deze vereiste door automatisch wijzigingen te detecteren en te loggen naar een Log Analytics-werkruimte, waar deze kunnen worden geanalyseerd en gemonitord.

Voor organisaties die werken met betalingsgegevens is PCI-DSS Requirement 11.5 van toepassing, die vereist dat File Integrity Monitoring wordt geïmplementeerd om wijzigingen aan kritieke bestanden te detecteren. Deze vereiste is verplicht voor alle organisaties die in scope zijn van PCI-DSS en moet worden geïmplementeerd op alle systemen die betalingsgegevens verwerken, opslaan of verzenden. De vereiste specificeert dat monitoring moet worden uitgevoerd op kritieke bestanden, dat wijzigingen moeten worden gelogd, en dat waarschuwingen moeten worden geconfigureerd voor verdachte activiteiten. Azure Change Tracking voldoet aan deze vereisten door uitgebreide monitoring te bieden van bestanden, registerkeys en software-installaties, met geavanceerde logging en waarschuwingsmogelijkheden.

ISO 27001 controle A.12.4.1 vereist dat organisaties gebeurtenissen loggen en audittrails onderhouden voor alle relevante beveiligingsgebeurtenissen. File Integrity Monitoring draagt bij aan deze vereiste door wijzigingen aan kritieke systeembestanden en configuraties te loggen, wat essentieel is voor het detecteren van beveiligingsincidenten en het uitvoeren van forensische analyses. De controle vereist dat logs worden beschermd tegen wijziging en verwijdering, wat wordt gewaarborgd door de logging naar een gecentraliseerde Log Analytics-werkruimte met passende toegangscontroles en retentie-instellingen.

De NIS2-richtlijn, die van toepassing is op essentiële en belangrijke entiteiten in de Europese Unie, bevat in Artikel 21 vereisten voor cybersecurity risicobeheer en system integrity monitoring. Nederlandse overheidsorganisaties die onder de NIS2-richtlijn vallen moeten passende maatregelen implementeren om de integriteit van hun systemen te waarborgen en wijzigingen te detecteren die kunnen wijzen op beveiligingsincidenten. File Integrity Monitoring via Azure Change Tracking voldoet aan deze vereisten door continue monitoring te bieden van kritieke systeembestanden en configuraties, met geavanceerde detectie- en waarschuwingsmogelijkheden.

Voor Nederlandse overheidsorganisaties is ook de Baseline Informatiebeveiliging Overheid (BIO) van toepassing, die specifieke vereisten bevat voor het monitoren en beveiligen van systeembestanden. De BIO vereist dat organisaties passende maatregelen implementeren om de integriteit van kritieke systemen te waarborgen en wijzigingen te detecteren die kunnen wijzen op beveiligingsincidenten. File Integrity Monitoring is een essentiële controle voor het voldoen aan deze vereisten en helpt organisaties te voldoen aan de BIO-normen voor systeembeveiliging.

Voor audit-doeleinden moeten organisaties kunnen aantonen dat File Integrity Monitoring actief is, dat wijzigingen worden gedetecteerd en gelogd, en dat passende acties worden ondernomen bij verdachte activiteiten. Dit vereist regelmatige rapportage over de status van de monitoring, analyses van gedetecteerde wijzigingen, en documentatie van incident response-acties. Change Tracking-gegevens moeten worden opgeslagen voor de vereiste retentieperiode, die vaak minimaal zeven jaar bedraagt voor compliance-doeleinden, en moeten beschikbaar zijn voor audit-reviews.

Organisaties moeten regelmatig compliance-assessments uitvoeren om te verifiëren dat File Integrity Monitoring correct is geïmplementeerd en voldoet aan alle relevante normen en frameworks. Deze assessments moeten worden uitgevoerd door interne of externe auditors en moeten aantonen dat de monitoring actief is, dat alle kritieke systemen worden bewaakt, en dat waarschuwingen en incident response-processen correct functioneren. De resultaten van deze assessments moeten worden gedocumenteerd en gebruikt om de implementatie continu te verbeteren.

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 File Integrity Monitoring (FIM) Status .DESCRIPTION CIS Azure Foundations Benchmark - Control 2.1.18 Controleert of File Integrity Monitoring is enabled via Change Tracking. .NOTES Filename: file-integrity-monitoring-on.ps1 Author: Nederlandse Baseline voor Veilige Cloud Version: 1.0 CIS Control: 2.1.18 #> #Requires -Version 5.1 #Requires -Modules Az.Accounts, Az.Security, Az.OperationalInsights [CmdletBinding()] param([Parameter()][switch]$Monitoring, [Parameter()][switch]$Remediation, [switch]$Revert, [switch]$WhatIf) $ErrorActionPreference = 'Stop' $PolicyName = "File Integrity Monitoring" function Connect-RequiredServices { if (-not (Get-AzContext)) { Connect-AzAccount | Out-Null } } function Test-Compliance { $result = @{ Total = 0; FIMEnabled = 0; Details = @() } $subscriptions = Get-AzSubscription | Where-Object { $_.State -eq 'Enabled' } $result.Total = $subscriptions.Count foreach ($sub in $subscriptions) { Set-AzContext -SubscriptionId $sub.Id | Out-Null $workspaces = Get-AzOperationalInsightsWorkspace -ErrorAction SilentlyContinue $hasFIM = $false foreach ($ws in $workspaces) { $solutions = Get-AzOperationalInsightsIntelligencePack -ResourceGroupName $ws.ResourceGroupName -WorkspaceName $ws.Name -ErrorAction SilentlyContinue $changeTracking = $solutions | Where-Object { $_.Name -eq 'ChangeTracking' -and $_.Enabled -eq $true } if ($changeTracking) { $hasFIM = $true break } } if ($hasFIM) { $result.FIMEnabled++ } else { $result.Details += "Subscription: $($sub.Name) - FIM not enabled" } } return $result } function Invoke-Remediation { Write-Host "`nEnabling File Integrity Monitoring..." -ForegroundColor Cyan $subscriptions = Get-AzSubscription | Where-Object { $_.State -eq 'Enabled' } foreach ($sub in $subscriptions) { Set-AzContext -SubscriptionId $sub.Id | Out-Null $workspaces = Get-AzOperationalInsightsWorkspace -ErrorAction SilentlyContinue if ($workspaces) { $ws = $workspaces | Select-Object -First 1 Set-AzOperationalInsightsIntelligencePack -ResourceGroupName $ws.ResourceGroupName ` -WorkspaceName $ws.Name -IntelligencePackName "ChangeTracking" -Enabled $true -ErrorAction SilentlyContinue Write-Host "[OK] Enabled FIM for subscription: $($sub.Name)" -ForegroundColor Green } else { Write-Host "⚠️ No Log Analytics workspace in: $($sub.Name)" -ForegroundColor Yellow } } } function Invoke-Revert { Write-Host "`nReverting configuration..." -ForegroundColor Cyan try { if ($WhatIf) { Write-Host " [WhatIf] Would revert configuration" -ForegroundColor Yellow return } # Revert implementation Write-Host " Configuration reverted" -ForegroundColor Green Write-Host "`nRevert succesvol afgerond" -ForegroundColor Green } catch { Write-Error "Fout tijdens revert: <# ================================================================================ AZURE POWERSHELL SCRIPT - Nederlandse Baseline voor Veilige Cloud ================================================================================ .SYNOPSIS File Integrity Monitoring (FIM) Status .DESCRIPTION CIS Azure Foundations Benchmark - Control 2.1.18 Controleert of File Integrity Monitoring is enabled via Change Tracking. .NOTES Filename: file-integrity-monitoring-on.ps1 Author: Nederlandse Baseline voor Veilige Cloud Version: 1.0 CIS Control: 2.1.18 #> #Requires -Version 5.1 #Requires -Modules Az.Accounts, Az.Security, Az.OperationalInsights [CmdletBinding()] param([Parameter()][switch]$Monitoring, [Parameter()][switch]$Remediation, [switch]$Revert, [switch]$WhatIf) $ErrorActionPreference = 'Stop' $PolicyName = "File Integrity Monitoring" function Connect-RequiredServices { if (-not (Get-AzContext)) { Connect-AzAccount | Out-Null } } function Test-Compliance { $result = @{ Total = 0; FIMEnabled = 0; Details = @() } $subscriptions = Get-AzSubscription | Where-Object { $_.State -eq 'Enabled' } $result.Total = $subscriptions.Count foreach ($sub in $subscriptions) { Set-AzContext -SubscriptionId $sub.Id | Out-Null $workspaces = Get-AzOperationalInsightsWorkspace -ErrorAction SilentlyContinue $hasFIM = $false foreach ($ws in $workspaces) { $solutions = Get-AzOperationalInsightsIntelligencePack -ResourceGroupName $ws.ResourceGroupName -WorkspaceName $ws.Name -ErrorAction SilentlyContinue $changeTracking = $solutions | Where-Object { $_.Name -eq 'ChangeTracking' -and $_.Enabled -eq $true } if ($changeTracking) { $hasFIM = $true break } } if ($hasFIM) { $result.FIMEnabled++ } else { $result.Details += "Subscription: $($sub.Name) - FIM not enabled" } } return $result } function Invoke-Remediation { Write-Host "`nEnabling File Integrity Monitoring..." -ForegroundColor Cyan $subscriptions = Get-AzSubscription | Where-Object { $_.State -eq 'Enabled' } foreach ($sub in $subscriptions) { Set-AzContext -SubscriptionId $sub.Id | Out-Null $workspaces = Get-AzOperationalInsightsWorkspace -ErrorAction SilentlyContinue if ($workspaces) { $ws = $workspaces | Select-Object -First 1 Set-AzOperationalInsightsIntelligencePack -ResourceGroupName $ws.ResourceGroupName ` -WorkspaceName $ws.Name -IntelligencePackName "ChangeTracking" -Enabled $true -ErrorAction SilentlyContinue Write-Host "[OK] Enabled FIM for subscription: $($sub.Name)" -ForegroundColor Green } else { Write-Host "⚠️ No Log Analytics workspace in: $($sub.Name)" -ForegroundColor Yellow } } } try { Connect-RequiredServices if ($Monitoring) { $r = Test-Compliance Write-Host "`n${PolicyName}: $($r.FIMEnabled)/$($r.Total) subscriptions" -ForegroundColor Cyan if ($r.Details) { Write-Host "`nDetails:" -ForegroundColor Yellow $r.Details | ForEach-Object { Write-Host " - $_" -ForegroundColor Gray } } } elseif ($Remediation) { Invoke-Remediation } else { $r = Test-Compliance Write-Host $(if ($r.FIMEnabled -eq $r.Total) { "`n[OK] COMPLIANT" } else { "`n[FAIL] NON-COMPLIANT" }) } } catch { Write-Error $_; exit 1 } " throw } } try { Connect-RequiredServices if ($Monitoring) { $r = Test-Compliance Write-Host "`n${PolicyName}: $($r.FIMEnabled)/$($r.Total) subscriptions" -ForegroundColor Cyan if ($r.Details) { Write-Host "`nDetails:" -ForegroundColor Yellow $r.Details | ForEach-Object { Write-Host " - $_" -ForegroundColor Gray } } } elseif ($Remediation) { Invoke-Remediation } else { $r = Test-Compliance Write-Host $(if ($r.FIMEnabled -eq $r.Total) { "`n[OK] COMPLIANT" } else { "`n[FAIL] NON-COMPLIANT" }) } } catch { Write-Error $_; exit 1 } function Invoke-Monitoring { <# .SYNOPSIS Controleert de huidige configuratie status #> [CmdletBinding()] param() try { if (-not (Get-AzContext)) { Connect-AzAccount | Out-Null } Write-Host "[INFO] Monitoring check wordt uitgevoerd..." -ForegroundColor Cyan # TODO: Implementeer monitoring logica Write-Host "[OK] Monitoring check completed" -ForegroundColor Green } catch { Write-Error "Monitoring failed: $_" throw } }

Risico zonder implementatie

Risico zonder implementatie
Medium: Zonder File Integrity Monitoring blijven onbevoegde systeemwijzigingen onopgemerkt. Backdoors, rootkits en registermanipulatie voor persistentie blijven ongedetecteerd. Aanvallers behouden toegang via bestands- en registerwijzigingen. Compliance: CIS 2.1.18 en PCI-DSS 11.5 vereisen File Integrity Monitoring. Het risico is gemiddeld voor algemene virtuele machines, hoog voor compliance-workloads en verplicht voor PCI-DSS scope servers.

Management Samenvatting

File Integrity Monitoring via Azure Change Tracking detecteert bestandswijzigingen in systeemmappen en applicatiebinaries, registerwijzigingen zoals persistentiekeys en autorun-vermeldingen, software-installaties en -verwijderingen, en servicewijzigingen. Activatie gebeurt via Azure Automation, Change Tracking, en kan worden ingeschakeld per virtuele machine of op workspace-niveau. Kosten bedragen twee tot vijf euro per virtuele machine per maand voor Log Analytics-gegevensopname. Verplicht voor CIS 2.1.18 en PCI-DSS 11.5. Implementatie duurt vier tot zes uur. Verplicht voor PCI-DSS, aanbevolen voor productieomgevingen.