Tento článek vás seznámí s metadaty EC2 a objasní, proč jsou tak důležitá. Také se naučíte, jak metadata deaktivovat, a tím se ochránit před hrozbami, jako je například útok SSRF.
Amazon Web Services (AWS) nabízí službu Amazon Elastic Compute Cloud (Amazon EC2), která poskytuje škálovatelné výpočetní kapacity. S pomocí Amazon EC2 můžete rychleji vyvíjet a nasazovat aplikace, aniž byste museli investovat do hardwaru předem.
V závislosti na vašich požadavcích můžete spustit libovolný počet virtuálních serverů. S Amazon EC2 máte možnost konfigurovat síť, nastavení zabezpečení a ovládat úložiště.
Informace o vaší instanci, které lze upravovat nebo spravovat v rámci běžící instance, se označují jako metadata instance. Mezi kategorie metadat instance patří například název hostitele, události a bezpečnostní skupiny. Prostřednictvím metadat instance můžete také přistupovat k uživatelským datům, která jste zadali při spouštění instance.
Při konfiguraci instance máte možnost zahrnout krátký skript nebo zadat parametry. Díky uživatelským datům můžete vytvářet generická rozhraní AMI a modifikovat konfigurační soubory při spuštění.
Pomocí voleb metadat instance můžete nakonfigurovat nové nebo stávající instance tak, aby plnily následující úkoly:
- Vyžadovat odesílání požadavků na metadata instance prostřednictvím IMDSv2
- Nastavit limit počtu přeskoků pro odpovědi PUT.
- Zablokovat přístup k metadatům instance
K metadatům běžící instance EC2 lze přistupovat pomocí jedné z následujících metod: IMDSv1 a IMDSv2.
Služba pro metadata instance se nazývá IMDS. Jak se dá očekávat, metody se mírně liší; IMDSv1 používá metodu požadavek/odpověď, zatímco IMDSv2 je orientovaný na relace.
AWS doporučuje používat IMDSv2, což je preferovaná metoda. Sada AWS SDK ve výchozím nastavení používá volání IMDSv2 a pomocí klíčů podmínek IAM v zásadách IAM můžete vyžadovat, aby uživatelé konfigurovali nové EC2 s povoleným IMDSv2.
Pro zobrazení všech typů metadat instance z běžící instance použijte následující identifikátory URI IPv4 nebo IPv6:
IPv4
curl http://169.254.169.254/latest/meta-data/
IPv6
curl http://[fd00:ec2::254]/latest/meta-data/
IP adresy jsou lokální a platné pouze z instance.
Pro zobrazení metadat instance můžete použít výhradně lokální adresu 169.254.169.254. Požadavky na metadata prostřednictvím URI jsou zdarma, takže AWS neúčtuje žádné další poplatky.
Důvod pro deaktivaci metadat
Útoky SSRF jsou v nastavení AWS časté a dobře známé. Společnost Mandiant, která se zabývá kybernetickou bezpečností, odhalila útočníky, kteří automatizují skenování zranitelností a získávají přihlašovací údaje IAM z veřejně dostupných online aplikací.
Implementací IMDSv2 pro všechny instance EC2, která nabízí dodatečné bezpečnostní výhody, byste snížili tato rizika pro vaši firmu. Pravděpodobnost, že by útočník ukradl přihlašovací údaje IAM prostřednictvím SSRF, by se s IMDSv2 výrazně snížila.
Využití SSRF (Server Side Request Forgery) k získání přístupu ke službě metadat EC2 je jednou z nejčastěji vyučovaných technik zneužití AWS.
Služba metadat je dostupná pro většinu instancí EC2 na adrese 169.254.169.254. Obsahuje užitečné informace o instanci, jako je její IP adresa, název bezpečnostní skupiny a další.
Pokud je k instanci EC2 přiřazena role IAM, služba metadat bude také obsahovat pověření IAM pro ověření této role. Tyto pověření mohou být ukradeny v závislosti na verzi IMDS a možnostech SSRF.
Je také důležité vzít v úvahu, že tyto pověření by mohl získat i útočník s přístupem k instanci EC2.
V tomto příkladu běží webový server na portu 80 instance EC2. Tento server má zranitelnost SSRF, která umožňuje odesílat požadavky GET na jakoukoli adresu. Toho lze využít k odeslání požadavku na http://169.254.169.254
.
Jak deaktivovat metadata
Blokováním koncového bodu HTTP služby metadat instance můžete zabránit přístupu k metadatům instance bez ohledu na to, jakou verzi služby metadat používáte.
Tuto změnu můžete kdykoli zrušit povolením koncového bodu HTTP. Pro deaktivaci metadat instance použijte příkaz modify-instance-metadata-options
z rozhraní příkazového řádku a nastavte parametr http-endpoint
na vypnuto
.
Pro deaktivaci metadat spusťte tento příkaz:
aws ec2 modify-instance-metadata-options --instance-id i-0558ea153450674 --http-endpoint vypnuto
Z obrázku je patrné, že po deaktivaci metadat, se při pokusu o přístup k nim zobrazí zpráva ZAKÁZÁNO.
Pokud chcete metadata znovu povolit, spusťte tento příkaz:
aws ec2 modify-instance-metadata-options --id-instance i-0558ea153450674 --http-endpoint povoleno
znovu aktivovat metadata
Závěr
Metadata mohou být užitečná pro získávání informací z velkých datových úložišť. Bohužel, mohou být také zneužita k odhalení polohy nebo identity osoby bez jejího vědomí či souhlasu. Vzhledem k tomu, že zaznamenávají každou provedenou změnu včetně smazání a komentářů, je důležité si uvědomit, že mohou obsahovat data, která nechcete sdílet s ostatními. Z toho důvodu je odstranění metadat klíčové pro ochranu vašeho online soukromí a anonymity.
Pro rozšíření vašich znalostí o AWS, můžete prozkoumat i další klíčovou terminologii AWS.