I ricercatori di SEC Consult hanno pubblicato una nuova tecnica di spoofing, causata da discrepanze nell'aderenza alle specifiche in diverse implementazioni del protocollo SMTP. La tecnica di attacco proposta consente di suddividere un unico messaggio in più messaggi diversi durante la sua trasmissione da un server SMTP di origine a un altro server SMTP, che interpreta in modo diverso la sequenza per la separazione delle email trasmesse attraverso una singola connessione. Questo metodo può essere utilizzato per inviare email falsificate a nome di altri mittenti in servizi di posta elettronica che verificano il mittente originale.
Il problema è causato dal fatto che i diversi server SMTP interpretano in modo diverso la sequenza di terminazione dei dati, il che può portare alla suddivisione di un'unica email in più parti all'interno della stessa sessione con il server SMTP. La specifica per la marcatura della conclusione della trasmissione di un'email definisce la sequenza «\r\n.\r\n» (un punto racchiuso tra i caratteri di ritorno a capo e di nuova riga). Dopo questa sequenza possono seguire comandi per inviare un'altra email senza interrompere la connessione. Alcuni server SMTP seguono rigorosamente la prescrizione, mentre altri, per garantire la compatibilità con alcuni client di posta rari, trattano come delimitatori anche sequenze come «\n.\n», «\n.\r\n», «\r\n.\n», «\r.\r», «\r\n\0.\r\n» e «\r\n\0.\r\n».
L'attacco consiste nel fatto che, al primo un server, che elabora solo il delimitatore «\r\n.\r\n» viene inviato un messaggio, il cui corpo contiene un delimitatore alternativo, ad esempio, «\r.\r», seguito dai comandi per l'invio di un secondo messaggio. Poiché il primo server segue rigorosamente le specifiche, elabora la sequenza ricevuta come un solo messaggio. Se successivamente il messaggio viene inviato a un server di transito o al server di destinazione, che interpreta ulteriormente la sequenza «\r.\r» come delimitatore, verrà elaborato come due messaggi inviati separatamente (il secondo messaggio potrebbe essere inviato a nome di un utente non autenticato tramite «AUTH LOGIN», ma apparire come valido dal lato del destinatario).


Esempi di server SMTP e servizi che consentono delimitatori alternativi includono Postfix, Sendmail, MS Exchange Online e Cisco Secure Email Gateway, mentre tra i servizi di posta che non filtrano delimitatori non corretti dai messaggi quando si collegano ad altri server ci sono GMX, iCloud e Microsoft Outlook.
Per risolvere il problema in Postfix nelle versioni 3.8.1, 3.7.6, 3.6.10 e 3.5.20, è stata aggiunta l'impostazione «smtpd_forbid_unauth_pipelining», che causa la chiusura della connessione in caso di utilizzo di delimitatori non conformi ai requisiti degli RFC 2920 e 5321. Attualmente, questa impostazione è disattivata per impostazione predefinita, ma si prevede di attivarla di default nella versione di Postfix 3.9, prevista per la primavera del 2024. Nella versione 3.9 sarà anche inclusa l'impostazione smtpd_forbid_bare_newline, che restituirà un errore se viene utilizzato solo il carattere di nuova riga («\n») per separare le righe, violando così l'RFC 5321.
Nella prossima versione di Sendmail 8.18.0.2, per proteggere da attacchi, nell'srv_features è proposta l'opzione ‘o’, che abilita la gestione solo della sequenza «\r\n.\r\n». Viene osservato che disabilitare il supporto per delimitatori alternativi potrebbe compromettere il funzionamento di alcuni rari client di posta che non sono completamente conformi alla specifica SMTP.
Fonte: opennet.ru
