Gestiamo le nostre app su Heroku e usiamo Cloudflare come CDN e per proteggerci dagli attacchi DOS. Tuttavia, di recente abbiamo avuto un attacco (relativamente minore) che è riuscito a bypassare facilmente Cloudflare semplicemente inviando richieste a uno dei server di routing che Heroku ospita su AWS mentre si imposta l'intestazione ' Host:
delle richieste sul nome host del nostro sito. Questo ha funzionato perché il routing delle applicazioni interne di Heroku è interamente basato su quell'intestazione.
Ho chiesto ad Heroku se potevano fare qualcosa al riguardo e hanno suggerito di gestirlo al livello middleware (che siamo, usando le regole di nginx). Ma questo consente comunque al traffico di attaccare di colpire il nostro banco di prova e mentre questo attacco è stato gestito utilizzando tale strategia, penserei che un attacco più ampio avrebbe rallentato nginx, anche se il server stava eseguendo il 403 collegamento in massa.
A corto di noi che eseguono il nostro proxy inverso, qualcuno ha un suggerimento per una strategia migliore? Non è forse una delle principali debolezze dell'architettura di Heroku che si dirigono verso le app basate sull'intestazione della richiesta Host:
invece di assegnare gli indirizzi IP ai dynos? È tipico di PaaS?