File Integrity Monitoring Ingeschakeld (Alternatieve Controle)

💼 Management Samenvatting

Dit script biedt een alternatieve verificatiemethode voor File Integrity Monitoring (zie file-integrity-Monitoring-on.ps1 voor de primaire controle). Beide scripts controleren dezelfde CIS regel 2.1.18 voor Change Tracking implementatie.

Aanbeveling
IMPLEMENTEER - ZIE file-integrity-monitoring-on.json
Risico zonder
Medium
Risk Score
7/10
Implementatie
6u (tech: 4u)
Van toepassing op:
Azure Virtuele Machines
Azure Arc Servers

Zie file-integrity-Monitoring-on.json voor de volledige onderbouwing van File Integrity Monitoring. File Integrity Monitoring detecteert onbevoegde wijzigingen aan systeembestanden, registeritems en software-installaties om backdoors en manipulatie te identificeren.

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

Implementatie

Dit alternatieve controlescript verifieert de status van de Change Tracking-oplossing met een andere verificatiemethode, maar met dezelfde functionaliteit. Voor volledige implementatiedetails, gemonitorde paden, waarschuwingsconfiguratie en kosteninformatie, zie de primaire regel file-integrity-Monitoring-on.json.

Vereisten

Voor de implementatie van File Integrity Monitoring via deze alternatieve verificatiemethode zijn verschillende technische en organisatorische vereisten van toepassing. Deze vereisten vormen de basis voor een succesvolle implementatie en zorgen ervoor dat de monitoringoplossing naar behoren functioneert binnen de Azure-omgeving. De primaire technische vereiste betreft de beschikbaarheid van Azure Virtual Machines of Azure Arc-servers. Deze servers vormen het doelwit voor de File Integrity Monitoring-implementatie. Het is essentieel dat deze servers correct zijn geconfigureerd en toegankelijk zijn via de Azure Management API. Voor Azure Arc-servers is het belangrijk dat de Arc-agent correct is geïnstalleerd en verbonden met de Azure-omgeving. Een tweede kritieke vereiste is de beschikbaarheid van PowerShell versie 5.1 of hoger. Deze versie is noodzakelijk omdat de scripts gebruikmaken van moderne PowerShell-functionaliteiten en cmdlets die niet beschikbaar zijn in oudere versies. Organisaties die nog werken met PowerShell 4.0 of lager moeten eerst een upgrade uitvoeren voordat ze deze monitoringoplossing kunnen implementeren. De derde vereiste betreft de installatie van specifieke PowerShell-modules. De modules Az.Accounts, Az.Security en Az.OperationalInsights moeten geïnstalleerd zijn op het systeem waarop de verificatiescripts worden uitgevoerd. Deze modules bieden de benodigde cmdlets voor authenticatie, beveiligingsconfiguratie en logboekanalyse. Het is aan te raden om regelmatig te controleren of deze modules up-to-date zijn, omdat Microsoft regelmatig updates uitbrengt met nieuwe functionaliteiten en beveiligingsverbeteringen. Een Log Analytics-workspace vormt de vierde essentiële vereiste. Deze workspace fungeert als centrale opslaglocatie voor alle monitoringgegevens en wijzigingslogboeken. De workspace moet correct zijn geconfigureerd met de juiste retentie-instellingen en toegangsrechten. Voor Nederlandse overheidsorganisaties is het belangrijk om te zorgen dat de workspace voldoet aan de vereisten voor gegevensopslag binnen de Europese Unie, conform de AVG-richtlijnen. De vijfde en laatste technische vereiste is de Change Tracking-oplossing zelf. Deze oplossing moet geactiveerd zijn in de Azure Automation-omgeving en gekoppeld zijn aan de Log Analytics-workspace. De Change Tracking-oplossing verzamelt informatie over wijzigingen aan bestanden, registeritems, software en Windows-services, en slaat deze informatie op in de Log Analytics-workspace voor analyse en rapportage. Naast deze technische vereisten zijn er ook organisatorische overwegingen. IT-beheerders moeten beschikken over de juiste Azure-roltoewijzingen om de monitoringoplossing te kunnen configureren en beheren. De rol 'Log Analytics Contributor' of 'Security Admin' is meestal voldoende voor de meeste beheertaken. Daarnaast moeten procedures worden opgesteld voor het reageren op gedetecteerde wijzigingen en het beoordelen van waarschuwingen.

Monitoring

