Udostępnij przez


Zabezpieczenia rozszerzeń dla serwerów włączonych do usługi Azure Arc

W tym artykule opisano podstawy rozszerzeń maszyn wirtualnych dla serwerów z obsługą usługi Azure Arc i szczegółowe informacje na temat dostosowywania ustawień rozszerzeń.

Podstawowe informacje o rozszerzeniach

Rozszerzenia maszyn wirtualnych dla serwerów z obsługą usługi Azure Arc to opcjonalne dodatki, które umożliwiają inne funkcje, takie jak monitorowanie, zarządzanie poprawkami i wykonywanie skryptów. Rozszerzenia są publikowane przez Microsoft oraz wybrane firmy trzecie z Azure Marketplace i przechowywane w kontach magazynowych zarządzanych przez firmę Microsoft. Wszystkie rozszerzenia są skanowane pod kątem złośliwego oprogramowania w ramach procesu publikowania. Rozszerzenia obsługiwane dla serwerów z obsługą usługi Azure Arc są identyczne z tymi dostępnymi dla maszyn wirtualnych platformy Azure, zapewniając spójność w środowiskach operacyjnych.

Rozszerzenia są pobierane bezpośrednio z usługi Azure Storage (*.blob.core.windows.net) w miarę ich instalowania lub uaktualniania, chyba że skonfigurowano prywatne punkty końcowe. Konta magazynowe regularnie się zmieniają i nie można ich przewidzieć z góry. Gdy są używane prywatne punkty końcowe, rozszerzenia są przekazywane za pośrednictwem regionalnego adresu URL usługi Azure Arc.

Plik wykazu podpisany cyfrowo jest pobierany oddzielnie od pakietu rozszerzenia i używany do weryfikowania integralności każdego rozszerzenia przed otwarciem lub wykonaniem pakietu rozszerzenia. Jeśli pobrany plik ZIP rozszerzenia nie odpowiada zawartości pliku katalogu, operacja rozszerzenia zostaje przerwana.

Rozszerzenia mogą przyjmować ustawienia w celu zastosowania lub skonfigurowania instalacji, takie jak adresy URL serwera proxy lub klucze interfejsu API, które łączą agenta monitorującego z usługą w chmurze. Ustawienia rozszerzenia dzielą się na dwie kategorie: zwykłe ustawienia i ustawienia chronione. Ustawienia chronione nie są zapisywane na platformie Azure i są szyfrowane w stanie spoczynku na komputerze lokalnym.

Wszystkie operacje rozszerzenia pochodzą z platformy Azure za pośrednictwem akcji wywołania interfejsu API, interfejsu wiersza polecenia, programu PowerShell lub witryny Azure Portal. Ten projekt gwarantuje, że każda akcja instalowania, aktualizowania lub uaktualniania rozszerzenia na serwerze jest rejestrowana w dzienniku aktywności usługi Azure Monitor. Agent usługi Azure Connected Machine umożliwia lokalne usuwanie rozszerzeń na potrzeby rozwiązywania problemów i oczyszczania. Jeśli jednak rozszerzenie zostanie usunięte lokalnie, a usługa nadal oczekuje, że maszyna będzie mieć to rozszerzenie, rozszerzenie zostanie ponownie zainstalowane przy następnej synchronizacji menedżera rozszerzeń z platformą Azure.

Wykonywanie skryptu

Menedżer rozszerzeń może służyć do uruchamiania skryptów na maszynach przy użyciu rozszerzenia skryptów niestandardowych lub polecenia uruchomienia. Domyślnie te skrypty są uruchamiane w kontekście użytkownika menedżera rozszerzeń — Local System na Windows lub root na Linuxie — co oznacza, że te skrypty mają nieograniczony dostęp do maszyny. Jeśli nie zamierzasz używać tych funkcji, możesz zablokować je przy użyciu listy dozwolonych lub listy zablokowanych. Na przykład, chyba że planujesz używać rozszerzenia niestandardowego skryptu na potrzeby zdalnego wykonywania kodu, należy wyłączyć jego użycie, ponieważ może być ono używane przez osoby atakujące do zdalnego wykonywania poleceń, które wdrażają złośliwy kod.

