Delen via


Beveiliging van extensies

In dit artikel worden de basisprincipes van VM-extensies voor servers met Azure Arc beschreven en wordt beschreven hoe extensie-instellingen kunnen worden aangepast.

Basisprincipes van extensies

VM-extensies voor servers met Azure Arc zijn optionele invoegtoepassingen die andere functionaliteit mogelijk maken, zoals bewaking, patchbeheer en scriptuitvoering. Extensies worden gepubliceerd door Microsoft en selecteren derden in Azure Marketplace en opgeslagen in door Microsoft beheerde opslagaccounts. Alle extensies worden gescand op malware als onderdeel van het publicatieproces. De extensies voor servers met Azure Arc zijn identiek aan de extensies die beschikbaar zijn voor Azure-VM's, waardoor consistentie in uw bedrijfsomgevingen wordt gegarandeerd.

Extensies worden rechtstreeks vanuit Azure Storage (*.blob.core.windows.net) gedownload op het moment dat ze zijn geïnstalleerd of bijgewerkt, tenzij u privé-eindpunten hebt geconfigureerd. De opslagaccounts veranderen regelmatig en kunnen niet van tevoren worden voorspeld. Wanneer privé-eindpunten worden gebruikt, worden extensies geproxied via de regionale URL voor de Azure Arc-service.

Een digitaal ondertekend catalogusbestand wordt afzonderlijk gedownload van het extensiepakket en wordt gebruikt om de integriteit van elke extensie te controleren voordat de extensiebeheerder het extensiepakket opent of uitvoert. Als het gedownloade ZIP-bestand voor de extensie niet overeenkomt met de inhoud in het catalogusbestand, wordt de extensiebewerking afgebroken.

Extensies kunnen instellingen gebruiken om de installatie aan te passen of te configureren, zoals proxy-URL's of API-sleutels om een bewakingsagent te verbinden met de cloudservice. Extensie-instellingen zijn in twee varianten: reguliere instellingen en beveiligde instellingen. Beveiligde instellingen blijven niet behouden in Azure en worden in rust versleuteld op uw lokale computer.

Alle extensiebewerkingen zijn afkomstig van Azure via een API-aanroep, CLI, PowerShell of Portal-actie. Dit ontwerp zorgt ervoor dat elke actie voor het installeren, bijwerken of upgraden van een extensie op een server wordt aangemeld in het Azure-activiteitenlogboek. Met de Azure Connected Machine-agent kunnen extensies lokaal worden verwijderd om problemen op te lossen en op te ruimen. Als de extensie echter lokaal wordt verwijderd en de service nog steeds verwacht dat de extensie op de computer is geïnstalleerd, wordt deze opnieuw geïnstalleerd wanneer de extensiebeheer de volgende keer wordt gesynchroniseerd met Azure.

Scriptuitvoering

De extensiebeheer kan worden gebruikt om scripts op computers uit te voeren met behulp van de aangepaste scriptextensie of de opdracht Uitvoeren. Deze scripts worden standaard uitgevoerd in de gebruikerscontext van de extensiebeheerder ( Lokaal systeem in Windows of root op Linux), wat betekent dat deze scripts onbeperkte toegang hebben tot de computer. Als u deze functies niet wilt gebruiken, kunt u deze blokkeren met behulp van een acceptatielijst of een bloklijst. In de volgende sectie wordt een voorbeeld gegeven.

Beveiligingsmaatregelen voor lokale agents

Vanaf agentversie 1.16 kunt u eventueel de extensies beperken die op uw server kunnen worden geïnstalleerd en gastconfiguratie uitschakelen. Deze besturingselementen kunnen handig zijn bij het verbinden van servers met Azure voor één doel, zoals het verzamelen van gebeurtenislogboeken, zonder dat andere beheermogelijkheden op de server kunnen worden gebruikt.

Deze beveiligingsmaatregelen kunnen alleen worden geconfigureerd door een opdracht uit te voeren op de server zelf en kunnen niet worden gewijzigd vanuit Azure. Deze benadering behoudt de intentie van de serverbeheerder bij het inschakelen van scenario's voor extern beheer met Azure Arc, maar betekent ook dat het wijzigen van de instelling moeilijker is als u later besluit deze te wijzigen. Deze functie is bedoeld voor gevoelige servers (bijvoorbeeld Active Directory-domein Controllers, servers die betalingsgegevens verwerken en servers die onderhevig zijn aan strikte wijzigingscontrolemaatregelen). In de meeste andere gevallen is het niet nodig om deze instellingen te wijzigen.

