Jak wyłączyć metadane AWS EC2?

Ten artykuł wprowadzi Cię w świat metadanych instancji EC2, wyjaśniając ich znaczenie. Zrozumiesz również, jak dezaktywować metadane, chroniąc się przed zagrożeniami, takimi jak ataki typu SSRF.

Amazon Web Services (AWS) oferuje usługę Amazon Elastic Compute Cloud (Amazon EC2), zapewniającą elastyczne możliwości obliczeniowe. Dzięki Amazon EC2 możesz szybciej tworzyć i wdrażać aplikacje, bez konieczności inwestowania w infrastrukturę sprzętową na starcie.

W zależności od Twoich potrzeb możesz uruchomić tyle wirtualnych serwerów, ile potrzebujesz. Amazon EC2 umożliwia konfigurację ustawień sieciowych i bezpieczeństwa oraz kontrolę nad magazynem danych.

Informacje dotyczące instancji, które można dostosowywać lub zarządzać w obrębie działającej instancji, określa się jako metadane instancji. Do kategorii metadanych zalicza się między innymi nazwa hosta, zdarzenia i grupy zabezpieczeń. Dodatkowo, za pośrednictwem metadanych instancji możesz uzyskać dostęp do danych użytkownika, które zostały określone podczas uruchamiania instancji.

Podczas konfiguracji instancji istnieje możliwość dodania krótkiego skryptu lub określenia parametrów. Dzięki danym użytkownika, można tworzyć uniwersalne obrazy AMI i modyfikować pliki konfiguracyjne w czasie uruchamiania.

Konfigurując nowe lub istniejące instancje, z wykorzystaniem opcji metadanych, masz możliwość realizacji następujących zadań:

  • Wymagaj, aby żądania metadanych instancji były przesyłane za pośrednictwem IMDSv2.
  • Ustal limit przeskoków dla odpowiedzi PUT.
  • Zablokuj dostęp do metadanych instancji.

Dostęp do metadanych działającej instancji EC2 jest możliwy za pomocą jednej z dwóch metod: IMDSv1 lub IMDSv2.

Usługa udostępniania metadanych instancji nazywana jest IMDS. Jak można przypuszczać, obie metody różnią się pod względem technologicznym. IMDSv1 korzysta z modelu żądanie/odpowiedź, natomiast IMDSv2 działa w oparciu o sesje.

AWS rekomenduje korzystanie z IMDSv2, jako preferowanej i bardziej bezpiecznej metody. Domyślnie, pakiety AWS SDK używają wywołań IMDSv2. Możesz również wymagać od użytkowników, aby konfigurowali nowe instancje EC2 z włączonym IMDSv2, poprzez zastosowanie kluczy warunków uprawnień w zasadach dostępu.

Aby wyświetlić wszystkie typy metadanych działającej instancji, wykorzystaj następujące adresy URI IPv4 lub IPv6:

IPv4

curl http://169.254.169.254/latest/meta-data/

IPv6

curl http://[fd00:ec2::254]/latest/meta-data/

Pamiętaj, że adresy IP są adresami lokalnymi i działają wyłącznie w obrębie instancji.

Do wyświetlania metadanych instancji można użyć wyłącznie lokalnego adresu łącza 169.254.169.254. Żądania do metadanych za pośrednictwem URI są darmowe i nie wiążą się z żadnymi dodatkowymi kosztami ze strony AWS.

Dlaczego warto wyłączyć metadane?

Atak typu SSRF jest powszechny i dobrze znany w środowiskach AWS. Firma Mandiant (specjalizująca się w bezpieczeństwie cybernetycznym) odkryła, że przestępcy automatyzują proces skanowania w poszukiwaniu luk w zabezpieczeniach, a następnie gromadzą dane uwierzytelniające IAM z ogólnodostępnych aplikacji internetowych.

Wdrożenie IMDSv2 dla wszystkich instancji EC2, które oferuje dodatkowe korzyści w zakresie bezpieczeństwa, zredukuje wspomniane zagrożenia dla Twojej firmy. W przypadku korzystania z IMDSv2, znacznie zmniejsza się ryzyko kradzieży danych uwierzytelniających IAM za pośrednictwem SSRF.

Wykorzystywanie fałszowania żądań po stronie serwera (SSRF) w celu uzyskania dostępu do usługi metadanych EC2 jest jedną z najczęściej omawianych technik wykorzystywania luk w AWS.

Usługa metadanych jest dostępna na większości instancji EC2 pod adresem 169.254.169.254. Zawiera istotne informacje o instancji, takie jak adres IP, nazwa grupy zabezpieczeń, itp.

Jeżeli z instancją EC2 jest powiązana rola IAM, to usługa metadanych będzie zawierać również dane uwierzytelniające, umożliwiające uwierzytelnienie jako ta rola. W zależności od wykorzystywanej wersji IMDS i możliwości SSRF, dane te mogą zostać przechwycone.

Warto pamiętać, że osoba, która uzyska dostęp do powłoki instancji EC2, również może pozyskać te poświadczenia.

W rozpatrywanym przykładzie, serwer WWW działa na porcie 80 instancji EC2. Ten serwer posiada prostą lukę SSRF, która pozwala na wysyłanie żądań GET na dowolny adres, co można wykorzystać do wysłania żądania na adres http://169.254.169.254.

Jak wyłączyć metadane?

Blokując punkt końcowy HTTP usługi metadanych instancji, można uniemożliwić dostęp do metadanych, niezależnie od używanej wersji usługi.

W każdej chwili można cofnąć tę zmianę, ponownie włączając punkt końcowy HTTP. Aby dezaktywować metadane dla danej instancji, wykorzystaj polecenie CLI Modify-instance-metadata-options i ustaw parametr http-endpoint na wartość disabled.

Aby wyłączyć metadane, uruchom to polecenie:

aws ec2 modify-instance-metadata-options –instance-id i-0558ea153450674 –http-endpoint disabled

Wyłączanie metadanych

Jak widać, po wyłączeniu metadanych, próba uzyskania do nich dostępu skutkuje otrzymaniem wiadomości „ZABRONIONE”.

Aby ponownie aktywować metadane, uruchom następujące polecenie:

aws ec2 modify-instance-metadata-options –instance-id i-0558ea153450674 –http-endpoint enabled

Ponowne włączenie metadanych

Podsumowanie

Metadane mogą być przydatne przy wyodrębnianiu informacji z dużych zbiorów danych. Niemniej jednak, mogą zostać również wykorzystane w niewłaściwy sposób, np. do ujawnienia lokalizacji lub tożsamości osoby bez jej wiedzy i zgody. Z uwagi na to, że rejestrują wszelkie modyfikacje, łącznie z usunięciami i komentarzami, musisz mieć świadomość, że mogą zawierać informacje, których nie chcesz udostępniać. Dlatego, dezaktywacja metadanych jest ważna z punktu widzenia ochrony prywatności i anonimowości w Internecie.

Zachęcamy również do zapoznania się z najważniejszymi terminami dotyczącymi AWS, co ułatwi Ci proces nauki.


newsblog.pl