Mechanizmy zabezpieczeń agenta lokalnego

Opcjonalnie można ograniczyć rozszerzenia, które można zainstalować na serwerze i wyłączyć konfigurację gościa. Te kontrolki mogą być przydatne podczas łączenia serwerów z platformą Azure w jednym celu, takich jak zbieranie dzienników zdarzeń, bez zezwalania na korzystanie z innych funkcji zarządzania na serwerze.

Te mechanizmy zabezpieczeń można skonfigurować tylko przez uruchomienie polecenia na samym serwerze i nie można ich modyfikować z platformy Azure. Takie podejście zachowuje intencję administratora serwera podczas włączania scenariuszy zdalnego zarządzania za pomocą usługi Azure Arc, ale także oznacza, że trudniej będzie później zmienić te opcje. Te kontrolki są przeznaczone dla serwerów poufnych, takich jak kontrolery domeny usługi Active Directory, serwery obsługujące dane płatności i serwery podlegające ścisłym środkom kontroli zmian). W większości innych przypadków nie jest konieczne zmodyfikowanie tych ustawień.

Listy dozwolonych i listy zablokowanych

Agent usługi Azure Connected Machine obsługuje listę dozwolonych i listę zablokowanych, aby ograniczyć, które rozszerzenia można zainstalować na maszynie. Listy dozwolonych są wyłączne, co oznacza, że można zainstalować tylko określone rozszerzenia uwzględnione na liście. Listy blokowe są wykluczane, co oznacza, że można zainstalować dowolne rozszerzenia, z wyjątkiem tych rozszerzeń. Listy dozwolonych są preferowane do listy zablokowanych, ponieważ z założenia blokują wszelkie nowe rozszerzenia, które staną się dostępne w przyszłości.

Listy dozwolonych i listy zablokowanych są konfigurowane lokalnie na poszczególnych serwerach. To zapewnia, że nikt, nawet użytkownik z uprawnieniami właściciela lub administratora globalnego w Azure, nie może zastąpić reguł zabezpieczeń, próbując zainstalować nieautoryzowane rozszerzenie. Jeśli ktoś spróbuje zainstalować nieautoryzowane rozszerzenie, menedżer rozszerzeń odmówi jej zainstalowania i oznaczy raport instalacji rozszerzenia jako błąd platformy Azure.

Listy dozwolonych i listy zablokowanych można skonfigurować w dowolnym momencie po zainstalowaniu agenta, w tym przed połączeniem agenta z platformą Azure.

Jeśli na agencie nie skonfigurowano listy dozwolonych lub listy zablokowanych, wszystkie rozszerzenia są dozwolone.

Najbezpieczniejszą opcją jest jawne zezwolenie na instalowanie rozszerzeń, których oczekujesz. Każde rozszerzenie, które nie znajduje się na liście dozwolonych, jest automatycznie blokowane. Na przykład aby skonfigurować agenta usługi Azure Connected Machine tak, aby zezwalał tylko na agenta usługi Azure Monitor dla systemu Linux, uruchom następujące polecenie na każdym serwerze:

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

Na przykład to polecenie blokuje rozszerzenia, które mają możliwość uruchamiania dowolnych skryptów:

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"

Określ rozszerzenia z ich wydawcą i typem oddzielone ukośnikiem /. Zobacz szczegóły najczęściej używanych rozszerzeń w dokumentacji.

Możesz wyświetlić listę rozszerzeń maszyn wirtualnych, które są już zainstalowane na serwerze w witrynie Portal, programie Azure PowerShell lub interfejsie wiersza polecenia platformy Azure.

W tabeli opisano zachowanie operacji rozszerzeń względem agenta, który ma skonfigurowaną listę dozwolonych lub listę zablokowanych.