Allowlists en blocklists

De Azure Connected Machine-agent ondersteunt een acceptatielijst en een bloklijst om te beperken welke extensies op uw computer kunnen worden geïnstalleerd. Allowlists zijn exclusief, wat betekent dat alleen de specifieke extensies die u in de lijst opneemt, kunnen worden geïnstalleerd. Bloklijsten zijn exclusief, wat betekent dat alles behalve deze extensies kan worden geïnstalleerd. Allowlists hebben de voorkeur boven bloklijsten, omdat ze nieuwe extensies die in de toekomst beschikbaar komen, inherent blokkeren. Allowlists en blocklists worden lokaal geconfigureerd per server. Dit zorgt ervoor dat niemand, zelfs geen gebruiker met machtigingen voor eigenaar of globale beheerder in Azure, uw beveiligingsregels kan overschrijven door een niet-geautoriseerde extensie te installeren. Als iemand probeert een niet-geautoriseerde extensie te installeren, weigert de extensiebeheerder deze te installeren en markeert de extensie-installatie een fout in Azure. Allowlists en blocklists kunnen op elk gewenst moment worden geconfigureerd nadat de agent is geïnstalleerd, inclusief voordat de agent is verbonden met Azure.

Als er geen acceptatielijst of bloklijst is geconfigureerd voor de agent, zijn alle extensies toegestaan.

De veiligste optie is om expliciet de extensies toe te staan die u verwacht te installeren. Alle extensies die niet in de acceptatielijst staan, worden automatisch geblokkeerd. Als u de Azure Connected Machine-agent wilt configureren om alleen de Azure Monitor-agent voor Linux toe te staan, voert u de volgende opdracht uit op elke server:

azcmagent config set extensions.allowlist "Microsoft.Azure.Monitor/AzureMonitorLinuxAgent"

Hier volgt een voorbeeld van een bloklijst die alle extensies blokkeert met de mogelijkheid om willekeurige scripts uit te voeren:

azcmagent config set extensions.blocklist "Microsoft.Cplat.Core/RunCommandHandlerWindows, Microsoft.Cplat.Core/RunCommandHandlerLinux,Microsoft.Compute/CustomScriptExtension,Microsoft.Azure.Extensions/CustomScript,Microsoft.Azure.Automation.HybridWorker/HybridWorkerForWindows,Microsoft.Azure.Automation/HybridWorkerForLinux,Microsoft.EnterpriseCloud.Monitoring/MicrosoftMonitoringAgent, Microsoft.EnterpriseCloud.Monitoring/OMSAgentForLinux"

Geef extensies op met de uitgever en het type, gescheiden door een slash /. Bekijk de lijst met de meest voorkomende extensies in de documenten of vermeld de VM-extensies die al op uw server zijn geïnstalleerd in de portal, Azure PowerShell of Azure CLI.

In de tabel wordt het gedrag beschreven bij het uitvoeren van een extensiebewerking voor een agent waarvoor de acceptatielijst of de bloklijst is geconfigureerd.

Operation In de acceptatielijst In de blokkeringslijst In zowel de acceptatielijst als de bloklijst Niet in een lijst, maar er is een acceptatielijst geconfigureerd
De extensie installeren Toegestaan Geblokkeerd Geblokkeerd Geblokkeerd
Extensie bijwerken (opnieuw configureren) Toegestaan Geblokkeerd Geblokkeerd Geblokkeerd
Upgrade-extensie Toegestaan Geblokkeerd Geblokkeerd Geblokkeerd
Extensie verwijderen Toegestaan Toegestaan Toegestaan Toegestaan

Belangrijk

Als een extensie al op uw server is geïnstalleerd voordat u een acceptatielijst of blokkeringslijst configureert, wordt deze niet automatisch verwijderd. Het is uw verantwoordelijkheid om de extensie te verwijderen uit Azure om deze volledig van de machine te verwijderen. Verwijderaanvragen worden altijd geaccepteerd om aan dit scenario te voldoen. Zodra deze is verwijderd, bepalen de acceptatielijst en de blokkeringslijst of toekomstige installatiepogingen al dan niet mogen worden toegestaan.