De monitoring van File Integrity Monitoring via deze alternatieve verificatiemethode biedt organisaties een aanvullende manier om de status van hun Change Tracking-implementatie te controleren. Hoewel de primaire verificatiemethode in file-integrity-Monitoring-on.ps1 de standaard is, kan deze alternatieve aanpak nuttig zijn in scenario's waar aanvullende verificatie gewenst is of waar de primaire methode om technische redenen niet toepasbaar is. Het monitoringproces begint met het uitvoeren van het verificatiescript file-integrity-Monitoring-enabled.ps1. Dit script maakt gebruik van de functie Invoke-Monitoring om de status van de Change Tracking-oplossing te controleren. Het script verifieert of de oplossing correct is geconfigureerd en actief is op de doelservers. Tijdens dit proces worden verschillende controles uitgevoerd om te bevestigen dat alle benodigde componenten aanwezig zijn en correct functioneren. De verificatieprocedure controleert meerdere aspecten van de Change Tracking-implementatie. Allereerst wordt gecontroleerd of de Change Tracking-oplossing is ingeschakeld in de Azure Automation-omgeving. Dit gebeurt door het opvragen van de configuratiestatus via de Azure Management API. Het script controleert ook of de oplossing correct is gekoppeld aan de Log Analytics-workspace en of de benodigde agents zijn geïnstalleerd op de doelservers. Een belangrijk onderdeel van de monitoring is de verificatie van de agentstatus. Het script controleert of de Log Analytics-agent of Azure Arc-agent correct is geïnstalleerd en actief is op elke doelserver. Dit is cruciaal omdat de agent verantwoordelijk is voor het verzamelen van wijzigingsinformatie en het doorsturen naar de Log Analytics-workspace. Zonder een werkende agent kan de Change Tracking-oplossing geen gegevens verzamelen. Het script verifieert ook de configuratie van de gemonitorde paden en bestanden. Hoewel de volledige configuratiedetails beschikbaar zijn in het primaire document, controleert dit alternatieve script of de basisconfiguratie aanwezig is en of de belangrijkste systeembestanden en registeritems worden gemonitord. Dit omvat controles op de monitoring van Windows-systeembestanden, kritieke registeritems en software-installaties. Na het uitvoeren van de verificatie genereert het script een rapport met de bevindingen. Dit rapport bevat informatie over de status van de Change Tracking-oplossing, eventuele configuratieproblemen en aanbevelingen voor verbetering. Het rapport kan worden gebruikt voor compliance-doeleinden en voor het documenteren van de beveiligingsstatus van de Azure-omgeving. Voor continue monitoring is het aan te raden om het verificatiescript regelmatig uit te voeren, bijvoorbeeld wekelijks of maandelijks, afhankelijk van de beveiligingsvereisten van de organisatie. Dit zorgt ervoor dat eventuele configuratiewijzigingen of problemen tijdig worden gedetecteerd. Organisaties kunnen ook gebruikmaken van Azure Automation-runbooks om het verificatieproces te automatiseren en te integreren in hun bestaande monitoringworkflows. Het is belangrijk om te benadrukken dat deze alternatieve verificatiemethode dezelfde CIS-regel controleert als de primaire methode. Beide methoden zijn gericht op het verifiëren van de implementatie van File Integrity Monitoring volgens CIS Benchmark regel 2.1.18. De keuze tussen de primaire en alternatieve methode hangt af van de specifieke omstandigheden en voorkeuren van de organisatie.

Gebruik PowerShell-script file-integrity-Monitoring-enabled.ps1 (functie Invoke-Monitoring) – Alternatieve controle voor Change Tracking-oplossing implementatiestatus.

Belangrijke opmerking

