Server-side request forgery (SSRF)
SSRF induce un’applicazione a inviare richieste di rete indesiderate dal server. Conta quali destinazioni il server raggiunge effettivamente.
Il server-side request forgery, o SSRF, consiste nell’abusare di un’applicazione per far inviare dal suo server richieste a destinazioni non previste. Il server può avere un accesso alla rete diverso da quello della persona che fornisce un input. In questo modo si possono raggiungere, per esempio, servizi interni non accessibili direttamente dall’esterno.
Un’anteprima con una destinazione esterna
Un portale di progetto fittizio recupera un documento dall’indirizzo nel campo previewTarget per mostrarne l’anteprima. Se l’indirizzo viene usato senza controlli adeguati, la funzione può diventare un intermediario per accessi indesiderati. Il problema è nel recupero da parte del server, prima della visualizzazione del documento. Queste chiamate possono avere effetti indesiderati anche se il contenuto della risposta non viene restituito.
In questa variante del portale, l’anteprima è prevista solo per fonti documentali note. L’applicazione può quindi fissare le fonti consentite anziché accettare qualsiasi destinazione. Questa restrizione è adatta solo se la funzione può davvero essere limitata a fonti note.
Considerare insieme destinazione e confine di rete
MDN e OWASP descrivono protezioni a livello applicativo e di rete. Controllare solo il nome host scritto non basta: anche gli indirizzi risolti e la connessione effettiva devono rispettare la regola delle destinazioni consentite. I reindirizzamenti possono cambiare destinazione e non devono aggirare i controlli.
Il servizio necessita soltanto degli accessi di rete richiesti dal suo compito. Restrizioni di protocollo e destinazione, reindirizzamenti controllati e permessi di rete limitati lavorano insieme. HTTPS da solo non rende consentita una destinazione. Lo scenario spiega il confine di fiducia; non descrive un recupero o un test di sicurezza eseguiti.
Fonti
Termini correlati
- APIUn’API definisce come un programma può usare funzioni o dati messi a disposizione da un altro programma.
- BackendIl backend elabora regole e dati sul server. Non coincide soltanto con il database o una schermata di amministrazione.
- WebhookUn webhook invia una notifica HTTP a un altro sistema quando si verifica un evento definito.
- Minimizzazione dei datiLa minimizzazione limita i dati personali a quanto è adeguato, pertinente e necessario per una finalità definita.
- Politica di conservazione dei datiUna politica di conservazione definisce scopo, inizio, durata e fine della memorizzazione. Cancellazioni e copie richiedono una gestione tecnica.
- Crittografia envelopeLa crittografia envelope separa la chiave dei dati da quella che la protegge. File cifrato e chiave dei dati avvolta vanno gestiti insieme.
Il vostro progetto con ASES
Descriveteci il vostro progetto. Vi ricontatteremo con una prima valutazione.