Il modulo Stream di NGINX è il sottosistema che gestisce il traffico di livello 4, incluso il proxying e il routing di stream TCP e TLS. A differenza del modulo HTTP, funziona prima che venga analizzata qualsiasi richiesta web, quindi viene spesso utilizzato per servizi come database, posta e passthrough TLS. Funzionalità come ssl_preread, le variabili, la corrispondenza con espressioni regolari e le direttive map consentono agli amministratori di ispezionare i dati iniziali della connessione e scegliere dinamicamente un upstream.
Questa flessibilità è importante per la sicurezza perché la configurazione diventa parte della superficie di attacco. Regole di stream complesse possono far passare metadati di connessione non attendibili attraverso la logica di parsing ed espressione, aumentando il rischio di bug di sicurezza della memoria, instradamento errato o denial of service se l'implementazione è difettosa. In difesa, i team dovrebbero esaminare attentamente i blocchi stream, ridurre al minimo l'elaborazione dinamica non necessaria e applicare le patch tempestivamente quando le vulnerabilità riguardano il modulo. Per gli aggressori, il modulo Stream è attraente perché elabora dati esterni prima che siano in atto le protezioni a livello applicativo.