Operation Na liście dozwolonych Na liście zablokowanych Zarówno na liście dozwolonych, jak i na liście zablokowanych Nie ma na żadnej liście, ale skonfigurowano listę dozwolonych elementów
Instalowanie rozszerzenia Allowed Blocked Blocked Blocked
Aktualizowanie (ponowne konfigurowanie) rozszerzenia Allowed Blocked Blocked Blocked
Uaktualnianie rozszerzenia Allowed Blocked Blocked Blocked
Usuwanie rozszerzenia Allowed Allowed Allowed Allowed

Important

Jeśli rozszerzenie jest już zainstalowane na serwerze przed skonfigurowaniem listy dozwolonych lub listy zablokowanych, nie zostanie usunięte. Twoim zadaniem jest usunięcie rozszerzenia z platformy Azure w celu całkowitego usunięcia go z maszyny. Żądania usuwania są zawsze akceptowane w celu obsługi tego scenariusza. Po usunięciu lista dozwolonych i lista zablokowanych określają, czy zezwolić na przyszłe próby instalacji.

Wartość Allow/None listy dozwolonych powoduje uruchomienie menedżera rozszerzeń, ale nie zezwala na instalowanie rozszerzeń. Ta wartość jest zalecana w przypadku używania usługi Azure Arc do dostarczania rozszerzonych aktualizacji zabezpieczeń systemu Windows Server 2012 (ESU) bez konieczności używania innych rozszerzeń.

azcmagent config set extensions.allowlist "Allow/None"

Azure Policy

Inną opcją ograniczenia rozszerzeń, które można zainstalować, jest użycie usługi Azure Policy. Zasady mają zaletę konfigurowania w chmurze, więc zmiana na każdym serwerze nie jest wymagana, jeśli musisz zmienić listę zatwierdzonych rozszerzeń. Każda osoba posiadająca uprawnienia do modyfikowania przypisań zasad może unieważnić lub usunąć tę ochronę. Jeśli zdecydujesz się używać usługi Azure Policy do ograniczania rozszerzeń, sprawdź, które konta w organizacji mają uprawnienia do edytowania przypisań zasad i że obowiązują odpowiednie miary kontroli zmian.

Tryb monitora agenta

Domyślnie agent połączonej maszyny działa w trybie pełnym, co umożliwia instalowanie i używanie wszystkich rozszerzeń (chyba że jest to ograniczone przez listy dozwolonych, listy zablokowanych lub usługę Azure Policy). Prostym sposobem skonfigurowania lokalnych mechanizmów kontroli zabezpieczeń na potrzeby monitorowania i scenariuszy zabezpieczeń jest włączenie trybu monitorowania dla agenta połączonej maszyny.

Gdy agent jest w trybie monitorowania, można wdrożyć tylko rozszerzenia związane z monitorowaniem i zabezpieczeniami, takie jak agent usługi Azure Monitor i usługa Microsoft Defender for Cloud. Agent blokuje wszelkie rozszerzenia, które mogą zmienić konfigurację systemu lub uruchomić dowolne skrypty, i wyłącza agenta zasad konfiguracji gościa.

Gdy nowe rozszerzenia staną się dostępne, firma Microsoft aktualizuje listę dozwolonych trybów monitorowania. Możesz przejrzeć bieżącą listę dozwolonych rozszerzeń, uruchamiając polecenie azcmagent config list.

Aby włączyć tryb monitorowania, uruchom następujące polecenie:

azcmagent config set config.mode monitor

Możesz sprawdzić bieżący tryb agenta i dozwolone rozszerzenia za pomocą następującego polecenia:

azcmagent config list

W trybie monitorowania nie można modyfikować listy dozwolonych rozszerzeń ani listy zablokowanych. Jeśli musisz zmienić jedną z list, zmień agenta z powrotem na tryb pełny i określ własną listę dozwolonych i zablokowanych zamiast używać trybu monitorowania.

Aby zmienić agenta z powrotem na tryb pełny, uruchom następujące polecenie:

azcmagent config set config.mode full

Najlepsze rozwiązania dotyczące zablokowanych maszyn