Dit verificatiescript vormt een alternatieve controle van file-integrity-Monitoring-on.ps1. Beide scripts controleren CIS-regel 2.1.18 voor File Integrity Monitoring, maar gebruiken verschillende verificatiemethoden om tot hetzelfde resultaat te komen. Deze alternatieve aanpak kan nuttig zijn in situaties waar aanvullende verificatie gewenst is of waar de primaire methode om technische redenen niet toepasbaar is. Het is belangrijk om te begrijpen dat beide scripts dezelfde functionaliteit controleren en dezelfde beveiligingsdoelstellingen nastreven. De keuze tussen de primaire en alternatieve methode hangt af van de specifieke omstandigheden en voorkeuren van de organisatie. Sommige organisaties kunnen bijvoorbeeld de voorkeur geven aan de alternatieve methode vanwege specifieke technische vereisten of bestaande monitoringworkflows. Voor volledige implementatiebegeleiding, inclusief gedetailleerde informatie over gemonitorde paden, waarschuwingsconfiguratie en PCI-DSS-compliance-details, wordt verwezen naar het primaire document file-integrity-Monitoring-on.json. Dit document bevat uitgebreide informatie over de configuratie van File Integrity Monitoring, inclusief aanbevolen paden voor monitoring, het instellen van waarschuwingen en het voldoen aan compliance-vereisten zoals PCI-DSS regel 11.5. Organisaties die deze alternatieve verificatiemethode gebruiken, moeten er rekening mee houden dat de implementatie zelf nog steeds moet worden uitgevoerd volgens de richtlijnen in het primaire document. Deze alternatieve methode is alleen bedoeld voor verificatie en monitoring, niet voor de initiële implementatie. Voor de daadwerkelijke implementatie van File Integrity Monitoring moeten organisaties de stappen volgen die beschreven staan in file-integrity-Monitoring-on.json. Het is ook belangrijk om te benadrukken dat beide verificatiemethoden regelmatig moeten worden uitgevoerd om te zorgen dat de File Integrity Monitoring-oplossing correct blijft functioneren. Configuratiewijzigingen, updates aan de Azure-omgeving of wijzigingen aan de doelservers kunnen invloed hebben op de werking van de monitoringoplossing. Regelmatige verificatie helpt om eventuele problemen tijdig te detecteren en te verhelpen. Voor Nederlandse overheidsorganisaties is het van bijzonder belang om te zorgen dat de File Integrity Monitoring-oplossing voldoet aan de vereisten van de BIO-normen en andere toepasselijke compliance-standaarden. Beide verificatiemethoden kunnen worden gebruikt om te bewijzen dat de organisatie voldoet aan deze vereisten, maar het is aan te raden om de verificatiemethode te documenteren en te rechtvaardigen in de beveiligingsdocumentatie van de organisatie.

Remediatie

Wanneer de verificatie uitwijst dat File Integrity Monitoring niet correct is geconfigureerd of niet actief is, is het belangrijk om snel corrigerende maatregelen te nemen. De remediatieprocedure is gericht op het herstellen van de juiste configuratie en het inschakelen van de monitoringoplossing waar nodig. De remediatieprocedure begint met het identificeren van de specifieke problemen die zijn gedetecteerd tijdens de verificatie. Dit kan variëren van een ontbrekende Change Tracking-oplossing tot een incorrect geconfigureerde Log Analytics-workspace of niet-werkende agents op de doelservers. Elke situatie vereist een specifieke aanpak voor remediatie. Voor het uitvoeren van de remediatie kan gebruik worden gemaakt van het script file-integrity-monitoring-enabled.ps1 met de functie Invoke-Remediation. Deze functie automatiseert het grootste deel van het remediatieproces en zorgt ervoor dat de benodigde configuratiewijzigingen worden doorgevoerd. Het script controleert eerst de huidige status en voert vervolgens de benodigde wijzigingen uit om de File Integrity Monitoring-oplossing correct te configureren. Een veelvoorkomend probleem is dat de Change Tracking-oplossing niet is ingeschakeld in de Azure Automation-omgeving. In dit geval zal het remediatiescript de oplossing activeren en configureren volgens de aanbevolen instellingen. Dit omvat het koppelen van de oplossing aan de juiste Log Analytics-workspace en het configureren van de benodigde monitoringinstellingen. Een ander veelvoorkomend probleem betreft ontbrekende of niet-werkende agents op de doelservers. Het remediatiescript kan helpen bij het installeren of herstellen van de Log Analytics-agent of Azure Arc-agent, afhankelijk van het type server. Voor Azure Virtual Machines kan dit betekenen dat de Log Analytics VM-extensie moet worden geïnstalleerd of bijgewerkt. Voor Azure Arc-servers moet de Arc-agent correct zijn geconfigureerd en verbonden met de Azure-omgeving. Na het uitvoeren van de remediatieprocedure is het belangrijk om de verificatie opnieuw uit te voeren om te bevestigen dat alle problemen zijn opgelost. Dit zorgt ervoor dat de File Integrity Monitoring-oplossing nu correct is geconfigureerd en actief is. Het is ook aan te raden om de remediatie-acties te documenteren voor audit- en compliance-doeleinden. In sommige gevallen kan het nodig zijn om handmatige interventie uit te voeren, bijvoorbeeld wanneer er complexe configuratieproblemen zijn of wanneer de automatische remediatie niet succesvol is. In deze situaties moeten IT-beheerders de specifieke problemen onderzoeken en de benodigde configuratiewijzigingen handmatig doorvoeren. De documentatie in file-integrity-Monitoring-on.json kan hierbij als leidraad dienen. Het is belangrijk om te benadrukken dat remediatie niet alleen gaat om het oplossen van technische problemen, maar ook om het waarborgen van de continue werking van de monitoringoplossing. Na een succesvolle remediatie moeten organisaties procedures opstellen voor het voorkomen van toekomstige problemen en het monitoren van de status van de File Integrity Monitoring-oplossing. Dit omvat regelmatige verificaties, het bijhouden van configuratiewijzigingen en het trainen van IT-personeel in het beheren en onderhouden van de monitoringoplossing.

