Hur inaktiverar man AWS EC2-metadata?

By rik

Förståelse av EC2-metadata och dess säkerhetsaspekter

Denna artikel ger en djupdykning i konceptet EC2-metadata och dess betydelse. Vidare kommer du att lära dig hur du kan inaktivera metadatafunktionen för att skydda dina system mot potentiella hot, som till exempel SSRF-attacker.

Amazon Web Services (AWS) erbjuder en tjänst vid namn Amazon Elastic Compute Cloud (Amazon EC2), vilken möjliggör flexibel datorkraft. Amazon EC2 ger dig möjligheten att snabbt utveckla och implementera applikationer utan att behöva investera i fysisk hårdvara.

Med Amazon EC2 kan du starta det antal virtuella servrar som du behöver för ditt specifika ändamål. Tjänsten ger dig även kontroll över nätverksinställningar, säkerhetsparametrar samt lagring.

Information som rör din specifika instans, vilken kan anpassas eller administreras under drift, kallas för instansmetadata. Till dessa hör bland annat värdnamn, olika händelser och säkerhetsgrupperingar. Dessutom ger instansmetadata tillgång till användardata, vilka du specificerade vid uppstart av din instans.

Du kan exempelvis inkludera ett litet skript eller bestämma diverse parametrar när du konfigurerar din instans. Användardata möjliggör skapandet av generiska AMI:er och ger dig möjligheten att ändra konfigurationsfiler vid uppstart.

Med hjälp av instansmetadata kan du utföra följande uppgifter på såväl nya som befintliga instanser:

  • Kräv att instansens metadataförfrågningar sker via IMDSv2.
  • Ställ in PUT-svarets hoppgräns.
  • Begränsa åtkomsten till instansens metadata.

Åtkomst till metadata från en aktiv EC2-instans kan erhållas genom antingen IMDSv1 eller IMDSv2.

Instansmetadatatjänsten kallas IMDS. Metoderna skiljer sig åt, där IMDSv1 nyttjar en begäran/svar-metod, medan IMDSv2 är sessionsbaserad.

AWS förespråkar användandet av IMDSv2 som den föredragna metoden. AWS SDK använder som standard IMDSv2-anrop. Du kan även via IAM-policyer med hjälp av IAM-villkorsnycklar kräva att nya EC2-instanser konfigureras med IMDSv2 aktiverat.

Följande IPv4- eller IPv6-URI:er kan användas för att se alla typer av instansmetadata från en aktiv instans.

IPv4

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

IPv6

curl http://[fd00:ec2::254]/latest/metadata/

Dessa IP-adresser är lokala och enbart giltiga inifrån instansen.

För att se en instans metadata, använd den lokala länkadressen 169.254.169.254. Förfrågningar via URI är kostnadsfria och ger inte upphov till extra avgifter från AWS.

Varför metadata behöver inaktiveras

SSRF-attacker är välkända och frekventa inom AWS. Mandiant, ett cybersäkerhetsföretag, har upptäckt angripare som automatiserar sårbarhetsskanningar och samlar in IAM-uppgifter från allmänt tillgängliga onlineapplikationer.

Genom att implementera IMDSv2 på samtliga EC2-instanser, vilket ger ytterligare säkerhet, minskar du dessa risker för din organisation. Risken för att en angripare stjäl IAM-uppgifter via en SSRF-attack minskas betydligt med IMDSv2.

Att utnyttja en Server Side Request Forgery (SSRF) för att komma åt EC2-metadatatjänsten är en vanlig teknik för att attackera AWS-miljöer.

Metadatatjänsten är tillgänglig på 169.254.169.254 för de flesta EC2-instanser. Den innehåller relevant information om instansen, till exempel IP-adress och säkerhetsgruppsnamn.

Om en IAM-roll är kopplad till en EC2-instans, kommer metadatatjänsten även att innefatta IAM-referenser för autentisering som denna roll. Beroende på vilken version av IMDS som används, samt SSRF-attackens omfattning, kan dessa referenser stjälas.

Det är även viktigt att notera att en motståndare med tillgång till EC2-instansens skal kan komma åt dessa referenser.

I detta exempel används en webbserver som körs på port 80 i en EC2-instans. Webbservern har en SSRF-sårbarhet som gör det möjligt att skicka GET-förfrågningar till valfri adress, exempelvis http://169.254.169.254.

Inaktivera metadata

Genom att blockera HTTP-slutpunkten för instansmetadatatjänsten kan du förhindra åtkomst till din instansmetadata, oavsett vilken version av instansmetadatatjänsten som används.

Du kan återaktivera denna inställning vid valfritt tillfälle genom att aktivera HTTP-slutpunkten. Använd kommandot modify-instance-metadata-options i CLI och sätt parametern http-endpoint till disabled för att inaktivera metadata för din instans.

För att inaktivera metadata, kör följande kommando:

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

Inaktivering av metadata

Efter att ha inaktiverat metadata, får du ett FÖRBJUDET-meddelande om du försöker komma åt den.

För att återaktivera metadata, kör följande kommando:

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

Återaktivering av metadata

Sammanfattning

Metadata kan vara användbart för att extrahera information från stora datalager. Men det kan även missbrukas för att samla in information om en individs plats eller identitet utan deras medgivande. Eftersom den registrerar alla förändringar som görs, inklusive raderingar och kommentarer, är det viktigt att vara medveten om att den kan innehålla information som du inte vill dela. Därför är det avgörande att hantera metadata medvetet för att bibehålla integritet och anonymitet online.

Utforska även andra viktiga AWS-terminologier för att fördjupa dina kunskaper inom området.