Udostępnij przez


Metadata Security Protocol (MSP)

Metadata Security Protocol (MSP) to funkcja usług Azure Virtual Machines i Azure Virtual Machine Scale Sets. Zwiększa bezpieczeństwo usług Azure Instance Metadata Service i WireServer . Te usługi są dostępne na maszynach wirtualnych infrastruktury platformy Azure jako usługi (IaaS) lub zestawach skalowania maszyn wirtualnych Azure pod adresami IP 169.254.169.254 i 168.63.129.16.

Organizacje używają usługi Instance Metadata Service i WireServer do dostarczania metadanych i poświadczeń maszyny wirtualnej podczas uruchamiania. W związku z tym aktorzy zagrożeń często atakują te usługi. Typowe wektory ataków obejmują ataki typu "confused deputy" wymierzone w obciążenia pracujące wewnątrz gościa oraz ucieczki z piaskownic. Te wektory budzą szczególne obawy w przypadku obciążenia typu „hosted-on-behalf-of”, gdzie nieufany kod jest ładowany do maszyny wirtualnej (VM).

W przypadku usług metadanych granicą zaufania jest sama maszyna wirtualna (VM). Dowolne oprogramowanie wewnątrz gościa jest autoryzowane do żądania sekretów z usługi Instance Metadata Service i WireServer. Właściciele maszyn wirtualnych są odpowiedzialni za staranne izolowanie oprogramowania uruchamianego w maszynach wirtualnych oraz zapewnienie, że podmioty zewnętrzne nie mogą wykradać danych. W praktyce złożoność problemu prowadzi do błędów na dużą skalę, co z kolei prowadzi do wykorzystania.

Mimo że istnieje wiele strategii wielowarstwowej ochrony, udostępnianie tajnych danych za pośrednictwem nieuwierzytelnionego interfejsu API HTTP niesie ze sobą nieodłączne ryzyko. W całej branży ta klasa luk w zabezpieczeniach miała wpływ na setki firm, wpłynęły na miliony osób i spowodowały straty finansowe w setkach milionów dolarów.

Program MSP zamyka najbardziej typowe luki w zabezpieczeniach przez:

  • Rozwiązanie problemu z główną przyczyną tych ataków.
  • Wprowadzenie do usług metadanych w chmurze koncepcji silnego uwierzytelniania i autoryzacji.

Zgodność

Program MSP jest obsługiwany na maszynach wirtualnych IaaS platformy Azure i zestawach skalowania maszyn wirtualnych z następującymi systemami operacyjnymi:

  • Windows 10 lub nowszy (x64)
  • Windows Server 2019 (x64)
  • Windows Server 2022 (x64)
  • Windows Server 2025 (x64)
  • Mariner 2.0 (x64, ARM64)
  • Azure Linux (Mariner 3.0) (x64, ARM64)
  • Ubuntu 20.04+ (x64, ARM64)

Następujące elementy nie są obecnie obsługiwane:

  • Red Hat Enterprise Linux 9+
  • Rocky Linux 9+
  • SUSE Linux Enterprise Server 15 SP4+
  • Dyski tymczasowe
  • Zgodność z usługą Azure Backup
  • ARM64

Zwiększone zabezpieczenia

Agent serwera proxy gościa (GPA) wzmacnia zabezpieczenia przed tymi typami ataków:

  • Ograniczanie dostępu metadanych do podzbioru maszyny wirtualnej (stosowanie zasady dostępu z najniższymi uprawnieniami).

  • Przełączenie z domyślnego otwartego modelu na model zamknięty domyślnie .

    Na przykład, przy zagnieżdżonej wirtualizacji, niewłaściwie skonfigurowana maszyna L2, która ma dostęp do vNIC maszyny L1, może komunikować się z serwisem metadanych jako L1. W przypadku GPA błędnie skonfigurowany L2 nie może uzyskać dostępu, ponieważ nie będzie w stanie uwierzytelnić się z usługą.

W momencie tworzenia usług serwis metadanych ustanawia zaufanego delegata wewnątrz gościa (GPA). Sekret o długiej żywotności jest negocjowany w celu uwierzytelnienia z zaufanym delegatem. Delegat musi poprzeć wszystkie żądania do usługi metadanych przy użyciu kodu uwierzytelniania komunikatów opartego na skrótach (HMAC). HMAC ustanawia relację zaufania typu punkt-punkt z silną autoryzacją.

GpA używa eBPF do przechwytywania żądań HTTP do usługi metadanych. eBPF umożliwia GPA zweryfikowanie tożsamości oprogramowania gościa, które złożyło żądanie. GPA używa eBPF do przechwytywania żądań bez konieczności instalowania dodatkowego modułu jądra. GpA używa tych informacji do porównania tożsamości klienta z listą dozwolonych zdefiniowaną jako część modelu maszyny wirtualnej w usłudze Azure Resource Manager (ARM). GPA następnie zatwierdza żądania, dodając nagłówek podpisu. W związku z tym można włączyć funkcję MSP dla istniejących obciążeń bez wprowadzania niezgodnych zmian.

Domyślnie istniejące poziomy autoryzacji są wymuszane:

  • Usługa metadanych instancji jest otwarta dla wszystkich użytkowników.
  • WireServer jest dostępny tylko dla użytkowników z uprawnieniami root/administrator.

To ograniczenie jest obecnie realizowane przy użyciu reguł zapory w systemie gościa. Jest to nadal mechanizm domyślnie otwarty. Jeśli tę regułę można wyłączyć lub pominąć z jakiegokolwiek powodu, usługa metadanych nadal akceptuje żądanie. Mechanizm autoryzacji włączony w tym miejscu jest domyślnie zamknięty. Omijanie przechwytywania w sposób złośliwy lub przez pomyłkę nie zapewnia dostępu do usługi metadanych.

Możesz skonfigurować zaawansowane ustawienia autoryzacji (czyli upoważnić określone wewnętrzne procesy i użytkowników do dostępu tylko do wybranych punktów końcowych), definiując niestandardową listę dozwolonych elementów z semantyką kontroli dostępu opartą na rolach (RBAC).

Ostrzeżenie

Uważaj, że w systemie Windows użytkownicy mogą włączyć GuestProxyAgent (GPA) za pomocą szablonu ARM. Jednak w systemie Linux jest to proces dwuetapowy. Najpierw aprowizowana jest maszyna wirtualna/usługa VMSS, a dopiero wtedy można skonfigurować gpa.