Podczas konfigurowania agenta usługi Azure Connected Machine z ograniczonym zestawem funkcji należy wziąć pod uwagę mechanizmy, których ktoś może użyć do usunięcia tych ograniczeń i zaimplementowania odpowiednich mechanizmów kontroli. Każdy, kto może uruchamiać polecenia jako administrator lub użytkownik główny na serwerze, może zmienić konfigurację agenta połączonej maszyny platformy Azure. Rozszerzenia i zasady konfiguracji gościa są wykonywane w uprzywilejowanych kontekstach na serwerze i w związku z tym mogą zmienić konfigurację agenta. Jeśli zastosujesz mechanizmy zabezpieczeń agenta lokalnego w celu zablokowania agenta, firma Microsoft zaleca następujące najlepsze rozwiązania, aby upewnić się, że tylko administratorzy serwera lokalnego mogą zaktualizować konfigurację agenta:

  • Używaj list dozwolonych dla rozszerzeń zamiast listy zablokowanych, jeśli jest to możliwe.
  • Nie zezwalaj na extensję skryptu niestandardowego, chyba że jest ona potrzebna do jakiegoś określonego celu.
  • Wyłącz konfigurację gościa, aby uniemożliwić używanie niestandardowych zasad konfiguracji gościa, które mogą zmienić konfigurację agenta.

Przykładowa konfiguracja scenariuszy monitorowania i zabezpieczeń

Usługa Azure Arc jest często używana do monitorowania serwerów za pomocą usług Azure Monitor i Microsoft Sentinel oraz zabezpieczania ich za pomocą usługi Microsoft Defender for Cloud. Ta sekcja zawiera przykłady dotyczące blokowania agenta w celu obsługi tylko scenariuszy monitorowania i zabezpieczeń.

Tylko agent usługi Azure Monitor

Na serwerach z systemem Windows uruchom następujące polecenia w konsoli poleceń z podwyższonym poziomem uprawnień:

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

Na serwerach z systemem Linux uruchom następujące polecenia:

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

Monitorowanie i zabezpieczenia

Microsoft Defender dla Chmury wdraża rozszerzenia na Twoim serwerze, aby zidentyfikować podatne na zagrożenia oprogramowanie oraz włączyć Microsoft Defender for Endpoint (jeśli skonfigurowano). Microsoft Defender dla Chmury również używa Konfiguracji Gościa do funkcji zgodności z przepisami. Ponieważ niestandardowe przypisanie konfiguracji gościa może służyć do cofnięcia ograniczeń agenta, należy dokładnie ocenić, czy potrzebujesz funkcji zgodności z przepisami i w związku z tym, czy Konfiguracja Gościa ma być włączona na danej maszynie.

Na serwerach z systemem Windows uruchom następujące polecenia w konsoli poleceń z podwyższonym poziomem uprawnień:

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

Na serwerach z systemem Linux uruchom następujące polecenia:

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

Wyłączanie menedżera rozszerzeń

Jeśli nie musisz używać rozszerzeń w usłudze Azure Arc, możesz również całkowicie wyłączyć menedżera rozszerzeń. Menedżer rozszerzeń można wyłączyć za pomocą azcmagent config set polecenia (uruchom je lokalnie na każdej maszynie):

azcmagent config set extensions.enabled false

Wyłączenie menedżera rozszerzeń nie powoduje usunięcia żadnych rozszerzeń zainstalowanych już na serwerze. Rozszerzenia hostowane we własnych usługach systemu Windows lub Linux, takich jak starszy agent usługi Log Analytics, mogą nadal działać nawet wtedy, gdy menedżer rozszerzeń jest wyłączony. Inne rozszerzenia hostowane przez samego menedżera rozszerzeń, takie jak agent usługi Azure Monitor, nie są uruchamiane, jeśli menedżer rozszerzeń jest wyłączony. Aby upewnić się, że żadne rozszerzenia nie będą nadal działać na serwerze, usuń wszystkie rozszerzenia przed wyłączeniem menedżera rozszerzeń.