Gebruik PowerShell-script file-integrity-monitoring-enabled.ps1 (functie Invoke-Remediation) – Herstellen van File Integrity Monitoring-configuratieproblemen.

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) - Alternative Check .DESCRIPTION CIS Azure Foundations Benchmark - Control 2.1.18 Alternative implementation voor File Integrity Monitoring check. .NOTES Filename: file-integrity-monitoring-enabled.ps1 Author: Nederlandse Baseline voor Veilige Cloud Version: 1.0 CIS Control: 2.1.18 NOTE: Duplicate van file-integrity-monitoring-on.ps1 #> #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 } $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 foreach ($ws in $workspaces) { $solutions = Get-AzOperationalInsightsIntelligencePack -ResourceGroupName $ws.ResourceGroupName -WorkspaceName $ws.Name -ErrorAction SilentlyContinue $fim = $solutions | Where-Object { $_.Name -eq 'ChangeTracking' -and $_.Enabled -eq $true } if ($fim) { $result.FIMEnabled++ break } } } 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: $($sub.Name)" -ForegroundColor Green } } } 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) - Alternative Check .DESCRIPTION CIS Azure Foundations Benchmark - Control 2.1.18 Alternative implementation voor File Integrity Monitoring check. .NOTES Filename: file-integrity-monitoring-enabled.ps1 Author: Nederlandse Baseline voor Veilige Cloud Version: 1.0 CIS Control: 2.1.18 NOTE: Duplicate van file-integrity-monitoring-on.ps1 #> #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 } $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 foreach ($ws in $workspaces) { $solutions = Get-AzOperationalInsightsIntelligencePack -ResourceGroupName $ws.ResourceGroupName -WorkspaceName $ws.Name -ErrorAction SilentlyContinue $fim = $solutions | Where-Object { $_.Name -eq 'ChangeTracking' -and $_.Enabled -eq $true } if ($fim) { $result.FIMEnabled++ break } } } 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: $($sub.Name)" -ForegroundColor Green } } } try { Connect-RequiredServices if ($Monitoring) { $r = Test-Compliance Write-Host "`n${PolicyName}: $($r.FIMEnabled)/$($r.Total)" -ForegroundColor Cyan } elseif ($Remediation) { Invoke-Remediation } else { $r = Test-Compliance Write-Host $(if ($r.FIMEnabled -gt 0) { "`n[OK] FIM Enabled" } else { "`n[FAIL] FIM Not Enabled" }) } } catch { Write-Error $_; exit 1 } " throw } } try { Connect-RequiredServices if ($Monitoring) { $r = Test-Compliance Write-Host "`n${PolicyName}: $($r.FIMEnabled)/$($r.Total)" -ForegroundColor Cyan } elseif ($Remediation) { Invoke-Remediation } else { $r = Test-Compliance Write-Host $(if ($r.FIMEnabled -gt 0) { "`n[OK] FIM Enabled" } else { "`n[FAIL] FIM Not Enabled" }) } } 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: Onbevoegde systeemwijzigingen blijven onopgemerkt zonder File Integrity Monitoring. Backdoors, rootkits en registermanipulatie blijven ongedetecteerd. Compliance: CIS 2.1.18, PCI-DSS 11.5. Het risico is gemiddeld voor algemene VM's, hoog voor compliance-workloads.

Management Samenvatting

Alternatieve verificatie voor File Integrity Monitoring (CIS 2.1.18). Zie file-integrity-monitoring-on.json voor volledige implementatie via Azure Change Tracking. Detecteert wijzigingen aan bestanden, registeritems en software. Kosten: €2-5/VM/maand. Essentieel voor PCI-DSS, aanbevolen voor productie-VM's.