Vanaf agentversie 1.35 is er een speciale waarde Allow/Nonevoor de acceptatielijst, waarmee extensiebeheer kan worden uitgevoerd, maar geen extensies mogen worden geïnstalleerd. Dit is de aanbevolen configuratie wanneer u Azure Arc gebruikt om Windows Server 2012 Extended Security Updates (ESU) te leveren zonder dat u andere extensies wilt gebruiken.

azcmagent config set extensions.allowlist "Allow/None"

Azure Policies kan ook worden gebruikt om te beperken welke extensies kunnen worden geïnstalleerd. Azure Policies heeft het voordeel dat u configureerbaar bent in de cloud en geen wijziging op elke afzonderlijke server nodig hebt als u de lijst met goedgekeurde extensies moet wijzigen. Iedereen met machtigingen voor het wijzigen van beleidstoewijzingen kan deze beveiliging echter overschrijven of verwijderen. Als u ervoor kiest om Azure-beleid te gebruiken om extensies te beperken, controleert u welke accounts in uw organisatie gemachtigd zijn om beleidstoewijzingen te bewerken en of de juiste wijzigingsbeheermetingen aanwezig zijn.

Aanbevolen procedures voor vergrendelde machines

Wanneer u de Azure Connected Machine-agent configureert met een beperkte set mogelijkheden, is het belangrijk om rekening te houden met de mechanismen die iemand kan gebruiken om deze beperkingen te verwijderen en de juiste besturingselementen te implementeren. Iedereen die opdrachten kan uitvoeren als beheerder of hoofdgebruiker op de server, kan de configuratie van de Azure Connected Machine-agent wijzigen. Extensies en beleidsregels voor gastconfiguraties worden uitgevoerd in bevoorrechte contexten op uw server en kunnen daarom mogelijk de agentconfiguratie wijzigen. Als u beveiligingsmaatregelen voor lokale agents toepast om de agent te vergrendelen, raadt Microsoft de volgende aanbevolen procedures aan om ervoor te zorgen dat alleen lokale serverbeheerders de agentconfiguratie kunnen bijwerken:

  • Gebruik indien mogelijk allowlists voor extensies in plaats van bloklijsten.
  • Neem de aangepaste scriptextensie niet op in de extensie allowlist om te voorkomen dat willekeurige scripts worden uitgevoerd die de agentconfiguratie kunnen wijzigen.
  • Schakel gastconfiguratie uit om te voorkomen dat aangepaste gastconfiguratiebeleidsregels worden gebruikt die de agentconfiguratie kunnen wijzigen.

Voorbeeldconfiguratie voor bewakings- en beveiligingsscenario's

Het is gebruikelijk om Azure Arc te gebruiken om uw servers te bewaken met Azure Monitor en Microsoft Sentinel en deze te beveiligen met Microsoft Defender voor Cloud. Deze sectie bevat voorbeelden voor het vergrendelen van de agent om alleen bewakings- en beveiligingsscenario's te ondersteunen.

Alleen Azure Monitor-agent

Voer op uw Windows-servers de volgende opdrachten uit in een opdrachtconsole met verhoogde bevoegdheid:

azcmagent config set extensions.allowlist "Microsoft.Azure.Monitor/AzureMonitorWindowsAgent"
azcmagent config set guestconfiguration.enabled false

Voer op uw Linux-servers de volgende opdrachten uit:

sudo azcmagent config set extensions.allowlist "Microsoft.Azure.Monitor/AzureMonitorLinuxAgent"
sudo azcmagent config set guestconfiguration.enabled false

Log Analytics en afhankelijkheid (alleen Azure Monitor VM Insights)

Deze configuratie is bedoeld voor de verouderde Log Analytics-agents en de afhankelijkheidsagent.

Voer op uw Windows-servers de volgende opdrachten uit in een console met verhoogde bevoegdheid:

azcmagent config set extensions.allowlist "Microsoft.EnterpriseCloud.Monitoring/MicrosoftMonitoringAgent,Microsoft.Azure.Monitoring.DependencyAgent/DependencyAgentWindows"
azcmagent config set guestconfiguration.enabled false

Voer op uw Linux-servers de volgende opdrachten uit:

