Sikkerhet i AWS EC2: Deaktiver metadata og blokker SSRF-angrep!

Forståelse av EC2-Metadata og Sikkerhet

Denne artikkelen gir en grundig gjennomgang av EC2-metadata og deres betydning. Du vil lære hvordan du kan deaktivere metadata for å beskytte systemet ditt mot angrep som Server Side Request Forgery (SSRF).

Amazon Web Services (AWS) tilbyr Amazon Elastic Compute Cloud (Amazon EC2), en tjeneste som leverer skalerbar datakraft. Med Amazon EC2 kan du raskt utvikle og implementere applikasjoner uten å investere i maskinvare på forhånd.

Du kan starte et varierende antall virtuelle servere, avhengig av behovene dine. Amazon EC2 gir kontroll over nettverkskonfigurasjoner, sikkerhetsinnstillinger og lagring.

Forekomstmetadata er informasjon om din EC2-instans, som kan tilpasses eller administreres mens den kjører. Dette omfatter detaljer som vertsnavn, hendelser og sikkerhetsgrupper. Du har også tilgang til brukerdata som ble spesifisert da instansen ble startet.

Under konfigureringen av instansen kan du inkludere et skript eller definere parametere. Brukerdata gir muligheten til å skape generiske Amazon Machine Images (AMI) og endre konfigurasjonsfiler ved oppstart.

Du kan sette opp eksisterende eller nye instanser til å utføre visse oppgaver ved hjelp av metadataalternativer:

  • Krever at metadataforespørsler går via IMDSv2
  • Angi respons-hopgrense for PUT-forespørsler.
  • Begrens tilgangen til forekomstmetadata.

Tilgang til metadata fra en aktiv EC2-instans er mulig via to metoder: IMDSv1 og IMDSv2.

IMDS, eller Instance Metadata Service, tilbyr disse metodene. IMDSv1 benytter en forespørsel/svar-metode, mens IMDSv2 er sesjonsorientert.

AWS anbefaler bruk av IMDSv2, da dette er den foretrukne metoden. AWS SDK bruker IMDSv2-anrop som standard. IAM-betingelsesnøkler i en IAM-policy kan brukes til å kreve at brukere konfigurerer nye EC2-instanser med IMDSv2 aktivert.

For å hente all forekomstmetadata fra en aktiv instans, kan du bruke følgende IPv4- eller IPv6-URI-er:

IPv4:

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

IPv6:

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

Disse IP-adressene er lenkelokale adresser og er bare gyldige fra innsiden av instansen.

Du kan bruke den lenkelokale adressen 169.254.169.254 for å hente forekomstmetadata. Forespørsler til metadata via URI er kostnadsfrie og medfører ingen ekstra utgifter fra AWS.

Hvorfor Deaktivere Metadata er Nødvendig

SSRF-angrep er en velkjent risiko i AWS-miljøer. Mandiant, et cybersikkerhetsselskap, har observert angripere som automatisk skanner etter sårbarheter og samler inn IAM-legitimasjonsinformasjon fra offentlig tilgjengelige nettapplikasjoner.

Implementering av IMDSv2 på alle EC2-instanser reduserer risikoen betydelig, takket være de forbedrede sikkerhetsfunksjonene. IMDSv2 reduserer faren for at angripere kan stjele IAM-legitimasjon gjennom SSRF.

Utnyttelse av Server Side Request Forgery (SSRF) for å få tilgang til EC2-metadatatjenesten er en vanlig teknikk for å kompromittere AWS-systemer.

Metadatatjenesten er tilgjengelig på 169.254.169.254 for de fleste EC2-instanser og inneholder nyttig informasjon om instansen, som IP-adresse og sikkerhetsgruppenavn.

Hvis en IAM-rolle er tilknyttet en EC2-instans, inneholder metadatatjenesten også IAM-legitimasjon for autentisering som denne rollen. Disse legitimasjonene kan potensielt stjeles, avhengig av hvilken IMDS-versjon som er i bruk og SSRF-sårbarhetens art.

Det er også viktig å huske at en angriper med shell-tilgang til en EC2-instans kan skaffe seg disse legitimasjonene.

I dette eksemplet kjører en webserver på port 80 i en EC2-instans. Webserveren har en enkel SSRF-sårbarhet som lar oss sende GET-forespørsler til hvilken som helst adresse. Dette kan misbrukes ved å sende en forespørsel til http://169.254.169.254.

Slik Deaktiverer du Metadata

Du kan forhindre tilgang til forekomstmetadataene dine ved å blokkere HTTP-endepunktet for metadatatjenesten, uavhengig av hvilken versjon du bruker.

Denne endringen kan reverseres ved å reaktivere HTTP-endepunktet. For å deaktivere metadata for din instans, bruk modify-instance-metadata-options CLI-kommandoen og sett http-endpoint parameteren til deaktivert.

Kjør denne kommandoen for å deaktivere metadata:

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

Deaktivering av metadata

Etter deaktivering av metadata, vil et forsøk på å få tilgang til dem resultere i en FORBUDT melding.

For å aktivere metadata igjen, kjør følgende kommando:

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

Aktivere metadata igjen

Konklusjon

Metadata kan være nyttig for å hente ut informasjon fra omfattende datalagre. Men, det kan også misbrukes til å avdekke plassering eller identitet uten samtykke. Da all aktivitet registreres, er det viktig å være klar over at den kan inneholde sensitiv informasjon. Derfor er det essensielt å fjerne metadata for å bevare personvern og anonymitet på nett.

Utforsk også andre AWS-relaterte nøkkelbegreper for å utvide din kunnskap om AWS.