Jak wyłączyć metadane AWS EC2?

Ten artykuł nauczy Cię o metadanych EC2 i dlaczego jest to ważne. Dowiesz się również, jak wyłączyć metadane, aby chronić się przed atakami, takimi jak SSRF.

Amazon Web Services (AWS) ma usługę Amazon Elastic Compute Cloud (Amazon EC2), która zapewnia skalowalne możliwości przetwarzania. Korzystając z Amazon EC2, możesz szybciej opracowywać i wdrażać aplikacje bez dokonywania z góry inwestycji w sprzęt.

W zależności od potrzeb uruchom tyle lub kilka serwerów wirtualnych. Skonfiguruj ustawienia sieciowe i bezpieczeństwa oraz kontroluj pamięć masową za pomocą Amazon EC2.

Informacje o Twojej instancji, które można dostosować lub którymi można zarządzać w działającej instancji, są nazywane metadanymi instancji. Kategorie metadanych instancji obejmują nazwę hosta, zdarzenia i grupy zabezpieczeń. Dodatkowo możesz uzyskać dostęp do danych użytkownika określonych podczas uruchamiania instancji za pomocą metadanych instancji.

Możesz dołączyć krótki skrypt lub określić parametry podczas konfigurowania instancji. Korzystając z danych użytkownika, można tworzyć ogólne AMI i zmieniać pliki konfiguracyjne w czasie uruchamiania.

Możesz skonfigurować nowe lub istniejące instancje do wykonywania następujących zadań, korzystając z opcji metadanych instancji:

  • Wymagaj wysyłania żądań metadanych instancji przez IMDSv2
  • Wprowadź limit przeskoków odpowiedzi PUT.
  • Dostęp do metadanych instancji blokady

Możliwe jest uzyskanie dostępu do metadanych z aktywnej instancji EC2 przy użyciu jednej z poniższych technik: IMDSv1sIMDSv2

Usługa metadanych instancji jest znana jako IMDS. Jak można przypuszczać, metodologie są nieco inne; IMDSv1 wykorzystuje metodę żądanie/odpowiedź, podczas gdy IMDSv2 jest zorientowany na sesję.

AWS zachęca do korzystania z IMDSv2, która jest preferowaną metodą. Domyślnie zestaw AWS SDK używa wywołań IMDSv2 i możesz wymagać od użytkowników skonfigurowania nowego EC2 z włączonym IMDSv2 przy użyciu kluczy warunków uprawnień w zasadach uprawnień.

Użyj następujących identyfikatorów URI IPv4 lub IPv6, aby wyświetlić wszystkie typy metadanych instancji z działającego wystąpienia.

IPv4

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

IPv6

zawijanie http://[fd00:ec2::254]/najnowsze/metadane/

Adresy IP są adresami lokalnymi i obowiązują tylko z instancji.

Aby wyświetlić metadane instancji, możesz użyć tylko adresu lokalnego łącza 169.254.169.254 . Żądania do metadanych za pośrednictwem URI są bezpłatne, więc nie ma żadnych dodatkowych opłat z AWS.

Konieczność wyłączenia metadanych

W konfiguracjach AWS atak SSRF jest częsty i dobrze znany wszystkim. Mandiant (firma zajmująca się bezpieczeństwem cybernetycznym) wykryła napastników, którzy automatyzują skanowanie luk w zabezpieczeniach i zbierają dane uwierzytelniające IAM z publicznie dostępnych aplikacji internetowych.

Wdrożenie IMDSv2 dla wszystkich instancji EC2, co ma dodatkowe zalety w zakresie bezpieczeństwa, zmniejszyłoby te zagrożenia dla Twojej firmy. Możliwość kradzieży przez wroga danych uwierzytelniających IAM za pośrednictwem SSRF znacznie zmniejszyłaby się w przypadku IMDSv2.

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

Usługa metadanych jest dostępna dla większości instancji EC2 pod adresem 169.254.169.254. Zawiera przydatne informacje o instancji, takie jak jej adres IP, nazwa grupy bezpieczeństwa itp.

Jeśli rola IAM jest połączona z instancją EC2, usługa metadanych będzie również zawierać poświadczenia uprawnień do uwierzytelnienia jako ta rola. Możemy ukraść te dane uwierzytelniające w zależności od używanej wersji IMDS i możliwości SSRF.

Warto również wziąć pod uwagę, że przeciwnik z dostępem powłoki do instancji EC2 mógłby uzyskać te poświadczenia.

W tym przykładzie serwer WWW działa na porcie 80 instancji EC2. Ten serwer WWW ma prostą lukę SSRF, która pozwala nam wysyłać żądania GET na dowolny adres. Można to wykorzystać do wysłania żądania na adres http://169.254.169.254.

Aby wyłączyć metadane

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

Możesz cofnąć tę zmianę w dowolnym momencie, włączając punkt końcowy HTTP. Aby wyłączyć metadane dla swojej instancji, użyj polecenia CLI Modify-instance-metadata-options i ustaw parametr http-endpoint na wartość disabled.

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

aws ec2 modyfikowanie-instancji-metadanych-opcje –identyfikator-wystąpienia i-0558ea153450674 –http-endpoint wyłączony

wyłączanie metadanych

Widać, że po wyłączeniu metadanych, jeśli spróbuję uzyskać do nich dostęp, otrzymuję ZABRONIONĄ wiadomość.

Jeśli chcesz ponownie włączyć metadane, uruchom to polecenie:

aws ec2 modyfikacja-instancji-metadanych-opcje –identyfikator-wystąpienia i-0558ea153450674 –włączono http-endpoint

ponowne włączenie metadanych

Wniosek

Metadane mogą być przydatne do wyodrębniania informacji z dużych magazynów danych. Jednak może być również niewłaściwie wykorzystane do poznania lokalizacji lub tożsamości osoby bez jej wiedzy lub zgody. Ponieważ rejestruje każdą dokonaną zmianę, w tym usunięcia i komentarze, musisz mieć świadomość, że może zawierać informacje, których nie chcesz, aby inni mogli zobaczyć. W rezultacie usunięcie metadanych ma kluczowe znaczenie dla zachowania prywatności i anonimowości w Internecie.

Możesz również zapoznać się z niektórymi kluczowymi terminologiami AWS, które usprawnią Twoją naukę AWS.