sudo azcmagent config set extensions.allowlist "Microsoft.EnterpriseCloud.Monitoring/OMSAgentForLinux,Microsoft.Azure.Monitoring.DependencyAgent/DependencyAgentLinux"
sudo azcmagent config set guestconfiguration.enabled false

Bewaking en beveiliging

Microsoft Defender voor Cloud extensies op uw server implementeert om kwetsbare software op uw server te identificeren en Microsoft Defender voor Eindpunt in te schakelen (indien geconfigureerd). Microsoft Defender voor Cloud maakt ook gebruik van gastconfiguratie voor de functie voor naleving van regelgeving. Aangezien een aangepaste toewijzing van een gastconfiguratie kan worden gebruikt om de beperkingen van de agent ongedaan te maken, moet u zorgvuldig evalueren of u de functie voor naleving van regelgeving nodig hebt en, als gevolg hiervan, gastconfiguratie moet worden ingeschakeld op de computer.

Voer op uw Windows-servers de volgende opdrachten uit in een opdrachtconsole met verhoogde bevoegdheid:

azcmagent config set extensions.allowlist "Microsoft.EnterpriseCloud.Monitoring/MicrosoftMonitoringAgent,Qualys/WindowsAgent.AzureSecurityCenter,Microsoft.Azure.AzureDefenderForServers/MDE.Windows,Microsoft.Azure.AzureDefenderForSQL/AdvancedThreatProtection.Windows"
azcmagent config set guestconfiguration.enabled true

Voer op uw Linux-servers de volgende opdrachten uit:

sudo azcmagent config set extensions.allowlist "Microsoft.EnterpriseCloud.Monitoring/OMSAgentForLinux,Qualys/LinuxAgent.AzureSecurityCenter,Microsoft.Azure.AzureDefenderForServers/MDE.Linux"
sudo azcmagent config set guestconfiguration.enabled true

Agentmodi

Een eenvoudigere manier om lokale beveiligingscontroles te configureren voor bewakings- en beveiligingsscenario's is het gebruik van de monitormodus, beschikbaar met agentversie 1.18 en hoger. Modi zijn vooraf gedefinieerde configuraties van de extensie allowlist en gastconfiguratieagent die door Microsoft worden onderhouden. Naarmate er nieuwe extensies beschikbaar komen die bewakingsscenario's mogelijk maken, werkt Microsoft de acceptatielijst en agentconfiguratie zo nodig bij om de nieuwe functionaliteit op te nemen of uit te sluiten.

Er zijn twee modi waaruit u kunt kiezen:

  1. volledig : de standaardmodus. Hierdoor is alle agentfunctionaliteit toegestaan.
  2. monitor : een beperkte modus die de agent voor gastconfiguratiebeleid uitschakelt en alleen het gebruik van extensies met betrekking tot bewaking en beveiliging toestaat.

Voer de volgende opdracht uit om de monitormodus in te schakelen:

azcmagent config set config.mode monitor

U kunt de huidige modus van de agent en toegestane extensies controleren met de volgende opdracht:

azcmagent config list

In de monitormodus kunt u de acceptatielijst of bloklijst van de extensie niet wijzigen. Als u een van beide lijsten wilt wijzigen, wijzigt u de agent weer in de volledige modus en geeft u uw eigen acceptatielijst en blokkeringslijst op.

Als u de agent weer in de volledige modus wilt wijzigen, voert u de volgende opdracht uit:

azcmagent config set config.mode full

Extensiebeheer uitschakelen

Als u geen extensies met Azure Arc hoeft te gebruiken, kunt u ook de extensiebeheer volledig uitschakelen. U kunt extensiebeheer uitschakelen met de volgende opdracht (lokaal uitvoeren op elke computer):

azcmagent config set extensions.enabled false

Als u het extensiebeheer uitschakelt, worden er geen extensies verwijderd die al op uw server zijn geïnstalleerd. Extensies die worden gehost in hun eigen Windows- of Linux-services, zoals de Log Analytics-agent, kunnen blijven worden uitgevoerd, zelfs als de extensiebeheer is uitgeschakeld. Andere extensies die worden gehost door de extensiebeheerder zelf, zoals de Azure Monitor-agent, worden niet uitgevoerd als het extensiebeheer is uitgeschakeld. U moet extensies verwijderen voordat u extensiebeheer uitschakelt om ervoor te zorgen dat er geen extensies blijven worden uitgevoerd op de server.