Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Protokół MSP (Metadata Security Protocol) umożliwia dostosowanie, aby maksymalnie ograniczyć dostęp do serwera metadanych w ramach Twojego obciążenia roboczego. W tym artykule przedstawiono podstawowe pojęcia, które można szybko włączyć na dowolnej obsługiwanej maszynie wirtualnej (VM) lub zestawie skalującym maszyn wirtualnych.
Jeśli wiesz, jak obciążenie korzysta z usług metadanych, możesz dodatkowo wzmocnić dostęp, postępując zgodnie z przewodnikiem dotyczącym zaawansowanej konfiguracji.
Program MSP można skonfigurować za pomocą:
- Szablony usługi Azure Resource Manager
- interfejs API REST
- PowerShell
- Portal Azure
Pojęcia
| Termin | Definicja |
|---|---|
| Usługi metadanych | Ogólny termin dotyczący praktyki branżowej oferowania prywatnych, nie internetowych, anonimowych interfejsów API HTTP dostępnych w stałej lokalizacji. Lokalizacja to zazwyczaj 169.254.169.254. Mimo że dokładne funkcje, szczegóły i liczba usług różnią się w zależności od dostawcy usług w chmurze, wszystkie mają podobną architekturę i przeznaczenie. |
| Azure Instance Metadata Service | Usługa metadanych przeznaczona dla użytkowników, która jest dostarczana z obsługą i pełną dokumentacją interfejsu API. Jest przeznaczona zarówno dla integracji platformy Azure, jak i integracji spoza firmy Microsoft. Oferuje kombinację metadanych i poświadczeń. |
| WireServer | Usługa metadanych związana z platformą, używana przez organizacje do implementacji podstawowych funkcji infrastruktury jako usługi (IaaS). Nie jest przeznaczona do powszechnego użytku, a platforma Azure nie oferuje żadnego wsparcia technicznego. Mimo że konsumenci usługi są związani z implementacją platformy Azure, usługa musi być nadal brana pod uwagę w ocenach zabezpieczeń. Zasoby WireServer są domyślnie traktowane jako uprzywilejowane. Nie należy jednak wyświetlać zasobów usługi metadanych wystąpienia jako nieuprzywilejowanych. W zależności od obciążenia usługa Instance Metadata Service może również udostępniać poufne informacje. |
| Agent serwera proxy gościa (GPA) | Agent wewnętrzny gościa, który umożliwia ochronę MSP. |
Pola usługi Azure Resource Manager
Całą konfigurację można zarządzać za pomocą nowych właściwości w securityProfile sekcji konfiguracji zasobu.
Minimalna wersja interfejsu API do konfiguracji usługi MSP to 2024-03-01.
Konfiguracja ogólna
ProxyAgentSettings to nowa właściwość w modelu maszyny wirtualnej dla maszyn wirtualnych platformy Azure i zestawów skalowania maszyn wirtualnych, których używasz do konfigurowania funkcji MSP.
| Nazwa parametru | Typ | Wartość domyślna | Szczegóły |
|---|---|---|---|
enabled |
Bool |
false |
Określa, czy funkcja MSP powinna być włączona na maszynie wirtualnej lub w zestawie skalowania maszyn wirtualnych. Wartość domyślna to false. Ta właściwość kontroluje:
|
imds |
HostEndpointSettings |
Nie dotyczy | Konfiguracja specyficzna dla usługi metadanych instancji. Zobacz Konfiguracja każdej usługi metadanych w dalszej części tego artykułu. |
wireServer |
HostEndpointSettings |
Nie dotyczy | Ustawienia punktu końcowego WireServer. Zobacz Konfiguracja każdej usługi metadanych w dalszej części tego artykułu. |
keyIncarnationId |
Integer |
0 |
Licznik generowania kluczy. Zwiększenie tej wartości powoduje, że program MSP zresetuje klucz używany do zabezpieczania kanału komunikacyjnego między gościem a hostem. GPA odnotowuje resetowanie klucza i automatycznie pobiera nowy. Ta właściwość służy tylko do odzyskiwania i rozwiązywania problemów. |
Konfiguracja dla każdej usługi metadanych
Dla każdej usługi metadanych można skonfigurować poszczególne zabezpieczenia. Schemat jest taki sam dla każdej usługi.
Konfiguracje wbudowane i połączone wykluczają się wzajemnie na podstawie poszczególnych usług.
Konfiguracja śródliniowa
Konfigurację śródliniową można zdefiniować, używając właściwości mode elementu HostEndpointSettings. Konfiguracje wbudowane nie obsługują dostosowywania.
W poniższej tabeli mode to wyliczenie, które jest wyrażone jako String.
mode wartość |
Zachowanie dotyczące średniej ocen | Zachowanie usługi |
|---|---|---|
Disabled |
GpA nie konfiguruje przechwytywania żądań przez eBPF do tej usługi. Żądania przechodzą bezpośrednio do usługi. | Niezmienione. Usługa nie wymaga, aby GPA zatwierdziła żądania. |
Audit |
GpA przechwytuje żądania do tej usługi i określa, czy bieżąca konfiguracja je autoryzuje. Żądanie jest zawsze przekazywane do usługi, ale rejestrowane są informacje o wyniku i dzwoniącym. | Niezmienione. Usługa nie wymaga, aby GPA zatwierdziła żądania. |
Enforce |
GpA przechwytuje żądania do tej usługi i określa, czy bieżąca konfiguracja je autoryzuje. Jeśli dzwoniący jest autoryzowany, GPA podpisuje wniosek, aby go zatwierdzić. Jeśli obiekt wywołujący nie jest autoryzowany, gpA odpowiada za pomocą kodu 401 stanu lub 403. Wszystkie wyniki są rejestrowane w dzienniku inspekcji. |
GPA musi zatwierdzić (podpisać) żądania dotyczące usługi. Niepodpisane żądania są odrzucane przy użyciu 401 kodu stanu. |
Ważne
Nie można używać tej właściwości w tym samym czasie co inVMAccessControlProfileReferenceId.
W trybie WireServer Enforce gpA niejawnie wymaga, aby proces był uruchamiany jako Administrator lub root w celu uzyskania dostępu do serwera WireServer. To wymaganie jest równoważne regule zapory sieciowej w maszynie wirtualnej, która istnieje nawet wtedy, gdy program MSP jest wyłączony, ale z wdrożeniem bardziej bezpiecznym.
Konfiguracja połączona
Typ inVMAccessControlProfiles zasobu definiuje konfigurację dla usługi, którą można połączyć z maszyną wirtualną lub zestawem skalowania maszyn wirtualnych. Te konfiguracje obsługują pełne dostosowania. Aby uzyskać szczegółowe informacje, zobacz Konfiguracja zaawansowana dla programu MSP.
HostEndpointSettings własność |
Typ | Szczegóły |
|---|---|---|
inVMAccessControlProfileReferenceId |
String |
Identyfikator zasobu konfiguracyjnego do zastosowania. |
Ta właściwość musi być pełnym identyfikatorem usługi Resource Manager, który ma następującą formę: /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/inVMAccessControlProfiles/{profile}/versions/{version}.
Ważne
Nie można używać tej właściwości w tym samym czasie co mode.
Pełny przykład
- VM:
https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Compute/virtualMachines/{virtualMachine-Name}?api-version=2024-03-01 - Zestaw skalowania maszyn wirtualnych:
https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSet-name}/virtualMachines/{instance-id}?api-version=2024-03-01
W poniższym przykładzie użyto mode:
{
"name": "GPAWinVM",
"location": "centraluseuap",
"properties": {
...
...
"securityProfile": {
"proxyAgentSettings": {
"enabled": true,
"wireServer": {
"mode": "Enforce"
},
"imds": {
"mode": "Audit"
}
}
},
}
}
W poniższym przykładzie użyto inVMAccessControlProfileReferenceId:
{
"name": "GPAWinVM",
"location": "centraluseuap",
"properties": {
...
...
"securityProfile": {
"proxyAgentSettings": {
"enabled": true,
"wireServer": {
"inVMAccessControlProfileReferenceId": "/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/inVMAccessControlProfiles/{profile}/versions/{version}"
},
"imds": {
"inVMAccessControlProfileReferenceId": "/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/inVMAccessControlProfiles/{profile}/versions/{version}"
}
}
},
}
}
Dzienniki inspekcji
W trybach Audit i Enforce dzienniki audytu są generowane na lokalnym dysku.
| Rodzina systemów operacyjnych | Lokalizacja dziennika inspekcji |
|---|---|
| Linux | /var/lib/azure-proxy-agent/ProxyAgent.Connection.log |
| Windows | C:\WindowsAzure\ProxyAgent\Logs\ProxyAgent.Connection.log |
Zalecana kolejność
Klienci często nie są świadomi pełnego zakresu wykorzystywania usług WireServer i Instance Metadata Service w swoich obciążeniach. Użycie twojej maszyny wirtualnej jest kombinacją niestandardowych integracji, które tworzysz, oraz szczegółów implementacji dowolnego innego oprogramowania, które uruchamiasz. Zalecamy rozpoczęcie od prostszej konfiguracji i iterowanie wraz z upływem czasu w miarę uzyskiwania dodatkowych informacji. Ogólnie rzecz biorąc, najlepiej jest przejść w następującej kolejności:
- Włącz funkcjonalność MSP dla usług WireServer i Instance Metadata Service w trybie
Audit. Ten krok pozwala potwierdzić zgodność i dowiedzieć się więcej o obciążeniu. Generuje również cenne dane do wykrywania podmiotów zagrożeń. - Przejrzyj dane inspekcji. Zwróć szczególną uwagę na wszelkie oznaczone żądania. Te żądania mogą być oznakami trwającego ataku lub niezgodności obciążenia.
- Koryguj wszelkie problemy. W ramach domyślnej konfiguracji wszystkie oznaczone elementy są niewłaściwym wykorzystaniem usług metadanych. W razie potrzeby skontaktuj się z zespołem ds. zabezpieczeń lub odpowiednimi właścicielami usług.
- Przełącz się z
Audittrybu naEnforcetryb. Oflagowane żądania są odrzucane w celu ochrony zasobów. - Eksperymentuj z zaawansowaną konfiguracją. Domyślna konfiguracja odzwierciedla reguły zabezpieczeń sprzed MSP, które często są zbyt liberalne. Definiowanie niestandardowej konfiguracji dla obciążenia umożliwia dalsze zwiększanie zabezpieczeń przez zastosowanie zasady dostępu z najniższymi uprawnieniami.
Nie martw się o wykonanie idealnej progresji. Każdy poziom włączania MSP znacznie poprawia bezpieczeństwo i pomaga chronić przed realistycznymi atakami.