Cercetătorii de la SEC Consult au publicat o nouă tehnică de spoofing, cauzată de discrepanțele în respectarea specificației în diverse implementări ale protocolului SMTP. Tehnica de atac propusă permite divizarea unui mesaj într-o serie de mesaje diferite atunci când este transmis de un server SMTP inițial către un alt server SMTP, care interpretează diferit secvența pentru divizarea mesajelor transmise printr-o singură conexiune. Metoda poate fi utilizată pentru a trimite mesaje false în numele altor expeditori în serviciile de e-mail care verifică expeditorul inițial.
Problema este cauzată de faptul că diferite servere SMTP interpretează diferit secvența de finalizare a datelor, ceea ce poate duce la divizarea unui singur mesaj în mai multe părți în cadrul unei sesiuni către serverul SMTP. Specificația pentru marcarea finalizării transmisiei unui mesaj definește secvența „\r\n.\r\n” (un punct, încadrat de caracterele de returnare a cursului și de sfârșitul liniei). După această secvență pot urma comenzi pentru a transmite un alt mesaj fără a întrerupe conexiunea. Unele servere SMTP respectă strict acest lucru, dar altele, pentru a asigura compatibilitatea cu anumite clienți de e-mail mai rari, interpretează ca delimitatori și secvențe precum „\n.\n”, „\n.\r\n”, „\r\n.\n”, „\r.\r”, „\r\n\0.\r\n” și „\r\n\0.\r\n”.
Atacul constă în faptul că pe primul serverul, care procesează doar delimitatorul „\r\n.\r\n”, se trimite un mesaj, care conține un delimitator alternativ, de exemplu, „\r.\r”, urmat de comenzi pentru trimiterea celui de-al doilea mesaj. Deoarece primul server respectă strict specificația, el procesează secvența primită ca un singur mesaj. Dacă mesajul este apoi trimis către un server de tranzit sau către serverul destinatar, care acceptă în plus secvența „\r.\r” ca delimitator, acesta va fi procesat ca două mesaje trimise separat (al doilea mesaj poate fi trimis în numele unui utilizator care nu este autentificat prin „AUTH LOGIN”, dar va apărea corect în ochii destinatarului).


Ca exemple de servere SMTP și servicii care permit separatori alternativi, se remarcă Postfix, Sendmail, MS Exchange Online și Cisco Secure Email Gateway, iar printre serviciile de email care nu filtrează separatori incorecți din mesaje atunci când se conectează la alte servere se numără GMX, iCloud și Microsoft Outlook.
Pentru blocarea problemei în Postfix, în versiunile 3.8.1, 3.7.6, 3.6.10 și 3.5.20 a fost adăugată configurația „smtpd_forbid_unauth_pipelining”, care conduce la întreruperea conexiunii în cazul utilizării separatorilor care nu se conformează cerințelor RFC 2920 și RFC 5321. În prezent, această configurație este dezactivată în mod implicit, dar se plănuiește activarea ei implicit în ramura Postfix 3.9, care este așteptată în primăvara anului 2024. În ramura 3.9 va fi inclusă și configurația smtpd_forbid_bare_newline, care va genera o eroare atunci când este folosit doar caracterul de sfârșit de linie („\n”) pentru a separa liniile, ceea ce încalcă RFC 5321.
În versiunea în pregătire Sendmail 8.18.0.2, pentru a proteja împotriva atacului, în srv_features a fost propusă opțiunea ‘o’, care activează procesarea doar a secvenței „\r\n.\r\n”. Se remarcă faptul că dezactivarea suportului pentru separatori alternativi poate afecta funcționarea unor clienți de email mai rari, care nu respectă pe deplin specificația SMTP.
Sursa: opennet.ro
