Server-side request forgery (SSRF)
SSRF får en applikation att skicka oönskade nätverksförfrågningar från servern. Avgörande är vilka mål servern faktiskt når.
Server-side request forgery, förkortat SSRF, innebär att en applikation missbrukas för att få dess server att skicka förfrågningar till oavsiktliga mål. Servern kan ha annan nätverksåtkomst än personen som lämnar indata. Därmed kan exempelvis interna tjänster nås trots att de inte är direkt åtkomliga utifrån.
En dokumentförhandsvisning med ett externt mål
En fiktiv projektportal hämtar ett dokument för förhandsvisning från adressen i fältet previewTarget. Om adressen används utan lämpliga kontroller kan förhandsvisningen bli en mellanhand för oönskad åtkomst. Problemet ligger här i serverns hämtning, innan dokumentet visas. Sådana anrop kan ge oönskade effekter även om svarsinnehållet inte lämnas tillbaka.
I denna portalvariant är förhandsvisningen bara avsedd för kända dokumentkällor. Applikationen kan därför fastställa tillåtna källor i stället för att godta godtyckliga mål. Begränsningen passar bara om funktionen faktiskt kan begränsas till kända källor.
Se målgranskning och nätverksgräns tillsammans
MDN och OWASP beskriver skydd på applikations- och nätverksnivå. Det räcker inte att kontrollera det skrivna värdnamnet: Även de uppslagna måladresserna och den faktiska anslutningen måste följa regeln för tillåtna mål. Omdirigeringar kan ändra målet och får inte kringgå kontrollen.
Tjänsten behöver bara den nätverksåtkomst som uppgiften kräver. Protokoll- och målbegränsningar, kontrollerade omdirigeringar och begränsade nätverksrättigheter samverkar. Enbart HTTPS gör inte ett mål tillåtet. Portalexemplet förklarar tillitsgränsen; det beskriver ingen genomförd hämtning eller något genomfört säkerhetstest.
Källor
Relaterade begrepp
- APIEtt API anger hur programvara kan använda funktioner eller data som annan programvara erbjuder.
- BackendBackend behandlar en applikations regler och data på servern. Den omfattar mer än databasen eller en administrationsvy.
- WebhookEn webhook skickar ett HTTP-meddelande till ett annat system när en bestämd händelse inträffar.
- DataminimeringDataminimering begränsar personuppgifter till vad som är lämpligt, relevant och nödvändigt för ett bestämt ändamål.
- Policy för datalagringEn policy för datalagring anger syfte, start, varaktighet och slut för lagringen. Raderingsjobb och kopior måste ingå i den tekniska lösningen.
- Envelope-krypteringEnvelope-kryptering skiljer datanyckeln från den nyckel som skyddar den. Den krypterade filen och inpackade datanyckeln behöver hanteras tillsammans.
Ditt projekt med ASES
Beskriv ditt projekt för oss. Vi hör av oss med en första bedömning.